Browse Source

bug处理

cy 3 years ago
parent
commit
90aef78ef8

+ 14 - 22
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -1534,7 +1534,6 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                 repliedDao.insertBatch(practiceList);
             }
 
-
             //更新学生最近结课时间
             List<CourseScheduleStudentVo> pianoUserList = userList.stream().filter((CourseScheduleStudentVo s) -> s.getType().equals(CourseScheduleEnum.PIANO_ROOM_CLASS.getCode())).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(pianoUserList)) {
@@ -1578,23 +1577,14 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         //查完完成的课程
         List<CourseCompleteVo> completeList = baseMapper.selectComplete();
         if (CollectionUtils.isNotEmpty(completeList)) {
-            List<Long> gids = completeList.stream().map(CourseCompleteVo::getCourseGroupId).collect(Collectors.toList());
-            List<CourseGroup> courseGroups = courseGroupService.getDao().selectList(Wrappers.<CourseGroup>lambdaQuery().in(CourseGroup::getId, gids));
-            if (CollectionUtils.isNotEmpty(courseGroups)) {
-                List<Long> ids = new ArrayList<>();
-                for (CourseGroup group : courseGroups) {
-                    for (CourseCompleteVo complete : completeList) {
-                        Integer courseNum = group.getCourseNum();
-                        Integer completeCount = complete.getCourseCount();
-                        if (courseNum.equals(completeCount)) {
-                            ids.add(complete.getCourseGroupId());
-                        }
-                    }
-                }
-                if (CollectionUtils.isNotEmpty(ids)) {
-                    //同步课程组状态
-                    courseGroupService.getDao().updateBatch(ids);
-                }
+            List<Long> ids = completeList.stream().filter(s -> {
+                return s.getCourseCount().equals(s.getCourseNum());
+            }).map(s -> {
+                return s.getId();
+            }).collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(ids)) {
+                //同步课程组状态
+                courseGroupService.getDao().updateBatch(ids);
             }
         }
     }
@@ -2031,9 +2021,12 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         Integer frozenTime = pianoRoomTime.getFrozenTime();
         Integer remainTime = pianoRoomTime.getRemainTime();
 
+        String formula = sysConfigService.findConfigValue(SysConfigConstant.PIANO_ROOM_TIME_FORMULA);
+
         int i = studentIds.size() - paymentList.size();//新人数-原人数
         if (i > 0) {//加人,扣时长
-            int courseTime = singleCourseTime * i;
+            Integer n = (Integer) WrapperUtil.strToFormula(formula, "n", String.valueOf(i + 1));
+            int courseTime = singleCourseTime * n;
             if (remainTime - courseTime < 0) {
                 throw new BizException("剩余时长不足");
             }
@@ -2043,7 +2036,8 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                     .set(PianoRoomTime::getFrozenTime, frozenTime + courseTime));
         }
         if (i < 0) {//减人,释放时长
-            int courseTime = singleCourseTime * (-i);
+            Integer n = (Integer) WrapperUtil.strToFormula(formula, "n", String.valueOf(-i + 1));
+            int courseTime = singleCourseTime * n;
             pianoRoomTimeDao.update(null, Wrappers.<PianoRoomTime>lambdaUpdate()
                     .eq(PianoRoomTime::getTeacherId, teacherId)
                     .set(PianoRoomTime::getRemainTime, remainTime + courseTime)
@@ -2057,8 +2051,6 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         courseTime.setStartTime(courseSchedule.getStartTime());
         courseTime.setEndTime(courseSchedule.getEndTime());
         List<CourseTimeEntity> timeList = Arrays.asList(courseTime);
-        //批量检查老师课时在数据库是否重复
-//        this.batchCheckTeacherCourseTime(teacherId, timeList, CourseTimeEntity::getStartTime, CourseTimeEntity::getEndTime);
 
         List<CourseScheduleStudentPayment> payments = new ArrayList<>();
         for (Long studentId : studentIds) {

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseCompleteVo.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
+import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -10,7 +11,7 @@ import java.io.Serializable;
  * @Date: 2022/5/30
  */
 @ApiModel
-public class CourseCompleteVo implements Serializable {
+public class CourseCompleteVo extends CourseGroup {
     @ApiModelProperty("课程组id")
     private Long courseGroupId;
     @ApiModelProperty("已完成课时数")

+ 6 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -802,7 +802,12 @@
         SELECT id_ FROM course_schedule WHERE lock_=0 AND class_date_ &lt;= #{day}
     </select>
     <select id="selectComplete" resultType="com.yonge.cooleshow.biz.dal.vo.CourseCompleteVo">
-        SELECT course_group_id_ AS courseGroupId ,COUNT(1) AS courseCount  FROM course_schedule WHERE lock_=0 AND status_='COMPLETE' GROUP BY course_group_id_
+        SELECT *
+        FROM (
+            SELECT course_group_id_ AS courseGroupId ,COUNT(1) AS courseCount
+            FROM course_schedule
+            WHERE lock_=0 AND status_='COMPLETE' GROUP BY course_group_id_) a
+        LEFT JOIN course_group g ON g.id_=a.courseGroupId
     </select>
     <update id="updateStartTime">
         UPDATE course_schedule SET status_='ING' WHERE id_ IN(

+ 2 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseScheduleController.java

@@ -162,7 +162,8 @@ public class TeacherCourseScheduleController extends BaseController {
 //        courseScheduleService.scheduleTask();
 //        return succeed(courseScheduleService.getTeacherId(amount));
 //        courseScheduleService.scheduleTask();
-        courseScheduleService.teacherSalaryTask();
+//        courseScheduleService.teacherSalaryTask();
+        courseScheduleService.scheduleTask();
         return succeed();
     }