From d061aa842106480f3a8991d83dc3b978441330ab Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期四, 06 七月 2023 17:52:00 +0800 Subject: [PATCH] 修改续课详情页面的支付方式展示;开始上课-课后练习接口开发 --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 242 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 224 insertions(+), 18 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 3194c85..8cfb4a1 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 @@ -5,19 +5,31 @@ import com.dsh.course.entity.TCoursePackage; import com.dsh.course.entity.TCoursePackageDiscount; import com.dsh.course.entity.TCoursePackagePayment; +import com.dsh.course.entity.TCoursePackageType; import com.dsh.course.feignclient.model.*; +import com.dsh.course.model.BaseVo; import com.dsh.course.model.dto.DiscountJsonDto; -import com.dsh.course.service.PostCourseVideoService; -import com.dsh.course.service.TCoursePackageDiscountService; -import com.dsh.course.service.TCoursePackagePaymentService; -import com.dsh.course.service.TCoursePackageService; +import com.dsh.course.model.vo.CourseDetailRequest; +import com.dsh.course.model.vo.RegisterCourseVo; +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.CourseOfVideoResponse; +import com.dsh.course.service.*; import com.dsh.course.util.DateUtil; +import com.dsh.course.util.ResultUtil; import com.dsh.course.util.StrUtils; +import com.dsh.course.util.TokenUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -48,6 +60,18 @@ @Autowired private PostCourseVideoService pcvService; + + @Autowired + private CoursePackageStudentService cpsService; + + @Autowired + private CancelledClassesService cacService; + + @Autowired + private TCoursePackageTypeService coursePackageTypeService; + + @Autowired + private TokenUtil tokenUtil; private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm"); @@ -102,9 +126,9 @@ * 课程名称列表 */ @PostMapping("/base/coursePack/sessionNames") - public List<StuSessionDetailsVo> getStuSessionList(@RequestParam("startTime") Date startTime, @RequestParam("endTime") Date endTime, @RequestParam("stuId") Integer stuId, @RequestParam("appUserId") Integer appUserId){ + public List<StuSessionDetailsVo> getStuSessionList(@RequestBody CourseDetailRequest request){ List<StuSessionDetailsVo> detailsVos = new ArrayList<>(); - List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(startTime,endTime,null,stuId,appUserId); + List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(request.getStartTime(),request.getEndTime(),null,request.getStuId(),request.getAppUserId()); if (byUserId.size() > 0){ List<Integer> collect = byUserId.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); List<TCoursePackage> list = tcpService.list(new QueryWrapper<TCoursePackage>() @@ -140,12 +164,12 @@ @PostMapping("/base/coursePack/stuOfCourses") - public StuWithCoursesListVo getStuOfCoursesDetails(@RequestParam("stuId") Integer stuId, @RequestParam("appUserId") Integer appUserId){ + public StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody GetStuOfCoursesDetails getStuOfCoursesDetails){ StuWithCoursesListVo lisco = new StuWithCoursesListVo(); Integer totalNu = 0; Integer dedutNu = 0; Integer remainNu = 0; - List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,stuId,appUserId); + List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,getStuOfCoursesDetails.getStuId(),getStuOfCoursesDetails.getAppUserId()); if (byUserId.size() > 0 ){ for (TCoursePackagePayment tCoursePackagePayment : byUserId) { totalNu = totalNu + tCoursePackagePayment.getTotalClassHours(); @@ -162,9 +186,9 @@ @PostMapping("/base/coursePack/continuingCourse") - public StudentOfCourseVo getStudentCourse(@RequestParam("courseId") Integer courseId,@RequestParam("stuId") Integer stuId,@RequestParam("appUserId") Integer appUserId){ + public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse){ StudentOfCourseVo courseVo = new StudentOfCourseVo(); - List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,courseId,stuId,appUserId); + List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,getStudentCourse.getCourseId(),getStudentCourse.getStuId(),getStudentCourse.getAppUserId()); if (tCoursePackagePayments.size() > 0 ){ List<CourseHoursType> typeList = new ArrayList<>(); @@ -220,7 +244,7 @@ } courseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); - String payType = tCoursePackagePayment.getPayType(); + Integer payType = tCoursePackagePayment.getPayType(); BigDecimal cashPayment = tCoursePackagePayment.getCashPayment(); double cashPaymentValue = cashPayment.doubleValue(); Integer playPaiCoin = tCoursePackagePayment.getPlayPaiCoin(); @@ -239,16 +263,12 @@ throw new RuntimeException(e); } switch (payType) { - case "1;2": - courseVo.setAmount(cashPaymentValue); - courseVo.setVipAmount(discountMember); - courseVo.setWpGold(playPaiCoin); - break; - case "1": + case 1: + case 2: courseVo.setAmount(cashPaymentValue); courseVo.setVipAmount(discountMember); break; - case "2": + case 3: courseVo.setWpGold(playPaiCoin); break; } @@ -265,9 +285,195 @@ List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,null,null,appUserId); List<Integer> coursePackageIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); // List<PostCourseVideo> videoList = pcvService.queryAllVideoNoneShow(coursePackageIds); + // TODO: 2023/7/6 两个课后视频 return videoVos; } + @ResponseBody + @PostMapping("/api/course/queryArrangeCourseList") + @ApiOperation(value = "获取布置课程列表", tags = {"APP-课程列表"}) + @ApiImplicitParams({ + }) + public ResultUtil<List<BaseVo>> queryArrangePackageType(){ + try { + Integer appUserId = tokenUtil.getUserIdFormRedis(); + if(null == appUserId){ + return ResultUtil.tokenErr(); + } + List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,null,null,appUserId); + List<BaseVo> list = new ArrayList<>(); + tCoursePackagePayments.forEach(c -> { + BaseVo baseVo = new BaseVo(); + baseVo.setId(c.getCoursePackageId()); + TCoursePackage coursePackage = tcpService.getById(c.getCoursePackageId()); + baseVo.setName(coursePackage.getName()); + list.add(baseVo); + }); + return ResultUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 课后视频课表 + */ + @ResponseBody + @PostMapping("/api/startCource/afterSourceList") + @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){ + try { + Integer appUserId = tokenUtil.getUserIdFormRedis(); + + if(null == appUserId){ + return ResultUtil.tokenErr(); + } + List<Integer> courseIds = new ArrayList<>(); + List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,search.getCourseTypeId(),null,appUserId); + if (tCoursePackagePayments.size() > 0 ){ + courseIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); + } + return ResultUtil.success(packagePaymentService.queryAfterVideo(search,courseIds)); + }catch (Exception e){ + return ResultUtil.runErr(); + } + } + + /** + * 课后视频详情 + */ + @ResponseBody + @PostMapping("/api/startCource/afterSourceDetail") + @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){ + try { + Integer appUserId = tokenUtil.getUserIdFormRedis(); + if(null == appUserId){ + return ResultUtil.tokenErr(); + } + return ResultUtil.success(packagePaymentService.queryVideoDetails(detailsRequest,appUserId)); + }catch (Exception e){ + return ResultUtil.runErr(); + } + } + + + /** + * 更新课后视频学习状态 + */ + @ResponseBody + @PostMapping("/api/startCource/updateVideoStatus") + @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){ + try { + Integer appUserId = tokenUtil.getUserIdFormRedis(); + if(null == appUserId){ + return ResultUtil.tokenErr(); + } + return ResultUtil.success(packagePaymentService.updateVideoStatus(detailsRequest,appUserId)); + }catch (Exception e){ + return ResultUtil.runErr(); + } + } + + + + @ResponseBody + @PostMapping("/api/course/getCourseAppUserDetails") + @ApiOperation(value = "已报名课程-获取课程类型列表", tags = {"APP-课程列表"}) + @ApiImplicitParams({ + }) + public ResultUtil<List<BaseVo>> queryCoursePackageType(){ + try { + List<TCoursePackageType> coursePackageTypes = coursePackageTypeService.list(new QueryWrapper<TCoursePackageType>().eq("state", 1)); + List<BaseVo> list = new ArrayList<>(); + coursePackageTypes.forEach(c -> { + BaseVo baseVo = new BaseVo(); + BeanUtils.copyProperties(c, baseVo); + list.add(baseVo); + }); + return ResultUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + +// +// @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; +// } + + + /** + * 已报名课程列表 + */ + @ResponseBody + @PostMapping("/api/startCource/registeredCourses") + @ApiOperation(value = "已报名课程-课程列表", tags = {"APP-开始上课"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), + }) + public ResultUtil<List<RegisterCourseVo>> queryRegisteredCoursesDetails(@RequestBody CourseOfAfterRequest courseTypeId){ + try { + Integer appUserId = tokenUtil.getUserIdFormRedis(); + if(null == appUserId){ + return ResultUtil.tokenErr(); + } + return ResultUtil.success(packagePaymentService.queryRegisteredCourseList(courseTypeId,appUserId)); + }catch (Exception e){ + return ResultUtil.runErr(); + } + + } + + + } -- Gitblit v1.7.1