Преглед изворни кода

Merge remote-tracking branch 'origin/master'

周箭河 пре 4 година
родитељ
комит
5e77ed5b2f

+ 39 - 19
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDetailDao.java

@@ -15,6 +15,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 批量新增
+	 *
 	 * @param musicGroupPaymentCalenderDetailList
 	 * @return
 	 */
@@ -22,6 +23,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 获取列表
+	 *
 	 * @param ids
 	 * @return
 	 */
@@ -29,12 +31,14 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 批量修改
+	 *
 	 * @param calenderDetails
 	 */
 	void batchUpdate(@Param("calenderDetails") List<MusicGroupPaymentCalenderDetail> calenderDetails);
 
 	/**
 	 * 根据指定的日历编号查询
+	 *
 	 * @param calenderId
 	 * @return
 	 */
@@ -42,6 +46,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 根据声部获取乐团下完成缴费的学员
+	 *
 	 * @param musicGroupId
 	 * @param subjectId
 	 * @return
@@ -51,6 +56,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 获取学生最后一期续费记录
+	 *
 	 * @param musicGroupId
 	 * @param userId
 	 * @return
@@ -59,6 +65,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 获取可开启缴费的数据集
+	 *
 	 * @param ids
 	 * @return
 	 */
@@ -66,6 +73,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 当前用户是否有进行中的订单
+	 *
 	 * @param musicGroupId
 	 * @param userId
 	 * @return
@@ -79,6 +87,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 获取可以推送缴费提醒的列表
+	 *
 	 * @param musicGroupPaymentCalenderId
 	 * @return
 	 */
@@ -86,24 +95,28 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 获取当天创建,已开启缴费,并且未缴费的用户列表
+	 *
 	 * @return
 	 */
 	List<MusicGroupPaymentCalenderDetail> queryNoPaymentCanPushList();
 
 	/**
 	 * 获取学员对应的乐团
+	 *
 	 * @return
 	 */
 	List<Map<Integer, String>> queryPaymentPushMap();
 
 	/**
 	 * 删除缴费详情
+	 *
 	 * @param musicGroupPaymentCalenderIds
 	 */
 	void batchDel(String musicGroupPaymentCalenderIds);
 
 	/**
 	 * 删除未缴费的明细
+	 *
 	 * @param userId
 	 * @param musicGroupId
 	 */
@@ -111,12 +124,14 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 根据缴费记录删除缴费详情
+	 *
 	 * @param id
 	 */
     void deleteByCalenderId(@Param("id") Long id);
 
 	/**
 	 * 获取缴费详情学员列表
+	 *
 	 * @param calenderId
 	 * @return
 	 */
@@ -124,6 +139,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 获取未缴费的员列表
+	 *
 	 * @param calenderId
 	 * @return
 	 */
@@ -131,6 +147,7 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 
 	/**
 	 * 查询进行中的缴费
+	 *
 	 * @param musicGroupId
 	 * @param userId
 	 * @return
@@ -138,74 +155,77 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
     Integer countOpenPayment(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
 
 	/**
+	 * @param calenderId:
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail>
 	 * @describe 获取指定缴费日历的详情
 	 * @author Joburgess
 	 * @date 2020.10.27
-	 * @param calenderId:
-	 * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail>
 	 */
 	List<MusicGroupPaymentCalenderDetail> getCalenderDetailWithCalender(@Param("calenderId") Long calenderId);
 
 	/**
+	 * @param calenderIds:
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail>
 	 * @describe 获取指定缴费日历的详情
 	 * @author Joburgess
 	 * @date 2020.10.30
-	 * @param calenderIds:
-	 * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail>
 	 */
 	List<MusicGroupPaymentCalenderDetail> getWithCalenderIds(@Param("calenderIds") List<Long> calenderIds);
 
     /**
-     * @describe 获取缴费日历学员列表
-     * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
-     * @author zouxuan
-     * @date 2020/10/30
-     * @time 16:39
-     * @param batchNo:
-     * @param musicGroupId:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
-     */
+	 * @param batchNo:
+	 * @param musicGroupId:
+	 * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
+	 * @describe 获取缴费日历学员列表
+	 * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
+	 * @author zouxuan
+	 * @date 2020/10/30
+	 * @time 16:39
+	 */
 	List<SimpleUserDto> querySimpleUserDto(@Param("batchNo") String batchNo, @Param("musicGroupId") String musicGroupId);
 
 	/**
 	 * 统计实际收款金额
+	 *
 	 * @param id
 	 * @return
 	 */
 	BigDecimal sumActualAmount(@Param("id") Long id);
 
 	/**
+	 * @param calenderId:
+	 * @param userId:
+	 * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail
 	 * @describe 获取学员缴费日历详情
 	 * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
 	 * @author zouxuan
 	 * @date 2020/11/3
 	 * @time 14:47
-	 * @param calenderId:
-	 * @param userId:
-	 * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail
 	 */
 	MusicGroupPaymentCalenderDetail findByCalenderIdAndUserId(@Param("calenderId") Long calenderId, @Param("userId") Integer userId);
 
 	/**
+	 * @param orderId:
+	 * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail
 	 * @describe 根据订单编号获取缴费详情
 	 * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
 	 * @author zouxuan
 	 * @date 2020/11/3
 	 * @time 15:41
-	 * @param orderId:
-	 * @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail
 	 */
 	MusicGroupPaymentCalenderDetail findByOrderId(@Param("orderId") Long orderId);
 
 	/**
 	 * 获取未缴费且不是0元的学员列表
+	 *
 	 * @param calenderId
 	 * @return
 	 */
