zouxuan 5 年 前
コミット
a5f3814825

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

@@ -206,4 +206,10 @@ public interface StudentManageDao {
      */
     List<StudentHasCourseDto> queryHasCourseStudent(@Param("organId") String organId);
 
+    /**
+     * 当前用户是否有课
+     * @param userId
+     * @return
+     */
+    Long getHasCourse(Integer userId);
 }

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

@@ -85,11 +85,17 @@ public class StudentManageServiceImpl implements StudentManageService {
             List<Integer> userIds = dataList.stream()
                     .map(StudentManageListDto::getUserId).collect(Collectors.toList());
             List<SysUserCashAccount> byUserIds = sysUserCashAccountDao.findByUserIds(userIds);
-            Map<Integer,Long> hasCourseMap = MapUtil.convertIntegerMap(studentManageDao.queryStudentHasCourse(userIds));
+//            Map<Integer,Long> hasCourseMap = MapUtil.convertIntegerMap(studentManageDao.queryStudentHasCourse(userIds));
             Map<Integer, SysUserCashAccount> collect = byUserIds.stream()
                     .collect(Collectors.toMap(SysUserCashAccount::getUserId, sysUserCashAccount -> sysUserCashAccount));
             dataList.forEach(e -> {
-                e.setHasCourse(hasCourseMap.get(e.getUserId()));
+                if(hasCourse != null){
+                    e.setHasCourse(studentManageDao.getHasCourse(e.getUserId()));
+                }else if(hasCourse){
+                    e.setHasCourse(1L);
+                }else {
+                    e.setHasCourse(0L);
+                }
                 if(collect.get(e.getUserId()) != null){
                     e.setCourseBalance(collect.get(e.getUserId()).getCourseBalance());
                 }

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

@@ -637,5 +637,11 @@
         </if>
         GROUP BY su.id_
     </select>
+    <select id="getHasCourse" resultType="java.lang.Long">
+        SELECT COUNT(DISTINCT su.id_) FROM sys_user su
+        LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = su.id_
+        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
+        WHERE cs.status_ != 'OVER' AND su.id_ = #{userId}
+    </select>
 
 </mapper>