zouxuan пре 5 година
родитељ
комит
0d1df05ea7

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -340,10 +340,10 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 获取学生端,vip课程列表
-     * @param userId
+     * @param musicGroupIds
      * @return
      */
-    List<CourseListDto> queryStudentVipCourses(Integer userId);
+    List<CourseListDto> queryStudentVipCourses(@Param("musicGroupIds") String musicGroupIds);
 
     /**
      * 获取学生端,vip课程列表
@@ -354,10 +354,10 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 获取学生端,学员乐团课列表详情
-     * @param userId
+     * @param musicGroupIds
      * @return
      */
-    List<CourseListDto> queryStudentMusicGroupCourses(Integer userId);
+    List<CourseListDto> queryStudentMusicGroupCourses(@Param("musicGroupIds") String musicGroupIds);
 
     /**
      * 获取学生端,学员乐团课列表详情

+ 8 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -4,11 +4,8 @@ import com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
-import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
@@ -399,4 +396,11 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto
      */
     CourseAttendanceDetailHeadInfoDto findByCourse(Long courseScheduleId);
+
+    /**
+     * 获取学员购买的所有乐团和vip编号分页列表
+     * @param params
+     * @return
+     */
+    List<String> queryMusicGroupIds(Map<String, Object> params);
 }

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

@@ -66,7 +66,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param musicGroupIds
      * @return
      */
-    List<Map<String, BigDecimal>> countMusicGroupUserNum(@Param("musicGroupIds") Set<String> musicGroupIds);
+    List<Map<String, BigDecimal>> countMusicGroupUserNum(@Param("musicGroupIds") String musicGroupIds);
 
     /**
      * 获取乐团所有学员基本信息
@@ -95,7 +95,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param musicGroupIds
      * @return
      */
