|
@@ -277,10 +277,13 @@ func (m *LuckDrawDao) SaveLuckDrawPrizes(prizes []PrizeWithDefaults, luckdraw *m
|
277
|
277
|
prizes[inx].Status = models.STATUS_NORMAL
|
278
|
278
|
}
|
279
|
279
|
if prize.PrizeType == models.PRIZE_TYPE_COUPONCARD {
|
280
|
|
- err := m.SavePrizeDetail(prizes[inx].TaLuckdrawPrize)
|
|
280
|
+ valid, err := m.SavePrizeDetail(prizes[inx].TaLuckdrawPrize)
|
281
|
281
|
if err != nil {
|
282
|
282
|
return err
|
283
|
283
|
}
|
|
284
|
+ prizes[inx].ValidDays = valid.ValidDays
|
|
285
|
+ prizes[inx].VerificationStart = valid.VerificationStart
|
|
286
|
+ prizes[inx].VerificationEnd = valid.VerificationEnd
|
284
|
287
|
}
|
285
|
288
|
saveprizes = append(saveprizes, prizes[inx].TaLuckdrawPrize)
|
286
|
289
|
// 保存内定信息
|
|
@@ -298,17 +301,28 @@ func (m *LuckDrawDao) SaveLuckDrawPrizes(prizes []PrizeWithDefaults, luckdraw *m
|
298
|
301
|
return err
|
299
|
302
|
}
|
300
|
303
|
|
|
304
|
+// Verification 有效期
|
|
305
|
+type Verification struct {
|
|
306
|
+ ValidDays int
|
|
307
|
+ VerificationStart time.Time
|
|
308
|
+ VerificationEnd time.Time
|
|
309
|
+}
|
|
310
|
+
|
301
|
311
|
// SavePrizeDetail 保存奖品明细
|
302
|
|
-func (m *LuckDrawDao) SavePrizeDetail(prize model.TaLuckdrawPrize) error {
|
|
312
|
+func (m *LuckDrawDao) SavePrizeDetail(prize model.TaLuckdrawPrize) (*Verification, error) {
|
|
313
|
+ var verification = Verification{}
|
303
|
314
|
if prize.CouponCardType == models.PRIZE_TYPE_COUPON {
|
304
|
315
|
var coupon model.TaCoupon
|
305
|
316
|
_, err := m.db.Where("coupon_id=?", prize.CouponCardId).Get(&coupon)
|
306
|
317
|
if err != nil {
|
307
|
|
- return err
|
|
318
|
+ return nil, err
|
308
|
319
|
}
|
309
|
320
|
if coupon.UsedCount > 0 {
|
310
|
|
- return errors.New("卡券已被使用!不允许保存!")
|
|
321
|
+ return nil, errors.New("卡券已被使用!不允许保存!")
|
311
|
322
|
}
|
|
323
|
+ verification.ValidDays = coupon.ValidDays
|
|
324
|
+ verification.VerificationStart = coupon.StartDate
|
|
325
|
+ verification.VerificationEnd = coupon.EndDate
|
312
|
326
|
var details []model.TaPrizeDetail
|
313
|
327
|
i := 0
|
314
|
328
|
for i < coupon.TotalCount {
|
|
@@ -329,11 +343,14 @@ func (m *LuckDrawDao) SavePrizeDetail(prize model.TaLuckdrawPrize) error {
|
329
|
343
|
var card model.TaCouponCard
|
330
|
344
|
_, err := m.db.Where("card_id=?", prize.CouponCardId).Get(&card)
|
331
|
345
|
if err != nil {
|
332
|
|
- return err
|
|
346
|
+ return nil, err
|
333
|
347
|
}
|
334
|
348
|
if card.UsedCount > 0 {
|
335
|
|
- return errors.New("卡券已被使用!不允许保存!")
|
|
349
|
+ return nil, errors.New("卡券已被使用!不允许保存!")
|
336
|
350
|
}
|
|
351
|
+ verification.ValidDays = 0
|
|
352
|
+ verification.VerificationStart = card.StartDate
|
|
353
|
+ verification.VerificationEnd = card.EndDate
|
337
|
354
|
var details []model.TaPrizeDetail
|
338
|
355
|
i := 0
|
339
|
356
|
for i < card.TotalCount {
|
|
@@ -352,7 +369,7 @@ func (m *LuckDrawDao) SavePrizeDetail(prize model.TaLuckdrawPrize) error {
|
352
|
369
|
m.db.Insert(details)
|
353
|
370
|
}
|
354
|
371
|
|
355
|
|
- return nil
|
|
372
|
+ return &verification, nil
|
356
|
373
|
}
|
357
|
374
|
|
358
|
375
|
// UpdateLuckDraw 修改抽奖
|
|
@@ -677,7 +694,7 @@ func (m *LuckDrawDao) GetWinning(prizes []model.TaLuckdrawPrize) (*model.TaLuckd
|
677
|
694
|
|
678
|
695
|
for _, prize := range prizes {
|
679
|
696
|
// 有剩余的 并且 未过期的
|
680
|
|
- if prize.Remainder > 0 && now.Before(prize.VerificationEnd) {
|
|
697
|
+ if prize.Remainder > 0 && (now.Before(prize.VerificationEnd) || prize.ValidDays > 0) {
|
681
|
698
|
p := map[string]interface{}{
|
682
|
699
|
"prize": prize,
|
683
|
700
|
"prob": prize.Probability,
|
|
@@ -687,6 +704,7 @@ func (m *LuckDrawDao) GetWinning(prizes []model.TaLuckdrawPrize) (*model.TaLuckd
|
687
|
704
|
}
|
688
|
705
|
}
|
689
|
706
|
|
|
707
|
+ utils.LogError(pList)
|
690
|
708
|
if len(pList) == 0 {
|
691
|
709
|
return nil, errors.New("所有奖品已抽完")
|
692
|
710
|
}
|