|
@@ -97,7 +97,7 @@ func (m *LuckDrawDao) GetLuckDrawRecordCount(id, tel string) (int, error) {
|
97
|
97
|
sql = sql + ` and b.phone=` + tel
|
98
|
98
|
}
|
99
|
99
|
|
100
|
|
- err := m.db.Sql(sql).Find(&records)
|
|
100
|
+ err := m.db.Sql(sql, id).Find(&records)
|
101
|
101
|
return len(records), err
|
102
|
102
|
}
|
103
|
103
|
|
|
@@ -110,7 +110,7 @@ func (m *LuckDrawDao) GetLuckDrawRecord(id, tel string, page, pageSize int) ([]R
|
110
|
110
|
}
|
111
|
111
|
sql = sql + ` ORDER BY a.create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
|
112
|
112
|
|
113
|
|
- err := m.db.Sql(sql).Find(&records)
|
|
113
|
+ err := m.db.Sql(sql, id).Find(&records)
|
114
|
114
|
return records, err
|
115
|
115
|
}
|
116
|
116
|
|
|
@@ -329,7 +329,6 @@ func (m *LuckDrawDao) SavePrizeDetail(prize model.TaLuckdrawPrize) error {
|
329
|
329
|
var card model.TaCouponCard
|
330
|
330
|
_, err := m.db.Where("card_id=?", prize.CouponCardId).Get(&card)
|
331
|
331
|
if err != nil {
|
332
|
|
- beego.Error(err)
|
333
|
332
|
return err
|
334
|
333
|
}
|
335
|
334
|
if card.UsedCount > 0 {
|
|
@@ -362,6 +361,19 @@ func (m *LuckDrawDao) UpdateLuckDraw(luckdraw model.TaLuckdraw, cols []string) e
|
362
|
361
|
return err
|
363
|
362
|
}
|
364
|
363
|
|
|
364
|
+// UpdatePrizeDesc 更新奖品描述
|
|
365
|
+func (m *LuckDrawDao) UpdatePrizeDesc(prizes []PrizeWithDefaults) error {
|
|
366
|
+ for _, prize := range prizes {
|
|
367
|
+ _, err := m.db.Cols([]string{
|
|
368
|
+ "prize_desc",
|
|
369
|
+ }...).Where("id=?", prize.Id).Update(prize.TaLuckdrawPrize)
|
|
370
|
+ if err != nil {
|
|
371
|
+ return err
|
|
372
|
+ }
|
|
373
|
+ }
|
|
374
|
+ return nil
|
|
375
|
+}
|
|
376
|
+
|
365
|
377
|
// GetLuckDraw 获取抽奖信息
|
366
|
378
|
func (m *LuckDrawDao) GetLuckDraw(id string) (*LuckDraw, error) {
|
367
|
379
|
if id == "" {
|
|
@@ -388,13 +400,13 @@ func (m *LuckDrawDao) GetLuckDraw(id string) (*LuckDraw, error) {
|
388
|
400
|
}
|
389
|
401
|
|
390
|
402
|
// AddCustomerLuckDraw 保存用户抽奖配置信息
|
391
|
|
-func (m *LuckDrawDao) AddCustomerLuckDraw(custLuckDraw *model.TaLuckdrawCustomer) (*model.TaLuckdrawCustomer, error) {
|
|
403
|
+func (m *LuckDrawDao) AddCustomerLuckDraw(custLuckDraw model.TaLuckdrawCustomer) (*model.TaLuckdrawCustomer, error) {
|
392
|
404
|
custLuckDraw.LuckdrawCustomerId = utils.GetGUID()
|
393
|
405
|
custLuckDraw.CreateDate = time.Now()
|
394
|
406
|
custLuckDraw.ShareNum = 0
|
395
|
|
- custLuckDraw.SurplusNum = 0
|
|
407
|
+ custLuckDraw.ShareSurplusNum = 0
|
396
|
408
|
_, err := m.db.Insert(custLuckDraw)
|
397
|
|
- return custLuckDraw, err
|
|
409
|
+ return &custLuckDraw, err
|
398
|
410
|
}
|
399
|
411
|
|
400
|
412
|
// LuckDraw 抽奖
|
|
@@ -441,33 +453,18 @@ func (m *LuckDrawDao) LuckDraw(id string, user *model.TaCustomer) (*model.TaLuck
|
441
|
453
|
// 抽奖次数判断
|
442
|
454
|
if cstluckdrawSet.SurplusNum <= 0 {
|
443
|
455
|
return nil, nil, nil, errors.New("您的抽奖次数已用完!")
|
|
456
|
+ } else {
|
|
457
|
+ // 抽奖次数库存修改
|
|
458
|
+ err := m.UpdateCstLuckdrawSurplus(cstluckdrawSet)
|
|
459
|
+ if err != nil {
|
|
460
|
+ return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
|
|
461
|
+ }
|
|
462
|
+ // 更新参与人数
|
|
463
|
+ err = m.UpdateLuckDrawJoinedNum(id)
|
|
464
|
+ if err != nil {
|
|
465
|
+ return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
|
|
466
|
+ }
|
444
|
467
|
}
|
445
|
|
- // userluckdraws, err := m.GetUserRecordByLuckDraw(user.CustomerId, id)
|
446
|
|
- // if err != nil {
|
447
|
|
- // utils.LogError("获取用户抽奖信息失败:", err)
|
448
|
|
- // return nil, nil, nil, errors.New("获取用户抽奖信息失败!")
|
449
|
|
- // }
|
450
|
|
-
|
451
|
|
- // if len(userluckdraws) >= luckdraw.LuckdrawNum {
|
452
|
|
- // return nil, nil, nil, errors.New("您的抽奖次数已用完!")
|
453
|
|
- // }
|
454
|
|
-
|
455
|
|
- // 判断人数是否已超过限制
|
456
|
|
- // if luckdraw.JoinNum > 0 {
|
457
|
|
- // usernum, err := m.GetLuckDrawCustomerNum(luckdraw.Id)
|
458
|
|
- // if err != nil {
|
459
|
|
- // utils.LogError("获取抽奖人员信息失败:", err)
|
460
|
|
- // return nil, nil, nil, errors.New("获取抽奖人员信息失败!")
|
461
|
|
- // }
|
462
|
|
- // if luckdraw.JoinNum <= usernum {
|
463
|
|
- // err = m.UpdateLuckDrawEndDate(luckdraw.Id)
|
464
|
|
- // if err != nil {
|
465
|
|
- // utils.LogError("操作失败,请刷新后重试:", err)
|
466
|
|
- // return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
|
467
|
|
- // }
|
468
|
|
- // return nil, nil, nil, errors.New("活动已结束!")
|
469
|
|
- // }
|
470
|
|
- // }
|
471
|
468
|
|
472
|
469
|
// 判断是否内置用户
|
473
|
470
|
defaultPrize, err := m.GetPrizeDefaultByUser(id, user)
|
|
@@ -581,6 +578,37 @@ func (m *LuckDrawDao) LuckDraw(id string, user *model.TaCustomer) (*model.TaLuck
|
581
|
578
|
return prize, &detail, record, err
|
582
|
579
|
}
|
583
|
580
|
|
|
581
|
+// UpdateCstLuckdrawSurplus 更新用户抽奖剩余次数
|
|
582
|
+func (m *LuckDrawDao) UpdateCstLuckdrawSurplus(cstLuckDraw *model.TaLuckdrawCustomer) error {
|
|
583
|
+ sql := `update ta_luckdraw_customer set share_surplus_num = (case when surplus_num > share_surplus_num then share_surplus_num else share_surplus_num - 1 end),
|
|
584
|
+ surplus_num = surplus_num - 1 where luckdraw_customer_id = ? and surplus_num>0`
|
|
585
|
+ res, err := m.db.Exec(sql, cstLuckDraw.LuckdrawCustomerId)
|
|
586
|
+ if err != nil {
|
|
587
|
+ return err
|
|
588
|
+ }
|
|
589
|
+ len, _ := res.RowsAffected()
|
|
590
|
+ if len < 1 {
|
|
591
|
+ return errors.New("您没有剩余次数!")
|
|
592
|
+ }
|
|
593
|
+ return nil
|
|
594
|
+}
|
|
595
|
+
|
|
596
|
+// UpdateLuckDrawJoinedNum 更新抽奖参与人数
|
|
597
|
+func (m *LuckDrawDao) UpdateLuckDrawJoinedNum(id string) error {
|
|
598
|
+ var records []model.TaLuckdrawRecord
|
|
599
|
+ sql := `select DISTINCT user_id from ta_luckdraw_record where luckdraw_id=?`
|
|
600
|
+ err := m.db.Sql(sql, id).Find(&records)
|
|
601
|
+ if err != nil {
|
|
602
|
+ return err
|
|
603
|
+ }
|
|
604
|
+ if len(records) > 0 {
|
|
605
|
+ sql = `update ta_luckdraw set joined_num=? where id=?`
|
|
606
|
+ _, err = m.db.Exec(sql, len(records), id)
|
|
607
|
+ return err
|
|
608
|
+ }
|
|
609
|
+ return nil
|
|
610
|
+}
|
|
611
|
+
|
584
|
612
|
// PrizeWithDefault 默认奖品
|
585
|
613
|
type PrizeWithDefault struct {
|
586
|
614
|
DefaultId string
|
|
@@ -845,6 +873,37 @@ func (m *LuckDrawDao) GetUserRecordByLuckDraw(userid string, luckdrawid string)
|
845
|
873
|
return records, err
|
846
|
874
|
}
|
847
|
875
|
|
|
876
|
+// GetUserLuckDrawSet 获取用户抽奖设置
|
|
877
|
+func (m *LuckDrawDao) GetUserLuckDrawSet(customer model.TaCustomer, luckdrawid string) (*model.TaLuckdrawCustomer, error) {
|
|
878
|
+ var cstluckdraw = model.TaLuckdrawCustomer{}
|
|
879
|
+ _, err := m.db.Where("customer_id=?").And("luckdraw_id=?", luckdrawid).Get(&cstluckdraw)
|
|
880
|
+ if err != nil {
|
|
881
|
+ return nil, err
|
|
882
|
+ }
|
|
883
|
+ if cstluckdraw.CustomerId != "" {
|
|
884
|
+ return &cstluckdraw, nil
|
|
885
|
+ }
|
|
886
|
+ // 插入
|
|
887
|
+ luckdraw, err := m.GetLuckDrawByID(luckdrawid)
|
|
888
|
+ if err != nil {
|
|
889
|
+ return nil, err
|
|
890
|
+ }
|
|
891
|
+ surplusNum := luckdraw.LuckdrawNum
|
|
892
|
+ isnew := 0
|
|
893
|
+ if customer.Phone == "" {
|
|
894
|
+ isnew = 1
|
|
895
|
+ }
|
|
896
|
+ if luckdraw.JoinType == models.JOINTYPE_NEWUSER && isnew != 1 {
|
|
897
|
+ surplusNum = 0
|
|
898
|
+ }
|
|
899
|
+ cstluckdraw.CustomerId = customer.CustomerId
|
|
900
|
+ cstluckdraw.IsNew = isnew
|
|
901
|
+ cstluckdraw.LuckdrawId = luckdrawid
|
|
902
|
+ cstluckdraw.SurplusNum = surplusNum
|
|
903
|
+ newinfo, err := m.AddCustomerLuckDraw(cstluckdraw)
|
|
904
|
+ return newinfo, err
|
|
905
|
+}
|
|
906
|
+
|
848
|
907
|
// GetUserLuckDrawByLuckDraw 获取用户的抽奖信息
|
849
|
908
|
func (m *LuckDrawDao) GetUserLuckDrawByLuckDraw(userid string, luckdrawid string) (*model.TaLuckdrawRecord, error) {
|
850
|
909
|
var records []model.TaLuckdrawRecord
|
|
@@ -942,7 +1001,7 @@ func (m *LuckDrawDao) GetLuckDrawShareData(from, to, luckID, caseID string) ([]m
|
942
|
1001
|
// UpdateShareNum 分享增加抽奖次数
|
943
|
1002
|
func (m *LuckDrawDao) UpdateShareNum(luckdraw *LuckDraw, from string) error {
|
944
|
1003
|
num := strconv.Itoa(luckdraw.ShareAddNum)
|
945
|
|
- sql := `update ta_luckdraw_customer set share_num=share_num+` + num + `,surplus_num = surplus_num+` + num + ` where luckdraw_id=? and customer_id=?`
|
|
1004
|
+ sql := `update ta_luckdraw_customer set share_num=share_num+` + num + `,share_surplus_num = share_surplus_num +` + num + ` ,surplus_num = surplus_num+` + num + ` where luckdraw_id=? and customer_id=?`
|
946
|
1005
|
_, err := m.db.Exec(sql, luckdraw.Id, from)
|
947
|
1006
|
return err
|
948
|
1007
|
}
|