From 1370d46d24c8ab9b6dc27305a17661ee6a706b60 Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期三, 05 七月 2023 15:17:14 +0800 Subject: [PATCH] account模块:教练实体类、课时续课详情 --- cloud-server-management/src/main/java/com/dsh/course/mapper/AgreementMapper.java | 2 cloud-server-account/src/main/resources/mapper/CoachMapper.xml | 6 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 26 +++ cloud-server-course/src/main/java/com/dsh/course/model/dto/DiscountJsonDto.java | 59 +++++++ cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java | 7 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java | 2 cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java | 16 ++ cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 23 ++ cloud-server-account/src/main/resources/mapper/CoachTypeMapper.xml | 6 cloud-server-account/src/main/java/com/dsh/account/entity/CoachType.java | 49 ++++++ cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java | 118 ++++++++++++++ cloud-server-account/src/main/java/com/dsh/account/mapper/CoachTypeMapper.java | 16 ++ cloud-server-account/src/main/java/com/dsh/account/service/CoachTypeService.java | 16 ++ cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java | 20 ++ cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachTypeServiceImpl.java | 20 ++ cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StudentOfCourseVo.java | 46 ++++- cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java | 16 ++ 17 files changed, 429 insertions(+), 19 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java b/cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java new file mode 100644 index 0000000..2299096 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java @@ -0,0 +1,118 @@ +package com.dsh.account.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-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("t_coach") +public class Coach extends Model<Coach> { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 省 + */ + private String province; + /** + * 省编号 + */ + private String provinceCode; + /** + * 市 + */ + private String city; + /** + * 市编号 + */ + private String cityCode; + /** + * 城市管理员id + */ + private Integer cityManagerId; + /** + * 教练类型id + */ + private Integer coachTypeId; + /** + * 姓名 + */ + private String name; + /** + * 生日 + */ + private Date birthday; + /** + * 性别(1=男,2=女) + */ + private Integer gender; + /** + * 电话 + */ + private String phone; + /** + * 身份证号码 + */ + private String idcard; + /** + * 身高(厘米) + */ + private Double height; + /** + * 体重(KG) + */ + private Double weight; + /** + * 毕业院校 + */ + private String graduateSchool; + /** + * 毕业证照片 + */ + private String diploma; + /** + * 资格证书(多个逗号分隔) + */ + private String certificate; + /** + * 证书照片 + */ + private String certificateImg; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + private Integer state; + /** + * 添加时间 + */ + private Date insertTime; + + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/CoachType.java b/cloud-server-account/src/main/java/com/dsh/account/entity/CoachType.java new file mode 100644 index 0000000..0ca23ff --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/entity/CoachType.java @@ -0,0 +1,49 @@ +package com.dsh.account.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * <p> + * 教练类型 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("t_coach_type") +public class CoachType extends Model<CoachType> { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 类型名称 + */ + private String name; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + private Integer state; + + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java index 2109607..10faaaf 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 @@ -25,7 +25,7 @@ StuWithCoursesListVo getStuOfCoursesDetails(@RequestParam("stuId") Integer stuId, @RequestParam("appUserId") Integer appUserId); - @PostMapping("/coursePack/continuingCourse") + @PostMapping("/base/coursePack/continuingCourse") StudentOfCourseVo getStudentCourse(@RequestParam("courseId") Integer courseId, @RequestParam("stuId") Integer stuId, @RequestParam("appUserId") Integer appUserId); diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java new file mode 100644 index 0000000..bf318f8 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java @@ -0,0 +1,16 @@ +package com.dsh.account.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsh.account.entity.Coach; + +/** + * <p> + * 教练 Mapper 接口 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +public interface CoachMapper extends BaseMapper<Coach> { + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachTypeMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachTypeMapper.java new file mode 100644 index 0000000..bb25436 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachTypeMapper.java @@ -0,0 +1,16 @@ +package com.dsh.account.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsh.account.entity.CoachType; + +/** + * <p> + * 教练类型 Mapper 接口 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +public interface CoachTypeMapper extends BaseMapper<CoachType> { + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java b/cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java new file mode 100644 index 0000000..72f0772 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java @@ -0,0 +1,16 @@ +package com.dsh.account.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.account.entity.Coach; + +/** + * <p> + * 教练 服务类 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +public interface CoachService extends IService<Coach> { + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/CoachTypeService.java b/cloud-server-account/src/main/java/com/dsh/account/service/CoachTypeService.java new file mode 100644 index 0000000..1755f58 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/service/CoachTypeService.java @@ -0,0 +1,16 @@ +package com.dsh.account.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.account.entity.CoachType; + +/** + * <p> + * 教练类型 服务类 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +public interface CoachTypeService extends IService<CoachType> { + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java new file mode 100644 index 0000000..01a29ad --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java @@ -0,0 +1,20 @@ +package com.dsh.account.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.account.entity.Coach; +import com.dsh.account.mapper.CoachMapper; +import com.dsh.account.service.CoachService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 教练 服务实现类 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +@Service +public class CoachServiceImpl extends ServiceImpl<CoachMapper, Coach> implements CoachService { + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachTypeServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachTypeServiceImpl.java new file mode 100644 index 0000000..1ae2463 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachTypeServiceImpl.java @@ -0,0 +1,20 @@ +package com.dsh.account.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.account.entity.CoachType; +import com.dsh.account.mapper.CoachTypeMapper; +import com.dsh.account.service.CoachTypeService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 教练类型 服务实现类 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +@Service +public class CoachTypeServiceImpl extends ServiceImpl<CoachTypeMapper, CoachType> implements CoachTypeService { + +} 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 515f5bc..7e7f9da 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,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.account.entity.Coach; import com.dsh.account.entity.TAppUser; import com.dsh.account.entity.TStudent; import com.dsh.account.feignclient.activity.IntroduceRewardsClient; @@ -22,6 +23,7 @@ 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.CoachMapper; import com.dsh.account.mapper.TAppUserMapper; import com.dsh.account.mapper.TStudentMapper; import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo; @@ -90,6 +92,9 @@ @Autowired private TAppUserMapper tauMapper; + + @Autowired + private CoachMapper coachMapper; @Override public void addStuOfAppUser(StuDetailsReq stu,Integer appUserId) { @@ -186,9 +191,27 @@ CourseDetailsOfContinuationResp resp = new CourseDetailsOfContinuationResp(); StudentOfCourseVo studentCourse = couPayClient.getStudentCourse(lessonId,stuId,appUserId); + resp.setCoursePackageId(studentCourse.getCoursePackageId()); + resp.setStuId(stuId); + resp.setPackageImg(studentCourse.getPackageImg()); + resp.setCourseName(studentCourse.getCourseName()); + Coach coach = coachMapper.selectById(studentCourse.getCoachId()); + resp.setTeacherName(coach.getName()); + resp.setCourseWeek(studentCourse.getCourseWeek()); + resp.setCourseTime(studentCourse.getCourseTime()); StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(studentCourse.getStoreId()); + resp.setStoreName(courseOfStore.getStoreName()); + resp.setStoreAddr(courseOfStore.getStoreAddr()); + resp.setTypeList(studentCourse.getTypeList()); + TStudent tStudent = this.baseMapper.selectById(stuId); + resp.setStuName(tStudent.getName()); + resp.setStuPhone(tStudent.getPhone()); + resp.setStuAge(DateUtil.age(tStudent.getBirthday())); + resp.setAmount(studentCourse.getAmount()); + resp.setVipAmount(studentCourse.getVipAmount()); + resp.setWpGold(studentCourse.getWpGold()); return resp; } diff --git a/cloud-server-account/src/main/resources/mapper/CoachMapper.xml b/cloud-server-account/src/main/resources/mapper/CoachMapper.xml new file mode 100644 index 0000000..a428fb3 --- /dev/null +++ b/cloud-server-account/src/main/resources/mapper/CoachMapper.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.account.mapper.CoachMapper"> + + +</mapper> diff --git a/cloud-server-account/src/main/resources/mapper/CoachTypeMapper.xml b/cloud-server-account/src/main/resources/mapper/CoachTypeMapper.xml new file mode 100644 index 0000000..8538c32 --- /dev/null +++ b/cloud-server-account/src/main/resources/mapper/CoachTypeMapper.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.account.mapper.CoachTypeMapper"> + + +</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 e07e2be..9ecf7ad 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 @@ -3,12 +3,17 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.entity.TCoursePackage; +import com.dsh.course.entity.TCoursePackageDiscount; import com.dsh.course.entity.TCoursePackagePayment; import com.dsh.course.feignclient.model.*; +import com.dsh.course.model.dto.DiscountJsonDto; +import com.dsh.course.service.TCoursePackageDiscountService; 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 com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.Api; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,6 +41,9 @@ @Autowired private TCoursePackageService tcpService; + + @Autowired + private TCoursePackageDiscountService tcpdService; private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm"); @@ -208,24 +216,38 @@ } 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(); + TCoursePackageDiscount coursePackageDiscount = tcpdService.getOne(new QueryWrapper<TCoursePackageDiscount>() + .eq("coursePackageId",coursePackage.getId() ) + .eq("type",1) + .eq("auditStatus",2)); + ObjectMapper objectMapper = new ObjectMapper(); + String content = coursePackageDiscount.getContent(); + double discountMember = 0.0; + DiscountJsonDto discountJsonDto = null; + try { + discountJsonDto = objectMapper.readValue(content, DiscountJsonDto.class); + discountMember = discountJsonDto.getDiscountMember(); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } switch (payType) { case "1;2": courseVo.setAmount(cashPaymentValue); + courseVo.setVipAmount(discountMember); courseVo.setWpGold(playPaiCoin); break; case "1": courseVo.setAmount(cashPaymentValue); + courseVo.setVipAmount(discountMember); break; case "2": courseVo.setWpGold(playPaiCoin); break; } - courseVo.setStoreId(coursePackage.getStoreId()); } diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java index 66956dd..64fff3f 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java +++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java @@ -1,8 +1,5 @@ package com.dsh.course.entity; -import java.util.Date; -import java.io.Serializable; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -10,6 +7,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.util.Date; /** * <p> @@ -46,7 +45,7 @@ */ private Integer type; /** - * 折扣优惠规则JSON + * 折扣优惠规则JSON ->详见 DiscountJsonDto类 */ private String content; /** 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 index 49b7dbc..6c319f9 100644 --- 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 @@ -8,37 +8,59 @@ @Data public class StudentOfCourseVo { - + /** + * 课包id + */ @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 = "会员价") + /** + * vip价格 + */ + @ApiModelProperty(value = "vip价格") private double vipAmount; - + /** + * 玩湃币 + */ @ApiModelProperty(value = "玩湃币") private Integer wpGold; - + /** + * 门店id + */ @ApiModelProperty(value = "门店id") private Integer storeId; diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/dto/DiscountJsonDto.java b/cloud-server-course/src/main/java/com/dsh/course/model/dto/DiscountJsonDto.java new file mode 100644 index 0000000..3eba0a3 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/model/dto/DiscountJsonDto.java @@ -0,0 +1,59 @@ +package com.dsh.course.model.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 折扣类型json字符串封装 + */ + +@Data +public class DiscountJsonDto { + /** + * type为1,为会员折扣现金支付金额;type为3,为限时折扣现金支付金额 + */ + @ApiModelProperty(value = "type为1,为会员折扣现金支付金额 type为3,为限时折扣现金支付金额") + private double discountMember; + /** + * 会员续课现金支付金额 + */ + @ApiModelProperty(value = "会员续课现金支付金额") + private double continuingMember; + /** + * 用户续课现金支付金额 + */ + @ApiModelProperty(value = "用户续课现金支付金额") + private double continuingUser; + /** + * 有效期开始时间(2023-01-01) + */ + @ApiModelProperty(value = "有效期开始时间") + private String lifespanStart; + /** + * 有效期结束时间 + */ + @ApiModelProperty(value = "有效期结束时间") + private String lifespanEnd; + /** + * 赠送课时数 + */ + @ApiModelProperty(value = "赠送课时数") + private Integer classHours; + /** + * 周数 (1;2;5) + */ + @ApiModelProperty(value = "周数") + private String weekNum; + /** + * 折扣时间 开始时间(08:00) + */ + @ApiModelProperty(value = "折扣时间 开始时间") + private String timeFrameStart; + /** + * 折扣时间 结束时间 + */ + @ApiModelProperty(value = "折扣时间 结束时间") + private String timeFrameEnd; + +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/AgreementMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/AgreementMapper.java index 486d3a4..772f5f4 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/mapper/AgreementMapper.java +++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/AgreementMapper.java @@ -2,8 +2,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.course.entity.Agreement; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +@Mapper public interface AgreementMapper extends BaseMapper<Agreement> { -- Gitblit v1.7.1