-    List<Map<Integer, String>> queryNoPaymentAndNotZeroStudent(Long calenderId);
+    List<Map<Integer, String>> queryNoPaymentAndNotZeroStudent(@Param("calenderId") Long calenderId, @Param("studentIds") Set studentIds);
 
 	/**
 	 * 将0元未缴费学员缴费状态更新为已缴费
+	 *
 	 * @param calenderId
 	 */
 	void updateNoPaymentAndZeroPaymentStatus(Long calenderId);

+ 10 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentManageDao.java

@@ -281,10 +281,18 @@ public interface StudentManageDao {
     List<StudentListCourseDto> queryStudentRemianCourse(@Param("userIds") Set<Integer> userIds);
 
     /**
-     * 获取教务老师关联的学员列表
+     * 获取教务老师关联vip的学员列表
      *
      * @param groupType
      * @return
      */
-    List<BasicUserDto> queryGroupStudents(@Param("groupType") String groupType, @Param("userId") Integer userId);
+    List<BasicUserDto> queryVipGroupStudents(@Param("userId") Integer userId);
+
+    /**
+     * 获取教务老师关联网管课的学员列表
+     *
+     * @param groupType
+     * @return
+     */
+    List<BasicUserDto> queryPracticeGroupStudents(@Param("userId") Integer userId);
 }

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentCalenderAddStudentDto.java

@@ -1,12 +1,13 @@
 package com.ym.mec.biz.dal.dto;
 
 import java.util.List;
+import java.util.Set;
 
 public class MusicGroupPaymentCalenderAddStudentDto {
 
 	private String batchNo;
 
-	private List<Integer> userIdList;
+	private Set<Integer> userIdList;
 
 	public String getBatchNo() {
 		return batchNo;
@@ -16,11 +17,11 @@ public class MusicGroupPaymentCalenderAddStudentDto {
 		this.batchNo = batchNo;
 	}
 
-	public List<Integer> getUserIdList() {
+	public Set<Integer> getUserIdList() {
 		return userIdList;
 	}
 
-	public void setUserIdList(List<Integer> userIdList) {
+	public void setUserIdList(Set<Integer> userIdList) {
 		this.userIdList = userIdList;
 	}
 }

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderDetailService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Set;
 
 import com.ym.mec.biz.dal.dto.FeeStudentDto;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
@@ -49,14 +50,14 @@ public interface MusicGroupPaymentCalenderDetailService extends BaseService<Long
      * @param musicGroupPaymentCalenderId
      * @param userIdList
      */
-    void batchAdd(Long musicGroupPaymentCalenderId, List<Integer> userIdList);
+    void batchAdd(Long musicGroupPaymentCalenderId, Set<Integer> userIdList);
 
     /**
      * 乐团缴费记录新增学员
      * @param batchNo
      * @param userIdList
      */
-    void batchAdd(String batchNo, List<Integer> userIdList);
+    void batchAdd(String batchNo, Set<Integer> userIdList);
 
     /**
      * 获取fee表学员列表

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import java.util.List;
+import java.util.Set;
 
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDetailDto;
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDto;
@@ -171,5 +172,5 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	 * @param musicGroup:
 	 * @return com.ym.mec.biz.dal.entity.MusicGroupStudentFee
 	 */
-	void pushWaitRenewMessage(Long calenderId, MusicGroup musicGroup);
+	void pushWaitRenewMessage(Long calenderId, MusicGroup musicGroup, Set<Integer> studentIds);
 }

+ 33 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -227,6 +227,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertIntegerMap(courseSubsidyByCourses);
 
         someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
+            List<String> deductReasons = new ArrayList<>();
 
             BigDecimal subsidy = courseSubsidyMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
             if (Objects.isNull(subsidy)) {
@@ -235,14 +236,19 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             courseScheduleTeacherSalary.setSubsidy(subsidy);
             courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().add(subsidy));
 
+            if(BigDecimal.ZERO.compareTo(subsidy)!=0){
+                deductReasons.add("教学点补贴:" + subsidy);
+            }
+
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
             if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                 courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().multiply(new BigDecimal("0.8")));
+                deductReasons.add("未转正");
             }
 
             //扣除费用
             BigDecimal deductCost = new BigDecimal(0);
