Pārlūkot izejas kodu

陪练课定时任务记录结课流水

cy 3 gadi atpakaļ
vecāks
revīzija
b26430bc10

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

@@ -14,6 +14,7 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.*;
 import com.yonge.cooleshow.biz.dal.dto.PracticeScheduleDto;
+import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
@@ -44,9 +45,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.script.ScriptEngine;
-import javax.script.ScriptEngineManager;
-import javax.script.ScriptException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
@@ -108,6 +106,8 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
     private ImGroupService imGroupService;
     @Autowired
     private ImUserFriendService imUserFriendService;
+    @Autowired
+    private UserAccountService userAccountService;
 
     @Override
     public CourseScheduleDao getDao() {
@@ -1535,11 +1535,31 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         List<CourseScheduleStudentVo> userList = paymentDao.selectUser();
         if (CollectionUtils.isNotEmpty(userList)) {
             List<CourseScheduleStudentVo> practiceList = userList.stream().filter(s -> s.getType().equals(CourseScheduleEnum.PRACTICE.getCode())).collect(Collectors.toList());
-            if (CollectionUtils.isNotEmpty(practiceList)) {//添加陪练课评论
+            if (CollectionUtils.isNotEmpty(practiceList)) {//陪练课
+                //创建课程评论
                 repliedDao.insertBatch(practiceList);
+
+                //老师课酬状态改为已完成
+                courseScheduleTeacherSalaryService.update(null, Wrappers.<CourseScheduleTeacherSalary>lambdaUpdate()
+                        .set(CourseScheduleTeacherSalary::getStatus, CourseScheduleEnum.COMPLETE.getCode())
+                        .set(CourseScheduleTeacherSalary::getSettlementTime, new Date())
+                        .in(CourseScheduleTeacherSalary::getCourseGroupId, practiceList.stream().map(CourseScheduleStudentVo::getCourseId).collect(Collectors.toList())));
+
+                //获取教师课酬写入到金额变更表
+                for (CourseScheduleStudentVo practice : practiceList) {
+                    UserAccountRecordDto userAccountRecord = new UserAccountRecordDto();
+                    userAccountRecord.setUserId(practice.getTeacherId());//老师id
+                    userAccountRecord.setInOrOut(InOrOutEnum.IN);
+                    userAccountRecord.setBizType(AccountBizTypeEnum.PRACTICE);
+                    userAccountRecord.setBizId(practice.getCourseId());//课程id
+                    userAccountRecord.setBizName(practice.getGroupName());//课程名称
+                    userAccountRecord.setTransAmount(practice.getActualSalary());//扣除手续费后所得金额
+                    userAccountRecord.setOrderNo(practice.getOrderNo());
+                    userAccountService.accountChange(userAccountRecord);
+                }
             }
 
-            //更新学生最近结课时间
+            //更新琴房课学生最近结课时间
             List<CourseScheduleStudentVo> pianoUserList = userList.stream().filter((CourseScheduleStudentVo s) -> s.getType().equals(CourseScheduleEnum.PIANO_ROOM_CLASS.getCode())).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(pianoUserList)) {
                 pianoRoomTimeDao.updateEndTime(pianoUserList);
@@ -1666,11 +1686,11 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         List<CourseTimeEntity> timeList = arrangeCourseVo.getTimeList();//选课时间
         Integer consumeTime = arrangeCourseVo.getConsumeTime();
 
-        log.info("classNum:"+classNum);
-        log.info("singleClssTime:"+singleClssTime);
-        log.info("n:"+n);
-        log.info("消耗时长:"+consumTime);
-        log.info("传入时长:"+consumeTime);
+        log.info("classNum:" + classNum);
+        log.info("singleClssTime:" + singleClssTime);
+        log.info("n:" + n);
+        log.info("消耗时长:" + consumTime);
+        log.info("传入时长:" + consumeTime);
 
         Integer configValue = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.PIANO_ROOM_MAX_STUDENTS));
         if (studentIds.size() > configValue) {

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomServiceImpl.java

@@ -328,7 +328,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
                 userAccountRecord.setBizType(AccountBizTypeEnum.LIVE);
                 userAccountRecord.setBizId(room.getCourseId());
                 userAccountRecord.setBizName(room.getRoomTitle());
-                userAccountRecord.setTransAmount(salary.getExpectSalary());//扣除手续费后所得金额
+                userAccountRecord.setTransAmount(salary.getActualSalary());//扣除手续费后所得金额
                 userAccountRecord.setOrderNo(payment.getOrderNo());
                 userAccountService.accountChange(userAccountRecord);
             }

+ 34 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseScheduleStudentVo.java

@@ -1,11 +1,10 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -35,6 +34,39 @@ public class CourseScheduleStudentVo implements Serializable {
     @ApiModelProperty(value = "课程类型")
     private String type;
 
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "课程名称")
+    private String groupName;
+
+    @ApiModelProperty(value = "实际薪水")
+    private BigDecimal actualSalary;
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public BigDecimal getActualSalary() {
+        return actualSalary;
+    }
+
+    public void setActualSalary(BigDecimal actualSalary) {
+        this.actualSalary = actualSalary;
+    }
+
     public Long getCourseGroupId() {
         return courseGroupId;
     }

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

@@ -155,9 +155,14 @@
             p.user_id_ AS studentId,
             c.end_time_ AS endTime,
             c.single_course_time_ AS singleCourseTime,
-            c.type_ AS type
+            c.type_ AS type,
+            p.order_no_ AS orderNo,
+            s.actual_salary_ AS actualSalary,
+            g.name_ AS groupName
         FROM course_schedule c
         LEFT JOIN course_schedule_student_payment p ON c.id_ = p.course_id_
+        LEFT JOIN course_schedule_teacher_salary s ON c.id_ = s.course_schedule_id_
+        LEFT JOIN course_group g ON c.course_group_id_ = g.id_
         WHERE c.lock_ = 0
         AND c.status_ IN ('ING','NOT_START')
         AND NOW() &gt;= c.end_time_