Kaynağa Gözat

管乐迷评测记录详情

zouxuan 1 yıl önce
ebeveyn
işleme
e82d559e95

+ 12 - 2
mec-application/src/main/java/com/ym/mec/teacher/controller/CloudStudyController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.teacher.controller;
 
+import com.ym.mec.biz.dal.dao.StudentTeacherMapperDao;
 import com.ym.mec.biz.dal.dto.CountStudentTrainDataDto;
 import com.ym.mec.biz.dal.dto.MusicCompareRankingDto;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
@@ -12,10 +13,14 @@ import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+import java.util.List;
+
 import static com.ym.mec.biz.dal.enums.FeatureType.CLOUD_STUDY_EVALUATION;
 
 /**
@@ -27,10 +32,12 @@ import static com.ym.mec.biz.dal.enums.FeatureType.CLOUD_STUDY_EVALUATION;
 @RequestMapping("${app-config.url.teacher:}/cloudStudy")
 public class CloudStudyController extends BaseController {
 
-    @Autowired
+    @Resource
     private SysUserService sysUserService;
-    @Autowired
+    @Resource
     private SysMusicCompareRecordService sysMusicCompareRecordService;
+    @Resource
+    private StudentTeacherMapperDao studentTeacherMapperDao;
 
     @ApiOperation("查询乐团学员训练数据")
     @GetMapping("queryMusicGroupStudentTrainData")
@@ -48,6 +55,9 @@ public class CloudStudyController extends BaseController {
     @GetMapping("countStudentTrain")
     public HttpResponseResult<PageInfo<CountStudentTrainDataDto>> countStudentTrain(SysMusicCompareRecordQueryInfo queryInfo){
         queryInfo.setTeacherId(sysUserService.getUserId());
+        //获取老师关联的学员列表
+        List<Integer> studentIdList = studentTeacherMapperDao.queryStudentIds(queryInfo.getTeacherId(),null);
+        queryInfo.setStudentIdList(studentIdList);
         return succeed(sysMusicCompareRecordService.countStudentTrain(queryInfo));
     }
 

+ 69 - 0
mec-application/src/main/java/com/ym/mec/web/controller/education/EduCloudStudyController.java

@@ -0,0 +1,69 @@
+package com.ym.mec.web.controller.education;
+
+import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dto.CountStudentTrainDataDto;
+import com.ym.mec.biz.dal.dto.MusicCompareRankingDto;
+import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
+import com.ym.mec.biz.dal.page.SysMusicCompareRecordQueryInfo;
+import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.biz.service.SysMusicCompareRecordService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static com.ym.mec.biz.dal.enums.FeatureType.CLOUD_STUDY_EVALUATION;
+
+/**
+ * @author zx
+ */
+@Api("云教练")
+@RestController
+@RequestMapping("${app-config.url.web:}/eduCloudStudy")
+public class EduCloudStudyController extends BaseController {
+
+    @Resource
+    private SysMusicCompareRecordService sysMusicCompareRecordService;
+    @Resource
+    private StudentDao studentDao;
+    @Resource
+    private OrganizationService organizationService;
+
+    @ApiOperation("查询乐团学员训练数据")
+    @GetMapping("queryMusicGroupStudentTrainData")
+    public HttpResponseResult<PageInfo<MusicCompareRankingDto>> queryMusicGroupStudentTrainData(SysMusicCompareRecordQueryInfo queryInfo){
+        return succeed(sysMusicCompareRecordService.queryMusicGroupStudentTrainData(queryInfo));
+    }
+
+    @ApiOperation("学员训练数据")
+    @GetMapping("queryStudentTrainData")
+    public HttpResponseResult<PageInfo<SysMusicCompareRecord>> queryStudentTrainData(SysMusicCompareRecordQueryInfo queryInfo){
+        return succeed(sysMusicCompareRecordService.queryStudentTrainData(queryInfo));
+    }
+
+    @ApiOperation("学员训练统计")
+    @GetMapping("countStudentTrain")
+    public HttpResponseResult<PageInfo<CountStudentTrainDataDto>> countStudentTrain(SysMusicCompareRecordQueryInfo queryInfo){
+        //获取分部下学员列表
+        List<Integer> userIds = studentDao.queryByOrganIds(organizationService.getEmployeeOrgan(null));
+        queryInfo.setStudentIdList(userIds);
+        return succeed(sysMusicCompareRecordService.countStudentTrain(queryInfo));
+    }
+
+    @ApiOperation("学员评测列表")
+    @GetMapping("queryMusicCompareRecord")
+    public HttpResponseResult<PageInfo<SysMusicCompareRecord>> queryMusicCompareRecord(SysMusicCompareRecordQueryInfo queryInfo){
+        if(queryInfo.getFeatureType() == null){
+            queryInfo.setFeatureType(CLOUD_STUDY_EVALUATION);
+        }
+        return succeed(sysMusicCompareRecordService.queryPage(queryInfo));
+    }
+
+}

