From aa0413f95fffba39cabcc78d147595da96b10b32 Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期四, 06 七月 2023 18:42:08 +0800 Subject: [PATCH] course:开始上课-已报名列表 --- cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Coach.java | 104 +++++++++++++ cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java | 3 cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java | 17 ++ cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 86 +++++---- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 90 ++++++++++- cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java | 15 + cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java | 29 +++ cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java | 31 +++ cloud-server-account/src/main/java/com/dsh/account/feignclient/CoachClient.java | 15 + cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java | 41 +++++ 10 files changed, 381 insertions(+), 50 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java new file mode 100644 index 0000000..3ac5c6c --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java @@ -0,0 +1,31 @@ +package com.dsh.account.controller; + + +import com.dsh.account.entity.Coach; +import com.dsh.account.service.CoachService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("") +public class CoachController { + + @Autowired + private CoachService service; + + /** + * 根据门店 + * @param id + * @return + */ + @ResponseBody + @PostMapping("/coach/queryCoachById") + public Coach queryCoachById(@RequestBody Integer id){ + try { + return service.getById(id); + }catch (Exception e){ + e.printStackTrace(); + return null; + } + } +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/CoachClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/CoachClient.java new file mode 100644 index 0000000..9b9504d --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/CoachClient.java @@ -0,0 +1,15 @@ +package com.dsh.account.feignclient; + + +import com.dsh.account.entity.Coach; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(value = "mb-cloud-account") +public interface CoachClient { + + @PostMapping("/coach/queryCoachById") + Coach queryCoachById(@RequestBody Integer id); + +} 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..1bcf449 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 @@ -11,10 +11,12 @@ 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; @@ -327,7 +329,6 @@ @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 { @@ -355,7 +356,6 @@ @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 { @@ -378,7 +378,6 @@ @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 { @@ -415,42 +414,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; -// } - /** * 已报名课程列表 @@ -475,5 +438,50 @@ } + /** + * 已报名课程详情 + */ + @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....."), + }) + public ResultUtil<CourseDetailsResponse> getRegisteredData(@RequestBody 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(@RequestBody ClasspaymentRequest request){ + try { + Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(); + if(null == userIdFormRedis){ + return ResultUtil.tokenErr(); + } + return packagePaymentService.ContinuationOrpaymentCourse(userIdFormRedis,request); + }catch (Exception e){ + return ResultUtil.runErr(); + } + + } + + } diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java new file mode 100644 index 0000000..bca45cd --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java @@ -0,0 +1,15 @@ +package com.dsh.course.feignclient.account; + + +import com.dsh.course.feignclient.account.model.Coach; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(value = "mb-cloud-account") +public interface CoachClient { + + @PostMapping("/coach/queryCoachById") + Coach queryCoachById(@RequestBody Integer id); + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Coach.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Coach.java new file mode 100644 index 0000000..a961475 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Coach.java @@ -0,0 +1,104 @@ +package com.dsh.course.feignclient.account.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.util.Date; + +/** + * <p> + * 教练 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +@Data +public class Coach { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 省 + */ + private String province; + /** + * 省编号 + */ + private String provinceCode; + /** + * 市 + */ + private String city; + /** + * 市编号 + */ + private String cityCode; + /** + * 城市管理员id + */ + private Integer cityManagerId; + /** + * 教练类型id + */ + private Integer coachTypeId; + /** + * 姓名 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1=男,2=女) + */ + private Integer gender; + /** + * 电话 + */ + private String phone; + /** + * 身份证号码 + */ + private String idcard; + /** + * 身高(厘米) + */ + private Double height; + /** + * 体重(KG) + */ + private Double weight; + /** + * 毕业院校 + */ + private String graduateSchool; + /** + * 毕业证照片 + */ + private String diploma; + /** + * 资格证书(多个逗号分隔) + */ + private String certificate; + /** + * 证书照片 + */ + private String certificateImg; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + private Integer state; + /** + * 添加时间 + */ + private Date insertTime; + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java index 3dc6361..c9dc4d5 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java +++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java @@ -25,4 +25,7 @@ @ApiModelProperty(value = "已上课时数") private Integer courseNums; + @ApiModelProperty(value = "支付状态 1未支付 2已支付") + private Integer payStatus; + } diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java new file mode 100644 index 0000000..e8cada9 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java @@ -0,0 +1,29 @@ +package com.dsh.course.model.vo.request; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ClasspaymentRequest { + + @ApiModelProperty(value = "课包id") + private Integer lessonId; + + @ApiModelProperty(value = "学员id") + private Integer stuId; + + @ApiModelProperty(value = "支付方式(1=微信 2=支付宝 3=玩湃币)") + private Integer payType; + + @ApiModelProperty(value = "是否使用优惠券 1是 2否") + private Integer useConpon; + + @ApiModelProperty(value = "优惠券Id") + private Integer conponId; + + @ApiModelProperty(value = "课时id") + private Long courseConfigId; + + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java new file mode 100644 index 0000000..820d95d --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java @@ -0,0 +1,41 @@ +package com.dsh.course.model.vo.response; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class CourseDetailsResponse { + + @ApiModelProperty(value = "课包id") + private Integer coursePackageId; + + @ApiModelProperty(value = "课包封面图") + private String coverDrawing; + + @ApiModelProperty(value = "课包名称") + private String coursePackageName; + + @ApiModelProperty(value = "上课周 (每周一、周二 )") + private String weeks; + + @ApiModelProperty(value = "上课时间范围") + private String courseTimeFrame; + + @ApiModelProperty(value = "课包介绍图片") + private String introduceDrawing; + + @ApiModelProperty(value = "支付价格") + private double amount; + + @ApiModelProperty(value = "会员价") + private double vipAmount; + + @ApiModelProperty(value = "玩湃币") + private double wpGold; + + @ApiModelProperty(value = "支付状态 1未支付 2续课") + private Integer payStatus; + + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java index 616f8ba..4820e2b 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java @@ -3,11 +3,14 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.course.entity.TCoursePackagePayment; 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.util.ResultUtil; import java.util.Date; import java.util.List; @@ -22,7 +25,7 @@ */ public interface TCoursePackagePaymentService extends IService<TCoursePackagePayment> { - List<TCoursePackagePayment> queryAllCoursePackage(Date startTime, Date endTime ,Integer lessionId,Integer stuId, Integer appUserId); + List<TCoursePackagePayment> queryAllCoursePackage(Date startTime, Date endTime , Integer lessionId, Integer stuId, Integer appUserId); /** @@ -64,4 +67,16 @@ */ List<RegisterCourseVo> queryRegisteredCourseList(CourseOfAfterRequest courseTypeId, Integer appUserId); + /** + * 获取已报名课包详情 + * @param coursePackageId + * @param appUserId + * @return + */ + CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePackageId, Integer appUserId); + + + + ResultUtil ContinuationOrpaymentCourse(Integer userIdFormRedis, ClasspaymentRequest request); + } diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java index 04628c9..497bc4e 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java @@ -2,23 +2,24 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dsh.course.entity.PostCourseVideo; -import com.dsh.course.entity.TCoursePackage; -import com.dsh.course.entity.TCoursePackagePayment; -import com.dsh.course.entity.UserVideoDetails; +import com.dsh.course.entity.*; +import com.dsh.course.feignclient.account.CoachClient; +import com.dsh.course.feignclient.account.model.Coach; import com.dsh.course.feignclient.activity.BenefitVideoClient; import com.dsh.course.feignclient.activity.model.BenefitsVideos; -import com.dsh.course.mapper.PostCourseVideoMapper; -import com.dsh.course.mapper.TCoursePackageMapper; -import com.dsh.course.mapper.TCoursePackagePaymentMapper; -import com.dsh.course.mapper.UserVideoDetailsMapper; +import com.dsh.course.feignclient.other.StoreClient; +import com.dsh.course.feignclient.other.model.Store; +import com.dsh.course.mapper.*; 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.TCoursePackagePaymentService; +import com.dsh.course.util.ResultUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -40,7 +41,7 @@ @Autowired - BenefitVideoClient bfvoClient; + private BenefitVideoClient bfvoClient; @Autowired @@ -51,6 +52,18 @@ @Autowired private TCoursePackageMapper tcpmapper; + + @Autowired + private StoreClient stoClient; + + @Autowired + private CoachClient coachClient; + + @Autowired + private CoursePackageStudentMapper cpsMapper; + + @Autowired + private CancelledClassesMapper cacMapper; @@ -150,9 +163,66 @@ @Override public List<RegisterCourseVo> queryRegisteredCourseList(CourseOfAfterRequest courseTypeId, Integer appUserId) { - // TODO: 2023/7/6 已报名课程列表 + List<RegisterCourseVo> courseVos = new ArrayList<>(); + List<TCoursePackagePayment> tCoursePackagePayments = this.queryAllCoursePackage(null,null,null,null,appUserId); + if (tCoursePackagePayments.size() > 0){ + for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { + TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); + Store store = stoClient.queryStoreById(coursePackage.getStoreId()); + RegisterCourseVo registerCourseVo = new RegisterCourseVo(); + registerCourseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); + registerCourseVo.setPackageImg(coursePackage.getCoverDrawing()); + String storeAndCourse = coursePackage.getName()+"("+ store.getName() +")"; + registerCourseVo.setCourseNameStore(storeAndCourse); + registerCourseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); + Coach coach = coachClient.queryCoachById(coursePackage.getCoachId()); + registerCourseVo.setCourseTeacher(coach.getName()); + List<CoursePackageStudent> coursePackageStudents = + cpsMapper.queryStuDeduClassHourNums(coursePackage.getId(),null,appUserId); + registerCourseVo.setCourseNums(coursePackageStudents.size() * 2); + registerCourseVo.setPayStatus(tCoursePackagePayment.getPayStatus()); + courseVos.add(registerCourseVo); + } + } + return courseVos; + } + + @Override + public CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePackageId, Integer appUserId) { + // TODO: 2023/7/6 已报名课程详情 return null; } + @Override + public ResultUtil ContinuationOrpaymentCourse(Integer userIdFormRedis, ClasspaymentRequest request) { + // TODO: 2023/7/5 报名课程支付 + switch (request.getPayType()){ + case 1: + WeChatPayment(); + break; + case 2: + AlipayPayment(); + break; + case 3: + PlaypaiGoldPayment(); + break; + default: + break; + } + return ResultUtil.success(); + } + + + public void WeChatPayment(){ + + } + + public void AlipayPayment(){ + + } + + public void PlaypaiGoldPayment(){ + + } } -- Gitblit v1.7.1