Bladeren bron

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 jaren geleden
bovenliggende
commit
3aacc0e5f4

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

@@ -325,4 +325,12 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @return
      */
     List<ClassGroupTeachersDto> getClassGroupAndTeacherByType(String musicGroupId, ClassGroupTypeEnum type);
+
+    /**
+     * 添加IM群组
+     * @param classGroup
+     * @param userIds
+     * @return
+     */
+    Boolean addImGroup(ClassGroup classGroup,List<Integer> userIds);
 }

+ 35 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -909,14 +909,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         Integer schoolId = musicGroup.getSchoolId();
 
-        List<Integer> subjectIdSet = new ArrayList<>();
-
         List<Integer> studentIdList = classGroup4MixDto.getStudents();
         List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
-        for (StudentRegistration student : studentList) {
-            subjectIdSet.add(student.getSubjectId());
-        }
-        List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdSet);
+
+        List<Integer> subjectIdList = studentList.stream().map(student->student.getActualSubjectId()).collect(Collectors.toList());
+
+        List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdList);
 
         String subjectIds = subjectList.stream().map(subject -> subject.getId().toString()).collect(Collectors.joining(","));
         String subjectNames = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
@@ -940,6 +938,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         //2、将学生加入新班级(学生注册表,关联表
         List<ClassGroupStudentMapper> classGroupStudentMapperList = new ArrayList<>();
+        List<Integer> userIds = new ArrayList<>(); //用户ids
         for (StudentRegistration studentRegistration : studentList) {
             studentRegistration.setClassGroupId(classGroup.getId());
             studentRegistrationService.update(studentRegistration);
@@ -952,6 +951,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
             classGroupStudentMapper.setGroupType(GroupType.MUSIC);
             classGroupStudentMapperList.add(classGroupStudentMapper);
+
+            userIds.add(studentRegistration.getUserId());
         }
         classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMapperList);
 
@@ -959,13 +960,16 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //3、将老师加入关联关系
         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList();
 
-
         for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
             classGroupTeacherMapper.setClassGroupId(classGroup.getId());
             classGroupTeacherMapper.setMusicGroupId(classGroup4MixDto.getMusicGroupId());
+            userIds.add(classGroupTeacherMapper.getUserId());
         }
         classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
 
+        //创建IM群组
+        addImGroup(classGroup,userIds);
+
         //5、插入班级排课信息
         LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
 
@@ -1120,14 +1124,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         Integer schoolId = musicGroup.getSchoolId();
 
-        List<Integer> subjectIdSet = new ArrayList<>();
 
         List<Integer> studentIdList = classGroup4MixDto.getStudents();
         List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
-        for (StudentRegistration student : studentList) {
-            subjectIdSet.add(student.getSubjectId());
-        }
-        List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdSet);
+        List<Integer> subjectIdList = studentList.stream().map(student->student.getActualSubjectId()).collect(Collectors.toList());
+
+        List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdList);
 
         String subjectIds = subjectList.stream().map(subject -> subject.getId().toString()).collect(Collectors.joining(","));
         String subjectNames = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
@@ -1355,6 +1357,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
 
         //2、将学生加入新班级,关联表
+        List<Integer> userIds = new ArrayList<>();
         List<ClassGroupStudentMapper> classGroupStudentMapperList = new ArrayList<>();
         for (StudentRegistration studentRegistration : studentList) {
             ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
@@ -1365,6 +1368,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
             classGroupStudentMapper.setGroupType(GroupType.MUSIC);
             classGroupStudentMapperList.add(classGroupStudentMapper);
+            userIds.add(studentRegistration.getUserId());
         }
         classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMapperList);
 
@@ -1375,9 +1379,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
             classGroupTeacherMapper.setClassGroupId(classGroup.getId());
             classGroupTeacherMapper.setMusicGroupId(classGroup4MixDto.getMusicGroupId());
+            userIds.add(classGroupTeacherMapper.getUserId());
         }
         classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
 
+        //创建IM群组
+        addImGroup(classGroup,userIds);
+
         //5、插入班级排课信息
         LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
 
