zouxuan 5 years ago
parent
commit
c16182cb9b

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

@@ -81,4 +81,17 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 	 */
 	 */
 	void refreshUserMusicGroupPaymentStatusTask();
 	void refreshUserMusicGroupPaymentStatusTask();
 
 
+	/**
+	 * 获取可以推送缴费提醒的列表
+	 * @param musicGroupPaymentCalenderId
+	 * @return
+	 */
+	List<MusicGroupPaymentCalenderDetail> queryCanPushList(@Param("musicGroupPaymentCalenderId") Long musicGroupPaymentCalenderId);
+
+	/**
+	 * 获取当天创建,已开启缴费,并且未缴费的用户列表
+	 * @return
+	 */
+	List<MusicGroupPaymentCalenderDetail> queryNoPaymentCanPushList();
+
 }
 }

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

@@ -63,4 +63,12 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	 * @return
 	 * @return
 	 */
 	 */
 	Object queryDetailPage(MusicCalenderQueryInfo queryInfo);
 	Object queryDetailPage(MusicCalenderQueryInfo queryInfo);
+
+	/**
+	 * 推送乐团缴费提醒
+	 * @param id
+	 * @param userIds
+	 * @return
+	 */
+	void paymentPush(Long id, String userIds);
 }
 }

+ 60 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -157,6 +157,25 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	@Override
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	@Transactional(rollbackFor = Exception.class)
 	public boolean autoUpdateMusicGroupPaymentCalenderStatus() {
 	public boolean autoUpdateMusicGroupPaymentCalenderStatus() {
+		//获取当天创建且未缴费的数据,并推送
+		List<MusicGroupPaymentCalenderDetail> details = musicGroupPaymentCalenderDetailDao.queryNoPaymentCanPushList();
+		if(details != null && details.size() > 0){
+			Set<Integer> studentIds = details.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
+			String musicGroupId = details.get(0).getMusicGroupId();
+			if (studentIds.size() > 0) {
+				Map<Integer, String> push = new HashMap<>();
+				for (Integer userId : studentIds) {
+					push.put(userId, userId + "");
+				}
+				MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+				String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+				String memo = "4?" + baseUrl + "/#/renew?musicGroupId=" + musicGroup.getId();
+				// 发送续费通知
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
+						null, 0, memo, "STUDENT", musicGroup.getName());
+			}
+		}
+
 		Date date = new Date();
 		Date date = new Date();
 		List<PaymentStatusEnum> statusList = new ArrayList<PaymentStatusEnum>();
 		List<PaymentStatusEnum> statusList = new ArrayList<PaymentStatusEnum>();
 		statusList.add(PaymentStatusEnum.NO);
 		statusList.add(PaymentStatusEnum.NO);
@@ -372,4 +391,45 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		});
 		});
 		return pageInfo;
 		return pageInfo;
 	}
 	}
+
+	@Override
+	public void paymentPush(Long id, String userIds) {
+		//推送所有
+		if(StringUtils.isEmpty(userIds)){
+			List<MusicGroupPaymentCalenderDetail> details = musicGroupPaymentCalenderDetailDao.queryCanPushList(id);
+			if(details == null || details.size() == 0){
+				return;
+			}
+			String musicGroupId = details.get(0).getMusicGroupId();
+			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(musicGroupId);
+				String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+				String memo = "4?" + baseUrl + "/#/renew?musicGroupId=" + musicGroupId;
+				// 发送续费通知
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push, null, 0, memo,"STUDENT",musicGroup.getName());
+			}
+		}else {
+			//获取课推送列表
+			//批量推送
+			MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(id);
+			Set<String> studentIds = new HashSet<>(Arrays.asList(userIds.split(",")));
+			if (studentIds.size() > 0) {
+				Map<Integer, String> push = new HashMap<>();
+				for (String userId : studentIds) {
+					push.put(Integer.parseInt(userId), userId + "");
+				}
+				MusicGroup musicGroup = musicGroupDao.get(calender.getMusicGroupId());
+				String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+				String memo = "4?" + baseUrl + "/#/renew?musicGroupId=" + calender.getMusicGroupId();
+				// 发送续费通知
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push, null, 0, memo,"STUDENT",musicGroup.getName());
+			}
+		}
+	}
 }
 }

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

@@ -257,4 +257,16 @@
 		WHERE mgpc.music_group_id_ = #{musicGroupId} AND mgpcd.user_id_ = #{userId}
 		WHERE mgpc.music_group_id_ = #{musicGroupId} AND mgpcd.user_id_ = #{userId}
 		AND  mgpcd.open_ = 1
 		AND  mgpcd.open_ = 1
 	</select>
 	</select>
+	<select id="queryCanPushList" resultMap="MusicGroupPaymentCalenderDetail">
+		SELECT mgpcd.*,mgpc.music_group_id_ FROM music_group_payment_calender_detail mgpcd
+		LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpcd.music_group_payment_calender_id_
+		LEFT JOIN student_registration sr ON sr.music_group_id_ = mgpc.music_group_id_
+		WHERE mgpcd.payment_status_ = 'NON_PAYMENT' AND sr.music_group_status_ != 'QUIT' AND mgpc.id_ = #{musicGroupPaymentCalenderId}
+		GROUP BY mgpcd.id_
+	</select>
+	<select id="queryNoPaymentCanPushList" resultMap="MusicGroupPaymentCalenderDetail">
+		SELECT mgpcd.*,mgpc.music_group_id_ FROM music_group_payment_calender mgpc
+		LEFT JOIN music_group_payment_calender_detail mgpcd ON mgpc.id_ = mgpcd.music_group_payment_calender_id_
+		WHERE mgpc.create_time_ = DATE_FORMAT(NOW(),'%Y-%m-%d') AND mgpc.payment_status_ = 1 AND mgpcd.payment_status_ = 'NON_PAYMENT'
+	</select>
 </mapper>
 </mapper>

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

@@ -71,4 +71,12 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     public Object getDetail(Long id) {
     public Object getDetail(Long id) {
         return succeed(musicGroupPaymentCalenderService.getDetail(id));
         return succeed(musicGroupPaymentCalenderService.getDetail(id));
     }
     }
+
+    @ApiOperation(value = "开启缴费的推送(暂时不用,没写完)")
+    @GetMapping("/paymentPush")
+    @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/paymentPush')")
+    public Object paymentPush(Long id,String userIds) {
+        musicGroupPaymentCalenderService.paymentPush(id,userIds);
+        return succeed();
+    }
 }
 }