forked from quanzhanying/jdstore
/
orders_controller.rb
61 lines (43 loc) · 1.43 KB
/
orders_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class OrdersController < ApplicationController
before_action :authenticate_user!, only: [:create]
def create
@order = Order.new(order_params)
@order.user = current_user
@order.total = current_cart.total_price
if @order.save
current_cart.cart_items.each do |cart_item|
product_list = ProductList.new
product_list.order = @order
product_list.product_name = cart_item.product.title
product_list.product_price = cart_item.product.price
product_list.quantity = cart_item.quantity
product_list.save
end
current_cart.clean!
OrderMailer.notify_order_placed(@order).deliver!
redirect_to order_path(@order.token)
else
render 'carts/checkout'
end
end
def show
@order = Order.find_by_token(params[:id])
@product_lists = @order.product_lists
end
def pay_with_alipay
@order = Order.find_by_token(params[:id])
@order.set_payment_with!("alipay")
@order.make_payment!
redirect_to order_path(@order.token), notice: "使用支付宝成功完成付款"
end
def pay_with_wechat
@order = Order.find_by_token(params[:id])
@order.set_payment_with!("wechat")
@order.make_payment!
redirect_to order_path(@order.token), notice: "使用微信成功完成付款"
end
private
def order_params
params.require(:order).permit(:billing_name, :billing_address, :shipping_name, :shipping_address)
end
end