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 |  151 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 136 insertions(+), 15 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 1bcf449..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,6 +6,8 @@
 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;
@@ -75,6 +77,9 @@
     @Autowired
     private TokenUtil tokenUtil;
 
+    @Autowired
+    private CancelledClassesService cancelledClassesService;
+
     private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
 
     /**
@@ -85,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());
@@ -130,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>()
@@ -150,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();
@@ -171,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();
@@ -190,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<>();
@@ -284,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
@@ -304,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();
@@ -330,7 +360,7 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
     })
-    public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList(@RequestBody CourseOfAfterRequest search){
+    public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList( CourseOfAfterRequest search){
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
 
@@ -338,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());
             }
@@ -357,7 +389,7 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
     })
-    public ResultUtil<CourseOfVideoResponse> queryAfterSourceDetails(@RequestBody CourseWithDetailsRequest detailsRequest){
+    public ResultUtil<CourseOfVideoResponse> queryAfterSourceDetails( CourseWithDetailsRequest detailsRequest){
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
             if(null == appUserId){
@@ -379,7 +411,7 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
     })
-    public ResultUtil updateVideoStatus(@RequestBody UpdateCourseVideoStatusRequest detailsRequest){
+    public ResultUtil updateVideoStatus( UpdateCourseVideoStatusRequest detailsRequest){
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
             if(null == appUserId){
@@ -424,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){
@@ -442,12 +474,12 @@
      * 已报名课程详情
      */
     @ResponseBody
-    @PostMapping("/api/startCource/afterSourceDetail")
+    @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(@RequestBody Integer coursePackageId){
+    public ResultUtil<CourseDetailsResponse> getRegisteredData( Integer coursePackageId){
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
             if(null == appUserId){
@@ -469,7 +501,7 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
     })
-    public ResultUtil continuationOperation(@RequestBody ClasspaymentRequest request){
+    public ResultUtil continuationOperation(ClasspaymentRequest request){
         try {
             Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
             if(null == userIdFormRedis){
@@ -483,5 +515,94 @@
     }
 
 
+    /**
+     * 获取学员剩余课时
+     * @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