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