-    List<Map<String, Long>> countPayNum(@Param("musicGroupIds") Set<String> musicGroupIds);
+    List<Map<String, Long>> countPayNum(@Param("musicGroupIds") String musicGroupIds);
 
     /**
      * 获取乐团列表

+ 39 - 35
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -390,44 +390,48 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         PageInfo<CourseListDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
+        params.put("userId",userId);
         List<CourseListDto> courseListDtos = null;
 //        int count = classGroupDao.countCoursePage(params);
-        Integer vipCoursesNum = classGroupDao.countStudentVipCourses(userId);
-        Integer coursesNum = classGroupDao.countStudentMusicGroupCourses(userId);
-        int count = vipCoursesNum == null?0:vipCoursesNum + (coursesNum==null?0:coursesNum);
-        if (count > 0) {
-            pageInfo.setTotal(count);
-            params.put("offset", pageInfo.getOffset());
-            courseListDtos = new ArrayList<>();
-            //获取学员所购买的vip课列表详情
-            List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(userId);
-            //获取vip课的学生列表
-            Set<String> vipIds = vipCourses.stream().map(CourseListDto::getMusicGroupId).collect(Collectors.toSet());
-            Map<String,String> vipStuNames = MapUtil.convertMybatisMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds,",")));
-            //获取学员的乐团列表详情
-            courseListDtos.addAll(classGroupDao.queryStudentMusicGroupCourses(userId));
-            courseListDtos.addAll(vipCourses);
-            //获取所有教学点名称列表
-            Set<Integer> schoolIds = courseListDtos.stream().map(CourseListDto::getTeacherSchoolId).collect(Collectors.toSet());
-            Map<Integer,String> schoolNames = MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds,",")));
+//        Integer vipCoursesNum = classGroupDao.countStudentVipCourses(userId);
+//        Integer coursesNum = classGroupDao.countStudentMusicGroupCourses(userId);
+//        int count = vipCoursesNum == null?0:vipCoursesNum + (coursesNum==null?0:coursesNum);
+//        if (count > 0) {
+//        pageInfo.setTotal(count);
+        //获取分页前的所有的乐团编号和vip编号
+        params.put("offset", pageInfo.getOffset());
+        List<String> musicGroupIds = courseScheduleDao.queryMusicGroupIds(params);
+        courseListDtos = new ArrayList<>();
+        //获取学员所购买的vip课列表详情
+        List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(StringUtils.join(musicGroupIds,","));
+        //获取vip课的学生列表
+        Set<String> vipIds = vipCourses.stream().map(CourseListDto::getMusicGroupId).collect(Collectors.toSet());
+        Map<String,String> vipStuNames = MapUtil.convertMybatisMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds,",")));
+        //获取学员的乐团列表详情
+        courseListDtos.addAll(classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds,",")));
+        courseListDtos.addAll(vipCourses);
+        //获取所有教学点名称列表
+        Set<Integer> schoolIds = courseListDtos.stream().map(CourseListDto::getTeacherSchoolId).collect(Collectors.toSet());
+        Map<Integer,String> schoolNames = MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds,",")));
 //            courseListDtos = classGroupDao.queryCoursePage(params);
-            courseListDtos.forEach(e -> {
-                e.setAddress(schoolNames.get(e.getTeacherSchoolId()));
-                if (ClassGroupTypeEnum.VIP == e.getType()) {
-                    e.setStudentNames(vipStuNames.get(e.getMusicGroupId()));
-                    if (e.getOffLineClassesNum() > 0 && e.getOffLineClassesNum() <= 0) {
-                        e.setClassMode(1);
-                    } else if (e.getOffLineClassesNum() > 0 && e.getOffLineClassesNum() > 0) {
-                        e.setClassMode(3);
-                    } else if (e.getOnlineClassesNum() < 0 && e.getOffLineClassesNum() >= 0) {
-                        e.setClassMode(2);
-                    } else {
-                        e.setClassMode(0);
-                    }
+        courseListDtos.forEach(e -> {
+            e.setAddress(schoolNames.get(e.getTeacherSchoolId()));
+            if (ClassGroupTypeEnum.VIP == e.getType()) {
+                e.setStudentNames(vipStuNames.get(e.getMusicGroupId()));
+                if (e.getOffLineClassesNum() > 0 && e.getOffLineClassesNum() <= 0) {
+                    e.setClassMode(1);
+                } else if (e.getOffLineClassesNum() > 0 && e.getOffLineClassesNum() > 0) {
+                    e.setClassMode(3);
+                } else if (e.getOnlineClassesNum() < 0 && e.getOffLineClassesNum() >= 0) {
+                    e.setClassMode(2);
+                } else {
+                    e.setClassMode(0);
                 }
-            });
-        }
-        if (count == 0) {
+            }
+        });
+        pageInfo.setTotal(courseListDtos.size());
+//        }
+        if (courseListDtos.size() == 0) {
             courseListDtos = new ArrayList<>();
         }
         pageInfo.setRows(courseListDtos);
@@ -444,7 +448,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             List<MusicGroup> musicGroups = musicGroupDao.queryListByIds(musicGroupIds);
 
             //获取乐团群用户总数map
-            List<Map<String, BigDecimal>> musicGroupUserNums = musicGroupDao.countMusicGroupUserNum(musicGroupIds);
+            List<Map<String, BigDecimal>> musicGroupUserNums = musicGroupDao.countMusicGroupUserNum(StringUtils.join(musicGroupIds,","));
             Map<String, BigDecimal> musicGroupUserNumMap = MapUtil.convertMybatisMap(musicGroupUserNums);
             MusicGroup musicGroup;
             Set<Integer> teachers;

+ 7 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -179,9 +179,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     public MusicCardDto queryPersonalMusicGroups(Integer id) {
         MusicCardDto musicCardDto = musicGroupDao.queryPersonalMusicGroups(id);
-        musicCardDto.setMusicGroupNum(musicGroupDao.countUserMusicGroups(id));
-        musicCardDto.setVipClassNum(musicGroupDao.countCourseByType(id, ClassGroupTypeEnum.VIP));
-        return musicGroupDao.queryPersonalMusicGroups(id);
+        if(musicCardDto != null){
+            musicCardDto.setMusicGroupNum(musicGroupDao.countUserMusicGroups(id));
+            musicCardDto.setVipClassNum(musicGroupDao.countCourseByType(id, ClassGroupTypeEnum.VIP));
+            return musicGroupDao.queryPersonalMusicGroups(id);
+        }
+        return new MusicCardDto();
     }
 
     @Override
@@ -543,7 +546,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         // 获取乐团编号列表
         Set<String> musicGroupIds = musicGroupList.stream().map(e -> e.getId()).collect(Collectors.toSet());
         // 统计乐团在读人数
-        List<Map<String, Long>> payNums = musicGroupDao.countPayNum(musicGroupIds);
+        List<Map<String, Long>> payNums = musicGroupDao.countPayNum(StringUtils.join(musicGroupIds,","));
         Map<String, Long> payNumMap = MapUtil.convertMybatisMap(payNums);
 
         // 获取收费类型编号列表

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

@@ -130,7 +130,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 			//获取乐团id列表
 			Set<String> musicGroupIds = imGroupModels.stream().map(e -> e.getId()).collect(Collectors.toSet());
 			List<MusicGroup> musicGroups = musicGroupDao.queryListByIds(musicGroupIds);
-			List<Map<String, BigDecimal>> musicGroupUserNums = musicGroupDao.countMusicGroupUserNum(musicGroupIds);
+			List<Map<String, BigDecimal>> musicGroupUserNums = musicGroupDao.countMusicGroupUserNum(StringUtils.join(musicGroupIds,","));
 			Map<String, BigDecimal> musicGroupUserNumMap = MapUtil.convertMybatisMap(musicGroupUserNums);
 			imGroupModels.forEach(e -> {
 				Set<Integer> teachers = e.getName() == null?new HashSet<>():new HashSet(Arrays.asList(e.getName().split(",")));
@@ -182,7 +182,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	@Override
 	public PageInfo<TeacherCloseDto> queryCloses(TeacherCloseQueryInfo queryInfo) {
 		PageInfo<TeacherCloseDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-		Map<String, Object> params = new HashMap<String, Object>();
+		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 
 		List<TeacherCloseDto> dataList = null;

+ 2 - 4
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -664,8 +664,7 @@
         FROM vip_group vg
         LEFT JOIN class_group cg ON cg.music_group_id_ = vg.id_
         LEFT JOIN sys_user su ON vg.user_id_ = su.id_
-        LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
-        WHERE cg.type_ = 'VIP' AND cgsm.user_id_ = #{userId}
+        WHERE cg.type_ = 'VIP' AND FIND_IN_SET(vg.id_,#{musicGroupIds})
     </select>
     <select id="queryStudentMusicGroupCourses" resultMap="CourseListDto">
         SELECT mg.id_ music_group_id_,mg.name_ music_group_name_,mgsf.payment_status_,
@@ -674,8 +673,7 @@
         FROM music_group mg
         LEFT JOIN class_group cg ON cg.music_group_id_ = mg.id_
         LEFT JOIN music_group_student_fee_ mgsf ON mgsf.music_group_id_ = mg.id_
-        LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
-        WHERE cgsm.user_id_ = #{userId} AND (cg.type_ = 'NORMAL' OR cg.type_ = 'MIX')
+        WHERE FIND_IN_SET(mg.id_,#{musicGroupIds}) AND (cg.type_ = 'NORMAL' OR cg.type_ = 'MIX')
         GROUP BY mg.id_,mgsf.id_
     </select>
     <select id="countStudentVipCourses" resultType="java.lang.Integer">

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -973,4 +973,9 @@
             LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         WHERE cs.id_=#{courseScheduleId}
     </select>
+    <select id="queryMusicGroupIds" resultType="java.lang.String">
+        SELECT DISTINCT spo.music_group_id_ FROM student_payment_order spo
+        WHERE spo.type_ != 'OTHER' AND spo.music_group_id_ IS NOT NULL AND spo.user_id_ = #{userId}
+        <include refid="global.limit"/>
+    </select>
 </mapper>

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

@@ -133,7 +133,7 @@
 	</delete>
 
 	<select id="queryPage" resultMap="MusicGroup" parameterType="map">
-		SELECT * FROM music_group ORDER BY id_
+		SELECT * FROM music_group ORDER BY update_time_ DESC
 		<include refid="global.limit" />
 	</select>
 
@@ -229,10 +229,7 @@
 
     <select id="countMusicGroupUserNum" resultType="map" parameterType="list">
 		SELECT SUM(student_num_) 'value',music_group_id_ 'key' FROM class_group
-		WHERE music_group_id_ IN
-		<foreach item="item" index="index" collection="musicGroupIds" open="(" separator="," close=")">
-			#{item}
-		</foreach>
+		WHERE FIND_IN_SET(music_group_id_,#{musicGroupIds})
 		GROUP BY music_group_id_
     </select>
 
@@ -268,10 +265,7 @@
     <select id="countPayNum" resultType="java.util.Map" parameterType="list">
 		SELECT cg.music_group_id_ `key`,COUNT(cgsm.id_) `value` FROM class_group cg
 		LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
-		WHERE cg.music_group_id_ IN
-		<foreach item="item" index="index" collection="musicGroupIds" open="(" separator="," close=")">
-			#{item}
-		</foreach>
+		WHERE FIND_IN_SET(cg.music_group_id_,#{musicGroupIds})
 		AND cgsm.status_ != 'QUIT' GROUP BY cg.music_group_id_
 	</select>
 

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentEntitiesMapper.xml

@@ -36,7 +36,7 @@
 		INSERT INTO music_group_payment_entities (music_group_id_,name_,payment_method_,amount_,memo_,create_time_,update_time_)
 		VALUES
 		<foreach collection="entities" item="item" separator=",">
-			(#{musicGroupId},#{item.name},#{item.paymentMethod.code},#{item.amount},now(),now())
+			(#{musicGroupId},#{item.name},#{item.paymentMethod.code},#{item.amount},#{item.memo},now(),now())
 		</foreach>
 	</insert>
 

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

@@ -40,10 +40,9 @@
 
     <insert id="batchInsert" parameterType="java.util.List">
         INSERT INTO music_group_subject_goods_group
-        (id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_) VALUES
+        (name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_) VALUES
         <foreach collection="lists" item="item" index="index" separator=",">
-            VALUES(#{item.id},#{item.name},#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            #{musicGroupId},#{item.subjectId},#{item.goodsIdList},NOW(),NOW(),#{item.price})
+            (#{item.name},#{item.type.code},#{musicGroupId},#{item.subjectId},#{item.goodsIdList},now(),now(),#{item.price})
         </foreach>
     </insert>
 

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -418,6 +418,12 @@
             <if test="teacherRole != null and teacherRole != ''">
                 AND csts.teacher_role_ = #{teacherRole}
             </if>
+            <if test="signInStatus != null and signInStatus != ''">
+                AND ta.sign_in_status_ = #{signInStatus}
+            </if>
+            <if test="signOutStatus != null and signOutStatus != ''">
+                AND ta.sign_out_status_ = #{signOutStatus}
+            </if>
         </where>
     </sql>
 </mapper>