Browse Source

学员剩余课时

zouxuan 4 years ago
parent
commit
3b452fc83b

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentStudentCourseDetailDao.java

@@ -99,4 +99,13 @@ public interface MusicGroupPaymentStudentCourseDetailDao extends BaseDAO<Long, M
      * @return
      */
     List<Map<Integer, Integer>> queryStudentSubTotalCourseTime(@Param("studentIds") Set<Integer> studentIds, @Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 获取学员关联的每种课程类型的剩余可排课时长
+     *
+     * @param userId
+     * @param musicGroupId
+     * @return
+     */
+    List<Map<Integer, Integer>> queryStudentSubTotalCourseTimes(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupStudentsDto.java

@@ -63,6 +63,16 @@ public class MusicGroupStudentsDto{
     private String isNewStudentStr;
 
     private String nextPaymentDateStr;
+    @ApiModelProperty(value = "剩余可排课时长",required = false)
+    private Integer subTotalCourseTime;
+
+    public Integer getSubTotalCourseTime() {
+        return subTotalCourseTime;
+    }
+
+    public void setSubTotalCourseTime(Integer subTotalCourseTime) {
+        this.subTotalCourseTime = subTotalCourseTime;
+    }
 
     public String getPaymentPeriodList() {
         return paymentPeriodList;

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

@@ -202,4 +202,11 @@ public interface StudentManageService {
      * @return
      */
     List<BasicUserDto> queryGroupStudents(QueryInfo groupType);
+
+    /**
+     * 乐团管理--乐团详情--学员列表--获取学员可排课时长
+     * @param userId
+     * @return
+     */
+    Map<Integer, Integer> queryStudentSubTotalCourseTimes(Integer userId,String musicGroupId);
 }

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

@@ -430,11 +430,11 @@ public class StudentManageServiceImpl implements StudentManageService {
             //退团的学生
             List<Integer> quitUserIds = dataList.stream().filter(e -> e.getStudentStatus().equals("QUIT")).map(MusicGroupStudentsDto::getUserId).collect(Collectors.toList());
             Set<Integer> studentIds = dataList.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
-            List<Map<Integer,Integer>> subTotalCourseTimeMap = musicGroupPaymentStudentCourseDetailDao.queryStudentSubTotalCourseTime(studentIds,musicGroupId);
-
+            Map<Integer,Integer> subTotalCourseTimeMap = MapUtil.convertIntegerMap(musicGroupPaymentStudentCourseDetailDao.queryStudentSubTotalCourseTime(studentIds,musicGroupId));
             if (quitUserIds.size() > 0) {
                 List<MusicGroupQuit> quits = musicGroupQuitDao.getQuits(queryInfo.getMusicGroupId(), quitUserIds);
                 for (MusicGroupStudentsDto musicGroupStudentsDto : dataList) {
+                    musicGroupStudentsDto.setSubTotalCourseTime(subTotalCourseTimeMap.get(musicGroupStudentsDto.getUserId()));
                     for (MusicGroupQuit quit : quits) {
                         if (!quit.getUserId().equals(musicGroupStudentsDto.getUserId())) continue;
                         musicGroupStudentsDto.setQuitReason(quit.getReason());
@@ -684,4 +684,9 @@ public class StudentManageServiceImpl implements StudentManageService {
             return studentManageDao.queryPracticeGroupStudents(sysUser.getId());
         }
     }
+
+    @Override
+    public Map<Integer, Integer> queryStudentSubTotalCourseTimes(Integer userId,String musicGroupId) {
+        return MapUtil.convertIntegerMap(musicGroupPaymentStudentCourseDetailDao.queryStudentSubTotalCourseTimes(userId,musicGroupId));
+    }
 }

+ 13 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentStudentCourseDetailMapper.xml

@@ -227,6 +227,19 @@
     </delete>
 
     <select id="queryStudentSubTotalCourseTime" resultType="java.util.Map">
+        SELECT mgpscd.user_id_ 'key',SUM(mgpscd.total_course_minutes_) 'value' FROM music_group_payment_student_course_detail mgpscd
+        LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpscd.music_group_payment_calender_id_
+        WHERE mgpscd.used_course_minutes_ = 0 AND mgpc.music_group_id_ = #{musicGroupId} AND mgpscd.user_id_ IN
+        <foreach collection="studentIds" open="(" close=")" item="item" separator=",">
+            #{item}
+        </foreach>
+        GROUP BY mgpscd.user_id_
+    </select>
 
+    <select id="queryStudentSubTotalCourseTimes" resultType="java.util.Map">
+        SELECT mgpscd.course_type_ 'key',SUM(mgpscd.total_course_minutes_) 'value' FROM music_group_payment_student_course_detail mgpscd
+        LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpscd.music_group_payment_calender_id_
+        WHERE mgpscd.used_course_minutes_ = 0 AND mgpc.music_group_id_ = #{musicGroupId} AND mgpscd.user_id_ = #{userId}
+        GROUP BY mgpscd.course_type_
     </select>
 </mapper>

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

@@ -121,6 +121,13 @@ public class StudentManageController extends BaseController {
         return succeed(studentManageService.queryMusicGroupStudent(queryInfo));
     }
 
+    @ApiOperation(value = "乐团管理--乐团详情--学员列表--获取学员可排课时长")
+    @GetMapping("/queryStudentSubTotalCourseTimes")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/queryStudentSubTotalCourseTimes')")
+    public Object queryStudentSubTotalCourseTimes(Integer userId,String musicGroupId){
+        return succeed(studentManageService.queryStudentSubTotalCourseTimes(userId,musicGroupId));
+    }
+
     @ApiOperation(value = "乐团修改--学员缴费记录--可新增学员列表")
     @GetMapping("/queryCanAddStudent")
     @PreAuthorize("@pcs.hasPermissions('studentManage/queryCanAddStudent')")