Переглянути джерело

Merge remote-tracking branch 'origin/master'

weifanli 3 роки тому
батько
коміт
fb51288d21

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

@@ -123,6 +123,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                 .ifPresent(sysUser -> {
                     result.setTeacherName(sysUser.getRealName());
                     result.setUserName(sysUser.getUsername());
+                    result.setAvatar(sysUser.getAvatar());
                 });
         Optional.ofNullable(group.getSubjectId()).map(subjectService::get)
                 .ifPresent(subject -> result.setSubjectName(subject.getName()));

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

@@ -242,7 +242,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         //根据firstDay计算出该月的最后一天
         LocalDate lastDay = firstDay.with(TemporalAdjusters.lastDayOfMonth());
         //获取老师的课程  key:日期-年月日 value:课程时间-开始时间,结束时间
-        Map<String, List<CourseTimeEntity>> nowCourseMap = getTeacherCourseTime(teacherId, firstDay.toString(), lastDay.toString());
+        Map<String, List<CourseTimeEntity>> nowCourseMap = getCourseListMap(getTeacherCourseTime(teacherId, firstDay.toString(), lastDay.toString()));
         //生成日历数据
         List<CourseCalendarEntity> courseCalendarEntities = generateCourseData(firstDay, lastDay, singleCourseMinutes, freeCourseMinutes);
         //对比课程数据,筛选出空余的课程时间
@@ -310,14 +310,16 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      * @param endDate   结束时间
      * @return key:日期-年月日 value:课程时间-开始时间,结束时间
      */
-    private Map<String, List<CourseTimeEntity>> getTeacherCourseTime(Long teacherId, String startDate, String endDate) {
+    private List<CourseSchedule> getTeacherCourseTime(Long teacherId, String startDate, String endDate) {
+        //未开始、进行中的课程
+        List<String> statusList = Lists.newArrayList(CourseScheduleEnum.NOT_START.getCode(), CourseScheduleEnum.ING.getCode());
         //查询该老师指定时间段的课程
-        List<CourseSchedule> courseList = this.list(Wrappers.<CourseSchedule>lambdaQuery()
+        return this.list(Wrappers.<CourseSchedule>lambdaQuery()
                 .eq(CourseSchedule::getTeacherId, teacherId)
+                .in(CourseSchedule::getStatus, statusList)
                 .ge(CourseSchedule::getClassDate, startDate)
                 .le(CourseSchedule::getClassDate, endDate)
         );
-        return getCourseListMap(courseList);
     }
 
     /**
@@ -533,24 +535,17 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      * @param studentId 学员id
      */
     private Map<String, List<CourseTimeEntity>> getAllPracticeCourseTime(Long teacherId, Long studentId, String startDate, String endDate) {
-        //未开始、进行中的课程
-        List<String> statusList = Lists.newArrayList(CourseScheduleEnum.NOT_START.getCode(), CourseScheduleEnum.ING.getCode());
-        //查询该老师指定时间段的课程
-        List<CourseSchedule> courseList = this.list(Wrappers.<CourseSchedule>lambdaQuery()
-                .eq(CourseSchedule::getTeacherId, teacherId)
-                .in(CourseSchedule::getStatus, statusList)
-                .ge(CourseSchedule::getClassDate, startDate)
-                .le(CourseSchedule::getClassDate, endDate)
-        );
+        //获取老师的课程时间数据
+        List<CourseSchedule> courseList = getTeacherCourseTime(teacherId, startDate, endDate);
         if (CollectionUtils.isEmpty(courseList)) {
             courseList = new ArrayList<>();
         }
-        //查询学生的课程
+        //查询学生的课程;
         Map<String, Object> param = new HashMap<>();
         param.put("studentId", studentId);
         param.put("startClassDate", startDate);
         param.put("endClassDate", endDate);
-        param.put("statusList", statusList);
+        param.put("statusList", Lists.newArrayList(CourseScheduleEnum.NOT_START.getCode(), CourseScheduleEnum.ING.getCode()));
         List<CourseSchedule> studentCourse = baseMapper.queryStudentCourse(param);
         //将数据合并
         if (CollectionUtils.isNotEmpty(studentCourse)) {
@@ -1116,30 +1111,30 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                 Map<Long, String> teacherSms = new HashMap<>();
                 teacherSms.put(sysUser.getId(), sysUser.getPhone());
 
-                Integer liveCount=0;
-                Integer practiceCount=0;
-                List<CountVo> typeCount=baseMapper.selectTypeCount(sysUser.getId(),tomorrow);
+                Integer liveCount = 0;
+                Integer practiceCount = 0;
+                List<CountVo> typeCount = baseMapper.selectTypeCount(sysUser.getId(), tomorrow);
                 for (CountVo countVo : typeCount) {
                     if (countVo.getType().equals(CourseScheduleEnum.LIVE.getCode())) {
-                        liveCount=countVo.getCount();
+                        liveCount = countVo.getCount();
                     }
                     if (countVo.getType().equals(CourseScheduleEnum.PRACTICE.getCode())) {
-                        practiceCount=countVo.getCount();
+                        practiceCount = countVo.getCount();
                     }
                 }
 
                 //老师端-明日课程提醒
-                String teacherUrl = sysMessageService.selectConfigUrl(MessageTypeEnum.SMS_TOMORROW_COURSE_REMINDER.getCode());
+                String teacherUrl = sysMessageService.selectConfigUrl(MessageTypeEnum.TOMORROW_COURSE_REMINDER.getCode());
                 sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TOMORROW_COURSE_REMINDER,
                         teacherReceivers, null, 0, null, ClientEnum.TEACHER.getCode(),
-                        practiceCount.toString(),liveCount.toString(),teacherUrl);
-                log.info("send success {}",MessageTypeEnum.TOMORROW_COURSE_REMINDER);
+                        practiceCount.toString(), liveCount.toString(), teacherUrl);
+                log.info("send success {}", MessageTypeEnum.TOMORROW_COURSE_REMINDER);
 
                 //老师端-明日课程提醒(短信)
                 sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_TOMORROW_COURSE_REMINDER,
                         teacherSms, null, 0, null, null,
                         practiceCount, liveCount);
-                log.info("send success {}",MessageTypeEnum.SMS_STUDENT_BUY_PRACTICE);
+                log.info("send success {}", MessageTypeEnum.SMS_STUDENT_BUY_PRACTICE);
             }
         }
     }

