wangfei 6 lat temu
rodzic
commit
ce8d19c0e1
2 zmienionych plików z 57 dodań i 22 usunięć
  1. 55
    13
      models/luckdraw/luckdraw.go
  2. 2
    9
      service/luckdraw/luckdraw.go

+ 55
- 13
models/luckdraw/luckdraw.go Wyświetl plik

130
 	return shares, err
130
 	return shares, err
131
 }
131
 }
132
 
132
 
133
+// PrizeWithDefaults 奖品关联内定
134
+type PrizeWithDefaults struct {
135
+	model.TaLuckdrawPrize `xorm:"extends"`
136
+	Defaults              []model.TaPrizeDefault
137
+}
138
+
133
 // LuckDrawInfo 抽奖info
139
 // LuckDrawInfo 抽奖info
134
 type LuckDrawInfo struct {
140
 type LuckDrawInfo struct {
135
 	model.TaLuckdraw `xorm:"extends"`
141
 	model.TaLuckdraw `xorm:"extends"`
136
-	Prizes           []model.TaLuckdrawPrize
142
+	Prizes           []PrizeWithDefaults
137
 	Imgs             []model.TaLuckdrawImg
143
 	Imgs             []model.TaLuckdrawImg
138
-	Defaults         []model.TaPrizeDefault
139
 }
144
 }
140
 
145
 
141
 // GetLuckDrawInfoByID 获取抽奖信息
146
 // GetLuckDrawInfoByID 获取抽奖信息
152
 	if luckdraw.Id == "" {
157
 	if luckdraw.Id == "" {
153
 		return nil, nil
158
 		return nil, nil
154
 	}
159
 	}
155
-	prizes, err := m.GetPrizes(id)
160
+	prizes, err := m.GetPrizesWithDefaults(id)
156
 	if err != nil {
161
 	if err != nil {
157
 		utils.LogError("获取奖品信息失败:", err)
162
 		utils.LogError("获取奖品信息失败:", err)
158
 		return nil, errors.New("获取奖品信息失败")
163
 		return nil, errors.New("获取奖品信息失败")
164
 		return nil, errors.New("获取抽奖图片信息失败")
169
 		return nil, errors.New("获取抽奖图片信息失败")
165
 	}
170
 	}
166
 	luckdraw.Imgs = imgs
171
 	luckdraw.Imgs = imgs
167
-	defaults, err := m.GetLuckDrawDefault(id)
168
-	if err != nil {
169
-		utils.LogError("获取奖品内置信息失败:", err)
170
-		return nil, errors.New("获取奖品信息失败")
171
-	}
172
-	luckdraw.Defaults = defaults
172
+	// defaults, err := m.GetLuckDrawDefault(id)
173
+	// if err != nil {
174
+	// 	utils.LogError("获取奖品内置信息失败:", err)
175
+	// 	return nil, errors.New("获取奖品信息失败")
176
+	// }
177
+	// luckdraw.Defaults = defaults
173
 	return &luckdraw, err
178
 	return &luckdraw, err
174
 }
179
 }
175
 
180
 
253
 }
258
 }
254
 
259
 
255
 // SaveLuckDrawPrizes 保存奖品信息
260
 // SaveLuckDrawPrizes 保存奖品信息
