zjxpcyc 6 anos atrás
pai
commit
dba72eb785
3 arquivos alterados com 124 adições e 8 exclusões
  1. 118
    7
      controllers/goods/order.go
  2. 2
    1
      routers/common.go
  3. 4
    0
      routers/wechat.go

+ 118
- 7
controllers/goods/order.go Ver arquivo

@@ -1,15 +1,126 @@
1 1
 package goods
2 2
 
3
+import (
4
+	"encoding/json"
5
+	"errors"
6
+	"spaceofcheng/services/models/model"
7
+	"spaceofcheng/services/utils"
8
+	"time"
9
+)
10
+
3 11
 // GetOrderList 获取商品订单
4 12
 // 管理端 - 统计查询
5 13
 func (c *GoodsController) GetOrderList() {
6
-	// caseID := c.GetString("caseid")
7
-	// userType := c.GetString("usertype")
8
-	// status := c.GetString("status")
9
-	// orderStart := c.GetString("startdate")
10
-	// orderEnd := c.GetString("enddate")
14
+	caseID := c.GetString("caseid")
15
+	if caseID == "" {
16
+		c.ResponseError(errors.New("请选择有效案场"))
17
+	}
18
+
19
+	userType := c.GetString("usertype")
20
+	status := c.GetString("status")
21
+	orderStart := c.GetString("startdate")
22
+	orderEnd := c.GetString("enddate")
23
+
24
+	page, _ := c.GetInt("page")
25
+	pagesize, _ := c.GetInt("pagesize")
26
+
27
+	var orderDate []time.Time
28
+
29
+	if orderStart != "" {
30
+		t, err := time.Parse("20060102150405", orderStart)
31
+		if err != nil {
32
+			utils.LogError("接收时间参数失败: " + err.Error())
33
+			c.ResponseError(errors.New("接收时间参数失败"))
34
+		}
35
+
36
+		orderDate = []time.Time{t}
37
+	}
38
+
39
+	if orderEnd != "" {
40
+		t, err := time.Parse("20060102150405", orderEnd)
41
+		if err != nil {
42
+			utils.LogError("接收时间参数失败: " + err.Error())
43
+			c.ResponseError(errors.New("接收时间参数失败"))
44
+		}
45
+
46
+		if orderDate == nil {
47
+			orderDate = make([]time.Time, 0)
48
+		}
49
+		orderDate = append(orderDate, t)
50
+	}
51
+
52
+	list, total, err := c.serv.GetOrderList(caseID, userType, status, orderDate, page, pagesize)
53
+	if err != nil {
54
+		c.ResponseError(err)
55
+	}
56
+
57
+	c.ResponseJSON(map[string]interface{}{
58
+		"list":     list,
59
+		"pagesize": pagesize,
60
+		"pagenum":  total,
61
+		"page":     page,
62
+	})
63
+}
64
+
65
+// GetOnlineOrder 获取在线订单
66
+// 管理端 - 有 websocket 操作
67
+func (c *GoodsController) GetOnlineOrder() {
68
+	caseID := c.GetString("caseid")
69
+	if caseID == "" {
70
+		c.ResponseError(errors.New("请选择有效案场"))
71
+	}
72
+
73
+	list, err := c.serv.GetOnLineOrders(caseID)
74
+	if err != nil {
75
+		c.ResponseError(err)
76
+	}
77
+
78
+	c.ResponseJSON(map[string]interface{}{
79
+		"list": list,
80
+	})
81
+}
82
+
83
+// PostOrder 下单
84
+// 微信端
85
+func (c *GoodsController) PostOrder() {
86
+	// 订单主信息
87
+	info := c.GetString("info")
88
+	if info == "" {
89
+		c.ResponseError(errors.New("无有效订单信息"))
90
+	}
91
+
92
+	// 订单详情
93
+	detail := c.GetString("detail")
94
+	if detail == "" {
95
+		c.ResponseError(errors.New("无有效订单详情信息"))
96
+	}
97
+
98
+	// 订单优惠券
99
+	coupon := c.GetString("coupon")
100
+
101
+	//
102
+	var orderInfo model.TaGoodsOrders
103
+	var orderDetail []model.TaGoodsOrdersDetail
104
+	var orderCoupon []model.TaGoodsOrdersCoupon
105
+
106
+	if err := json.Unmarshal([]byte(info), &orderInfo); err != nil {
107
+		utils.LogError("下单转换JSON失败: " + err.Error())
108
+		c.ResponseError(errors.New("下单数据格式不正确"))
109
+	}
110
+
111
+	if err := json.Unmarshal([]byte(detail), &orderDetail); err != nil {
112
+		utils.LogError("下单详情转换JSON失败: " + err.Error())
113
+		c.ResponseError(errors.New("详情数据格式不正确"))
114
+	}
115
+
116
+	if err := json.Unmarshal([]byte(coupon), &orderCoupon); err != nil {
117
+		utils.LogError("下单优惠转换JSON失败: " + err.Error())
118
+		c.ResponseError(errors.New("优惠数据格式不正确"))
119
+	}
11 120
 
12
-	// page, _ := c.GetInt("page")
13
-	// pagesize, _ := c.GetInt("pagesize")
121
+	if err := c.serv.Orders(&orderInfo, orderDetail, orderCoupon); err != nil {
122
+		c.ResponseError(err)
123
+	}
14 124
 
125
+	c.ResponseJSON("ok")
15 126
 }

+ 2
- 1
routers/common.go Ver arquivo

@@ -182,7 +182,8 @@ func getCommonRoutes() beego.LinkNamespace {
182 182
 		beego.NSRouter("/goods/:id", &goods.GoodsController{}, "delete:UpdateGoods"),
183 183
 
184 184
 		// 商品订单
185
-		beego.NSRouter("/order/goods", &goods.GoodsController{}, "get:GetListByCase"),
185
+		beego.NSRouter("/order/goods", &goods.GoodsController{}, "get:GetOrderList"),
186
+		beego.NSRouter("/order/online/goods", &goods.GoodsController{}, "get:GetOnlineOrder"),
186 187
 
187 188
 		// 文件
188 189
 		beego.NSRouter("/file", &controllers.BaseController{}, "post:FileUpload"),

+ 4
- 0
routers/wechat.go Ver arquivo

@@ -2,6 +2,7 @@ package routers
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/controllers/customer"
5
+	"spaceofcheng/services/controllers/goods"
5 6
 
6 7
 	"github.com/astaxie/beego"
7 8
 )
@@ -12,5 +13,8 @@ func getWechatRoutes() beego.LinkNamespace {
12 13
 	return beego.NSNamespace(prefix,
13 14
 		// 会员
14 15
 		beego.NSRouter("/customer", &customer.CustomerController{}, "get:GetCustWXByID"),
16
+
17
+		// 下单
18
+		beego.NSRouter("/order", &goods.GoodsController{}, "post:PostOrder"),
15 19
 	)
16 20
 }