+ 38 - 38
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonPurchaseRecordServiceImpl.java

@@ -90,12 +90,12 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         }
 
         //校验课程是否购买
-        VideoLessonPurchaseRecord isAlreadyBuy = videoLessonPurchaseRecordDao.selectOne(Wrappers.<VideoLessonPurchaseRecord>lambdaQuery()
-                .eq(VideoLessonPurchaseRecord::getStudentId, studentId)
-                .eq(VideoLessonPurchaseRecord::getVideoLessonGroupId, groupId));
-        if (!ObjectUtil.isEmpty(isAlreadyBuy)) {
-            throw new BizException("已购买过该课程");
-        }
+//        VideoLessonPurchaseRecord isAlreadyBuy = videoLessonPurchaseRecordDao.selectOne(Wrappers.<VideoLessonPurchaseRecord>lambdaQuery()
+//                .eq(VideoLessonPurchaseRecord::getStudentId, studentId)
+//                .eq(VideoLessonPurchaseRecord::getVideoLessonGroupId, groupId));
+//        if (!ObjectUtil.isEmpty(isAlreadyBuy)) {
+//            throw new BizException("已购买过该课程");
+//        }
 
         purchaseRecord.setOrderNo(orderNo);
         purchaseRecord.setStudentId(studentId);
@@ -107,7 +107,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         OrderCreateRes orderCreateRes = new OrderCreateRes();
         orderCreateRes.setRes(true);
         orderCreateRes.setMerchId(lessonGroup.getTeacherId());
-        orderCreateRes.setBizId(orderReqInfo.getCouponId());
+        orderCreateRes.setBizId(groupId);
         orderCreateRes.setOriginalPrice(lessonGroup.getLessonPrice());//原价
         orderCreateRes.setExpectPrice(lessonGroup.getLessonPrice());//预计价格
         orderCreateRes.setActualPrice(purchaseRecord.getPayMoney());//实际价格
@@ -142,7 +142,7 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
             throw new BizException("订单不存在!");
         }
         //修改支付状态
-        videoLessonPurchaseRecordDao.updateStatus(orderNo, userOrder.getStatus().getCode());
+        videoLessonPurchaseRecordDao.updateStatus(orderNo, OrderStatusEnum.PAID.getCode());
 
         //查询直播课服务费
         String videoServiceRateStr = sysConfigService.findConfigValue(SysConfigConstant.VIDEO_LESSON_SERVICE_FEE);
