From 0d17b6a250e455af9abd0b61b6de0004a296e98d Mon Sep 17 00:00:00 2001 From: java <linlangsur163@163.com> Date: 星期二, 27 六月 2023 05:24:51 +0800 Subject: [PATCH] 课程信息:课时详情展示 --- cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseSessionNameClient.java | 17 + cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 32 ++ cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml | 8 cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/PurchaseRecordVo.java | 23 + cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDetailsInsVo.java | 39 +++ cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java | 3 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 31 ++ cloud-server-competition/src/main/java/com/dsh/competition/service/UserCompetitionService.java | 21 + cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java | 2 cloud-server-competition/src/main/java/com/dsh/competition/controller/UserCompetitionController.java | 48 +++ cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java | 151 +++++++++++ cloud-server-competition/src/main/java/com/dsh/competition/service/impl/UserCompetitionServiceImpl.java | 40 +++ 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 | 17 + cloud-server-competition/src/main/java/com/dsh/competition/entity/UserCompetition.java | 58 ++++ cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/PurchaseRecordVo.java | 23 + cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml | 9 cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java | 3 cloud-server-competition/src/main/java/com/dsh/competition/service/CompetitionService.java | 16 + cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java | 14 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-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-competition/src/main/java/com/dsh/competition/feignclient/model/ClassDataDetails.java | 17 + cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 12 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/DeductionCompetitionsClient.java | 11 cloud-server-competition/src/main/java/com/dsh/competition/mapper/UserCompetitionMapper.java | 20 + cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java | 17 + cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java | 18 + cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 4 cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java | 16 + cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java | 18 + cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java | 11 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java | 21 + 35 files changed, 742 insertions(+), 35 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 7980814..e71152b 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 @@ -58,7 +58,7 @@ @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,HttpServletRequest request){ + public ResultUtil queryCouponRecord( @RequestBody String longitude, @RequestBody String latitude,HttpServletRequest request){ try { Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(request); if(null == userIdFormRedis){ @@ -161,7 +161,17 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public void coursePackageDetails(@RequestBody Integer lessonId){ + public ResultUtil 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(ResultUtil.ERROR); + } } 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..ec1bfc9 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java @@ -0,0 +1,11 @@ +package com.dsh.account.feignclient.competition; + + +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(value = "mb-cloud-competition") +public interface DeductionCompetitionsClient { + + + +} 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..ca96e73 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java @@ -0,0 +1,17 @@ +package com.dsh.account.feignclient.course; + + +import com.dsh.account.feignclient.course.model.StuSessionDetailsVo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.List; + +@FeignClient(value = "mb-cloud-course") +public interface CourseSessionNameClient { + + + @PostMapping("/coursePack/sessionNames") + List<StuSessionDetailsVo> getStuSessionList(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/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..3a828f1 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDataDetails.java @@ -0,0 +1,17 @@ +package com.dsh.account.model.vo.classDetails.classInsVo; + +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..afac200 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassDetailsInsVo.java @@ -0,0 +1,39 @@ +package com.dsh.account.model.vo.classDetails.classInsVo; + +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 = "课时有效期(xxxx-xx-xx)") + private String periodOfValidity; + + @ApiModelProperty(value = "总学时数") + private Integer totalNums; + + @ApiModelProperty(value = "已扣学时数") + private Integer deductedNums; + + @ApiModelProperty(value = "剩余学时数") + private Integer remainingNums; + + @ApiModelProperty(value = "课包名称列表") + private List<StuSessionDetailsVo> sessionNames; + + @ApiModelProperty(value = "课包列表") + private List<ClassDataDetails> 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/PurchaseRecordVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/PurchaseRecordVo.java new file mode 100644 index 0000000..40c88a4 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/PurchaseRecordVo.java @@ -0,0 +1,23 @@ +package com.dsh.account.model.vo.classDetails.classInsVo; + +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-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..b5b37db 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,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.account.entity.TStudent; +import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo; import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq; /** @@ -16,4 +17,6 @@ void addStuOfAppUser(StuDetailsReq stu,Integer appUserId); + ClassDetailsInsVo querySessionDetailsDt(Integer userIdFormRedis, Integer lessonId, Integer stuId); + } 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 0a3793d..29debd2 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.StuCourseResp; @@ -80,6 +79,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()); @@ -141,19 +141,9 @@ */ public List<WeekedCourse> dealDatas(List<CourseOfStoreVo> storeOfCourses,String longitude ,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..b96ad10 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 @@ -2,14 +2,19 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.account.entity.TStudent; +import com.dsh.account.feignclient.course.CourseSessionNameClient; +import com.dsh.account.feignclient.course.model.StuSessionDetailsVo; 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.service.TStudentService; - +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.util.List; /** * <p> @@ -22,15 +27,18 @@ @Service public class TStudentServiceImpl extends ServiceImpl<TStudentMapper, TStudent> implements TStudentService { + @Autowired + private CourseSessionNameClient sessionNameClient; + @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 +50,21 @@ student.setState(1); this.baseMapper.insert(student); } + + @Override + public ClassDetailsInsVo querySessionDetailsDt(Integer userIdFormRedis, Integer lessonId, Integer stuId) { + ClassDetailsInsVo insVo = new ClassDetailsInsVo(); + List<StuSessionDetailsVo> stuSessionList = sessionNameClient.getStuSessionList(stuId,userIdFormRedis); + TStudent tStudent = this.baseMapper.selectById(stuId); + if (ToolUtil.isNotEmpty(tStudent)){ + insVo.setStuId(tStudent.getId()); + insVo.setStuName(tStudent.getName()); + insVo.setStuImage(tStudent.getHeadImg()); + + insVo.setSessionNames(stuSessionList); + + } + + return insVo; + } } 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..6cb3e3d --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java @@ -0,0 +1,21 @@ +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("/competition") +public class CompetitionController { + +} + 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..3f9c80f --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/UserCompetitionController.java @@ -0,0 +1,48 @@ +package com.dsh.competition.controller; + + +import com.dsh.competition.feignclient.model.ClassDataDetails; +import com.dsh.competition.feignclient.model.PurchaseRecordVo; +import com.dsh.competition.service.UserCompetitionService; +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.util.ArrayList; +import java.util.List; + +/** + * <p> + * 赛事报名记录 前端控制器 + * </p> + * + * @author jqs + * @since 2023-06-26 + */ +@RestController +@RequestMapping("/user-competition") +public class UserCompetitionController { + + + @Autowired + private UserCompetitionService ucService; + + /** + * 获取报名赛事的课时扣减记录 + */ + @PostMapping("/deRecord") + public List<ClassDataDetails> getDeductionRecordOfRegistrationEvent(@RequestBody Integer appUserId,@RequestBody String startTime,@RequestBody String endTime){ + List<ClassDataDetails> details = new ArrayList<>(); + List<PurchaseRecordVo> recordVos = ucService.queryDeRecordDetails(appUserId,startTime,endTime); + + + return details; + + + } + + +} + 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..666ce61 --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/DeductionCompetitionsClient.java @@ -0,0 +1,11 @@ +package com.dsh.competition.feignclient; + + +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(value = "mb-cloud-competition") +public interface DeductionCompetitionsClient { + + + +} 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..62a4713 --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/UserCompetitionMapper.java @@ -0,0 +1,20 @@ +package com.dsh.competition.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsh.competition.entity.UserCompetition; + +import java.util.List; + +/** + * <p> + * 赛事报名记录 Mapper 接口 + * </p> + * + * @author jqs + * @since 2023-06-26 + */ +public interface UserCompetitionMapper extends BaseMapper<UserCompetition> { + + List<UserCompetition> queryDeRecordDetails(Integer appUserId,List<Integer> collect,String startTime, String endTime); + +} 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..0dc6ffe --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/UserCompetitionService.java @@ -0,0 +1,21 @@ +package com.dsh.competition.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.competition.entity.UserCompetition; +import com.dsh.competition.feignclient.model.PurchaseRecordVo; + +import java.util.List; + +/** + * <p> + * 赛事报名记录 服务类 + * </p> + * + * @author jqs + * @since 2023-06-26 + */ +public interface UserCompetitionService extends IService<UserCompetition> { + + List<PurchaseRecordVo> queryDeRecordDetails(Integer appUserId,String startTime, String endTime); + +} 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..340c55e --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/UserCompetitionServiceImpl.java @@ -0,0 +1,40 @@ +package com.dsh.competition.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.competition.entity.Competition; +import com.dsh.competition.entity.UserCompetition; +import com.dsh.competition.feignclient.model.PurchaseRecordVo; +import com.dsh.competition.mapper.CompetitionMapper; +import com.dsh.competition.mapper.UserCompetitionMapper; +import com.dsh.competition.service.UserCompetitionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * <p> + * 赛事报名记录 服务实现类 + * </p> + * + * @author jqs + * @since 2023-06-26 + */ +@Service +public class UserCompetitionServiceImpl extends ServiceImpl<UserCompetitionMapper, UserCompetition> implements UserCompetitionService { + + @Autowired + CompetitionMapper comMapper; + + @Override + public List<PurchaseRecordVo> queryDeRecordDetails(Integer appUserId,String startTime, String endTime) { + List<Competition> competitions = comMapper.selectList(new QueryWrapper<Competition>() + .eq("payType", 3) + .eq("auditStatus",2)); + List<Integer> collect = competitions.stream().map(Competition::getId).collect(Collectors.toList()); + List<UserCompetition> purchaseRecordVos = this.baseMapper.queryDeRecordDetails(appUserId, collect, startTime, endTime); + return null; + } +} 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..65f6df0 --- /dev/null +++ b/cloud-server-competition/src/main/resources/mapper/UserCompetitionMapper.xml @@ -0,0 +1,9 @@ +<?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="queryDeRecordDetails" resultType="com.dsh.competition.entity.UserCompetition"> + + </select> + +</mapper> 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..e26735e 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,12 +1,15 @@ 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.StuSessionDetailsVo; import com.dsh.course.service.TCoursePackagePaymentService; import com.dsh.course.service.TCoursePackageService; +import com.dsh.course.util.DateUtil; import io.swagger.annotations.Api; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,6 +18,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Api @CrossOrigin @@ -37,9 +41,9 @@ * @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(stuId,appUserId); if (byUserId.size() > 0 ){ for (TCoursePackagePayment tCoursePackagePayment : byUserId) { TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); @@ -76,4 +80,28 @@ return tcpService.queryStoreOfCourse(); } + + /** + * + * 课程名称列表 + */ + @PostMapping("/coursePack/sessionNames") + public List<StuSessionDetailsVo> getStuSessionList(@RequestBody Integer stuId,@RequestBody Integer appUserId){ + List<StuSessionDetailsVo> detailsVos = new ArrayList<>(); + List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(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; + } } 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..b72e59e --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseSessionNameClient.java @@ -0,0 +1,17 @@ +package com.dsh.course.feignclient; + + +import com.dsh.course.feignclient.model.StuSessionDetailsVo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.List; + +@FeignClient(value = "mb-cloud-course") +public interface CourseSessionNameClient { + + + @PostMapping("/coursePack/sessionNames") + List<StuSessionDetailsVo> getStuSessionList(Integer stuId,Integer appUserId); + +} 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/mapper/TCoursePackagePaymentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java index 4d8799c..b0c9d4f 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 @@ -16,6 +16,7 @@ */ public interface TCoursePackagePaymentMapper extends BaseMapper<TCoursePackagePayment> { - List<TCoursePackagePayment> queryAllCoursePackage(@Param("stuId") Integer stuId); + List<TCoursePackagePayment> queryAllCoursePackage(@Param("stuId") Integer stuId, + @Param("appUserId") 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 de97a51..106bdb0 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 @@ -15,6 +15,6 @@ */ public interface TCoursePackagePaymentService extends IService<TCoursePackagePayment> { - List<TCoursePackagePayment> queryAllCoursePackage(Integer stuId); + List<TCoursePackagePayment> queryAllCoursePackage(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 a868ba2..f33f1f3 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 @@ -20,7 +20,7 @@ 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(Integer stuId,Integer appUserId) { + return this.baseMapper.queryAllCoursePackage(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/resources/mapper/TCoursePackagePaymentMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml index 7bbff13..5124aea 100644 --- a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml +++ b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml @@ -43,7 +43,13 @@ UNION ALL SELECT * FROM t_course_package_payment5 - WHERE user_id = #{stuId} + WHERE 1=1 + <if test=" stuId != null"> + and appUserId = #{stuId} + </if> + <if test="appUserId != null"> + and studentId = #{appUserId} + </if> </select> </mapper> -- Gitblit v1.7.1