From 0be58dbf7774fef98ddac83c3f454b49c6d5a6c1 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 07 七月 2023 18:18:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
cloud-server-course/src/main/java/com/dsh/course/service/impl/UserVideoDetailsServiceImpl.java | 20
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PurchaseVo.java | 37
cloud-server-course/src/main/java/com/dsh/course/model/vo/request/UpdateCourseVideoStatusRequest.java | 20
cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml | 32
cloud-server-other/src/main/java/com/dsh/other/mapper/SysLoginLogMapper.java | 16
cloud-server-activity/src/main/java/com/dsh/activity/service/UserCouponService.java | 4
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java | 34
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SysLogClient.java | 16
cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml | 29
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 2
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java | 14
cloud-server-competition/src/main/java/com/dsh/competition/service/UserCompetitionService.java | 5
cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java | 4
cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java | 6
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/BenefitVideoClient.java | 16
cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponStoreMapper.java | 16
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java | 60 +
cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java | 32
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponStoreServiceImpl.java | 20
cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java | 2
cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java | 2
cloud-server-activity/src/main/java/com/dsh/activity/model/response/CouponPackageResp.java | 41 +
cloud-server-course/src/main/java/com/dsh/course/mapper/UserVideoDetailsMapper.java | 17
cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java | 31
cloud-server-other/src/main/java/com/dsh/other/service/impl/SysLoginLogServiceImpl.java | 20
cloud-server-other/src/main/java/com/dsh/other/feignclient/SysLogClient.java | 16
cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java | 7
cloud-server-competition/src/main/java/com/dsh/competition/mapper/UserCompetitionMapper.java | 9
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 295 +++++++
cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java | 16
cloud-server-course/src/main/java/com/dsh/course/model/vo/request/CourseOfAfterRequest.java | 17
cloud-server-other/src/main/resources/mapper/SysLoginLogMapper.xml | 6
cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponStore.java | 49 +
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/StoreDetailOfCourse.java | 13
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 257 ++++++
cloud-server-other/src/main/java/com/dsh/other/entity/SysLoginLog.java | 66 +
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java | 125 +++
cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/BenefitVideoClient.java | 16
cloud-server-account/src/main/java/com/dsh/account/feignclient/CoachClient.java | 15
cloud-server-activity/src/main/resources/mapper/CouponStoreMapper.xml | 6
cloud-server-activity/src/main/java/com/dsh/activity/model/request/CouponPackageReq.java | 16
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java | 41 +
cloud-server-other/src/main/java/com/dsh/other/service/SysLoginLogService.java | 16
cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java | 29
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseOfVideoResponse.java | 37
cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java | 31
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java | 56 +
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java | 7
cloud-server-course/src/main/java/com/dsh/course/mapper/PostCourseVideoMapper.java | 1
cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java | 4
cloud-server-account/src/main/java/com/dsh/account/util/TokenUtil.java | 18
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/UserCompetitionServiceImpl.java | 5
cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java | 4
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java | 20
cloud-server-course/src/main/java/com/dsh/course/service/UserVideoDetailsService.java | 16
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/PurchaseVo.java | 37
cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml | 32
cloud-server-course/src/main/resources/mapper/UserVideoDetailsMapper.xml | 6
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java | 10
cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java | 74 +
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/request/CourseWithDetailsRequest.java | 16
cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java | 52 -
cloud-server-activity/src/main/java/com/dsh/activity/service/CouponStoreService.java | 16
cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java | 16
cloud-server-course/src/main/java/com/dsh/course/controller/CancelSourceController.java | 6
cloud-server-other/src/main/java/com/dsh/other/controller/UserLoginLogController.java | 44 +
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CourseTypeResp.java | 16
cloud-server-activity/src/main/java/com/dsh/activity/model/ConponJsonRuleModel.java | 8
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java | 3
/dev/null | 15
cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/BenefitsVideos.java | 61 +
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 26
cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml | 6
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java | 15
cloud-server-course/src/main/java/com/dsh/course/entity/UserVideoDetails.java | 63 +
cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java | 29
cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java | 6
cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java | 5
79 files changed, 2,134 insertions(+), 242 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
index 5996ede..d371b09 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
@@ -108,7 +108,6 @@
@PostMapping("/api/startCource/addData")
@ApiOperation(value = "添加学员信息", tags = {"APP-开始上课"})
@ApiImplicitParams({
- @ApiImplicitParam(value = "学员信息", name = "stu", required = true, dataType = "int"),
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
})
@Transactional
@@ -370,57 +369,6 @@
}catch (Exception e){
return ResultUtil.runErr();
}
- }
-
- /**
- * 课后视频课表
- */
- @ResponseBody
- @PostMapping("/api/startCource/afterSourceDetails")
- @ApiOperation(value = "课后视频课表", tags = {"APP-开始上课"})
- @ApiImplicitParams({
- @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
- @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
- })
- public ResultUtil queryAfterSourceDetails(@RequestParam("stuId") Integer stuId){
- try {
- Integer appUserId = tokenUtil.getUserIdFormRedis();
- if(null == appUserId){
- return ResultUtil.tokenErr();
- }
- // TODO: 2023/7/4
- return ResultUtil.success();
- }catch (Exception e){
- return ResultUtil.runErr();
- }
-
-
- }
-
-
-
- /**
- * 已报名课程列表
- */
- @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....."),
- @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
- })
- public ResultUtil<List<RegisterCourseVo>> queryRegisteredCoursesDetails(@RequestParam("stuId") Integer stuId){
- try {
- Integer appUserId = tokenUtil.getUserIdFormRedis();
- if(null == appUserId){
- return ResultUtil.tokenErr();
- }
- return ResultUtil.success();
- }catch (Exception e){
- return ResultUtil.runErr();
- }
-
-
}
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..baaf327
--- /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( 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/controller/ExploreWPController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
index 4a43283..b195abe 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
@@ -58,7 +58,7 @@
@ResponseBody
@PostMapping("/base/exploreWP/noticeDetail")
@ApiOperation(value = "联系客服-公告详情", tags = {"APP-探索玩湃"})
- public ResultUtil<SysNotice> queryNotice(@RequestBody Integer noId){
+ public ResultUtil<SysNotice> queryNotice(Integer noId){
try {
return ResultUtil.success(tsService.queryNoticeData(noId));
}catch (Exception e){
@@ -82,7 +82,7 @@
@ResponseBody
@PostMapping("/base/exploreWP/exceptionDetail")
@ApiOperation(value = "联系客服-常见问题详情", tags = {"APP-探索玩湃"})
- public ResultUtil<QuestionIns> queryQuestionData(@RequestBody Integer quesId){
+ public ResultUtil<QuestionIns> queryQuestionData(Integer quesId){
try {
return ResultUtil.success(tsService.queryQuestionDataInfo(quesId));
}catch (Exception e){
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
index d761685..cd1133f 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
@@ -2,6 +2,7 @@
import com.dsh.account.entity.TAppUser;
+import com.dsh.account.feignclient.other.SysLogClient;
import com.dsh.account.model.vo.userBenefitDetail.AppUserDetailsVo;
import com.dsh.account.model.vo.userBenefitDetail.BillingDetailsVo;
import com.dsh.account.model.vo.userBenefitDetail.IndexOfUserBenefirVo;
@@ -16,6 +17,10 @@
import java.text.SimpleDateFormat;
+/**
+ * 使用福利 控制器
+ */
+
@RestController
@RequestMapping("")
public class UseBenefitsController {
@@ -26,6 +31,9 @@
@Autowired
private TokenUtil tokenUtil;
+
+ @Autowired
+ private SysLogClient slClient;
private final SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
@@ -78,6 +86,58 @@
}
}
+
+
+ @ResponseBody
+ @PostMapping("/api/useBenefit/cancellation")
+ @ApiOperation(value = "个人信息-注销账号", tags = {"APP-使用福利"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ })
+ public ResultUtil cancellationAccount(){
+ try {
+ Integer appUserId = tokenUtil.getUserIdFormRedis();
+ if(null == appUserId){
+ return ResultUtil.tokenErr();
+ }
+// 变更账号的状态为删除
+ tauService.cancellation(appUserId);
+// 增加一条注销账号的日志
+ slClient.cancellation(appUserId);
+// 删除redis中用户key
+ tokenUtil.logout();
+ return ResultUtil.success();
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+
+
+ @ResponseBody
+ @PostMapping("/api/useBenefit/logOut")
+ @ApiOperation(value = "个人信息-退出登录", tags = {"APP-使用福利"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ })
+ public ResultUtil logOutAccount(){
+ try {
+ Integer appUserId = tokenUtil.getUserIdFormRedis();
+ if(null == appUserId){
+ return ResultUtil.tokenErr();
+ }
+ // 增加一条退出账号的日志
+ slClient.logOut(appUserId);
+ // 删除redis中用户key
+ tokenUtil.logout();
+ return ResultUtil.success();
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+
+
@ResponseBody
@PostMapping("/api/useBenefit/userBilling")
@ApiOperation(value = "账单", tags = {"APP-使用福利"})
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-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
index 011f6ac..0b29b58 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
@@ -27,4 +27,7 @@
@PostMapping("/base/coursePack/afterCourseTwos")
List<AfterVideoVo> getAfterCourseTwos(@RequestParam("appUserId") Integer appUserId);
+
+ @PostMapping("/base/coursePack/courseOfPurchased")
+ List<PurchaseVo> getAppUsersCourseData(@RequestBody Integer appUserId);
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CourseTypeResp.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CourseTypeResp.java
new file mode 100644
index 0000000..92901f3
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CourseTypeResp.java
@@ -0,0 +1,16 @@
+package com.dsh.account.feignclient.course.model;
+
+
+import lombok.Data;
+
+@Data
+public class CourseTypeResp {
+
+ private Integer appUserId;
+
+ private Integer courseTypeId;
+
+
+ private String search;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/PurchaseVo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/PurchaseVo.java
new file mode 100644
index 0000000..50d3165
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/PurchaseVo.java
@@ -0,0 +1,37 @@
+package com.dsh.account.feignclient.course.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class PurchaseVo {
+
+ @ApiModelProperty(value = "课包id")
+ private Integer courseId;
+
+ @ApiModelProperty(value = "课包封面图")
+ private String packageImg;
+
+ @ApiModelProperty(value = "课包名称")
+ private String courseName;
+
+ @ApiModelProperty(value = "上课时间段")
+ private String courseTime;
+
+ @ApiModelProperty(value = "授课老师id")
+ private Integer teacherId;
+
+ @ApiModelProperty(value = "门店id")
+ private Integer storeId;
+
+ @ApiModelProperty(value = "已上课时数")
+ private Integer courseNums;
+
+ @ApiModelProperty(value = "课包状态 1=待支付 2=已购买")
+ private Integer courseStatus;
+
+ @ApiModelProperty(value = "课包类型id")
+ private Integer courseTypeId;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SysLogClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SysLogClient.java
new file mode 100644
index 0000000..d027cbe
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SysLogClient.java
@@ -0,0 +1,16 @@
+package com.dsh.account.feignclient.other;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@FeignClient(value = "mb-cloud-other")
+public interface SysLogClient {
+
+ @PostMapping("/appUser/logOut")
+ void logOut(@RequestBody Integer appUserId);
+
+ @PostMapping("/appUser/cancellation")
+ void cancellation(@RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
index 22f4e1b..138a47f 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
@@ -109,4 +109,10 @@
*/
BillingDetailsVo queryUserBillingDetails(String yearMonth, Integer recordId);
+ /**
+ * 注销账号
+ * @param appUserId
+ */
+ void cancellation(Integer appUserId);
+
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index 39f368d..2111e73 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -463,8 +463,28 @@
@Override
public BillingDetailsVo queryUserBillingDetails(String yearMonth, Integer recordId) {
- System.out.println("账单传参:yearMonth"+yearMonth+"|"+"recordId"+recordId);
- // TODO: 2023/7/4
- return null;
+ BillingDetailsVo vo = new BillingDetailsVo();
+ if (null != yearMonth){
+ Date monthStart = DateTimeHelper.getCurrentIdetMouthStart(yearMonth);
+ Date monthEnd = DateTimeHelper.getCurrentIdeaMouthEnd(yearMonth);
+
+
+ }else {
+ Date currentMouthStart = DateTimeHelper.getCurrentMouthStart();
+ Date currentMouthEnd = DateTimeHelper.getCurrentMouthEnd();
+
+
+ }
+ return vo;
}
+
+ @Override
+ public void cancellation(Integer appUserId) {
+ TAppUser tAppUser = this.baseMapper.selectById(appUserId);
+ if (null != tAppUser){
+ tAppUser.setState(3);
+ this.baseMapper.updateById(tAppUser);
+ }
+ }
+
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index a23d53c..4ab69ac 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -374,7 +374,7 @@
@Override
public ResultUtil renewClassPayment(Integer userIdFormRedis, ClasspaymentRequest request) {
- // TODO: 2023/7/5
+ // TODO: 2023/7/5 续课支付
switch (request.getPayType()){
case 1:
WeChatPayment();
diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/TokenUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/TokenUtil.java
index 5397637..775a29d 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/TokenUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/TokenUtil.java
@@ -33,4 +33,22 @@
return null;
}
}
+
+ public void logout() {
+ ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+ HttpServletRequest request = servletRequestAttributes.getRequest();
+ String requestHeader = request.getHeader("Authorization");
+ if (requestHeader != null && requestHeader.startsWith("Bearer ")) {
+ requestHeader = requestHeader.substring(requestHeader.indexOf(" ") + 1);
+ String key = null;
+ int length = requestHeader.length();
+ if (length > 32) {
+ key = requestHeader.substring(length - 32);
+ } else {
+ key = requestHeader;
+ }
+ redisUtil.remove(key); // 删除存储在Redis中的对应用户信息
+ }
+ }
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java
new file mode 100644
index 0000000..971a10f
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java
@@ -0,0 +1,29 @@
+package com.dsh.activity.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.activity.entity.BenefitsVideos;
+import com.dsh.activity.service.BenefitsVideosService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("")
+public class BenefitVideoController {
+
+
+ @Autowired
+ private BenefitsVideosService bfvService;
+
+
+
+ @PostMapping("base/benefitVideo/getList")
+ public BenefitsVideos getVideosWithIds(@RequestBody Integer id){
+ return bfvService.getOne(new QueryWrapper<BenefitsVideos>().eq("id",id).eq("state",1));
+ }
+
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
index 6b622ca..c1fceaf 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
@@ -2,7 +2,10 @@
import com.dsh.activity.entity.Coupon;
import com.dsh.activity.model.CouponListVo;
+import com.dsh.activity.model.request.CouponPackageReq;
+import com.dsh.activity.model.response.CouponPackageResp;
import com.dsh.activity.service.ICouponService;
+import com.dsh.activity.service.UserCouponService;
import com.dsh.activity.util.ResultUtil;
import com.dsh.activity.util.TokenUtil;
import io.swagger.annotations.ApiImplicitParam;
@@ -26,6 +29,9 @@
@Autowired
private TokenUtil tokenUtil;
+
+ @Autowired
+ private UserCouponService ucService;
@@ -71,4 +77,30 @@
return null;
}
}
+
+
+ /**
+ * 我的券包列表
+ * @param req
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/api/coupon/queryCouponPackage")
+ @ApiOperation(value = "我的券包列表", tags = {"APP-使用福利"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<List<CouponPackageResp>> queryAppuserCouponList( CouponPackageReq req){
+ try {
+ Integer uid = tokenUtil.getUserIdFormRedis();
+ if(null == uid){
+ return ResultUtil.tokenErr();
+ }
+ return ResultUtil.success(ucService.queryCouponPackagesList(uid, req));
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.success();
+ }
+ }
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java
index ec98b26..be27639 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java
@@ -28,7 +28,7 @@
@PostMapping("/base/introduce/useOfRewards")
- public List<PurchaseRecordVo> queryAppUsersofIntroduce(@RequestBody IntrduceOfUserRequest request){
+ public List<PurchaseRecordVo> queryAppUsersofIntroduce( IntrduceOfUserRequest request){
List<PurchaseRecordVo> recordVos = new ArrayList<>();
List<IntroduceRewards> list = idrService.list(new QueryWrapper<IntroduceRewards>()
.ge("startTime",request.getStartTime())
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java
new file mode 100644
index 0000000..b603c57
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java
@@ -0,0 +1,74 @@
+package com.dsh.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 福利视频
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_benefits_videos")
+public class BenefitsVideos extends Model<BenefitsVideos> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 分类id
+ */
+ private Integer benefitsVideoClassificationId;
+ /**
+ * 视频名称
+ */
+ private String name;
+ /**
+ * 视频封面
+ */
+ private String cover;
+ /**
+ * 视频简介
+ */
+ private String introduction;
+ /**
+ * 视频地址
+ */
+ private String videos;
+ /**
+ * 可得积分
+ */
+ private String integral;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponStore.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponStore.java
new file mode 100644
index 0000000..29b4192
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponStore.java
@@ -0,0 +1,49 @@
+package com.dsh.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 优惠券使用门店关系数据
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_coupon_store")
+public class CouponStore extends Model<CouponStore> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 优惠券id
+ */
+ private Integer couponId;
+ /**
+ * 门店id
+ */
+ private Integer storeId;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/JSONConpon.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/JSONConpon.java
deleted file mode 100644
index dced410..0000000
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/JSONConpon.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.dsh.activity.entity;
-
-public class JSONConpon {
-
- double conditionalAmount;
-
- double deductionAmount;
-
- String experienceName;
-
- public JSONConpon(double conditionalAmount, double deductionAmount, String experienceName) {
- this.conditionalAmount = conditionalAmount;
- this.deductionAmount = deductionAmount;
- this.experienceName = experienceName;
- }
-
- public JSONConpon() {
- }
-
- public double getConditionalAmount() {
- return conditionalAmount;
- }
-
- public void setConditionalAmount(double conditionalAmount) {
- this.conditionalAmount = conditionalAmount;
- }
-
- public double getDeductionAmount() {
- return deductionAmount;
- }
-
- public void setDeductionAmount(double deductionAmount) {
- this.deductionAmount = deductionAmount;
- }
-
- public String getExperienceName() {
- return experienceName;
- }
-
- public void setExperienceName(String experienceName) {
- this.experienceName = experienceName;
- }
-}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/BenefitVideoClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/BenefitVideoClient.java
new file mode 100644
index 0000000..3000806
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/BenefitVideoClient.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.feignclient;
+
+import com.dsh.activity.entity.BenefitsVideos;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@FeignClient(value = "mb-cloud-activity")
+public interface BenefitVideoClient {
+
+
+ @PostMapping("base/benefitVideo/getList")
+ BenefitsVideos getVideosWithIds(@RequestBody Integer id);
+
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java
new file mode 100644
index 0000000..b23ad64
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java
@@ -0,0 +1,14 @@
+package com.dsh.activity.feignclient.other;
+
+import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(value = "mb-cloud-other")
+public interface StoreClient {
+
+
+ @PostMapping("/base/protocol/storeDetail/courseOfSto")
+ StoreDetailOfCourse getCourseOfStore(@RequestParam("storeId") Integer storeId);
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/StoreDetailOfCourse.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/StoreDetailOfCourse.java
new file mode 100644
index 0000000..40cf0a7
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/StoreDetailOfCourse.java
@@ -0,0 +1,13 @@
+package com.dsh.activity.feignclient.other.model;
+
+import lombok.Data;
+
+@Data
+public class StoreDetailOfCourse {
+
+ String storeName;
+
+ String storeAddr;
+
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java
new file mode 100644
index 0000000..eaa063c
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.activity.entity.BenefitsVideos;
+
+/**
+ * <p>
+ * 福利视频 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-06
+ */
+public interface BenefitsVideosMapper extends BaseMapper<BenefitsVideos> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponStoreMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponStoreMapper.java
new file mode 100644
index 0000000..366e2f2
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponStoreMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.activity.entity.CouponStore;
+
+/**
+ * <p>
+ * 优惠券使用门店关系数据 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+public interface CouponStoreMapper extends BaseMapper<CouponStore> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java
index 62546d5..7b40f7e 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.activity.entity.UserCoupon;
-import com.dsh.activity.model.CouponListVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -30,4 +29,5 @@
List<Map<String, Object>> queryAvailableCouponList(@Param("uid") Integer uid, @Param("storeId") Integer storeId,
@Param("provinceCode") String provinceCode, @Param("cityCode") String cityCode);
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/ConponJsonRuleModel.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/ConponJsonRuleModel.java
index edb6926..f2671df 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/model/ConponJsonRuleModel.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/ConponJsonRuleModel.java
@@ -1,5 +1,6 @@
package com.dsh.activity.model;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -9,14 +10,17 @@
/**
* 条件金额
*/
- double conditionalAmount;
+ @ApiModelProperty("条件金额(例如 :满xx可用)")
+ String conditionalAmount;
/**
* 抵扣金额(代金券 取 该字段)
*/
- double deductionAmount;
+ @ApiModelProperty("抵扣金额(代金券 取 该字段) 例如:¥ xxx")
+ String deductionAmount;
/**
* 体验券名称
*/
+ @ApiModelProperty("体验券名称 ")
String experienceName;
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/request/CouponPackageReq.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/CouponPackageReq.java
new file mode 100644
index 0000000..ce3246b
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/CouponPackageReq.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.model.request;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CouponPackageReq {
+
+ @ApiModelProperty(value = "(1=满减券,2=代金券,3=体验券)")
+ Integer couponType;
+
+ @ApiModelProperty(value = "(1=未使用 2=已使用 3=已过期)")
+ Integer useStatus;
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/response/CouponPackageResp.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/response/CouponPackageResp.java
new file mode 100644
index 0000000..a33a3fc
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/response/CouponPackageResp.java
@@ -0,0 +1,41 @@
+package com.dsh.activity.model.response;
+
+
+import com.dsh.activity.model.ConponJsonRuleModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CouponPackageResp {
+
+ @ApiModelProperty("优惠券id")
+ private Integer id;
+
+ @ApiModelProperty("优惠券名称")
+ private String name;
+
+ @ApiModelProperty("优惠券类型(1=满减券,2=代金券,3=体验券)")
+ private Integer type;
+
+ @ApiModelProperty("适用范围1全国通用 2指定城市可用 3指定门店可用")
+ private Integer useCondition;
+
+ @ApiModelProperty("适用范围名称")
+ private String available;
+
+ @ApiModelProperty("useCondition = 2,为地址字符串;useCondition = 3,为门店名称+地址字符串")
+ private String cityOrStore;
+
+ @ApiModelProperty("优惠券说明(使用说明)")
+ private String instructionsForUse;
+
+ @ApiModelProperty("金额条件封装")
+ private ConponJsonRuleModel ruleModel;
+
+ @ApiModelProperty("有效时间(2021-05-05)")
+ private String effectiveTime;
+
+ @ApiModelProperty("使用状态(1未使用 2已使用 3已过期)")
+ private Integer useStatus;
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java
new file mode 100644
index 0000000..4727bae
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.BenefitsVideos;
+
+/**
+ * <p>
+ * 福利视频 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-06
+ */
+public interface BenefitsVideosService extends IService<BenefitsVideos> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponStoreService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponStoreService.java
new file mode 100644
index 0000000..230e568
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponStoreService.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.CouponStore;
+
+/**
+ * <p>
+ * 优惠券使用门店关系数据 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+public interface CouponStoreService extends IService<CouponStore> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/UserCouponService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/UserCouponService.java
index 2d73f97..784588f 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/UserCouponService.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/UserCouponService.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.activity.entity.UserCoupon;
import com.dsh.activity.model.CouponListVo;
+import com.dsh.activity.model.request.CouponPackageReq;
+import com.dsh.activity.model.response.CouponPackageResp;
import java.util.List;
@@ -24,4 +26,6 @@
* @return
*/
List<CouponListVo> queryAvailableCouponList(Integer uid, Integer coursePackageId, Double price, String lon, String lat) throws Exception;
+
+ List<CouponPackageResp> queryCouponPackagesList(Integer uid, CouponPackageReq req);
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
new file mode 100644
index 0000000..1a7dc72
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.BenefitsVideos;
+import com.dsh.activity.mapper.BenefitsVideosMapper;
+import com.dsh.activity.service.BenefitsVideosService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 福利视频 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-06
+ */
+@Service
+public class BenefitsVideosServiceImpl extends ServiceImpl<BenefitsVideosMapper, BenefitsVideos> implements BenefitsVideosService {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponStoreServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponStoreServiceImpl.java
new file mode 100644
index 0000000..defdba9
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponStoreServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.CouponStore;
+import com.dsh.activity.mapper.CouponStoreMapper;
+import com.dsh.activity.service.CouponStoreService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 优惠券使用门店关系数据 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+@Service
+public class CouponStoreServiceImpl extends ServiceImpl<CouponStoreMapper, CouponStore> implements CouponStoreService {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java
index c8441cd..0a9b304 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java
@@ -4,20 +4,35 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.Coupon;
+import com.dsh.activity.entity.CouponStore;
import com.dsh.activity.entity.UserCoupon;
+import com.dsh.activity.feignclient.account.AppUserClient;
+import com.dsh.activity.feignclient.account.StudentClient;
+import com.dsh.activity.feignclient.account.model.AppUser;
import com.dsh.activity.feignclient.course.CoursePackageClient;
import com.dsh.activity.feignclient.course.model.CoursePackage;
+import com.dsh.activity.feignclient.other.StoreClient;
+import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse;
+import com.dsh.activity.mapper.CouponMapper;
+import com.dsh.activity.mapper.CouponStoreMapper;
import com.dsh.activity.mapper.UserCouponMapper;
+import com.dsh.activity.model.ConponJsonRuleModel;
import com.dsh.activity.model.CouponListVo;
+import com.dsh.activity.model.request.CouponPackageReq;
+import com.dsh.activity.model.response.CouponPackageResp;
import com.dsh.activity.service.UserCouponService;
+import com.dsh.activity.util.DateUtil;
import com.dsh.activity.util.GDMapGeocodingUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* <p>
@@ -36,6 +51,20 @@
@Autowired
private GDMapGeocodingUtil gdMapGeocodingUtil;
+ @Autowired
+ private AppUserClient appClient;
+
+ @Autowired
+ private StudentClient studentClient;
+
+ @Autowired
+ private CouponMapper couponMapper;
+
+ @Autowired
+ private StoreClient storeClient;
+
+ @Autowired
+ private CouponStoreMapper csMapper;
/**
* 获取购买课程可用优惠券列表
@@ -87,4 +116,100 @@
}
return listVos;
}
+
+ @Override
+ public List<CouponPackageResp> queryCouponPackagesList(Integer uid, CouponPackageReq req) {
+ List<CouponPackageResp> respList = new ArrayList<>();
+ AppUser appUser = appClient.queryAppUser(uid);
+ if (null != appUser) {
+ List<UserCoupon> userCoupons = this.baseMapper.selectList(new QueryWrapper<UserCoupon>()
+ .eq("userId",appUser.getId() )
+ .orderByDesc("insertTime"));
+ if (userCoupons.size() > 0){
+ for (UserCoupon userCoupon : userCoupons) {
+ Coupon coupon = couponMapper.selectById(userCoupon.getCouponId());
+ CouponPackageResp packageResp = new CouponPackageResp();
+ packageResp.setId(coupon.getId());
+ packageResp.setName(coupon.getName());
+ packageResp.setType(coupon.getType());
+ packageResp.setUseCondition(coupon.getUseScope());
+ switch (coupon.getUseScope()){
+ case 1:
+ packageResp.setAvailable("全国通用");
+ break;
+ case 2:
+ packageResp.setAvailable("指定城市可用");
+ packageResp.setCityOrStore("");
+ break;
+ case 3:
+ packageResp.setAvailable("指定门店可用");
+ CouponStore couponStore = csMapper.selectOne(new QueryWrapper<CouponStore>()
+ .eq("couponId",coupon.getId()));
+ StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStore.getStoreId());
+ packageResp.setCityOrStore(courseOfStore.getStoreName()+","+courseOfStore.getStoreAddr());
+ break;
+ default:
+ break;
+ }
+ packageResp.setInstructionsForUse(coupon.getIllustrate());
+ ConponJsonRuleModel ruleModel = new ConponJsonRuleModel();
+ JSONObject jsonObject = JSON.parseObject(coupon.getContent());
+ switch (coupon.getType()) {
+ case 1:
+// 满减券
+ Double num1 = jsonObject.getDouble("num1");
+ Double num2 = jsonObject.getDouble("num2");
+ ruleModel.setConditionalAmount("满"+num1+"可用");
+ ruleModel.setDeductionAmount("¥ "+num2);
+ ruleModel.setExperienceName("");
+ break;
+ case 2:
+// 代金券
+ Double jsonObjectDouble = jsonObject.getDouble("num1");
+ ruleModel.setConditionalAmount("");
+ ruleModel.setDeductionAmount("¥ "+jsonObjectDouble);
+ ruleModel.setExperienceName("");
+ break;
+ case 3:
+// 体验券
+ ruleModel.setConditionalAmount("");
+ ruleModel.setDeductionAmount("");
+ ruleModel.setExperienceName(jsonObject.getString("num1"));
+ break;
+ default:
+ break;
+ }
+ packageResp.setRuleModel(ruleModel);
+
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ packageResp.setEffectiveTime(simpleDateFormat.format(coupon.getEndTime()));
+
+ if (userCoupon.getStatus() == 1){
+ if (DateUtil.getDate().before(coupon.getEndTime())){
+ packageResp.setUseStatus(1);
+ }else {
+ packageResp.setUseStatus(3);
+ }
+ }
+ if (userCoupon.getStatus() == 2){
+ packageResp.setUseStatus(2);
+ }
+ respList.add(packageResp);
+ }
+ if (null != req.getCouponType()){
+ respList = respList.stream()
+ .filter(couponPackageResp -> couponPackageResp.getType().equals(req.getCouponType()))
+ .collect(Collectors.toList());
+ }
+ if (null != req.getUseStatus()){
+ respList = respList.stream()
+ .filter(couponPackageResp -> couponPackageResp.getUseStatus().equals(req.getUseStatus()))
+ .collect(Collectors.toList());
+ }
+ }
+
+ }
+ return respList;
+ }
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/web/PointsMerchandiseController.java b/cloud-server-activity/src/main/java/com/dsh/activity/web/PointsMerchandiseController.java
deleted file mode 100644
index df6ec49..0000000
--- a/cloud-server-activity/src/main/java/com/dsh/activity/web/PointsMerchandiseController.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.dsh.activity.web;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 积分商品 前端控制器
- * </p>
- *
- * @author jqs
- * @since 2023-07-04
- */
-@RestController
-@RequestMapping("/points-merchandise")
-public class PointsMerchandiseController {
-
-}
-
diff --git a/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml b/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml
new file mode 100644
index 0000000..8350761
--- /dev/null
+++ b/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.activity.mapper.BenefitsVideosMapper">
+
+
+</mapper>
diff --git a/cloud-server-activity/src/main/resources/mapper/CouponStoreMapper.xml b/cloud-server-activity/src/main/resources/mapper/CouponStoreMapper.xml
new file mode 100644
index 0000000..b92cbce
--- /dev/null
+++ b/cloud-server-activity/src/main/resources/mapper/CouponStoreMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.activity.mapper.CouponStoreMapper">
+
+
+</mapper>
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
index c42a1a1..15f82ac 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -59,7 +59,10 @@
.eq("payType",3 )
.eq("auditStatus",2));
List<Integer> comIds = list.stream().map(Competition::getId).collect(Collectors.toList());
- List<UserCompetition> userCompetitions = ucttService.queryUsersCompetetions(sourseList.getStartTime(),sourseList.getEndTime(),sourseList.getAppUserId(),comIds);
+ List<UserCompetition> userCompetitions = ucttService.list(new QueryWrapper<UserCompetition>()
+ .between("insertTime", sourseList.getStartTime(),sourseList.getEndTime() )
+ .eq("userId", sourseList.getAppUserId())
+ .in("competitionId",comIds ));
if (userCompetitions.size() > 0){
userCompetitions.forEach(coms ->{
PurchaseRecordVo recordVo = new PurchaseRecordVo();
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/mapper/UserCompetitionMapper.java b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/UserCompetitionMapper.java
index f499608..862d515 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/mapper/UserCompetitionMapper.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/UserCompetitionMapper.java
@@ -2,10 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.competition.entity.UserCompetition;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Date;
-import java.util.List;
/**
* <p>
@@ -17,10 +13,5 @@
*/
public interface UserCompetitionMapper extends BaseMapper<UserCompetition> {
-
- List<UserCompetition> queryUsersCompetetions(@Param("startTime") Date startTime,
- @Param("endTime") Date endTime ,
- @Param("appUserId") Integer appUserId,
- @Param("comIds") List<Integer> comIds);
}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/UserCompetitionService.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/UserCompetitionService.java
index b4fcdb5..dab1424 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/service/UserCompetitionService.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/UserCompetitionService.java
@@ -3,9 +3,6 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.competition.entity.UserCompetition;
-import java.util.Date;
-import java.util.List;
-
/**
* <p>
* 赛事报名记录 服务类
@@ -16,7 +13,5 @@
*/
public interface UserCompetitionService extends IService<UserCompetition> {
-
- List<UserCompetition> queryUsersCompetetions(Date startTime, Date endTime ,Integer appUserId, List<Integer> comIds);
}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/UserCompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/UserCompetitionServiceImpl.java
index 8fd1b12..7ad920b 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/UserCompetitionServiceImpl.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/UserCompetitionServiceImpl.java
@@ -20,9 +20,4 @@
@Service
public class UserCompetitionServiceImpl extends ServiceImpl<UserCompetitionMapper, UserCompetition> implements UserCompetitionService {
-
- @Override
- public List<UserCompetition> queryUsersCompetetions(Date startTime, Date endTime , Integer appUserId, List<Integer> comIds) {
- return this.baseMapper.queryUsersCompetetions(startTime,endTime,appUserId,comIds);
- }
}
diff --git a/cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml b/cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml
index 93a7fcc..9b31cc5 100644
--- a/cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml
+++ b/cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml
@@ -2,37 +2,5 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsh.competition.mapper.UserCompetitionMapper">
- <select id="queryUsersCompetetions" resultType="com.dsh.competition.entity.UserCompetition">
- SELECT *
- FROM t_user_competition
- UNION ALL
- SELECT *
- FROM t_user_competition1
- UNION ALL
- SELECT *
- FROM t_user_competition2
- UNION ALL
- SELECT *
- FROM t_user_competition3
- UNION ALL
- SELECT *
- FROM t_user_competition4
- UNION ALL
- SELECT *
- FROM t_user_competition5
- WHERE 1 = 1
- <if test=" stuId != null">
- and studentId = #{stuId}
- </if>
- <if test="appUserId != null">
- and competitionId in
- <foreach collection="comIds" item="item" separator="," open="(" index="index" close=")">
- #{item}
- </foreach>
- </if>
- <if test="startTime != null and endTime != null">
- and (insertTime between #{startTime} and #{endTime})
- </if>
- </select>
</mapper>
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CancelSourceController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CancelSourceController.java
index e6e427f..e66f5f1 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CancelSourceController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CancelSourceController.java
@@ -42,8 +42,10 @@
@PostMapping("/base/cancelSource/cancelList")
public List<PurchaseRecordVo> getCancelCourseList(@RequestBody GetStuSessionList sessionList){
List<PurchaseRecordVo> purchaseRecordVos = new ArrayList<>();
-
- List<TCoursePackagePayment> tCoursePackagePayments = tcppService.queryAllCoursePackage(sessionList.getStartTime(),sessionList.getEndTime(),null,sessionList.getStuId(), sessionList.getAppUserId());
+ List<TCoursePackagePayment> tCoursePackagePayments = tcppService.list(new QueryWrapper<TCoursePackagePayment>()
+ .between("insertTime", sessionList.getStartTime(),sessionList.getEndTime())
+ .eq("appUserId",sessionList.getAppUserId())
+ .eq("studentId",sessionList.getStuId()));
List<Long> coursePackageIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getId).collect(Collectors.toList());
List<CancelledClasses> list = caceService.list(new QueryWrapper<CancelledClasses>()
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 1a26b08..06f3da1 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,20 +6,33 @@
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.model.vo.CourseDetailRequest;
-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.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;
+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.*;
@@ -51,6 +64,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");
/**
@@ -61,7 +86,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());
@@ -106,7 +134,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>()
@@ -126,7 +157,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();
@@ -147,7 +182,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();
@@ -166,7 +203,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<>();
@@ -242,10 +282,6 @@
}
switch (payType) {
case 1:
- courseVo.setAmount(cashPaymentValue);
- courseVo.setVipAmount(discountMember);
- courseVo.setWpGold(playPaiCoin);
- break;
case 2:
courseVo.setAmount(cashPaymentValue);
courseVo.setVipAmount(discountMember);
@@ -264,14 +300,207 @@
@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;
}
+ @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.list(new QueryWrapper<TCoursePackagePayment>()
+ .eq("appUserId",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....."),
+ })
+ public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList( CourseOfAfterRequest search){
+ try {
+ Integer appUserId = tokenUtil.getUserIdFormRedis();
+
+ if(null == appUserId){
+ return ResultUtil.tokenErr();
+ }
+ List<Integer> courseIds = new ArrayList<>();
+ 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());
+ }
+ 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....."),
+ })
+ public ResultUtil<CourseOfVideoResponse> queryAfterSourceDetails( 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....."),
+ })
+ public ResultUtil updateVideoStatus( 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();
+ }
+ }
+
+
+ /**
+ * 已报名课程列表
+ */
+ @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( 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();
+ }
+
+ }
+
+
+ /**
+ * 已报名课程详情
+ */
+ @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();
+ }
+
+ }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
index 237d8e6..81e2384 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
@@ -38,7 +38,12 @@
Integer sult = 0;
TCoursePackage coursePackage = tcpService.getById(course.getCourseId());
if (null != coursePackage && coursePackage.getStatus() == 3){
- List<CoursePackageStudent> coursePackageStudents = cosService.queryStuDeduClassHourNums(course.getCourseId(), course.getStuId(), course.getAppUserId());
+ List<CoursePackageStudent> coursePackageStudents = cosService.list(new QueryWrapper<CoursePackageStudent>()
+ .eq("coursePackageId",course.getCourseId() )
+ .eq("studentId",course.getStuId() )
+ .eq("appUserId", course.getAppUserId())
+ .eq("signInOrNot",1));
+
if (coursePackageStudents.size() > 0){
List<CancelledClasses> list = caccService.list(new QueryWrapper<CancelledClasses>()
.eq("coursePackageId",course.getCourseId() ));
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/UserVideoDetails.java b/cloud-server-course/src/main/java/com/dsh/course/entity/UserVideoDetails.java
new file mode 100644
index 0000000..fbbc9fe
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/UserVideoDetails.java
@@ -0,0 +1,63 @@
+package com.dsh.course.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 用户观看视频记录
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_user_video_details")
+public class UserVideoDetails extends Model<UserVideoDetails> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键id
+ */
+ private Integer id;
+ /**
+ * 用户id
+ */
+ private Integer appUserId;
+ /**
+ * 课包id
+ */
+ private Integer coursePackageId;
+ /**
+ * 课后视频id
+ */
+ private Integer courseId;
+ /**
+ * 状态(1未学习 2已学习)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java
index 467c16d..020e7b7 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java
@@ -28,4 +28,8 @@
@PostMapping("/base/coursePack/afterCourseTwos")
List<AfterVideoVo> getAfterCourseTwos(@RequestParam("appUserId") Integer appUserId);
+
+ @PostMapping("/base/coursePack/courseOfPurchased")
+ public List<PurchaseVo> getAppUsersCourseData(@RequestBody Integer appUserId);
+
}
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/feignclient/activity/BenefitVideoClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/BenefitVideoClient.java
new file mode 100644
index 0000000..2910ddd
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/BenefitVideoClient.java
@@ -0,0 +1,16 @@
+package com.dsh.course.feignclient.activity;
+
+import com.dsh.course.feignclient.activity.model.BenefitsVideos;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@FeignClient(value = "mb-cloud-activity")
+public interface BenefitVideoClient {
+
+
+ @PostMapping("base/benefitVideo/getList")
+ BenefitsVideos getVideosWithIds(@RequestBody Integer id);
+
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/BenefitsVideos.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/BenefitsVideos.java
new file mode 100644
index 0000000..3382f47
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/BenefitsVideos.java
@@ -0,0 +1,61 @@
+package com.dsh.course.feignclient.activity.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-06
+ */
+@Data
+public class BenefitsVideos {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 分类id
+ */
+ private Integer benefitsVideoClassificationId;
+ /**
+ * 视频名称
+ */
+ private String name;
+ /**
+ * 视频封面
+ */
+ private String cover;
+ /**
+ * 视频简介
+ */
+ private String introduction;
+ /**
+ * 视频地址
+ */
+ private String videos;
+ /**
+ * 可得积分
+ */
+ private String integral;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PurchaseVo.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PurchaseVo.java
new file mode 100644
index 0000000..887dfde
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PurchaseVo.java
@@ -0,0 +1,37 @@
+package com.dsh.course.feignclient.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class PurchaseVo {
+
+ @ApiModelProperty(value = "课包id")
+ private Integer courseId;
+
+ @ApiModelProperty(value = "课包封面图")
+ private String packageImg;
+
+ @ApiModelProperty(value = "课包名称")
+ private String courseName;
+
+ @ApiModelProperty(value = "上课时间段")
+ private String courseTime;
+
+ @ApiModelProperty(value = "授课老师id")
+ private Integer teacherId;
+
+ @ApiModelProperty(value = "门店id")
+ private Integer storeId;
+
+ @ApiModelProperty(value = "已上课时数")
+ private Integer courseNums;
+
+ @ApiModelProperty(value = "课包状态 1=待支付 2=已购买")
+ private Integer courseStatus;
+
+ @ApiModelProperty(value = "课包类型id")
+ private Integer courseTypeId;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
index d686cf9..d6057a6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
@@ -2,9 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.course.entity.CoursePackageStudent;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
/**
* <p>
@@ -16,8 +13,5 @@
*/
public interface CoursePackageStudentMapper extends BaseMapper<CoursePackageStudent> {
- List<CoursePackageStudent> queryStuDeduClassHourNums(@Param("courseId") Integer courseId,
- @Param("stuId") Integer stuId,
- @Param("appUserId") Integer appUserId);
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/PostCourseVideoMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/PostCourseVideoMapper.java
index e4a31e5..4bbfdc8 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/PostCourseVideoMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/PostCourseVideoMapper.java
@@ -13,4 +13,5 @@
*/
public interface PostCourseVideoMapper extends BaseMapper<PostCourseVideo> {
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
index efea10f..63917a7 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
@@ -1,11 +1,8 @@
package com.dsh.course.mapper;
-import com.dsh.course.entity.TCoursePackagePayment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.course.entity.TCoursePackagePayment;
import org.apache.ibatis.annotations.Param;
-
-import java.util.Date;
-import java.util.List;
/**
* <p>
@@ -17,11 +14,6 @@
*/
public interface TCoursePackagePaymentMapper extends BaseMapper<TCoursePackagePayment> {
- List<TCoursePackagePayment> queryAllCoursePackage(@Param("startTime")Date startTime,
- @Param("endTime")Date endTime ,
- @Param("coursePackId") Integer coursePackId,
- @Param("stuId") Integer stuId,
- @Param("appUserId") Integer appUserId);
/**
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/UserVideoDetailsMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/UserVideoDetailsMapper.java
new file mode 100644
index 0000000..42e206c
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/UserVideoDetailsMapper.java
@@ -0,0 +1,17 @@
+package com.dsh.course.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.course.entity.UserVideoDetails;
+
+/**
+ * <p>
+ * 用户观看视频记录 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-06
+ */
+public interface UserVideoDetailsMapper extends BaseMapper<UserVideoDetails> {
+
+
+}
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
new file mode 100644
index 0000000..c9dc4d5
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java
@@ -0,0 +1,31 @@
+package com.dsh.course.model.vo;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class RegisterCourseVo {
+
+ @ApiModelProperty(value = "课包id")
+ private Integer coursePackageId;
+
+ @ApiModelProperty(value = "课包封面图")
+ private String packageImg;
+
+ @ApiModelProperty(value = "课包名称+门店名称")
+ private String courseNameStore;
+
+ @ApiModelProperty(value = "上课时间段")
+ private String courseTime;
+
+ @ApiModelProperty(value = "授课老师")
+ private String courseTeacher;
+
+ @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/StuCourseRequest.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/StuCourseRequest.java
deleted file mode 100644
index 2a2eec6..0000000
--- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/StuCourseRequest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.dsh.course.model.vo;
-
-
-import lombok.Data;
-
-@Data
-public class StuCourseRequest {
-
- Integer courseId;
-
- Integer stuId;
-
- Integer appUserId;
-
-}
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/request/CourseOfAfterRequest.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/CourseOfAfterRequest.java
new file mode 100644
index 0000000..5feaa4d
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/CourseOfAfterRequest.java
@@ -0,0 +1,17 @@
+package com.dsh.course.model.vo.request;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CourseOfAfterRequest {
+
+ @ApiModelProperty(value = "课程类型id",dataType = "int",required = false)
+ private Integer courseTypeId;
+
+ @ApiModelProperty(value = "课程名称/门店名称",dataType = "string",required = false)
+ private String search;
+
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/CourseWithDetailsRequest.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/CourseWithDetailsRequest.java
new file mode 100644
index 0000000..e10b741
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/CourseWithDetailsRequest.java
@@ -0,0 +1,16 @@
+package com.dsh.course.model.vo.request;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CourseWithDetailsRequest {
+
+ @ApiModelProperty(value = "视频id")
+ private Integer videoId;
+
+ @ApiModelProperty(value = "课包id")
+ private Integer coursePackageId;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/UpdateCourseVideoStatusRequest.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/UpdateCourseVideoStatusRequest.java
new file mode 100644
index 0000000..bee3540
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/UpdateCourseVideoStatusRequest.java
@@ -0,0 +1,20 @@
+package com.dsh.course.model.vo.request;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class UpdateCourseVideoStatusRequest {
+
+
+ @ApiModelProperty(value = "视频id")
+ private Integer videoId;
+
+ @ApiModelProperty(value = "课包id")
+ private Integer coursePackageId;
+
+ @ApiModelProperty(value = "是否看完 1是 2否")
+ private Integer isOver;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java
new file mode 100644
index 0000000..49065dc
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java
@@ -0,0 +1,34 @@
+package com.dsh.course.model.vo.response;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AppUserVideoResponse {
+
+ @ApiModelProperty(value = "视频id")
+ private Integer videoId;
+
+ @ApiModelProperty(value = "课包id")
+ private Integer coursePackageId;
+
+ @ApiModelProperty(value = "封面图")
+ private String coverImage;
+
+ @ApiModelProperty(value = "视频名称")
+ private String videoName;
+
+ @ApiModelProperty(value = "布置课程名称")
+ private String packageName;
+
+ @ApiModelProperty(value = "简介")
+ private String synopsis;
+
+ @ApiModelProperty(value = "可得积分")
+ private String integral;
+
+ @ApiModelProperty(value = "学习状态 1未学习 2已学习")
+ private Integer studyStatus;
+
+}
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/model/vo/response/CourseOfVideoResponse.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseOfVideoResponse.java
new file mode 100644
index 0000000..cc156f2
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseOfVideoResponse.java
@@ -0,0 +1,37 @@
+package com.dsh.course.model.vo.response;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CourseOfVideoResponse {
+
+ @ApiModelProperty(value = "视频id")
+ private Integer videoId;
+
+ @ApiModelProperty(value = "课包id")
+ private Integer coursePackageId;
+
+ @ApiModelProperty(value = "视频url")
+ private String videoURL;
+
+ @ApiModelProperty(value = "视频名称")
+ private String videoName;
+
+ @ApiModelProperty(value = "可得积分")
+ private String integral;
+
+ @ApiModelProperty(value = "学习状态 1未学习 2已学习")
+ private Integer studyStatus;
+
+ @ApiModelProperty(value = "布置课程名称")
+ private String packageName;
+
+ @ApiModelProperty(value = "视频简介")
+ private String synopsis;
+
+ @ApiModelProperty(value = "课程介绍图片")
+ private String detailedDiagram;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java
index ba01211..3f623f4 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java
@@ -3,8 +3,6 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.course.entity.CoursePackageStudent;
-import java.util.List;
-
/**
* <p>
* 学员上课记录 服务类
@@ -15,6 +13,6 @@
*/
public interface CoursePackageStudentService extends IService<CoursePackageStudent> {
- List<CoursePackageStudent> queryStuDeduClassHourNums(Integer courseId, Integer stuId, Integer appUserId);
+
}
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 db11bfd..35a855e 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
@@ -2,8 +2,16 @@
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;
/**
@@ -16,7 +24,6 @@
*/
public interface TCoursePackagePaymentService extends IService<TCoursePackagePayment> {
- List<TCoursePackagePayment> queryAllCoursePackage(Date startTime, Date endTime ,Integer lessionId,Integer stuId, Integer appUserId);
/**
@@ -25,4 +32,49 @@
* @return
*/
Integer queryCountNumber(Integer coursePackageId);
+
+ /**
+ * 查询课包发布的课后视频列表
+ * @param search
+ * @param courseIds
+ * @return
+ */
+ List<AppUserVideoResponse> queryAfterVideo(CourseOfAfterRequest search,List<Integer> courseIds);
+
+ /**
+ * 获取课后视频详情
+ * @param detailsRequest
+ * @param appUserId
+ * @return
+ */
+ CourseOfVideoResponse queryVideoDetails(CourseWithDetailsRequest detailsRequest,Integer appUserId);
+
+ /**
+ * 更新视频学习状态
+ * @param detailsRequest
+ * @param appUserId
+ * @return
+ */
+ String updateVideoStatus(UpdateCourseVideoStatusRequest detailsRequest, Integer appUserId);
+
+ /**
+ * 获取用户已报名课程
+ * @param courseTypeId
+ * @param appUserId
+ * @return
+ */
+ 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/UserVideoDetailsService.java b/cloud-server-course/src/main/java/com/dsh/course/service/UserVideoDetailsService.java
new file mode 100644
index 0000000..6805af7
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/UserVideoDetailsService.java
@@ -0,0 +1,16 @@
+package com.dsh.course.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.course.entity.UserVideoDetails;
+
+/**
+ * <p>
+ * 用户观看视频记录 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-06
+ */
+public interface UserVideoDetailsService extends IService<UserVideoDetails> {
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
index ba33ad3..7d1f58c 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
@@ -6,8 +6,6 @@
import com.dsh.course.service.CoursePackageStudentService;
import org.springframework.stereotype.Service;
-import java.util.List;
-
/**
* <p>
* 学员上课记录 服务实现类
@@ -19,8 +17,5 @@
@Service
public class CoursePackageStudentServiceImpl extends ServiceImpl<CoursePackageStudentMapper, CoursePackageStudent> implements CoursePackageStudentService {
- @Override
- public List<CoursePackageStudent> queryStuDeduClassHourNums(Integer courseId, Integer stuId, Integer appUserId) {
- return this.baseMapper.queryStuDeduClassHourNums(courseId,stuId,appUserId);
- }
+
}
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 f61dff9..9c9e572 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
@@ -1,13 +1,37 @@
package com.dsh.course.service.impl;
-import com.dsh.course.entity.TCoursePackagePayment;
-import com.dsh.course.mapper.TCoursePackagePaymentMapper;
-import com.dsh.course.service.TCoursePackagePaymentService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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.feignclient.other.StoreClient;
+import com.dsh.course.feignclient.other.model.Store;
+import com.dsh.course.mapper.*;
+import com.dsh.course.model.dto.DiscountJsonDto;
+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 com.dsh.course.util.StrUtils;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.Date;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
/**
* <p>
@@ -20,10 +44,36 @@
@Service
public class TCoursePackagePaymentServiceImpl extends ServiceImpl<TCoursePackagePaymentMapper, TCoursePackagePayment> implements TCoursePackagePaymentService {
- @Override
- public List<TCoursePackagePayment> queryAllCoursePackage(Date startTime, Date endTime , Integer coursePackId, Integer stuId, Integer appUserId) {
- return this.baseMapper.queryAllCoursePackage(startTime,endTime,coursePackId,stuId,appUserId);
- }
+
+ @Autowired
+ private BenefitVideoClient bfvoClient;
+
+
+ @Autowired
+ private UserVideoDetailsMapper uvdmapper;
+
+ @Autowired
+ private PostCourseVideoMapper pcvMapper;
+
+ @Autowired
+ private TCoursePackageMapper tcpmapper;
+
+ @Autowired
+ private StoreClient stoClient;
+
+ @Autowired
+ private CoachClient coachClient;
+
+ @Autowired
+ private CoursePackageStudentMapper cpsMapper;
+
+ @Autowired
+ private CancelledClassesMapper cacMapper;
+
+ @Autowired
+ private TCoursePackageDiscountMapper tcpdMapper;
+
+
/**
* 获取课包购买人数
@@ -34,4 +84,231 @@
public Integer queryCountNumber(Integer coursePackageId) {
return this.baseMapper.queryCountNumber(coursePackageId);
}
+
+ @Override
+ public List<AppUserVideoResponse> queryAfterVideo(CourseOfAfterRequest search,List<Integer> courseIds) {
+ List<AppUserVideoResponse> responses = new ArrayList<>();
+ List<PostCourseVideo> videoList = pcvMapper.selectList(new QueryWrapper<PostCourseVideo>()
+ .eq("coursePackageId", courseIds));
+
+ if (videoList.size() > 0){
+ List<Integer> videoIds = videoList.stream().map(PostCourseVideo::getCourseId).collect(Collectors.toList());
+ List<UserVideoDetails> userVideoDetails = uvdmapper.selectList(new QueryWrapper<UserVideoDetails>()
+ .in("courseId", videoIds));
+ if (userVideoDetails.size() > 0){
+ for (UserVideoDetails userVideoDetail : userVideoDetails) {
+ AppUserVideoResponse response = new AppUserVideoResponse();
+ TCoursePackage coursePackage = tcpmapper.selectById(userVideoDetail.getCoursePackageId());
+ response.setPackageName(coursePackage.getName());
+ response.setCoursePackageId(userVideoDetail.getCoursePackageId());
+ BenefitsVideos videosWithIds = bfvoClient.getVideosWithIds(userVideoDetail.getCourseId());
+ response.setVideoId(userVideoDetail.getCourseId());
+ response.setCoverImage(videosWithIds.getCover());
+ if (null != search.getSearch()){
+// 根据正则模糊匹配
+ String pattern = ".*" + search.getSearch() + ".*";
+ Pattern regex = Pattern.compile(pattern);
+ Matcher matcher = regex.matcher(videosWithIds.getName());
+ if (matcher.matches()) {
+ response.setVideoName(videosWithIds.getName());
+ }
+ }else {
+ response.setVideoName(videosWithIds.getName());
+ }
+ response.setSynopsis(videosWithIds.getIntroduction());
+ response.setIntegral(videosWithIds.getIntegral());
+ response.setStudyStatus(userVideoDetail.getState());
+ responses.add(response);
+ }
+ Collections.sort(responses, Comparator.comparing(AppUserVideoResponse::getStudyStatus));
+ }
+ }
+ return responses;
+ }
+
+ @Override
+ public CourseOfVideoResponse queryVideoDetails(CourseWithDetailsRequest detailsRequest,Integer appUserId) {
+ CourseOfVideoResponse response = new CourseOfVideoResponse();
+ BenefitsVideos videosWithIds = bfvoClient.getVideosWithIds(detailsRequest.getVideoId());
+ TCoursePackage coursePackage = tcpmapper.selectById(detailsRequest.getCoursePackageId());
+ if (null != videosWithIds && null != coursePackage){
+ response.setCoursePackageId(coursePackage.getId());
+ response.setVideoId(videosWithIds.getId());
+ response.setVideoURL(videosWithIds.getVideos());
+ response.setVideoName(videosWithIds.getName());
+ response.setIntegral(videosWithIds.getIntegral());
+ UserVideoDetails userVideoDetails = uvdmapper.selectOne(new QueryWrapper<UserVideoDetails>()
+ .eq("appUserId",appUserId )
+ .eq("coursePackageId",coursePackage.getId())
+ .eq("courseId",videosWithIds.getId()));
+
+ response.setStudyStatus(userVideoDetails.getState());
+ response.setPackageName(coursePackage.getName());
+ response.setSynopsis(videosWithIds.getIntroduction());
+ response.setDetailedDiagram(coursePackage.getIntroduceDrawing());
+ }
+
+ return response;
+ }
+
+ @Override
+ public String updateVideoStatus(UpdateCourseVideoStatusRequest detailsRequest, Integer appUserId) {
+ UserVideoDetails userVideoDetails = uvdmapper.selectOne(new QueryWrapper<UserVideoDetails>()
+ .eq("appUserId",appUserId )
+ .eq("coursePackageId",detailsRequest.getCoursePackageId())
+ .eq("courseId",detailsRequest.getVideoId())
+ );
+ if (null != userVideoDetails && userVideoDetails.getState() ==1 && detailsRequest.getIsOver() == 1){
+ userVideoDetails.setState(2);
+ userVideoDetails.setUpdateTime(new Date());
+ uvdmapper.updateById(userVideoDetails);
+ return "SUCCESS";
+ }
+ return null;
+ }
+
+ @Override
+ public List<RegisterCourseVo> queryRegisteredCourseList(CourseOfAfterRequest courseTypeId, Integer appUserId) {
+ List<RegisterCourseVo> courseVos = new ArrayList<>();
+ List<TCoursePackagePayment> tCoursePackagePayments = this.list(new QueryWrapper<TCoursePackagePayment>()
+ .eq("appUserId",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.selectList(new QueryWrapper<CoursePackageStudent>()
+ .eq("coursePackageId",coursePackage.getId())
+ .eq("studentId",appUserId ));
+ registerCourseVo.setCourseNums(coursePackageStudents.size() * 2);
+ registerCourseVo.setPayStatus(tCoursePackagePayment.getPayStatus());
+ courseVos.add(registerCourseVo);
+ }
+ }
+ return courseVos;
+ }
+
+ @Override
+ public CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePackageId, Integer appUserId) {
+ CourseDetailsResponse response = new CourseDetailsResponse();
+ List<TCoursePackagePayment> tCoursePackagePayments = this.list(new QueryWrapper<TCoursePackagePayment>()
+ .eq("coursePackageId",coursePackageId )
+ .eq("appUserId",appUserId));
+
+ if (tCoursePackagePayments.size() > 0){
+ TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0);
+ TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
+ response.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
+ response.setCoverDrawing(coursePackage.getCoverDrawing());
+ response.setCoursePackageName(coursePackage.getName());
+ List<Integer> integers = StrUtils.dealStrToList(coursePackage.getClassWeeks());
+ if (integers.size() > 0){
+ StringBuilder courWeeks = new StringBuilder("每");
+ for (Integer integer : integers) {
+ switch (integer){
+ case 1:
+ courWeeks.append("周一、");
+ break;
+ case 2:
+ courWeeks.append("周二、");
+ break;
+ case 3:
+ courWeeks.append("周三、");
+ break;
+ case 4:
+ courWeeks.append("周四、");
+ break;
+ case 5:
+ courWeeks.append("周五、");
+ break;
+ case 6:
+ courWeeks.append("周六、");
+ break;
+ case 7:
+ courWeeks.append("周末、");
+ break;
+ default:
+ break;
+ }
+ }
+ if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == ','){
+ courWeeks.deleteCharAt(courWeeks.length() - 1);
+ }
+ response.setWeeks(courWeeks.toString());
+ }
+ response.setCourseTimeFrame(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime());
+ response.setIntroduceDrawing(coursePackage.getIntroduceDrawing());
+
+ Integer payType = tCoursePackagePayment.getPayType();
+ BigDecimal cashPayment = tCoursePackagePayment.getCashPayment();
+ double cashPaymentValue = cashPayment.doubleValue();
+ Integer playPaiCoin = tCoursePackagePayment.getPlayPaiCoin();
+ TCoursePackageDiscount coursePackageDiscount = tcpdMapper.selectOne(new QueryWrapper<TCoursePackageDiscount>()
+ .eq("coursePackageId",coursePackage.getId() )
+ .eq("type",1)
+ .eq("auditStatus",2));
+ ObjectMapper objectMapper = new ObjectMapper();
+ String content = coursePackageDiscount.getContent();
+ double discountMember = 0.0;
+ DiscountJsonDto discountJsonDto = null;
+ try {
+ discountJsonDto = objectMapper.readValue(content, DiscountJsonDto.class);
+ discountMember = discountJsonDto.getDiscountMember();
+ } catch (JsonProcessingException e) {
+ throw new RuntimeException(e);
+ }
+ switch (payType) {
+ case 1:
+ case 2:
+ response.setAmount(cashPaymentValue);
+ response.setVipAmount(discountMember);
+ break;
+ case 3:
+ response.setWpGold(playPaiCoin);
+ break;
+ }
+ response.setPayStatus(tCoursePackagePayment.getPayStatus());
+ }
+ return response;
+ }
+
+ @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(){
+
+ }
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/UserVideoDetailsServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/UserVideoDetailsServiceImpl.java
new file mode 100644
index 0000000..bb6117d
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/UserVideoDetailsServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.course.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.course.entity.UserVideoDetails;
+import com.dsh.course.mapper.UserVideoDetailsMapper;
+import com.dsh.course.service.UserVideoDetailsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户观看视频记录 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-06
+ */
+@Service
+public class UserVideoDetailsServiceImpl extends ServiceImpl<UserVideoDetailsMapper, UserVideoDetails> implements UserVideoDetailsService {
+
+}
diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
index f9e2d0d..63b7bd3 100644
--- a/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
@@ -3,33 +3,4 @@
<mapper namespace="com.dsh.course.mapper.CoursePackageStudentMapper">
- <select id="queryStuDeduClassHourNums" resultType="com.dsh.course.entity.CoursePackageStudent">
- SELECT *
- FROM t_course_package_student
- UNION ALL
- SELECT *
- FROM t_course_package_student1
- UNION ALL
- SELECT *
- FROM t_course_package_student2
- UNION ALL
- SELECT *
- FROM t_course_package_student3
- UNION ALL
- SELECT *
- FROM t_course_package_student4
- UNION ALL
- SELECT *
- FROM t_course_package_student5
- WHERE signInOrNot = 1
- <if test="courseId != null">
- and coursePackageId = #{courseId}
- </if>
- <if test="stuId != null ">
- and studentId = #{stuId}
- </if>
- <if test="appUserId != null">
- and appUserId = #{appUserId}
- </if>
- </select>
</mapper>
diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
index 41486fa..67802be 100644
--- a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
@@ -25,38 +25,6 @@
<result column="state" property="state" />
<result column="insertTime" property="insertTime" />
</resultMap>
- <select id="queryAllCoursePackage" resultType="com.dsh.course.entity.TCoursePackagePayment">
- SELECT *
- FROM t_course_package_payment
- UNION ALL
- SELECT *
- FROM t_course_package_payment1
- UNION ALL
- SELECT *
- FROM t_course_package_payment2
- UNION ALL
- SELECT *
- FROM t_course_package_payment3
- UNION ALL
- SELECT *
- FROM t_course_package_payment4
- UNION ALL
- SELECT *
- FROM t_course_package_payment5
- WHERE 1=1
- <if test=" stuId != null">
- and studentId = #{stuId}
- </if>
- <if test="appUserId != null">
- and appUserId = #{appUserId}
- </if>
- <if test="startTime != null and endTime != null">
- and (insertTime between #{startTime} and #{endTime})
- </if>
- <if test="coursePackId != null ">
- and coursePackageId = #{coursePackId}
- </if>
- </select>
<select id="queryCountNumber" resultType="int">
diff --git a/cloud-server-course/src/main/resources/mapper/UserVideoDetailsMapper.xml b/cloud-server-course/src/main/resources/mapper/UserVideoDetailsMapper.xml
new file mode 100644
index 0000000..d98aac9
--- /dev/null
+++ b/cloud-server-course/src/main/resources/mapper/UserVideoDetailsMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.course.mapper.UserVideoDetailsMapper">
+
+
+</mapper>
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/UserLoginLogController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/UserLoginLogController.java
new file mode 100644
index 0000000..7bddb2c
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/UserLoginLogController.java
@@ -0,0 +1,44 @@
+package com.dsh.other.controller;
+
+
+import com.dsh.other.entity.SysLoginLog;
+import com.dsh.other.service.SysLoginLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+@RestController
+@RequestMapping("")
+public class UserLoginLogController {
+
+
+ @Autowired
+ private SysLoginLogService ssllService;
+
+
+ @PostMapping("/appUser/logOut")
+ public void logOut(@RequestBody Integer appUserId){
+ SysLoginLog sysLoginLog = new SysLoginLog();
+ sysLoginLog.setCreatetime(new Date());
+ sysLoginLog.setUserid(appUserId);
+ sysLoginLog.setSucceed("执行成功");
+ sysLoginLog.setMessage("退出成功");
+ sysLoginLog.setLogname("APP用户退出账号");
+ ssllService.save(sysLoginLog);
+ }
+
+ @PostMapping("/appUser/cancellation")
+ public void cancellation(@RequestBody Integer appUserId){
+ SysLoginLog sysLoginLog = new SysLoginLog();
+ sysLoginLog.setCreatetime(new Date());
+ sysLoginLog.setUserid(appUserId);
+ sysLoginLog.setSucceed("执行成功");
+ sysLoginLog.setMessage("注销成功");
+ sysLoginLog.setLogname("APP用户注销账号");
+ ssllService.save(sysLoginLog);
+ }
+
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/SysLoginLog.java b/cloud-server-other/src/main/java/com/dsh/other/entity/SysLoginLog.java
new file mode 100644
index 0000000..d9922ab
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/SysLoginLog.java
@@ -0,0 +1,66 @@
+package com.dsh.other.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 登录记录
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("sys_login_log")
+public class SysLoginLog extends Model<SysLoginLog> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 日志名称
+ */
+ private String logname;
+ /**
+ * 管理员id
+ */
+ private Integer userid;
+ /**
+ * 创建时间
+ */
+ private Date createtime;
+ /**
+ * 是否执行成功
+ */
+ private String succeed;
+ /**
+ * 具体消息
+ */
+ private String message;
+ /**
+ * 登录ip
+ */
+ private String ip;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/SysLogClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/SysLogClient.java
new file mode 100644
index 0000000..e9b6592
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/SysLogClient.java
@@ -0,0 +1,16 @@
+package com.dsh.other.feignclient;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@FeignClient(value = "mb-cloud-other")
+public interface SysLogClient {
+
+ @PostMapping("/appUser/logOut")
+ void logOut(@RequestBody Integer appUserId);
+
+ @PostMapping("/appUser/cancellation")
+ void cancellation(@RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/SysLoginLogMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/SysLoginLogMapper.java
new file mode 100644
index 0000000..0d2fb06
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/SysLoginLogMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.other.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.other.entity.SysLoginLog;
+
+/**
+ * <p>
+ * 登录记录 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+public interface SysLoginLogMapper extends BaseMapper<SysLoginLog> {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/SysLoginLogService.java b/cloud-server-other/src/main/java/com/dsh/other/service/SysLoginLogService.java
new file mode 100644
index 0000000..7ba050c
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/SysLoginLogService.java
@@ -0,0 +1,16 @@
+package com.dsh.other.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.other.entity.SysLoginLog;
+
+/**
+ * <p>
+ * 登录记录 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+public interface SysLoginLogService extends IService<SysLoginLog> {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SysLoginLogServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SysLoginLogServiceImpl.java
new file mode 100644
index 0000000..750061f
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SysLoginLogServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.other.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.other.entity.SysLoginLog;
+import com.dsh.other.mapper.SysLoginLogMapper;
+import com.dsh.other.service.SysLoginLogService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 登录记录 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-07
+ */
+@Service
+public class SysLoginLogServiceImpl extends ServiceImpl<SysLoginLogMapper, SysLoginLog> implements SysLoginLogService {
+
+}
diff --git a/cloud-server-other/src/main/resources/mapper/SysLoginLogMapper.xml b/cloud-server-other/src/main/resources/mapper/SysLoginLogMapper.xml
new file mode 100644
index 0000000..f5e0333
--- /dev/null
+++ b/cloud-server-other/src/main/resources/mapper/SysLoginLogMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.other.mapper.SysLoginLogMapper">
+
+
+</mapper>
--
Gitblit v1.7.1