-            List<String> deductReasons = new ArrayList<>();
+
             List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
 
             TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
@@ -289,9 +295,9 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             if(BigDecimal.ZERO.compareTo(deductCost)<0){
                 deductReasons.add("扣除总费用:" + deductCost);
-                courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
             }
-
+            if(!CollectionUtils.isEmpty(deductReasons))
+                courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
             courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
             courseScheduleTeacherSalary.setSettlementTime(now);
             courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
@@ -358,21 +364,25 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         //处理课酬信息
         someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
 
+            List<String> deductReasons = new ArrayList<>();
             BigDecimal subsidy = courseSubsidyMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
             if (Objects.isNull(subsidy)) {
                 subsidy = new BigDecimal(0);
             }
             courseScheduleTeacherSalary.setSubsidy(subsidy);
             courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().add(subsidy));
+            if(BigDecimal.ZERO.compareTo(subsidy)!=0){
+                deductReasons.add("教学点补贴:" + subsidy);
+            }
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
             if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                 courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().multiply(new BigDecimal("0.8")));
+                deductReasons.add("未转正");
             }
 
             //扣除费用
             BigDecimal deductCost = new BigDecimal(0);
-            List<String> deductReasons = new ArrayList<>();
             List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
 
             TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
@@ -421,16 +431,16 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 }
 
                 if(TeachModeEnum.OFFLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
-                    deductCost = courseScheduleTeacherSalary.getExpectSalary();
-                    deductReasons.clear();
+                    deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary());
                     deductReasons.add("点名时经纬度不在范围内扣除全部课酬");
                 }
             }
 
             if(BigDecimal.ZERO.compareTo(deductCost)<0){
                 deductReasons.add("扣除总费用:" + deductCost);
-                courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
             }
+            if(!CollectionUtils.isEmpty(deductReasons))
+                courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
 
             BigDecimal finalSalary = courseScheduleTeacherSalary.getExpectSalary().subtract(deductCost).setScale(BigDecimal.ZERO.intValue(), BigDecimal.ROUND_HALF_UP);
 
@@ -563,21 +573,25 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 if(Objects.isNull(teacherSalary)){
                     teacherSalary = BigDecimal.ZERO;
                 }
+                List<String> deductReasons = new ArrayList<>();
 
                 BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getId());
                 if (Objects.isNull(subsidy)) {
                     subsidy = new BigDecimal(0);
                 }
                 teacherSalary = teacherSalary.add(subsidy);
+                if(BigDecimal.ZERO.compareTo(subsidy)!=0){
+                    deductReasons.add("教学点补贴:" + subsidy);
+                }
 
                 //如果上课日期在转正日期之前的按80%结算
                 if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                     teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
+                    deductReasons.add("未转正");
                 }
 
                 //扣除费用
                 BigDecimal deductCost = new BigDecimal(0);
-                List<String> deductReasons = new ArrayList<>();
                 deductReasons.add("课程应到人数:" + normalStudentNum);
                 List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
 
@@ -626,7 +640,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 if(BigDecimal.ZERO.compareTo(deductCost)<0){
                     deductReasons.add("扣除总费用:" + deductCost);
                 }