@@ -170,6 +170,36 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
     }
 
     /**
+     * @Description: 购买视频课-失败-回调
+     * @Author: cy
+     * @Date: 2022/4/24
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void buyVideoCourseFailed(UserOrderDetailVo orderParam) {
+        String orderNo = orderParam.getOrderNo();
+
+        VideoLessonPurchaseRecord videoGroup = videoLessonPurchaseRecordDao.selectOne(Wrappers.<VideoLessonPurchaseRecord>lambdaQuery()
+                .eq(VideoLessonPurchaseRecord::getOrderNo, orderNo));
+        if (videoGroup == null) {
+            throw new BizException("课程组不存在!");
+        }
+
+        //删除video_lesson_purchase_record数据
+        videoLessonPurchaseRecordDao.delete(Wrappers.<VideoLessonPurchaseRecord>lambdaQuery()
+                .eq(VideoLessonPurchaseRecord::getOrderNo, orderNo));
+        log.info("buyVideoCourseFailed ok");
+    }
+
+    /**
+     * 获取用户信息
+     */
+    private SysUser getSysUser(Long userId) {
+        return Optional.ofNullable(userId)
+                .map(sysUserFeignService::queryUserById)
+                .orElseThrow(() -> new BizException("用户不存在"));
+    }
+
+    /**
      * @Description: 购买视频课消息推送
      * @Author: cy
      * @Date: 2022/5/6
@@ -221,34 +251,4 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
             e.printStackTrace();
         }
     }
-
-    /**
-     * @Description: 购买视频课-失败-回调
-     * @Author: cy
-     * @Date: 2022/4/24
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void buyVideoCourseFailed(UserOrderDetailVo orderParam) {
-        String orderNo = orderParam.getOrderNo();
-
-        VideoLessonPurchaseRecord videoGroup = videoLessonPurchaseRecordDao.selectOne(Wrappers.<VideoLessonPurchaseRecord>lambdaQuery()
-                .eq(VideoLessonPurchaseRecord::getOrderNo, orderNo));
-        if (videoGroup == null) {
-            throw new BizException("课程组不存在!");
-        }
-
-        //删除video_lesson_purchase_record数据
-        videoLessonPurchaseRecordDao.delete(Wrappers.<VideoLessonPurchaseRecord>lambdaQuery()
-                .eq(VideoLessonPurchaseRecord::getOrderNo, orderNo));
-        log.info("buyVideoCourseFailed ok");
-    }
-
-    /**
-     * 获取用户信息
-     */
-    private SysUser getSysUser(Long userId) {
-        return Optional.ofNullable(userId)
-                .map(sysUserFeignService::queryUserById)
-                .orElseThrow(() -> new BizException("用户不存在"));
-    }
 }

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonPurchaseVo.java

@@ -18,6 +18,8 @@ public class VideoLessonPurchaseVo extends BaseEntity {
 
     private String realName;
 
+    private String phone;
+
     @ApiModelProperty(value = "支付金额")
     private String payMoney;
 
@@ -27,6 +29,14 @@ public class VideoLessonPurchaseVo extends BaseEntity {
     @ApiModelProperty(value = "购买时间")
     private String purchaseTime;
 
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
     public String getRealName() {
         return realName;
     }

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml

@@ -92,12 +92,14 @@
 	<select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupVo">
 		SELECT
 			<include refid="baseColumns"/>
+			b.name_ AS lessonSubjectName,
 			s.username_ AS username,
 			s.avatar_ AS avatar,
 		    s.real_name_ AS realName,
 			(SELECT COUNT(1) FROM video_lesson_purchase_record r WHERE r.video_lesson_group_id_=g.id_ AND r.order_status_='PAID') AS countStudent
 		FROM video_lesson_group g
 		LEFT JOIN sys_user s ON g.teacher_id_ = s.id_
+		LEFT JOIN `subject` b ON g.lesson_subject_=b.id_
 		<where>
 			<if test="param.auditStatus !=null">
 				AND g.audit_status_ = #{param.auditStatus}
@@ -190,6 +192,7 @@
 			p.student_id_ AS studentId,
 			u.username_ AS username,
 			u.real_name_ AS realName,
+		    u.phone_ AS phone,
 			p.pay_money_ AS payMoney,
 			p.order_no_ AS orderNo,
 			o.pay_time_ AS purchaseTime