فهرست منبع

修改课程定时任务

cy 3 سال پیش
والد
کامیت
f810a59954

+ 2 - 2
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/TeacherFeignService.java

@@ -47,6 +47,6 @@ public interface TeacherFeignService {
      * @Author: cy
      * @Date: 2022/5/24
      */
-//    @GetMapping("/task/teacherSalary")
-//    HttpResponseResult<Object> teacherSalary();
+    @GetMapping("/task/teacherSalary")
+    HttpResponseResult<Object> teacherSalary();
 }

+ 4 - 4
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/TeacherFeignServiceFallback.java

@@ -27,8 +27,8 @@ public class TeacherFeignServiceFallback implements TeacherFeignService {
         return null;
     }
 
-//    @Override
-//    public HttpResponseResult<Object> teacherSalary() {
-//        return null;
-//    }
+    @Override
+    public HttpResponseResult<Object> teacherSalary() {
+        return null;
+    }
 }

+ 22 - 22
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/TeacherSalaryTask.java

@@ -1,22 +1,22 @@
-//package com.yonge.cooleshow.task.jobs;
-//
-//import com.yonge.cooleshow.api.feign.TeacherFeignService;
-//import com.yonge.cooleshow.task.core.BaseTask;
-//import com.yonge.cooleshow.task.core.TaskException;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.stereotype.Service;
-//
-///**
-// * @Author: cy
-// * @Date: 2022/5/24
-// */
-//@Service
-//public class TeacherSalaryTask extends BaseTask {
-//    @Autowired
-//    private TeacherFeignService teacherFeignService;
-//
-//    @Override
-//    public void execute() throws TaskException {
-//        teacherFeignService.teacherSalary();
-//    }
-//}
+package com.yonge.cooleshow.task.jobs;
+
+import com.yonge.cooleshow.api.feign.TeacherFeignService;
+import com.yonge.cooleshow.task.core.BaseTask;
+import com.yonge.cooleshow.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: cy
+ * @Date: 2022/5/24
+ */
+@Service
+public class TeacherSalaryTask extends BaseTask {
+    @Autowired
+    private TeacherFeignService teacherFeignService;
+
+    @Override
+    public void execute() throws TaskException {
+        teacherFeignService.teacherSalary();
+    }
+}

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.PracticeScheduleDto;
+import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.PracticeTeacherSearch;
@@ -231,4 +232,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
 
     //查琴房课列表
     List<PianoClassVo> queryPianoClass(IPage page,@Param("param") MyCourseSearch search);
+
+    //查询待结算课程
+    List<UserAccountRecordDto> selectWaitCourse(String day);
 }

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java

@@ -236,6 +236,8 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
 
     void scheduleTask();
 
+    void teacherSalaryTask();
+
     PianoRoomTimeVo selectRemainTime(Long teacherId);
 
     PageInfo<CourseStudentVo> selectStudent(Map<String, Object> param);

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

@@ -1619,18 +1619,12 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
 
                 //老师课酬状态改为已完成
                 courseScheduleTeacherSalaryService.update(null, Wrappers.<CourseScheduleTeacherSalary>lambdaUpdate()
-                        .set(CourseScheduleTeacherSalary::getStatus, CourseScheduleEnum.COMPLETE.getCode())
+                        .set(CourseScheduleTeacherSalary::getStatus, TeacherSalaryEnum.WAIT.getCode())
                         .set(CourseScheduleTeacherSalary::getSettlementTime, new Date())
                         .in(CourseScheduleTeacherSalary::getCourseScheduleId, practiceList.stream().map(CourseScheduleStudentVo::getCourseId).collect(Collectors.toList())));
 
-                //获取教师课酬写入到金额变更表
+                //清除缓存
                 for (CourseScheduleStudentVo practice : practiceList) {
-                    userAccountService.accountChange(
-                            new UserAccountRecordDto(practice.getTeacherId(), practice.getActualSalary()
-                                    , InOrOutEnum.IN, AccountBizTypeEnum.PRACTICE, practice.getCourseId(),
-                                    practice.getGroupName(), practice.getOrderNo())
-                    );
-
                     //清除学生统计缓存
                     redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(practice.getStudentId())).delete();
                     //清除老师统计缓存
