Selaa lähdekoodia

Merge remote-tracking branch 'origin/doubleEleven2020' into doubleEleven2020

周箭河 4 vuotta sitten
vanhempi
commit
702a7a3b87

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

@@ -20,4 +20,11 @@ public interface LuckDrawPrizeDao extends BaseDAO<Integer, LuckDrawPrize> {
 	 * @return
 	 */
 	LuckDrawPrize getLock(Integer id);
+	
+	/**
+	 * 批量新增
+	 * @param luckDrawPrizeList
+	 * @return
+	 */
+	int batchInsert(List<LuckDrawPrize> luckDrawPrizeList);
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/LuckDrawPrizeService.java

@@ -1,9 +1,18 @@
 package com.ym.mec.biz.service;
 
+import java.util.List;
+
 import com.ym.mec.biz.dal.entity.LuckDrawPrize;
 import com.ym.mec.common.service.BaseService;
 
 public interface LuckDrawPrizeService extends BaseService<Integer, LuckDrawPrize> {
+	
+	/**
+	 * 批量新增
+	 * @param luckDrawPrizeList
+	 * @return
+	 */
+	boolean batchInsert(List<LuckDrawPrize> luckDrawPrizeList);
 
 	/**
 	 * 抽奖

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LuckDrawPrizeServiceImpl.java

@@ -50,6 +50,14 @@ public class LuckDrawPrizeServiceImpl extends BaseServiceImpl<Integer, LuckDrawP
 	}
 
 	@Override
+	public boolean batchInsert(List<LuckDrawPrize> luckDrawPrizeList) {
+		if (luckDrawPrizeList != null && luckDrawPrizeList.size() > 0) {
+			luckDrawPrizeDao.batchInsert(luckDrawPrizeList);
+		}
+		return true;
+	}
+
+	@Override
 	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public LuckDrawPrize draw(final Long userId, int group) {
 		final LuckDrawGroup luckDrawGroup = luckDrawGroupService.get(group);

+ 8 - 7
mec-biz/src/main/resources/config/mybatis/LuckDrawLogMapper.xml

@@ -14,6 +14,7 @@
 	<resultMap id="BaseResultMapExt" type="com.ym.mec.biz.dal.entity.LuckDrawLog" extends="BaseResultMap">
 		<result column="username_" property="user.username" jdbcType="VARCHAR" />
 		<result column="phone_" property="user.phone" jdbcType="VARCHAR" />
+		<result column="organ_name_" property="user.organName" jdbcType="VARCHAR" />
 	</resultMap>
 
 	<sql id="Base_Column_List">
@@ -90,17 +91,17 @@
 	</update>
 
 	<select id="queryCount" parameterType="map" resultType="int">
-		select count(*)
-		from (luck_draw_log l left join luck_draw_prize d on
-		l.prize_id_ = d.id_) left join sys_user u on u.id_=l.user_id_
+		select count(*) from luck_draw_log l 
+		left join luck_draw_prize d on l.prize_id_ = d.id_ 
+		left join sys_user u on u.id_=l.user_id_
 		<include refid="queryCondition" />
 	</select>
 
 	<select id="queryPage" parameterType="map" resultMap="BaseResultMapExt">
-		select
-		<include refid="Base_Column_List" />,u.username_,u.phone_
-		from (luck_draw_log l left join luck_draw_prize d on
-		l.prize_id_ = d.id_) left join sys_user u on u.id_=l.user_id_
+		select l.*,u.username_,u.phone_,o.name_ organ_name_ from luck_draw_log l 
+		left join luck_draw_prize d on l.prize_id_ = d.id_ 
+		left join sys_user u on u.id_=l.user_id_
+		left join organization o on o.id_ = u.organ_id_
 		<include refid="queryCondition" />
 		<include refid="global.orderby" />
 		<include refid="global.limit" />

+ 17 - 3
mec-biz/src/main/resources/config/mybatis/LuckDrawPrizeMapper.xml

@@ -24,10 +24,10 @@
 				and id_ = #{id}
 			</if>
 			<if test="name != null">
-				and name_ like '%' #{name} '%'
+				and name_ like concat('%',#{name},'%')
 			</if>
 			<if test="rewardType != null">
-				and reward_type_ like '%' #{rewardType} '%'
+				and reward_type_ like concat('%',#{rewardType},'%')
 			</if>
 			<if test="groupId != null">
 				and group_id_ = #{groupId}
@@ -54,7 +54,8 @@
 		where id_ = #{id,jdbcType=INTEGER}
 	</delete>
 
-	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.LuckDrawPrize">
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.LuckDrawPrize" useGeneratedKeys="true" keyColumn="id"
+            keyProperty="id">
 		insert into luck_draw_prize (id_, name_, chances_,
 		stock_, enabled_, reward_type_, memo_, group_id_, create_on_,
 		modify_on_)
@@ -64,6 +65,19 @@
 		#{modifyOn,jdbcType=TIMESTAMP})
 	</insert>
 
+	<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
+            keyProperty="id">
+		insert into luck_draw_prize (id_, name_, chances_,
+		stock_, enabled_, reward_type_, memo_, group_id_, create_on_,
+		modify_on_) values 
+		<foreach collection="list" item="item" separator=",">
+		(#{item.id,jdbcType=INTEGER}, #{item.name,jdbcType=VARCHAR},
+		#{item.chances,jdbcType=DOUBLE}, #{item.stock,jdbcType=INTEGER}, 
+		#{item.enabled,jdbcType=BIT},#{item.rewardType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+		#{item.memo,jdbcType=VARCHAR}, #{item.groupId,jdbcType=INTEGER}, now(), now())
+		</foreach>
+	</insert>
+
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.LuckDrawPrize">
 		update luck_draw_prize
 		<set>

+ 17 - 0
mec-web/src/main/java/com/ym/mec/web/controller/LuckDrawController.java

@@ -3,8 +3,10 @@ package com.ym.mec.web.controller;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +24,7 @@ import com.ym.mec.biz.service.LuckDrawGroupService;
 import com.ym.mec.biz.service.LuckDrawLogService;
 import com.ym.mec.biz.service.LuckDrawPrizeService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.util.collection.MapUtil;
 
@@ -84,6 +87,20 @@ public class LuckDrawController extends BaseController {
 		return succeed(luckDrawPrizeService.queryPage(queryInfo));
 	}
 
+	@ApiOperation(value = "批量新增抽奖奖品")
+	@PostMapping(value = "luckDrawPrize/batchAdd", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@PreAuthorize("@pcs.hasPermissions('luckDrawPrize/batchAdd')")
+	public Object batchAdd(@RequestBody List<LuckDrawPrize> luckDrawPrizeList) {
+		BigDecimal totalChanceRate = new BigDecimal(0);
+		for (LuckDrawPrize luckDrawPrize : luckDrawPrizeList) {
+			totalChanceRate.add(new BigDecimal(luckDrawPrize.getChances()));
+		}
+		if (totalChanceRate.doubleValue() != 1) {
+			throw new BizException("所有奖品的概率之和必须等于100%或1");
+		}
+		return luckDrawPrizeService.batchInsert(luckDrawPrizeList) ? succeed() : failed();
+	}
+
 	@ApiOperation(value = "新增抽奖奖品")
 	@PostMapping(value = "luckDrawPrize/add", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	@PreAuthorize("@pcs.hasPermissions('luckDrawPrize/add')")