+ 67 - 0
mec-application/src/main/java/com/ym/mec/web/controller/school/SchoolCloudStudyController.java

@@ -0,0 +1,67 @@
+package com.ym.mec.web.controller.school;
+
+import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dto.CountStudentTrainDataDto;
+import com.ym.mec.biz.dal.dto.MusicCompareRankingDto;
+import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
+import com.ym.mec.biz.dal.page.SysMusicCompareRecordQueryInfo;
+import com.ym.mec.biz.service.SysMusicCompareRecordService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static com.ym.mec.biz.dal.enums.FeatureType.CLOUD_STUDY_EVALUATION;
+
+/**
+ * @author zx
+ */
+@Api("云教练")
+@RestController
+@RequestMapping("${app-config.url.web:}/schoolCloudStudy")
+public class SchoolCloudStudyController extends BaseController {
+
+    @Resource
+    private SysMusicCompareRecordService sysMusicCompareRecordService;
+    @Resource
+    private StudentDao studentDao;
+
+    @ApiOperation("查询乐团学员训练数据")
+    @GetMapping("queryMusicGroupStudentTrainData")
+    public HttpResponseResult<PageInfo<MusicCompareRankingDto>> queryMusicGroupStudentTrainData(SysMusicCompareRecordQueryInfo queryInfo){
+        return succeed(sysMusicCompareRecordService.queryMusicGroupStudentTrainData(queryInfo));
+    }
+
+    @ApiOperation("学员训练数据")
+    @GetMapping("queryStudentTrainData")
+    public HttpResponseResult<PageInfo<SysMusicCompareRecord>> queryStudentTrainData(SysMusicCompareRecordQueryInfo queryInfo){
+        return succeed(sysMusicCompareRecordService.queryStudentTrainData(queryInfo));
+    }
+
+    @ApiOperation("学员训练统计")
+    @GetMapping("countStudentTrain")
+    public HttpResponseResult<PageInfo<CountStudentTrainDataDto>> countStudentTrain(SysMusicCompareRecordQueryInfo queryInfo,@RequestHeader Integer coopId){
+        //获取合作单位下学员列表
+        List<Integer> userIds = studentDao.queryByCoopIds(coopId);
+        queryInfo.setStudentIdList(userIds);
+        return succeed(sysMusicCompareRecordService.countStudentTrain(queryInfo));
+    }
+
+    @ApiOperation("学员评测列表")
+    @GetMapping("queryMusicCompareRecord")
+    public HttpResponseResult<PageInfo<SysMusicCompareRecord>> queryMusicCompareRecord(SysMusicCompareRecordQueryInfo queryInfo){
+        if(queryInfo.getFeatureType() == null){
+            queryInfo.setFeatureType(CLOUD_STUDY_EVALUATION);
+        }
+        return succeed(sysMusicCompareRecordService.queryPage(queryInfo));
+    }
+
+}

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -398,4 +398,15 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
     //查询会员学员
     List<Integer> queryMemberStudent(@Param("memberFlag") Boolean memberFlag, @Param("studentIdList") List<Integer> studentIdList);
 
