From aa43a92c7ec9053dbaef92fe5ccb3011b670442c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 12 七月 2023 11:46:21 +0800
Subject: [PATCH] 更新线上视频奖励模块接口

---
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java |  231 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 180 insertions(+), 51 deletions(-)

diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index 8cfb4a1..1b0d7a6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -6,15 +6,19 @@
 import com.dsh.course.entity.TCoursePackageDiscount;
 import com.dsh.course.entity.TCoursePackagePayment;
 import com.dsh.course.entity.TCoursePackageType;
+import com.dsh.course.entity.*;
+import com.dsh.course.feignclient.account.StudentClient;
 import com.dsh.course.feignclient.model.*;
 import com.dsh.course.model.BaseVo;
 import com.dsh.course.model.dto.DiscountJsonDto;
 import com.dsh.course.model.vo.CourseDetailRequest;
 import com.dsh.course.model.vo.RegisterCourseVo;
+import com.dsh.course.model.vo.request.ClasspaymentRequest;
 import com.dsh.course.model.vo.request.CourseOfAfterRequest;
 import com.dsh.course.model.vo.request.CourseWithDetailsRequest;
 import com.dsh.course.model.vo.request.UpdateCourseVideoStatusRequest;
 import com.dsh.course.model.vo.response.AppUserVideoResponse;
+import com.dsh.course.model.vo.response.CourseDetailsResponse;
 import com.dsh.course.model.vo.response.CourseOfVideoResponse;
 import com.dsh.course.service.*;
 import com.dsh.course.util.DateUtil;
@@ -73,6 +77,9 @@
     @Autowired
     private TokenUtil tokenUtil;
 
