lisy
2023-07-06 aa0413f95fffba39cabcc78d147595da96b10b32
course:开始上课-已报名列表
6个文件已添加
4个文件已修改
429 ■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/CoachClient.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Coach.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java
New file
@@ -0,0 +1,31 @@
package com.dsh.account.controller;
import com.dsh.account.entity.Coach;
import com.dsh.account.service.CoachService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("")
public class CoachController {
    @Autowired
    private CoachService service;
    /**
     * 根据门店
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/coach/queryCoachById")
    public Coach queryCoachById(@RequestBody Integer id){
        try {
            return service.getById(id);
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/CoachClient.java
New file
@@ -0,0 +1,15 @@
package com.dsh.account.feignclient;
import com.dsh.account.entity.Coach;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(value = "mb-cloud-account")
public interface CoachClient {
    @PostMapping("/coach/queryCoachById")
    Coach queryCoachById(@RequestBody Integer id);
}
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -11,10 +11,12 @@
import com.dsh.course.model.dto.DiscountJsonDto;
import com.dsh.course.model.vo.CourseDetailRequest;
import com.dsh.course.model.vo.RegisterCourseVo;
import com.dsh.course.model.vo.request.ClasspaymentRequest;
import com.dsh.course.model.vo.request.CourseOfAfterRequest;
import com.dsh.course.model.vo.request.CourseWithDetailsRequest;
import com.dsh.course.model.vo.request.UpdateCourseVideoStatusRequest;
import com.dsh.course.model.vo.response.AppUserVideoResponse;
import com.dsh.course.model.vo.response.CourseDetailsResponse;
import com.dsh.course.model.vo.response.CourseOfVideoResponse;
import com.dsh.course.service.*;
import com.dsh.course.util.DateUtil;
@@ -327,7 +329,6 @@
    @ApiOperation(value = "课后视频课表", tags = {"APP-开始上课"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "search",value = "视频名称",  required = true, dataType = "int"),
    })
    public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList(@RequestBody CourseOfAfterRequest search){
        try {
@@ -355,7 +356,6 @@
    @ApiOperation(value = "课后视频详情", tags = {"APP-开始上课"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "search",value = "视频名称",  required = true, dataType = "int"),
    })
    public ResultUtil<CourseOfVideoResponse> queryAfterSourceDetails(@RequestBody CourseWithDetailsRequest detailsRequest){
        try {
@@ -378,7 +378,6 @@
    @ApiOperation(value = "更新课后视频学习状态", tags = {"APP-开始上课"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "search",value = "视频名称",  required = true, dataType = "int"),
    })
    public ResultUtil updateVideoStatus(@RequestBody UpdateCourseVideoStatusRequest detailsRequest){
        try {
@@ -415,42 +414,6 @@
        }
    }
//
//    @PostMapping("/base/coursePack/courseOfPurchased")
//    public List<PurchaseVo> getAppUsersCourseData(@RequestBody Integer appUserId){
//        List<PurchaseVo> voList = new ArrayList<>();
////        查询够课包记录
//        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,null,null,appUserId);
//        //查询上课记录
//        List<Integer> coursePackageIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
//        List<CoursePackageStudent> packageStudents = cpsService.queryAppUserOfStuAttendClass(appUserId,coursePackageIds);
//        Map<Integer, Long> collect = packageStudents.stream()
//                .collect(Collectors.groupingBy(CoursePackageStudent::getCoursePackageId, Collectors.counting()));
//
//        if (tCoursePackagePayments.size() > 0){
//            for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
//                TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
//                PurchaseVo purchaseVo = new PurchaseVo();
//                purchaseVo.setCourseId(tCoursePackagePayment.getCoursePackageId());
//                purchaseVo.setCourseName(coursePackage.getName());
//                purchaseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime());
//                purchaseVo.setStoreId(coursePackage.getStoreId());
//                purchaseVo.setTeacherId(coursePackage.getCoachId());
//                purchaseVo.setPackageImg(coursePackage.getCoverDrawing());
//                purchaseVo.setCourseStatus(tCoursePackagePayment.getPayStatus());
//                purchaseVo.setCourseTypeId(coursePackage.getCoursePackageTypeId());
//                for (Map.Entry<Integer, Long> entry : collect.entrySet()) {
//                    int coursePackageId = entry.getKey();
//                    if (tCoursePackagePayment.getCoursePackageId() == coursePackageId) {
//                        purchaseVo.setCourseNums((int) (entry.getValue()*2));
//                    }
//                }
//                voList.add(purchaseVo);
//            }
//        }
//        return voList;
//    }
    /**
     * 已报名课程列表
@@ -475,5 +438,50 @@
    }
    /**
     * 已报名课程详情
     */
    @ResponseBody
    @PostMapping("/api/startCource/afterSourceDetail")
    @ApiOperation(value = "已报名课程详情", tags = {"APP-开始上课"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil<CourseDetailsResponse> getRegisteredData(@RequestBody Integer coursePackageId){
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(packagePaymentService.queryRegisteredCourseDetails(coursePackageId,appUserId));
        }catch (Exception e){
            return ResultUtil.runErr();
        }
    }
    /**
     * 已报名课程-支付
     */
    @ResponseBody
    @PostMapping("/api/startCource/payment")
    @ApiOperation(value = "已报名课程-支付", tags = {"APP-开始上课"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil continuationOperation(@RequestBody ClasspaymentRequest request){
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
                return ResultUtil.tokenErr();
            }
            return packagePaymentService.ContinuationOrpaymentCourse(userIdFormRedis,request);
        }catch (Exception e){
            return ResultUtil.runErr();
        }
    }
}
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java
New file
@@ -0,0 +1,15 @@
package com.dsh.course.feignclient.account;
import com.dsh.course.feignclient.account.model.Coach;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(value = "mb-cloud-account")
public interface CoachClient {
    @PostMapping("/coach/queryCoachById")
    Coach queryCoachById(@RequestBody Integer id);
}
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Coach.java
New file
@@ -0,0 +1,104 @@
package com.dsh.course.feignclient.account.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.util.Date;
/**
 * <p>
 * 教练
 * </p>
 *
 * @author jqs
 * @since 2023-07-05
 */
@Data
public class 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;
}
cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java
@@ -25,4 +25,7 @@
    @ApiModelProperty(value = "已上课时数")
    private Integer courseNums;
    @ApiModelProperty(value = "支付状态 1未支付 2已支付")
    private Integer payStatus;
}
cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java
New file
@@ -0,0 +1,29 @@
package com.dsh.course.model.vo.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ClasspaymentRequest {
    @ApiModelProperty(value = "课包id")
    private Integer lessonId;
    @ApiModelProperty(value = "学员id")
    private Integer stuId;
    @ApiModelProperty(value = "支付方式(1=微信 2=支付宝 3=玩湃币)")
    private Integer payType;
    @ApiModelProperty(value = "是否使用优惠券 1是 2否")
    private Integer useConpon;
    @ApiModelProperty(value = "优惠券Id")
    private Integer conponId;
    @ApiModelProperty(value = "课时id")
    private Long courseConfigId;
}
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java
New file
@@ -0,0 +1,41 @@
package com.dsh.course.model.vo.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CourseDetailsResponse {
    @ApiModelProperty(value = "课包id")
    private Integer coursePackageId;
    @ApiModelProperty(value = "课包封面图")
    private String coverDrawing;
    @ApiModelProperty(value = "课包名称")
    private String coursePackageName;
    @ApiModelProperty(value = "上课周 (每周一、周二 )")
    private String weeks;
    @ApiModelProperty(value = "上课时间范围")
    private String courseTimeFrame;
    @ApiModelProperty(value = "课包介绍图片")
    private String introduceDrawing;
    @ApiModelProperty(value = "支付价格")
    private double amount;
    @ApiModelProperty(value = "会员价")
    private double vipAmount;
    @ApiModelProperty(value = "玩湃币")
    private double wpGold;
    @ApiModelProperty(value = "支付状态 1未支付 2续课")
    private Integer payStatus;
}
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
@@ -3,11 +3,14 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.course.entity.TCoursePackagePayment;
import com.dsh.course.model.vo.RegisterCourseVo;
import com.dsh.course.model.vo.request.ClasspaymentRequest;
import com.dsh.course.model.vo.request.CourseOfAfterRequest;
import com.dsh.course.model.vo.request.CourseWithDetailsRequest;
import com.dsh.course.model.vo.request.UpdateCourseVideoStatusRequest;
import com.dsh.course.model.vo.response.AppUserVideoResponse;
import com.dsh.course.model.vo.response.CourseDetailsResponse;
import com.dsh.course.model.vo.response.CourseOfVideoResponse;
import com.dsh.course.util.ResultUtil;
import java.util.Date;
import java.util.List;
@@ -64,4 +67,16 @@
     */
    List<RegisterCourseVo> queryRegisteredCourseList(CourseOfAfterRequest courseTypeId, Integer appUserId);
    /**
     * 获取已报名课包详情
     * @param coursePackageId
     * @param appUserId
     * @return
     */
    CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePackageId, Integer appUserId);
    ResultUtil ContinuationOrpaymentCourse(Integer userIdFormRedis, ClasspaymentRequest request);
}
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -2,23 +2,24 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.course.entity.PostCourseVideo;
import com.dsh.course.entity.TCoursePackage;
import com.dsh.course.entity.TCoursePackagePayment;
import com.dsh.course.entity.UserVideoDetails;
import com.dsh.course.entity.*;
import com.dsh.course.feignclient.account.CoachClient;
import com.dsh.course.feignclient.account.model.Coach;
import com.dsh.course.feignclient.activity.BenefitVideoClient;
import com.dsh.course.feignclient.activity.model.BenefitsVideos;
import com.dsh.course.mapper.PostCourseVideoMapper;
import com.dsh.course.mapper.TCoursePackageMapper;
import com.dsh.course.mapper.TCoursePackagePaymentMapper;
import com.dsh.course.mapper.UserVideoDetailsMapper;
import com.dsh.course.feignclient.other.StoreClient;
import com.dsh.course.feignclient.other.model.Store;
import com.dsh.course.mapper.*;
import com.dsh.course.model.vo.RegisterCourseVo;
import com.dsh.course.model.vo.request.ClasspaymentRequest;
import com.dsh.course.model.vo.request.CourseOfAfterRequest;
import com.dsh.course.model.vo.request.CourseWithDetailsRequest;
import com.dsh.course.model.vo.request.UpdateCourseVideoStatusRequest;
import com.dsh.course.model.vo.response.AppUserVideoResponse;
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.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -40,7 +41,7 @@
    @Autowired
    BenefitVideoClient bfvoClient;
    private BenefitVideoClient bfvoClient;
    @Autowired
