Forráskód Böngészése

Merge remote-tracking branch 'origin/teacher_vip_salary' into teacher_vip_salary

Joburgess 4 éve
szülő
commit
ea6a36eaf8

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

@@ -337,4 +337,11 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
      * @return
      */
     List<MusicGroupPaymentCalender> getMusicGroupCalenderBatchNoByIds(@Param("ids") List<String> ids);
+
+    /**
+     * 获取缴费状态在审核中或者已拒绝的缴费项目的学员
+     * @param musicGroupId
+     * @return
+     */
+    String queryCalenderStudentIds(@Param("musicGroupId") String musicGroupId, @Param("batchNo") String batchNo);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentAttendanceQueryInfo.java

@@ -59,6 +59,16 @@ public class StudentAttendanceQueryInfo extends QueryInfo {
     //是否回访
     private Boolean visitFlag;
 
+    private Boolean orderFlag;
+
+    public Boolean getOrderFlag() {
+        return orderFlag;
+    }
+
+    public void setOrderFlag(Boolean orderFlag) {
+        this.orderFlag = orderFlag;
+    }
+
     public Boolean getVisitFlag() {
         return visitFlag;
     }

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -3463,6 +3463,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if(noPaymentUserIds.size() > 0){
             throw new BizException("操作失败:有欠费的学员不允许创建缴费");
         }
+        //获取缴费状态在审核中或者已拒绝的缴费项目的学员
+        String studentId = musicGroupPaymentCalenderDao.queryCalenderStudentIds(musicGroup.getId(),null);
+        if(StringUtils.isNotEmpty(studentId)){
+            for (Integer integer : studentIds) {
+                if(studentId.contains(integer.toString())){
+                    throw new BizException("操作失败:所选学员有待审核或已拒绝的缴费项目");
+                }
+            }
+        }
         SysUser sysUser = sysUserFeignService.queryUserInfo();
 
         //生成缴费记录,同一个批次
@@ -3849,6 +3858,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 studentIds);
         //创建缴费项目
         MusicGroup musicGroup = musicGroupDao.findByClassGroupId(masterClassGroupId);
+        //获取缴费状态在审核中或者已拒绝的缴费项目的学员
+        String studentId = musicGroupPaymentCalenderDao.queryCalenderStudentIds(musicGroup.getId(),null);
+        if(StringUtils.isNotEmpty(studentId)){
+            for (Integer integer : studentIds) {
+                if(studentId.contains(integer.toString())){
+                    throw new BizException("操作失败:所选学员有待审核或已拒绝的缴费项目");
+                }
+            }
+        }
         BigDecimal masterTotalPrice = getMasterTotalPrice(masterClassGroupId);
         //是否有需要审核的缴费项目
         List<MusicGroupPaymentCalenderStudentDetail> calenderStudentDetails = paymentCalenderDto.getMusicGroupPaymentCalenderStudentDetails();

+ 22 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -3895,14 +3895,30 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         }
         //学员提起申诉通知
         CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleComplaints.getCourseScheduleId());
-        Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
-        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-        roleIds.add(SysUserRole.SECTION_MANAGER);
-        roleIds.add(SysUserRole.ADMINISTRATOR);
+		GroupType groupType = courseSchedule.getGroupType();
+		String musicGroupId = courseSchedule.getMusicGroupId();
+		Integer targetUserId = null;
+		switch (groupType) {
+			case VIP:
+				targetUserId = vipGroupDao.get(Long.parseLong(musicGroupId)).getEducationalTeacherId();
+				break;
+			case MUSIC:
+				targetUserId = musicGroupDao.get(musicGroupId).getEducationalTeacherId();
+				break;
+			case PRACTICE:
+				targetUserId = practiceGroupDao.get(Long.parseLong(musicGroupId)).getEducationalTeacherId();
+				break;
+			case COMM:
+				targetUserId = coursesGroupDao.get(Long.parseLong(musicGroupId)).getEducationalTeacherId();
+				break;
+		}
+		Set<Integer> roleIds = new HashSet<>(1);
+		roleIds.add(SysUserRole.SECTION_MANAGER);
+		Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, user.getOrganId());
+		integers.add(targetUserId);
         Map<String, Long> memo = new HashMap<>(1);
         memo.put("courseScheduleComplaintsId", courseScheduleComplaints.getId());
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, user.getOrganId()), MessageTypeEnum.BACKSTAGE_STUDENT_APPEAL, JSONObject.toJSONString(memo), courseSchedule.getName(), user.getUsername());
+        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_STUDENT_APPEAL, JSONObject.toJSONString(memo), courseSchedule.getName(), user.getUsername());
     }
 
     @Override

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