-                courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
+                if(!CollectionUtils.isEmpty(deductReasons))
+                    courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
 
                 //更新教师结算信息
                 courseScheduleTeacherSalary.setSubsidy(subsidy);
@@ -674,19 +689,24 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 teacherSalary=courseScheduleTeacherSalary.getExpectSalary();
             }
 
+            List<String> deductReasons = new ArrayList<>();
+
             BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getId());
             if (Objects.isNull(subsidy)) {
                 subsidy = new BigDecimal(0);
             }
             teacherSalary = teacherSalary.add(subsidy);
+            if(BigDecimal.ZERO.compareTo(subsidy)!=0){
+                deductReasons.add("教学点补贴:" + subsidy);
+            }
 
             if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                 teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
+                deductReasons.add("未转正");
             }
 
             //扣除费用
             BigDecimal deductCost = BigDecimal.ZERO;
-            List<String> deductReasons = new ArrayList<>();
             List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
 
             boolean isCallName = false;
@@ -775,9 +795,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             }
 
             if(!signInInRange&&!signOutInRange){
-                deductReasons.clear();
                 //签到签退GPS定位在指定距离外
-                deductCost = teacherSalary;
+                deductCost = deductCost.add(teacherSalary);
                 deductReasons.add("签到签退GPS定位在指定距离外,扣除全部课酬");
             }
 
@@ -785,6 +804,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             if(BigDecimal.ZERO.compareTo(deductCost)<0){
                 deductReasons.add("扣除总费用:" + deductCost);
+            }
+            if(!CollectionUtils.isEmpty(deductReasons)){
                 courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
             }
 

+ 21 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -121,18 +121,26 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			musicGroupStudentFeeDao.setPaidCompleted(calenderDetails);
 		}*/
 		musicGroupPaymentCalenderDetailDao.batchUpdate(calenderDetails);
-
-		//获取未缴费且不是0元的学员列表
-		Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calender.getId()));
-		if(studentMaps.size() > 0){
-			MusicGroup musicGroup = musicGroupDao.get(calender.getMusicGroupId());
+		//推送消息
+		if (studentIds.size() > 0) {
+			String musicGroupId = calenderDetails.get(0).getMusicGroupId();
+			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 + "/#/musicGroupRenew?calenderId="+calender.getId()+"&id=" + calender.getMusicGroupId();
 			// 发送续费通知
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, studentMaps,
+			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_PUSH_WAIT_RENEW_MESSAGE, studentMaps,
-					null, 0, memo, null, musicGroup.getName());
+
+			//获取未缴费且不是0元的学员列表
+			Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calender.getId(),studentIds));
+			if(studentMaps.size() > 0){
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, studentMaps,
+						null, 0, memo, null, musicGroup.getName());
+			}
 		}
 //		}
 	}
@@ -173,7 +181,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
 					null, 0, memo,"STUDENT",musicGroup.getName());
 			//获取未缴费且不是0元的学员列表
-			Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calender.getId()));
+			Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calender.getId(),studentIds));
 			if(studentMaps.size() > 0){
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, studentMaps,
 						null, 0, memo, null, musicGroup.getName());