@@ -1656,9 +1664,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Transactional(rollbackFor = Exception.class)
     public void addStudentIntoClassGroup(String musicGroupId, Integer classGroupId, List<Integer> studentIds) {
-        List<ClassGroupStudentMapper> classGroupStudentMappers=new ArrayList<>();
+        List<ClassGroupStudentMapper> classGroupStudentMappers = new ArrayList<>();
         for (Integer studentId : studentIds) {
-            ClassGroupStudentMapper classGroupStudentMapper=new ClassGroupStudentMapper(musicGroupId,classGroupId,studentId,ClassGroupStudentStatusEnum.NORMAL);
+            ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper(musicGroupId, classGroupId, studentId, ClassGroupStudentStatusEnum.NORMAL);
             classGroupStudentMapper.setGroupType(GroupType.VIP);
             classGroupStudentMappers.add(classGroupStudentMapper);
         }
@@ -1684,4 +1692,17 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         return classGroups;
     }
+
+    @Override
+    public Boolean addImGroup(ClassGroup classGroup, List<Integer> userIds) {
+        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+        for (Integer userId : userIds) {
+            imGroupMemberList.add(new ImGroupMember(userId.toString()));
+        }
+        //创建IM群组
+        ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+        // 创建群组
+        imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+        return true;
+    }
 }

+ 1 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -65,11 +65,9 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			employee.setUserType(SysUserType.SYSTEM);
 			teacherDao.updateUser(employee);
 			Employee employee1 = employeeDao.get(user.getId());
-			if(employee1 == null || employee1.getId() == null){
+			if(employee1 == null){
 				employee.setUserId(user.getId());
 				employeeDao.insert(employee);
-				//删除当前用户角色
-				employeeDao.delEmployeeRole(user.getId());
 				//新增用户角色
 				employeeDao.batchAddEmployeeRole(user.getId(),employee.getRoleIds());
 			}
@@ -81,8 +79,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		teacherDao.addSysUser(employee);
 		employee.setUserId(employee.getId());
         employeeDao.insert(employee);
-		//删除当前用户角色
-		employeeDao.delEmployeeRole(employee.getId());
 		//新增用户角色
 		employeeDao.batchAddEmployeeRole(employee.getId(),employee.getRoleIds());
 		//添加用户现金账户
@@ -90,7 +86,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		ImResult imResult = imFeignService.register(new ImUserModel(employee.getId().toString(), employee.getUsername(),
 				StringUtils.isEmpty(employee.getAvatar())?sysConfigDao.findConfigValue(SysConfigService.USER_DEFAULT_HEAD_URL):employee.getAvatar()));
 		employee.setImToken(imResult.getToken());
-		employeeDao.update(employee);
 		teacherDao.updateUser(employee);
 	}
 

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1080,6 +1080,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(vipGroup)){
 			throw new BizException("指定的课程不存在");
 		}
+		if(vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)){
+			throw new BizException("不能已进行的课程进行此操作");
+		}
 		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroupId, null);
 		sysUserCashAccountService.updateBalance(studentId, amount);
 		SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentId);
@@ -1095,6 +1098,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.query(classGroup.getId(),
 				studentId);
 
+		if(Objects.isNull(classStudentMapperByUserIdAndClassGroupId)){
+			throw new BizException("指定学生不在此课程中");
+		}
+
 		classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.QUIT);
 		classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
 
@@ -1112,6 +1119,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(vipGroup)){
 			throw new BizException("未找到指定vip课");
 		}
+		if(vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)){
+			throw new BizException("不能对已停止的课程进行退课操作");
+		}
 		Map<String,BigDecimal> result=new HashMap<>();
 		if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
 			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId, studentId, DealStatusEnum.SUCCESS.getCode());

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

@@ -90,7 +90,7 @@
         FROM
             class_group_student_mapper cgsm
             LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
-            WHERE cgsm.class_group_id_=#{classGroupId}
+            WHERE cgsm.class_group_id_=#{classGroupId} AND cgsm.status_!='QUIT'
     </select>
 
     <resultMap id="teacherClassStudentDto" type="com.ym.mec.biz.dal.dto.TeacherClassStudentDto">

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

@@ -796,7 +796,7 @@
         FROM
         	course_schedule cs
         WHERE
-          cs.music_group_id_ =#{vipGroupId} AND cg.group_type_ = 'VIP'
+          cs.music_group_id_ =#{vipGroupId} AND cs.group_type_ = 'VIP'
     </select>
     <select id="findByClassGroupAndDate" resultMap="CourseSchedule">
         SELECT

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