@@ -441,6 +441,15 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		if(noPaymentUserIds.size() > 0){
 			throw new BizException("操作失败:有欠费的学员不允许创建缴费");
 		}
+		//获取缴费状态在审核中或者已拒绝的缴费项目的学员
+		String studentIds = musicGroupPaymentCalenderDao.queryCalenderStudentIds(musicGroupId,batchNo);
+		if(StringUtils.isNotEmpty(studentIds)){
+			for (Integer integer : userIdList) {
+				if(studentIds.contains(integer.toString())){
+					throw new BizException("操作失败:所选学员有待审核或已拒绝的缴费项目");
+				}
+			}
+		}
 		List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetailList = new ArrayList<MusicGroupPaymentStudentCourseDetail>();
 		
 		Long musicGroupPaymentCalenderId = null;

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

@@ -598,15 +598,24 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			}else if(paymentType == SPAN_GROUP_CLASS_ADJUST){
 				MusicGroupStudentClassAdjust adjust = musicGroupStudentClassAdjustDao.findByBatchNo(batchNo);
 				//获取默认的学员缴费详情
-				List<Integer> studentIds = JSON.parseArray(adjust.getStudentIds(), Integer.class);
+				List<Integer> studentIdList = JSON.parseArray(adjust.getStudentIds(), Integer.class);
 				//获取欠费学员列表
-				List<Integer> noPaymentUserIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentUserIds(musicGroup.getId(), new ArrayList<>(studentIds));
+				List<Integer> noPaymentUserIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentUserIds(musicGroup.getId(), studentIdList);
 				if(noPaymentUserIds.size() > 0){
 					throw new BizException("操作失败:有欠费的学员不允许创建缴费");
 				}
+				//获取缴费状态在审核中或者已拒绝的缴费项目的学员
+				String studentIds = musicGroupPaymentCalenderDao.queryCalenderStudentIds(musicGroupId,batchNo);
+				if(StringUtils.isNotEmpty(studentIds)){
+					for (Integer integer : studentIdList) {
+						if(studentIds.contains(integer.toString())){
+							throw new BizException("操作失败:所选学员有待审核或已拒绝的缴费项目");
+						}
+					}
+				}
 
 				List<MusicGroupPaymentCalenderStudentDetail> musicGroupPaymentCalenderStudentDetails = classGroupService.queryStudentPaymentCalenders(adjust.getMasterClassGroupId(),
-						adjust.getClassGroupStudents(),studentIds);
+						adjust.getClassGroupStudents(),studentIdList);
 				List<MusicGroupPaymentCalenderStudentDetail> calenderStudentDetails = musicGroupPaymentCalenderDto.getMusicGroupPaymentCalenderStudentDetails();
 
 				boolean containsAll = musicGroupPaymentCalenderStudentDetails.containsAll(calenderStudentDetails);
@@ -741,7 +750,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			// 设置批次号
 			musicGroupPaymentCalender.setBatchNo(batchNo);
 			musicGroupPaymentCalenderDao.insert(musicGroupPaymentCalender);
-
 			List<MusicGroupPaymentCalenderCourseSettings> currentMusicGroupPaymentCalenderCourseSettings = musicGroupPaymentCalender
 					.getMusicGroupPaymentCalenderCourseSettingsList();
 
@@ -1136,6 +1144,30 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				}
 			}
 			MusicGroupPaymentCalender calender = musicGroupPaymentCalenders.get(0);
