lisy
2023-07-05 1370d46d24c8ab9b6dc27305a17661ee6a706b60
account模块:教练实体类、课时续课详情
6个文件已修改
11个文件已添加
448 ■■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/CoachType.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/mapper/CoachTypeMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/CoachTypeService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachTypeServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/CoachMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/CoachTypeMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StudentOfCourseVo.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/dto/DiscountJsonDto.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/mapper/AgreementMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java
New file
@@ -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;
    }
}
cloud-server-account/src/main/java/com/dsh/account/entity/CoachType.java
New file
@@ -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;
    }
}
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);
cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java
New file
@@ -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> {
}
cloud-server-account/src/main/java/com/dsh/account/mapper/CoachTypeMapper.java
New file
@@ -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> {
}
cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java
New file
@@ -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> {
}
cloud-server-account/src/main/java/com/dsh/account/service/CoachTypeService.java
New file
@@ -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> {
}
cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java
New file
@@ -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 {
}
cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachTypeServiceImpl.java
New file
@@ -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 {
}
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;
    }
cloud-server-account/src/main/resources/mapper/CoachMapper.xml
New file
@@ -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>
cloud-server-account/src/main/resources/mapper/CoachTypeMapper.xml
New file
@@ -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>
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());
        }
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;
    /**
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;
cloud-server-course/src/main/java/com/dsh/course/model/dto/DiscountJsonDto.java
New file
@@ -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;
}
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> {