Forráskód Böngészése

Merge remote-tracking branch 'origin/master'

Joburgess 4 éve
szülő
commit
d4da3be7a6

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LuckDrawPrizeDao.java

@@ -20,11 +20,18 @@ public interface LuckDrawPrizeDao extends BaseDAO<Integer, LuckDrawPrize> {
 	 * @return
 	 */
 	LuckDrawPrize getLock(Integer id);
-	
+
 	/**
 	 * 批量新增
 	 * @param luckDrawPrizeList
 	 * @return
 	 */
 	int batchInsert(List<LuckDrawPrize> luckDrawPrizeList);
+
+	/**
+	 * 查询默认奖品
+	 * @param group
+	 * @return
+	 */
+	List<LuckDrawPrize> queryDefaultPrize(int group);
 }

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java

@@ -166,4 +166,20 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
      */
     List<MusicGroupPaymentCalenderAuditDto> queryAuditList(Map<String, Object> params);
 
+    /**
+     * 统计预计缴费人数
+     *
+     * @param id
+     * @return
+     */
+    List<Map<Long, Long>> countExpectNum(@Param("id") Long id);
+
+    /**
+     * 统计预计缴费人数
+     *
+     * @param id
+     * @return
+     */
+    List<Map<Long, Long>> countActualNum(@Param("id") Long id);
+
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDetailDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -167,4 +168,11 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
      * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
      */
 	List<SimpleUserDto> querySimpleUserDto(@Param("calenderId") Integer calenderId, @Param("musicGroupId") String musicGroupId);
+
+	/**
+	 * 统计实际收款金额
+	 * @param id
+	 * @return
+	 */
+	BigDecimal sumActualAmount(@Param("id") Long id);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/OrderStatisDto.java