+			if(calender.getPaymentType() == ADD_STUDENT || calender.getPaymentType() == SPAN_GROUP_CLASS_ADJUST){
+				// 所有缴费项目已完成排课才能创建下一个缴费项目
+				List<String> batchNoList = new ArrayList<>();
+				batchNoList.add(batchNo);
+				String orignBatchNo = musicGroupPaymentStudentCourseDetailDao.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(calender.getMusicGroupId(), null, null,batchNoList);
+				if (StringUtils.isNoneBlank(orignBatchNo)) {
+					throw new BizException("当前乐团存在未排课的缴费项目,请先完成排课再操作");
+				}
+				List<Integer> userIds = Arrays.stream(calender.getStudentIds().split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
+				//获取欠费学员列表
+				List<Integer> noPaymentUserIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentUserIds(calender.getMusicGroupId(),userIds);
+				if(noPaymentUserIds.size() > 0){
+					throw new BizException("操作失败:有欠费的学员不允许创建缴费");
+				}
+				//获取缴费状态在审核中或者已拒绝的缴费项目的学员
+				String studentIds = musicGroupPaymentCalenderDao.queryCalenderStudentIds(calender.getMusicGroupId(),batchNo);
+				if(StringUtils.isNotEmpty(studentIds)){
+					for (Integer integer : userIds) {
+						if(studentIds.contains(integer.toString())){
+							throw new BizException("操作失败:所选学员有待审核或已拒绝的缴费项目");
+						}
+					}
+				}
+			}
 			//如果是报名,并且所有的报名都审核通过,需要修改乐团状态
 			if (calender.getPaymentType() == MUSIC_APPLY) {
 				//统计乐团还在审核中或者审核被拒的缴费

+ 28 - 30
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -953,6 +953,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 waringSubjectIds.add(subjectId);
             }
         });
+
         if (waringSubjectIds.size() > 0) {
             List<Subject> waringSubjects = subjectDao.findBySubjectIds(waringSubjectIds);
             String waringSubjectStr = waringSubjects.stream().map(Subject::getName).collect(Collectors.joining(","));
@@ -993,8 +994,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(), musicGroup.getName());
+        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
+        integers.add(musicGroup.getEducationalTeacherId());
+        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(), musicGroup.getName());
 
     }
 
@@ -1059,14 +1061,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN,
                     map, null, 0, "1", "TEACHER", musicGroup.getName());
         }
-        Set<Integer> roleIds = new HashSet<>(5);
+        Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
-        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-        roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
-        roleIds.add(SysUserRole.DEAN_OF_STUDIES);
-
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_ACTION_GROUP, "1", musicGroup.getName());
+        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
+        integers.add(musicGroup.getEducationalTeacherId());
+        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_ACTION_GROUP, "1", musicGroup.getName());
 
         //统计变更学员数
         groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.NORMAL, null);
@@ -1099,7 +1098,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupDao.update(musicGroup);
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-
         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(), musicGroup.getName());
 
     }
@@ -1157,8 +1155,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         // 添加成员
         imGroupMemberService.join(Long.parseLong(musicGroupId), userRoleMap);
         Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()),
+        roleIds.add(musicGroup.getEducationalTeacherId());
+        sysMessageService.batchSeoMessage(roleIds,
                 MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_ADJUST_SUCCESS, "", musicGroup.getName());
         Map<Integer, String> map = new HashMap<>(1);
         map.put(musicGroup.getEducationalTeacherId(), musicGroup.getEducationalTeacherId().toString());
@@ -1361,11 +1359,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         //记录建团日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "取消乐团", sysUser.getId(), ""));
-        Set<Integer> roleIds = new HashSet<>(2);
+        Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP, "1", musicGroup.getName());
+        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
+        integers.add(musicGroup.getEducationalTeacherId());
+        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP, "1", musicGroup.getName());
         return true;
     }
 
@@ -1503,13 +1501,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
 
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "延长缴费", sysUser.getId(), ""));
-        Set<Integer> roleIds = new HashSet<>(4);
-        roleIds.add(SysUserRole.SECTION_MANAGER);
-        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
-        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-        roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
-
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT, "", musicGroup.getName());
+        Set<Integer> roleIds = new HashSet<>(1);
+        roleIds.add(musicGroup.getEducationalTeacherId());
+        sysMessageService.batchSeoMessage(roleIds, MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT, "", musicGroup.getName());
         return true;
     }
 