@@ -236,16 +236,16 @@
 
     <select id="findTeacherDemoGroups" resultType="com.ym.mec.biz.dal.dto.TeacherManageDemoGroupListDto">
         SELECT
-        cs.class_date_ classDate,
-        GROUP_CONCAT(DISTINCT CONCAT(cs.start_class_time_,' ',cs.end_class_time_)) startTimes,
-        GROUP_CONCAT(DISTINCT s.name_) subjectNames
+            cs.class_date_ classDate,
+            GROUP_CONCAT(DISTINCT CONCAT(cs.start_class_time_,' ',cs.end_class_time_)) startTimes,
+            GROUP_CONCAT(DISTINCT s.name_) subjectNames
         FROM
-        demo_group dg
-        LEFT JOIN class_group cg ON dg.id_=cg.music_group_id_ AND cg.group_type_='DEMO'
-        LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
-        LEFT JOIN `subject` s ON s.id_ = cg.subject_id_list_
+          demo_group dg
+            LEFT JOIN class_group cg ON dg.id_=cg.music_group_id_ AND cg.group_type_='DEMO'
+            LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
+            LEFT JOIN `subject` s ON s.id_ = dg.subject_id_
         WHERE cs.type_ = 'DEMO' AND dg.user_id_ = #{teacherId}
-        GROUP BY cs.class_date_
+          GROUP BY cs.class_date_
         <include refid="global.limit"/>
     </select>
     <select id="countTeacherDemoGroups" resultType="Integer">

+ 5 - 2
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -486,7 +486,10 @@
             class_group cg
             LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
             LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
-        WHERE cg.music_group_id_=#{vipGroupId} AND cgsm.user_id_ IS NOT NULL
+        WHERE cg.music_group_id_=#{vipGroupId}
+        AND cg.group_type_='VIP'
+        AND cgsm.status_!='QUIT'
+        AND cgsm.user_id_ IS NOT NULL
         ORDER BY su.id_
         <include refid="global.limit"/>
     </select>
@@ -518,7 +521,7 @@
         FROM
         class_group cg
         LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
-        WHERE cg.music_group_id_=#{vipGroupId} AND cg.group_type_='VIP'
+        WHERE cg.music_group_id_=#{vipGroupId} AND cg.group_type_='VIP' AND cgsm.status_!='QUIT'
     </select>
 
     <resultMap id="teachingRecord" type="com.ym.mec.biz.dal.dto.VipGroupCourseSchduleRecordDto">

+ 4 - 4
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -124,7 +124,7 @@ public class RoomServiceImpl implements RoomService {
                 log.info("join error: roomId = {}, userName = {}, isAudience = {}", roomId, userName, isAudience);
                 throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
             }
-            if (!isAudience) {
+            /*if (!isAudience) {
                 List<RoomMember> assistantList = roomMemberDao.findByRidAndRole(roomId, RoleEnum.RoleAssistant.getValue());
                 if (!assistantList.isEmpty()) {
                     if (count == 1) {
@@ -137,12 +137,12 @@ public class RoomServiceImpl implements RoomService {
                 }
             } else {
                 roleEnum = RoleEnum.RoleAudience;
-            }
-            /*if(teacher == null){
+            }*/
+            if(teacher == null){
                 roleEnum = RoleEnum.RoleStudent;
             }else {
                 roleEnum = RoleEnum.RoleTeacher;
-            }*/
+            }
             saveRoomMember(userId, userName, roomId, roleEnum.getValue(), !isDisableCamera, curTime);
             IMApiResultInfo resultInfo = imHelper.joinGroup(new String[]{userId}, roomId, roomId);
             if (!resultInfo.isSuccess()) {

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -319,7 +319,7 @@ public class StudentOrderController extends BaseController {
 
     }
 
-    @Scheduled(cron = "0/30 * * * * ?")
+    //@Scheduled(cron = "0/30 * * * * ?")
     public void setSuccessStatus() throws Exception {
         List<StudentPaymentOrder> payingOrders = studentPaymentOrderService.findOrdersByStatus(DealStatusEnum.ING, "YQPAY");