Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

Joburgess 5 rokov pred
rodič
commit
783969f7ee

+ 7 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java

@@ -99,7 +99,7 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	 * @return java.util.List<com.ym.mec.biz.dal.dto.StudentManageVipGroupDto>
 	 * @describe 获取对应学生vip课
 	 */
-	List<StudentManageVipGroupDto> findStudentVipGroups(Integer userId);
+	List<StudentManageVipGroupDto> findStudentVipGroups(Map<String, Object> params);
 
 	/**
 	 * @Author: Joburgess
@@ -274,5 +274,10 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	List<VipGroup> findNoCreateSuccessVipGroup();
 
 
-
+	/**
+	 * count学员vip课程列表
+	 * @param params
+	 * @return
+	 */
+	int countStudentVipGroups(Map<String, Object> params);
 }

+ 76 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageVipGroupDto.java

@@ -8,16 +8,85 @@ import com.ym.mec.biz.dal.entity.VipGroup;
  * @Author Joburgess
  * @Date 2019/9/20
  */
-public class StudentManageVipGroupDto extends VipGroup {
+public class StudentManageVipGroupDto {
 
-    @ApiModelProperty(value = "课程类型",required = false)
-    private String vipGroupCategory;
+    private String teachMode;
 
-    public String getVipGroupCategory() {
-        return vipGroupCategory;
+    private String realName;
+
+    private Integer studentNum;
+
+    private Integer totalClassTimes;
+
+    private Integer currentClassTimes;
+
+    private String courseDate;
+
+    private String classGroupName;
+
+    private String courseStatus;
+
+    public String getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(String teachMode) {
+        this.teachMode = teachMode;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public Integer getStudentNum() {
+        return studentNum;
+    }
+
+    public void setStudentNum(Integer studentNum) {
+        this.studentNum = studentNum;
+    }
+
+    public Integer getTotalClassTimes() {
+        return totalClassTimes;
+    }
+
+    public void setTotalClassTimes(Integer totalClassTimes) {
+        this.totalClassTimes = totalClassTimes;
+    }
+
+    public Integer getCurrentClassTimes() {
+        return currentClassTimes;
+    }
+
+    public void setCurrentClassTimes(Integer currentClassTimes) {
+        this.currentClassTimes = currentClassTimes;
+    }
+
+    public String getCourseDate() {
+        return courseDate;
+    }
+
+    public void setCourseDate(String courseDate) {
+        this.courseDate = courseDate;
+    }
+
+    public String getClassGroupName() {
+        return classGroupName;
+    }
+
+    public void setClassGroupName(String classGroupName) {
+        this.classGroupName = classGroupName;
+    }
+
+    public String getCourseStatus() {
+        return courseStatus;
     }
 
-    public void setVipGroupCategory(String vipGroupCategory) {
-        this.vipGroupCategory = vipGroupCategory;
+    public void setCourseStatus(String courseStatus) {
+        this.courseStatus = courseStatus;
     }
 }

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

@@ -56,7 +56,7 @@ public interface StudentManageService {
      * @Date: 2019/9/20
      * 获取学生vip课
      */
-    List<StudentManageVipGroupDto> findStudentVipGroups(Integer userID);
+    PageInfo<StudentManageVipGroupDto> findStudentVipGroups(StudentManageCourseQueryInfo queryInfo);
 
     /**
      * @Author: Joburgess

+ 34 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -160,7 +160,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         insert(classGroup);
 
         //2、插入班级学生关联关系
-        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+        List<Integer> userIdList = new  ArrayList<>();
         List<ClassGroupStudentMapper> classGroupStudentList = new ArrayList<>();
         for (String userId : userIdStrSet) {
             ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
@@ -178,13 +178,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             studentRegistration.setUserId(Integer.parseInt(userId));
             studentRegistration.setMusicGroupId(classGroup.getMusicGroupId());
             studentRegistrationDao.updateByUserIdAndMusicGroupId(studentRegistration);
-            imGroupMemberList.add(new ImGroupMember(userId));
+            userIdList.add(Integer.parseInt(userId));
         }
-        imGroupMemberList.addAll(musicGroupService.queryMusicGroupTeachers(classGroup.getMusicGroupId()));
         classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentList);
-        ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
-        // 创建群组
-        imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+
+        //加入IM群组
+        addImGroup(classGroup,userIdList);
         return classGroup;
     }
 
@@ -217,13 +216,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         classGroup.setUpdateTime(date);
         insert(classGroup);
 
-        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+        List<Integer> userIdList = new ArrayList<>();
         List<ClassGroupStudentMapper> mixClassGroupStudentMappers = new ArrayList<>();
         List<ClassGroupStudentMapper> classGroupStudentMappers = classGroupStudentMapperDao.findByClassGroups(classGroupIdList);
 
         for (ClassGroupStudentMapper classGroupStudentMapper : classGroupStudentMappers) {
             ClassGroupStudentMapper mixClassGroupStudentMapper = new ClassGroupStudentMapper();
             if (classGroupStudentMapper.getStatus().equals(ClassGroupStudentStatusEnum.QUIT)) continue;
+
             mixClassGroupStudentMapper.setMusicGroupId(musicGroupId);
             mixClassGroupStudentMapper.setClassGroupId(classGroup.getId());
             mixClassGroupStudentMapper.setUserId(classGroupStudentMapper.getUserId());
@@ -232,7 +232,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             mixClassGroupStudentMapper.setGroupType(GroupType.MUSIC);
             mixClassGroupStudentMappers.add(mixClassGroupStudentMapper);
 
-            imGroupMemberList.add(new ImGroupMember(classGroupStudentMapper.getUserId().toString()));
+            userIdList.add(classGroupStudentMapper.getUserId());
         }
         //插入学生关联关系
         classGroupStudentMapperDao.classGroupStudentsInsert(mixClassGroupStudentMappers);
@@ -247,10 +247,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             classGroupRelationList.add(classGroupRelation);
         }
         classGroupRelationService.classGroupRelationsInsert(classGroupRelationList);
-        imGroupMemberList.addAll(musicGroupService.queryMusicGroupTeachers(classGroup.getMusicGroupId()));
-        ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
-        // 创建群组
-        imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+
+        //加入IM群组
+        addImGroup(classGroup,userIdList);
+
         return classGroup;
     }
 
@@ -348,11 +348,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             //检测新排课冲突
             courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
             courseScheduleDao.batchAddCourseSchedules(courseScheduleList);
-            List<ImGroupMember> groupMembers = musicGroupService.queryMusicGroupTeachers(highClassGroup.getMusicGroupId());
-            groupMembers.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
-            ImGroupMember[] imGroupMembers = groupMembers.toArray(new ImGroupMember[groupMembers.size()]);
-            // 创建群组
-            imFeignService.groupCreate(new ImGroupModel(highClassGroup.getId().toString(), imGroupMembers, highClassGroup.getName()));
+
+            List<Integer> userIdList = new ArrayList<>();
+            userIdList.add(classGroupTeacherMapper.getUserId());
+
+            //加入Im群组
+            addImGroup(highClassGroup,userIdList);
         }
         return highClassGroupList;
     }
@@ -912,7 +913,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<Integer> studentIdList = classGroup4MixDto.getStudents();
         List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
 
-        List<Integer> subjectIdList = studentList.stream().map(student->student.getActualSubjectId()).collect(Collectors.toList());
+        List<Integer> subjectIdList = studentList.stream().map(student -> student.getActualSubjectId()).collect(Collectors.toList());
 
         List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdList);
 
@@ -968,7 +969,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
 
         //创建IM群组
-        addImGroup(classGroup,userIds);
+        addImGroup(classGroup, userIds);
 
         //5、插入班级排课信息
         LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
@@ -1127,7 +1128,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         List<Integer> studentIdList = classGroup4MixDto.getStudents();
         List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
-        List<Integer> subjectIdList = studentList.stream().map(student->student.getActualSubjectId()).collect(Collectors.toList());
+        List<Integer> subjectIdList = studentList.stream().map(student -> student.getActualSubjectId()).collect(Collectors.toList());
 
         List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdList);
 
@@ -1384,7 +1385,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
 
         //创建IM群组
-        addImGroup(classGroup,userIds);
+        addImGroup(classGroup, userIds);
 
         //5、插入班级排课信息
         LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
@@ -1695,13 +1696,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Override
     public Boolean addImGroup(ClassGroup classGroup, List<Integer> userIds) {
+        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+        List<Integer> userIdList = new ArrayList<>();
+        userIdList.add(musicGroup.getEducationalTeacherId());
+        userIdList.add(musicGroup.getTeamTeacherId());
+        userIdList.add(musicGroup.getOperatorUserId());
+        userIdList.add(musicGroup.getDirectorUserId());
+        if (userIds != null) {
+            userIdList.addAll(userIds);
+        }
+
         List<ImGroupMember> imGroupMemberList = new ArrayList<>();
-        for (Integer userId : userIds) {
+        for (Integer userId : userIdList) {
+            if (userId == null) continue;
             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);
 	}
 

+ 17 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -125,8 +125,23 @@ public class StudentManageServiceImpl implements StudentManageService {
     }
 
     @Override
-    public List<StudentManageVipGroupDto> findStudentVipGroups(Integer userId) {
-        return vipGroupDao.findStudentVipGroups(userId);
+    public PageInfo<StudentManageVipGroupDto> findStudentVipGroups(StudentManageCourseQueryInfo queryInfo) {
+        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List dataList = null;
+        int count = vipGroupDao.countStudentVipGroups(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = vipGroupDao.findStudentVipGroups(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
     }
 
     @Override

+ 5 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -54,6 +54,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	private VipGroupActivityDao vipGroupActivityDao;
 	@Autowired
 	private VipGroupCategoryDao vipGroupCategoryDao;
+	@Autowired
+	private MusicGroupDao musicGroupDao;
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
@@ -308,11 +310,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 		Map<String,Long> memo = new HashMap<>(1);
 		memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
+		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds);
 		if (systemId != null){
 			SysUser systemUser = sysUserFeignService.queryUserById(systemId);
-			sysMessageService.batchSeoMessage(roleIds,MessageTypeEnum.BACKSTAGE_VIP_COURSE_APPLY, JSONObject.toJSONString(memo),systemUser.getUsername(),sysUser.getUsername());
+			sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_VIP_COURSE_APPLY, JSONObject.toJSONString(memo),systemUser.getUsername(),sysUser.getUsername());
 		}else {
-			sysMessageService.batchSeoMessage(roleIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),sysUser.getUsername());
+			sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),sysUser.getUsername());
 		}
 	}
 

+ 4 - 3
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -237,6 +237,7 @@
 
     <sql id="studentManageAttendanceQueryCondition">
         <where>
+            CONCAT(cs.class_date_," ",cs.start_class_time_) &lt; NOW()
             <if test="studentId!=null">
                 and sa.user_id_=#{studentId}
             </if>
@@ -270,7 +271,7 @@
             LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
             LEFT JOIN sys_user su ON sa.teacher_id_=su.id_
         <include refid="studentManageAttendanceQueryCondition"/>
-        ORDER BY sa.id_
+        ORDER BY course_date_ DESC
         <include refid="global.limit"/>
     </select>
 
@@ -316,7 +317,7 @@
         cg.total_class_times_,sa.current_class_times_,sa.status_,cssp.expect_price_,cssp.actual_price_
         FROM course_schedule_student_payment cssp
         LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
-        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND sa.user_id_ = cssp.user_id_
         LEFT JOIN class_group cg ON cg.id_ = sa.class_group_id_
         <include refid="studentPaymentSql"/>
         <include refid="global.limit"/>
@@ -341,7 +342,7 @@
         SELECT COUNT(cssp.id_)
         FROM course_schedule_student_payment cssp
         LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
-        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND sa.user_id_ = cssp.user_id_
         <include refid="studentPaymentSql"/>
     </select>
 

+ 44 - 10
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -56,8 +56,15 @@
         <result column="remark_" property="remark"/>
     </resultMap>
 
-    <resultMap id="studentManageVipGroup" type="com.ym.mec.biz.dal.dto.StudentManageVipGroupDto" extends="VipGroup">
-        <result property="vipGroupCategory" column="vip_group_category_"/>
+    <resultMap id="studentManageVipGroup" type="com.ym.mec.biz.dal.dto.StudentManageVipGroupDto">
+        <result property="teachMode" column="teach_mode_"/>
+        <result property="realName" column="real_name_"/>
+        <result property="studentNum" column="student_num_"/>
+        <result property="totalClassTimes" column="total_class_times_"/>
+        <result property="currentClassTimes" column="current_class_times_"/>
+        <result property="courseDate" column="course_date_"/>
+        <result property="classGroupName" column="class_group_name_"/>
+        <result property="courseStatus" column="course_status_"/>
     </resultMap>
 
     <resultMap id="vipGroupManageDetailDto" type="com.ym.mec.biz.dal.dto.VipGroupManageDetailDto" extends="VipGroup">
@@ -103,14 +110,41 @@
 	</select>
 
     <select id="findStudentVipGroups" resultMap="studentManageVipGroup">
-        SELECT
-            vg.*,
-            vgc.name_ vip_group_category_
-        FROM
-            class_group_student_mapper cgsm
-            LEFT JOIN vip_group vg ON cgsm.music_group_id_=vg.id_
-            LEFT JOIN vip_group_category vgc ON vg.vip_group_category_id_=vgc.id_
-        WHERE cgsm.music_group_id_=vg.id_ AND cgsm.user_id_=#{userId} AND cgsm.group_type_ = 'VIP'
+        SELECT cs.teach_mode_,su.real_name_,cg.student_num_,cg.total_class_times_,cg.current_class_times_,
+        CONCAT(cs.class_date_," ",cs.start_class_time_) course_date_,cg.id_ class_group_id_,cg.name_ class_group_name_,cs.status_ course_status_
+        FROM vip_group vg
+        LEFT JOIN class_group cg ON cg.music_group_id_ = vg.id_
+        LEFT JOIN course_schedule cs ON cs.music_group_id_ = vg.id_
+        LEFT JOIN sys_user su ON su.id_ = cs.actual_teacher_id_
+        LEFT JOIN class_group_student_mapper cgsm ON cgsm.music_group_id_ = vg.id_
+        <where>
+            vg.audit_status_ = 'PASS' AND cs.id_ IS NOT NULL
+            <if test="studentId != null">
+                AND cgsm.user_id_ = #{studentId}
+            </if>
+            <if test="classGroupName != null">
+                AND cg.name_ LIKE CONCAT('%',#{classGroupName},'%')
+            </if>
+        </where>
+        ORDER BY cs.class_date_,cs.start_class_time_
+        <include refid="global.limit"/>
+    </select>
+
+    <select id="countStudentVipGroups" resultType="java.lang.Integer">
+        SELECT COUNT(cs.id_)
+        FROM vip_group vg
+        LEFT JOIN class_group cg ON cg.music_group_id_ = vg.id_
+        LEFT JOIN course_schedule cs ON cs.music_group_id_ = vg.id_
+        LEFT JOIN class_group_student_mapper cgsm ON cgsm.music_group_id_ = vg.id_
+        <where>
+            vg.audit_status_ = 'PASS' AND cs.id_ IS NOT NULL
+            <if test="studentId != null">
+                AND cgsm.user_id_ = #{studentId}
+            </if>
+            <if test="classGroupName != null">
+                AND cg.name_ LIKE CONCAT('%',#{classGroupName},'%')
+            </if>
+        </where>
     </select>
 
     <!-- 全查询 -->

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -109,8 +109,8 @@ public class StudentManageController extends BaseController {
     @ApiOperation(value = "获取学生vip课")
     @GetMapping("/findStudentVipGroups")
     @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentVipGroups')")
-    public Object findStudentVipGroups(Integer userId){
-        return succeed(studentManageService.findStudentVipGroups(userId));
+    public Object findStudentVipGroups(StudentManageCourseQueryInfo queryInfo){
+        return succeed(studentManageService.findStudentVipGroups(queryInfo));
     }
 
     @ApiOperation(value = "获取用户默认账户基本信息")