From 60ef8b4a95540dfab9df0447364ee40c18354010 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 04 七月 2023 08:48:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CouponStuAvailableVo.java | 26
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CancelListClient.java | 20
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/SysNotice.java | 20
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java | 20
cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml | 35
cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java | 25
cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java | 47
cloud-server-competition/src/main/java/com/dsh/competition/service/UserCompetitionService.java | 22
cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java | 23
cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponMapper.java | 14
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/WeekedCourse.java | 11
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDataDetails.java | 18
cloud-server-course/src/main/java/com/dsh/course/util/StrUtils.java | 13
cloud-server-other/src/main/java/com/dsh/other/service/impl/PhoneServiceImpl.java | 20
cloud-server-other/src/main/resources/mapper/PhoneMapper.xml | 6
cloud-server-course/src/main/java/com/dsh/course/mapper/CancelledClassesMapper.java | 16
cloud-server-other/src/main/java/com/dsh/other/controller/AskedQuestionsController.java | 64
cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java | 2
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java | 17
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/QuestionClient.java | 19
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/IntroduceRewardsClient.java | 20
cloud-server-activity/src/main/resources/mapper/CouponMapper.xml | 16
cloud-server-account/src/main/java/com/dsh/account/model/vo/commentDetail/StuCommentsVo.java | 26
cloud-server-competition/src/main/java/com/dsh/competition/service/CompetitionService.java | 16
cloud-server-competition/src/main/resources/mapper/CompetitionMapper.xml | 6
cloud-server-course/src/main/java/com/dsh/course/util/DateUtil.java | 18
cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java | 46
cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java | 16
cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/RecordTimeRequest.java | 23
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuWithCoursesListVo.java | 19
cloud-server-other/src/main/java/com/dsh/other/entity/Phone.java | 50
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StudentOfCourseVo.java | 46
cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java | 54
cloud-server-other/src/main/java/com/dsh/other/entity/FrequentlyAskedQuestions.java | 62
cloud-server-account/src/main/java/com/dsh/account/entity/EvaluateStudent.java | 66
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java | 8
cloud-server-other/src/main/java/com/dsh/other/model/vo/questionVo/QuestionDetailsVo.java | 17
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/DeductionCompetitionsClient.java | 21
cloud-server-course/src/main/java/com/dsh/course/service/impl/CancelledClassesServiceImpl.java | 20
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java | 18
cloud-server-activity/src/main/resources/mapper/IntroduceRewardsMapper.xml | 8
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java | 17
cloud-server-other/src/main/java/com/dsh/other/feignclient/CustomerClient.java | 12
cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java | 16
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java | 28
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/IntroduceRewardsClient.java | 21
cloud-server-account/src/main/resources/mapper/EvaluateStudentMapper.xml | 5
cloud-server-activity/src/main/java/com/dsh/activity/service/IntroduceRewardsService.java | 16
cloud-server-activity/src/main/java/com/dsh/activity/entity/Coupon.java | 59
cloud-server-account/src/main/java/com/dsh/account/service/EvaluateStudentService.java | 21
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 163 +
cloud-server-course/src/main/java/com/dsh/course/feignclient/CancelListClient.java | 20
cloud-server-other/src/main/java/com/dsh/other/model/vo/questionVo/QuestionIns.java | 22
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDetailsInsVo.java | 41
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseHoursType.java | 16
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java | 9
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java | 13
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java | 26
cloud-server-other/src/main/java/com/dsh/other/feignclient/QuestionClient.java | 19
cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java | 16
cloud-server-other/src/main/java/com/dsh/other/mapper/NoticeMapper.java | 16
cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java | 151 +
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreDetailOfCourse.java | 16
cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java | 16
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/PurchaseRecordVo.java | 23
cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java | 13
cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml | 38
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java | 7
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuWithCoursesListVo.java | 19
cloud-server-activity/src/main/java/com/dsh/activity/entity/UserCoupon.java | 66
cloud-server-account/src/main/java/com/dsh/account/util/GDMapGeocodingUtil.java | 93 +
cloud-server-course/src/main/java/com/dsh/course/service/CancelledClassesService.java | 16
cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java | 191 +
cloud-server-other/src/main/java/com/dsh/other/entity/Notice.java | 66
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuAndAppuserIdsVo.java | 12
cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java | 2
cloud-server-course/src/main/java/com/dsh/course/controller/CancelSourceController.java | 66
cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/ExploreDatasVo.java | 19
cloud-server-other/src/main/resources/mapper/FrequentlyAskedQuestionsMapper.xml | 6
cloud-server-activity/src/main/java/com/dsh/activity/model/ConponJsonRuleModel.java | 22
cloud-server-course/src/main/resources/mapper/CancelledClassesMapper.xml | 5
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java | 12
cloud-server-other/src/main/java/com/dsh/other/service/impl/FrequentlyAskedQuestionsServiceImpl.java | 20
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java | 29
cloud-server-other/src/main/java/com/dsh/other/service/impl/NoticeServiceImpl.java | 20
cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java | 19
cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java | 5
cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml | 14
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PurchaseRecordVo.java | 23
cloud-server-other/src/main/java/com/dsh/other/util/HttpResult.java | 31
cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CourseHoursType.java | 16
cloud-server-activity/src/main/java/com/dsh/activity/service/UserCouponService.java | 16
cloud-server-other/pom.xml | 6
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java | 25
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 212 ++
cloud-server-activity/src/main/java/com/dsh/activity/controller/UserConponController.java | 73
cloud-server-other/src/main/resources/mapper/NoticeMapper.xml | 5
cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java | 10
cloud-server-course/src/main/java/com/dsh/course/entity/TCourse.java | 5
cloud-server-competition/src/main/java/com/dsh/competition/controller/UserCompetitionController.java | 20
cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java | 36
cloud-server-course/src/main/java/com/dsh/course/entity/CancelledClasses.java | 58
cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreLonLatList.java | 19
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java | 23
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java | 20
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java | 2
cloud-server-other/src/main/java/com/dsh/other/service/NoticeService.java | 16
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PurchaseRecordVo.java | 23
cloud-server-other/src/main/java/com/dsh/other/service/PhoneService.java | 16
cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CourseDetailsOfContinuationResp.java | 59
cloud-server-competition/src/main/java/com/dsh/competition/mapper/UserCompetitionMapper.java | 26
cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/model/PurchaseRecordVo.java | 23
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreLonLatList.java | 19
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 5
cloud-server-account/src/main/java/com/dsh/account/mapper/EvaluateStudentMapper.java | 16
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java | 2
cloud-server-other/src/main/java/com/dsh/other/controller/SystemNoticeController.java | 80
cloud-server-other/src/main/java/com/dsh/other/util/HttpClientUtil.java | 269 +++
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java | 18
cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/LonLatRequest.java | 15
cloud-server-activity/src/main/java/com/dsh/activity/entity/JSONConpon.java | 43
cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseSessionNameClient.java | 30
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/NoticeClient.java | 24
cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java | 67
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java | 20
cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java | 183 ++
cloud-server-other/src/main/java/com/dsh/other/mapper/PhoneMapper.java | 16
cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetails/QuestionIns.java | 19
cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml | 8
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java | 5
cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java | 120 +
cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetails/QuestionDetailsVo.java | 17
cloud-server-activity/src/main/java/com/dsh/activity/service/CouponService.java | 20
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/UserCompetitionServiceImpl.java | 28
cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java | 20
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/IntroduceRewardsServiceImpl.java | 20
cloud-server-competition/src/main/java/com/dsh/competition/entity/UserCompetition.java | 58
cloud-server-other/src/main/java/com/dsh/other/feignclient/NoticeClient.java | 25
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java | 2
cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/StuMedalVo.java | 22
cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java | 66
cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseListClient.java | 3
cloud-server-activity/src/main/java/com/dsh/activity/mapper/IntroduceRewardsMapper.java | 16
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ClassDataDetails.java | 17
cloud-server-account/src/main/java/com/dsh/account/util/DateTimeHelper.java | 50
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/CouponStuAvailableVo.java | 26
cloud-server-activity/src/main/java/com/dsh/activity/entity/IntroduceRewards.java | 78
cloud-server-other/src/main/java/com/dsh/other/mapper/FrequentlyAskedQuestionsMapper.java | 16
cloud-server-other/src/main/java/com/dsh/other/service/FrequentlyAskedQuestionsService.java | 16
cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java | 56
cloud-server-other/src/main/java/com/dsh/other/feignclient/StoreClient.java | 26
cloud-server-other/src/main/java/com/dsh/other/util/GDMapGeocodingUtil.java | 95 +
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 15
cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml | 8
cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreDetailOfCourse.java | 13
cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SysNotice.java | 21
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StudentOfCourseVo.java | 45
cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java | 65
158 files changed, 4,972 insertions(+), 130 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 87eb972..283299b 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
@@ -3,16 +3,20 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.account.entity.TStudent;
-import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq;
-import com.dsh.account.model.vo.classDetails.classInsVo.StuListVo;
-import com.dsh.account.model.vo.classDetails.classInsVo.StuPhysicalVo;
+import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import com.dsh.account.model.vo.classDetails.classInsVo.*;
+import com.dsh.account.model.vo.commentDetail.StuCommentsVo;
+import com.dsh.account.model.vo.medalDetail.StuMedalVo;
+import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo;
+import com.dsh.account.model.vo.sourceDetail.CourseDetailsOfContinuationResp;
+import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest;
+import com.dsh.account.service.EvaluateStudentService;
import com.dsh.account.service.TAppUserService;
import com.dsh.account.service.TStudentService;
import com.dsh.account.util.DateUtil;
import com.dsh.account.util.ResultUtil;
import com.dsh.account.util.TokenUtil;
import com.dsh.account.util.ToolUtil;
-import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@@ -31,10 +35,8 @@
/**
* 学员上课情况 接口
*/
-@Api
-@CrossOrigin
@RestController
-@RequestMapping("/base/startCource")
+@RequestMapping("")
public class ClassDetailsController {
private Logger logger = LoggerFactory.getLogger("business-log");
@@ -46,19 +48,22 @@
private TAppUserService tappuService;
@Autowired
+ private EvaluateStudentService evalstuService;
+
+ @Autowired
private TokenUtil tokenUtil;
@ResponseBody
- @PostMapping("/stu/queryStudentData")
- @ApiOperation(value = "根据登录用户ID查询学员信息", tags = {"APP-开始上课-用户学员信息"}, notes = "")
+ @PostMapping("/base/startCource/queryStudentData")
+ @ApiOperation(value = "上课首页", tags = {"APP-开始上课"})
@ApiImplicitParams({
@ApiImplicitParam(value = "经度值", name = "longitude", required = true, dataType = "String"),
@ApiImplicitParam(value = "纬度值", name = "latitude", required = true, dataType = "String"),
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
})
- public ResultUtil queryCouponRecord(String longitude,String latitude){
+ public ResultUtil<ClassInfoVo> queryCouponRecord(@RequestBody String longitude, @RequestBody String latitude){
try {
Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
if(null == userIdFormRedis){
@@ -73,8 +78,8 @@
@ResponseBody
- @PostMapping("/stu/queryPhysical")
- @ApiOperation(value = "获取学员测试报告", tags = {"APP-开始上课-获取学员测试报告"}, notes = "")
+ @PostMapping("/base/startCource/queryPhysical")
+ @ApiOperation(value = "获取学员测试报告", tags = {"APP-开始上课"})
@ApiImplicitParams({
@ApiImplicitParam(value = "学员id", name = "id", required = true, dataType = "int"),
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -95,8 +100,8 @@
* 添加学员信息
*/
@ResponseBody
- @PostMapping("/stu/addData")
- @ApiOperation(value = "添加学员信息", tags = {"APP-开始上课-添加学员信息"}, notes = "")
+ @PostMapping("/base/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.....")
@@ -119,12 +124,12 @@
* 该APP用户下的学员列表
*/
@ResponseBody
- @PostMapping("/stu/listOfStu")
- @ApiOperation(value = "该APP用户下的学员列表", tags = {"APP-开始上课-学员列表"}, notes = "")
+ @PostMapping("/base/startCource/listOfStu")
+ @ApiOperation(value = "学员列表", tags = {"APP-开始上课"})
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
})
- public ResultUtil queryStuList(){
+ public ResultUtil<List<StuListVo>> queryStuList(){
try {
Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
if(null == userIdFormRedis){
@@ -148,7 +153,7 @@
}
return ResultUtil.success(stuListVos);
}catch (Exception e){
- return ResultUtil.runErr(ResultUtil.ERROR);
+ return ResultUtil.runErr();
}
}
@@ -156,15 +161,157 @@
* 课时详情
*/
@ResponseBody
- @PostMapping("/stu/lessonDetails")
- @ApiOperation(value = "课时详情", tags = {"APP-开始上课-课时详情"}, notes = "")
+ @PostMapping("/base/startCource/lessonDetails")
+ @ApiOperation(value = "课时详情", tags = {"APP-开始上课"})
@ApiImplicitParams({
- @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ @ApiImplicitParam(value = "课包id", name = "lessonId", required = true, dataType = "int"),
+ @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
})
- public void coursePackageDetails(@RequestBody Integer lessonId){
+ public ResultUtil<ClassDetailsInsVo> coursePackageDetails(@RequestBody Integer lessonId, @RequestBody Integer stuId, HttpServletRequest request){
+ try {
+ Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(request);
+ if(null == userIdFormRedis){
+ return ResultUtil.tokenErr();
+ }
+
+ return ResultUtil.success(istuService.querySessionDetailsDt(userIdFormRedis,lessonId,stuId));
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
}
+ /**
+ * 课时详情-记录列表
+ */
+ @ResponseBody
+ @PostMapping("/base/startCource/recordDetails")
+ @ApiOperation(value = "课时详情-记录列表", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ })
+ public ResultUtil<List<PurchaseRecordVo>> recordList(@RequestBody RecordTimeRequest timeRequest, HttpServletRequest request){
+ try {
+ Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(request);
+ if(null == userIdFormRedis){
+ return ResultUtil.tokenErr();
+ }
+ return ResultUtil.success(istuService.queryDeduRecordDetails(timeRequest,userIdFormRedis));
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ /**
+ * 课时详情-续课课包详情
+ */
+ @ResponseBody
+ @PostMapping("/base/startCource/renewal")
+ @ApiOperation(value = "课时详情-续课课包详情", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<CourseDetailsOfContinuationResp> renewalOfCourses(@RequestBody Integer lessonId, @RequestBody Integer stuId, HttpServletRequest request){
+ try {
+ Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(request);
+ if(null == userIdFormRedis){
+ return ResultUtil.tokenErr();
+ }
+ return ResultUtil.success(istuService.queryStuOfCourseDetails(lessonId,stuId,userIdFormRedis));
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+
+ }
+
+
+ /**
+ * 课时详情-选择优惠券
+ */
+ @ResponseBody
+ @PostMapping("/base/startCource/conponList")
+ @ApiOperation(value = "课时详情-选择优惠券", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<List<CouponStuAvailableVo>> queryCouponList(HttpServletRequest request){
+ try {
+ Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(request);
+ if(null == userIdFormRedis){
+ return ResultUtil.tokenErr();
+ }
+ return ResultUtil.success(istuService.queryStuOfConponDetails(userIdFormRedis));
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+
+ }
+
+
+
+ /**
+ * 课时详情-支付
+ */
+ @ResponseBody
+ @PostMapping("/base/startCource/payment")
+ @ApiOperation(value = "课时详情-支付", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<?> continuationOperation(@RequestBody Integer lessonId, @RequestBody Integer stuId, HttpServletRequest request){
+ try {
+
+ return ResultUtil.success();
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+
+ }
+
+
+ /**
+ * 学员评语
+ */
+ @ResponseBody
+ @PostMapping("/base/startCource/stuComment")
+ @ApiOperation(value = "学员评语", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<List<StuCommentsVo>> queryStuComment(@RequestParam("stuId") Integer stuId){
+ try {
+ return ResultUtil.success(evalstuService.queryStuCommentsList(stuId));
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ /**
+ * 学员勋章
+ */
+ @ResponseBody
+ @PostMapping("/base/startCource/stuMedal")
+ @ApiOperation(value = "学员勋章", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<StuMedalVo> queryStuMedal(@RequestParam("stuId") Integer stuId, HttpServletRequest request){
+ try {
+ Integer appUserId = tokenUtil.getUserIdFormRedis(request);
+ 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/ExploreWPController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
new file mode 100644
index 0000000..cd8aaf7
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
@@ -0,0 +1,120 @@
+package com.dsh.account.controller;
+
+
+import com.dsh.account.feignclient.other.model.SysNotice;
+import com.dsh.account.model.vo.exploreDetail.ExploreDatasVo;
+import com.dsh.account.model.vo.exploreDetail.LonLatRequest;
+import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo;
+import com.dsh.account.model.vo.exploreDetails.QuestionIns;
+import com.dsh.account.service.TStudentService;
+import com.dsh.account.util.ResultUtil;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 探索玩湃 控制器
+ */
+@RestController
+@RequestMapping("")
+public class ExploreWPController {
+
+
+ @Autowired
+ private TStudentService tsService;
+
+ @ResponseBody
+ @PostMapping("/base/exploreWP/noticeList")
+ @ApiOperation(value = "联系客服-探索首页", tags = {"APP-探索玩湃"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<ExploreDatasVo> indexOfExploreDetail(@RequestBody LonLatRequest llrequest){
+ try {
+ return ResultUtil.success(tsService.queryIndexOfExplores(llrequest));
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+
+
+ @ResponseBody
+ @PostMapping("/base/exploreWP/noticeList")
+ @ApiOperation(value = "联系客服-公告列表", tags = {"APP-探索玩湃"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<List<SysNotice>> queryNoticeListDatas(){
+ try {
+ return ResultUtil.success(tsService.querySystemNoticeDetails());
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ @ResponseBody
+ @PostMapping("/base/exploreWP/noticeList")
+ @ApiOperation(value = "联系客服-公告详情", tags = {"APP-探索玩湃"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<SysNotice> queryNotice(@RequestBody Integer noId){
+ try {
+ return ResultUtil.success(tsService.queryNoticeData(noId));
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ @ResponseBody
+ @PostMapping("/base/exploreWP/noticeList")
+ @ApiOperation(value = "联系客服-常见问题列表", tags = {"APP-探索玩湃"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<QuestionDetailsVo> queryFrequentlyAskedQuestionDetails(){
+ try {
+ return ResultUtil.success(tsService.queryQuestionData());
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ @ResponseBody
+ @PostMapping("/base/exploreWP/noticeList")
+ @ApiOperation(value = "联系客服-常见问题详情", tags = {"APP-探索玩湃"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<QuestionIns> queryQuestionData(@RequestBody Integer quesId){
+ try {
+ return ResultUtil.success(tsService.queryQuestionDataInfo(quesId));
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+ @ResponseBody
+ @PostMapping("/base/exploreWP/noticeList")
+ @ApiOperation(value = "联系客服-客服电话列表", tags = {"APP-探索玩湃"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<List<String>> queryCustomerData(){
+ try {
+ return ResultUtil.success(tsService.queryCustomerDetails());
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java
new file mode 100644
index 0000000..fad5bff
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java
@@ -0,0 +1,36 @@
+package com.dsh.account.controller;
+
+
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 支付回调控制器
+ */
+
+
+@RestController
+@RequestMapping("/payment/callback")
+public class PaymentCallbackController {
+
+
+ /**
+ * 支付宝支付回调接口
+ */
+ @PostMapping("/v1")
+ public void alipayCallback(){
+
+ }
+
+
+ /**
+ * 微信支付回调接口
+ */
+ @PostMapping("/v2")
+ public void weChatCallback(){
+
+ }
+
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/EvaluateStudent.java b/cloud-server-account/src/main/java/com/dsh/account/entity/EvaluateStudent.java
new file mode 100644
index 0000000..78248aa
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/entity/EvaluateStudent.java
@@ -0,0 +1,66 @@
+package com.dsh.account.entity;
+
+import com.baomidou.mybatisplus.enums.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 评价学员记录
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_evaluate_student")
+public class EvaluateStudent extends Model<EvaluateStudent> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 教练id
+ */
+ private Integer coachId;
+ /**
+ * 学员id
+ */
+ private Integer studentId;
+ /**
+ * 评语
+ */
+ private String content;
+ /**
+ * 图片
+ */
+ private String imgs;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java b/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java
index 5c64cd6..bceb756 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java
@@ -1,8 +1,5 @@
package com.dsh.account.entity;
-import java.util.Date;
-import java.io.Serializable;
-
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -10,6 +7,8 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
+import java.util.Date;
+
/**
* <p>
* 用户信息
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/IntroduceRewardsClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/IntroduceRewardsClient.java
new file mode 100644
index 0000000..d9e3390
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/IntroduceRewardsClient.java
@@ -0,0 +1,21 @@
+package com.dsh.account.feignclient.activity;
+
+
+import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-activity")
+public interface IntroduceRewardsClient {
+
+
+ @PostMapping("/introduce/useOfRewards")
+ public List<PurchaseRecordVo> queryAppUsersofIntroduce(@RequestBody Date startTime,
+ @RequestBody Date endTime,
+ @RequestBody List<Integer> userIds);
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java
new file mode 100644
index 0000000..f1192fb
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java
@@ -0,0 +1,17 @@
+package com.dsh.account.feignclient.activity;
+
+import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-activity")
+public interface UserConponClient {
+
+
+ @PostMapping("/userConpon/getStuOfConpons")
+ public List<CouponStuAvailableVo> queryUserWithConponList(@RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java
new file mode 100644
index 0000000..66a66b2
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java
@@ -0,0 +1,19 @@
+package com.dsh.account.feignclient.competition;
+
+
+import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-competition")
+public interface DeductionCompetitionsClient {
+ @PostMapping("/competition/getCompetitionsDetails")
+ public List<PurchaseRecordVo> getStuSourseList(@RequestBody Date startTime,
+ @RequestBody Date endTime,
+ @RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/model/PurchaseRecordVo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/model/PurchaseRecordVo.java
new file mode 100644
index 0000000..c5f2c68
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/model/PurchaseRecordVo.java
@@ -0,0 +1,23 @@
+package com.dsh.account.feignclient.competition.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 类型实体类:
+ * 类型:购买课包、消课、报名赛事、介绍有礼
+ */
+
+@Data
+public class PurchaseRecordVo {
+
+ @ApiModelProperty(value = "类型名称")
+ private String purchaseType;
+
+ @ApiModelProperty(value = "类型变动时间 例如 06-29 10:48")
+ private String purchaseTime;
+
+ @ApiModelProperty(value = "类型涉及金额 例如 +100 -50")
+ private String purchaseAmount;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CancelListClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CancelListClient.java
new file mode 100644
index 0000000..59cf6ea
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CancelListClient.java
@@ -0,0 +1,20 @@
+package com.dsh.account.feignclient.course;
+
+import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-course")
+public interface CancelListClient {
+
+ @PostMapping("/cancelSource/cancelList")
+ public List<PurchaseRecordVo> getCancelCourseList(@RequestBody Date startTime,
+ @RequestBody Date endTime,
+ @RequestBody Integer stuId,
+ @RequestBody Integer appUserId);
+
+}
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 dddf989..7b0264c 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
@@ -2,8 +2,11 @@
import com.dsh.account.feignclient.course.model.CourseOfStoreVo;
import com.dsh.account.feignclient.course.model.StuCourseResp;
+import com.dsh.account.feignclient.course.model.StuWithCoursesListVo;
+import com.dsh.account.feignclient.course.model.StudentOfCourseVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@@ -17,4 +20,13 @@
@PostMapping("/coursePack/storeOfCourse")
List<CourseOfStoreVo> getStoreOfCourses();
+
+ @PostMapping("/coursePack/stuOfCourses")
+ StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody Integer stuId,
+ @RequestBody Integer appUserId);
+
+ @PostMapping("/coursePack/continuingCourse")
+ StudentOfCourseVo getStudentCourse(@RequestBody Integer courseId,
+ @RequestBody Integer stuId,
+ @RequestBody Integer appUserId);
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java
new file mode 100644
index 0000000..20a19b2
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java
@@ -0,0 +1,13 @@
+package com.dsh.account.feignclient.course;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@FeignClient(value = "mb-cloud-course")
+public interface CourseRecordClient {
+
+ @PostMapping("/courseRecord/queryDeduClassHours")
+ public Integer getDeductionClassHour(@RequestBody Integer courseId, @RequestBody Integer stuId, @RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java
new file mode 100644
index 0000000..ef01dd4
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java
@@ -0,0 +1,29 @@
+package com.dsh.account.feignclient.course;
+
+
+import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import com.dsh.account.feignclient.course.model.StuSessionDetailsVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-course")
+public interface CourseSessionNameClient {
+
+
+ @PostMapping("/coursePack/sessionNames")
+ List<StuSessionDetailsVo> getStuSessionList(@RequestBody Date startTime,
+ @RequestBody Date endTime,
+ @RequestBody Integer stuId,
+ @RequestBody Integer appUserId);
+
+ @PostMapping("/coursePack/paymentCourse")
+ public List<PurchaseRecordVo> queryCourseDetails(@RequestBody Date startTime,
+ @RequestBody Date endTime,
+ @RequestBody Integer stuId,
+ @RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuAndAppuserIdsVo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuAndAppuserIdsVo.java
new file mode 100644
index 0000000..7fd0a91
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuAndAppuserIdsVo.java
@@ -0,0 +1,12 @@
+package com.dsh.account.feignclient.course.model;
+
+
+import lombok.Data;
+
+@Data
+public class StuAndAppuserIdsVo {
+
+ Integer stuId;
+
+ Integer appUserId;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java
new file mode 100644
index 0000000..9765201
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java
@@ -0,0 +1,18 @@
+package com.dsh.account.feignclient.course.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StuSessionDetailsVo {
+
+ @ApiModelProperty(value = "课时id")
+ private Integer sessionid;
+
+ @ApiModelProperty(value = "课时名称")
+ private String sessionName;
+
+ @ApiModelProperty(value = "课时有效期")
+ private String periodOfValidity;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuWithCoursesListVo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuWithCoursesListVo.java
new file mode 100644
index 0000000..0a5d372
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuWithCoursesListVo.java
@@ -0,0 +1,19 @@
+package com.dsh.account.feignclient.course.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class StuWithCoursesListVo {
+
+ @ApiModelProperty(value = "总学时数")
+ private Integer totalNums;
+
+ @ApiModelProperty(value = "已扣学时数")
+ private Integer deductedNums;
+
+ @ApiModelProperty(value = "剩余学时数")
+ private Integer remainingNums;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StudentOfCourseVo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StudentOfCourseVo.java
new file mode 100644
index 0000000..23c339b
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StudentOfCourseVo.java
@@ -0,0 +1,46 @@
+package com.dsh.account.feignclient.course.model;
+
+
+import com.dsh.account.model.vo.sourceDetail.CourseHoursType;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class StudentOfCourseVo {
+
+ @ApiModelProperty(value = "课包id")
+ private Integer coursePackageId;
+
+ @ApiModelProperty(value = "课包封面图")
+ private String packageImg;
+
+ @ApiModelProperty(value = "课包名称")
+ private String courseName;
+
+ @ApiModelProperty(value = "授课老师/教练")
+ private Integer coachId;
+
+ @ApiModelProperty(value = "上课周 例如:每周二")
+ private String courseWeek;
+
+ @ApiModelProperty(value = "上课时间:例如 14:00-16:00")
+ private String courseTime;
+
+ @ApiModelProperty(value = "课时列表: 50 70 90")
+ private List<CourseHoursType> typeList;
+
+ @ApiModelProperty(value = "支付价格")
+ private double amount;
+
+ @ApiModelProperty(value = "会员价")
+ private double vipAmount;
+
+ @ApiModelProperty(value = "玩湃币")
+ private Integer wpGold;
+
+ @ApiModelProperty(value = "门店id")
+ private Integer storeId;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/NoticeClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/NoticeClient.java
new file mode 100644
index 0000000..159b15a
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/NoticeClient.java
@@ -0,0 +1,24 @@
+package com.dsh.account.feignclient.other;
+
+import com.dsh.account.feignclient.other.model.SysNotice;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+
+@FeignClient(value = "mb-cloud-other")
+public interface NoticeClient {
+
+
+ @PostMapping("/base/notice/queryNoticeDetails")
+ List<SysNotice> getSysNoticeDetails();
+
+ @PostMapping("/base/notice/queryNotice")
+ SysNotice getSysNoticeBuId(@RequestBody Integer noticeId);
+
+ @PostMapping("/base/notice/sysTell")
+ List<String> queryCustomerTel();
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/QuestionClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/QuestionClient.java
new file mode 100644
index 0000000..9380603
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/QuestionClient.java
@@ -0,0 +1,19 @@
+package com.dsh.account.feignclient.other;
+
+import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo;
+import com.dsh.account.model.vo.exploreDetails.QuestionIns;
+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 QuestionClient {
+
+ @PostMapping("/base/notice/queryQuestionDetails")
+ QuestionDetailsVo getSysQuestionDetails();
+
+ @PostMapping("/base/notice/queryQuestion")
+ QuestionIns getSysQuestionBuId(@RequestBody Integer quesId);
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java
index 0495a35..0b60f71 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java
@@ -11,8 +11,22 @@
* @author zhibing.pu
* @date 2023/6/24 15:54
*/
+import com.dsh.account.feignclient.other.model.StoreDetailOfCourse;
+import com.dsh.account.feignclient.other.model.StoreInfo;
+import com.dsh.account.feignclient.other.model.StoreLonLatList;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
@FeignClient(value = "mb-cloud-other")
public interface StoreClient {
+
+
+
+
+
/**
@@ -21,4 +35,18 @@
*/
@PostMapping("/store/queryStoreList")
List<Store> queryStoreList(QueryStoreList queryStoreList);
+
+
+
+
+ @PostMapping("/storeDetail/courseOfSto")
+ public StoreDetailOfCourse getCourseOfStore(@RequestBody Integer storeId);
+
+
+ @PostMapping("/storeDetail/nearbyStore")
+ List<StoreInfo> getAllNearbyStoreList(@RequestBody String longitude, @RequestBody String latitude);
+
+
+ @PostMapping("/storeDetail/storeOfLonLat")
+ public List<StoreLonLatList> getAllStoreLonLats(@RequestBody String longitude, @RequestBody String latitude);
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreDetailOfCourse.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreDetailOfCourse.java
new file mode 100644
index 0000000..1abc5c7
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreDetailOfCourse.java
@@ -0,0 +1,16 @@
+package com.dsh.account.feignclient.other.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StoreDetailOfCourse {
+
+ @ApiModelProperty(value = "门店名称")
+ String storeName;
+
+ @ApiModelProperty(value = "门店地址")
+ String storeAddr;
+
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java
new file mode 100644
index 0000000..5964072
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java
@@ -0,0 +1,25 @@
+package com.dsh.account.feignclient.other.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StoreInfo {
+
+ @ApiModelProperty(value = "门店id")
+ private Integer storeId;
+
+ @ApiModelProperty(value = "门店背景图")
+ private String storeImg;
+
+ @ApiModelProperty(value = "门店距离当前位置")
+ private long distance;
+
+ @ApiModelProperty(value = "门店名称")
+ private String storeName;
+
+ @ApiModelProperty(value = "门店详细地址")
+ private String storeAddr;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreLonLatList.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreLonLatList.java
new file mode 100644
index 0000000..38646da
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreLonLatList.java
@@ -0,0 +1,19 @@
+package com.dsh.account.feignclient.other.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StoreLonLatList {
+
+ @ApiModelProperty(value = "门店id")
+ Integer storeId;
+
+ @ApiModelProperty(value = "经度")
+ String longitude;
+
+ @ApiModelProperty(value = "纬度")
+ String latitude;
+
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/SysNotice.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/SysNotice.java
new file mode 100644
index 0000000..8929709
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/SysNotice.java
@@ -0,0 +1,20 @@
+package com.dsh.account.feignclient.other.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class SysNotice {
+
+ @ApiModelProperty(value = "公告id")
+ private Integer noticeId;
+
+ @ApiModelProperty(value = "公告标题")
+ private String noticeTitle;
+
+ @ApiModelProperty(value = "公告内容")
+ private String noticeContents;
+
+ @ApiModelProperty(value = "公告发布时间")
+ private String noticeTime;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/EvaluateStudentMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/EvaluateStudentMapper.java
new file mode 100644
index 0000000..207e1f1
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/EvaluateStudentMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.account.mapper;
+
+import com.dsh.account.entity.EvaluateStudent;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 评价学员记录 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+public interface EvaluateStudentMapper extends BaseMapper<EvaluateStudent> {
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
index 407daca..f8e5036 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.account.entity.TAppUser;
+import org.apache.ibatis.annotations.Mapper;
/**
@@ -12,6 +13,7 @@
* @author administrator
* @since 2023-06-14
*/
+@Mapper
public interface TAppUserMapper extends BaseMapper<TAppUser> {
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java
index fda3fc3..587e07b 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.account.entity.TStudent;
+import org.apache.ibatis.annotations.Mapper;
/**
@@ -12,6 +13,7 @@
* @author administrator
* @since 2023-06-14
*/
+@Mapper
public interface TStudentMapper extends BaseMapper<TStudent> {
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/WeekedCourse.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/WeekedCourse.java
index 5c116da..ae04ba1 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/WeekedCourse.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/WeekedCourse.java
@@ -8,17 +8,6 @@
@Data
public class WeekedCourse {
- @ApiModelProperty(value = "是否为当天 1 是 2 否")
- private Integer isToday;
-
- @ApiModelProperty(value = "星期缩写")
- private String weekStr;
-
- @ApiModelProperty(value = "星期数值")
- private Integer weekNum;
-
- @ApiModelProperty(value = "日期")
- private String dayStr;
@ApiModelProperty(value = "课包列表")
private List<CourseVenue> details;
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDataDetails.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDataDetails.java
new file mode 100644
index 0000000..4f57652
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDataDetails.java
@@ -0,0 +1,18 @@
+package com.dsh.account.model.vo.classDetails.classInsVo;
+
+import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+@Data
+public class ClassDataDetails {
+
+ @ApiModelProperty(value = "已扣课时数")
+ private Integer deductionClassHours;
+
+ @ApiModelProperty(value = "类型变动记录")
+ private List<PurchaseRecordVo> recordVos;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDetailsInsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDetailsInsVo.java
new file mode 100644
index 0000000..1c96459
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDetailsInsVo.java
@@ -0,0 +1,41 @@
+package com.dsh.account.model.vo.classDetails.classInsVo;
+
+import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import com.dsh.account.feignclient.course.model.StuSessionDetailsVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ClassDetailsInsVo {
+
+ @ApiModelProperty(value = "学员id")
+ private Integer stuId;
+
+ @ApiModelProperty(value = "学员头像")
+ private String stuImage;
+
+ @ApiModelProperty(value = "学员姓名")
+ private String stuName;
+
+
+ @ApiModelProperty(value = "总学时数")
+ private Integer totalNums;
+
+ @ApiModelProperty(value = "已扣学时数")
+ private Integer deductedNums;
+
+ @ApiModelProperty(value = "剩余学时数")
+ private Integer remainingNums;
+
+ @ApiModelProperty(value = "课包名称列表")
+ private List<StuSessionDetailsVo> sessionNames;
+
+ @ApiModelProperty(value = "已扣课时数")
+ private Integer deductionClassHours;
+
+ @ApiModelProperty(value = "课包列表")
+ private List<PurchaseRecordVo> details;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java
index 49cc40b..0ebd4b9 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java
@@ -19,7 +19,7 @@
private String imgs;
@ApiModelProperty(value = "学员id")
- private String stuId;
+ private Integer stuId;
@ApiModelProperty(value = "学员头像")
private String stuImg;
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java
index 343b8be..e07a661 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java
@@ -1,16 +1,17 @@
package com.dsh.account.model.vo.classDetails.classInsVo;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StuPhysicalVo {
-
+ @ApiModelProperty(value = "身高")
private Double height;
-
+ @ApiModelProperty(value = "体重")
private Double weight;
-
+ @ApiModelProperty(value = "BMI参数")
private Double bmi;
-
+ @ApiModelProperty(value = "图片链接")
private String url;
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/commentDetail/StuCommentsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/commentDetail/StuCommentsVo.java
new file mode 100644
index 0000000..95322aa
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/commentDetail/StuCommentsVo.java
@@ -0,0 +1,26 @@
+package com.dsh.account.model.vo.commentDetail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class StuCommentsVo {
+
+ @ApiModelProperty(value = "学员头像")
+ private String headImg;
+
+ @ApiModelProperty(value = "学员姓名")
+ private String stuName;
+
+ @ApiModelProperty(value = "评价时间")
+ private String comTime;
+
+ @ApiModelProperty(value = "评价内容")
+ private String contents;
+
+ @ApiModelProperty(value = "评价上传图片地址列表")
+ private List<String> imgs;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/ExploreDatasVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/ExploreDatasVo.java
new file mode 100644
index 0000000..bd52503
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/ExploreDatasVo.java
@@ -0,0 +1,19 @@
+package com.dsh.account.model.vo.exploreDetail;
+
+import com.dsh.account.feignclient.other.model.StoreInfo;
+import com.dsh.account.feignclient.other.model.StoreLonLatList;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ExploreDatasVo {
+
+ @ApiModelProperty(value = "前往玩湃-经度-纬度")
+ private List<StoreLonLatList> lonLatLists;
+
+ @ApiModelProperty(value = "门店列表")
+ private List<StoreInfo> storeLists;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/LonLatRequest.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/LonLatRequest.java
new file mode 100644
index 0000000..1c9c54a
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/LonLatRequest.java
@@ -0,0 +1,15 @@
+package com.dsh.account.model.vo.exploreDetail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class LonLatRequest {
+
+ @ApiModelProperty(value = "用户经度")
+ private String longitude;
+
+ @ApiModelProperty(value = "用户纬度")
+ private String latitude;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetails/QuestionDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetails/QuestionDetailsVo.java
new file mode 100644
index 0000000..89044aa
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetails/QuestionDetailsVo.java
@@ -0,0 +1,17 @@
+package com.dsh.account.model.vo.exploreDetails;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QuestionDetailsVo {
+
+ @ApiModelProperty(value = "banner图")
+ private String bannerImg;
+
+ @ApiModelProperty(value = "问题列表")
+ private List<QuestionIns> sysS;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetails/QuestionIns.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetails/QuestionIns.java
new file mode 100644
index 0000000..d1c3f66
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetails/QuestionIns.java
@@ -0,0 +1,19 @@
+package com.dsh.account.model.vo.exploreDetails;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class QuestionIns {
+
+ @ApiModelProperty(value = "问题id")
+ private Integer noticeId;
+
+ @ApiModelProperty(value = "问题标题")
+ private String noticeTitle;
+
+ @ApiModelProperty(value = "答复内容")
+ private String noticeContents;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/StuMedalVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/StuMedalVo.java
new file mode 100644
index 0000000..1e863f3
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/StuMedalVo.java
@@ -0,0 +1,22 @@
+package com.dsh.account.model.vo.medalDetail;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StuMedalVo {
+
+ @ApiModelProperty(value = "勋章类型(1=俱乐部之星,2=运动达人,3=社区之王,4=深度玩家)")
+ private Integer medalType;
+
+ @ApiModelProperty(value = "勋章名称 例如:俱乐部之星")
+ private String medalName;
+
+ @ApiModelProperty(value = "当前等级")
+ private Integer levelNum;
+
+ @ApiModelProperty(value = "升级条件")
+ private String upgradeConditions;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CouponStuAvailableVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CouponStuAvailableVo.java
new file mode 100644
index 0000000..368cf82
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CouponStuAvailableVo.java
@@ -0,0 +1,26 @@
+package com.dsh.account.model.vo.sourceDetail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CouponStuAvailableVo {
+
+ @ApiModelProperty(value = "券id")
+ private Integer conponId;
+
+ @ApiModelProperty(value = "券名称")
+ private String conponName;
+
+ @ApiModelProperty(value = "券类型 1满减券(取 条件金额+扣减金额) 2代金券(取 扣减金额)")
+ private Integer conponType;
+
+ @ApiModelProperty(value = "条件金额")
+ private double conditionalAmount;
+
+ @ApiModelProperty(value = "扣减金额")
+ private double amount;
+
+ @ApiModelProperty(value = "有效期至 yyyy-MM-dd")
+ private String lifespan;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CourseDetailsOfContinuationResp.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CourseDetailsOfContinuationResp.java
new file mode 100644
index 0000000..7fc190b
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CourseDetailsOfContinuationResp.java
@@ -0,0 +1,59 @@
+package com.dsh.account.model.vo.sourceDetail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CourseDetailsOfContinuationResp {
+
+ @ApiModelProperty(value = "课包id")
+ private Integer coursePackageId;
+
+ @ApiModelProperty(value = "学员id")
+ private Integer stuId;
+
+ @ApiModelProperty(value = "课包封面图")
+ private String packageImg;
+
+ @ApiModelProperty(value = "课包名称")
+ private String courseName;
+
+ @ApiModelProperty(value = "授课老师")
+ private String teacherName;
+
+ @ApiModelProperty(value = "上课周 例如:每周二")
+ private String courseWeek;
+
+ @ApiModelProperty(value = "上课时间:例如 14:00-16:00")
+ private String courseTime;
+
+ @ApiModelProperty(value = "门店名称")
+ private String storeName;
+
+ @ApiModelProperty(value = "门店地址")
+ private String storeAddr;
+
+ @ApiModelProperty(value = "课时列表: 50 70 90")
+ private List<CourseHoursType> typeList;
+
+ @ApiModelProperty(value = "学员姓名")
+ private String stuName;
+
+ @ApiModelProperty(value = "学员电话")
+ private String stuPhone;
+
+ @ApiModelProperty(value = "学员年龄")
+ private Integer stuAge;
+
+ @ApiModelProperty(value = "支付价格")
+ private double amount;
+
+ @ApiModelProperty(value = "会员价")
+ private double vipAmount;
+
+ @ApiModelProperty(value = "玩湃币")
+ private double wpGold;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CourseHoursType.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CourseHoursType.java
new file mode 100644
index 0000000..8b75198
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/CourseHoursType.java
@@ -0,0 +1,16 @@
+package com.dsh.account.model.vo.sourceDetail;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CourseHoursType {
+
+ @ApiModelProperty(value = "课时id")
+ private Integer courseConfigId;
+
+ @ApiModelProperty(value = "课时数")
+ private Integer courseHourNums;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/RecordTimeRequest.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/RecordTimeRequest.java
new file mode 100644
index 0000000..6d26c36
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/RecordTimeRequest.java
@@ -0,0 +1,23 @@
+package com.dsh.account.model.vo.sourceDetail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class RecordTimeRequest {
+
+ @ApiModelProperty(value = "学员id", dataType = "int", required = true)
+ private Integer stuId;
+
+ @ApiModelProperty(value = "课包id", dataType = "int")
+ private Integer lessonId;
+
+ @ApiModelProperty(value = "开始时间 格式:yyyy-MM", dataType = "string")
+ private String startTime;
+
+ @ApiModelProperty(value = "结束时间 格式:yyyy-MM", dataType = "string")
+ private String endTime;
+
+ @ApiModelProperty(value = "类型:1购买课包 2消费扣除 3报名赛事 4介绍有礼 5全部", dataType = "int")
+ private Integer type;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/EvaluateStudentService.java b/cloud-server-account/src/main/java/com/dsh/account/service/EvaluateStudentService.java
new file mode 100644
index 0000000..431a503
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/EvaluateStudentService.java
@@ -0,0 +1,21 @@
+package com.dsh.account.service;
+
+import com.dsh.account.entity.EvaluateStudent;
+import com.baomidou.mybatisplus.service.IService;
+import com.dsh.account.model.vo.commentDetail.StuCommentsVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评价学员记录 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+public interface EvaluateStudentService extends IService<EvaluateStudent> {
+
+ List<StuCommentsVo> queryStuCommentsList(Integer stuId);
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
index 981ed67..e121355 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
@@ -2,7 +2,19 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.account.entity.TStudent;
+import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import com.dsh.account.feignclient.other.model.SysNotice;
+import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo;
import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq;
+import com.dsh.account.model.vo.exploreDetail.ExploreDatasVo;
+import com.dsh.account.model.vo.exploreDetail.LonLatRequest;
+import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo;
+import com.dsh.account.model.vo.exploreDetails.QuestionIns;
+import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo;
+import com.dsh.account.model.vo.sourceDetail.CourseDetailsOfContinuationResp;
+import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest;
+
+import java.util.List;
/**
* <p>
@@ -16,4 +28,39 @@
void addStuOfAppUser(StuDetailsReq stu,Integer appUserId);
+ ClassDetailsInsVo querySessionDetailsDt(Integer userIdFormRedis, Integer lessonId, Integer stuId);
+
+ List<PurchaseRecordVo> queryDeduRecordDetails(RecordTimeRequest timeRequest,Integer appUserId);
+
+ List<CouponStuAvailableVo> queryStuOfConponDetails(Integer appUserId);
+
+ CourseDetailsOfContinuationResp queryStuOfCourseDetails(Integer lessonId, Integer stuId, Integer appUserId);
+ /**
+ * 查询探索-公告列表
+ */
+ List<SysNotice> querySystemNoticeDetails();
+ /**
+ * 查询公告详情
+ */
+ SysNotice queryNoticeData(Integer noId);
+ /**
+ * 查询常见问题列表
+ */
+ QuestionDetailsVo queryQuestionData();
+
+ /**
+ * 查询常见问题详情
+ */
+ QuestionIns queryQuestionDataInfo(Integer quesId);
+
+ /**
+ * 查询客服列表
+ */
+ List<String> queryCustomerDetails();
+
+ /**
+ * 查询探索页面首页
+ */
+ ExploreDatasVo queryIndexOfExplores(LonLatRequest llrequest);
+
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java
new file mode 100644
index 0000000..5d1b1d0
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java
@@ -0,0 +1,56 @@
+package com.dsh.account.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.dsh.account.entity.EvaluateStudent;
+import com.dsh.account.entity.TStudent;
+import com.dsh.account.mapper.EvaluateStudentMapper;
+import com.dsh.account.mapper.TStudentMapper;
+import com.dsh.account.model.vo.commentDetail.StuCommentsVo;
+import com.dsh.account.service.EvaluateStudentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * <p>
+ * 评价学员记录 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+@Service
+public class EvaluateStudentServiceImpl extends ServiceImpl<EvaluateStudentMapper, EvaluateStudent> implements EvaluateStudentService {
+
+ @Autowired
+ private TStudentMapper tstuMapper;
+
+ private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+
+ @Override
+ public List<StuCommentsVo> queryStuCommentsList(Integer stuId) {
+ List<StuCommentsVo> stuCommentsVos = new ArrayList<>();
+ TStudent tStudent = tstuMapper.selectById(stuId);
+ List<EvaluateStudent> evaluateStudents = this.baseMapper.selectList(new EntityWrapper<EvaluateStudent>()
+ .eq("studentId",stuId ));
+ if (evaluateStudents.size() > 0){
+ for (EvaluateStudent evaluateStudent : evaluateStudents) {
+ StuCommentsVo vo = new StuCommentsVo();
+ vo.setHeadImg(tStudent.getHeadImg());
+ vo.setStuName(tStudent.getName());
+ vo.setComTime(format.format(tStudent.getInsertTime()));
+ vo.setContents(evaluateStudent.getContent());
+ String imgs = evaluateStudent.getImgs();
+ String[] split = imgs.split(",");
+ vo.setImgs(Arrays.asList(split));
+ stuCommentsVos.add(vo);
+ }
+ }
+ return stuCommentsVos;
+ }
+}
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 6bb7506..0f0c56f 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
@@ -5,7 +5,6 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.account.entity.TAppUser;
import com.dsh.account.entity.TStudent;
-import com.dsh.account.enums.WeeksEnum;
import com.dsh.account.feignclient.course.CoursePaymentClient;
import com.dsh.account.feignclient.course.model.CourseOfStoreVo;
import com.dsh.account.feignclient.course.model.QueryStoreList;
@@ -30,6 +29,7 @@
import com.dsh.account.util.akeylogin.Md5Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource;
import java.util.ArrayList;
@@ -88,6 +88,7 @@
.eq("isDefault",1));
if (tStudents.size() > 0 ){
TStudent tStudent = tStudents.get(0);
+ classInfoVo.setStuId(tStudent.getId());
classInfoVo.setIsThere(1);
classInfoVo.setStuImg(tStudent.getHeadImg());
classInfoVo.setStuSex(tStudent.getSex());
@@ -147,21 +148,11 @@
* @param latitude
* @return
*/
- public List<WeekedCourse> dealDatas(List<CourseOfStoreVo> storeOfCourses,String longitude ,String latitude){
+ public List<WeekedCourse> dealDatas(List<CourseOfStoreVo> storeOfCourses,String longitude ,@RequestBody String latitude){
List<WeekedCourse> weekedCourses = new ArrayList<>();
- int weekStr = LocalDateTimeUtils.getWeekStr();
for (int i = 1; i < 8; i++) {
WeekedCourse weekedCourse = new WeekedCourse();
- weekedCourse.setWeekNum(i);
- weekedCourse.setWeekStr(WeeksEnum.getStr(i));
- String weekOfDays = LocalDateTimeUtils.getWeekOfDays(i);
- weekedCourse.setDayStr(weekOfDays);
List<CourseVenue> courseVenues = new ArrayList<>();
- if (weekStr == i) {
- weekedCourse.setIsToday(1);
- } else {
- weekedCourse.setIsToday(2);
- }
Map<Integer, List<CourseOfStoreVo>> map = storeOfCourses.stream().collect(Collectors.groupingBy(CourseOfStoreVo::getStoreId));
for (Map.Entry<Integer, List<CourseOfStoreVo>> integerListEntry : map.entrySet()) {
List<CourseOfStoreVo> value = integerListEntry.getValue();
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 bd7438f..dc7cee2 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
@@ -1,15 +1,49 @@
package com.dsh.account.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.account.entity.TAppUser;
import com.dsh.account.entity.TStudent;
+import com.dsh.account.feignclient.activity.IntroduceRewardsClient;
+import com.dsh.account.feignclient.activity.UserConponClient;
+import com.dsh.account.feignclient.competition.DeductionCompetitionsClient;
+import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import com.dsh.account.feignclient.course.CancelListClient;
+import com.dsh.account.feignclient.course.CoursePaymentClient;
+import com.dsh.account.feignclient.course.CourseRecordClient;
+import com.dsh.account.feignclient.course.CourseSessionNameClient;
+import com.dsh.account.feignclient.course.model.StuSessionDetailsVo;
+import com.dsh.account.feignclient.course.model.StuWithCoursesListVo;
+import com.dsh.account.feignclient.course.model.StudentOfCourseVo;
+import com.dsh.account.feignclient.other.NoticeClient;
+import com.dsh.account.feignclient.other.QuestionClient;
+import com.dsh.account.feignclient.other.StoreClient;
+import com.dsh.account.feignclient.other.model.StoreDetailOfCourse;
+import com.dsh.account.feignclient.other.model.StoreInfo;
+import com.dsh.account.feignclient.other.model.StoreLonLatList;
+import com.dsh.account.feignclient.other.model.SysNotice;
+import com.dsh.account.mapper.TAppUserMapper;
import com.dsh.account.mapper.TStudentMapper;
+import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo;
import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq;
+import com.dsh.account.model.vo.exploreDetail.ExploreDatasVo;
+import com.dsh.account.model.vo.exploreDetail.LonLatRequest;
+import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo;
+import com.dsh.account.model.vo.exploreDetails.QuestionIns;
+import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo;
+import com.dsh.account.model.vo.sourceDetail.CourseDetailsOfContinuationResp;
+import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest;
import com.dsh.account.service.TStudentService;
-
+import com.dsh.account.util.DateTimeHelper;
+import com.dsh.account.util.ToolUtil;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
-import java.util.Date;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* <p>
@@ -22,15 +56,48 @@
@Service
public class TStudentServiceImpl extends ServiceImpl<TStudentMapper, TStudent> implements TStudentService {
+ @Autowired
+ private CourseSessionNameClient sessionNameClient;
+
+ @Autowired
+ private DeductionCompetitionsClient dcttClient;
+
+ @Autowired
+ private CancelListClient cancelcClient;
+
+ @Autowired
+ private IntroduceRewardsClient idrClient;
+
+ @Autowired
+ private CourseRecordClient crClient;
+
+ @Autowired
+ private CoursePaymentClient couPayClient;
+
+ @Autowired
+ private UserConponClient userCClient;
+
+ @Autowired
+ private StoreClient storeClient;
+
+ @Autowired
+ private NoticeClient noClient;
+
+ @Autowired
+ private QuestionClient quesClient;
+
+ @Autowired
+ private TAppUserMapper tauMapper;
+
@Override
public void addStuOfAppUser(StuDetailsReq stu,Integer appUserId) {
TStudent student = new TStudent();
student.setAppUserId(appUserId);
student.setName(stu.getName());
student.setHeadImg(stu.getHeadImg());
- student.setPhone(stu.getPhone());
+ student.setPhone(ToolUtil.isNotEmpty(stu.getPhone()) ? stu.getPhone() : "");
student.setSex(stu.getSex());
- student.setIdCard(stu.getIdCard());
+ student.setIdCard(ToolUtil.isNotEmpty(stu.getIdCard())?stu.getIdCard() : "");
student.setBirthday(new Date(stu.getBirthday()));
student.setHeight(stu.getHeight());
student.setWeight(stu.getWeight());
@@ -42,4 +109,141 @@
student.setState(1);
this.baseMapper.insert(student);
}
+
+ @Override
+ public ClassDetailsInsVo querySessionDetailsDt(Integer userIdFormRedis, Integer lessonId, Integer stuId) {
+ ClassDetailsInsVo insVo = new ClassDetailsInsVo();
+ Date localMonthStart = DateTimeHelper.getCurrentMouthStart();
+ Date localMonthEnd = DateTimeHelper.getCurrentMouthEnd();
+ List<StuSessionDetailsVo> stuSessionList = sessionNameClient.getStuSessionList(localMonthStart,localMonthEnd,stuId,userIdFormRedis);
+ TStudent tStudent = this.baseMapper.selectById(stuId);
+ if (ToolUtil.isNotEmpty(tStudent)){
+ insVo.setStuId(tStudent.getId());
+ insVo.setStuName(tStudent.getName());
+ insVo.setStuImage(tStudent.getHeadImg());
+
+ List<PurchaseRecordVo> purchaseRecordVoList = new ArrayList<>();
+
+ List<PurchaseRecordVo> stuSourseList = dcttClient.getStuSourseList(localMonthStart,localMonthEnd,userIdFormRedis);
+ purchaseRecordVoList.addAll(stuSourseList);
+ List<PurchaseRecordVo> cancelCourseList = cancelcClient.getCancelCourseList(localMonthStart,localMonthEnd,stuId,userIdFormRedis);
+ purchaseRecordVoList.addAll(cancelCourseList);
+ List<PurchaseRecordVo> purchaseRecordVos = sessionNameClient.queryCourseDetails(localMonthStart,localMonthEnd,stuId,userIdFormRedis);
+ purchaseRecordVoList.addAll(purchaseRecordVos);
+ List<TAppUser> tAppUsers = tauMapper.selectList(new QueryWrapper<TAppUser>()
+ .eq("referralUserId",userIdFormRedis )
+ .between("insertTime",localMonthStart ,localMonthEnd));
+ List<Integer> userIds = tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList());
+ List<PurchaseRecordVo> purchaseRecordVos1 = idrClient.queryAppUsersofIntroduce(localMonthStart, localMonthEnd, userIds);
+ purchaseRecordVoList.addAll(purchaseRecordVos1);
+ insVo.setSessionNames(stuSessionList);
+ insVo.setDetails(dealDataOfTime(purchaseRecordVoList));
+ StuWithCoursesListVo stuOfCoursesDetails = couPayClient.getStuOfCoursesDetails(stuId, userIdFormRedis);
+ insVo.setTotalNums(stuOfCoursesDetails.getTotalNums());
+ insVo.setDeductedNums(stuOfCoursesDetails.getDeductedNums());
+ insVo.setRemainingNums(stuOfCoursesDetails.getRemainingNums());
+ Integer deductionClassHour = crClient.getDeductionClassHour(lessonId, stuId, userIdFormRedis);
+ insVo.setDeductionClassHours(deductionClassHour);
+ }
+
+ return insVo;
+ }
+
+ @Override
+ public List<PurchaseRecordVo> queryDeduRecordDetails(RecordTimeRequest timeRequest,Integer appUserId) {
+ List<PurchaseRecordVo> purchaseRecordVoList = new ArrayList<>();
+ Date startTime = DateTimeHelper.getCurrentIdetMouthStart(timeRequest.getStartTime());
+ Date endTime = DateTimeHelper.getCurrentIdeaMouthEnd(timeRequest.getEndTime());
+
+ List<PurchaseRecordVo> stuSourseList = dcttClient.getStuSourseList(startTime,endTime,appUserId);
+ purchaseRecordVoList.addAll(stuSourseList);
+ List<PurchaseRecordVo> cancelCourseList = cancelcClient.getCancelCourseList(startTime,endTime,timeRequest.getStuId(),appUserId);
+ purchaseRecordVoList.addAll(cancelCourseList);
+ List<PurchaseRecordVo> purchaseRecordVos = sessionNameClient.queryCourseDetails(startTime,endTime,timeRequest.getStuId(),appUserId);
+ purchaseRecordVoList.addAll(purchaseRecordVos);
+ List<TAppUser> tAppUsers = tauMapper.selectList(new QueryWrapper<TAppUser>()
+ .eq("referralUserId",appUserId )
+ .between("insertTime",timeRequest.getStartTime() ,timeRequest.getEndTime()));
+ List<Integer> userIds = tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList());
+ List<PurchaseRecordVo> purchaseRecordVos1 = idrClient.queryAppUsersofIntroduce(startTime, endTime, userIds);
+ purchaseRecordVoList.addAll(purchaseRecordVos1);
+
+ purchaseRecordVoList = dealDataOfTime(purchaseRecordVoList);
+ return purchaseRecordVoList;
+ }
+
+ @Override
+ public List<CouponStuAvailableVo> queryStuOfConponDetails(Integer appUserId) {
+ List<CouponStuAvailableVo> availableVos = new ArrayList<>();
+ availableVos = userCClient.queryUserWithConponList(appUserId);
+ return availableVos;
+ }
+
+ @Override
+ public CourseDetailsOfContinuationResp queryStuOfCourseDetails(Integer lessonId, Integer stuId, Integer appUserId) {
+ CourseDetailsOfContinuationResp resp = new CourseDetailsOfContinuationResp();
+
+ StudentOfCourseVo studentCourse = couPayClient.getStudentCourse(lessonId,stuId,appUserId);
+
+ StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(studentCourse.getStoreId());
+
+ return resp;
+ }
+
+ @Override
+ public List<SysNotice> querySystemNoticeDetails() {
+ return noClient.getSysNoticeDetails();
+ }
+
+ @Override
+ public SysNotice queryNoticeData(Integer noId) {
+ return noClient.getSysNoticeBuId(noId);
+ }
+
+ @Override
+ public QuestionDetailsVo queryQuestionData() {
+ return quesClient.getSysQuestionDetails();
+ }
+
+ @Override
+ public QuestionIns queryQuestionDataInfo(Integer quesId) {
+ return quesClient.getSysQuestionBuId(quesId);
+ }
+
+ @Override
+ public List<String> queryCustomerDetails() {
+ return noClient.queryCustomerTel();
+ }
+
+ @Override
+ public ExploreDatasVo queryIndexOfExplores(LonLatRequest llrequest) {
+ ExploreDatasVo datasVo = new ExploreDatasVo();
+ List<StoreInfo> allNearbyStoreList = storeClient.getAllNearbyStoreList(llrequest.getLongitude(),llrequest.getLatitude());
+ List<StoreLonLatList> allStoreLonLats = storeClient.getAllStoreLonLats(llrequest.getLongitude(), llrequest.getLatitude());
+ datasVo.setStoreLists(allNearbyStoreList);
+ datasVo.setLonLatLists(allStoreLonLats);
+ return datasVo;
+ }
+
+
+ public static List<PurchaseRecordVo> dealDataOfTime(List<PurchaseRecordVo> purchaseRecords) {
+ Collections.sort(purchaseRecords, new Comparator<PurchaseRecordVo>() {
+ @Override
+ public int compare(PurchaseRecordVo record1, PurchaseRecordVo record2) {
+ SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm");
+ Date date1 = null;
+ Date date2 = null;
+ try {
+ date1 = dateFormat.parse(record1.getPurchaseTime());
+ date2 = dateFormat.parse(record2.getPurchaseTime());
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ // 倒序排序
+ return date2.compareTo(date1);
+ }
+ });
+ return purchaseRecords;
+ }
+
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/DateTimeHelper.java b/cloud-server-account/src/main/java/com/dsh/account/util/DateTimeHelper.java
index b77d912..03bb3d3 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/DateTimeHelper.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/DateTimeHelper.java
@@ -2,9 +2,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.time.Instant;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
+import java.time.*;
import java.util.*;
@@ -1350,6 +1348,52 @@
}
/**
+ * 获取指定月份开始时0点0分0秒
+ * @param input 输入的时间,"yyyy-MM"
+ * @return
+ */
+ public static Date getCurrentIdetMouthStart(String input) {
+ // 解析年月字符串
+ YearMonth yearMonth = YearMonth.parse(input);
+ // 获取月份的开始时间(月初0点)
+ LocalDate startOfMonth = yearMonth.atDay(1);
+ LocalDateTime startDateTime = startOfMonth.atTime(LocalTime.MIN);
+ return Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
+ }
+
+ /**
+ * 获取当月结束时23点59分59秒
+ *
+ * @return
+ */
+ public static Date getCurrentMouthEnd() {
+ Date d = getSystemDate();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(d);
+ int lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
+ calendar.set(Calendar.DAY_OF_MONTH, lastDay);
+ calendar.set(Calendar.HOUR_OF_DAY, 23);
+ calendar.set(Calendar.MINUTE, 59);
+ calendar.set(Calendar.SECOND, 59);
+ return calendar.getTime();
+ }
+
+
+ /**
+ * 获取指定月份结束时23点59分59秒
+ * @param input 输入的时间,"yyyy-MM"
+ * @return
+ */
+ public static Date getCurrentIdeaMouthEnd(String input) {
+ // 解析年月字符串
+ YearMonth yearMonth = YearMonth.parse(input);
+ // 获取月份的结束时间(月末23:59:59秒)
+ LocalDate endOfMonth = yearMonth.atEndOfMonth();
+ LocalDateTime endDateTime = endOfMonth.atTime(23, 59, 59);
+ return Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant());
+ }
+
+ /**
* 返回下月的这天
*
* @param date
diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/GDMapGeocodingUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/GDMapGeocodingUtil.java
index 16d9bfb..a260b46 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/GDMapGeocodingUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/GDMapGeocodingUtil.java
@@ -8,6 +8,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -146,4 +153,90 @@
}
return map;
}
+
+
+ /**
+ * 功能描述: 根据两个定位点的经纬度算出两点间的距离(米/m)
+ *
+ * @param startLonLat 起始经纬度
+ * @param endLonLat 结束经纬度(目标经纬度)
+ * @return java.lang.Long 两个定位点之间的距离
+ */
+ public Long getDistance(String startLonLat, String endLonLat) {
+ try {
+ // 返回起始地startAddr与目的地endAddr之间的距离,单位:米
+ Long result = new Long(0);
+ String queryUrl =
+ "http://restapi.amap.com/v3/distance?key=" + key + "&origins=" + startLonLat
+ + "&destination="
+ + endLonLat;
+ String queryResult = getResponse(queryUrl);
+ JSONObject job = JSONObject.parseObject(queryResult);
+ JSONArray ja = job.getJSONArray("results");
+ JSONObject jobO = JSONObject.parseObject(ja.getString(0));
+ result = Long.parseLong(jobO.get("distance").toString());
+ return result;
+ } catch (Exception e) {
+ throw new RuntimeException();
+ }
+ }
+
+
+ /**
+ * 功能描述: 根据两个定位点的经纬度算出两点间的距离(千米/km)
+ *
+ * @param startLonLat 起始经纬度
+ * @param endLonLat 结束经纬度(目标经纬度)
+ * @return java.lang.Long 两个定位点之间的距离
+ */
+ public String getDistanceTOKilometer(String startLonLat, String endLonLat) {
+ try {
+ // 返回起始地startAddr与目的地endAddr之间的距离,单位:米
+ Long result = new Long(0);
+ String queryUrl =
+ "http://restapi.amap.com/v3/distance?key=" + key + "&origins=" + startLonLat
+ + "&destination="
+ + endLonLat;
+ String queryResult = getResponse(queryUrl);
+ JSONObject job = JSONObject.parseObject(queryResult);
+ JSONArray ja = job.getJSONArray("results");
+ JSONObject jobO = JSONObject.parseObject(ja.getString(0));
+ result = Long.parseLong(jobO.get("distance").toString());
+ double kilDis = (double) result / 1000;
+ DecimalFormat decimalFormat = new DecimalFormat("#.00");
+ return decimalFormat.format(kilDis);
+ } catch (Exception e) {
+ throw new RuntimeException();
+ }
+ }
+
+ /**
+ * 功能描述: 发送请求
+ *
+ * @param serverUrl 请求地址
+ * @return java.lang.String
+ * @author isymikasan
+ * @date 2022-01-26 09:15:01
+ */
+ private static String getResponse(String serverUrl) {
+ // 用JAVA发起http请求,并返回json格式的结果
+ StringBuffer result = new StringBuffer();
+ try {
+ URL url = new URL(serverUrl);
+ URLConnection conn = url.openConnection();
+ BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
+ String line;
+ while ((line = in.readLine()) != null) {
+ result.append(line);
+ }
+ in.close();
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return result.toString();
+ }
+
+
}
diff --git a/cloud-server-account/src/main/resources/mapper/EvaluateStudentMapper.xml b/cloud-server-account/src/main/resources/mapper/EvaluateStudentMapper.xml
new file mode 100644
index 0000000..9730a83
--- /dev/null
+++ b/cloud-server-account/src/main/resources/mapper/EvaluateStudentMapper.xml
@@ -0,0 +1,5 @@
+<?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.account.mapper.EvaluateStudentMapper">
+
+</mapper>
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
new file mode 100644
index 0000000..beaf70d
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java
@@ -0,0 +1,46 @@
+package com.dsh.activity.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.activity.entity.IntroduceRewards;
+import com.dsh.activity.feignclient.model.PurchaseRecordVo;
+import com.dsh.activity.service.IntroduceRewardsService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Api
+@CrossOrigin
+@RestController
+@RequestMapping("")
+public class IntroduceRewardsController {
+
+
+ @Autowired
+ private IntroduceRewardsService idrService;
+
+ private final SimpleDateFormat mat = new SimpleDateFormat("MM-dd HH:mm");
+
+
+ @PostMapping("/introduce/useOfRewards")
+ public List<PurchaseRecordVo> queryAppUsersofIntroduce(@RequestBody Date startTime, @RequestBody Date endTime, @RequestBody List<Integer> userIds){
+ List<PurchaseRecordVo> recordVos = new ArrayList<>();
+ List<IntroduceRewards> list = idrService.list(new QueryWrapper<IntroduceRewards>()
+ .ge("startTime",startTime)
+ .lt("endTime",endTime));
+ IntroduceRewards introduceRewards = list.get(0);
+ userIds.forEach( userId -> {
+ PurchaseRecordVo recordVo = new PurchaseRecordVo();
+ recordVo.setPurchaseAmount("+"+introduceRewards.getGiveClass());
+ recordVo.setPurchaseType("介绍有礼");
+ recordVos.add(recordVo);
+ } );
+ return recordVos;
+ }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserConponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserConponController.java
new file mode 100644
index 0000000..f988de1
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserConponController.java
@@ -0,0 +1,73 @@
+package com.dsh.activity.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.activity.entity.Coupon;
+import com.dsh.activity.entity.UserCoupon;
+import com.dsh.activity.feignclient.model.CouponStuAvailableVo;
+import com.dsh.activity.service.CouponService;
+import com.dsh.activity.service.UserCouponService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Api
+@CrossOrigin
+@RestController
+@RequestMapping("")
+public class UserConponController {
+
+ @Autowired
+ private UserCouponService uconService;
+
+ @Autowired
+ private CouponService cService;
+
+ private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
+
+ @PostMapping("/userConpon/getStuOfConpons")
+ public List<CouponStuAvailableVo> queryUserWithConponList(@RequestBody Integer appUserId){
+
+ List<CouponStuAvailableVo> availableVos = new ArrayList<>();
+
+ List<UserCoupon> list = uconService.list(new QueryWrapper<UserCoupon>()
+ .eq("userId", appUserId)
+ .eq("status",1));
+ if (list.size() > 0){
+ List<Integer> collect = list.stream().map(UserCoupon::getCouponId).collect(Collectors.toList());
+ List<Coupon> conponList = cService.list(new QueryWrapper<Coupon>()
+ .in("id", collect));
+ for (Coupon coupon : conponList) {
+ CouponStuAvailableVo availableVo = new CouponStuAvailableVo();
+ availableVo.setConponId(coupon.getId());
+ availableVo.setConponName(coupon.getName());
+ availableVo.setConponType(coupon.getType());
+ Map<String,Object> conponRuleMap = cService.queryConponRuleOfJson(coupon.getId());
+ switch (coupon.getType()){
+ case 1:
+ Object conditionalAmount = conponRuleMap.get("conditionalAmount");
+ Object deductionAmount = conponRuleMap.get("deductionAmount");
+ availableVo.setConditionalAmount((double) conditionalAmount);
+ availableVo.setAmount((double) deductionAmount);
+ break;
+ case 2:
+ Object amount = conponRuleMap.get("deductionAmount");
+ availableVo.setAmount((double)amount);
+ break;
+ default:
+ break;
+ }
+ availableVo.setLifespan(format.format(coupon.getEndTime()));
+ availableVos.add(availableVo);
+ }
+ }
+ return availableVos;
+ }
+
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/Coupon.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/Coupon.java
index d25f545..3f00b17 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/Coupon.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/Coupon.java
@@ -1,21 +1,33 @@
package com.dsh.activity.entity;
import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
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.math.BigDecimal;
import java.util.Date;
/**
+ * <p>
* 优惠券
- * @author zhibing.pu
- * @date 2023/6/24 11:04
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
*/
@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
@TableName("t_coupon")
-public class Coupon {
+public class Coupon extends Model<Coupon> {
+
+ private static final long serialVersionUID = 1L;
+
/**
* 主键
*/
@@ -24,121 +36,104 @@
/**
* 优惠券名称
*/
- @TableField("name")
private String name;
/**
* 优惠券类型(1=满减券,2=代金券,3=体验券)
*/
- @TableField("type")
private Integer type;
/**
* 优惠券规则JSON
*/
- @TableField("content")
private String content;
/**
* 优惠券说明
*/
- @TableField("illustrate")
private String illustrate;
/**
* 发放方式(1=积分购买,2=注册赠送,3=自动发券)
*/
- @TableField("distributionMethod")
private Integer distributionMethod;
/**
* 兑换方式(1=积分,2=积分+现金)
*/
- @TableField("redemptionMethod")
private Integer redemptionMethod;
/**
* 所需现金
*/
- @TableField("cash")
- private Double cash;
+ private BigDecimal cash;
/**
- * 所需积分
+ * 所属积分
*/
- @TableField("integral")
- private Integer integral;
+ private BigDecimal integral;
/**
* 用户人群(1=全部用户,2=年度会员,3=已有学员用户)
*/
- @TableField("userPopulation")
private Integer userPopulation;
/**
* 发放数量
*/
- @TableField("quantityIssued")
private Integer quantityIssued;
/**
* 限领数量
*/
- @TableField("pickUpQuantity")
private Integer pickUpQuantity;
/**
* 开始时间
*/
- @TableField("startTime")
private Date startTime;
/**
* 结束时间
*/
- @TableField("endTime")
private Date endTime;
/**
* 使用范围(1=全国,2=指定城市,3=指定门店)
*/
- @TableField("useScope")
private Integer useScope;
/**
* 省
*/
- @TableField("province")
- private Integer province;
+ private String province;
/**
* 省编号
*/
- @TableField("provinceCode")
private String provinceCode;
/**
* 市
*/
- @TableField("city")
private String city;
/**
* 市编号
*/
- @TableField("cityCode")
private String cityCode;
/**
* 审核状态(1=待审核,2=已通过,3=已拒绝)
*/
- @TableField("auditStatus")
private Integer auditStatus;
/**
* 审核人id
*/
- @TableField("auditUserId")
private Integer auditUserId;
/**
* 审核备注
*/
- @TableField("auditRemark")
private String auditRemark;
/**
* 状态(1=未开始,2=已开始,3=已结束,4=已取消)
*/
- @TableField("status")
private Integer status;
/**
* 状态(1=正常,2=冻结,3=删除)
*/
- @TableField("state")
private Integer state;
/**
* 添加时间
*/
- @TableField("insertTime")
private Date insertTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/IntroduceRewards.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/IntroduceRewards.java
new file mode 100644
index 0000000..3ba4756
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/IntroduceRewards.java
@@ -0,0 +1,78 @@
+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-06-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_introduce_rewards")
+public class IntroduceRewards extends Model<IntroduceRewards> {
+
+ 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;
+ /**
+ * 开始时间
+ */
+ private Date startTime;
+ /**
+ * 结束时间
+ */
+ private Date endTime;
+ /**
+ * 赠送课时
+ */
+ private Integer giveClass;
+ /**
+ * 状态(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/JSONConpon.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/JSONConpon.java
new file mode 100644
index 0000000..dced410
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/JSONConpon.java
@@ -0,0 +1,43 @@
+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/entity/UserCoupon.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserCoupon.java
new file mode 100644
index 0000000..110f152
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserCoupon.java
@@ -0,0 +1,66 @@
+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-06-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_user_coupon")
+public class UserCoupon extends Model<UserCoupon> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 优惠券id
+ */
+ private Integer couponId;
+ /**
+ * 用户id
+ */
+ private Integer userId;
+ /**
+ * 状态(1=待核销,2=已核销)
+ */
+ private Integer status;
+ /**
+ * 核销人员id
+ */
+ private Integer verificationUserId;
+ /**
+ * 核销时间
+ */
+ private Date verificationTime;
+ /**
+ * 领取时间
+ */
+ private Date insertTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java
new file mode 100644
index 0000000..1bba930
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java
@@ -0,0 +1,66 @@
+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-06-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_user_points_merchandise")
+public class UserPointsMerchandise extends Model<UserPointsMerchandise> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 优惠券id
+ */
+ private Integer pointsMerchandiseId;
+ /**
+ * 用户id
+ */
+ private Integer userId;
+ /**
+ * 状态(1=待核销,2=已核销)
+ */
+ private Integer status;
+ /**
+ * 核销人员id
+ */
+ private Integer verificationUserId;
+ /**
+ * 核销时间
+ */
+ private Date verificationTime;
+ /**
+ * 领取时间
+ */
+ private Date insertTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/IntroduceRewardsClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/IntroduceRewardsClient.java
new file mode 100644
index 0000000..7839017
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/IntroduceRewardsClient.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.feignclient;
+
+
+import com.dsh.activity.feignclient.model.PurchaseRecordVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-activity")
+public interface IntroduceRewardsClient {
+
+ @PostMapping("/introduce/useOfRewards")
+ public List<PurchaseRecordVo> queryAppUsersofIntroduce(@RequestBody Date startTime,
+ @RequestBody Date endTime,
+ @RequestBody List<Integer> userIds);
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java
new file mode 100644
index 0000000..d200c9d
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java
@@ -0,0 +1,17 @@
+package com.dsh.activity.feignclient;
+
+import com.dsh.activity.feignclient.model.CouponStuAvailableVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-activity")
+public interface UserConponClient {
+
+
+ @PostMapping("/userConpon/getStuOfConpons")
+ public List<CouponStuAvailableVo> queryUserWithConponList(@RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/CouponStuAvailableVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/CouponStuAvailableVo.java
new file mode 100644
index 0000000..a34074f
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/CouponStuAvailableVo.java
@@ -0,0 +1,26 @@
+package com.dsh.activity.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CouponStuAvailableVo {
+
+ @ApiModelProperty(value = "券id")
+ private Integer conponId;
+
+ @ApiModelProperty(value = "券名称")
+ private String conponName;
+
+ @ApiModelProperty(value = "券类型 1满减券(取 条件金额+扣减金额) 2代金券(取 扣减金额)")
+ private Integer conponType;
+
+ @ApiModelProperty(value = "条件金额")
+ private double conditionalAmount;
+
+ @ApiModelProperty(value = "扣减金额")
+ private double amount;
+
+ @ApiModelProperty(value = "有效期至 yyyy-MM-dd")
+ private String lifespan;
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PurchaseRecordVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PurchaseRecordVo.java
new file mode 100644
index 0000000..dbc16e0
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PurchaseRecordVo.java
@@ -0,0 +1,23 @@
+package com.dsh.activity.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 类型实体类:
+ * 类型:购买课包、消课、报名赛事、介绍有礼
+ */
+
+@Data
+public class PurchaseRecordVo {
+
+ @ApiModelProperty(value = "类型名称")
+ private String purchaseType;
+
+ @ApiModelProperty(value = "类型变动时间 例如 06-29 10:48")
+ private String purchaseTime;
+
+ @ApiModelProperty(value = "类型涉及金额 例如 +100 -50")
+ private String purchaseAmount;
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponMapper.java
index 518fb49..c2cb1f9 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponMapper.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponMapper.java
@@ -2,10 +2,20 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.activity.entity.Coupon;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
/**
- * @author zhibing.pu
- * @date 2023/6/24 11:22
+ * <p>
+ * 优惠券 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
*/
public interface CouponMapper extends BaseMapper<Coupon> {
+
+ Map<String, Object> queryConponRuleOfJson(@Param("id") Integer id);
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/IntroduceRewardsMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/IntroduceRewardsMapper.java
new file mode 100644
index 0000000..6253a3f
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/IntroduceRewardsMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.activity.entity.IntroduceRewards;
+
+/**
+ * <p>
+ * 介绍奖励 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+public interface IntroduceRewardsMapper extends BaseMapper<IntroduceRewards> {
+
+}
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
new file mode 100644
index 0000000..d70eed1
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.activity.entity.UserCoupon;
+
+/**
+ * <p>
+ * 用户优惠券领取记录 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+public interface UserCouponMapper extends BaseMapper<UserCoupon> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java
new file mode 100644
index 0000000..3b5bbf0
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.activity.entity.UserPointsMerchandise;
+
+/**
+ * <p>
+ * 用户积分商品领取记录 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+public interface UserPointsMerchandiseMapper extends BaseMapper<UserPointsMerchandise> {
+
+}
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
new file mode 100644
index 0000000..edb6926
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/ConponJsonRuleModel.java
@@ -0,0 +1,22 @@
+package com.dsh.activity.model;
+
+import lombok.Data;
+
+
+
+@Data
+public class ConponJsonRuleModel {
+ /**
+ * 条件金额
+ */
+ double conditionalAmount;
+ /**
+ * 抵扣金额(代金券 取 该字段)
+ */
+ double deductionAmount;
+ /**
+ * 体验券名称
+ */
+ String experienceName;
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponService.java
new file mode 100644
index 0000000..cb92505
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponService.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.Coupon;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 优惠券 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+public interface CouponService extends IService<Coupon> {
+
+ Map<String, Object> queryConponRuleOfJson(Integer id);
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/IntroduceRewardsService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/IntroduceRewardsService.java
new file mode 100644
index 0000000..ec2e0e7
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/IntroduceRewardsService.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.IntroduceRewards;
+
+/**
+ * <p>
+ * 介绍奖励 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+public interface IntroduceRewardsService extends IService<IntroduceRewards> {
+
+}
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
new file mode 100644
index 0000000..6a21198
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/UserCouponService.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.UserCoupon;
+
+/**
+ * <p>
+ * 用户优惠券领取记录 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+public interface UserCouponService extends IService<UserCoupon> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java
new file mode 100644
index 0000000..b8c2f1e
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.UserPointsMerchandise;
+
+/**
+ * <p>
+ * 用户积分商品领取记录 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+public interface UserPointsMerchandiseService extends IService<UserPointsMerchandise> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java
index 294b9ab..a61bebf 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java
@@ -1,5 +1,6 @@
package com.dsh.activity.service.impl;
+
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -12,13 +13,13 @@
import com.dsh.activity.mapper.CouponMapper;
import com.dsh.activity.model.CouponListVo;
import com.dsh.activity.service.ICouponService;
-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;
/**
* @author zhibing.pu
@@ -48,14 +49,14 @@
public List<CouponListVo> queryCouponList(Integer uid, Integer distributionMethod) throws Exception {
AppUser appUser = appUserClient.queryAppUser(uid);
List<CouponListVo> listVos = new ArrayList<>();
- if(null != appUser){
+ if (null != appUser) {
List<Integer> userPopulation = new ArrayList<>();
userPopulation.add(1);//全部用户
- if(1 == appUser.getIsVip()){
+ if (1 == appUser.getIsVip()) {
userPopulation.add(2);//年度会员
}
List<Student> students = studentClient.queryStudentList(uid);
- if(students.size() > 0){
+ if (students.size() > 0) {
userPopulation.add(3);//已有学员用户
}
List<Coupon> list = this.list(new QueryWrapper<Coupon>().eq("distributionMethod", distributionMethod).in("userPopulation", userPopulation)
@@ -69,17 +70,17 @@
couponListVo.setType(coupon.getType());
couponListVo.setEffectiveTime(sdf.format(coupon.getStartTime()) + "-" + sdf.format(coupon.getEndTime()));
String content = coupon.getContent();
- if(coupon.getType() == 1){//满减{"num1":1,"num2":1}
+ if (coupon.getType() == 1) {//满减{"num1":1,"num2":1}
JSONObject jsonObject = JSON.parseObject(content);
couponListVo.setUseCondition("满" + jsonObject.getDouble("num1") + "元可用");
couponListVo.setFavorable(jsonObject.getDouble("num2") + "元");
}
- if(coupon.getType() == 2){//满减{"num1":1}
+ if (coupon.getType() == 2) {//满减{"num1":1}
JSONObject jsonObject = JSON.parseObject(content);
couponListVo.setUseCondition("");
couponListVo.setFavorable(jsonObject.getDouble("num1") + "元");
}
- if(coupon.getType() == 3){//体验券{"num1":1}
+ if (coupon.getType() == 3) {//体验券{"num1":1}
JSONObject jsonObject = JSON.parseObject(content);
couponListVo.setUseCondition("");
couponListVo.setFavorable(jsonObject.getString("num1"));
@@ -89,4 +90,12 @@
}
return listVos;
}
+
+
+
+ @Override
+ public Map<String, Object> queryConponRuleOfJson(Integer id) {
+ return this.baseMapper.queryConponRuleOfJson(id);
+ }
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/IntroduceRewardsServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/IntroduceRewardsServiceImpl.java
new file mode 100644
index 0000000..c5f53b7
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/IntroduceRewardsServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.IntroduceRewards;
+import com.dsh.activity.mapper.IntroduceRewardsMapper;
+import com.dsh.activity.service.IntroduceRewardsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 介绍奖励 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+@Service
+public class IntroduceRewardsServiceImpl extends ServiceImpl<IntroduceRewardsMapper, IntroduceRewards> implements IntroduceRewardsService {
+
+}
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
new file mode 100644
index 0000000..d646a5b
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.UserCoupon;
+import com.dsh.activity.mapper.UserCouponMapper;
+import com.dsh.activity.service.UserCouponService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户优惠券领取记录 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+@Service
+public class UserCouponServiceImpl extends ServiceImpl<UserCouponMapper, UserCoupon> implements UserCouponService {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java
new file mode 100644
index 0000000..c989bb4
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.UserPointsMerchandise;
+import com.dsh.activity.mapper.UserPointsMerchandiseMapper;
+import com.dsh.activity.service.UserPointsMerchandiseService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户积分商品领取记录 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+@Service
+public class UserPointsMerchandiseServiceImpl extends ServiceImpl<UserPointsMerchandiseMapper, UserPointsMerchandise> implements UserPointsMerchandiseService {
+
+}
diff --git a/cloud-server-activity/src/main/resources/mapper/CouponMapper.xml b/cloud-server-activity/src/main/resources/mapper/CouponMapper.xml
new file mode 100644
index 0000000..142c094
--- /dev/null
+++ b/cloud-server-activity/src/main/resources/mapper/CouponMapper.xml
@@ -0,0 +1,16 @@
+<?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.CouponMapper">
+
+ <select id="queryConponRuleOfJson" resultType="java.util.Map">
+ SELECT JSON_EXTRACT(content, "$.conditionalAmount") as conditionalAmount,
+ JSON_EXTRACT(content, "$.deductionAmount") as deductionAmount,
+ JSON_EXTRACT(content, "$.experienceName") as experienceName
+ FROM t_coupon
+ where 1=1
+ <if test="id != null">
+ and `id` = #{id}
+ </if>
+ </select>
+
+</mapper>
diff --git a/cloud-server-activity/src/main/resources/mapper/IntroduceRewardsMapper.xml b/cloud-server-activity/src/main/resources/mapper/IntroduceRewardsMapper.xml
new file mode 100644
index 0000000..ebf8e17
--- /dev/null
+++ b/cloud-server-activity/src/main/resources/mapper/IntroduceRewardsMapper.xml
@@ -0,0 +1,8 @@
+<?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.IntroduceRewardsMapper">
+
+ <!-- 开启二级缓存 -->
+ <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
+
+</mapper>
diff --git a/cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml b/cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml
new file mode 100644
index 0000000..9a81eac
--- /dev/null
+++ b/cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml
@@ -0,0 +1,8 @@
+<?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.UserCouponMapper">
+
+ <!-- 开启二级缓存 -->
+ <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
+
+</mapper>
diff --git a/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml
new file mode 100644
index 0000000..c42864e
--- /dev/null
+++ b/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml
@@ -0,0 +1,8 @@
+<?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.UserPointsMerchandiseMapper">
+
+ <!-- 开启二级缓存 -->
+ <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
+
+</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
new file mode 100644
index 0000000..b08c9ec
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -0,0 +1,65 @@
+package com.dsh.competition.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.competition.entity.Competition;
+import com.dsh.competition.entity.UserCompetition;
+import com.dsh.competition.feignclient.model.PurchaseRecordVo;
+import com.dsh.competition.service.CompetitionService;
+import com.dsh.competition.service.UserCompetitionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+@RestController
+@RequestMapping("")
+public class CompetitionController {
+
+
+ @Autowired
+ private CompetitionService cttService;
+
+ @Autowired
+ private UserCompetitionService ucttService;
+
+ private final SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm");
+
+ @PostMapping("/competition/getCompetitionsDetails")
+ public List<PurchaseRecordVo> getStuSourseList(@RequestBody Date startTime, @RequestBody Date endTime,@RequestParam("appUserId") Integer appUserId){
+
+ List<PurchaseRecordVo> recordVos = new ArrayList<>();
+
+ List<Competition> list = cttService.list(new QueryWrapper<Competition>()
+ .eq("payType",3 )
+ .eq("auditStatus",2));
+ List<Integer> comIds = list.stream().map(Competition::getId).collect(Collectors.toList());
+ List<UserCompetition> userCompetitions = ucttService.queryUsersCompetetions(startTime,endTime,appUserId,comIds);
+ if (userCompetitions.size() > 0){
+ userCompetitions.forEach(coms ->{
+ PurchaseRecordVo recordVo = new PurchaseRecordVo();
+ recordVo.setPurchaseType("报名赛事");
+ recordVo.setPurchaseTime(dateFormat.format(coms.getInsertTime()));
+ Competition competition = cttService.getById(coms.getCompetitionId());
+ recordVo.setPurchaseAmount("-"+competition.getPrice());
+ recordVos.add(recordVo);
+ });
+ }
+ return recordVos;
+ }
+
+
+}
+
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/UserCompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/UserCompetitionController.java
new file mode 100644
index 0000000..7039dd2
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/UserCompetitionController.java
@@ -0,0 +1,20 @@
+package com.dsh.competition.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 赛事报名记录 前端控制器
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+@RestController
+@RequestMapping("/user_competition")
+public class UserCompetitionController {
+
+}
+
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java b/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java
new file mode 100644
index 0000000..1fc29a0
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java
@@ -0,0 +1,151 @@
+package com.dsh.competition.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.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_competition")
+public class Competition extends Model<Competition> {
+
+ 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 storeId;
+ /**
+ * 赛事名称
+ */
+ private String name;
+ /**
+ * 开始时间
+ */
+ private Date startTime;
+ /**
+ * 结束时间
+ */
+ private Date endTime;
+ /**
+ * 报名结束时间
+ */
+ private Date registerEndTime;
+ /**
+ * 报名条件(1=全部用户,2=仅限年度会员参与,3=仅限学员参与)
+ */
+ private Integer registerCondition;
+ /**
+ * 报名开始年龄
+ */
+ private Integer startAge;
+ /**
+ * 报名结束年龄
+ */
+ private Integer endAge;
+ /**
+ * 支付方式(1=现金,2=玩湃币支付,3=课时支付)
+ */
+ private Integer payType;
+ /**
+ * 支付金额
+ */
+ private BigDecimal price;
+ /**
+ * 参加地址
+ */
+ private String address;
+ /**
+ * 经度
+ */
+ private String longitude;
+ /**
+ * 纬度
+ */
+ private String latitude;
+ /**
+ * 报名人数
+ */
+ private Integer applicantsNumber;
+ /**
+ * 基础人数
+ */
+ private Integer baseNumber;
+ /**
+ * 是否需要实名(0=否,1=是)
+ */
+ private Integer realName;
+ /**
+ * 赛事简介
+ */
+ private String introduction;
+ /**
+ * 审核状态(1=待审核,2=已通过,3=已拒绝)
+ */
+ private Integer auditStatus;
+ /**
+ * 审核人id
+ */
+ private Integer auditUserId;
+ /**
+ * 审核备注
+ */
+ private String auditRemark;
+ /**
+ * 状态(1=未开始,2=已开始,3=已结束,4=已取消)
+ */
+ private Integer status;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/entity/UserCompetition.java b/cloud-server-competition/src/main/java/com/dsh/competition/entity/UserCompetition.java
new file mode 100644
index 0000000..c80a11a
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/entity/UserCompetition.java
@@ -0,0 +1,58 @@
+package com.dsh.competition.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-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_user_competition")
+public class UserCompetition extends Model<UserCompetition> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 赛事id
+ */
+ private Integer competitionId;
+ /**
+ * 用户id
+ */
+ private Integer userId;
+ /**
+ * 状态(1=正常,2=取消)
+ */
+ private Integer status;
+ /**
+ * 参加时间
+ */
+ private Date insertTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/DeductionCompetitionsClient.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/DeductionCompetitionsClient.java
new file mode 100644
index 0000000..3a92b86
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/DeductionCompetitionsClient.java
@@ -0,0 +1,21 @@
+package com.dsh.competition.feignclient;
+
+
+import com.dsh.competition.feignclient.model.PurchaseRecordVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-competition")
+public interface DeductionCompetitionsClient {
+
+ @PostMapping("/competition/getCompetitionsDetails")
+ public List<PurchaseRecordVo> getStuSourseList(@RequestBody Date startTime,
+ @RequestBody Date endTime,
+ @RequestParam("appUserId") Integer appUserId);
+
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ClassDataDetails.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ClassDataDetails.java
new file mode 100644
index 0000000..dc6e069
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ClassDataDetails.java
@@ -0,0 +1,17 @@
+package com.dsh.competition.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+@Data
+public class ClassDataDetails {
+
+ @ApiModelProperty(value = "已扣课时数")
+ private Integer deductionClassHours;
+
+ @ApiModelProperty(value = "类型变动记录")
+ private List<PurchaseRecordVo> recordVos;
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/PurchaseRecordVo.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/PurchaseRecordVo.java
new file mode 100644
index 0000000..af0e9b8
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/PurchaseRecordVo.java
@@ -0,0 +1,23 @@
+package com.dsh.competition.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 类型实体类:
+ * 类型:购买课包、消课、报名赛事、介绍有礼
+ */
+
+@Data
+public class PurchaseRecordVo {
+
+ @ApiModelProperty(value = "类型名称")
+ private String purchaseType;
+
+ @ApiModelProperty(value = "类型变动时间")
+ private String purchaseTime;
+
+ @ApiModelProperty(value = "类型涉及金额")
+ private String purchaseAmount;
+
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java
new file mode 100644
index 0000000..851cb69
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.competition.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.competition.entity.Competition;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+public interface CompetitionMapper extends BaseMapper<Competition> {
+
+}
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
new file mode 100644
index 0000000..f499608
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/UserCompetitionMapper.java
@@ -0,0 +1,26 @@
+package com.dsh.competition.mapper;
+
+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>
+ * 赛事报名记录 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+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/CompetitionService.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/CompetitionService.java
new file mode 100644
index 0000000..5f12a48
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/CompetitionService.java
@@ -0,0 +1,16 @@
+package com.dsh.competition.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.competition.entity.Competition;
+
+/**
+ * <p>
+ * 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+public interface CompetitionService extends IService<Competition> {
+
+}
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
new file mode 100644
index 0000000..b4fcdb5
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/UserCompetitionService.java
@@ -0,0 +1,22 @@
+package com.dsh.competition.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.competition.entity.UserCompetition;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 赛事报名记录 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+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/CompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
new file mode 100644
index 0000000..a7ccc96
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.competition.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.competition.entity.Competition;
+import com.dsh.competition.mapper.CompetitionMapper;
+import com.dsh.competition.service.CompetitionService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+@Service
+public class CompetitionServiceImpl extends ServiceImpl<CompetitionMapper, Competition> implements CompetitionService {
+
+}
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
new file mode 100644
index 0000000..8fd1b12
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/UserCompetitionServiceImpl.java
@@ -0,0 +1,28 @@
+package com.dsh.competition.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.competition.entity.UserCompetition;
+import com.dsh.competition.mapper.UserCompetitionMapper;
+import com.dsh.competition.service.UserCompetitionService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 赛事报名记录 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+@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/CompetitionMapper.xml b/cloud-server-competition/src/main/resources/mapper/CompetitionMapper.xml
new file mode 100644
index 0000000..0a11da1
--- /dev/null
+++ b/cloud-server-competition/src/main/resources/mapper/CompetitionMapper.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.competition.mapper.CompetitionMapper">
+
+
+</mapper>
diff --git a/cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml b/cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml
new file mode 100644
index 0000000..93a7fcc
--- /dev/null
+++ b/cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml
@@ -0,0 +1,38 @@
+<?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.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
new file mode 100644
index 0000000..de4fec9
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CancelSourceController.java
@@ -0,0 +1,66 @@
+package com.dsh.course.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.course.entity.CancelledClasses;
+import com.dsh.course.entity.TCoursePackagePayment;
+import com.dsh.course.feignclient.model.PurchaseRecordVo;
+import com.dsh.course.service.CancelledClassesService;
+import com.dsh.course.service.TCoursePackagePaymentService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Api
+@CrossOrigin
+@RestController
+@RequestMapping("")
+public class CancelSourceController {
+
+
+ @Autowired
+ private CancelledClassesService caceService;
+
+
+ @Autowired
+ private TCoursePackagePaymentService tcppService;
+
+ private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
+
+
+ /**
+ * 获取课包对应的消费记录
+ * @param stuId 学员id
+ * @param appUserId 用户id
+ * @return
+ */
+ @PostMapping("/cancelSource/cancelList")
+ public List<PurchaseRecordVo> getCancelCourseList(@RequestBody Date startTime,@RequestBody Date endTime,@RequestBody Integer stuId,@RequestBody Integer appUserId){
+ List<PurchaseRecordVo> purchaseRecordVos = new ArrayList<>();
+
+ List<TCoursePackagePayment> tCoursePackagePayments = tcppService.queryAllCoursePackage(startTime,endTime,null,stuId, appUserId);
+ List<Integer> coursePackageIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getId).collect(Collectors.toList());
+
+ List<CancelledClasses> list = caceService.list(new QueryWrapper<CancelledClasses>()
+ .in("coursePackageId", coursePackageIds)
+ .between("insertTime",startTime,endTime));
+ if (list.size() > 0){
+ list.forEach( canse -> {
+ PurchaseRecordVo purchaseRecordVo = new PurchaseRecordVo();
+ purchaseRecordVo.setPurchaseTime(format.format(canse.getInsertTime()));
+ purchaseRecordVo.setPurchaseType("");
+ purchaseRecordVo.setPurchaseAmount("-"+canse.getCancelledClassesNumber());
+ purchaseRecordVos.add(purchaseRecordVo);
+ });
+ }
+ return purchaseRecordVos;
+ }
+
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
index 076c79f..1953673 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -52,7 +52,7 @@
@PostMapping("/course/queryList")
- public List<ExerciseVideo> queryStuCourseAfterVideos(List<Integer> courseIds){
+ public List<ExerciseVideo> queryStuCourseAfterVideos(@RequestBody List<Integer> courseIds){
List<ExerciseVideo> videos = new ArrayList<>();
List<TCourse> list = courseService.list(new QueryWrapper<TCourse>()
.in("id", courseIds)
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 d5fb9e5..ab7af9d 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
@@ -1,20 +1,26 @@
package com.dsh.course.controller;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.course.entity.TCoursePackage;
import com.dsh.course.entity.TCoursePackagePayment;
-import com.dsh.course.feignclient.model.CourseOfStoreVo;
-import com.dsh.course.feignclient.model.StuCourseResp;
+import com.dsh.course.feignclient.model.*;
import com.dsh.course.service.TCoursePackagePaymentService;
import com.dsh.course.service.TCoursePackageService;
+import com.dsh.course.util.DateUtil;
+import com.dsh.course.util.StrUtils;
import io.swagger.annotations.Api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import java.util.stream.Collectors;
@Api
@CrossOrigin
@@ -31,15 +37,17 @@
@Autowired
private TCoursePackageService tcpService;
+ private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
+
/**
* 获取 没有学员信息的图片配置
* @param stuId 学员id
* @return 课包列表
*/
@PostMapping("/coursePack/queryPayment")
- public List<StuCourseResp> getStuCoursePackagePayment(@RequestBody Integer stuId){
+ public List<StuCourseResp> getStuCoursePackagePayment(@RequestBody Integer stuId,@RequestBody Integer appUserId){
List<StuCourseResp> resps = new ArrayList<>();
- List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(stuId);
+ List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,stuId,appUserId);
if (byUserId.size() > 0 ){
for (TCoursePackagePayment tCoursePackagePayment : byUserId) {
TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
@@ -76,4 +84,151 @@
return tcpService.queryStoreOfCourse();
}
+
+ /**
+ *
+ * 课程名称列表
+ */
+ @PostMapping("/coursePack/sessionNames")
+ public List<StuSessionDetailsVo> getStuSessionList(@RequestBody Date startTime, @RequestBody Date endTime, @RequestBody Integer stuId, @RequestBody Integer appUserId){
+ List<StuSessionDetailsVo> detailsVos = new ArrayList<>();
+ List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(startTime,endTime,null,stuId,appUserId);
+ if (byUserId.size() > 0){
+ List<Integer> collect = byUserId.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
+ List<TCoursePackage> list = tcpService.list(new QueryWrapper<TCoursePackage>()
+ .in("id", collect));
+ list.forEach(vo -> {
+ StuSessionDetailsVo detVo = new StuSessionDetailsVo();
+ detVo.setSessionid(vo.getId());
+ detVo.setSessionName(vo.getName());
+ String afterDayDate = DateUtil.getAfterDayDate2(vo.getInsertTime(),vo.getValidDays() + "");
+ detVo.setPeriodOfValidity(afterDayDate);
+ detailsVos.add(detVo);
+ });
+ }
+ return detailsVos;
+ }
+
+ @PostMapping("/coursePack/paymentCourse")
+ public List<PurchaseRecordVo> queryCourseDetails(@RequestBody Date startTime, @RequestBody Date endTime,@RequestBody Integer stuId, @RequestBody Integer appUserId) {
+ List<PurchaseRecordVo> purchaseRecordVos = new ArrayList<>();
+ List<TCoursePackagePayment> coursePackage = packagePaymentService.queryAllCoursePackage(startTime,endTime,null,stuId, appUserId);
+ if (coursePackage.size() > 0 ){
+ coursePackage.forEach( cspackage -> {
+ PurchaseRecordVo recordVo = new PurchaseRecordVo();
+ recordVo.setPurchaseAmount("+"+cspackage.getClassHours());
+ recordVo.setPurchaseTime(format.format(cspackage.getInsertTime()));
+ recordVo.setPurchaseType("购买课包");
+ purchaseRecordVos.add(recordVo);
+ });
+ }
+ return purchaseRecordVos;
+ }
+
+
+
+ @PostMapping("/coursePack/stuOfCourses")
+ public StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody Integer stuId, @RequestBody Integer appUserId){
+ StuWithCoursesListVo lisco = new StuWithCoursesListVo();
+ Integer totalNu = 0;
+ Integer dedutNu = 0;
+ Integer remainNu = 0;
+ List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,stuId,appUserId);
+ if (byUserId.size() > 0 ){
+ for (TCoursePackagePayment tCoursePackagePayment : byUserId) {
+ totalNu = totalNu + tCoursePackagePayment.getTotalClassHours();
+ dedutNu = dedutNu + tCoursePackagePayment.getLaveClassHours();
+ remainNu = remainNu + (tCoursePackagePayment.getTotalClassHours()-tCoursePackagePayment.getLaveClassHours());
+ }
+ lisco.setTotalNums(totalNu);
+ lisco.setDeductedNums(remainNu);
+ lisco.setRemainingNums(dedutNu);
+ }
+ return lisco;
+ }
+
+
+
+ @PostMapping("/coursePack/continuingCourse")
+ public StudentOfCourseVo getStudentCourse(@RequestBody Integer courseId,@RequestBody Integer stuId,@RequestBody Integer appUserId){
+ StudentOfCourseVo courseVo = new StudentOfCourseVo();
+ List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,courseId,stuId,appUserId);
+ if (tCoursePackagePayments.size() > 0 ){
+
+ List<CourseHoursType> typeList = new ArrayList<>();
+ tCoursePackagePayments.forEach(cou -> {
+ CourseHoursType hoursType = new CourseHoursType();
+ hoursType.setCourseConfigId(cou.getId());
+ hoursType.setCourseConfigId(cou.getClassHours());
+ typeList.add(hoursType);
+ });
+ TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0);
+ courseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
+ courseVo.setTypeList(typeList);
+
+ TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
+ courseVo.setPackageImg(coursePackage.getCoverDrawing());
+ courseVo.setCourseName(coursePackage.getName());
+ courseVo.setCoachId(coursePackage.getCoachId());
+ String classWeeks = coursePackage.getClassWeeks();
+ List<Integer> integers = StrUtils.dealStrToList(classWeeks);
+ 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);
+ }
+ courseVo.setCourseWeek(courWeeks.toString());
+ }
+
+ courseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime());
+ // TODO: 2023/6/30 查询会员折扣数据
+ String payType = tCoursePackagePayment.getPayType();
+ BigDecimal cashPayment = tCoursePackagePayment.getCashPayment();
+ double cashPaymentValue = cashPayment.doubleValue();
+ Integer playPaiCoin = tCoursePackagePayment.getPlayPaiCoin();
+ switch (payType) {
+ case "1;2":
+ courseVo.setAmount(cashPaymentValue);
+ courseVo.setWpGold(playPaiCoin);
+ break;
+ case "1":
+ courseVo.setAmount(cashPaymentValue);
+ break;
+ case "2":
+ courseVo.setWpGold(playPaiCoin);
+ break;
+ }
+
+ courseVo.setStoreId(coursePackage.getStoreId());
+ }
+
+ return courseVo;
+ }
}
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
new file mode 100644
index 0000000..5416653
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
@@ -0,0 +1,54 @@
+package com.dsh.course.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.course.entity.CancelledClasses;
+import com.dsh.course.entity.CoursePackageStudent;
+import com.dsh.course.entity.TCoursePackage;
+import com.dsh.course.service.CancelledClassesService;
+import com.dsh.course.service.CoursePackageStudentService;
+import com.dsh.course.service.TCoursePackageService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api
+@CrossOrigin
+@RestController
+@RequestMapping("")
+public class CourseRecordController {
+
+
+ @Autowired
+ private CoursePackageStudentService cosService;
+
+ @Autowired
+ private TCoursePackageService tcpService;
+
+ @Autowired
+ private CancelledClassesService caccService;
+
+
+
+ @PostMapping("/courseRecord/queryDeduClassHours")
+ public Integer getDeductionClassHour(@RequestBody Integer courseId,@RequestBody Integer stuId,@RequestBody Integer appUserId){
+ Integer sult = 0;
+ TCoursePackage coursePackage = tcpService.getById(courseId);
+ if (null != coursePackage && coursePackage.getStatus() == 3){
+ List<CoursePackageStudent> coursePackageStudents = cosService.queryStuDeduClassHourNums(courseId, stuId, appUserId);
+ if (coursePackageStudents.size() > 0){
+ List<CancelledClasses> list = caccService.list(new QueryWrapper<CancelledClasses>()
+ .eq("coursePackageId",courseId ));
+ if (list.size() > 0){
+ for (CancelledClasses cancelledClasses : list) {
+ sult = sult + cancelledClasses.getCancelledClassesNumber();
+ }
+ }
+ }
+ }
+ return sult;
+ }
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/CancelledClasses.java b/cloud-server-course/src/main/java/com/dsh/course/entity/CancelledClasses.java
new file mode 100644
index 0000000..a5d4298
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/CancelledClasses.java
@@ -0,0 +1,58 @@
+package com.dsh.course.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-06-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_cancelled_classes")
+public class CancelledClasses extends Model<CancelledClasses> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 课包id
+ */
+ private Integer coursePackageId;
+ /**
+ * 消课凭证
+ */
+ private String voucher;
+ /**
+ * 消课数量
+ */
+ private Integer cancelledClassesNumber;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java b/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java
new file mode 100644
index 0000000..d18a280
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java
@@ -0,0 +1,67 @@
+package com.dsh.course.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-06-30
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_course_package_student")
+public class CoursePackageStudent extends Model<CoursePackageStudent> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 用户id
+ */
+ private Integer appUserId;
+ /**
+ * 学员id
+ */
+ private Integer studentId;
+ /**
+ * 课包id
+ */
+ private Integer coursePackageId;
+ /**
+ * 课包购买记录id
+ */
+ private Integer coursePackagePaymentId;
+ /**
+ * 到课状态(0=否,1=是)
+ */
+ private Integer signInOrNot;
+ /**
+ * 预约状态(0=取消,1=预约)
+ */
+ private Integer reservationStatus;
+ private Date insertTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/TCourse.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TCourse.java
index 2b85182..bad6bde 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/entity/TCourse.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TCourse.java
@@ -1,9 +1,6 @@
package com.dsh.course.entity;
-import java.util.Date;
-import java.io.Serializable;
-
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -11,6 +8,8 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
+import java.util.Date;
+
/**
* <p>
* 课程
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java
index e1cc65b..7d160ea 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java
@@ -1,15 +1,13 @@
package com.dsh.course.entity;
-import java.util.Date;
-
-import java.io.Serializable;
-
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
+
+import java.util.Date;
/**
* <p>
@@ -102,7 +100,7 @@
/**
* 支付方式(1=现金,2=玩湃币)
*/
- private Integer payType;
+ private String payType;
/**
* 有效天数
*/
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
index 98e53c1..5fa4ee6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
@@ -45,7 +45,7 @@
/**
* 支付方式(1=现金,2=玩湃币)
*/
- private Integer payType;
+ private String payType;
/**
* 课时数
*/
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CancelListClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CancelListClient.java
new file mode 100644
index 0000000..cb7ef3e
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CancelListClient.java
@@ -0,0 +1,20 @@
+package com.dsh.course.feignclient;
+
+import com.dsh.course.feignclient.model.PurchaseRecordVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-course")
+public interface CancelListClient {
+
+ @PostMapping("/cancelSource/cancelList")
+ public List<PurchaseRecordVo> getCancelCourseList(@RequestBody Date startTime,
+ @RequestBody Date endTime,
+ @RequestBody Integer stuId,
+ @RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseListClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseListClient.java
index 2111f68..aeadaab 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseListClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseListClient.java
@@ -4,6 +4,7 @@
import com.dsh.course.feignclient.model.ExerciseVideo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@@ -11,5 +12,5 @@
public interface CourseListClient {
@PostMapping("/course/queryList")
- List<ExerciseVideo> queryStuCourseAfterVideos(List<Integer> courseIds);
+ List<ExerciseVideo> queryStuCourseAfterVideos(@RequestBody List<Integer> courseIds);
}
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 4b4b9e6..cc51aa7 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
@@ -5,6 +5,7 @@
import com.dsh.course.feignclient.model.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@@ -17,4 +18,13 @@
@PostMapping("/coursePack/storeOfCourse")
List<CourseOfStoreVo> getStoreOfCourses();
+
+ @PostMapping("/coursePack/stuOfCourses")
+ StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody Integer stuId,@RequestBody Integer appUserId);
+
+ @PostMapping("/coursePack/continuingCourse")
+ StudentOfCourseVo getStudentCourse(@RequestBody Integer courseId,
+ @RequestBody Integer stuId,
+ @RequestBody Integer appUserId);
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java
new file mode 100644
index 0000000..ef52a27
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java
@@ -0,0 +1,13 @@
+package com.dsh.course.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-course")
+public interface CourseRecordClient {
+
+ @PostMapping("/courseRecord/queryDeduClassHours")
+ public Integer getDeductionClassHour(@RequestBody Integer courseId, @RequestBody Integer stuId, @RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseSessionNameClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseSessionNameClient.java
new file mode 100644
index 0000000..8f71d73
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseSessionNameClient.java
@@ -0,0 +1,30 @@
+package com.dsh.course.feignclient;
+
+
+import com.dsh.course.feignclient.model.PurchaseRecordVo;
+import com.dsh.course.feignclient.model.StuSessionDetailsVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-course")
+public interface CourseSessionNameClient {
+
+
+ @PostMapping("/coursePack/sessionNames")
+ List<StuSessionDetailsVo> getStuSessionList(@RequestBody Date startTime,
+ @RequestBody Date endTime,
+ @RequestBody Integer stuId,
+ @RequestBody Integer appUserId);
+
+
+ @PostMapping("/coursePack/paymentCourse")
+ public List<PurchaseRecordVo> queryCourseDetails(@RequestBody Date startTime,
+ @RequestBody Date endTime,
+ @RequestBody Integer stuId,
+ @RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseHoursType.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseHoursType.java
new file mode 100644
index 0000000..3877b72
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseHoursType.java
@@ -0,0 +1,16 @@
+package com.dsh.course.feignclient.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CourseHoursType {
+
+ @ApiModelProperty(value = "课时id")
+ private Integer courseConfigId;
+
+ @ApiModelProperty(value = "课时数")
+ private Integer courseHourNums;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PurchaseRecordVo.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PurchaseRecordVo.java
new file mode 100644
index 0000000..6bcc31b
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PurchaseRecordVo.java
@@ -0,0 +1,23 @@
+package com.dsh.course.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 类型实体类:
+ * 类型:购买课包、消课、报名赛事、介绍有礼
+ */
+
+@Data
+public class PurchaseRecordVo {
+
+ @ApiModelProperty(value = "类型名称")
+ private String purchaseType;
+
+ @ApiModelProperty(value = "类型变动时间")
+ private String purchaseTime;
+
+ @ApiModelProperty(value = "类型涉及金额")
+ private String purchaseAmount;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java
new file mode 100644
index 0000000..b342323
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java
@@ -0,0 +1,18 @@
+package com.dsh.course.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StuSessionDetailsVo {
+
+ @ApiModelProperty(value = "课时id")
+ private Integer sessionid;
+
+ @ApiModelProperty(value = "课时名称")
+ private String sessionName;
+
+ @ApiModelProperty(value = "课时有效期")
+ private String periodOfValidity;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuWithCoursesListVo.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuWithCoursesListVo.java
new file mode 100644
index 0000000..15e619c
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuWithCoursesListVo.java
@@ -0,0 +1,19 @@
+package com.dsh.course.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class StuWithCoursesListVo {
+
+ @ApiModelProperty(value = "总学时数")
+ private Integer totalNums;
+
+ @ApiModelProperty(value = "已扣学时数")
+ private Integer deductedNums;
+
+ @ApiModelProperty(value = "剩余学时数")
+ private Integer remainingNums;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StudentOfCourseVo.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StudentOfCourseVo.java
new file mode 100644
index 0000000..49b7dbc
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StudentOfCourseVo.java
@@ -0,0 +1,45 @@
+package com.dsh.course.feignclient.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class StudentOfCourseVo {
+
+ @ApiModelProperty(value = "课包id")
+ private Integer coursePackageId;
+
+ @ApiModelProperty(value = "课包封面图")
+ private String packageImg;
+
+ @ApiModelProperty(value = "课包名称")
+ private String courseName;
+
+ @ApiModelProperty(value = "授课老师/教练")
+ private Integer coachId;
+
+ @ApiModelProperty(value = "上课周 例如:每周二")
+ private String courseWeek;
+
+ @ApiModelProperty(value = "上课时间:例如 14:00-16:00")
+ private String courseTime;
+
+ @ApiModelProperty(value = "课时列表: 50 70 90")
+ private List<CourseHoursType> typeList;
+
+ @ApiModelProperty(value = "支付价格")
+ private double amount;
+
+ @ApiModelProperty(value = "会员价")
+ private double vipAmount;
+
+ @ApiModelProperty(value = "玩湃币")
+ private Integer wpGold;
+
+ @ApiModelProperty(value = "门店id")
+ private Integer storeId;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/CancelledClassesMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/CancelledClassesMapper.java
new file mode 100644
index 0000000..0b453c8
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/CancelledClassesMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.course.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.course.entity.CancelledClasses;
+
+/**
+ * <p>
+ * 课包消课记录 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+public interface CancelledClassesMapper extends BaseMapper<CancelledClasses> {
+
+}
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
new file mode 100644
index 0000000..d686cf9
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
@@ -0,0 +1,23 @@
+package com.dsh.course.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.course.entity.CoursePackageStudent;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 学员上课记录 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-30
+ */
+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/TCoursePackagePaymentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
index 2fa876a..efea10f 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
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
+import java.util.Date;
import java.util.List;
/**
@@ -16,7 +17,11 @@
*/
public interface TCoursePackagePaymentMapper extends BaseMapper<TCoursePackagePayment> {
- List<TCoursePackagePayment> queryAllCoursePackage(@Param("stuId") Integer stuId);
+ 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/service/CancelledClassesService.java b/cloud-server-course/src/main/java/com/dsh/course/service/CancelledClassesService.java
new file mode 100644
index 0000000..c2c307c
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/CancelledClassesService.java
@@ -0,0 +1,16 @@
+package com.dsh.course.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.course.entity.CancelledClasses;
+
+/**
+ * <p>
+ * 课包消课记录 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+public interface CancelledClassesService extends IService<CancelledClasses> {
+
+}
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
new file mode 100644
index 0000000..ba01211
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java
@@ -0,0 +1,20 @@
+package com.dsh.course.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.course.entity.CoursePackageStudent;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 学员上课记录 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-30
+ */
+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 aa12dce..db11bfd 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
@@ -1,8 +1,9 @@
package com.dsh.course.service;
-import com.dsh.course.entity.TCoursePackagePayment;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.course.entity.TCoursePackagePayment;
+import java.util.Date;
import java.util.List;
/**
@@ -15,7 +16,7 @@
*/
public interface TCoursePackagePaymentService extends IService<TCoursePackagePayment> {
- List<TCoursePackagePayment> queryAllCoursePackage(Integer stuId);
+ List<TCoursePackagePayment> queryAllCoursePackage(Date startTime, Date endTime ,Integer lessionId,Integer stuId, Integer appUserId);
/**
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CancelledClassesServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CancelledClassesServiceImpl.java
new file mode 100644
index 0000000..648abbc
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CancelledClassesServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.course.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.course.entity.CancelledClasses;
+import com.dsh.course.mapper.CancelledClassesMapper;
+import com.dsh.course.service.CancelledClassesService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 课包消课记录 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-29
+ */
+@Service
+public class CancelledClassesServiceImpl extends ServiceImpl<CancelledClassesMapper, CancelledClasses> implements CancelledClassesService {
+
+}
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
new file mode 100644
index 0000000..ba33ad3
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
@@ -0,0 +1,26 @@
+package com.dsh.course.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.course.entity.CoursePackageStudent;
+import com.dsh.course.mapper.CoursePackageStudentMapper;
+import com.dsh.course.service.CoursePackageStudentService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 学员上课记录 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-30
+ */
+@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 c4cb6b7..f61dff9 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
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.util.Date;
import java.util.List;
/**
@@ -20,8 +21,8 @@
public class TCoursePackagePaymentServiceImpl extends ServiceImpl<TCoursePackagePaymentMapper, TCoursePackagePayment> implements TCoursePackagePaymentService {
@Override
- public List<TCoursePackagePayment> queryAllCoursePackage(Integer stuId) {
- return this.baseMapper.queryAllCoursePackage(stuId);
+ public List<TCoursePackagePayment> queryAllCoursePackage(Date startTime, Date endTime , Integer coursePackId, Integer stuId, Integer appUserId) {
+ return this.baseMapper.queryAllCoursePackage(startTime,endTime,coursePackId,stuId,appUserId);
}
/**
diff --git a/cloud-server-course/src/main/java/com/dsh/course/util/DateUtil.java b/cloud-server-course/src/main/java/com/dsh/course/util/DateUtil.java
index b4de802..b890d08 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/util/DateUtil.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/util/DateUtil.java
@@ -237,6 +237,24 @@
return dateStr;
}
+
+ /**
+ * 得到n天之后的日期
+ */
+ public static String getAfterDayDate2(Date date,String days) {
+ int daysInt = Integer.parseInt(days);
+
+ Calendar canlendar = Calendar.getInstance(); // java.util包
+ canlendar.setTime(date);
+ canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动
+ Date afterDate = canlendar.getTime();
+
+ SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd");
+ String dateStr = sdfd.format(afterDate);
+
+ return dateStr;
+ }
+
/**
* 得到n天之后是周几
*/
diff --git a/cloud-server-course/src/main/java/com/dsh/course/util/StrUtils.java b/cloud-server-course/src/main/java/com/dsh/course/util/StrUtils.java
index f6ba9f9..edd6cf6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/util/StrUtils.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/util/StrUtils.java
@@ -99,4 +99,17 @@
return sBuilder.toString();
}
+ public static List<Integer> dealStrToList(String str){
+ List<Integer> list = new ArrayList<>();
+ if (null == str || str == "" || str.isEmpty()){
+ return list;
+ }
+ String[] strArray = str.split(";");
+ for (String numStr : strArray) {
+ int num = Integer.parseInt(numStr);
+ list.add(num);
+ }
+ return list;
+ }
+
}
diff --git a/cloud-server-course/src/main/resources/mapper/CancelledClassesMapper.xml b/cloud-server-course/src/main/resources/mapper/CancelledClassesMapper.xml
new file mode 100644
index 0000000..14a46b0
--- /dev/null
+++ b/cloud-server-course/src/main/resources/mapper/CancelledClassesMapper.xml
@@ -0,0 +1,5 @@
+<?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.CancelledClassesMapper">
+
+</mapper>
diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
new file mode 100644
index 0000000..f9e2d0d
--- /dev/null
+++ b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
@@ -0,0 +1,35 @@
+<?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.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 9aee0a7..41486fa 100644
--- a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
@@ -43,7 +43,19 @@
UNION ALL
SELECT *
FROM t_course_package_payment5
- WHERE user_id = #{stuId}
+ 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>
diff --git a/cloud-server-other/pom.xml b/cloud-server-other/pom.xml
index ea54735..61cd8a3 100644
--- a/cloud-server-other/pom.xml
+++ b/cloud-server-other/pom.xml
@@ -76,6 +76,12 @@
<version>1.5.22</version>
</dependency>
+ <!-- http-->
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.5.13</version>
+ </dependency>
<!-- mybatis generertor-->
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/AskedQuestionsController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/AskedQuestionsController.java
new file mode 100644
index 0000000..ae9072a
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/AskedQuestionsController.java
@@ -0,0 +1,64 @@
+package com.dsh.other.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.other.entity.FrequentlyAskedQuestions;
+import com.dsh.other.model.vo.questionVo.QuestionDetailsVo;
+import com.dsh.other.model.vo.questionVo.QuestionIns;
+import com.dsh.other.service.FrequentlyAskedQuestionsService;
+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;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+@RestController
+@RequestMapping("")
+public class AskedQuestionsController {
+
+
+ @Autowired
+ private FrequentlyAskedQuestionsService faqService;
+
+
+ private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+
+
+ @PostMapping("/base/notice/queryQuestionDetails")
+ public QuestionDetailsVo getSysQuestionDetails(){
+ QuestionDetailsVo notices = new QuestionDetailsVo();
+ List<QuestionIns> sysS = new ArrayList<>();
+ List<FrequentlyAskedQuestions> list = faqService.list(new QueryWrapper<FrequentlyAskedQuestions>()
+ .eq("state", 1)
+ .orderByDesc("insertTime"));
+ if (list.size() > 0 ){
+ list.forEach(noList -> {
+ QuestionIns notice = new QuestionIns();
+ notice.setQuesId(noList.getId());
+ notice.setQuesTitle(noList.getContent());
+ notice.setQuesContents(noList.getAnswer());
+ sysS.add(notice);
+ });
+ notices.setSysS(sysS);
+ }
+ return notices;
+ }
+
+
+ @PostMapping("/base/notice/queryQuestion")
+ public QuestionIns getSysQuestionBuId(@RequestBody Integer quesId){
+ QuestionIns sysNotice = new QuestionIns();
+ FrequentlyAskedQuestions notice = faqService.getById(quesId);
+ if (null != notice){
+ sysNotice.setQuesId(notice.getId());
+ sysNotice.setQuesTitle(notice.getContent());
+ sysNotice.setQuesContents(notice.getAnswer());
+ sysNotice.setQuesTime(format.format(notice.getInsertTime()));
+ }
+ return sysNotice;
+ }
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
index 6b51f47..5c19204 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
@@ -1,9 +1,14 @@
package com.dsh.other.controller;
+
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.other.entity.Store;
+import com.dsh.other.feignclient.model.StoreDetailOfCourse;
+import com.dsh.other.feignclient.model.StoreInfo;
+import com.dsh.other.feignclient.model.StoreLonLatList;
import com.dsh.other.model.BaseVo;
import com.dsh.other.service.StoreService;
+import com.dsh.other.util.GDMapGeocodingUtil;
import com.dsh.other.util.ResultUtil;
import com.dsh.other.util.ToolUtil;
import io.swagger.annotations.ApiImplicitParam;
@@ -12,21 +17,185 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
-/**
- * @author zhibing.pu
- * @date 2023/6/24 15:42
- */
@RestController
-@RequestMapping("")
+@RequestMapping("/base/protocol")
public class StoreController {
@Autowired
private StoreService storeService;
+ @Autowired
+ private GDMapGeocodingUtil gdMapGeocodingUtil;
+
+
+
+
+ @PostMapping("/storeDetail/courseOfSto")
+ public StoreDetailOfCourse getCourseOfStore(@RequestBody Integer storeId){
+ StoreDetailOfCourse ofCourse = new StoreDetailOfCourse();
+ Store store = stoService.getById(storeId);
+ if (null != store){
+ ofCourse.setStoreName(store.getName());
+ ofCourse.setStoreAddr(store.getAddress());
+ }
+ return ofCourse;
+ }
+
+ @PostMapping("/storeDetail/nearbyStore")
+ public List<StoreInfo> getAllNearbyStoreList(@RequestBody String longitude,@RequestBody String latitude){
+ String current = longitude+","+latitude;
+ List<StoreInfo> storeInfos = new ArrayList<>();
+ String cityCode = "";
+ try {
+ Map<String, String> geocode = gdMapGeocodingUtil.geocode(longitude, latitude);
+ cityCode = geocode.get("cityCode");
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ List<Store> storeList = stoService.list(new QueryWrapper<Store>()
+ .eq("state", 1)
+ .eq("cityCode",cityCode));
+ if (storeList.size() > 0){
+ for (Store store : storeList) {
+ String storeLon = store.getLon();
+ String storeLat = store.getLat();
+ String result = storeLon+","+storeLat;
+ String distanceTOKilometer = gdMapGeocodingUtil.getDistanceTOKilometer(current, result);
+ StoreInfo info = new StoreInfo();
+ info.setStoreId(store.getId());
+ info.setStoreName(store.getName());
+ info.setStoreImg(store.getRealPicture());
+ info.setDistance(Long.parseLong(distanceTOKilometer));
+ info.setStoreAddr(store.getAddress());
+ storeInfos.add(info);
+ }
+ Comparator<StoreInfo> distanceComparator = new Comparator<StoreInfo>() {
+ @Override
+ public int compare(StoreInfo store1, StoreInfo store2) {
+ return Long.compare(store1.getDistance(), store2.getDistance());
+ }
+ };
+ Collections.sort(storeInfos, distanceComparator);
+ }
+ return storeInfos;
+ }
+
+
+ @PostMapping("/storeDetail/storeOfLonLat")
+ public List<StoreLonLatList> getAllStoreLonLats(@RequestBody String longitude, @RequestBody String latitude){
+ List<StoreLonLatList> storeInfos = new ArrayList<>();
+ try {
+ Map<String, String> geocode = gdMapGeocodingUtil.geocode(longitude, latitude);
+ String cityCode = geocode.get("cityCode");
+ List<Store> storeList = stoService.list(new QueryWrapper<Store>()
+ .eq("cityCode",cityCode));
+ if (storeList.size() > 0){
+ for (Store store : storeList) {
+ StoreLonLatList latList = new StoreLonLatList();
+ latList.setStoreId(store.getId());
+ latList.setLongitude(store.getLon());
+ latList.setLatitude(store.getLat());
+ storeInfos.add(latList);
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+
+ return storeInfos;
+ }
+
+
+
+
+
+
+ /**
+ * 获取门店列表
+ * @param provinceCode
+ * @param cityCode
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/store/queryStoreList")
+ public List<Store> queryStoreList(@RequestBody String provinceCode, @RequestBody String cityCode){
+ try {
+ return storeService.queryStorsList(provinceCode, cityCode);
+ }catch (Exception e){
+ e.printStackTrace();
+ return new ArrayList<>();
+ }
+ }
+
+
+
+
+
+ @ResponseBody
+ @PostMapping("/base/store/queryStoreLists")
+ @ApiOperation(value = "获取门店列表", tags = {"APP-加入玩湃"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "经纬", name = "lon", dataType = "string", required = true),
+ @ApiImplicitParam(value = "纬度", name = "lat", dataType = "string", required = true),
+ })
+ public ResultUtil<List<BaseVo>> queryStoreLists(@RequestBody String lon, @RequestBody String lat){
+ if(ToolUtil.isEmpty(lon)){
+ return ResultUtil.paranErr("lon");
+ }
+ if(ToolUtil.isEmpty(lat)){
+ return ResultUtil.paranErr("lat");
+ }
+ try {
+ List<BaseVo> baseVos = storeService.queryStoreLists(lon, lat);
+ return ResultUtil.success(baseVos);
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ /**
+ * 根据门店模糊搜索店铺
+ * @param name
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/store/queryStoreListByName")
+ public List<Store> queryStoreListByName(@RequestBody String name){
+ try {
+ List<Store> stores = storeService.list(new QueryWrapper<Store>().eq("state", 1).like("name", name));
+ return stores;
+ }catch (Exception e){
+ e.printStackTrace();
+ return new ArrayList<>();
+ }
+ }
+
+
+ /**
+ * 根据门店
+ * @param id
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/store/queryStoreById")
+ public Store queryStoreById(@RequestBody Integer id){
+ try {
+ return storeService.getById(id);
+ }catch (Exception e){
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+
+
+
+
/**
* 获取门店列表
* @param provinceCode
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SystemNoticeController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SystemNoticeController.java
new file mode 100644
index 0000000..04c441b
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SystemNoticeController.java
@@ -0,0 +1,80 @@
+package com.dsh.other.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.other.entity.Notice;
+import com.dsh.other.entity.Phone;
+import com.dsh.other.feignclient.model.SysNotice;
+import com.dsh.other.service.NoticeService;
+import com.dsh.other.service.PhoneService;
+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;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@RestController
+@RequestMapping("")
+public class SystemNoticeController {
+
+ @Autowired
+ private NoticeService noticeSers;
+
+ @Autowired
+ private PhoneService phoneService;
+
+ private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+
+
+ @PostMapping("/base/notice/queryNoticeDetails")
+ public List<SysNotice> getSysNoticeDetails(){
+ List<SysNotice> notices = new ArrayList<>();
+ List<Notice> list = noticeSers.list(new QueryWrapper<Notice>()
+ .eq("state", 1)
+ .eq("upOrDown", 1)
+ .orderByDesc("insertTime"));
+ if (list.size() > 0 ){
+ list.forEach(noList -> {
+ SysNotice notice = new SysNotice();
+ notice.setNoticeId(noList.getId());
+ notice.setNoticeTitle(noList.getName());
+ notice.setNoticeContents(noList.getContent());
+ notice.setNoticeTime(format.format(noList.getInsertTime()));
+ notices.add(notice);
+ });
+ }
+ return notices;
+ }
+
+
+ @PostMapping("/base/notice/queryNotice")
+ public SysNotice getSysNoticeBuId(@RequestBody Integer noticeId){
+ SysNotice sysNotice = new SysNotice();
+ Notice notice = noticeSers.getById(noticeId);
+ if (null != notice){
+ sysNotice.setNoticeId(notice.getId());
+ sysNotice.setNoticeTitle(notice.getName());
+ sysNotice.setNoticeContents(notice.getContent());
+ sysNotice.setNoticeTime(format.format(notice.getInsertTime()));
+ }
+ return sysNotice;
+ }
+
+
+ @PostMapping("/base/notice/sysTell")
+ public List<String> queryCustomerTel(){
+ List<String> tellS = new ArrayList<>();
+ List<Phone> list = phoneService.list();
+ if (list.size() > 0 ){
+ tellS = list.stream().map(Phone::getPhone).collect(Collectors.toList());
+ }
+ return tellS;
+
+ }
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/FrequentlyAskedQuestions.java b/cloud-server-other/src/main/java/com/dsh/other/entity/FrequentlyAskedQuestions.java
new file mode 100644
index 0000000..ab07537
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/FrequentlyAskedQuestions.java
@@ -0,0 +1,62 @@
+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-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_frequently_asked_questions")
+public class FrequentlyAskedQuestions extends Model<FrequentlyAskedQuestions> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 常见问题
+ */
+ private String content;
+ /**
+ * 排序
+ */
+ private Integer sort;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+ /**
+ * 答复内容
+ */
+ private String answer;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/Notice.java b/cloud-server-other/src/main/java/com/dsh/other/entity/Notice.java
new file mode 100644
index 0000000..55be75b
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/Notice.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-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_notice")
+public class Notice extends Model<Notice> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 功能名称
+ */
+ private String name;
+ /**
+ * 公告内容
+ */
+ private String content;
+ /**
+ * 排序
+ */
+ private Integer sort;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+ /**
+ * 0下架1上架
+ */
+ private Integer upOrDown;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/Phone.java b/cloud-server-other/src/main/java/com/dsh/other/entity/Phone.java
new file mode 100644
index 0000000..885b4f5
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/Phone.java
@@ -0,0 +1,50 @@
+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-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_phone")
+public class Phone extends Model<Phone> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 电话
+ */
+ private String phone;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/CustomerClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/CustomerClient.java
new file mode 100644
index 0000000..b917c98
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/CustomerClient.java
@@ -0,0 +1,12 @@
+package com.dsh.other.feignclient;
+
+import org.springframework.cloud.openfeign.FeignClient;
+
+@FeignClient(value = "mb-cloud-other")
+public interface CustomerClient {
+
+
+
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/NoticeClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/NoticeClient.java
new file mode 100644
index 0000000..f42577e
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/NoticeClient.java
@@ -0,0 +1,25 @@
+package com.dsh.other.feignclient;
+
+import com.dsh.other.feignclient.model.SysNotice;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+
+@FeignClient(value = "mb-cloud-other")
+public interface NoticeClient {
+
+
+ @PostMapping("/base/notice/queryNoticeDetails")
+ List<SysNotice> getSysNoticeDetails();
+
+ @PostMapping("/base/notice/queryNotice")
+ SysNotice getSysNoticeBuId(@RequestBody Integer noticeId);
+
+ @PostMapping("/base/notice/sysTell")
+ List<String> queryCustomerTel();
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/QuestionClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/QuestionClient.java
new file mode 100644
index 0000000..a37da84
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/QuestionClient.java
@@ -0,0 +1,19 @@
+package com.dsh.other.feignclient;
+
+import com.dsh.other.model.vo.questionVo.QuestionDetailsVo;
+import com.dsh.other.model.vo.questionVo.QuestionIns;
+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 QuestionClient {
+
+ @PostMapping("/base/notice/queryQuestionDetails")
+ QuestionDetailsVo getSysQuestionDetails();
+
+ @PostMapping("/base/notice/queryQuestion")
+ QuestionIns getSysQuestionBuId(@RequestBody Integer quesId);
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/StoreClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/StoreClient.java
new file mode 100644
index 0000000..67097be
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/StoreClient.java
@@ -0,0 +1,26 @@
+package com.dsh.other.feignclient;
+
+import com.dsh.other.feignclient.model.StoreDetailOfCourse;
+import com.dsh.other.feignclient.model.StoreInfo;
+import com.dsh.other.feignclient.model.StoreLonLatList;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-other")
+public interface StoreClient {
+
+
+ @PostMapping("/storeDetail/courseOfSto")
+ public StoreDetailOfCourse getCourseOfStore(@RequestBody Integer storeId);
+
+
+ @PostMapping("/storeDetail/nearbyStore")
+ List<StoreInfo> getAllNearbyStoreList(@RequestBody String longitude, @RequestBody String latitude);
+
+
+ @PostMapping("/storeDetail/storeOfLonLat")
+ public List<StoreLonLatList> getAllStoreLonLats(@RequestBody String longitude, @RequestBody String latitude);
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreDetailOfCourse.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreDetailOfCourse.java
new file mode 100644
index 0000000..d7f40fd
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreDetailOfCourse.java
@@ -0,0 +1,13 @@
+package com.dsh.other.feignclient.model;
+
+import lombok.Data;
+
+@Data
+public class StoreDetailOfCourse {
+
+ String storeName;
+
+ String storeAddr;
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java
new file mode 100644
index 0000000..12f23b1
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java
@@ -0,0 +1,25 @@
+package com.dsh.other.feignclient.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StoreInfo {
+
+ @ApiModelProperty(value = "门店id")
+ private Integer storeId;
+
+ @ApiModelProperty(value = "门店背景图")
+ private String storeImg;
+
+ @ApiModelProperty(value = "门店距离当前位置")
+ private long distance;
+
+ @ApiModelProperty(value = "门店名称")
+ private String storeName;
+
+ @ApiModelProperty(value = "门店详细地址")
+ private String storeAddr;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreLonLatList.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreLonLatList.java
new file mode 100644
index 0000000..fffe6d1
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreLonLatList.java
@@ -0,0 +1,19 @@
+package com.dsh.other.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StoreLonLatList {
+
+ @ApiModelProperty(value = "门店id")
+ Integer storeId;
+
+ @ApiModelProperty(value = "经度")
+ String longitude;
+
+ @ApiModelProperty(value = "纬度")
+ String latitude;
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SysNotice.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SysNotice.java
new file mode 100644
index 0000000..9335041
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SysNotice.java
@@ -0,0 +1,21 @@
+package com.dsh.other.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class SysNotice {
+
+ @ApiModelProperty(value = "公告id")
+ private Integer noticeId;
+
+ @ApiModelProperty(value = "公告标题")
+ private String noticeTitle;
+
+ @ApiModelProperty(value = "公告内容")
+ private String noticeContents;
+
+ @ApiModelProperty(value = "公告发布时间")
+ private String noticeTime;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/FrequentlyAskedQuestionsMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/FrequentlyAskedQuestionsMapper.java
new file mode 100644
index 0000000..629c450
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/FrequentlyAskedQuestionsMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.other.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.other.entity.FrequentlyAskedQuestions;
+
+/**
+ * <p>
+ * 常见问题 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+public interface FrequentlyAskedQuestionsMapper extends BaseMapper<FrequentlyAskedQuestions> {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/NoticeMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/NoticeMapper.java
new file mode 100644
index 0000000..51dbcba
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/NoticeMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.other.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.other.entity.Notice;
+
+/**
+ * <p>
+ * 公告 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+public interface NoticeMapper extends BaseMapper<Notice> {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/PhoneMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/PhoneMapper.java
new file mode 100644
index 0000000..64d9a2b
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/PhoneMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.other.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.other.entity.Phone;
+
+/**
+ * <p>
+ * 客服电话 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+public interface PhoneMapper extends BaseMapper<Phone> {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/vo/questionVo/QuestionDetailsVo.java b/cloud-server-other/src/main/java/com/dsh/other/model/vo/questionVo/QuestionDetailsVo.java
new file mode 100644
index 0000000..8296138
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/vo/questionVo/QuestionDetailsVo.java
@@ -0,0 +1,17 @@
+package com.dsh.other.model.vo.questionVo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QuestionDetailsVo {
+
+ @ApiModelProperty(value = "banner图")
+ private String bannerImg;
+
+ @ApiModelProperty(value = "问题列表")
+ private List<QuestionIns> sysS;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/vo/questionVo/QuestionIns.java b/cloud-server-other/src/main/java/com/dsh/other/model/vo/questionVo/QuestionIns.java
new file mode 100644
index 0000000..9c2ccc6
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/vo/questionVo/QuestionIns.java
@@ -0,0 +1,22 @@
+package com.dsh.other.model.vo.questionVo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class QuestionIns {
+
+ @ApiModelProperty(value = "问题id")
+ private Integer quesId;
+
+ @ApiModelProperty(value = "问题标题")
+ private String quesTitle;
+
+ @ApiModelProperty(value = "答复内容")
+ private String quesContents;
+
+ @ApiModelProperty(value = "答复内容")
+ private String quesTime;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/FrequentlyAskedQuestionsService.java b/cloud-server-other/src/main/java/com/dsh/other/service/FrequentlyAskedQuestionsService.java
new file mode 100644
index 0000000..bc2f6e7
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/FrequentlyAskedQuestionsService.java
@@ -0,0 +1,16 @@
+package com.dsh.other.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.other.entity.FrequentlyAskedQuestions;
+
+/**
+ * <p>
+ * 常见问题 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+public interface FrequentlyAskedQuestionsService extends IService<FrequentlyAskedQuestions> {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/NoticeService.java b/cloud-server-other/src/main/java/com/dsh/other/service/NoticeService.java
new file mode 100644
index 0000000..8778f4b
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/NoticeService.java
@@ -0,0 +1,16 @@
+package com.dsh.other.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.other.entity.Notice;
+
+/**
+ * <p>
+ * 公告 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+public interface NoticeService extends IService<Notice> {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/PhoneService.java b/cloud-server-other/src/main/java/com/dsh/other/service/PhoneService.java
new file mode 100644
index 0000000..1749fe4
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/PhoneService.java
@@ -0,0 +1,16 @@
+package com.dsh.other.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.other.entity.Phone;
+
+/**
+ * <p>
+ * 客服电话 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+public interface PhoneService extends IService<Phone> {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/FrequentlyAskedQuestionsServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/FrequentlyAskedQuestionsServiceImpl.java
new file mode 100644
index 0000000..0a60e66
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/FrequentlyAskedQuestionsServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.other.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.other.entity.FrequentlyAskedQuestions;
+import com.dsh.other.mapper.FrequentlyAskedQuestionsMapper;
+import com.dsh.other.service.FrequentlyAskedQuestionsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 常见问题 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+@Service
+public class FrequentlyAskedQuestionsServiceImpl extends ServiceImpl<FrequentlyAskedQuestionsMapper, FrequentlyAskedQuestions> implements FrequentlyAskedQuestionsService {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/NoticeServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/NoticeServiceImpl.java
new file mode 100644
index 0000000..c3a512a
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/NoticeServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.other.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.other.entity.Notice;
+import com.dsh.other.mapper.NoticeMapper;
+import com.dsh.other.service.NoticeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 公告 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+@Service
+public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> implements NoticeService {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/PhoneServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/PhoneServiceImpl.java
new file mode 100644
index 0000000..6c5edfa
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/PhoneServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.other.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.other.entity.Phone;
+import com.dsh.other.mapper.PhoneMapper;
+import com.dsh.other.service.PhoneService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 客服电话 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-03
+ */
+@Service
+public class PhoneServiceImpl extends ServiceImpl<PhoneMapper, Phone> implements PhoneService {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/GDMapGeocodingUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/GDMapGeocodingUtil.java
index 13f02f7..92ac86d 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/util/GDMapGeocodingUtil.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/GDMapGeocodingUtil.java
@@ -7,6 +7,14 @@
import com.dsh.other.util.httpClinet.HttpResult;
import org.springframework.stereotype.Component;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -19,7 +27,6 @@
public class GDMapGeocodingUtil {
private String key = "fb131ad2dbfb3f39d7d37d244b92aa2d";
-
/**
* 将行政区域名称转化为坐标
@@ -145,4 +152,90 @@
}
return map;
}
+
+
+ /**
+ * 功能描述: 根据两个定位点的经纬度算出两点间的距离(米/m)
+ *
+ * @param startLonLat 起始经纬度
+ * @param endLonLat 结束经纬度(目标经纬度)
+ * @return java.lang.Long 两个定位点之间的距离
+ */
+ public Long getDistance(String startLonLat, String endLonLat) {
+ try {
+ // 返回起始地startAddr与目的地endAddr之间的距离,单位:米
+ Long result = new Long(0);
+ String queryUrl =
+ "http://restapi.amap.com/v3/distance?key=" + key + "&origins=" + startLonLat
+ + "&destination="
+ + endLonLat;
+ String queryResult = getResponse(queryUrl);
+ JSONObject job = JSONObject.parseObject(queryResult);
+ JSONArray ja = job.getJSONArray("results");
+ JSONObject jobO = JSONObject.parseObject(ja.getString(0));
+ result = Long.parseLong(jobO.get("distance").toString());
+ return result;
+ } catch (Exception e) {
+ throw new RuntimeException();
+ }
+ }
+
+
+ /**
+ * 功能描述: 根据两个定位点的经纬度算出两点间的距离(千米/km)
+ *
+ * @param startLonLat 起始经纬度
+ * @param endLonLat 结束经纬度(目标经纬度)
+ * @return java.lang.Long 两个定位点之间的距离
+ */
+ public String getDistanceTOKilometer(String startLonLat, String endLonLat) {
+ try {
+ // 返回起始地startAddr与目的地endAddr之间的距离,单位:米
+ Long result = new Long(0);
+ String queryUrl =
+ "http://restapi.amap.com/v3/distance?key=" + key + "&origins=" + startLonLat
+ + "&destination="
+ + endLonLat;
+ String queryResult = getResponse(queryUrl);
+ JSONObject job = JSONObject.parseObject(queryResult);
+ JSONArray ja = job.getJSONArray("results");
+ JSONObject jobO = JSONObject.parseObject(ja.getString(0));
+ result = Long.parseLong(jobO.get("distance").toString());
+ double kilDis = (double) result / 1000;
+ DecimalFormat decimalFormat = new DecimalFormat("#.00");
+ return decimalFormat.format(kilDis);
+ } catch (Exception e) {
+ throw new RuntimeException();
+ }
+ }
+
+ /**
+ * 功能描述: 发送请求
+ *
+ * @param serverUrl 请求地址
+ * @return java.lang.String
+ * @author isymikasan
+ * @date 2022-01-26 09:15:01
+ */
+ private static String getResponse(String serverUrl) {
+ // 用JAVA发起http请求,并返回json格式的结果
+ StringBuffer result = new StringBuffer();
+ try {
+ URL url = new URL(serverUrl);
+ URLConnection conn = url.openConnection();
+ BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
+ String line;
+ while ((line = in.readLine()) != null) {
+ result.append(line);
+ }
+ in.close();
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return result.toString();
+ }
+
+
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/HttpClientUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/HttpClientUtil.java
new file mode 100644
index 0000000..4d493ae
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/HttpClientUtil.java
@@ -0,0 +1,269 @@
+package com.dsh.other.util;
+
+import com.alibaba.fastjson.JSON;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.ssl.SSLContexts;
+import org.apache.http.util.EntityUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import javax.net.ssl.SSLContext;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+import java.security.KeyStore;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * http工具类
+ */
+@Component
+public class HttpClientUtil {
+
+ private static Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);
+
+ private PoolingHttpClientConnectionManager connectionManager;
+
+
+ public HttpClientUtil(){
+ //1.创建连接池管理器
+ connectionManager = new PoolingHttpClientConnectionManager(60000,
+ TimeUnit.MILLISECONDS);
+ connectionManager.setMaxTotal(1000);
+ connectionManager.setDefaultMaxPerRoute(50);
+ }
+
+ /**
+ * 创建一个httpClient对象
+ */
+ private CloseableHttpClient getHttpCline(){
+ return HttpClients.custom()
+ .setConnectionManager(connectionManager)
+ .disableAutomaticRetries()
+ .build();
+ }
+
+ private RequestConfig getRequestConfig(){
+ RequestConfig.Builder builder = RequestConfig.custom();
+ builder.setSocketTimeout(60000)//3.1设置客户端等待服务端返回数据的超时时间
+ .setConnectTimeout(30000)//3.2设置客户端发起TCP连接请求的超时时间
+ .setExpectContinueEnabled(true)
+ .setConnectionRequestTimeout(30000);//3.3设置客户端从连接池获取链接的超时时间
+ return builder.build();
+ }
+
+
+
+ /**
+ * 创建一个POST请求实例
+ * @param url 请求地址
+ * @param params 请求参数
+ */
+ private CloseableHttpResponse setPostHttpRequset(String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception{
+ HttpPost httpPost = new HttpPost(url);
+ httpPost.setConfig(this.getRequestConfig());
+ if(null != header){
+ for(String key : header.keySet()){
+ httpPost.setHeader(key, header.get(key));
+ }
+ }
+ List<NameValuePair> list = new ArrayList<>();
+ if(null != params){
+ Set<String> keys = params.keySet();
+ for(String key : keys){
+ list.add(new BasicNameValuePair(key, null == params.get(key) ? null : params.get(key).toString()));
+ }
+ }
+ switch (contentType){
+ case "form":
+ httpPost.setEntity(new UrlEncodedFormEntity(list, "UTF-8"));
+ break;
+ case "json":
+ ObjectMapper objectMapper = new ObjectMapper();
+ String s =objectMapper.writeValueAsString(params);
+ httpPost.setEntity(new StringEntity(s, ContentType.create(ContentType.APPLICATION_JSON.getMimeType(), Charset.forName("UTF-8"))));
+ break;
+ }
+ return getHttpCline().execute(httpPost);
+ }
+
+
+ /**
+ * 获取get请求实例
+ * @param url 请求地址
+ * @param params 请求参数
+ */
+ private CloseableHttpResponse setGetHttpRequset(String url, Map<String, Object> params, Map<String, String> header) throws Exception{
+ StringBuffer sb = new StringBuffer();
+ String p = "";
+ if(null != params){
+ Set<String> keys = params.keySet();
+ for(String key : keys){
+ sb.append(key + "=" + params.get(key) + "&");
+ }
+ p = "?" + sb.substring(0, sb.length() - 1);
+ }
+ HttpGet httpGet = new HttpGet(url + p);
+ httpGet.setConfig(getRequestConfig());
+ if(null != header){
+ for(String key : header.keySet()){
+ httpGet.setHeader(key, header.get(key));
+ }
+ }
+ return getHttpCline().execute(httpGet);
+ }
+
+
+ /**
+ * 发送http请求
+ * @param mothed "GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS"
+ * @param url 请求地址
+ * @param params 请求参数
+ * @param header 请求头
+ * @param contentType 参数请求方式form/json
+ * @return
+ */
+ public HttpResult pushHttpRequset(String mothed, String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception{
+ String randome = UUID.randomUUID().toString();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
+ logger.info(sdf.format(new Date()) + "----(" + randome + ")请求参数:" + JSON.toJSONString(params));
+ CloseableHttpResponse httpResponse = null;
+ switch (mothed){
+ case "GET":
+ httpResponse = this.setGetHttpRequset(url, params, header);
+ break;
+ case "POST":
+ httpResponse = setPostHttpRequset(url, params, header, contentType);
+ break;
+ }
+ int statusCode = httpResponse.getStatusLine().getStatusCode();
+ String content = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+ logger.info(sdf.format(new Date()) + "----(" + randome + ")返回结果:" + content);
+ HttpResult httpResult = HttpResult.getHttpResult(statusCode, content);
+ this.close(httpResponse);
+ return httpResult;
+ }
+
+
+ /**
+ * 发送XML请求
+ * @param url 请求地址
+ * @param xml XML数据
+ * @param header 自定义请求头
+ * @return
+ */
+ public HttpResult pushHttpRequsetXml(String url, String xml, Map<String, String> header) throws Exception{
+ HttpPost httpPost = new HttpPost(url);
+ httpPost.setConfig(getRequestConfig());
+ for(String key : header.keySet()){
+ httpPost.setHeader(key, header.get(key));
+ }
+ httpPost.setHeader("Content-Type", "application/xml");
+ httpPost.setEntity(new StringEntity(xml, "UTF-8"));
+ CloseableHttpResponse httpResponse = getHttpCline().execute(httpPost);
+ int statusCode = httpResponse.getStatusLine().getStatusCode();
+ String content = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+ HttpResult httpResult = HttpResult.getHttpResult(statusCode, content);
+ this.close(httpResponse);
+ return httpResult;
+ }
+
+
+
+ /**
+ * 请求https发送XML请求
+ * @param url 接口路径
+ * @param xml 内容
+ * @param header 请求头
+ * @param certPassword 证书密码
+ * @param certPath 证书路径
+ * @param certType 证书类型
+ * @return
+ * @throws Exception
+ */
+ public String pushHttpsRequsetXml(String url, String xml, Map<String, String> header, String certPassword, String certPath, String certType) throws Exception{
+ HttpPost httpPost = new HttpPost(url);
+ for(String key : header.keySet()){
+ httpPost.setHeader(key, header.get(key));
+ }
+ httpPost.setHeader("Content-Type", "application/xml");
+ httpPost.setEntity(new StringEntity(xml, "UTF-8"));
+ CloseableHttpClient httpCline = this.initCert(certPassword, certPath, certType);
+ CloseableHttpResponse httpResponse = httpCline.execute(httpPost);
+ String content = null;
+ if(httpResponse.getStatusLine().getStatusCode() == 200){
+ content = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+ }else{
+ content = "返回状态码:" + httpResponse.getStatusLine() + "。" + EntityUtils.toString(httpResponse.getEntity());
+ }
+ this.close(httpResponse);
+ httpCline.close();
+ return content;
+ }
+
+
+ /**
+ * 初始化https对象(带证书)
+ * @param key 证书密码
+ * @param certPath 证书路径
+ * @param certType 证书类型
+ * @throws Exception
+ */
+ private CloseableHttpClient initCert(String key, String certPath, String certType) throws Exception {
+ KeyStore keyStore = KeyStore.getInstance(certType);
+ InputStream inputStream = new FileInputStream(new File(certPath));
+ try {
+ keyStore.load(inputStream, key.toCharArray());
+ } finally {
+ inputStream.close();
+ }
+ SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, key.toCharArray()).build();
+ SSLConnectionSocketFactory sslsf =
+ new SSLConnectionSocketFactory(sslcontext, new String[] {"TLSv1"}, null,
+ SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
+ return HttpClients.custom().setSSLSocketFactory(sslsf).build();
+ }
+
+
+
+ /**
+ * 关闭资源
+ */
+ private void close(CloseableHttpResponse httpResponse){
+ try {
+ if(null != httpResponse){
+ EntityUtils.consume(httpResponse.getEntity());//此处高能,通过源码分析,由EntityUtils是否回收HttpEntity
+ httpResponse.close();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ try {
+ if(null != httpResponse){
+ httpResponse.close();
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/HttpResult.java b/cloud-server-other/src/main/java/com/dsh/other/util/HttpResult.java
new file mode 100644
index 0000000..8ff2602
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/HttpResult.java
@@ -0,0 +1,31 @@
+package com.dsh.other.util;
+
+import lombok.Data;
+
+/**
+ * http请求返回封装
+ */
+@Data
+public class HttpResult {
+ /**
+ * 返回状态码
+ */
+ private Integer code;
+ /**
+ * 返回结果
+ */
+ private String data;
+
+ /**
+ * 返回封装结果
+ * @param code
+ * @param data
+ * @return
+ */
+ public static HttpResult getHttpResult(Integer code, String data){
+ HttpResult httpResult = new HttpResult();
+ httpResult.setCode(code);
+ httpResult.setData(data);
+ return httpResult;
+ }
+}
diff --git a/cloud-server-other/src/main/resources/mapper/FrequentlyAskedQuestionsMapper.xml b/cloud-server-other/src/main/resources/mapper/FrequentlyAskedQuestionsMapper.xml
new file mode 100644
index 0000000..084e295
--- /dev/null
+++ b/cloud-server-other/src/main/resources/mapper/FrequentlyAskedQuestionsMapper.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.FrequentlyAskedQuestionsMapper">
+
+
+</mapper>
diff --git a/cloud-server-other/src/main/resources/mapper/NoticeMapper.xml b/cloud-server-other/src/main/resources/mapper/NoticeMapper.xml
new file mode 100644
index 0000000..7113ac5
--- /dev/null
+++ b/cloud-server-other/src/main/resources/mapper/NoticeMapper.xml
@@ -0,0 +1,5 @@
+<?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.NoticeMapper">
+
+</mapper>
diff --git a/cloud-server-other/src/main/resources/mapper/PhoneMapper.xml b/cloud-server-other/src/main/resources/mapper/PhoneMapper.xml
new file mode 100644
index 0000000..2f5221f
--- /dev/null
+++ b/cloud-server-other/src/main/resources/mapper/PhoneMapper.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.PhoneMapper">
+
+
+</mapper>
--
Gitblit v1.7.1