@@ -270,7 +278,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void batchAdd(Long musicGroupPaymentCalenderId, List<Integer> userIdList) {
+	public void batchAdd(Long musicGroupPaymentCalenderId, Set<Integer> userIdList) {
 		
 		MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderService.get(musicGroupPaymentCalenderId);
 		if(musicGroupPaymentCalender == null){
@@ -365,13 +373,13 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		}
 		//给学员推送缴费通知
 		if(musicGroupPaymentCalender.getStatus() == PaymentCalenderStatusEnum.OPEN){
-			musicGroupPaymentCalenderService.pushWaitRenewMessage(musicGroupPaymentCalenderId,musicGroupDao.get(musicGroupPaymentCalender.getMusicGroupId()));
+			musicGroupPaymentCalenderService.pushWaitRenewMessage(musicGroupPaymentCalenderId,musicGroupDao.get(musicGroupPaymentCalender.getMusicGroupId()),userIdList);
 		}
 	}
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void batchAdd(String batchNo, List<Integer> userIdList) {
+	public void batchAdd(String batchNo, Set<Integer> userIdList) {
 		
 		List<MusicGroupPaymentCalender> musicGroupPaymentCalenderList = musicGroupPaymentCalenderDao.findByBatchNo(batchNo);
 		
@@ -475,7 +483,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		for (MusicGroupPaymentCalender musicGroupPaymentCalender : musicGroupPaymentCalenderList) {
 			if (musicGroupPaymentCalender.getStatus() == PaymentCalenderStatusEnum.OPEN) {
 				musicGroupPaymentCalenderService.pushWaitRenewMessage(musicGroupPaymentCalenderId,
-						musicGroupDao.get(musicGroupPaymentCalender.getMusicGroupId()));
+						musicGroupDao.get(musicGroupPaymentCalender.getMusicGroupId()),userIdList);
 			}
 		}
 	}

+ 11 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -419,7 +419,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				}else if(musicGroupPaymentCalenderDto.getMergeClassFlag()){
 					//缴费项目添加学员
 					int[] ints = Arrays.stream(musicGroupPaymentCalenderDto.getStudentIds().split(",")).mapToInt(Integer::parseInt).toArray();
-					List<Integer> list2 = Arrays.stream(ints).boxed().collect(Collectors.toList());
+					Set<Integer> list2 = Arrays.stream(ints).boxed().collect(Collectors.toSet());
 					musicGroupPaymentCalenderDetailService.batchAdd(musicGroupPaymentCalender.getId(),list2);
 				}
 			}
@@ -965,7 +965,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		for (MusicGroupPaymentCalender calender : musicGroupPaymentCalenders) {
 			//缴费项目添加学员
 			int[] ints = Arrays.stream(calender.getStudentIds().split(",")).mapToInt(Integer::parseInt).toArray();
-			List<Integer> list2 = Arrays.stream(ints).boxed().collect(Collectors.toList());
+			Set<Integer> list2 = Arrays.stream(ints).boxed().collect(Collectors.toSet());
 			musicGroupPaymentCalenderDetailService.batchAdd(calender.getId(),list2);
 		}
 		//每种课程类型单独排课
@@ -1103,8 +1103,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	}
 
 	//推送待续费通知
-	public void pushWaitRenewMessage(Long calenderId,MusicGroup musicGroup){
-		Set<Integer> studentIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentStudentIds(calenderId);
+	public void pushWaitRenewMessage(Long calenderId,MusicGroup musicGroup,Set<Integer> studentIds){
+		if(studentIds == null){
+			studentIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentStudentIds(calenderId);
+		}
 		if (studentIds.size() > 0) {
 			String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
 			String memo = "4?" + baseUrl + "/#/musicGroupRenew?calenderId="+calenderId+"&id=" + musicGroup.getId();
@@ -1117,7 +1119,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 					null, 0, memo, "STUDENT", musicGroup.getName());
 
 			//获取未缴费且不是0元的学员列表
-			Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calenderId));
+			Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calenderId,studentIds));
 			if(studentMaps.size() > 0){
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, studentMaps,
 						null, 0, memo, null, musicGroup.getName());
@@ -1157,7 +1159,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				mgpc.setStatus(PaymentCalenderStatusEnum.OPEN);
 				updateMusicGroupPaymentCalenderList.add(mgpc);
 				//推送待续费通知
-				pushWaitRenewMessage(mgpc.getId(),musicGroup);
+				pushWaitRenewMessage(mgpc.getId(),musicGroup,null);
 			}
 		}
 		if (updateMusicGroupPaymentCalenderList.size() > 0) {
@@ -1233,7 +1235,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
 						null, 0, memo, "STUDENT", musicGroup.getName());
 				//获取未缴费且不是0元的学员列表
-				Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calender.getId()));
+				Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calender.getId(),studentIds));
 				if(studentMaps.size() > 0){
 					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, studentMaps,
 							null, 0, memo, null, musicGroup.getName());
@@ -1330,7 +1332,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
 						null, 0, memo, "STUDENT", musicGroup.getName());
 				//获取未缴费且不是0元的学员列表
-				Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(id));
+				Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(id,studentIds));
 				if(studentMaps.size() > 0){
 					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, studentMaps,
 							null, 0, memo, null, musicGroup.getName());
@@ -1353,7 +1355,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, push,
 						null, 0, memo, "STUDENT", musicGroup.getName());
 				//获取未缴费且不是0元的学员列表
