Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 years ago
parent
commit
8e7afbc3ca

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentManageDao.java

@@ -259,4 +259,18 @@ public interface StudentManageDao {
      * @return
      */
     List<Map<Integer,Integer>> getHasPracticeCourse(List<Integer> userIds);
+
+    /**
+     * 是否激活
+     * @param userIds
+     * @return
+     */
+    List<Map<Integer,Integer>> getIsActive(List<Integer> userIds);
+
+    /**
+     * 是否预约陪练课
+     * @param userIds
+     * @return
+     */
+    List<Map<Integer,Integer>> getIsMake(List<Integer> userIds);
 }

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

@@ -19,6 +19,16 @@ public class StudentHasCourseDto{
 
     private YesOrNoEnum isMake;
 
+    private YesOrNoEnum hasPracticeCourse;
+
+    public YesOrNoEnum getHasPracticeCourse() {
+        return hasPracticeCourse;
+    }
+
+    public void setHasPracticeCourse(YesOrNoEnum hasPracticeCourse) {
+        this.hasPracticeCourse = hasPracticeCourse;
+    }
+
     public YesOrNoEnum getIsActive() {
         return isActive;
     }

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

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.common.entity.ImResult;
@@ -105,6 +106,7 @@ public class StudentManageServiceImpl implements StudentManageService {
                         e.setHasCourse(0L);
                     }
                 }
+                e.setHasPracticeCourse(hasPracticeCourseMap.get(e.getUserId()) == null? YesOrNoEnum.NO:YesOrNoEnum.YES);
                 if(collect.get(e.getUserId()) != null){
                     e.setCourseBalance(collect.get(e.getUserId()).getCourseBalance());
                 }
