wangfei 6 лет назад
Родитель
Сommit
ce8d19c0e1
2 измененных файлов: 57 добавлений и 22 удалений
  1. 55
    13
      models/luckdraw/luckdraw.go
  2. 2
    9
      service/luckdraw/luckdraw.go

+ 55
- 13
models/luckdraw/luckdraw.go Просмотреть файл

@@ -130,12 +130,17 @@ func (m *LuckDrawDao) GetLuckDrawShare(id, tel string, page, pageSize int) ([]mo
130 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 139
 // LuckDrawInfo 抽奖info
134 140
 type LuckDrawInfo struct {
135 141
 	model.TaLuckdraw `xorm:"extends"`
136
-	Prizes           []model.TaLuckdrawPrize
142
+	Prizes           []PrizeWithDefaults
137 143
 	Imgs             []model.TaLuckdrawImg
138
-	Defaults         []model.TaPrizeDefault
139 144
 }
140 145
 
141 146
 // GetLuckDrawInfoByID 获取抽奖信息
@@ -152,7 +157,7 @@ func (m *LuckDrawDao) GetLuckDrawInfoByID(id string) (*LuckDrawInfo, error) {
152 157
 	if luckdraw.Id == "" {
153 158
 		return nil, nil
154 159
 	}
155
-	prizes, err := m.GetPrizes(id)
160
+	prizes, err := m.GetPrizesWithDefaults(id)
156 161
 	if err != nil {
157 162
 		utils.LogError("获取奖品信息失败:", err)
158 163
 		return nil, errors.New("获取奖品信息失败")
@@ -164,12 +169,12 @@ func (m *LuckDrawDao) GetLuckDrawInfoByID(id string) (*LuckDrawInfo, error) {
164 169
 		return nil, errors.New("获取抽奖图片信息失败")
165 170
 	}
166 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 178
 	return &luckdraw, err
174 179
 }
175 180
 
@@ -253,18 +258,30 @@ func (m *LuckDrawDao) SaveLuckDrawDefault(defaults []model.TaPrizeDefault, luckd
253 258
 }
254 259
 
255 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 263
 	for inx, prize := range prizes {
258 264
 		if prize.Id == "" {
259
-			prizes[inx].LuckdrawId = luckdrawid
265
+			prizes[inx].LuckdrawId = luckdraw.Id
260 266
 			prizes[inx].Id = utils.GetGUID()
261 267
 			prizes[inx].Status = models.STATUS_NORMAL
262 268
 		}
263 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 285
 	return err
269 286
 }
270 287
 
@@ -671,6 +688,31 @@ func (m *LuckDrawDao) GetPrizes(luckdrawid string) ([]model.TaLuckdrawPrize, err
671 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 716
 // UpdateStock 修改库存
675 717
 func (m *LuckDrawDao) UpdateStock(prize *model.TaLuckdrawPrize) error {
676 718
 	cols := []string{

+ 2
- 9
service/luckdraw/luckdraw.go Просмотреть файл

@@ -217,16 +217,9 @@ func (s *LuckdrawServ) SaveLuckDraw(luckdraw *luckdraw.LuckDrawInfo) (*model.TaL
217 217
 		utils.LogError("保存抽奖图片信息失败: " + err.Error())
218 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 223
 	if err != nil {
231 224
 		utils.LogError("保存奖品信息失败: " + err.Error())
232 225
 		return nil, errors.New("保存奖品信息失败")