|
@@ -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
|
|
@@ -487,12 +491,6 @@ func (m *LuckDrawDao) LuckDraw(id string, user *model.TaCustomer) (*model.TaLuck
|
487
|
491
|
utils.LogError("更新抽奖次数库存失败:", err)
|
488
|
492
|
return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
|
489
|
493
|
}
|
490
|
|
- // 更新参与人数
|
491
|
|
- err = m.UpdateLuckDrawJoinedNum(id)
|
492
|
|
- if err != nil {
|
493
|
|
- utils.LogError("更新参与人数失败:", err)
|
494
|
|
- return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
|
495
|
|
- }
|
496
|
494
|
}
|
497
|
495
|
|
498
|
496
|
// 判断是否内置用户
|
|
@@ -501,7 +499,6 @@ func (m *LuckDrawDao) LuckDraw(id string, user *model.TaCustomer) (*model.TaLuck
|
501
|
499
|
utils.LogError("操作失败,请刷新后重试:", err)
|
502
|
500
|
return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
|
503
|
501
|
}
|
504
|
|
-
|
505
|
502
|
var prize = new(model.TaLuckdrawPrize)
|
506
|
503
|
if defaultPrize.Id != "" {
|
507
|
504
|
// 内置用户,直接中奖
|
|
@@ -513,14 +510,13 @@ func (m *LuckDrawDao) LuckDraw(id string, user *model.TaCustomer) (*model.TaLuck
|
513
|
510
|
return nil, nil, nil, errors.New("获取奖项失败!")
|
514
|
511
|
}
|
515
|
512
|
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
|
|
- }
|
|
513
|
+ // err = m.UpdateLuckDrawEndDate(luckdraw.Id)
|
|
514
|
+ // if err != nil {
|
|
515
|
+ // utils.LogError("操作失败,请刷新后重试:", err)
|
|
516
|
+ // return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
|
|
517
|
+ // }
|
521
|
518
|
return nil, nil, nil, errors.New("活动已结束!")
|
522
|
519
|
}
|
523
|
|
-
|
524
|
520
|
prize, err = m.GetWinning(prizes)
|
525
|
521
|
if err != nil {
|
526
|
522
|
utils.LogError("获取奖项失败:", err)
|
|
@@ -567,6 +563,13 @@ func (m *LuckDrawDao) LuckDraw(id string, user *model.TaCustomer) (*model.TaLuck
|
567
|
563
|
utils.LogError("保存中奖纪录失败:", err)
|
568
|
564
|
return nil, nil, nil, err
|
569
|
565
|
}
|
|
566
|
+ // 更新参与人数
|
|
567
|
+ err = m.UpdateLuckDrawJoinedNum(id)
|
|
568
|
+ if err != nil {
|
|
569
|
+ utils.LogError("更新参与人数失败:", err)
|
|
570
|
+ return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
|
|
571
|
+ }
|
|
572
|
+
|
570
|
573
|
// 更新内置信息
|
571
|
574
|
err = m.UpdatePrizeDefault(defaultPrize.DefaultId, record.Id)
|
572
|
575
|
if err != nil {
|
|
@@ -599,7 +602,7 @@ func (m *LuckDrawDao) LuckDraw(id string, user *model.TaCustomer) (*model.TaLuck
|
599
|
602
|
utils.LogError("更新库存失败:", err)
|
600
|
603
|
return nil, nil, nil, err
|
601
|
604
|
}
|
602
|
|
- stockprizes, err := m.GetPrizeStock(id)
|
|
605
|
+ stockprizes, err := m.GetPrizeStockAll(id)
|
603
|
606
|
if err != nil {
|
604
|
607
|
utils.LogError("更新库存失败:", err)
|
605
|
608
|
return nil, nil, nil, errors.New("操作失败,请刷新后重试!")
|
|
@@ -830,13 +833,20 @@ func (m *LuckDrawDao) GetPrizeStock(luckdrawid string) ([]model.TaLuckdrawPrize,
|
830
|
833
|
var prizes []model.TaLuckdrawPrize
|
831
|
834
|
sql := `select a.remainder-(case when b.default_num is null then 0 else b.default_num end) as remainder,
|
832
|
835
|
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
|
|
836
|
+ 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
|
837
|
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)
|
|
838
|
+ err := m.db.Sql(sql, luckdrawid, luckdrawid, models.STATUS_NORMAL).Find(&prizes)
|
836
|
839
|
// err := m.db.Where("luckdraw_id=?", luckdrawid).And("status=?", models.STATUS_NORMAL).And("(remainder>0 or is_reality=0)").Find(&prizes)
|
837
|
840
|
return prizes, err
|
838
|
841
|
}
|
839
|
842
|
|
|
843
|
+// GetPrizeStockAll 获取奖项
|
|
844
|
+func (m *LuckDrawDao) GetPrizeStockAll(luckdrawid string) ([]model.TaLuckdrawPrize, error) {
|
|
845
|
+ var prizes []model.TaLuckdrawPrize
|
|
846
|
+ err := m.db.Where("luckdraw_id=?", luckdrawid).And("status=?", models.STATUS_NORMAL).And("(remainder>0 or is_reality=0)").Find(&prizes)
|
|
847
|
+ return prizes, err
|
|
848
|
+}
|
|
849
|
+
|
840
|
850
|
// GetPrizeByID 根据id获取奖品信息
|
841
|
851
|
func (m *LuckDrawDao) GetPrizeByID(id string) (model.TaLuckdrawPrize, error) {
|
842
|
852
|
var prize = model.TaLuckdrawPrize{}
|