Browse Source

提交:BUG处理

yangdamao 3 years ago
parent
commit
c90a60207a

+ 10 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/DateUtils.java

@@ -106,6 +106,16 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         return DateFormatUtils.format(date, "yyyy/MM/dd");
     }
 
+    public static String timestampToDateFormat(Long times,String patternStr){
+        if(Validator.isEmpty(times)){
+            return "";
+        }
+        long t = times.longValue();
+        t = t * 1000;
+        Date date = new Date(t);
+        return DateFormatUtils.format(date, patternStr);
+    }
+
     public static String timestampToDate(Long times){
         if(Validator.isEmpty(times)){
             return "";

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CheckSectionWatchVo.java

@@ -43,4 +43,16 @@ public class CheckSectionWatchVo implements Serializable {
 
     @ApiModelProperty("商品状态:1上架 0未上架")
     private Integer goodsStatus;
+
+    @ApiModelProperty("校验状态:0无权限,1有权限")
+    private Integer checkStatus;
+
+    @ApiModelProperty("校验结果")
+    private String checkMsg;
+
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+
+    @ApiModelProperty("节类型 1录播 2直播 3回放")
+    private Integer sectionType;
 }

+ 8 - 10
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseStatementVo.java

@@ -3,6 +3,7 @@ package com.zhongzheng.modules.course.bo;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.zhongzheng.common.annotation.Excel;
+import com.zhongzheng.common.utils.DateUtils;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -44,23 +45,23 @@ public class CourseStatementVo implements Serializable {
 
     @ApiModelProperty("观看人数")
     @Excel(name = "观看人数")
-    private Integer watchNumber;
+    private Integer watchNumber = 0;
 
     @ApiModelProperty("开通课程人数")
     @Excel(name = "开通课程人数")
-    private Integer buyCourseNumber;
+    private Integer buyCourseNumber = 0;
 
     @ApiModelProperty("未通课程人数")
     @Excel(name = "未通课程人数")
-    private Integer unBuyCourseNumber;
+    private Integer unBuyCourseNumber = 0;
 
     @ApiModelProperty("小程序观看人数")
     @Excel(name = "小程序观看人数")
-    private Integer appWatchNumber;
+    private Integer appWatchNumber = 0;
 
     @ApiModelProperty("后台观看人数")
     @Excel(name = "后台观看人数")
-    private Integer adminWatchNumber;
+    private Integer adminWatchNumber = 0;
 
     @ApiModelProperty("频道的观看页状态,取值为:live(直播中)、end(直播结束)、playback(回放中)、waiting(等待直播)")
     private String watchStatus;
@@ -78,11 +79,8 @@ public class CourseStatementVo implements Serializable {
         if (ObjectUtils.isNull(vo)){
             return new CourseStatementVo();
         }
-        SimpleDateFormat sfl = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        Date statusDate = new Date(vo.getLiveStartTime());
-        Date endDate = new Date(vo.getLiveEndTime());
-        vo.setLiveStartTimeStr(ObjectUtils.isNotNull(vo.getLiveStartTime())?sfl.format(statusDate):"");
-        vo.setLiveEndTimeStr(ObjectUtils.isNotNull(vo.getLiveEndTime())?sfl.format(endDate):"");
+        vo.setLiveStartTimeStr(ObjectUtils.isNotNull(vo.getLiveStartTime())? DateUtils.timestampToDateFormat(vo.getLiveStartTime(),"yyyy-MM-dd HH:mm:ss"):"");
+        vo.setLiveEndTimeStr(ObjectUtils.isNotNull(vo.getLiveEndTime())? DateUtils.timestampToDateFormat(vo.getLiveEndTime(),"yyyy-MM-dd HH:mm:ss"):"");
         if (StringUtils.isNotBlank(vo.getWatchStatus())){
             switch (vo.getWatchStatus()){
                 case "live":vo.setWatchStatusStr("直播中");

+ 15 - 8
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSectionWatchPerServiceImpl.java

@@ -96,18 +96,19 @@ public class CourseSectionWatchPerServiceImpl extends ServiceImpl<CourseSectionW
     public CheckSectionWatchVo checkSectionWatchPer(SectionWatchQueryBo bo) {
         //校验商品有效期
         Goods goods = goodsService.getById(bo.getGoodsId());
-        if (ObjectUtils.isNotNull(goods.getValidityStartTime()) && ObjectUtils.isNotNull(goods.getValidityEndTime())){
-            Long validityStartTime = goods.getValidityStartTime();
-            Long validityEndTime = goods.getValidityEndTime();
-            if (System.currentTimeMillis() < validityStartTime || System.currentTimeMillis() > validityEndTime){
-                throw new CustomException("该商品不在有效期");
-            }
-        }
+//        if (ObjectUtils.isNotNull(goods.getValidityStartTime()) && ObjectUtils.isNotNull(goods.getValidityEndTime())){
+//            Long validityStartTime = goods.getValidityStartTime();
+//            Long validityEndTime = goods.getValidityEndTime();
+//            if (System.currentTimeMillis() < validityStartTime || System.currentTimeMillis() > validityEndTime){
+//                throw new CustomException("该商品不在有效期");
+//            }
+//        }
         CheckSectionWatchVo watchVo = new CheckSectionWatchVo();
         watchVo.setGoodsId(bo.getGoodsId());
         watchVo.setCourseId(bo.getCourseId());
         watchVo.setSectionId(bo.getSectionId());
         watchVo.setGoodsStatus(goods.getGoodsStatus());
+        watchVo.setGoodsName(goods.getGoodsName());
         //获取观看权限
         CourseSectionWatchPer watchPer = getOne(new LambdaQueryWrapper<CourseSectionWatchPer>()
                 .eq(CourseSectionWatchPer::getCourseId, bo.getCourseId())
@@ -119,7 +120,11 @@ public class CourseSectionWatchPerServiceImpl extends ServiceImpl<CourseSectionW
             //获取购买该商品的userId
             List<Long> userIds = baseMapper.getUserIdByGoods(bo);
             if (CollectionUtils.isEmpty(userIds) || !userIds.contains(bo.getUserId())){
-                throw new CustomException("您还没有开通直播课程,无法观看!");
+                //没有观看权限
+                watchVo.setCheckStatus(0);
+                watchVo.setCheckMsg("您还没有开通直播课程,无法观看!");
+                return watchVo;
+//                throw new CustomException("您还没有开通直播课程,无法观看!");
             }
             watchVo.setBuyCourse(1);
         }
@@ -137,6 +142,8 @@ public class CourseSectionWatchPerServiceImpl extends ServiceImpl<CourseSectionW
         //获取课程节信息
         CourseSection courseSection = courseSectionService.getById(watchVo.getSectionId());
         watchVo.setChannelId(courseSection.getLiveUrl());
+        watchVo.setCheckStatus(1);
+        watchVo.setSectionType(courseSection.getSectionType());
         return watchVo;
     }
 }

+ 20 - 13
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -657,29 +657,36 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
                     .eq(UserStudyRecord::getGoodsId, item.getGoodsId())
                     .eq(UserStudyRecord::getSectionId, item.getSectionId()));
             if (CollectionUtils.isNotEmpty(recordList)) {
+                //观看人数
                 Map<Long, List<UserStudyRecord>> map = recordList.stream().collect(Collectors.groupingBy(UserStudyRecord::getUserId));
                 item.setWatchNumber(map.keySet().size());
-                Integer unBuyCourse = 0;
-                Integer buyCourse = 0;
-                for (UserStudyRecord record : recordList) {
-                    if (record.getBuyCourse() == 0) {
-                        //没有购买课程
-                        unBuyCourse++;
-                    } else {
-                        buyCourse++;
-                    }
+                //开通课程和未开通课程人数
+                Map<Integer, List<UserStudyRecord>> buyMap = recordList.stream().filter(x -> ObjectUtils.isNotNull(x.getBuyCourse())).collect(Collectors.groupingBy(UserStudyRecord::getBuyCourse));
+                if (CollectionUtils.isNotEmpty(buyMap)){
+                    buyMap.forEach((k,v) -> {
+                        switch (k){
+                            case 0://未开通课程
+                                Map<Long, List<UserStudyRecord>> collect = buyMap.get(k).stream().filter(x -> ObjectUtils.isNotNull(x.getUserId())).collect(Collectors.groupingBy(UserStudyRecord::getUserId));
+                                item.setUnBuyCourseNumber(collect.keySet().size());
+                                break;
+                            case 1://开通课程
+                                Map<Long, List<UserStudyRecord>> records = buyMap.get(k).stream().filter(x -> ObjectUtils.isNotNull(x.getUserId())).collect(Collectors.groupingBy(UserStudyRecord::getUserId));
+                                item.setBuyCourseNumber(records.keySet().size());
+                                break;
+                            default:
+                                break;
+                        }
+                    });
                 }
-                item.setBuyCourseNumber(buyCourse);
-                item.setUnBuyCourseNumber(unBuyCourse);
                 Map<String, List<UserStudyRecord>> collect = recordList.stream().filter(x -> ObjectUtils.isNotNull(x.getFromPlat())).collect(Collectors.groupingBy(UserStudyRecord::getFromPlat));
                 if (CollectionUtils.isNotEmpty(collect)) {
                     collect.forEach((k, v) -> {
                         if (k.equals("1")) {
                             //小程序
-                            item.setAppWatchNumber(collect.get(k).size());
+                            item.setAppWatchNumber(collect.keySet().size());
                         } else {
                             //PC
-                            item.setAdminWatchNumber(collect.get(k).size());
+                            item.setAdminWatchNumber(collect.keySet().size());
                         }
                     });
                 }