Browse Source

手动触发缴费推送

zouxuan 4 years ago
parent
commit
aeae1b2cae

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

@@ -264,4 +264,12 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroup>
 	 */
 	List<MusicGroup> getNoPaymentStudentMusicGroups(@Param("organIds") Set<Integer> organIds);
+
+	/**
+	 * 获取可以缴费,并且未缴费,不是0元的学员
+	 * @param calenderId
+	 * @param studentIds
+	 * @return
+	 */
+	List<MusicGroupPaymentCalenderDetail> queryNoPaymentCanPushByCalenderId(@Param("calenderId") Long calenderId, @Param("studentIds") String studentIds);
 }

+ 5 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -593,16 +593,12 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 	}
 
 	@Override
-	public void pushWaitRenewMessage(Long calenderDetailId, String studentIds) {
-		MusicGroupPaymentCalenderDetail calenderDetail = musicGroupPaymentCalenderDetailDao.get(calenderDetailId);
-		if(calenderDetail == null){
-			throw new BizException("缴费详情不存在");
+	public void pushWaitRenewMessage(Long calenderId, String studentIds) {
+		List<MusicGroupPaymentCalenderDetail> calenderDetails = musicGroupPaymentCalenderDetailDao.queryNoPaymentCanPushByCalenderId(calenderId,studentIds);
+		if(calenderDetails == null){
+			throw new BizException("发送失败:没有可以发送缴费提醒的学员");
 		}
-		Long calenderId = calenderDetail.getMusicGroupPaymentCalenderId();
 		MusicGroupPaymentCalender paymentCalender = musicGroupPaymentCalenderDao.get(calenderId);
-		if(paymentCalender.getStatus() != OPEN && calenderDetail.getOpenFlag() != YesOrNoEnum.YES){
-			throw new BizException("操作失败:请开启缴费");
-		}
 		//未缴费
 		HashSet<String> strings = new HashSet<>(Arrays.asList(studentIds.split(",")));
 		Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calenderId,strings));
@@ -620,7 +616,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_WAIT_RENEW_MESSAGE, studentMaps,
 					null, 0, memo, null, musicGroup.getName());
 		}else {
-			throw new BizException("操作失败:没有待续费学员");
+			throw new BizException("发送失败:没有待续费学员");
 		}
 	}
 }

+ 8 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -1218,11 +1218,15 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				// “未开始”更新至“进行中”
 				mgpc.setUpdateTime(date);
 				mgpc.setStatus(PaymentCalenderStatusEnum.OPEN);
+
+				//将0元未缴费学员缴费状态更新为已缴费
+				int i = musicGroupPaymentCalenderDetailDao.updateNoPaymentAndZeroPaymentStatus(mgpc.getId());
+				mgpc.setActualNum((mgpc.getActualNum()==null?0:mgpc.getActualNum()) + i);
 				updateMusicGroupPaymentCalenderList.add(mgpc);
-				if(mgpc.getPayUserType() == STUDENT){
-					//推送待续费通知
-					pushWaitRenewMessage(mgpc.getId(),musicGroup,null);
-				}
+//				if(mgpc.getPayUserType() == STUDENT){
+//					推送待续费通知
+//					pushWaitRenewMessage(mgpc.getId(),musicGroup,null);
+//				}
 			}
 		}
 		if (updateMusicGroupPaymentCalenderList.size() > 0) {

+ 8 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml

@@ -510,8 +510,15 @@
 				</foreach>
 			</if>
 	</select>
+	<select id="queryNoPaymentCanPushByCalenderId"
+			resultMap="MusicGroupPaymentCalenderDetail">
+		SELECT mgpcd.* FROM music_group_payment_calender_detail mgpcd
+		LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpcd.music_group_payment_calender_id_
+		WHERE (mgpc.status_ = 'OPEN' OR mgpcd.open_ = 1) AND mgpcd.payment_status_ = 'NON_PAYMENT' AND mgpcd.expect_amount_ != 0
+		AND mgpcd.music_group_payment_calender_id_ = #{calenderId} AND FIND_IN_SET(mgpcd.user_id_,#{studentIds})
+	</select>
 
-    <update id="updateNoPaymentAndZeroPaymentStatus">
+	<update id="updateNoPaymentAndZeroPaymentStatus">
 		UPDATE music_group_payment_calender_detail SET payment_status_ = 'PAID_COMPLETED',actual_amount_ = 0,update_time_ = NOW()
 		WHERE music_group_payment_calender_id_ = #{calenderId} AND expect_amount_ = 0 AND payment_status_ = 'NON_PAYMENT'
 	</update>