256
-func (m *LuckDrawDao) SaveLuckDrawPrizes(prizes []model.TaLuckdrawPrize, luckdrawid string) error {
261
+func (m *LuckDrawDao) SaveLuckDrawPrizes(prizes []PrizeWithDefaults, luckdraw *model.TaLuckdraw) error {
262
+	var saveprizes []model.TaLuckdrawPrize
257
 	for inx, prize := range prizes {
263
 	for inx, prize := range prizes {
258
 		if prize.Id == "" {
264
 		if prize.Id == "" {
259
-			prizes[inx].LuckdrawId = luckdrawid
265
+			prizes[inx].LuckdrawId = luckdraw.Id
260
 			prizes[inx].Id = utils.GetGUID()
266
 			prizes[inx].Id = utils.GetGUID()
261
 			prizes[inx].Status = models.STATUS_NORMAL
267
 			prizes[inx].Status = models.STATUS_NORMAL
262
 		}
268
 		}
263
 		if prize.PrizeType == models.PRIZE_TYPE_COUPONCARD {
269
 		if prize.PrizeType == models.PRIZE_TYPE_COUPONCARD {
264
-			m.SavePrizeDetail(prize)
270
+			m.SavePrizeDetail(prize.TaLuckdrawPrize)
271
+		}
272
+		saveprizes = append(saveprizes, prize.TaLuckdrawPrize)
273
+		// 保存内定信息
274
+		if luckdraw.IsInternalDefault == models.BOOL_TRUE {
275
+			err := m.SaveLuckDrawDefault(prize.Defaults, prizes[inx].Id)
276
+			if err != nil {
277
+				return err
278
+			}
265
 		}
279
 		}
266
 	}
280
 	}
267
-	_, err := m.db.Insert(prizes)
281
+	_, err := m.db.Insert(saveprizes)
282
+	if err != nil {
283
+		return err
284
+	}
268
 	return err
285
 	return err
269
 }
286
 }
270
 
287
 
671
 	return prizes, err
688
 	return prizes, err
672
 }
689
 }
673
 
690
 
691
+// GetPrizesWithDefaults 获取奖品
692
+func (m *LuckDrawDao) GetPrizesWithDefaults(luckdrawid string) ([]PrizeWithDefaults, error) {
693
+	var prizes []PrizeWithDefaults
694
+	sql := `select * from ta_luckdraw_prize where luckdraw_id=? and status=?`
695
+	err := m.db.Sql(sql, luckdrawid, models.STATUS_NORMAL).Find(&prizes)
696
+	if err != nil {
697
+		return nil, err
698
+	}
699
+	for inx, prize := range prizes {
700
+		defaults, err := m.GetDefaultsByPrize(prize.Id)
701
+		if err != nil {
702
+			return nil, err
703
+		}
704
+		prizes[inx].Defaults = defaults
705
+	}
706
+	return prizes, err
707
+}
708
+
709
+// GetDefaultsByPrize 根据奖品获取内定信息
710
+func (m *LuckDrawDao) GetDefaultsByPrize(prizeid string) ([]model.TaPrizeDefault, error) {
711
+	var defaults []model.TaPrizeDefault
712
+	err := m.db.Where("prize_id=?", prizeid).Find(&defaults)
713
+	return defaults, err
714
+}
715
+
674
 // UpdateStock 修改库存
716
 // UpdateStock 修改库存
675
 func (m *LuckDrawDao) UpdateStock(prize *model.TaLuckdrawPrize) error {
717
 func (m *LuckDrawDao) UpdateStock(prize *model.TaLuckdrawPrize) error {
676
 	cols := []string{
718
 	cols := []string{

+ 2
- 9
service/luckdraw/luckdraw.go Wyświetl plik

217
 		utils.LogError("保存抽奖图片信息失败: " + err.Error())
217
 		utils.LogError("保存抽奖图片信息失败: " + err.Error())
218
 		return nil, errors.New("保存抽奖图片信息失败")
218
 		return nil, errors.New("保存抽奖图片信息失败")
219
 	}
219
 	}
220
-	// 保存内定信息
221
-	if luckdraw.IsInternalDefault == models.BOOL_TRUE {
222
-		err = s.dao.SaveLuckDrawDefault(luckdraw.Defaults, newInfo.Id)
223
-		if err != nil {
224
-			utils.LogError("保存奖品内定信息失败: " + err.Error())
225
-			return nil, errors.New("保存奖品内定信息失败")
226
-		}
227
-	}
220
+
228
 	// 保存奖品信息
221
 	// 保存奖品信息
229
-	err = s.dao.SaveLuckDrawPrizes(luckdraw.Prizes, newInfo.Id)
222
+	err = s.dao.SaveLuckDrawPrizes(luckdraw.Prizes, newInfo)
230
 	if err != nil {
223
 	if err != nil {
231
 		utils.LogError("保存奖品信息失败: " + err.Error())
224
 		utils.LogError("保存奖品信息失败: " + err.Error())
232
 		return nil, errors.New("保存奖品信息失败")
225
 		return nil, errors.New("保存奖品信息失败")