lisy
2023-07-06 0ce090ba49e37710a129cf21ac762bbe43bcd50b
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -3,12 +3,19 @@
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.model.vo.CourseDetailRequest;
import com.dsh.course.service.PostCourseVideoService;
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;
@@ -37,6 +44,12 @@
    @Autowired
    private TCoursePackageService tcpService;
    @Autowired
    private TCoursePackageDiscountService tcpdService;
    @Autowired
    private PostCourseVideoService pcvService;
    private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
    /**
@@ -44,8 +57,8 @@
     * @param stuId 学员id
     * @return  课包列表
     */
    @PostMapping("/coursePack/queryPayment")
    public List<StuCourseResp> getStuCoursePackagePayment(@RequestBody Integer stuId,@RequestBody Integer appUserId){
    @PostMapping("/base/coursePack/queryPayment")
    public List<StuCourseResp> getStuCoursePackagePayment(@RequestParam("stuId") Integer stuId,@RequestParam("appUserId") Integer appUserId){
        List<StuCourseResp> resps = new ArrayList<>();
        List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,stuId,appUserId);
        if (byUserId.size() > 0 ){
@@ -67,7 +80,7 @@
     *
     * 获取发布的 课包列表
     */
    @PostMapping("/coursePack/storeOfCourse")
    @PostMapping("/base/coursePack/storeOfCourse")
    public List<CourseOfStoreVo> getStuCourseWithStores(){
        List<CourseOfStoreVo> courseOfStoreVos = tcpService.queryStoreOfCourse();
        if (courseOfStoreVos.size() > 0){
@@ -89,10 +102,10 @@
     *
     * 课程名称列表
     */
    @PostMapping("/coursePack/sessionNames")
    public List<StuSessionDetailsVo> getStuSessionList(@RequestBody Date startTime, @RequestBody Date  endTime, @RequestBody Integer stuId, @RequestBody Integer appUserId){
    @PostMapping("/base/coursePack/sessionNames")
    public List<StuSessionDetailsVo> getStuSessionList(@RequestBody CourseDetailRequest request){
        List<StuSessionDetailsVo> detailsVos = new ArrayList<>();
        List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(startTime,endTime,null,stuId,appUserId);
        List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(request.getStartTime(),request.getEndTime(),null,request.getStuId(),request.getAppUserId());
        if (byUserId.size() > 0){
            List<Integer> collect = byUserId.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
            List<TCoursePackage> list = tcpService.list(new QueryWrapper<TCoursePackage>()
@@ -109,8 +122,8 @@
        return detailsVos;
    }
    @PostMapping("/coursePack/paymentCourse")
    public List<PurchaseRecordVo> queryCourseDetails(@RequestBody Date startTime, @RequestBody Date  endTime,@RequestBody Integer stuId, @RequestBody Integer appUserId) {
    @PostMapping("/base/coursePack/paymentCourse")
    public List<PurchaseRecordVo> queryCourseDetails(@RequestParam("startTime") Date startTime, @RequestParam("endTime") Date  endTime,@RequestParam("stuId") Integer stuId, @RequestParam("appUserId") Integer appUserId) {
        List<PurchaseRecordVo> purchaseRecordVos = new ArrayList<>();
        List<TCoursePackagePayment> coursePackage = packagePaymentService.queryAllCoursePackage(startTime,endTime,null,stuId, appUserId);
        if (coursePackage.size() > 0 ){
@@ -127,13 +140,13 @@
    @PostMapping("/coursePack/stuOfCourses")
    public StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody Integer stuId, @RequestBody Integer appUserId){
    @PostMapping("/base/coursePack/stuOfCourses")
    public StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody GetStuOfCoursesDetails getStuOfCoursesDetails){
        StuWithCoursesListVo lisco = new StuWithCoursesListVo();
        Integer totalNu = 0;
        Integer dedutNu = 0;
        Integer remainNu = 0;
        List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,stuId,appUserId);
        List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(null,null,null,getStuOfCoursesDetails.getStuId(),getStuOfCoursesDetails.getAppUserId());
        if (byUserId.size() > 0 ){
            for (TCoursePackagePayment tCoursePackagePayment : byUserId) {
                totalNu = totalNu + tCoursePackagePayment.getTotalClassHours();
@@ -149,17 +162,17 @@
    @PostMapping("/coursePack/continuingCourse")
    public StudentOfCourseVo getStudentCourse(@RequestBody Integer courseId,@RequestBody Integer stuId,@RequestBody Integer appUserId){
    @PostMapping("/base/coursePack/continuingCourse")
    public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse){
        StudentOfCourseVo courseVo = new StudentOfCourseVo();
        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,courseId,stuId,appUserId);
        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,getStudentCourse.getCourseId(),getStudentCourse.getStuId(),getStudentCourse.getAppUserId());
        if (tCoursePackagePayments.size() > 0 ){
            List<CourseHoursType> typeList = new ArrayList<>();
            tCoursePackagePayments.forEach(cou -> {
                CourseHoursType hoursType = new CourseHoursType();
                hoursType.setCourseConfigId(cou.getId());
                hoursType.setCourseConfigId(cou.getClassHours());
                hoursType.setCourseHourNums(cou.getClassHours());
                typeList.add(hoursType);
            });
            TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0);
@@ -208,27 +221,57 @@
            }
            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());
        }
        return courseVo;
    }
    @PostMapping("/base/coursePack/afterCourseTwos")
    public List<AfterVideoVo> getAfterCourseTwos(@RequestParam("appUserId") Integer appUserId){
        List<AfterVideoVo> videoVos = new ArrayList<>();
        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.queryAllCoursePackage(null,null,null,null,appUserId);
        List<Integer> coursePackageIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
//        List<PostCourseVideo> videoList = pcvService.queryAllVideoNoneShow(coursePackageIds);
        return videoVos;
    }
}