+    @Autowired
+    private CancelledClassesService cancelledClassesService;
+
     private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
 
     /**
@@ -83,7 +90,10 @@
     @PostMapping("/base/coursePack/queryPayment")
     public List<StuCourseResp> getStuCoursePackagePayment(@RequestParam("stuId") Integer stuId,@RequestParam("appUserId") Integer appUserId){
         List<StuCourseResp> resps = new ArrayList<>();
-        List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,stuId,appUserId);
+        List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+                .eq("appUserId",appUserId)
+                .eq("studentId",stuId));
+
         if (byUserId.size() > 0 ){
             for (TCoursePackagePayment tCoursePackagePayment : byUserId) {
                 TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
@@ -128,7 +138,10 @@
     @PostMapping("/base/coursePack/sessionNames")
     public List<StuSessionDetailsVo> getStuSessionList(@RequestBody CourseDetailRequest request){
         List<StuSessionDetailsVo> detailsVos = new ArrayList<>();
-        List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(request.getStartTime(),request.getEndTime(),null,request.getStuId(),request.getAppUserId());
+        List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+                .between("insertTime", request.getStartTime(),request.getEndTime())
+                .eq("appUserId",request.getAppUserId())
+                .eq("studentId",request.getStuId()));
         if (byUserId.size() > 0){
             List<Integer> collect = byUserId.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
             List<TCoursePackage> list = tcpService.list(new QueryWrapper<TCoursePackage>()
@@ -148,7 +161,11 @@
     @PostMapping("/base/coursePack/paymentCourse")
     public List<PurchaseRecordVo> queryCourseDetails(@RequestParam("startTime") Date startTime, @RequestParam("endTime") Date  endTime,@RequestParam("stuId") Integer stuId, @RequestParam("appUserId") Integer appUserId) {
         List<PurchaseRecordVo> purchaseRecordVos = new ArrayList<>();
-        List<TCoursePackagePayment> coursePackage = packagePaymentService.queryAllCoursePackage(startTime,endTime,null,stuId, appUserId);
+
+        List<TCoursePackagePayment> coursePackage = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+                .between("insertTime", startTime,endTime)
+                .eq("appUserId",appUserId)
+                .eq("studentId",stuId));
         if (coursePackage.size() > 0 ){
             coursePackage.forEach( cspackage -> {
                 PurchaseRecordVo recordVo = new PurchaseRecordVo();
@@ -169,7 +186,9 @@
         Integer totalNu = 0;
         Integer dedutNu = 0;
         Integer remainNu = 0;
-        List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,getStuOfCoursesDetails.getStuId(),getStuOfCoursesDetails.getAppUserId());
+        List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+                .eq("appUserId",getStuOfCoursesDetails.getAppUserId())
+                .eq("studentId",getStuOfCoursesDetails.getStuId()));
         if (byUserId.size() > 0 ){
             for (TCoursePackagePayment tCoursePackagePayment : byUserId) {
                 totalNu = totalNu + tCoursePackagePayment.getTotalClassHours();
@@ -188,7 +207,10 @@
     @PostMapping("/base/coursePack/continuingCourse")
     public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse){
         StudentOfCourseVo courseVo = new StudentOfCourseVo();
-        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,getStudentCourse.getCourseId(),getStudentCourse.getStuId(),getStudentCourse.getAppUserId());
+        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+                .eq("appUserId", getStudentCourse.getAppUserId())
+                .eq("coursePackageId", getStudentCourse.getCourseId())
+                .eq("studentId", getStudentCourse.getStuId()));
         if (tCoursePackagePayments.size() > 0 ){
 
             List<CourseHoursType> typeList = new ArrayList<>();
@@ -282,13 +304,22 @@
     @PostMapping("/base/coursePack/afterCourseTwos")
     public List<AfterVideoVo> getAfterCourseTwos(@RequestParam("appUserId") Integer appUserId){
         List<AfterVideoVo> videoVos = new ArrayList<>();
-        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,null,null,appUserId);
+        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+                .eq("appUserId", appUserId));
         List<Integer> coursePackageIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
 //        List<PostCourseVideo> videoList = pcvService.queryAllVideoNoneShow(coursePackageIds);
         // TODO: 2023/7/6 两个课后视频
         return videoVos;
     }
 
+    @PostMapping("/base/coursePack/allPaymentCourseList")
+    public List<TCoursePackagePayment> getAppuserCourseList(@RequestBody Integer appUserId){
+        return packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+                .eq("appUserId",appUserId)
+                .eq("payType",3)
+                .eq("payStatus",2)
+                .eq("state",1));
+    }
 
 
     @ResponseBody
@@ -302,7 +333,8 @@
             if(null == appUserId){
                 return ResultUtil.tokenErr();
             }
-            List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,null,null,appUserId);
+            List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+                    .eq("appUserId",appUserId));
             List<BaseVo> list = new ArrayList<>();
             tCoursePackagePayments.forEach(c -> {
                 BaseVo baseVo = new BaseVo();
@@ -327,9 +359,8 @@
     @ApiOperation(value = "课后视频课表", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
-            @ApiImplicitParam(name = "search",value = "视频名称",  required = true, dataType = "int"),
     })
-    public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList(@RequestBody CourseOfAfterRequest search){
+    public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList( CourseOfAfterRequest search){
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
 
@@ -337,7 +368,9 @@
                 return ResultUtil.tokenErr();
             }
             List<Integer> courseIds = new ArrayList<>();
-            List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,search.getCourseTypeId(),null,appUserId);
+            List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+                    .eq("coursePackageId",search.getCourseTypeId())
+                    .eq("appUserId",appUserId));
             if (tCoursePackagePayments.size() > 0 ){
                 courseIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
             }
@@ -355,9 +388,8 @@
     @ApiOperation(value = "课后视频详情", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
-            @ApiImplicitParam(name = "search",value = "视频名称",  required = true, dataType = "int"),
     })
-    public ResultUtil<CourseOfVideoResponse> queryAfterSourceDetails(@RequestBody CourseWithDetailsRequest detailsRequest){
+    public ResultUtil<CourseOfVideoResponse> queryAfterSourceDetails( CourseWithDetailsRequest detailsRequest){
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
             if(null == appUserId){
@@ -378,9 +410,8 @@
     @ApiOperation(value = "更新课后视频学习状态", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
-            @ApiImplicitParam(name = "search",value = "视频名称",  required = true, dataType = "int"),
     })
-    public ResultUtil updateVideoStatus(@RequestBody UpdateCourseVideoStatusRequest detailsRequest){
+    public ResultUtil updateVideoStatus( UpdateCourseVideoStatusRequest detailsRequest){
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
             if(null == appUserId){
@@ -415,42 +446,6 @@
         }
     }
 
-//
-//    @PostMapping("/base/coursePack/courseOfPurchased")
-//    public List<PurchaseVo> getAppUsersCourseData(@RequestBody Integer appUserId){
-//        List<PurchaseVo> voList = new ArrayList<>();
-////        查询够课包记录
-//        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,null,null,appUserId);
-//        //查询上课记录
-//        List<Integer> coursePackageIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
-//        List<CoursePackageStudent> packageStudents = cpsService.queryAppUserOfStuAttendClass(appUserId,coursePackageIds);
-//        Map<Integer, Long> collect = packageStudents.stream()
-//                .collect(Collectors.groupingBy(CoursePackageStudent::getCoursePackageId, Collectors.counting()));
-//
-//        if (tCoursePackagePayments.size() > 0){
-//            for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
-//                TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
-//                PurchaseVo purchaseVo = new PurchaseVo();
-//                purchaseVo.setCourseId(tCoursePackagePayment.getCoursePackageId());
-//                purchaseVo.setCourseName(coursePackage.getName());
-//                purchaseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime());
-//                purchaseVo.setStoreId(coursePackage.getStoreId());
-//                purchaseVo.setTeacherId(coursePackage.getCoachId());
-//                purchaseVo.setPackageImg(coursePackage.getCoverDrawing());
-//                purchaseVo.setCourseStatus(tCoursePackagePayment.getPayStatus());
-//                purchaseVo.setCourseTypeId(coursePackage.getCoursePackageTypeId());
-//                for (Map.Entry<Integer, Long> entry : collect.entrySet()) {
-//                    int coursePackageId = entry.getKey();
-//                    if (tCoursePackagePayment.getCoursePackageId() == coursePackageId) {
-//                        purchaseVo.setCourseNums((int) (entry.getValue()*2));
-//                    }
-//                }
-//                voList.add(purchaseVo);
-//            }
-//        }
-//        return voList;
-//    }
-
 
     /**
      * 已报名课程列表
@@ -461,7 +456,7 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
     })
-    public ResultUtil<List<RegisterCourseVo>> queryRegisteredCoursesDetails(@RequestBody CourseOfAfterRequest courseTypeId){
+    public ResultUtil<List<RegisterCourseVo>> queryRegisteredCoursesDetails( CourseOfAfterRequest courseTypeId){
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
             if(null == appUserId){
@@ -475,5 +470,139 @@
     }
 
 
+    /**
+     * 已报名课程详情
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/RegisteredData")
+    @ApiOperation(value = "已报名课程详情", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    public ResultUtil<CourseDetailsResponse> getRegisteredData( Integer coursePackageId){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(packagePaymentService.queryRegisteredCourseDetails(coursePackageId,appUserId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
 
+
+    /**
+     * 已报名课程-支付
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/payment")
+    @ApiOperation(value = "已报名课程-支付", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    public ResultUtil continuationOperation(ClasspaymentRequest request){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if(null == userIdFormRedis){
+                return ResultUtil.tokenErr();
+            }
+            return packagePaymentService.ContinuationOrpaymentCourse(userIdFormRedis,request);
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+
+    }
+
+
+    /**
+     * 获取学员剩余课时
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/coursePackagePayment/queryResidueClassHour")
+    public Integer queryResidueClassHour(@RequestBody Integer id){
+        try {
+            List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", id).eq("payStatus", 2)
+                    .eq("status", 1).eq("state", 1).gt("laveClassHours", 0));
+            Integer total = 0;
+            for (TCoursePackagePayment coursePackagePayment : list) {
+                total += coursePackagePayment.getLaveClassHours();
+            }
+            return total;
+        }catch (Exception e){
+            e.printStackTrace();
+            return 0;
+        }
+    }
+
+
+    /**
+     * 课程用于支付进行扣减
+     * @param paymentDeductionClassHour
+     */
+    @ResponseBody
+    @PostMapping("/coursePackagePayment/paymentDeductionClassHour")
+    public void paymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour){
+        try {
+            List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", paymentDeductionClassHour.getId()).eq("payStatus", 2)
+                    .eq("status", 1).eq("state", 1).gt("laveClassHours", 0));
+            Integer classHour = paymentDeductionClassHour.getClassHour();
+            for (TCoursePackagePayment coursePackagePayment : list) {
+                if(coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0){
+                    coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour);
+                    packagePaymentService.updateById(coursePackagePayment);
+
+                    CancelledClasses cancelledClasses = new CancelledClasses();
+                    cancelledClasses.setType(2);
+                    cancelledClasses.setVoucher(paymentDeductionClassHour.getCode());
+                    cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId());
+                    cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId());
+                    cancelledClasses.setCancelledClassesNumber(classHour);
+                    cancelledClasses.setInsertTime(new Date());
+                    cancelledClassesService.save(cancelledClasses);
+                    break;
+                }else{
+                    CancelledClasses cancelledClasses = new CancelledClasses();
+                    cancelledClasses.setType(2);
+                    cancelledClasses.setVoucher(paymentDeductionClassHour.getCode());
+                    cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId());
+                    cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId());
+                    cancelledClasses.setCancelledClassesNumber(coursePackagePayment.getLaveClassHours());
+                    cancelledClasses.setInsertTime(new Date());
+                    cancelledClassesService.save(cancelledClasses);
+
+                    coursePackagePayment.setLaveClassHours(0);
+                    packagePaymentService.updateById(coursePackagePayment);
+
+                    classHour -= cancelledClasses.getCancelledClassesNumber();
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 取消赛事回退支付课时
+     * @param paymentDeductionClassHour
+     */
+    @ResponseBody
+    @PostMapping("/coursePackagePayment/rollbackPaymentDeductionClassHour")
+    public void rollbackPaymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour){
+        try {
+            List<CancelledClasses> voucher = cancelledClassesService.list(new QueryWrapper<CancelledClasses>().eq("voucher", paymentDeductionClassHour.getCode()));
+            for (CancelledClasses cancelledClasses : voucher) {
+                TCoursePackagePayment coursePackagePayment = packagePaymentService.getById(cancelledClasses.getCoursePackagePaymentId());
+                coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() + cancelledClasses.getCancelledClassesNumber());
+                packagePaymentService.updateById(coursePackagePayment);
+
+                cancelledClassesService.removeById(cancelledClasses.getId());
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 }

--
Gitblit v1.7.1