+    //指定学员中有已结束,且没有未开始的学员
+    List<Integer> queryHasEndVipStudent(@Param("studentIdList") List<Integer> studentIdList);
+
+    //指定学员中有未开始的学员
+    List<Integer> queryHasNotStartVipStudent(@Param("studentIdList") List<Integer> studentIdList);
+
+    //获取分部下学员列表
+    List<Integer> queryByOrganIds(@Param("organIds") String organIds);
+
+    //获取合作单位下学员列表
+    List<Integer> queryByCoopIds(@Param("coopId") Integer coopId);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -775,4 +775,6 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
     //获取乐团在读学员列表
     List<Integer> findNormalStu(@Param("musicGroupId") String musicGroupId, @Param("classGroupId") Integer classGroupId);
 
+    //获取指定学员中在读的学员
+    List<Integer> queryNormalUserByIds(@Param("studentIdList") List<Integer> studentIdList);
 }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysMusicCompareRecordQueryInfo.java

@@ -7,6 +7,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * @Author Joburgess
  * @Date 2021/8/11 0011
@@ -52,4 +54,7 @@ public class SysMusicCompareRecordQueryInfo extends QueryInfo {
     private Boolean visitFlag;
 
     private Integer organId;
+
+    //基础数据
+    private List<Integer> studentIdList;
 }

+ 23 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicCompareRecordServiceImpl.java

