Browse Source

bug修改

wangfei 6 years ago
parent
commit
cb4af38176

+ 2
- 1
controllers/card/card.go View File

@@ -40,8 +40,9 @@ func (c *CardController) ListByCase() {
40 40
 
41 41
 	sendtype := c.GetString("sendtype")
42 42
 	usetype := c.GetString("usetype")
43
+	usedid := c.GetString("usedid")
43 44
 
44
-	list, total, err := c.serv.GetCardList(caseid, sendtype, usetype, page, pagesize)
45
+	list, total, err := c.serv.GetCardList(caseid, sendtype, usetype, usedid, page, pagesize)
45 46
 	if err != nil {
46 47
 		c.ResponseError(err)
47 48
 	}

+ 2
- 1
controllers/coupon/coupon.go View File

@@ -41,8 +41,9 @@ func (c *CouponController) ListByCase() {
41 41
 
42 42
 	sendtype := c.GetString("sendtype")
43 43
 	usetype := c.GetString("usetype")
44
+	usedid := c.GetString("usedid")
44 45
 
45
-	list, total, err := c.serv.GetCouponList(caseID, sendtype, usetype, page, pagesize)
46
+	list, total, err := c.serv.GetCouponList(caseID, sendtype, usetype, usedid, page, pagesize)
46 47
 	if err != nil {
47 48
 		c.ResponseError(err)
48 49
 	}

+ 2
- 0
controllers/statistics/cardcoupon.go View File

@@ -150,6 +150,7 @@ func (c *StatisticsController) CardCouponUsedStatisticsExcel() {
150 150
 		"获取方式",
151 151
 		"微信昵称",
152 152
 		"手机号",
153
+		"销售",
153 154
 		"有效期",
154 155
 		"获取时间",
155 156
 		"使用时间",
@@ -197,6 +198,7 @@ func (c *StatisticsController) CardCouponUsedStatisticsExcel() {
197 198
 			receivetype,
198 199
 			item.CustomerName,
199 200
 			item.Phone,
201
+			item.SalesName,
200 202
 			item.EndDate.Format("2006-01-02 15:04:05"),
201 203
 			item.ReceiveDate.Format("2006-01-02 15:04:05"),
202 204
 			item.UsedDate.Format("2006-01-02 15:04:05"),

+ 4
- 2
models/flashbuy/flashbuy.go View File

@@ -257,8 +257,10 @@ FROM
257 257
 	INNER JOIN sys_case c ON a.case_id = c.case_id
258 258
 	WHERE a.customer_flash_buy_id = '` + customerFlashBuyId + `'`
259 259
 	err := m.db.Sql(sql).Find(&customerDetail)
260
-	return &customerDetail[0], err
261
-
260
+	if len(customerDetail) > 0 {
261
+		return &customerDetail[0], err
262
+	}
263
+	return nil, err
262 264
 }
263 265
 
264 266
 // GetCustomerFlashBuy 获取用户抢购信息

+ 19
- 10
models/luckdraw/luckdraw.go View File

@@ -295,6 +295,10 @@ func (m *LuckDrawDao) SaveLuckDrawPrizes(prizes []PrizeWithDefaults, luckdraw *m
295 295
 		saveprizes = append(saveprizes, prizes[inx].TaLuckdrawPrize)
296 296
 		// 保存内定信息
297 297
 		if luckdraw.IsInternalDefault == models.BOOL_TRUE {
298
+			if len(prize.Defaults) > prize.Stock {
299
+				return errors.New("内置用户不能超过奖品数量!")
300
+			}
301
+
298 302
 			err := m.SaveLuckDrawDefault(prize.Defaults, prizes[inx].TaLuckdrawPrize)
299 303
 			if err != nil {
300 304
 				return err
@@ -501,7 +505,6 @@ func (m *LuckDrawDao) LuckDraw(id string, user *model.TaCustomer) (*model.TaLuck
501 505
 		utils.LogError("操作失败,请刷新后重试:", err)
502 506
 		return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
503 507
 	}
504
-
505 508
 	var prize = new(model.TaLuckdrawPrize)
506 509
 	if defaultPrize.Id != "" {
507 510
 		// 内置用户,直接中奖
@@ -513,14 +516,13 @@ func (m *LuckDrawDao) LuckDraw(id string, user *model.TaCustomer) (*model.TaLuck
513 516
 			return nil, nil, nil, errors.New("获取奖项失败!")
514 517
 		}
515 518
 		if len(prizes) == 0 {
516
-			err = m.UpdateLuckDrawEndDate(luckdraw.Id)
517
-			if err != nil {
518
-				utils.LogError("操作失败,请刷新后重试:", err)
519
-				return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
520
-			}
519
+			// err = m.UpdateLuckDrawEndDate(luckdraw.Id)
520
+			// if err != nil {
521
+			// 	utils.LogError("操作失败,请刷新后重试:", err)
522
+			// 	return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
523
+			// }
521 524
 			return nil, nil, nil, errors.New("活动已结束!")
522 525
 		}
523
-
524 526
 		prize, err = m.GetWinning(prizes)
525 527
 		if err != nil {
526 528
 			utils.LogError("获取奖项失败:", err)
@@ -599,7 +601,7 @@ func (m *LuckDrawDao) LuckDraw(id string, user *model.TaCustomer) (*model.TaLuck
599 601
 			utils.LogError("更新库存失败:", err)
600 602
 			return nil, nil, nil, err
601 603
 		}
602
-		stockprizes, err := m.GetPrizeStock(id)
604
+		stockprizes, err := m.GetPrizeStockAll(id)
603 605
 		if err != nil {
604 606
 			utils.LogError("更新库存失败:", err)
605 607
 			return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
@@ -830,13 +832,20 @@ func (m *LuckDrawDao) GetPrizeStock(luckdrawid string) ([]model.TaLuckdrawPrize,
830 832
 	var prizes []model.TaLuckdrawPrize
831 833
 	sql := `select a.remainder-(case when b.default_num is null then 0 else b.default_num end) as remainder,
832 834
 	a.* from ta_luckdraw_prize a 
833
-	left join (select prize_id,count(1) as default_num from ta_prize_default where luckdraw_id) b 
835
+	left join (select prize_id,count(1) as default_num from ta_prize_default where luckdraw_id=? and is_receive=0 group by prize_id) b 
834 836
 	on a.id=b.prize_id where a.luckdraw_id=? and a.status=? and (a.remainder-(case when b.default_num is null then 0 else b.default_num end)>0 or is_reality=0)`
835
-	err := m.db.Sql(sql, luckdrawid, models.STATUS_NORMAL).Find(&prizes)
837
+	err := m.db.Sql(sql, luckdrawid, luckdrawid, models.STATUS_NORMAL).Find(&prizes)
836 838
 	// err := m.db.Where("luckdraw_id=?", luckdrawid).And("status=?", models.STATUS_NORMAL).And("(remainder>0 or is_reality=0)").Find(&prizes)
837 839
 	return prizes, err
838 840
 }
839 841
 
842
+// GetPrizeStockAll 获取奖项
843
+func (m *LuckDrawDao) GetPrizeStockAll(luckdrawid string) ([]model.TaLuckdrawPrize, error) {
844
+	var prizes []model.TaLuckdrawPrize
845
+	err := m.db.Where("luckdraw_id=?", luckdrawid).And("status=?", models.STATUS_NORMAL).And("(remainder>0 or is_reality=0)").Find(&prizes)
846
+	return prizes, err
847
+}
848
+
840 849
 // GetPrizeByID 根据id获取奖品信息
841 850
 func (m *LuckDrawDao) GetPrizeByID(id string) (model.TaLuckdrawPrize, error) {
842 851
 	var prize = model.TaLuckdrawPrize{}

+ 2
- 2
models/vipcard/vipcard.go View File

@@ -53,7 +53,7 @@ WHERE
53 53
 	}
54 54
 
55 55
 	if sellerName != "" {
56
-		sql = sql + ` and tc.recommend_name like '%` + sellerName + `%'`
56
+		sql = sql + ` and vcc.sales_name like '%` + sellerName + `%'`
57 57
 	}
58 58
 
59 59
 	if userName != "" {
@@ -83,7 +83,7 @@ WHERE
83 83
 	}
84 84
 
85 85
 	if sellerName != "" {
86
-		sql = sql + ` and tc.recommend_name like '%` + sellerName + `%'`
86
+		sql = sql + ` and vcc.sales_name like '%` + sellerName + `%'`
87 87
 	}
88 88
 
89 89
 	if userName != "" {

+ 54
- 6
service/card/card.go View File

@@ -11,6 +11,7 @@ import (
11 11
 	"spaceofcheng/services/models/system"
12 12
 	"spaceofcheng/services/service"
13 13
 	"spaceofcheng/services/utils"
14
+	"strconv"
14 15
 	"strings"
15 16
 	"time"
16 17
 
@@ -41,7 +42,7 @@ func NewCardServ(ctx *utils.Context) *CardServ {
41 42
 }
42 43
 
43 44
 // GetCardList 获取卡列表
44
-func (s *CardServ) GetCardList(caseID, sendtype, usetype string, pagenavi ...int) ([]model.TaCouponCard, int64, error) {
45
+func (s *CardServ) GetCardList(caseID, sendtype, usetype, usedid string, pagenavi ...int) ([]model.TaCouponCard, int64, error) {
45 46
 	filters := []string{}
46 47
 	if caseID != "" {
47 48
 		if err := utils.NewAuthEngine(s.ctx).CheckCase(caseID); err != nil {
@@ -72,15 +73,59 @@ func (s *CardServ) GetCardList(caseID, sendtype, usetype string, pagenavi ...int
72 73
 		if usetype != "" {
73 74
 			switch usetype {
74 75
 			case models.COUPONCARD_USETYPE_LUCKDRAW:
75
-				filters = append(filters, "card_id not in (select (case when resource_id is null then '' else resource_id end) from sys_activity_action where active_type='"+models.ActGiveCard+"') and used_count=0")
76
+				filters = append(filters,
77
+					`card_id not in (
78
+						SELECT
79
+						(
80
+							CASE
81
+							WHEN resource_id IS NULL THEN
82
+								''
83
+							ELSE
84
+								resource_id
85
+							END
86
+						)
87
+					FROM
88
+						sys_activity_action
89
+					WHERE
90
+						active_type = '`+models.ActGiveCard+`' and status>`+strconv.Itoa(models.STATUS_DEL)+`
91
+					union 
92
+						SELECT
93
+							a.coupon_card_id
94
+						FROM
95
+						ta_luckdraw_prize a inner join ta_luckdraw b on a.luckdraw_id = b.id
96
+						WHERE
97
+							a.coupon_card_type = '`+models.PRIZE_TYPE_CARD+`'
98
+							and a.luckdraw_id <> '`+usedid+`' and b.status>`+strconv.Itoa(models.STATUS_DEL)+`
99
+					) and used_count=0`)
76 100
 				break
77 101
 			case models.COUPONCARD_USETYPE_SYS:
78
-				filters = append(filters, "card_id not in (select coupon_card_id from ta_luckdraw_record where coupon_card_type='"+models.PRIZE_TYPE_CARD+"') and used_count=0")
102
+				filters = append(filters, `card_id not in (
103
+					SELECT
104
+					a.coupon_card_id
105
+					FROM
106
+					ta_luckdraw_prize a inner join ta_luckdraw b on a.luckdraw_id = b.id
107
+					WHERE
108
+					a.coupon_card_type = '`+models.PRIZE_TYPE_CARD+`' and b.status>`+strconv.Itoa(models.STATUS_DEL)+`
109
+					union 
110
+					SELECT
111
+						(
112
+							CASE
113
+							WHEN resource_id IS NULL THEN
114
+								''
115
+							ELSE
116
+								resource_id
117
+							END
118
+						)
119
+					FROM
120
+						sys_activity_action
121
+					WHERE
122
+						active_type = '`+models.ActGiveCard+`'
123
+						and action_id<>'`+usedid+`' and status>`+strconv.Itoa(models.STATUS_DEL)+`
124
+				) and used_count=0`)
79 125
 				break
80 126
 			}
81 127
 		}
82 128
 	}
83
-
84 129
 	limit := utils.GetPageNaviLimit(pagenavi...)
85 130
 	res, total, err := s.dao.GetCardList(filters, limit)
86 131
 	if err != nil {
@@ -514,7 +559,10 @@ func (s *CardServ) ReceiveCard(id, saleid, serialcode string) error {
514 559
 	if !isok {
515 560
 		return errors.New("log-error-该卡已被领取!")
516 561
 	}
517
-
562
+	salername := saler.RealName
563
+	if salername == "" {
564
+		salername = saler.UserName
565
+	}
518 566
 	// 领取
519 567
 	var customerCard = model.TaCustomerCard{
520 568
 		CustomerCardId:   utils.GetGUID(),
@@ -522,7 +570,7 @@ func (s *CardServ) ReceiveCard(id, saleid, serialcode string) error {
522 570
 		CustomerCardName: card.CardName,
523 571
 		CustomerId:       customer.CustomerId,
524 572
 		SalesId:          saler.UserId,
525
-		SalesName:        saler.UserName,
573
+		SalesName:        salername,
526 574
 		StartDate:        card.StartDate,
527 575
 		EndDate:          card.EndDate,
528 576
 		CaseId:           card.CaseId,

+ 53
- 6
service/coupon/coupon.go View File

@@ -9,6 +9,7 @@ import (
9 9
 	"spaceofcheng/services/models/system"
10 10
 	"spaceofcheng/services/service"
11 11
 	"spaceofcheng/services/utils"
12
+	"strconv"
12 13
 	"strings"
13 14
 	"time"
14 15
 
@@ -35,7 +36,7 @@ func NewCouponServ(ctx *utils.Context) *CouponServ {
35 36
 }
36 37
 
37 38
 // GetCouponList 获取优惠券列表
38
-func (s *CouponServ) GetCouponList(caseID, sendtype, usetype string, pagenavi ...int) ([]model.TaCoupon, int64, error) {
39
+func (s *CouponServ) GetCouponList(caseID, sendtype, usetype, usedid string, pagenavi ...int) ([]model.TaCoupon, int64, error) {
39 40
 	filters := []string{}
40 41
 
41 42
 	if caseID != "" {
@@ -67,15 +68,58 @@ func (s *CouponServ) GetCouponList(caseID, sendtype, usetype string, pagenavi ..
67 68
 		if usetype != "" {
68 69
 			switch usetype {
69 70
 			case models.COUPONCARD_USETYPE_LUCKDRAW:
70
-				filters = append(filters, "coupon_id not in (select (case when resource_id is null then '' else resource_id end) from sys_activity_action where active_type='"+models.ActGiveCoupon+"') and used_count=0")
71
+				filters = append(filters, `coupon_id not in (
72
+					SELECT
73
+						(
74
+							CASE
75
+							WHEN resource_id IS NULL THEN
76
+								''
77
+							ELSE
78
+								resource_id
79
+							END
80
+						)
81
+					FROM
82
+						sys_activity_action
83
+					WHERE
84
+						active_type = '`+models.ActGiveCoupon+`' and status>`+strconv.Itoa(models.STATUS_DEL)+`
85
+					union 
86
+					SELECT
87
+						a.coupon_card_id
88
+					FROM
89
+					ta_luckdraw_prize a inner join ta_luckdraw b on a.luckdraw_id = b.id
90
+					WHERE
91
+						a.coupon_card_type = '`+models.PRIZE_TYPE_COUPON+`'
92
+						and a.luckdraw_id<>'`+usedid+`' and b.status>`+strconv.Itoa(models.STATUS_DEL)+`
93
+					) and used_count=0 `)
71 94
 				break
72 95
 			case models.COUPONCARD_USETYPE_SYS:
73
-				filters = append(filters, "coupon_id not in (select coupon_card_id from ta_luckdraw_record where coupon_card_type='"+models.PRIZE_TYPE_COUPON+"') and used_count=0")
96
+				filters = append(filters, `coupon_id not in (
97
+					SELECT
98
+						a.coupon_card_id
99
+					FROM
100
+					ta_luckdraw_prize a inner join ta_luckdraw b on a.luckdraw_id = b.id
101
+					WHERE
102
+						a.coupon_card_type = '`+models.PRIZE_TYPE_COUPON+`' and b.status>`+strconv.Itoa(models.STATUS_DEL)+`
103
+					union
104
+					SELECT
105
+					(
106
+						CASE
107
+						WHEN resource_id IS NULL THEN
108
+							''
109
+						ELSE
110
+							resource_id
111
+						END
112
+					)
113
+				FROM
114
+					sys_activity_action
115
+				WHERE
116
+					active_type = '`+models.ActGiveCoupon+`'
117
+					and action_id<>'`+usedid+`' and status>`+strconv.Itoa(models.STATUS_DEL)+`
118
+				) and used_count=0`)
74 119
 				break
75 120
 			}
76 121
 		}
77 122
 	}
78
-
79 123
 	limit := utils.GetPageNaviLimit(pagenavi...)
80 124
 	res, total, err := s.dao.GetCouponList(filters, limit)
81 125
 	if err != nil {
@@ -557,14 +601,17 @@ func (s *CouponServ) ReceiveCoupon(id, saleid, serialcode string) error {
557 601
 		hs := int64(coupon.ValidDays * 24)
558 602
 		endDate = time.Now().Local().Add(time.Hour * time.Duration(hs))
559 603
 	}
560
-
604
+	salername := saler.RealName
605
+	if salername == "" {
606
+		salername = saler.UserName
607
+	}
561 608
 	// 领取
562 609
 	var customerCoupon = model.TaCustomerCoupon{
563 610
 		CouponId:           coupon.CouponId,
564 611
 		CustomerCouponName: coupon.CouponName,
565 612
 		CustomerId:         customer.CustomerId,
566 613
 		SalesId:            saler.UserId,
567
-		SalesName:          saler.UserName,
614
+		SalesName:          salername,
568 615
 		StartDate:          startDate,
569 616
 		EndDate:            endDate,
570 617
 		CaseId:             coupon.CaseId,

+ 2
- 2
service/flashbuy/flashbuy.go View File

@@ -250,8 +250,8 @@ func (s *FlashBuyServ) FlashBuy(id string) error {
250 250
 	customerFlashBuy.CaseId = flashbuy.CaseId
251 251
 	customerFlashBuy.OrgId = flashbuy.OrgId
252 252
 	if flashbuy.ValidateType == models.FLASH_VALIDATE_DATE {
253
-		customerFlashBuy.ValidateStart = flashbuy.StartDate
254
-		customerFlashBuy.ValidateEnd = flashbuy.EndDate
253
+		customerFlashBuy.ValidateStart = flashbuy.ValidateStart
254
+		customerFlashBuy.ValidateEnd = flashbuy.ValidateEnd
255 255
 	} else {
256 256
 		customerFlashBuy.ValidateStart = time.Now().Local()
257 257
 		customerFlashBuy.ValidateEnd = time.Now().Local().AddDate(0, 0, flashbuy.ValidateDays)

+ 1
- 1
service/luckdraw/luckdraw.go View File

@@ -236,7 +236,7 @@ func (s *LuckdrawServ) SaveLuckDraw(luckdraw *luckdraw.LuckDrawInfo) (*model.TaL
236 236
 	err = s.dao.SaveLuckDrawPrizes(luckdraw.Prizes, newInfo)
237 237
 	if err != nil {
238 238
 		utils.LogError("保存奖品信息失败: " + err.Error())
239
-		return nil, errors.New("保存奖品信息失败")
239
+		return nil, errors.New("保存奖品信息失败" + err.Error())
240 240
 	}
241 241
 	return newInfo, nil
242 242
 }