From 7fb22e9525770ba2c04169958a9b7c87a7a4dfeb Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期三, 12 七月 2023 15:14:46 +0800
Subject: [PATCH] 开始课程:上课预约列表及取消操作接口
---
cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java | 64 +++++++++-
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 20 ++-
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java | 22 +++
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java | 30 +++++
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java | 5
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java | 4
cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java | 11 +
cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java | 38 ++++++
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 33 +++++
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java | 9 +
cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java | 3
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 83 +++++++++++++
cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java | 3
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java | 30 +++++
14 files changed, 333 insertions(+), 22 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 d371b09..b333e1f 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
@@ -4,9 +4,11 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.account.entity.TStudent;
import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import com.dsh.account.model.vo.classDetails.AppointmentRecordVo;
import com.dsh.account.model.vo.classDetails.ClasspaymentRequest;
import com.dsh.account.model.vo.classDetails.classInsVo.*;
import com.dsh.account.model.vo.commentDetail.StuCommentsVo;
+import com.dsh.account.model.vo.exploreDetail.LonLatRequest;
import com.dsh.account.model.vo.medalDetail.GongVo;
import com.dsh.account.model.vo.medalDetail.StuMedalVo;
import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo;
@@ -64,17 +66,15 @@
@PostMapping("/api/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<ClassInfoVo> queryCouponRecord(String longitude, String latitude){
+ public ResultUtil<ClassInfoVo> queryCouponRecord(LonLatRequest lonLatRequest){
try {
Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
if(null == userIdFormRedis){
return ResultUtil.tokenErr();
}
- return ResultUtil.success(tappuService.queryUserOfStus(userIdFormRedis,longitude,latitude));
+ return ResultUtil.success(tappuService.queryUserOfStus(userIdFormRedis,lonLatRequest.getLongitude(),lonLatRequest.getLatitude()));
}catch (Exception e){
e.printStackTrace();
return ResultUtil.runErr();
@@ -86,7 +86,7 @@
@PostMapping("/api/startCource/queryPhysical")
@ApiOperation(value = "获取学员测试报告", tags = {"APP-开始上课"})
@ApiImplicitParams({
- @ApiImplicitParam(value = "学员id", name = "id", required = true, dataType = "int"),
+ @ApiImplicitParam(value = "学员id", name = "stuID", required = true, dataType = "int"),
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
})
public ResultUtil<StuPhysicalVo> getStuPhysicalInfo(Integer stuID){
@@ -244,7 +244,9 @@
@PostMapping("/api/startCource/renewal")
@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 ResultUtil<CourseDetailsOfContinuationResp> renewalOfCourses(Integer lessonId, Integer stuId){
try {
@@ -317,7 +319,7 @@
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
@ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
})
- public ResultUtil<List<StuCommentsVo>> queryStuComment(@RequestParam("stuId") Integer stuId){
+ public ResultUtil<List<StuCommentsVo>> queryStuComment( Integer stuId){
try {
return ResultUtil.success(evalstuService.queryStuCommentsList(stuId));
}catch (Exception e){
@@ -336,7 +338,7 @@
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
@ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
})
- public ResultUtil<List<StuMedalVo>> queryStuMedal(@RequestParam("stuId") Integer stuId){
+ public ResultUtil<List<StuMedalVo>> queryStuMedal( Integer stuId){
try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
if(null == appUserId){
@@ -359,7 +361,7 @@
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
@ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
})
- public ResultUtil<List<GongVo>> queryStuGoog(@RequestParam("stuId") Integer stuId){
+ public ResultUtil<List<GongVo>> queryStuGoog(Integer stuId){
try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
if(null == appUserId){
@@ -371,6 +373,50 @@
}
}
+ /**
+ * 上课预约记录
+ */
+ @ResponseBody
+ @PostMapping("/api/startCource/stuAppointList")
+ @ApiOperation(value = "上课预约记录", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+ })
+ public ResultUtil<AppointmentRecordVo> cgeClassAppointmentRecordList(Integer stuId){
+ try {
+ Integer appUserId = tokenUtil.getUserIdFormRedis();
+ if(null == appUserId){
+ return ResultUtil.tokenErr();
+ }
+ return ResultUtil.success(istuService.getAppointmentRecords(stuId,appUserId));
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
+ /**
+ * 取消预约
+ */
+ @ResponseBody
+ @PostMapping("/api/startCource/cancelCourse")
+ @ApiOperation(value = "上课预约-取消预约", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ @ApiImplicitParam(value = "上课记录id", name = "courseStuRecordId", required = true, dataType = "int"),
+ })
+ public ResultUtil cancelReservation(Integer courseStuRecordId){
+ try {
+ Integer appUserId = tokenUtil.getUserIdFormRedis();
+ if(null == appUserId){
+ return ResultUtil.tokenErr();
+ }
+ return istuService.cancelReservationOfCourse(courseStuRecordId);
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
+ }
+
}
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 2e0b74f..f960001 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
@@ -44,7 +44,7 @@
public boolean delPaymentCoursePackage(@RequestBody Integer payId);
@PostMapping("/base/coursePack/updatePaymentCoursePackage")
- void updatePaymentCoursePackage(TCoursePackagePayment coursePackagePayment);
+ void updatePaymentCoursePackage(@RequestBody TCoursePackagePayment coursePackagePayment);
@PostMapping("/base/coursePack/savePaymentCoursePackage")
public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment);
@@ -52,4 +52,7 @@
@PostMapping("/base/coursePack/allAmountPayRecordOfUser")
public List<TCoursePackagePayment> getAmountPayRecord(@RequestBody Integer appUserId);
+ @PostMapping("/base/coursePack/obtainStudentClassDetails")
+ List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody Integer stuId);
+
}
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
index 67b286f..41e0c1f 100644
--- 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
@@ -11,4 +11,8 @@
@PostMapping("/base/courseRecord/queryDeduClassHours")
public Integer getDeductionClassHour(@RequestBody GetStudentCourse course);
+ @PostMapping("/base/courseRecord/cancelCourseData")
+ Integer cancelCourseRecordClass(@RequestBody Integer courseRecordId);
+
+
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java
new file mode 100644
index 0000000..e4c0131
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/RecordAppoint.java
@@ -0,0 +1,30 @@
+package com.dsh.account.feignclient.course.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class RecordAppoint {
+
+ @ApiModelProperty(value = "课包id")
+ private Integer coursePackageId;
+
+ @ApiModelProperty(value = "上课记录id")
+ private Long courseStuRecordId;
+
+ @ApiModelProperty(value = "课包名称")
+ private String coursePackageName;
+
+ @ApiModelProperty(value = "课时数")
+ private Integer courseHours;
+
+ @ApiModelProperty(value = "上课时间范围(例如:2021.03.01 8:00-11:00)")
+ private String timeFrame;
+
+ @ApiModelProperty(value = "门店名称+地址")
+ private String storeNameAddr;
+
+ @ApiModelProperty(value = "课状态(1待上课 2已开始 3已完成 4已取消)")
+ private Integer status;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java
new file mode 100644
index 0000000..296e9e7
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java
@@ -0,0 +1,22 @@
+package com.dsh.account.model.vo.classDetails;
+
+
+import com.dsh.account.feignclient.course.model.RecordAppoint;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AppointmentRecordVo {
+
+ @ApiModelProperty(value = "学员id")
+ private Integer stuId;
+
+ @ApiModelProperty(value = "当前学员姓名")
+ private String stuName;
+
+ @ApiModelProperty(value = "记录列表")
+ private List<RecordAppoint> appointList;
+
+}
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 d8cc797..f75c198 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
@@ -4,6 +4,7 @@
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.AppointmentRecordVo;
import com.dsh.account.model.vo.classDetails.ClasspaymentRequest;
import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo;
import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq;
@@ -75,4 +76,14 @@
ResultUtil insertVipPaymentCallback(String outTradeNo, String transactionId);
+ /**
+ * 查询学院的上课记录
+ * @param stuId
+ * @param appUserId
+ * @return
+ */
+ AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId);
+
+ ResultUtil cancelReservationOfCourse( Integer courseStuRecordId);
+
}
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 e55dcac..c47fba0 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
@@ -25,6 +25,7 @@
import com.dsh.account.mapper.CoachMapper;
import com.dsh.account.mapper.TAppUserMapper;
import com.dsh.account.mapper.TStudentMapper;
+import com.dsh.account.model.vo.classDetails.AppointmentRecordVo;
import com.dsh.account.model.vo.classDetails.ClasspaymentRequest;
import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo;
import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq;
@@ -555,4 +556,36 @@
return ResultUtil.success();
}
+ @Override
+ public AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId) {
+ AppointmentRecordVo recordVo = new AppointmentRecordVo();
+ TStudent tStudent = this.baseMapper.selectOne(new QueryWrapper<TStudent>()
+ .eq("id",stuId )
+ .eq("appUserId",appUserId));
+ if (ToolUtil.isNotEmpty(tStudent)){
+ recordVo.setStuId(tStudent.getId());
+ recordVo.setStuName(tStudent.getName());
+ recordVo.setAppointList(couPayClient.obtainStudentClassDetailsData(stuId));
+ }
+ return recordVo;
+ }
+
+ @Override
+ public ResultUtil cancelReservationOfCourse(Integer courseStuRecordId) {
+ Integer integer = crClient.cancelCourseRecordClass(courseStuRecordId);
+ switch (integer){
+ case 1:
+ ResultUtil.success();
+ break;
+ case 2:
+ ResultUtil.error("开课前三小时不能取消!");
+ break;
+ default:
+ ResultUtil.runErr();
+ break;
+ }
+ return null;
+ }
+
+
}
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 574528c..ed40f4a 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
@@ -53,14 +53,6 @@
@Autowired
private TCoursePackageDiscountService tcpdService;
- @Autowired
- private PostCourseVideoService pcvService;
-
- @Autowired
- private CoursePackageStudentService cpsService;
-
- @Autowired
- private CancelledClassesService cacService;
@Autowired
private ICoursePackagePaymentConfigService icppcService;
@@ -689,4 +681,16 @@
return packagePaymentService.save(packagePayment);
}
+
+ @PostMapping("/base/coursePack/obtainStudentClassDetails")
+ public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody Integer stuId){
+ try {
+ Integer appUserId = tokenUtil.getUserIdFormRedis();
+ return packagePaymentService.obtainStuClassDetails(stuId,appUserId);
+ }catch (Exception e){
+ e.printStackTrace();
+ throw new RuntimeException();
+ }
+ }
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
index 81e2384..db47c6d 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
@@ -9,10 +9,17 @@
import com.dsh.course.service.CancelledClassesService;
import com.dsh.course.service.CoursePackageStudentService;
import com.dsh.course.service.TCoursePackageService;
+import com.dsh.course.util.ToolUtil;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
+import java.util.Date;
import java.util.List;
@Api
@@ -57,4 +64,35 @@
return sult;
}
+
+ @PostMapping("/base/courseRecord/cancelCourseData")
+ public Integer cancelCourseRecordClass(@RequestBody Integer courseRecordId){
+ int sult = 0;
+ CoursePackageStudent packageStudent = cosService.getById(courseRecordId);
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
+ SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+ String tis = simpleDateFormat.format(new Date());
+
+ if (ToolUtil.isNotEmpty(packageStudent)){
+ TCoursePackage coursePackage = tcpService.getById(packageStudent.getCoursePackageId());
+ String startTime = tis +" " + coursePackage.getClassStartTime();
+ Date parse = null;
+ try {
+ parse = format.parse(startTime);
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ LocalDateTime localDateTime = parse.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+ // 计算时间间隔
+ long hours = ChronoUnit.HOURS.between(LocalDateTime.now(), localDateTime);
+ // 判断是否在前三小时内
+ if (hours <= 3 && hours >= 0){
+ sult = 1;
+ }else {
+ sult = 2;
+ }
+ }
+ return sult;
+ }
+
}
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 d081599..4798270 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
@@ -58,4 +58,7 @@
@PostMapping("/base/coursePack/allAmountPayRecordOfUser")
public List<TCoursePackagePayment> getAmountPayRecord(@RequestBody Integer appUserId);
+ @PostMapping("/base/coursePack/obtainStudentClassDetails")
+ List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody Integer stuId);
+
}
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
index e553ce5..4d3be7a 100644
--- 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
@@ -11,4 +11,7 @@
@PostMapping("/base/courseRecord/queryDeduClassHours")
public Integer getDeductionClassHour(@RequestBody GetStudentCourse course);
+ @PostMapping("/base/courseRecord/cancelCourseData")
+ Integer cancelCourseRecordClass(@RequestBody Integer courseRecordId);
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java
new file mode 100644
index 0000000..ca6a2cf
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/RecordAppoint.java
@@ -0,0 +1,30 @@
+package com.dsh.course.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class RecordAppoint {
+
+ @ApiModelProperty(value = "课包id")
+ private Integer coursePackageId;
+
+ @ApiModelProperty(value = "上课记录id")
+ private Long courseStuRecordId;
+
+ @ApiModelProperty(value = "课包名称")
+ private String coursePackageName;
+
+ @ApiModelProperty(value = "课时数")
+ private Integer courseHours;
+
+ @ApiModelProperty(value = "上课时间范围(例如:2021.03.01 8:00-11:00)")
+ private String timeFrame;
+
+ @ApiModelProperty(value = "门店名称+地址")
+ private String storeNameAddr;
+
+ @ApiModelProperty(value = "课状态(1待上课 2已开始 3已完成 4已取消)")
+ private Integer status;
+
+}
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 8d57092..d41eb94 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.course.entity.TCoursePackagePayment;
+import com.dsh.course.feignclient.model.RecordAppoint;
import com.dsh.course.model.vo.RegisterCourseVo;
import com.dsh.course.model.vo.request.ClasspaymentRequest;
import com.dsh.course.model.vo.request.CourseOfAfterRequest;
@@ -77,4 +78,12 @@
ResultUtil ContinuationOrpaymentCourse(Integer userIdFormRedis, ClasspaymentRequest request);
+ /**
+ * 查询学员的课包上课记录
+ * @param stuId
+ * @param appUserId
+ * @return
+ */
+ List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer 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 93feb54..bba42cc 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
@@ -9,6 +9,7 @@
import com.dsh.course.feignclient.activity.CouponClient;
import com.dsh.course.feignclient.activity.model.BenefitsVideos;
import com.dsh.course.feignclient.activity.model.Coupon;
+import com.dsh.course.feignclient.model.RecordAppoint;
import com.dsh.course.feignclient.other.StoreClient;
import com.dsh.course.feignclient.other.model.Store;
import com.dsh.course.mapper.*;
@@ -22,10 +23,7 @@
import com.dsh.course.model.vo.response.CourseDetailsResponse;
import com.dsh.course.model.vo.response.CourseOfVideoResponse;
import com.dsh.course.service.TCoursePackagePaymentService;
-import com.dsh.course.util.PayMoneyUtil;
-import com.dsh.course.util.ResultUtil;
-import com.dsh.course.util.StrUtils;
-import com.dsh.course.util.UUIDUtil;
+import com.dsh.course.util.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +31,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
@@ -401,4 +400,80 @@
}
+
+ @Override
+ public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId) {
+ List<RecordAppoint> recordVoList = new ArrayList<>();
+ List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<TCoursePackagePayment>()
+ .eq("studentId",stuId )
+ .eq("appUserId",appUserId )
+ .eq("payStatus",2 )
+ .eq("status",1 )
+ .orderByDesc("insertTime"));
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
+ SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+ if (tCoursePackagePayments.size() > 0 ){
+ for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
+ RecordAppoint recordVo = new RecordAppoint();
+ recordVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
+
+ TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
+
+ recordVo.setCoursePackageName(coursePackage.getName());
+ recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
+ Date date = DateUtil.getDate();
+
+ String classStartTime = coursePackage.getClassStartTime();
+ String classEndTime = coursePackage.getClassEndTime();
+ recordVo.setTimeFrame(simpleDateFormat.format(date)+" "+classStartTime+"-"+classEndTime);
+ Store store = stoClient.queryStoreById(coursePackage.getStoreId());
+ recordVo.setStoreNameAddr(store.getName()+store.getAddress());
+ CoursePackageStudent coursePackageStudent = cpsMapper.selectOne(new QueryWrapper<CoursePackageStudent>()
+ .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() )
+ .eq("studentId",stuId)
+ .eq("appUserId",appUserId)
+ .eq("reservationStatus",1));
+ if (ToolUtil.isNotEmpty(coursePackageStudent) && coursePackageStudent.getReservationStatus() == 1){
+
+ recordVo.setCourseStuRecordId(coursePackageStudent.getId());
+ String classWeeks = coursePackage.getClassWeeks();
+ String[] split = classWeeks.split(";");
+ List<Integer> integerList = Arrays.stream(split)
+ .map(Integer::parseInt)
+ .collect(Collectors.toList());
+ int dayOfWeek = DateTimeHelper.getDayOfWeek(new Date());
+
+ if (integerList.contains(dayOfWeek)){
+ String dat = simpleDateFormat.format(date) +" "+ classStartTime;
+
+ Date start = null;
+ try {
+ start = format.parse(dat);
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ if (start.after(new Date())){
+ recordVo.setStatus(1);
+ }else {
+ CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
+ .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() ));
+ if (ToolUtil.isNotEmpty(cancelledClasses)){
+ recordVo.setStatus(3);
+ }else {
+ recordVo.setStatus(2);
+ }
+ }
+ }else {
+ recordVo.setStatus(1);
+ }
+ }else {
+ recordVo.setStatus(4);
+ }
+
+ recordVoList.add(recordVo);
+ }
+ }
+ return recordVoList;
+ }
+
}
--
Gitblit v1.7.1