@@ -423,10 +423,14 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 
     @Override
     public PageInfo<CountStudentTrainDataDto> countStudentTrain(SysMusicCompareRecordQueryInfo queryInfo) {
+		PageInfo<CountStudentTrainDataDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		List<Integer> studentIdList = queryInfo.getStudentIdList();
+		if(CollectionUtils.isEmpty(queryInfo.getStudentIdList())){
+			return pageInfo;
+		}
 		if(queryInfo.getStartTime() == null || queryInfo.getEndTime() == null){
 			throw new BizException("请选择训练时间");
 		}
-		PageInfo<CountStudentTrainDataDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<String, Object>();
 		String sort = queryInfo.getSort();
 		if(StringUtils.isNotEmpty(sort)){
@@ -468,14 +472,26 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 			trainNum = "4";
 		}
 		params.put("trainNum",Integer.parseInt(trainNum));
-		//获取老师关联的学员列表
-		List<Integer> studentIdList = studentTeacherMapperDao.queryStudentIds(queryInfo.getTeacherId(),null);
-		if(CollectionUtils.isEmpty(studentIdList)){
-			return pageInfo;
-		}
 		//是否乐团在读学员
 		if(queryInfo.getMusicFlag()){
-//			studentRegistrationDao.
+			studentIdList = studentRegistrationDao.queryNormalUserByIds(studentIdList);
+			if(CollectionUtils.isEmpty(studentIdList)){
+				return pageInfo;
+			}
+		}
+		//是否有已结束的小课
+		if(queryInfo.getHasEndVipFlag()){
+			studentIdList = studentDao.queryHasEndVipStudent(studentIdList);
+			if(CollectionUtils.isEmpty(studentIdList)){
+				return pageInfo;
+			}
+		}
+		//是否有未开始的小课
+		if(queryInfo.getHasNotStartVipFlag()){
+			studentIdList = studentDao.queryHasNotStartVipStudent(studentIdList);
+			if(CollectionUtils.isEmpty(studentIdList)){
+				return pageInfo;
+			}
 		}
 		if(StringUtils.isNotEmpty(queryInfo.getMusicGroupId())){
 			//获取乐团下的学员列表

+ 43 - 0
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -1533,4 +1533,47 @@
         </if>
 
     </select>
+    <select id="queryHasEndVipStudent" resultType="java.lang.Integer">
+        select DISTINCT cssp.user_id_ from course_schedule_student_payment cssp
+        left join course_schedule cs ON cs.id_ = cssp.course_schedule_id_
+        where cssp.user_id_ IN
+        <foreach collection="studentIdList" item="studentId" open="(" close=")" separator=",">
+            #{studentId}
+        </foreach>
+        AND cs.status_ = 'OVER' AND cs.type_ IN ('VIP','PRACTICE')
+        AND cssp.user_id_ NOT IN(select DISTINCT cssp.user_id_ from course_schedule_student_payment cssp
+        left join course_schedule cs ON cs.id_ = cssp.course_schedule_id_
+        where cssp.user_id_ IN
+        <foreach collection="studentIdList" item="studentId" open="(" close=")" separator=",">
+            #{studentId}
+        </foreach>
+        AND cs.status_ != 'OVER' AND cs.type_ IN ('VIP','PRACTICE')
+        )
+    </select>
+    <select id="queryHasNotStartVipStudent" resultType="java.lang.Integer">
+        select DISTINCT cssp.user_id_ from course_schedule_student_payment cssp
+        left join course_schedule cs ON cs.id_ = cssp.course_schedule_id_
+        where cssp.user_id_ IN
+        <foreach collection="studentIdList" item="studentId" open="(" close=")" separator=",">
+            #{studentId}
+        </foreach>
+        AND cs.status_ != 'OVER' AND cs.type_ IN ('VIP','PRACTICE')
+    </select>
+    <select id="queryByOrganIds" resultType="java.lang.Integer">
+        SELECT DISTINCT su.id_
+        FROM `student` s
+        LEFT JOIN `sys_user` su on s.`user_id_` = su.`id_`
+        WHERE su.del_flag_ = '0' AND su.organ_id_ IN
+        <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+            #{organId}
+        </foreach>
+    </select>
+    <select id="queryByCoopIds" resultType="java.lang.Integer">
+        select distinct s.user_id_ from student s
+        left join student_registration sr on sr.user_id_ = s.user_id_
+        left join music_group mg on mg.id_ = sr.music_group_id_
+        where sr.music_group_status_ = 'NORMAL'
+        and mg.status_ = 'PROGRESS'
+        and mg.cooperation_organ_id_ = #{coopId}
+    </select>
 </mapper>

+ 14 - 2
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -1958,10 +1958,22 @@
     </select>
     <select id="findNormalStu" resultType="java.lang.Integer">
         select DISTINCT sr.user_id_ from student_registration sr
-        left join class_group_student_mapper cgsm ON cgsm.music_group_id_ = sr.music_group_id_
-        where sr.music_group_id_ = #{musicGroupId} AND sr.music_group_status_ = 'NORMAL'
+        left join music_group mg ON mg.id_ = sr.music_group_id_
+        <if test="classGroupId != null">
+            left join class_group_student_mapper cgsm ON cgsm.music_group_id_ = sr.music_group_id_
+        </if>
+        where sr.music_group_id_ = #{musicGroupId} AND sr.music_group_status_ = 'NORMAL' AND mg.status_ = 'PROGRESS'
         <if test="classGroupId != null">
             AND cgsm.status_ = 'NORMAL' AND cgsm.class_group_id_ = #{classGroupId}
         </if>
     </select>
+    <select id="queryNormalUserByIds" resultType="java.lang.Integer">
+        select DISTINCT sr.user_id_ from student_registration sr
+        left join music_group mg ON mg.id_ = sr.music_group_id_
+        where sr.music_group_status_ = 'NORMAL' AND mg.status_ = 'PROGRESS'
+        AND sr.user_id_ IN
+        <foreach collection="studentIdList" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+    </select>
 </mapper>

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

@@ -350,6 +350,9 @@
 			<if test="search != null and search != ''">
 				AND (su.phone_ LIKE CONCAT('%',#{search},'%') OR su.username_ LIKE CONCAT('%',#{search},'%'))
 			</if>
+			<if test="organId != null">
+				AND su.organ_id_ = #{organId}
+			</if>
 			<if test="visitStudents != null and visitStudents.size > 0">
 				AND su.id_ NOT IN
 				<foreach collection="visitStudents" open="(" close=")" item="userId" separator=",">