@@ -7,7 +7,7 @@ public class OrderStatisDto {
     private String organName;
     private Integer estimatedNums = 0;
     private Integer nums = 0;
-    private Integer times;
+    private Integer times = 0;
     private BigDecimal scale = BigDecimal.ZERO;
     private BigDecimal money = BigDecimal.ZERO;
 

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LuckDrawPrize.java

@@ -65,6 +65,8 @@ public class LuckDrawPrize {
 	private Date modifyOn;
 
 	private Integer groupId;
+	
+	private Boolean isDefault;
 
 	public Integer getId() {
 		return id;
@@ -145,4 +147,12 @@ public class LuckDrawPrize {
 	public void setGroupId(Integer groupId) {
 		this.groupId = groupId;
 	}
+
+	public Boolean getIsDefault() {
+		return isDefault;
+	}
+
+	public void setIsDefault(Boolean isDefault) {
+		this.isDefault = isDefault;
+	}
 }

+ 1 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalender.java

@@ -94,7 +94,7 @@ public class MusicGroupPaymentCalender {
 	@ApiModelProperty(value = "缴费有效期截止时间", required = false)
 	private Date paymentValidEndDate;
 
-	@ApiModelProperty(value = "缴费方式0按月,1按,2一次性", required = false)
+	@ApiModelProperty(value = "缴费方式0按月,1按学期,2一次性", required = false)
 	private Integer paymentPattern;
 
 	@ApiModelProperty(value = "缴费类型0续费,1报名", required = false)
@@ -131,8 +131,6 @@ public class MusicGroupPaymentCalender {
 	@ApiModelProperty(value = "批次号", required = false)
 	private String batchNo;
 
-	private List<MusicGroupPaymentCalenderCourseSettings> MusicGroupPaymentCalenderCourseSettingsList = new ArrayList<MusicGroupPaymentCalenderCourseSettings>();
-
 	public String getAuditMemo() {
 		return auditMemo;
 	}

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderService.java

@@ -14,10 +14,17 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 
 	/**
 	 * 创建缴费信息
-	 * @param musicGroupPaymentCalenderDto
+	 * @param musicGroupPaymentCalender
 	 * @return
 	 */
 	boolean create(MusicGroupPaymentCalender musicGroupPaymentCalender);
+
+	/**
+	 * 获取明细
+	 * @param id
+	 * @return
+	 */
+	Object getDetail(Long id);
 	
 	/**
 	 * 更新缴费信息

+ 17 - 34
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LuckDrawPrizeServiceImpl.java

@@ -2,10 +2,6 @@ package com.ym.mec.biz.service.impl;
 
 import java.util.Date;
 import java.util.List;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.FutureTask;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.math.RandomUtils;
@@ -100,15 +96,14 @@ public class LuckDrawPrizeServiceImpl extends BaseServiceImpl<Integer, LuckDrawP
 			int randomNum = RandomUtils.nextInt(DRAW_BASE_NUMBER);
 			double start = 0;
 			double chances = 0;
-			ExecutorService executor = Executors.newCachedThreadPool();
 			for (LuckDrawPrize luckDraw : luckDraws) {
 				chances += luckDraw.getChances();
 				// 抽中了
 				if (start <= randomNum && randomNum < (chances * DRAW_BASE_NUMBER)) {
-					final LuckDrawPrize syncLuckDraw = luckDrawPrizeDao.getLock(luckDraw.getId());
+					LuckDrawPrize syncLuckDraw = luckDrawPrizeDao.getLock(luckDraw.getId());
+					Date date = new Date();
 					// 检查库存
-					if (syncLuckDraw.getStock() > 0) {
-						Date date = new Date();
+					if (syncLuckDraw.getIsDefault() == true || syncLuckDraw.getStock() > 0) {
 						// 减库存
 						syncLuckDraw.setStock(syncLuckDraw.getStock() - 1);
 						syncLuckDraw.setModifyOn(date);
@@ -116,34 +111,22 @@ public class LuckDrawPrizeServiceImpl extends BaseServiceImpl<Integer, LuckDrawP
 						// 抽奖记录
 						luckDrawLogService.add(userId, syncLuckDraw.getId(), group);
 
-						// 给奖励
-						FutureTask<String> task = new FutureTask<String>(new Callable<String>() {
-							@Override
-							public String call() throws Exception {
-
-								switch (syncLuckDraw.getRewardType()) {
-								case COUPON:
-									break;
-
-								case POINTS:
-									break;
-
-								case CASH:
-									break;
-
-								default:
-									break;
-								}
-
-								return null;
-							}
-						});
-						executor.submit(task);
-						executor.shutdown();
-
 						return syncLuckDraw;
 					} else {
-						throw new BizException("系统繁忙,请重试");
+						// 库存不足,抽中默认奖品
+						List<LuckDrawPrize> defaultPrizeList = luckDrawPrizeDao.queryDefaultPrize(group);
+						if (defaultPrizeList != null && defaultPrizeList.size() > 0) {
+							syncLuckDraw = luckDrawPrizeDao.getLock(defaultPrizeList.get(0).getId());
+							// 减库存
+							syncLuckDraw.setStock(syncLuckDraw.getStock() - 1);
+							syncLuckDraw.setModifyOn(date);
+							update(syncLuckDraw);
+							// 抽奖记录
+							luckDrawLogService.add(userId, syncLuckDraw.getId(), group);
+							return syncLuckDraw;
+						} else {
+							throw new BizException("系统繁忙,请重试");
+						}
 					}
 				}
 				start = luckDraw.getChances() * DRAW_BASE_NUMBER;

+ 17 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDetailDto;
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
@@ -25,6 +26,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -94,7 +96,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		musicGroupPaymentCalender.setCreateTime(date);
 		musicGroupPaymentCalender.setUpdateTime(date);
 		
-		if (musicGroupPaymentCalender.getDeadlinePaymentDate() == null) {
+		if (musicGroupPaymentCalender.getDeadlinePaymentDate() == null && musicGroupPaymentCalender.getPayUserType() == PayUserType.STUDENT) {
 			musicGroupPaymentCalender.setDeadlinePaymentDate(DateUtil.addDays(musicGroupPaymentCalender.getStartPaymentDate(), 3));
 		}
 		int count = musicGroupPaymentCalenderDao.queryIntersectionByValidDate(musicGroupId, musicGroupPaymentCalender.getPaymentValidStartDate(),
@@ -205,6 +207,20 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	}
 
 	@Override
+	public Object getDetail(Long id) {
+		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(id);
+		Map<Long, Long> expectNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countExpectNum(id));
+		Map<Long, Long> actualNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countActualNum(id));
+		calender.setActualNum(actualNumMap.get(id) == null ? 0 : actualNumMap.get(id).intValue());
+		calender.setExpectNum(expectNumMap.get(id) == null ? 0 : expectNumMap.get(id).intValue());
+		BigDecimal sumActualAmount = musicGroupPaymentCalenderDetailDao.sumActualAmount(id);
+		Map<String, Object> result = new HashMap<>(2);
+		result.put("calender", calender);
+		result.put("sumActualAmount", sumActualAmount);
+		return result;
+	}
+
+	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public int update(MusicGroupPaymentCalender musicGroupPaymentCalender) {
 		

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -433,7 +433,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public StudentPaymentOrder reAddOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId, StudentPaymentOrder oldOrder, List<CourseFormDto> courseForms, BigDecimal remitFee, BigDecimal courseRemitFee,List<MusicGroupPaymentCalenderCourseSettings> newCourses) {
+    public StudentPaymentOrder reAddOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId, StudentPaymentOrder oldOrder, List<CourseFormDto> courseForms, BigDecimal remitFee, BigDecimal courseRemitFee, List<MusicGroupPaymentCalenderCourseSettings> newCourses) {
         //关闭老订单
         oldOrder.setStatus(DealStatusEnum.CLOSE);
         studentPaymentOrderService.update(oldOrder);
@@ -1197,6 +1197,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Override
     public BigDecimal getClassGroupCourseExpectPrice(List<Integer> classGroupIds) {
         List<CourseScheduleStudentPayment> classGroupNoStartCourse = courseScheduleStudentPaymentService.getClassGroupNoStartCourse(classGroupIds);
-        return BigDecimal.ZERO;
+        return classGroupNoStartCourse.stream().map(CourseScheduleStudentPayment::getExpectPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
     }
 }

+ 16 - 5
mec-biz/src/main/resources/config/mybatis/LuckDrawPrizeMapper.xml

@@ -10,12 +10,13 @@
 		<result column="reward_type_" property="rewardType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
 		<result column="memo_" property="memo" jdbcType="VARCHAR" />
 		<result column="group_id_" property="groupId" jdbcType="INTEGER" />
+		<result column="is_default_" property="isDefault" />
 		<result column="create_on_" property="createOn" jdbcType="TIMESTAMP" />
 		<result column="modify_on_" property="modifyOn" jdbcType="TIMESTAMP" />
 	</resultMap>
 
 	<sql id="Base_Column_List">
-		id_, name_, chances_, stock_, enabled_, reward_type_, memo_, group_id_, create_on_, modify_on_
+		id_, name_, chances_, stock_, enabled_, reward_type_, memo_, group_id_, is_default_, create_on_, modify_on_
 	</sql>
 
 	<sql id="queryCondition">
@@ -57,24 +58,24 @@
 	<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_,
+		stock_, enabled_, reward_type_, memo_, group_id_, is_default_, create_on_,
 		modify_on_)
 		values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},
 		#{chances,jdbcType=DOUBLE},
-		#{stock,jdbcType=INTEGER}, #{enabled,jdbcType=BIT},#{rewardType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{memo,jdbcType=VARCHAR}, #{groupId,jdbcType=INTEGER}, #{createOn,jdbcType=TIMESTAMP},
+		#{stock,jdbcType=INTEGER}, #{enabled,jdbcType=BIT},#{rewardType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{memo,jdbcType=VARCHAR}, #{groupId,jdbcType=INTEGER}, #(isDefault), #{createOn,jdbcType=TIMESTAMP},
 		#{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_,
+		stock_, enabled_, reward_type_, memo_, group_id_, is_default_, 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())
+		#{item.memo,jdbcType=VARCHAR}, #{item.groupId,jdbcType=INTEGER}, #{item.isDefault}, now(), now())
 		</foreach>
 	</insert>
 
@@ -102,6 +103,9 @@
 			<if test="groupId != null">
 				group_id_ = #{groupId,jdbcType=INTEGER},
 			</if>
+			<if test="isDefault != null">
+				is_default_ = #{isDefault},
+			</if>
 			<if test="createOn != null">
 				create_on_ = #{createOn,jdbcType=TIMESTAMP},
 			</if>
@@ -130,4 +134,11 @@
 		from luck_draw_prize
 		where enabled_ = 1 and group_id_ = #{group} order by id_ asc
 	</select>
+
+	<select id="queryDefaultPrize" resultMap="BaseResultMap" parameterType="int">
+		select
+		<include refid="Base_Column_List" />
+		from luck_draw_prize
+		where enabled_ = 1 and group_id_ = #{group} and is_default_ = 1 order by id_ asc
+	</select>
 </mapper>

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml

@@ -356,4 +356,8 @@
 		LEFT JOIN `subject` s ON s.id_ = sr.subject_id_
 		WHERE mgpcd.music_group_payment_calender_id_ = #{calenderId}
 	</select>
+	<select id="sumActualAmount" resultType="java.math.BigDecimal">
+		SELECT SUM(mgpcd.actual_amount_) FROM music_group_payment_calender_detail mgpcd
+		WHERE mgpcd.music_group_payment_calender_id_ = #{id}
+	</select>
 </mapper>

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml

@@ -408,4 +408,15 @@
         ORDER BY create_time_ DESC
         <include refid="global.limit"/>
     </select>
+    <select id="countExpectNum" resultType="java.util.Map">
+        SELECT mgpcd.music_group_payment_calender_id_ 'key',COUNT(DISTINCT mgpcd.user_id_) 'value' FROM music_group_payment_calender_detail mgpcd
+        WHERE mgpcd.music_group_payment_calender_id_ = #{id}
+        GROUP BY mgpcd.music_group_payment_calender_id_
+    </select>
+    <select id="countActualNum" resultType="java.util.Map">
+        SELECT mgpcd.music_group_payment_calender_id_ 'key',COUNT(DISTINCT mgpcd.user_id_) 'value' FROM music_group_payment_calender_detail mgpcd
+        WHERE mgpcd.music_group_payment_calender_id_ = #{id}
+        AND mgpcd.payment_status_ = 'PAID_COMPLETED'
+        GROUP BY mgpcd.music_group_payment_calender_id_
+    </select>
 </mapper>

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

@@ -115,6 +115,7 @@ public class LuckDrawController extends BaseController {
 		oriGoods.setStock(luckDrawPrize.getStock());
 		oriGoods.setRewardType(luckDrawPrize.getRewardType());
 		oriGoods.setGroupId(luckDrawPrize.getGroupId());
+		oriGoods.setIsDefault(luckDrawPrize.getIsDefault());
 		oriGoods.setMemo(luckDrawPrize.getMemo());
 		Date date = new Date();
 		oriGoods.setModifyOn(date);

+ 8 - 1
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java

@@ -44,6 +44,13 @@ public class MusicGroupPaymentCalenderController extends BaseController {
         return succeed(musicGroupPaymentCalenderService.queryPage(queryInfo));
     }
 
+    @ApiOperation(value = "获取缴费信息")
+    @GetMapping("/getDetail")
+    @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/getDetail')")
+    public Object getDetail(Long id) {
+        return succeed(musicGroupPaymentCalenderService.getDetail(id));
+    }
+
     @ApiOperation(value = "新增乐团缴费日历")
     @PostMapping(value = "/add", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/add')")
@@ -117,7 +124,7 @@ public class MusicGroupPaymentCalenderController extends BaseController {
 
     @ApiOperation(value = "乐团缴费日历审核拒绝")
     @PostMapping("/auditRefuse")
-    @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/auditPass')")
+    @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/auditRefuse')")
     public Object auditRefuse(Long calenderId,String auditMemo) {
         musicGroupPaymentCalenderService.auditRefuse(calenderId,auditMemo);
         return succeed();

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/OrganizationCourseUnitPriceSettingsController.java

@@ -31,7 +31,7 @@ public class OrganizationCourseUnitPriceSettingsController extends BaseControlle
 	@GetMapping(value = "/queryPage", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	@PreAuthorize("@pcs.hasPermissions('organizationCourseUnitPriceSettings/queryPage')")
 	public Object queryPage(OrganizationCourseUnitPriceSettingsQueryInfo queryInfo) {
-		return succeed();
+		return succeed(organizationCourseUnitPriceSettingsService.queryPage(queryInfo));
 	}
 
 	@ApiOperation(value = "新增对象")