-				Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(id));
+				Map<Integer,String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(id,studentIds));
 				if(studentMaps.size() > 0){
 					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_PUSH_WAIT_RENEW_MESSAGE, studentMaps,
 							null, 0, memo, null, musicGroup.getName());

+ 5 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -694,6 +694,10 @@ public class StudentManageServiceImpl implements StudentManageService {
         if(sysUser == null || sysUser.getId() == null){
             throw new BizException("用户信息获取失败");
         }
-        return studentManageDao.queryGroupStudents(groupType,sysUser.getId());
+        if("VIP".equals(groupType)){
+            return studentManageDao.queryVipGroupStudents(sysUser.getId());
+        }else {
+            return studentManageDao.queryPracticeGroupStudents(sysUser.getId());
+        }
     }
 }

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

@@ -561,7 +561,7 @@
             mg.id_ music_group_id_,
             mg.name_ music_group_name_,
             s.id_ school_id_,
-            CASE WHEN cg.type_ IN ("HIGH_ONLINE","MUSIC_NETWORK") THEN '网络教室' ELSE s.name_ END school_name_
+            CASE WHEN cg.type_ IN ('HIGH_ONLINE','MUSIC_NETWORK') THEN '网络教室' ELSE s.name_ END school_name_
         FROM
             course_schedule_teacher_salary csts
             LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_

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

@@ -387,6 +387,12 @@
 		SELECT mgpcd.user_id_ 'key',su.phone_ 'value' FROM music_group_payment_calender_detail mgpcd
 		LEFT JOIN sys_user su ON su.id_ = mgpcd.user_id_
 		WHERE music_group_payment_calender_id_ = #{calenderId} AND expect_amount_ != 0 AND payment_status_ = 'NON_PAYMENT'
+		<if test="studentIds != null">
+			AND mgpcd.user_id_ IN
+			<foreach collection="studentIds" separator="," close=")" open="(" item="item">
+				#{item}
+			</foreach>
+		</if>
     </select>
 
 	<update id="updateNoPaymentAndZeroPaymentStatus">

+ 15 - 14
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -813,24 +813,25 @@
 		GROUP BY cssp.`user_id_`
     </select>
 
-    <select id="queryGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+    <select id="queryVipGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
         SELECT su.id_,su.username_,su.phone_,su.avatar_ head_url_,su.gender_ FROM
-        <if test="groupType = 'PRACTICE'">
-            practice_group pg
-        </if>
-        <if test="groupType = 'VIP'">
-            vip_group pg
-        </if>
+        vip_group vg
+        LEFT JOIN class_group_student_mapper cgsm ON vg.id_ = cgsm.music_group_id_
+        LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
+        WHERE cgsm.group_type_ = 'VIP' AND cgsm.status_ != 'QUIT'
+        AND vg.educational_teacher_id_ = #{userId}
+        AND vg.group_status_ IN (0,1,2,5)
+        GROUP BY cgsm.user_id_
+    </select>
+
+    <select id="queryPracticeGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+        SELECT su.id_,su.username_,su.phone_,su.avatar_ head_url_,su.gender_ FROM
+        practice_group pg
         LEFT JOIN class_group_student_mapper cgsm ON pg.id_ = cgsm.music_group_id_
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
-        WHERE cgsm.group_type_ = #{groupType} AND cgsm.status_ != 'QUIT'
+        WHERE cgsm.group_type_ = 'PRACTICE' AND cgsm.status_ != 'QUIT'
         AND pg.educational_teacher_id_ = #{userId}
-        <if test="groupType = 'PRACTICE'">
-            AND pg.group_status_ NOT IN ('FINISH','CANCEL')
-        </if>
-        <if test="groupType = 'VIP'">
-            AND pg.group_status_ IN (0,1,2,5)
-        </if>
+        AND pg.group_status_ NOT IN ('FINISH','CANCEL')
         GROUP BY cgsm.user_id_
     </select>
 </mapper>

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

@@ -40,7 +40,7 @@ public class EduStudentStudentController extends BaseController {
     }
 
     @ApiOperation(value = "教务老师关联的学员列表")
-    @PostMapping("studentManage/queryGroupStudents")
+    @GetMapping("studentManage/queryGroupStudents")
     public Object queryGroupStudents(String groupType){
         return succeed(studentManageService.queryGroupStudents(groupType));
     }