@@ -1611,12 +1605,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         musicGroupQuitDao.insert(musicGroupQuit);
         Set<Integer> roleIds = new HashSet<>(1);
-        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
+        roleIds.add(SysUserRole.SECTION_MANAGER);
+        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
+        integers.add(musicGroup.getEducationalTeacherId());
         Map<String, Object> memo = new HashMap<>(2);
         memo.put("Id", musicGroupQuit.getId());
         memo.put("type", "MUSICGROUP");
 
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()),
+        sysMessageService.batchSeoMessage(integers,
                 MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP, JSONObject.toJSONString(memo), sysUser.getUsername());
         Map<Integer, String> receivers = new HashMap<>(1);
         receivers.put(musicGroup.getEducationalTeacherId(), musicGroup.getEducationalTeacherId().toString());
@@ -2600,11 +2596,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                         map, null, 0, "", "", musicGroup.getName(), studentApplyUrl, DateUtil.format(musicGroup.getPaymentExpireDate(), DateUtil.DATE_FORMAT_MIN), serverPhone);
             }
         }
-        Set<Integer> roleIds = new HashSet<>(3);
+        Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-        roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
-        roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_ACTION_PAYMENT, "", musicGroup.getName());
+        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
+        integers.add(musicGroup.getEducationalTeacherId());
+        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_ACTION_PAYMENT, "", musicGroup.getName());
         return musicGroup;
     }
 
@@ -2710,7 +2706,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 //        }
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING, "", musicGroup.getName());
+        Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
+        integers.add(musicGroup.getEducationalTeacherId());
+        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING, "", musicGroup.getName());
     }
 
     @Override

+ 8 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -215,11 +215,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             //修改专业已报名人数
             musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, subId, 1);
             MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-            Set<Integer> roleIds = new HashSet<>(2);
+            Set<Integer> roleIds = new HashSet<>(1);
             roleIds.add(SysUserRole.SECTION_MANAGER);
-            roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-
-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, "", musicGroup.getName());
+            Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
+            integers.add(musicGroup.getEducationalTeacherId());
+            sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, "", musicGroup.getName());
         }
         return i;
     }
@@ -698,9 +698,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             studentRegistration.setTemporaryCourseFee(studentAddDto.getTemporaryCourseFee());
             //学生报名表
             Set<Integer> roleIds = new HashSet<>(1);
-            roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-
-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
+            roleIds.add(SysUserRole.SECTION_MANAGER);
+            Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
+            integers.add(musicGroup.getEducationalTeacherId());
+            sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
             //增加报名学生数
             musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
             //汇总金额

+ 8 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -429,7 +429,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 
 		Set<Integer> roleIds = new HashSet<>(1);
-		roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
+		roleIds.add(SysUserRole.SECTION_MANAGER);
 		Map<String,Long> memo = new HashMap<>(1);
 		memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
 //		SysUser sysUser = sysUserFeignService.queryUserById(vipGroup.getVipGroupApplyBaseInfo().getUserId());
@@ -440,6 +440,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(CollectionUtils.isEmpty(userIds)){
 			throw new BizException("当前分部没有运营主管,无法创建,请联系总部工作人员!");
 		}
+		if(vipGroupApplyBaseInfoDto.getEducationalTeacherId() != null){
+			userIds.add(vipGroupApplyBaseInfoDto.getEducationalTeacherId());
+		}
 //		if (vipGroup.getVipGroupApplyBaseInfo().getUserId() != null){
 //			sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_VIP_COURSE_APPLY, JSONObject.toJSONString(memo),sysUser.getUsername(),sysUser.getUsername());
 //		}else {
@@ -1817,11 +1820,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentApplyRefunds.setUserId(userId);
 		studentApplyRefundsDao.insert(studentApplyRefunds);
 		Set<Integer> roleIds = new HashSet<>(1);
-		roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
+		roleIds.add(SysUserRole.SECTION_MANAGER);
+		Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, sysUser.getOrganId());
+		integers.add(vipGroup.getEducationalTeacherId());
 		Map<String,Object> memo = new HashMap<>(2);
 		memo.put("Id",studentApplyRefunds.getId());
 		memo.put("type","VIPGROUP");
