zjxpcyc před 6 roky
rodič
revize
31f91827f3

+ 3
- 1
controllers/goods/order.go Zobrazit soubor

@@ -250,7 +250,9 @@ func (c *GoodsController) GetCustomerOrders() {
250 250
 	page, _ := c.GetInt("page")
251 251
 	pageSize, _ := c.GetInt("pagesize")
252 252
 
253
-	orders, err := c.serv.GetCustomerOrders(page, pageSize)
253
+	fromClient := c.GetString("from")
254
+
255
+	orders, err := c.serv.GetCustomerOrders(page, pageSize, fromClient)
254 256
 	if err != nil {
255 257
 		c.ResponseError(err)
256 258
 	}

+ 20
- 6
models/goods/orders.go Zobrazit soubor

@@ -259,12 +259,19 @@ func (m *GoodsDAO) GetOrdersByRecord(recordid string) ([]OrdersWithGoods, error)
259 259
 }
260 260
 
261 261
 // GetCustomerOrders 获取用户订单
262
-func (m *GoodsDAO) GetCustomerOrders(custID string, page, pageSize int) ([]OrdersWithGoods, error) {
262
+func (m *GoodsDAO) GetCustomerOrders(custID string, page, pageSize int, fromClient string) ([]OrdersWithGoods, error) {
263 263
 	var orderList []OrdersWithGoods
264 264
 	sql := `select a.*, c.case_name from ta_goods_orders a 
265 265
 	inner join sys_case c on a.case_id=c.case_id
266 266
 	where a.user_id='` + custID +
267 267
 		`' and a.status=` + strconv.Itoa(models.STATUS_NORMAL)
268
+
269
+	if fromClient == "c" {
270
+		sql += " and (a.pay_type > '" + models.CONSUME_INNER + "' or a.pay_type < '" + models.CONSUME_INNER + "' )"
271
+	} else {
272
+		sql += " and a.pay_type = '" + models.CONSUME_INNER + "'"
273
+	}
274
+
268 275
 	sql += ` order by a.create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
269 276
 	err := m.db.Sql(sql).Find(&orderList)
270 277
 	if err != nil {
@@ -281,12 +288,19 @@ func (m *GoodsDAO) GetCustomerOrders(custID string, page, pageSize int) ([]Order
281 288
 }
282 289
 
283 290
 // GetCustomerOrdersCount 获取用户订单count
284
-func (m *GoodsDAO) GetCustomerOrdersCount(custID string) (int, error) {
291
+func (m *GoodsDAO) GetCustomerOrdersCount(custID, fromClient string) (int, error) {
285 292
 	var orderList []OrdersWithGoods
286 293
 	sql := `select a.*, c.case_name from ta_goods_orders a 
287 294
 	inner join sys_case c on a.case_id=c.case_id
288 295
 	where a.user_id='` + custID +
289 296
 		`' and a.status=` + strconv.Itoa(models.STATUS_NORMAL)
297
+
298
+	if fromClient == "c" {
299
+		sql += " and (a.pay_type > '" + models.CONSUME_INNER + "' or a.pay_type < '" + models.CONSUME_INNER + "' )"
300
+	} else {
301
+		sql += " and a.pay_type = '" + models.CONSUME_INNER + "'"
302
+	}
303
+
290 304
 	err := m.db.Sql(sql).Find(&orderList)
291 305
 	if err != nil {
292 306
 		return 0, err
@@ -297,14 +311,14 @@ func (m *GoodsDAO) GetCustomerOrdersCount(custID string) (int, error) {
297 311
 // GetOrdersCountByCase 根据案场获取订单信息
298 312
 func (m *GoodsDAO) GetOrdersCountByCase(caseid, userid string) (int64, error) {
299 313
 	order := new(model.TaGoodsOrders)
300
-	total, err := m.db.Where("case_id = ?", caseid).And("user_id=?", userid).And("status>"+strconv.Itoa(models.STATUS_DEL)).SumInt(order, "orders_num")
314
+	total, err := m.db.Where("case_id = ?", caseid).And("user_id=?", userid).And("pay_type=?", models.CONSUME_INNER).And("status=?", models.STATUS_NORMAL).SumInt(order, "orders_num")
301 315
 	return total, err
302 316
 }
303 317
 
304 318
 // GetMonthOrdersCountByCase 获取案场本月的订单数量
305 319
 func (m *GoodsDAO) GetMonthOrdersCountByCase(caseid, userid string) (int64, error) {
306 320
 	order := new(model.TaGoodsOrders)
307
-	total, err := m.db.Where("case_id = ?", caseid).And("user_id=?", userid).And("status>"+strconv.Itoa(models.STATUS_DEL)).And("date_format(create_date,'%Y-%m')=date_format(NOW(),'%Y-%m')").SumInt(order, "orders_num")
321
+	total, err := m.db.Where("case_id = ?", caseid).And("user_id=?", userid).And("pay_type=?", models.CONSUME_INNER).And("status=?", models.STATUS_NORMAL).And("date_format(create_date,'%Y-%m')=date_format(NOW(),'%Y-%m')").SumInt(order, "orders_num")
308 322
 	return total, err
309 323
 }
310 324
 
@@ -322,8 +336,8 @@ func (m *GoodsDAO) GetOrderDetailByUser(caseid, userid string) ([]model.TaGoodsO
322 336
 	var details []model.TaGoodsOrdersDetail
323 337
 	sql := `select a.* from ta_goods_orders_detail a inner join ta_goods_orders b on a.orders_id=b.orders_id
324 338
 		inner join ta_customer c on b.user_id = c.customer_id
325
-	where c.user_id=? and b.status>? and b.case_id=?`
326
-	if err := m.db.Sql(sql, userid, models.STATUS_DEL, caseid).Find(&details); err != nil {
339
+	where c.user_id=? and b.status>? and b.case_id=? and b.pay_type = ? order by b.create_date desc`
340
+	if err := m.db.Sql(sql, userid, models.STATUS_DEL, caseid, models.CONSUME_INNER).Find(&details); err != nil {
327 341
 		return nil, err
328 342
 	}
329 343
 	return details, nil

+ 12
- 6
models/statistics/goods.go Zobrazit soubor

@@ -2,6 +2,7 @@ package statistics
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/utils"
5 6
 	"strconv"
6 7
 	"strings"
7 8
 	"time"
@@ -128,7 +129,7 @@ type GoodsOrdersStatistics struct {
128 129
 }
129 130
 
130 131
 // GetGoodsOrderStatistics 获取商品订单
131
-func (m *StatisticsDAO) GetGoodsOrderStatistics(status, usertype, caseids, begindate, enddate, paytype string, page, pageSize int) ([]GoodsOrdersStatistics, error) {
132
+func (m *StatisticsDAO) GetGoodsOrderStatistics(status, usertype, caseids, begindate, enddate, paytype string, page, pageSize int) ([]GoodsOrdersStatistics, int64, error) {
132 133
 	var orders []GoodsOrdersStatistics
133 134
 	sql := `SELECT
134 135
 						a.orders_id,
@@ -177,20 +178,25 @@ func (m *StatisticsDAO) GetGoodsOrderStatistics(status, usertype, caseids, begin
177 178
 	if status != "" {
178 179
 		sql = sql + ` and a.make_status='` + status + `'`
179 180
 	}
180
-	sql = sql + ` order by a.create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
181
+	sql = sql + ` order by a.create_date desc`
181 182
 
182
-	err := m.db.Sql(sql).Find(&orders)
183
+	limit := []int{
184
+		pageSize,
185
+		(page - 1) * pageSize,
186
+	}
187
+
188
+	total, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&orders, sql, limit)
183 189
 	if err != nil {
184
-		return nil, err
190
+		return nil, 0, err
185 191
 	}
186 192
 	for inx, item := range orders {
187 193
 		details, err := m.GetGoodsOrderDetailByOrderId(item.OrdersId)
188 194
 		if err != nil {
189
-			return nil, err
195
+			return nil, 0, err
190 196
 		}
191 197
 		orders[inx].Details = details
192 198
 	}
193
-	return orders, err
199
+	return orders, total, err
194 200
 }
195 201
 
196 202
 // GetGoodsOrderDetailByOrderId 获取商品详情

+ 15
- 16
service/goods/orders.go Zobrazit soubor

@@ -300,9 +300,6 @@ func (s *GoodsServ) validOrdersInfo(info *model.TaGoodsOrders) error {
300 300
 
301 301
 	// 如果是管理人员
302 302
 	if cust.UserId != "" {
303
-		// 内部人员
304
-		info.PayType = models.CONSUME_INNER
305
-
306 303
 		// 查找用户类型
307 304
 		userWithTypes, err := s.userDAO.GetUserWithTypeByID(cust.UserId)
308 305
 		if err != nil {
@@ -328,17 +325,19 @@ func (s *GoodsServ) validOrdersInfo(info *model.TaGoodsOrders) error {
328 325
 			}
329 326
 		}
330 327
 
331
-		// 查找禁用名单
332
-		fibUsers, err := s.userDAO.GetForbidUserByUserID(cust.UserId)
333
-		if err != nil {
334
-			utils.LogError("查询下单人是否被禁出错: " + err.Error())
335
-			return errors.New("验证下单人出错")
336
-		}
328
+		if info.PayType == models.CONSUME_INNER {
329
+			// 查找禁用名单
330
+			fibUsers, err := s.userDAO.GetForbidUserByUserID(cust.UserId)
331
+			if err != nil {
332
+				utils.LogError("查询下单人是否被禁出错: " + err.Error())
333
+				return errors.New("验证下单人出错")
334
+			}
337 335
 
338
-		if fibUsers != nil && len(fibUsers) > 0 {
339
-			for _, u := range fibUsers {
340
-				if u.ForbidType == models.FORBID_ORDER && u.Status == models.STATUS_NORMAL {
341
-					return errors.New("当前下单人被禁止点单")
336
+			if fibUsers != nil && len(fibUsers) > 0 {
337
+				for _, u := range fibUsers {
338
+					if u.ForbidType == models.FORBID_ORDER && u.Status == models.STATUS_NORMAL {
339
+						return errors.New("当前下单人被禁止点单")
340
+					}
342 341
 				}
343 342
 			}
344 343
 		}
@@ -501,7 +500,7 @@ func (s *GoodsServ) validOrdersCase(info *model.TaGoodsOrders, cust model.TaCust
501 500
 }
502 501
 
503 502
 // GetCustomerOrders 获取用户订单
504
-func (s *GoodsServ) GetCustomerOrders(page, pageSize int) (map[string]interface{}, error) {
503
+func (s *GoodsServ) GetCustomerOrders(page, pageSize int, fromClient string) (map[string]interface{}, error) {
505 504
 	if pageSize == 0 {
506 505
 		pageSize = service.PAGENUM
507 506
 	}
@@ -509,12 +508,12 @@ func (s *GoodsServ) GetCustomerOrders(page, pageSize int) (map[string]interface{
509 508
 		page = 1
510 509
 	}
511 510
 	cust := s.ctx.Get("customer").(model.TaCustomer)
512
-	list, err := s.dao.GetCustomerOrders(cust.CustomerId, page, pageSize)
511
+	list, err := s.dao.GetCustomerOrders(cust.CustomerId, page, pageSize, fromClient)
513 512
 	if err != nil {
514 513
 		utils.LogError("获取订单信息失败: " + err.Error())
515 514
 		return nil, errors.New("获取订单信息失败")
516 515
 	}
517
-	total, err := s.dao.GetCustomerOrdersCount(cust.CustomerId)
516
+	total, err := s.dao.GetCustomerOrdersCount(cust.CustomerId, fromClient)
518 517
 	if err != nil {
519 518
 		utils.LogError("获取订单信息失败: " + err.Error())
520 519
 		return nil, errors.New("获取订单信息失败")

+ 2
- 8
service/statistics/goods.go Zobrazit soubor

@@ -63,7 +63,7 @@ func (s *StatisticsServ) GetGoodsOrdersStatistics(status, usertype, caseids, beg
63 63
 		return nil, errors.New("请先选择案场信息")
64 64
 	}
65 65
 
66
-	list, err := s.dao.GetGoodsOrderStatistics(status, usertype, caseids, begindate, enddate, paytype, page, pageSize)
66
+	list, total, err := s.dao.GetGoodsOrderStatistics(status, usertype, caseids, begindate, enddate, paytype, page, pageSize)
67 67
 	if err != nil {
68 68
 		utils.LogError("获取商品订单统计数据失败: " + err.Error())
69 69
 		return nil, errors.New("获取商品订单统计数据失败")
@@ -79,18 +79,12 @@ func (s *StatisticsServ) GetGoodsOrdersStatistics(status, usertype, caseids, beg
79 79
 		case models.CONSUME_POINTS:
80 80
 			list[a].PayTypeStr = "积分"
81 81
 		}
82
-
83
-	}
84
-	all, err := s.dao.GetGoodsOrderStatisticsCount(status, usertype, caseids, begindate, paytype, enddate)
85
-	if err != nil {
86
-		utils.LogError("获取商品订单统计数据失败: " + err.Error())
87
-		return nil, errors.New("获取商品订单统计数据失败")
88 82
 	}
89 83
 
90 84
 	return map[string]interface{}{
91 85
 		"list":     list,
92 86
 		"pagesize": pageSize,
93
-		"pagenum":  len(all),
87
+		"pagenum":  total,
94 88
 		"page":     page,
95 89
 	}, nil
96 90
 }