@@ -369,13 +371,17 @@ public class StudentManageServiceImpl implements StudentManageService {
 
     @Override
     public List<StudentHasCourseDto> queryHasCourseStudent(String organId) {
-//        Set<Integer> musicUserIds = scheduleStudentPaymentDao.queryMusicStudentPer();
-//        Set<Integer> vipUserIds = scheduleStudentPaymentDao.queryVipStudentPer();
-//        musicUserIds.addAll(vipUserIds);
-        //学员编号", "姓名", "分部", "所在乐团", "乐团所属声部", "所在vip课","是否激活","是否预约
-//        获取编号,姓名,分部,"是否激活","是否预约
-//        List<StudentHasCourseDto> studentHasCourseDtos = studentManageDao.queryCourseStudent(vipUserIds);
-        return studentManageDao.queryHasCourseStudent(organId);
+        List<StudentHasCourseDto> studentHasCourseDtos = studentManageDao.queryHasCourseStudent(organId);
+        List<Integer> userIds = studentHasCourseDtos.stream().map(e -> e.getUserId()).collect(Collectors.toList());
+        Map<Integer,Integer> hasPracticeCourseMap = MapUtil.convertIntegerMap(studentManageDao.getHasPracticeCourse(userIds));
+        Map<Integer,Integer> isActiveMap = MapUtil.convertIntegerMap(studentManageDao.getIsActive(userIds));
+        Map<Integer,Integer> isMakeMap = MapUtil.convertIntegerMap(studentManageDao.getIsMake(userIds));
+        studentHasCourseDtos.forEach(e->{
+            e.setHasPracticeCourse(hasPracticeCourseMap.get(e.getUserId()) == null?YesOrNoEnum.NO:YesOrNoEnum.YES);
+            e.setIsActive(isActiveMap.get(e.getUserId()) == null?YesOrNoEnum.YES:YesOrNoEnum.NO);
+            e.setIsMake(isMakeMap.get(e.getUserId()) == null?YesOrNoEnum.NO:YesOrNoEnum.YES);
+        });
+        return studentHasCourseDtos;
     }
 
     @Override

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

@@ -703,9 +703,7 @@
     </select>
     <select id="queryHasCourseStudent" resultMap="StudentHasCourseDtoMap">
         SELECT su.id_,GROUP_CONCAT(DISTINCT su.username_) username_,GROUP_CONCAT(DISTINCT mg.name_) music_group_name_,
-        GROUP_CONCAT(DISTINCT vg.name_) vip_group_name_,GROUP_CONCAT(DISTINCT o.name_) organ_name_,GROUP_CONCAT(DISTINCT s.name_) music_group_subject_,
-        CASE WHEN su.password_ IS NULL THEN 0 ELSE 1 END is_active_,
-        CASE WHEN pla.id_ IS NULL THEN 0 ELSE 1 END is_make_
+        GROUP_CONCAT(DISTINCT vg.name_) vip_group_name_,GROUP_CONCAT(DISTINCT o.name_) organ_name_,GROUP_CONCAT(DISTINCT s.name_) music_group_subject_
         FROM sys_user su
         LEFT JOIN course_schedule_student_payment cssp ON su.id_ = cssp.user_id_
         LEFT JOIN music_group mg ON cssp.music_group_id_ = mg.id_ AND cssp.group_type_ = 'MUSIC'
@@ -713,13 +711,12 @@
         LEFT JOIN organization o ON su.organ_id_ = o.id_
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
-        LEFT JOIN practice_lesson_apply pla ON su.id_ = pla.user_id_
         WHERE cssp.id_ IS NOT NULL AND su.user_type_ LIKE '%STUDENT%' AND (sr.music_group_status_ != 'QUIT' OR sr.id_ IS NULL)
         AND (mg.status_ = 'PROGRESS' OR vg.group_status_ IN (2,4))
         <if test="organId != null and organId != ''">
             AND FIND_IN_SET(su.organ_id_,#{organId})
         </if>
-        GROUP BY su.id_,pla.id_
+        GROUP BY su.id_
     </select>
     <select id="getHasCourse" resultType="java.lang.Long">
         SELECT COUNT(DISTINCT su.id_) FROM sys_user su
@@ -765,7 +762,17 @@
         <include refid="queryHasPracticeCourseSql"/>
     </select>
     <select id="getHasPracticeCourse" resultType="java.util.Map">
-        
+        SELECT cssp.user_id_ 'key',COUNT(DISTINCT cssp.user_id_) 'value' FROM course_schedule_student_payment cssp
+        WHERE cssp.group_type_ = 'PRACTICE'
+        GROUP BY cssp.user_id_
+    </select>
+    <select id="getIsActive" resultType="java.util.Map">
+        SELECT su.id_ 'key',COUNT(su.id_) 'value' FROM sys_user su
+        WHERE su.user_type_ LIKE '%STUDENT%' AND su.del_flag_ = 0 AND su.password_ IS NULL
+        GROUP BY su.id_
+    </select>
+    <select id="getIsMake" resultType="java.util.Map">
+        SELECT pla.user_id_ 'key',pla.user_id_ 'value' FROM practice_lesson_apply pla
     </select>
 
 </mapper>

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

@@ -243,8 +243,8 @@ public class ExportController extends BaseController {
         }
         List<StudentHasCourseDto> hasCourseDtos = studentManageService.queryHasCourseStudent(organId);
         try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"学员编号", "姓名", "分部", "所在乐团", "乐团所属声部", "所在vip课","是否激活","是否预约"}, new String[]{
-                    "userId", "userName", "organName", "musicGroupName", "subjectName", "vipGroupName","isActive.msg","isMake.msg"}, hasCourseDtos);
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"学员编号", "姓名", "分部", "所在乐团", "乐团所属声部", "所在vip课","是否激活","是否预约陪练课","是否有陪练课"}, new String[]{
+                    "userId", "userName", "organName", "musicGroupName", "subjectName", "vipGroupName","isActive.msg","isMake.msg","hasPracticeCourse.msg"}, hasCourseDtos);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             response.flushBuffer();