@@ -51,6 +52,18 @@
    @Autowired
    private TCoursePackageMapper tcpmapper;
    @Autowired
    private StoreClient stoClient;
    @Autowired
    private CoachClient coachClient;
    @Autowired
    private CoursePackageStudentMapper cpsMapper;
    @Autowired
    private CancelledClassesMapper cacMapper;
@@ -150,9 +163,66 @@
    @Override
    public List<RegisterCourseVo> queryRegisteredCourseList(CourseOfAfterRequest courseTypeId, Integer appUserId) {
        // TODO: 2023/7/6 已报名课程列表
        List<RegisterCourseVo> courseVos = new ArrayList<>();
        List<TCoursePackagePayment> tCoursePackagePayments = this.queryAllCoursePackage(null,null,null,null,appUserId);
        if (tCoursePackagePayments.size() > 0){
            for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
                TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
                Store store = stoClient.queryStoreById(coursePackage.getStoreId());
                RegisterCourseVo registerCourseVo = new RegisterCourseVo();
                registerCourseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
                registerCourseVo.setPackageImg(coursePackage.getCoverDrawing());
                String storeAndCourse = coursePackage.getName()+"("+ store.getName() +")";
                registerCourseVo.setCourseNameStore(storeAndCourse);
                registerCourseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime());
                Coach coach = coachClient.queryCoachById(coursePackage.getCoachId());
                registerCourseVo.setCourseTeacher(coach.getName());
                List<CoursePackageStudent> coursePackageStudents =
                        cpsMapper.queryStuDeduClassHourNums(coursePackage.getId(),null,appUserId);
                registerCourseVo.setCourseNums(coursePackageStudents.size() * 2);
                registerCourseVo.setPayStatus(tCoursePackagePayment.getPayStatus());
                courseVos.add(registerCourseVo);
            }
        }
        return courseVos;
    }
    @Override
    public CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePackageId, Integer appUserId) {
        // TODO: 2023/7/6  已报名课程详情
        return null;
    }
    @Override
    public ResultUtil ContinuationOrpaymentCourse(Integer userIdFormRedis, ClasspaymentRequest request) {
        // TODO: 2023/7/5 报名课程支付
        switch (request.getPayType()){
            case 1:
                WeChatPayment();
                break;
            case 2:
                AlipayPayment();
                break;
            case 3:
                PlaypaiGoldPayment();
                break;
            default:
                break;
        }
        return ResultUtil.success();
    }
    public void WeChatPayment(){
    }
    public void AlipayPayment(){
    }
    public void PlaypaiGoldPayment(){
    }
}