瀏覽代碼

Merge branch 'musicScore' of http://git.dayaedu.com/yonge/mec into fee_audit

zouxuan 4 年之前
父節點
當前提交
6ba4327e2b

+ 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);
+
+	/**
+	 *
+	 * @param calenderId
+	 * @param studentIds
+	 * @return
+	 */
+    List<MusicGroupPaymentCalenderDetail> queryNoPaymentCanPushByCalenderId(@Param("calenderId") Long calenderId, @Param("studentIds") String studentIds);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderDetailService.java

@@ -104,4 +104,11 @@ public interface MusicGroupPaymentCalenderDetailService extends BaseService<Long
      * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroup>
      */
     List<MusicGroup> getNoPaymentStudentMusicGroups(String organIds);
+
+    /**
+     * 发送学员待续费通知
+     * @param calenderId
+     * @param studentIds
+     */
+    void pushWaitRenewMessage(Long calenderId, String studentIds);
 }

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -607,4 +607,28 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		}
 		return musicGroupPaymentCalenderDetailDao.getNoPaymentStudentMusicGroups(organIds);
 	}
+
+	@Override
+	public void pushWaitRenewMessage(Long calenderId, String studentIds) {
+		List<MusicGroupPaymentCalenderDetail> calenderDetails = musicGroupPaymentCalenderDetailDao.queryNoPaymentCanPushByCalenderId(calenderId,studentIds);
+		if(calenderDetails == null || calenderDetails.size() == 0){
+			throw new BizException("发送失败:没有可以发送缴费提醒的学员");
+		}
+		Set<Integer> studentIdList = calenderDetails.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
+		MusicGroupPaymentCalender paymentCalender = musicGroupPaymentCalenderDao.get(calenderId);
+		//未缴费
+		Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calenderId,studentIdList));
+		MusicGroup musicGroup = musicGroupDao.get(paymentCalender.getMusicGroupId());
+		String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+		String memo = "4?" + baseUrl + "/#/musicGroupRenew?calenderId="+calenderId+"&id=" + musicGroup.getId();
+		Map<Integer, String> push = new HashMap<>();
+		for (Integer userId : studentIdList) {
+			push.put(userId, userId.toString());
+		}
+		// 发送续费通知
+		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
+				null, 0, memo, "STUDENT", musicGroup.getName());
+		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_WAIT_RENEW_MESSAGE, studentMaps,
+				null, 0, memo, null, musicGroup.getName());
+	}
 }

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

@@ -511,6 +511,14 @@
 			</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 music_group_payment_calender_detail mgpcd
 		SET mgpcd.payment_status_ = 'PAID_COMPLETED',mgpcd.actual_amount_ = 0,mgpcd.update_time_ = NOW()

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderDetailController.java

@@ -105,6 +105,13 @@ public class MusicGroupPaymentCalenderDetailController extends BaseController {
         return succeed;
     }
 
+    @ApiOperation(value = "发送学员待续费通知")
+    @PostMapping("/sendWaitRenewMessage")
+    @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalenderDetail/sendWaitRenewMessage')")
+    public HttpResponseResult sendWaitRenewMessage(Long calenderId, String studentIds) {
+        musicGroupPaymentCalenderDetailService.pushWaitRenewMessage(calenderId,studentIds);
+        return succeed();
+    }
 
     @ApiOperation(value = "未缴费学员列表")
     @GetMapping("/queryArrearageStudents")