Переглянути джерело

Merge remote-tracking branch 'origin/master'

周箭河 5 роки тому
батько
коміт
139a343f7a

+ 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

+ 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

+ 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">

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

@@ -270,7 +270,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 sa.id_ DESC
         <include refid="global.limit"/>
     </select>
 
@@ -316,7 +316,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 +341,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>
 

+ 49 - 12
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>
 
     <!-- 全查询 -->
@@ -452,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>
@@ -484,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()) {

+ 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 = "获取用户默认账户基本信息")