zouxuan 5 年之前
父節點
當前提交
9afa3a8025

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

@@ -202,4 +202,11 @@ public interface MusicGroupStudentFeeDao extends BaseDAO<Long, MusicGroupStudent
 	 * @return
 	 */
     List<FeeStudentDto> queryFeeStudents(@Param("musicGroupId") String musicGroupId, @Param("search") String search, @Param("subjectId") Integer subjectId);
+
+	/**
+	 * 根据缴费项目修改缴费状态
+	 * @param calenderId
+	 * @param paymentStatus
+	 */
+	void updatePaymentStatus(@Param("calenderId") Long calenderId, @Param("paymentStatus") String paymentStatus);
 }

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

@@ -40,9 +40,10 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	/**
 	 * 修改缴费日期
 	 * @param startTime
+	 * @param endTime
 	 * @param id
 	 */
-    void updateStartTime(Date startTime, Long id);
+    void updateStartTime(Date startTime,Date endTime,Long id);
 
 	/**
 	 * 删除

+ 31 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -338,8 +338,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void updateStartTime(Date startTime, Long id) {
-		if (startTime == null || id == null) {
+	public void updateStartTime(Date startTime,Date endTime,Long id) {
+		if (startTime == null || id == null || endTime == null) {
 			throw new BizException("参数校验失败");
 		}
 		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(id);
@@ -349,10 +349,35 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		if (calender.getPaymentStatus() == null || calender.getPaymentStatus() != NO) {
 			throw new BizException("修改失败,缴费状态不匹配");
 		}
-		calender.setStartPaymentDate(startTime);
-		calender.setDeadlinePaymentDate(DateUtil.addDays(startTime, 3));
-		calender.setUpdateTime(new Date());
-		musicGroupPaymentCalenderDao.update(calender);
+		Date date = new Date();
+		// 判断缴费开始时间、结束时间是否被其他缴费记录占用
+		int count = musicGroupPaymentCalenderDao.queryIntersectionByPaymentDate(calender.getMusicGroupId(), startTime,endTime);
+		if (count > 0) {
+			throw new BizException("缴费时间存在冲突,请修改缴费开始日期");
+		}
+		if (date.after(endTime)) {
+			calender.setPaymentStatus(PaymentStatusEnum.YES);
+		} else if (date.after(startTime)) {
+			calender.setPaymentStatus(PaymentStatusEnum.OPEN);
+			//修改Fee缴费状态为未缴费
+			musicGroupStudentFeeDao.updatePaymentStatus(calender.getId(),"NON_PAYMENT");
+			List<MusicGroupPaymentCalenderDetail> details = musicGroupPaymentCalenderDetailDao.queryByCalenderId(calender.getId());
+			Set<Integer> studentIds = details.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
+			if (studentIds.size() > 0) {
+				Map<Integer, String> push = new HashMap<>();
+				for (Integer userId : studentIds) {
+					push.put(userId, userId + "");
+				}
+				MusicGroup musicGroup = musicGroupDao.get(calender.getMusicGroupId());
+				String configValue = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+				String memo = "4?" + configValue + "/#/renew?musicGroupId=" + musicGroup.getId();
+				// 发送续费通知
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
+						null, 0, memo, "STUDENT", musicGroup.getName());
+			}
+		} else {
+			calender.setPaymentStatus(PaymentStatusEnum.NO);
+		}
 	}
 
 	@Override

+ 7 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml

@@ -357,4 +357,11 @@
         SET mgsf.remain_network_class_times_ = mgsf.remain_network_class_times_ + 1
         WHERE mgpcd.music_group_payment_calender_id_ = mgpc.id_ AND FIND_IN_SET(mgpcd.id_,#{musicGroupPaymentCalenderDetailIds})
     </update>
+    <update id="updatePaymentStatus">
+        UPDATE music_group_student_fee_ mgsf
+        LEFT JOIN music_group_payment_calender_detail mgpcd ON mgpcd.user_id_ = mgsf.user_id_
+        LEFT JOIN music_group_payment_calender mgpc ON mgpc.music_group_id_ = mgsf.music_group_id_
+        SET mgsf.payment_status_ = #{paymentStatus},mgsf.update_time_ = NOW()
+        WHERE mgpcd.music_group_payment_calender_id_ = mgpc.id_ AND mgpc.id_ = #{calenderId}
+    </update>
 </mapper>

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

@@ -53,8 +53,8 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     @ApiOperation(value = "修改乐团缴费日历")
     @PostMapping("/updateStartTime")
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/updateStartTime')")
-    public Object updateStartTime(Date startTime,Long id) {
-        musicGroupPaymentCalenderService.updateStartTime(startTime,id);
+    public Object updateStartTime(Date startTime,Date endTime,Long id) {
+        musicGroupPaymentCalenderService.updateStartTime(startTime,endTime,id);
         return succeed();
     }