@@ -1698,17 +1692,20 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      * @Author: cy
      * @Date: 2022/5/24
      */
-//    @Transactional(rollbackFor = Exception.class)
-//    public void teacherSalaryTask() {
-//        //课程结算日期(天)
-//        Integer settlementDay = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.COURSE_SALARY_SETTLEMENT_DAY));
-//        //获取n天前日期
-//        String day = DateUtil.getDayAgoOrAftString(-settlementDay);
-//        //获取小于n天前所有课程id
-//        List<Long> idList = baseMapper.selectIdList(day);
-//        //更新老师课酬表
-//        baseMapper.updateTeacherSalary(idList);
-//    }
+    @Transactional(rollbackFor = Exception.class)
+    public void teacherSalaryTask() {
+        //课程结算日期(天)
+        Integer settlementDay = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.COURSE_SALARY_SETTLEMENT_DAY));
+        //获取n天前日期
+        String day = DateUtil.getDayAgoOrAftString(-settlementDay);
+
+        List<UserAccountRecordDto> list = baseMapper.selectWaitCourse(day);
+        if (CollectionUtils.isNotEmpty(list)){
+            for (UserAccountRecordDto dto : list) {
+                userAccountService.accountChange(dto);
+            }
+        }
+    }
 
     /**
      * @Description: 查询琴房剩余时长、冻结时长、统计学员人数

+ 33 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -877,4 +877,37 @@
             <![CDATA[ AND s.class_date_ <= #{param.endDate} ]]>
         </if>
     </select>
+    <select id="selectWaitCourse" resultType="com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto">
+        SELECT DISTINCT
+            ts.teacher_id_ AS teacherId,
+            ts.actual_salary_ AS transAmount,
+            ts.course_group_type_ AS bizType,
+            ts.course_schedule_id_ AS bizId,
+            lr.room_title_ AS bizName,
+            'IN' AS inOrOut,
+            sp.order_no_ AS orderNo,
+            ts.update_time_ AS updateTime
+        FROM course_schedule_teacher_salary ts
+        LEFT JOIN live_room lr ON ts.course_schedule_id_ = lr.course_id_
+        LEFT JOIN course_schedule_student_payment sp ON ts.course_schedule_id_ = sp.course_id_
+        WHERE ts.course_group_type_ = 'LIVE'
+        AND ts.status_ = 'WAIT'
+        <![CDATA[ AND ts.update_time_ >= #{day}]]>
+        UNION
+        SELECT DISTINCT
+            ts.teacher_id_ AS teacherId,
+            ts.actual_salary_ AS transAmount,
+            ts.course_group_type_ AS bizType,
+            ts.course_schedule_id_ AS bizId,
+            g.name_ AS bizName,
+            'IN' AS inOrOut,
+            sp.order_no_ AS orderNo,
+            ts.update_time_ AS updateTime
+        FROM course_schedule_teacher_salary ts
+        LEFT JOIN course_group g ON ts.course_group_id_ = g.id_
+        LEFT JOIN course_schedule_student_payment sp ON ts.course_schedule_id_ = sp.course_id_
+        WHERE ts.course_group_type_ = 'PRACTICE'
+        AND ts.status_ = 'WAIT'
+        <![CDATA[ AND ts.update_time_ >= #{day}]]>
+    </select>
 </mapper>

+ 5 - 5
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/task/TaskController.java

@@ -68,9 +68,9 @@ public class TaskController extends BaseController {
         return HttpResponseResult.succeed();
     }
 
-//    @GetMapping("/teacherSalary")
-//    public HttpResponseResult<Object> teacherSalary() {
-//        scheduleService.teacherSalaryTask();
-//        return HttpResponseResult.succeed();
-//    }
+    @GetMapping("/teacherSalary")
+    public HttpResponseResult<Object> teacherSalary() {
+        scheduleService.teacherSalaryTask();
+        return HttpResponseResult.succeed();
+    }
 }