Browse Source

Merge branch 'zx_online_update_1218' of http://git.dayaedu.com/yonge/cooleshow into feature/1219_opt

zouxuan 8 months ago
parent
commit
e375d76707

+ 4 - 11
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/CourseHomeworkController.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkSubmitDto;
 import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkSubmitDto;
 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.entity.StudentAttendance;
 import com.yonge.cooleshow.biz.dal.entity.StudentAttendance;
-import com.yonge.cooleshow.biz.dal.entity.TeacherAttendance;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.service.*;
@@ -23,8 +22,8 @@ import org.springframework.web.bind.annotation.*;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import javax.validation.Valid;
-import java.util.*;
-import java.util.stream.Collectors;
+import java.util.List;
+import java.util.Objects;
 
 
 /**
 /**
  * Description 学生课后作业相关接口
  * Description 学生课后作业相关接口
@@ -92,16 +91,10 @@ public class CourseHomeworkController extends BaseController {
     @ApiOperation(value = "课后作业-列表", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @ApiOperation(value = "课后作业-列表", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/list", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/list", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<PageInfo<CourseHomeworkVo>> list(@Valid @RequestBody HomeworkSearch query) {
     public HttpResponseResult<PageInfo<CourseHomeworkVo>> list(@Valid @RequestBody HomeworkSearch query) {
-        Long userId = sysUserService.getUserId();
         query.setDecorate(YesOrNoEnum.YES);
         query.setDecorate(YesOrNoEnum.YES);
-        query.setStudentId(userId);
+        query.setStudentId(sysUserService.getUserId());
+        query.setClientType("STUDENT");
         query.setCourseStatus(CourseScheduleEnum.COMPLETE);
         query.setCourseStatus(CourseScheduleEnum.COMPLETE);
-        List<CourseScheduleEnum> list = new ArrayList<>();
-        list.add(CourseScheduleEnum.PIANO_ROOM_CLASS);
-        list.add(CourseScheduleEnum.PRACTICE);
-        list.add(CourseScheduleEnum.VIP);
-        list.add(CourseScheduleEnum.GROUP);
-        query.setCourseType(list);
 
 
         IPage<CourseHomeworkVo> page = courseHomeworkService.selectPage(PageUtil.getPage(query), query);
         IPage<CourseHomeworkVo> page = courseHomeworkService.selectPage(PageUtil.getPage(query), query);
         List<CourseHomeworkVo> records = page.getRecords();
         List<CourseHomeworkVo> records = page.getRecords();

+ 2 - 6
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/CourseHomeworkController.java

@@ -62,6 +62,8 @@ public class CourseHomeworkController extends BaseController {
         List<CourseScheduleEnum> list = new ArrayList<>();
         List<CourseScheduleEnum> list = new ArrayList<>();
         list.add(CourseScheduleEnum.PIANO_ROOM_CLASS);
         list.add(CourseScheduleEnum.PIANO_ROOM_CLASS);
         list.add(CourseScheduleEnum.PRACTICE);
         list.add(CourseScheduleEnum.PRACTICE);
+        list.add(CourseScheduleEnum.VIP);
+        list.add(CourseScheduleEnum.GROUP);
         homeworkSearch.setCourseType(list);
         homeworkSearch.setCourseType(list);
         homeworkSearch.setDecorate(YesOrNoEnum.NO);
         homeworkSearch.setDecorate(YesOrNoEnum.NO);
         Integer integer = courseScheduleService.countTeacherNoDecorateHomework(homeworkSearch);
         Integer integer = courseScheduleService.countTeacherNoDecorateHomework(homeworkSearch);
@@ -139,12 +141,6 @@ public class CourseHomeworkController extends BaseController {
     public HttpResponseResult<PageInfo<CourseHomeworkVo>> list(@Valid @RequestBody HomeworkSearch query) {
     public HttpResponseResult<PageInfo<CourseHomeworkVo>> list(@Valid @RequestBody HomeworkSearch query) {
         query.setTeacherId(sysUserService.getUserId());
         query.setTeacherId(sysUserService.getUserId());
         query.setCourseStatus(CourseScheduleEnum.COMPLETE);
         query.setCourseStatus(CourseScheduleEnum.COMPLETE);
-        List<CourseScheduleEnum> list = new ArrayList<>();
-        list.add(CourseScheduleEnum.PIANO_ROOM_CLASS);
-        list.add(CourseScheduleEnum.PRACTICE);
-        list.add(CourseScheduleEnum.VIP);
-        list.add(CourseScheduleEnum.GROUP);
-        query.setCourseType(list);
         query.setClientType("TEACHER");
         query.setClientType("TEACHER");
 
 
         IPage<CourseHomeworkVo> page = courseHomeworkService.selectPage(PageUtil.getPage(query), query);
         IPage<CourseHomeworkVo> page = courseHomeworkService.selectPage(PageUtil.getPage(query), query);

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseGroupDao.java

@@ -276,5 +276,7 @@ public interface CourseGroupDao extends BaseMapper<CourseGroup> {
     void updateExposureNum(@Param("groupId") Long groupId, @Param("exposureNum") Integer exposureNum);
     void updateExposureNum(@Param("groupId") Long groupId, @Param("exposureNum") Integer exposureNum);
 
 
     int updateLockNum(@Param("groupId") Long groupId, @Param("num") int num);
     int updateLockNum(@Param("groupId") Long groupId, @Param("num") int num);
+
+    void updateCourseStartTime(@Param("groupId") Long groupId);
 }
 }
 
 

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

@@ -240,7 +240,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
     List<PianoClassVo> queryPianoClass(IPage page,@Param("param") MyCourseSearch search);
     List<PianoClassVo> queryPianoClass(IPage page,@Param("param") MyCourseSearch search);
 
 
     //查询待结算课程
     //查询待结算课程
-    List<UserAccountRecordDto> selectWaitCourse(String day);
+    List<UserAccountRecordDto> selectWaitCourse(@Param("day") String day, @Param("type") String type);
 
 
     /**
     /**
      * 查询课程数
      * 查询课程数

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

@@ -1501,6 +1501,18 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         List<Long> studentIds = studentPayments.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toList());
         List<Long> studentIds = studentPayments.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toList());
         this.batchCheckStudentCourseTime(studentIds, timeList, CourseTimeEntity::getStartTime, CourseTimeEntity::getEndTime);
         this.batchCheckStudentCourseTime(studentIds, timeList, CourseTimeEntity::getStartTime, CourseTimeEntity::getEndTime);
         baseMapper.courseAdjust(adjustVo);
         baseMapper.courseAdjust(adjustVo);
+        if(StringUtils.equals("GROUP",schedule.getType())){
+            //更新开课时间
+            courseGroupService.getDao().updateCourseStartTime(schedule.getCourseGroupId());
+            //更新课程课次
+            List<CourseSchedule> courseSchedules = this.lambdaQuery()
+                    .eq(CourseSchedule::getCourseGroupId, schedule.getCourseGroupId())
+                    .orderByAsc(CourseSchedule::getStartTime).list();
+            courseSchedules.forEach(courseSchedule1 -> {
+                courseSchedule1.setClassNum(courseSchedules.indexOf(courseSchedule1)+1);
+            });
+            this.updateBatchById(courseSchedules);
+        }
         // 课程调整后给学生发消息
         // 课程调整后给学生发消息
         sendCourseAdjustMessage(teacherId,studentIds,adjustVo.getCourseId(),adjustVo.getStartTime(),oldStartTime);
         sendCourseAdjustMessage(teacherId,studentIds,adjustVo.getCourseId(),adjustVo.getStartTime(),oldStartTime);
     }
     }
@@ -2119,12 +2131,28 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      */
      */
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public void teacherSalaryTask() {
     public void teacherSalaryTask() {
-        //课程结算日期(天)
-        Integer settlementDay = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.COURSE_SETTLEMENT_TIME_DAY));
+        //趣纠课
+        Integer practice = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.PRACTICE_ACCOUNT_PERIOD));
+        teacherSalary(practice, CourseScheduleEnum.PRACTICE.getCode());
+        // 直播课
+        Integer live = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.LIVE_ACCOUNT_PERIOD));
+        teacherSalary(live, CourseScheduleEnum.LIVE.getCode());
+        // 小组课
+        Integer group = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.GROUP_COURSE_ACCOUNT_PERIOD));
+        teacherSalary(group, CourseScheduleEnum.GROUP.getCode());
+        //vip课
+        Integer vipCourse = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.VIP_COURSE_ACCOUNT_PERIOD));
+        teacherSalary(vipCourse, CourseScheduleEnum.VIP.getCode());
+
+//        Integer settlementDay = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.PRACTICE_ACCOUNT_PERIOD));
+
+    }
+
+    private void teacherSalary(Integer settlementDay,String type) {
         //获取n天前日期
         //获取n天前日期
         String day = DateUtil.getDayAgoOrAftString(-settlementDay);
         String day = DateUtil.getDayAgoOrAftString(-settlementDay);
 
 
-        List<UserAccountRecordDto> list = baseMapper.selectWaitCourse(day);
+        List<UserAccountRecordDto> list = baseMapper.selectWaitCourse(day, type);
         if (CollectionUtils.isNotEmpty(list)) {
         if (CollectionUtils.isNotEmpty(list)) {
             for (UserAccountRecordDto dto : list) {
             for (UserAccountRecordDto dto : list) {
                 UserAccountRecordVo record = userAccountRecordService.detail(dto.getOrderNo(), dto.getBizType(), dto.getBizId());
                 UserAccountRecordVo record = userAccountRecordService.detail(dto.getOrderNo(), dto.getBizType(), dto.getBizId());
@@ -2139,7 +2167,6 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                     .set(CourseScheduleTeacherSalary::getSettlementTime, new Date())
                     .set(CourseScheduleTeacherSalary::getSettlementTime, new Date())
                     .in(CourseScheduleTeacherSalary::getCourseScheduleId, bizIds));
                     .in(CourseScheduleTeacherSalary::getCourseScheduleId, bizIds));
         }
         }
-
     }
     }
 
 
     /**
     /**

+ 4 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java

@@ -488,12 +488,11 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
 
 
                                 // 更新订单退款异常信息
                                 // 更新订单退款异常信息
                                 userPaymentOrderService.updateById(order);
                                 userPaymentOrderService.updateById(order);
-                                if (closeFlag) {
-                                    closeWaitOrder(paymentOrder);
-                                }
-
                             });
                             });
-                            throw new BizException("查询交易中,请耐心等待!");
+                            if (!closeFlag) {
+                                // 重新查询订单状态
+                                throw new BizException("查询交易中,请耐心等待!");
+                            }
                         }
                         }
                     }
                     }
                 } catch (Exception e) {
                 } catch (Exception e) {

+ 4 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -1126,4 +1126,8 @@
         set lock_num_ = lock_num_ + #{num}
         set lock_num_ = lock_num_ + #{num}
         where id_ = #{groupId} and lock_num_ + #{num} &lt;= max_student_num_ and lock_num_ + #{num} &gt;= 0
         where id_ = #{groupId} and lock_num_ + #{num} &lt;= max_student_num_ and lock_num_ + #{num} &gt;= 0
     </update>
     </update>
+    <update id="updateCourseStartTime">
+        update course_group set course_start_time_ =
+        (select MIN(start_time_) from course_schedule where course_group_id_ = #{groupId}) WHERE id_ = #{groupId}
+    </update>
 </mapper>
 </mapper>

+ 3 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -111,10 +111,10 @@
         left join course_schedule_student_payment cssp on cssp.course_id_ = cs.id_
         left join course_schedule_student_payment cssp on cssp.course_id_ = cs.id_
         left join student_course_homework sch  on sch.course_schedule_id_ = cssp.course_id_ and sch.student_id_ = cssp.user_id_
         left join student_course_homework sch  on sch.course_schedule_id_ = cssp.course_id_ and sch.student_id_ = cssp.user_id_
         <if test="param.search != null and param.search != ''">
         <if test="param.search != null and param.search != ''">
-            <if test="param.clientType == 'TEACHER'">
+            <if test="param.clientType == 'STUDENT'">
                 left join sys_user su on su.id_ = cs.teacher_id_
                 left join sys_user su on su.id_ = cs.teacher_id_
             </if>
             </if>
-            <if test="param.clientType == 'STUDENT'">
+            <if test="param.clientType == 'TEACHER'">
                 left join sys_user su on su.id_ = cssp.user_id_
                 left join sys_user su on su.id_ = cssp.user_id_
             </if>
             </if>
         </if>
         </if>
@@ -292,6 +292,7 @@
                 </foreach>
                 </foreach>
             </if>
             </if>
         </where>
         </where>
+        order by cssp.id_ DESC
     </select>
     </select>
 
 
 	<select id="selectSubjectAndGroupInfoList" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
 	<select id="selectSubjectAndGroupInfoList" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">

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

@@ -995,6 +995,7 @@
         WHERE ts.course_group_type_ = 'LIVE'
         WHERE ts.course_group_type_ = 'LIVE'
         AND ts.status_ = 'WAIT'
         AND ts.status_ = 'WAIT'
         <![CDATA[ AND DATE_FORMAT(ts.update_time_,'%Y-%m-%d') <= #{day}]]>
         <![CDATA[ AND DATE_FORMAT(ts.update_time_,'%Y-%m-%d') <= #{day}]]>
+        and ts.course_group_type_ = #{type}
         UNION
         UNION
         SELECT DISTINCT
         SELECT DISTINCT
             ts.teacher_id_ AS userId,
             ts.teacher_id_ AS userId,
@@ -1011,6 +1012,7 @@
         WHERE ts.course_group_type_ in ('PRACTICE','VIP','GROUP')
         WHERE ts.course_group_type_ in ('PRACTICE','VIP','GROUP')
         AND ts.status_ = 'WAIT'
         AND ts.status_ = 'WAIT'
         <![CDATA[ AND DATE_FORMAT(ts.update_time_,'%Y-%m-%d') <= #{day}]]>
         <![CDATA[ AND DATE_FORMAT(ts.update_time_,'%Y-%m-%d') <= #{day}]]>
+        and ts.course_group_type_ = #{type}
     </select>
     </select>
 
 
     <select id="selectStudentPianoCourse"
     <select id="selectStudentPianoCourse"