-		sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,sysUser.getOrganId()),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_COURSE,JSONObject.toJSONString(memo),sysUser.getUsername());
+		sysMessageService.batchSeoMessage(integers,MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_COURSE,JSONObject.toJSONString(memo),sysUser.getUsername());
 	}
 
 	@Override

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

@@ -2554,7 +2554,7 @@
             AND ta.teacher_id_ = cs.actual_teacher_id_
             AND cs.status_ = 'OVER'
             AND (((ta.sign_in_status_ = 0 OR ta.sign_out_status_ = 0) AND ta.dispose_content_ IS NULL) OR (sa.id_ IS NULL OR (sa.status_ != 'NORMAL' AND sa.visit_flag_ = 0)))
-            AND (ta.dispose_content_ IS NOT NULL OR (ta.sign_in_status_ IS NOT NULL AND ta.sign_out_status_ IS NOT NULL))
+            AND ta.sign_in_status_ IS NOT NULL AND ta.sign_out_status_ IS NOT NULL
             AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         </if>
         <if test="searchType == 'NO_ATTENDANCE'">

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

@@ -747,7 +747,7 @@
 		WHERE ta.teacher_id_ = cs.actual_teacher_id_
 		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01'
 		AND (((ta.sign_in_status_ = 0 OR ta.sign_out_status_ = 0) AND ta.dispose_content_ IS NULL) OR (sa.id_ IS NULL OR (sa.status_ != 'NORMAL' AND sa.visit_flag_ = 0)))
-		AND (ta.dispose_content_ IS NOT NULL OR (ta.sign_in_status_ IS NOT NULL AND ta.sign_out_status_ IS NOT NULL))
+		AND ta.sign_in_status_ IS NOT NULL AND ta.sign_out_status_ IS NOT NULL
 		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 		<if test="organIds != null and organIds.size()>0">
 			AND cs.organ_id_ IN

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

@@ -602,4 +602,12 @@
         AND batch_no_ IS NOT NULL
         GROUP BY music_group_id_,batch_no_
     </select>
+    <select id="queryCalenderStudentIds" resultType="java.lang.String">
+        SELECT GROUP_CONCAT(DISTINCT student_ids_) FROM music_group_payment_calender
+        WHERE status_ IN ('AUDITING','REJECT') AND music_group_id_ = #{musicGroupId}
+        <if test="batchNo != null and batchNo != ''">
+            AND batch_no_ != #{batchNo}
+        </if>
+
+    </select>
 </mapper>

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

@@ -506,7 +506,13 @@
         left join organization o on o.id_ = cs.organ_id_
         <include refid="findStudentAttendanceSql"/>
         GROUP BY cssp.id_
-        ORDER BY CONCAT(cs.class_date_, ' ', cs.start_class_time_) ASC
+        ORDER BY
+        <if test="courseScheduleId != null and orderFlag == 1">
+            <if test="courseScheduleId != null or (search != null and search != '')">
+                status_ DESC,visitFlag,
+            </if>
+        </if>
+        CONCAT(cs.class_date_, ' ', cs.start_class_time_) ASC
         <include refid="global.limit"/>
     </select>
     <sql id="findStudentAttendanceSql">

+ 12 - 10
mec-web/src/main/java/com/ym/mec/web/controller/student/StudentAttendanceController.java

@@ -71,17 +71,19 @@ public class StudentAttendanceController extends BaseController {
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
-            Employee employee = employeeDao.get(sysUser.getId());
-            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
-                queryInfo.setOrganId(employee.getOrganIdList());
-            }else if(StringUtils.isEmpty(employee.getOrganIdList())){
-                return failed("用户所在分部异常");
-            }else {
-                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
-                if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
-                    return failed("非法请求");
-                }
+        Employee employee = employeeDao.get(sysUser.getId());
+        if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+            queryInfo.setOrganId(employee.getOrganIdList());
+        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+            return failed("用户所在分部异常");
+        }else {
+            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+            if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                return failed("非法请求");
             }
+        }
+        //按考勤状态和回访状态排序
+        queryInfo.setOrderFlag(true);
         return succeed(studentAttendanceService.findStudentAttendance(queryInfo));
     }