zouxuan 3 lat temu
rodzic
commit
0c183dc53b

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LuckDrawPrizeDao.java

@@ -5,6 +5,7 @@ import java.util.List;
 import com.ym.mec.biz.dal.dto.HorseRaceLampDto;
 import com.ym.mec.biz.dal.entity.LuckDrawPrize;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 public interface LuckDrawPrizeDao extends BaseDAO<Integer, LuckDrawPrize> {
 
@@ -44,4 +45,6 @@ public interface LuckDrawPrizeDao extends BaseDAO<Integer, LuckDrawPrize> {
 	* @date 2021/10/19 15:35
 	*/
     List<HorseRaceLampDto> queryHorseRaceLampDto(int groupId);
+
+	void batchUpdate(@Param("updateDraw") List<LuckDrawPrize> updateDraw);
 }

+ 14 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LuckDrawPrizeServiceImpl.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import com.ym.mec.biz.dal.dto.HorseRaceLampDto;
 import org.apache.commons.lang3.RandomUtils;
@@ -49,7 +50,19 @@ public class LuckDrawPrizeServiceImpl extends BaseServiceImpl<Integer, LuckDrawP
 	@Override
 	public boolean batchInsert(List<LuckDrawPrize> luckDrawPrizeList) {
 		if (luckDrawPrizeList != null && luckDrawPrizeList.size() > 0) {
-			luckDrawPrizeDao.batchInsert(luckDrawPrizeList);
+			throw new BizException("请设置奖品");
+		}
+		Double reduce = luckDrawPrizeList.stream().map(e -> e.getChances()).reduce(0d, Double::sum);
+		if(reduce != 1d){
+			throw new BizException("中奖概率总和必须是100%");
+		}
+		List<LuckDrawPrize> insertDraw = luckDrawPrizeList.stream().filter(e -> e.getId() == null).collect(Collectors.toList());
+		List<LuckDrawPrize> updateDraw = luckDrawPrizeList.stream().filter(e -> e.getId() != null).collect(Collectors.toList());
+		if(insertDraw != null && insertDraw.size() > 0){
+			luckDrawPrizeDao.batchInsert(insertDraw);
+		}
+		if(updateDraw != null && updateDraw.size() > 0){
+			luckDrawPrizeDao.batchUpdate(updateDraw);
 		}
 		return true;
 	}

+ 33 - 0
mec-biz/src/main/resources/config/mybatis/LuckDrawPrizeMapper.xml

@@ -118,6 +118,39 @@
 		</set>
 		where id_ = #{id,jdbcType=INTEGER}
 	</update>
+	<update id="batchUpdate">
+		<foreach collection="updateDraw" item="draw" separator=";">
+			UPDATE luck_draw_prize
+			<set>
+				<if test="name != null">
+					name_ = #{name,jdbcType=VARCHAR},
+				</if>
+				<if test="chances != null">
+					chances_ = #{chances,jdbcType=DOUBLE},
+				</if>
+				<if test="stock != null">
+					stock_ = #{stock,jdbcType=INTEGER},
+				</if>
+				<if test="enabled != null">
+					enabled_ = #{enabled,jdbcType=BIT},
+				</if>
+				<if test="rewardType != null">
+					reward_type_ = #{rewardType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+				</if>
+				<if test="memo != null">
+					memo_ = #{memo,jdbcType=VARCHAR},
+				</if>
+				<if test="groupId != null">
+					group_id_ = #{groupId,jdbcType=INTEGER},
+				</if>
+				<if test="isDefault != null">
+					is_default_ = #{isDefault},
+				</if>
+				modify_on_ = NOW()
+			</set>
+			WHERE id_ = #{id,jdbcType=INTEGER}
+		</foreach>
+	</update>
 
 	<select id="queryCount" parameterType="map" resultType="int">
 		select count(*) from luck_draw_prize