Browse Source

1、超级管理员课表预览bug修复

Joburgess 5 years ago
parent
commit
ef2f62bece

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

@@ -156,4 +156,13 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      * @return
      */
     Set<Integer> queryVipStudentPer();
+
+    /**
+     * @describe
+     * @author Joburgess
+     * @date 2020/1/8
+     * @param courseIds: 统计课程上的学生人数
+     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
+     */
+    List<Map<Integer, Integer>> countCourseStudentNum(@Param("courseIds") List<Long> courseIds);
 }

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -359,12 +359,20 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 
-        List dataList = null;
+        List<CourseScheduleDto> dataList = null;
         int count = courseScheduleDao.countCourseSchedulesWithDate(params);
         if (count > 0) {
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = courseScheduleDao.getCourseSchedulesWithDate(params);
+            List<Long> allCourseScheduleIds = dataList.stream().map(CourseScheduleDto::getId).collect(Collectors.toList());
+            List<Map<Integer, Integer>> courseStudentNumMaps = courseScheduleStudentPaymentDao.countCourseStudentNum(allCourseScheduleIds);
+            Map<Long, Long> courseStudentNumMap = MapUtil.convertIntegerMap(courseStudentNumMaps);
+
+            for (int i=0;i<dataList.size();i++) {
+                Long studentNum=courseStudentNumMap.get(dataList.get(i).getId());
+                dataList.get(i).setTotalStudentNum(Objects.isNull(studentNum)?0:studentNum.intValue());
+            }
         }
         if (count == 0) {
             dataList = new ArrayList<>();

+ 9 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -196,18 +196,18 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 					true,
 					courseSchedule.getSchoolId().intValue());
 		}
-		teacherAttendance.setSignInTime(date);
-		teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
-		teacherAttendance.setSignOutTime(date);
-		teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
-		teacherAttendance.setCurrentClassTimes(classTimes + 1);
-		if(yesOrNoEnum != YesOrNoEnum.YES && courseSchedule.getStartClassTime().before(date)){
-			teacherAttendance.setSignInStatus(YesOrNoEnum.NO);
-			teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);
-		}
 		if(Objects.nonNull(teacherAttendance.getId())){
 			teacherAttendanceDao.update(teacherAttendance);
 		}else{
+			teacherAttendance.setSignInTime(date);
+			teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
+			teacherAttendance.setSignOutTime(date);
+			teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
+			teacherAttendance.setCurrentClassTimes(classTimes + 1);
+			if(yesOrNoEnum != YesOrNoEnum.YES && courseSchedule.getStartClassTime().before(date)){
+				teacherAttendance.setSignInStatus(YesOrNoEnum.NO);
+				teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);
+			}
 			teacherAttendanceDao.insert(teacherAttendance);
 		}
 	}

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

@@ -1237,8 +1237,9 @@
             schoole_id_
         FROM course_schedule WHERE teacher_id_=#{teacherId} and CONCAT( class_date_, ' ', start_class_time_ ) between #{startTime} and #{endTime}
         <if test="type != null">
-        and type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+          and type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
+        ORDER BY CONCAT(class_date_,' ',start_class_time_)
     </select>
     <!-- 查找班级未开始的课程 -->
     <select id="findNoStartCoursesByClassGroupId" resultMap="CourseSchedule">

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

@@ -213,6 +213,19 @@
 		WHERE vg.status_ IN (2,4) AND cssp.group_type_ = 'VIP'
 		GROUP BY cssp.user_id_
 	</select>
+    <select id="countCourseStudentNum" resultType="java.util.Map">
+		SELECT
+			course_schedule_id_ AS 'key',
+			COUNT( DISTINCT user_id_ ) AS 'value'
+		FROM
+			course_schedule_student_payment
+		WHERE course_schedule_id_ IN
+			<foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
+				#{courseId}
+			</foreach>
+		GROUP BY
+			course_schedule_id_
+	</select>
 
     <delete id="deleteStudentCourseSchedule">
 		DELETE FROM course_schedule_student_payment WHERE user_id_ = #{userId} AND course_schedule_id_ IN

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -280,7 +280,7 @@ public class CourseScheduleController extends BaseController {
             return failed("用户信息获取失败");
         }
         Employee employee = employeeDao.get(sysUser.getId());
-        if(StringUtils.isEmpty(queryInfo.getOrganIdList())){
+        if(StringUtils.isEmpty(queryInfo.getOrganIdList())&&Objects.nonNull(employee)){
             queryInfo.setOrganIdList(employee.getOrganIdList());
         }
         return succeed(scheduleService.endFindCourseSchedules(queryInfo));

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/education/EducationCourseScheduleController.java

@@ -6,7 +6,6 @@ import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleService;
-import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
@@ -36,8 +35,6 @@ public class EducationCourseScheduleController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
-    private SysConfigService sysConfigService;
-    @Autowired
     private EmployeeDao employeeDao;
 
     @ApiOperation(value = "根据月份获取乐团在该月有课的日期")