|
@@ -54,7 +54,15 @@ func (m *LuckDrawDao) GetLuckDrawList(caseids, name, status string, page, pageSi
|
54
|
54
|
dao.And("name like '%" + name + "%'")
|
55
|
55
|
}
|
56
|
56
|
if status != "" {
|
57
|
|
- dao.And("status=?", status)
|
|
57
|
+ query := `status=?`
|
|
58
|
+ switch status {
|
|
59
|
+ case strconv.Itoa(models.STATUS_NORMAL):
|
|
60
|
+ query = query + " and end_date>now()"
|
|
61
|
+ break
|
|
62
|
+ case strconv.Itoa(models.STATUS_EXPIRE):
|
|
63
|
+ query = "(" + query + " or end_date<=now())"
|
|
64
|
+ }
|
|
65
|
+ dao.And(query, status)
|
58
|
66
|
}
|
59
|
67
|
err := dao.Desc("create_date").Limit(pageSize, (page-1)*pageSize).Find(&luckdraws)
|
60
|
68
|
return luckdraws, err
|
|
@@ -244,13 +252,14 @@ func (m *LuckDrawDao) SaveLuckDrawImgs(imgs []model.TaLuckdrawImg, luckdrawid st
|
244
|
252
|
}
|
245
|
253
|
|
246
|
254
|
// SaveLuckDrawDefault 保存内定信息
|
247
|
|
-func (m *LuckDrawDao) SaveLuckDrawDefault(defaults []model.TaPrizeDefault, luckdrawid string) error {
|
|
255
|
+func (m *LuckDrawDao) SaveLuckDrawDefault(defaults []model.TaPrizeDefault, prize model.TaLuckdrawPrize) error {
|
248
|
256
|
for inx, d := range defaults {
|
249
|
257
|
if d.DefaultId == "" {
|
250
|
258
|
defaults[inx].DefaultId = utils.GetGUID()
|
251
|
259
|
defaults[inx].Status = models.STATUS_NORMAL
|
252
|
260
|
defaults[inx].CreateDate = time.Now()
|
253
|
|
- defaults[inx].LuckdrawId = luckdrawid
|
|
261
|
+ defaults[inx].LuckdrawId = prize.LuckdrawId
|
|
262
|
+ defaults[inx].PrizeId = prize.Id
|
254
|
263
|
}
|
255
|
264
|
}
|
256
|
265
|
_, err := m.db.Insert(defaults)
|
|
@@ -264,15 +273,19 @@ func (m *LuckDrawDao) SaveLuckDrawPrizes(prizes []PrizeWithDefaults, luckdraw *m
|
264
|
273
|
if prize.Id == "" {
|
265
|
274
|
prizes[inx].LuckdrawId = luckdraw.Id
|
266
|
275
|
prizes[inx].Id = utils.GetGUID()
|
|
276
|
+ prizes[inx].Remainder = prize.Stock
|
267
|
277
|
prizes[inx].Status = models.STATUS_NORMAL
|
268
|
278
|
}
|
269
|
279
|
if prize.PrizeType == models.PRIZE_TYPE_COUPONCARD {
|
270
|
|
- m.SavePrizeDetail(prize.TaLuckdrawPrize)
|
|
280
|
+ err := m.SavePrizeDetail(prizes[inx].TaLuckdrawPrize)
|
|
281
|
+ if err != nil {
|
|
282
|
+ return err
|
|
283
|
+ }
|
271
|
284
|
}
|
272
|
|
- saveprizes = append(saveprizes, prize.TaLuckdrawPrize)
|
|
285
|
+ saveprizes = append(saveprizes, prizes[inx].TaLuckdrawPrize)
|
273
|
286
|
// 保存内定信息
|
274
|
287
|
if luckdraw.IsInternalDefault == models.BOOL_TRUE {
|
275
|
|
- err := m.SaveLuckDrawDefault(prize.Defaults, prizes[inx].Id)
|
|
288
|
+ err := m.SaveLuckDrawDefault(prize.Defaults, prizes[inx].TaLuckdrawPrize)
|
276
|
289
|
if err != nil {
|
277
|
290
|
return err
|
278
|
291
|
}
|
|
@@ -309,6 +322,33 @@ func (m *LuckDrawDao) SavePrizeDetail(prize model.TaLuckdrawPrize) error {
|
309
|
322
|
Status: models.STATUS_NORMAL,
|
310
|
323
|
}
|
311
|
324
|
details = append(details, d)
|
|
325
|
+ i = i + 1
|
|
326
|
+ }
|
|
327
|
+ m.db.Insert(details)
|
|
328
|
+ } else {
|
|
329
|
+ var card model.TaCouponCard
|
|
330
|
+ _, err := m.db.Where("card_id=?", prize.CouponCardId).Get(&card)
|
|
331
|
+ if err != nil {
|
|
332
|
+ beego.Error(err)
|
|
333
|
+ return err
|
|
334
|
+ }
|
|
335
|
+ if card.UsedCount > 0 {
|
|
336
|
+ return errors.New("卡券已被使用!不允许保存!")
|
|
337
|
+ }
|
|
338
|
+ var details []model.TaPrizeDetail
|
|
339
|
+ i := 0
|
|
340
|
+ for i < card.TotalCount {
|
|
341
|
+ unix := time.Now().UnixNano()
|
|
342
|
+ random := utils.GetRand(5) + strconv.Itoa(int(unix))
|
|
343
|
+ url := `/` + prize.CouponCardId + `/` + beego.AppConfig.String("defaultShareUserID") + `/` + prize.CouponCardType + `/` + random + `/receive`
|
|
344
|
+ var d = model.TaPrizeDetail{
|
|
345
|
+ Id: utils.GetGUID(),
|
|
346
|
+ PrizeId: prize.Id,
|
|
347
|
+ Url: beego.AppConfig.String("clientShareURL") + url,
|
|
348
|
+ Status: models.STATUS_NORMAL,
|
|
349
|
+ }
|
|
350
|
+ details = append(details, d)
|
|
351
|
+ i = i + 1
|
312
|
352
|
}
|
313
|
353
|
m.db.Insert(details)
|
314
|
354
|
}
|