zhibing.pu
2024-07-24 c52f83ef5f702b3c178881d3eee72267c77e7751
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -133,10 +133,24 @@
    private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
    @Autowired
    private ICoursePackageOrderStudentService coursePackageOrderStudentService;
    @Autowired
    private ALiSendSms aLiSendSms;
    @Resource
    private AppUserClient appuClient;
    @Autowired
    private CourseCounsumService courseCounsumService;
    @Autowired
    private TCoursePackagePaymentService coursePackagePaymentService;
    /**
@@ -188,6 +202,7 @@
        coursePackageOrder.setStatus(1);
        coursePackageOrder.setState(1);
        coursePackageOrder.setInsertTime(new Date());
        coursePackageOrder.setOrderType(1);
        coursePackageOrder.setSalesName(packagePayment.getSalesName());
        coursePackageOrderService.save(coursePackageOrder);
        // 生成排课数据
@@ -588,7 +603,6 @@
                            storeVo.setLon(store.getLon());
                            storeVo.setCoursePrice(ToolUtil.isEmpty(paymentConfig.getCashPayment()) ? (double) paymentConfig.getPlayPaiCoin() : paymentConfig.getCashPayment());
                            storeVo.setStatus(1);
                            // 2.0
                            storeVo.setAllNum(tCoursePackagePayment.getTotalClassHours());
                            storeVo.setLastNum(tCoursePackagePayment.getLaveClassHours());
                            storeVo.setUseNum(tCoursePackagePayment.getTotalClassHours() - tCoursePackagePayment.getLaveClassHours());
@@ -676,7 +690,7 @@
                PurchaseRecordVo recordVo = new PurchaseRecordVo();
                recordVo.setPurchaseAmount("+" + cspackage.getClassHours());
                recordVo.setPurchaseTime(format.format(cspackage.getInsertTime()));
                recordVo.setPurchaseType("购买课包");
                recordVo.setPurchaseType("报名运动营");
                purchaseRecordVos.add(recordVo);
            });
        }
@@ -684,11 +698,7 @@
    }
    @Autowired
    private CourseCounsumService courseCounsumService;
    @Autowired
    private TCoursePackagePaymentService coursePackagePaymentService;
    @PostMapping("/base/coursePack/getRecord")
    public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) {
@@ -762,7 +772,6 @@
        return lisco;
    }
    @PostMapping("/base/coursePack/continuingCourse")
    public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) {
        StudentOfCourseVo courseVo = new StudentOfCourseVo();
@@ -771,7 +780,6 @@
                .eq("coursePackageId", getStudentCourse.getCourseId())
                .eq("studentId", getStudentCourse.getStuId()));
        if (tCoursePackagePayments.size() > 0) {
            List<CourseHoursType> typeList = new ArrayList<>();
            tCoursePackagePayments.forEach(cou -> {
                CourseHoursType hoursType = new CourseHoursType();
@@ -782,7 +790,6 @@
            TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0);
            courseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
            courseVo.setTypeList(typeList);
            TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
            courseVo.setPackageImg(coursePackage.getCoverDrawing());
            courseVo.setCourseName(coursePackage.getName());
@@ -1034,7 +1041,7 @@
        }
    }
    // 2.0
    @ResponseBody
    @PostMapping("/api/startCource/payCourse")
    @ApiOperation(value = "课后练习-确认购课", tags = {"APP-开始上课"})
@@ -1165,15 +1172,15 @@
    })
    public ResultUtil continuationOperation(ClasspaymentRequest request) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if (null == userIdFormRedis) {
            Integer userId = tokenUtil.getUserIdFormRedis();
            if (null == userId) {
                return ResultUtil.tokenErr();
            }
            Integer couponId = request.getConponId();
            if (couponId == null || couponId == 0) {
                request.setConponId(null);
            }
            return packagePaymentService.ContinuationOrpaymentCourse(userIdFormRedis, request);
            return packagePaymentService.ContinuationOrpaymentCourse(userId, request);
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
@@ -1300,21 +1307,16 @@
    @PostMapping("/coursePackagePayment/paymentDeductionClassHour")
    public void paymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour) {
        try {
            // 2.0 用id进行查询
//            TCoursePackagePayment coursePackagePayment = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", paymentDeductionClassHour.getCourseId()).eq("payStatus", 2)
//                    .eq("status", 1).eq("state", 1).gt("laveClassHours", 0));
//            Integer classHour = paymentDeductionClassHour.getClassHour();
//            for (TCoursePackagePayment coursePackagePayment : list) {
            CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(paymentDeductionClassHour.getCourseId());
//            if (paymentDeductionClassHour.getClassHour() > coursePackageOrderStudent.getLaveClassHours()) {
//                return ResultUtil.error("当前课包课时数不足");
//            }
            TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
            coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - paymentDeductionClassHour.getClassHour());
            coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
            Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
            if(3 >= laveClassHours){
                AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
                //发送短信提醒
                aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", "");
            }
            //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录
            List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
                    .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1)
@@ -1334,131 +1336,14 @@
                }
            }
//            if (coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0) {
//                coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour);
//                coursePackagePayment.setAppUserId(null);
//                packagePaymentService.updateById(coursePackagePayment);
//
//                CourseCounsum courseCounsum = new CourseCounsum();
//                courseCounsum.setPaymentId(coursePackagePayment.getId());
//                courseCounsum.setChangeType(0);
//                courseCounsum.setNum(classHour);
//                courseCounsum.setInsertTime(new Date());
//                courseCounsum.setReason("报名赛事");
//                courseCounsumService.save(courseCounsum);
//
//
//                List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
//                List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
//                coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect));
//                coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", paymentDeductionClassHour.getId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
//
//
//                TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId());
//                String classWeeks = tCoursePackage.getClassWeeks();
//                List<Integer> week = week(classWeeks);
//
//                TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId()));
//
//                Date today = new Date();
//                Calendar calendar = Calendar.getInstance();
//                calendar.add(Calendar.DATE, -1);
//                today = calendar.getTime();
//
//
//                Integer laveClassHours = pay.getLaveClassHours();
//                Integer codeTime = tCoursePackage.getCodeTime();
//                Integer can = laveClassHours / codeTime;
//
//                int count = 0;
//                String[] split = tCoursePackage.getClassStartTime().split(",");
//                String[] split1 = tCoursePackage.getClassEndTime().split(",");
//                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
//                SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
//
//                Date[] dates = generateDateArray(14, today);
//                for (Date date : dates) {
//                    if (count == can) {
//                        break;
//                    }
//                    int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date);
//                    if (week.contains(wei)) {
//                        for (int i1 = 0; i1 < split.length; i1++) {
//                            if (count == can) {
//                                break;
//                            }
//                            CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
//                            coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
//                            Date parse = format1.parse(format.format(date) + " " + split[i1]);
//                            Date parse1 = format1.parse(format.format(date) + " " + split1[i1]);
//                            coursePackageScheduling.setClassDate(parse);
//                            coursePackageScheduling.setEndDate(parse1);
//                            coursePackageScheduling.setStatus(1);
//                            coursePackageSchedulingService.save(coursePackageScheduling);
//                            CoursePackageStudent student1 = new CoursePackageStudent();
//                            student1.setAppUserId(pay.getAppUserId());
//                            student1.setStudentId(pay.getStudentId());
//                            student1.setCoursePackageId(pay.getCoursePackageId());
//                            student1.setCoursePackagePaymentId(pay.getId());
//                            student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
//                            student1.setSignInOrNot(1);
//                            student1.setReservationStatus(1);
//                            student1.setInsertTime(new Date());
//                            studentService.save(student1);
//                            count++;
//                        }
//                    }
//                }
//
//
//                // 2.0 少于3课时 推送
//                if (coursePackagePayment.getLaveClassHours() <= 3) {
//                    Integer appUserId = coursePackagePayment.getAppUserId();
//
//                    //调用推送
//                    HttpHeaders headers = new HttpHeaders();
//                    // 以表单的方式提交
//                    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//                    String s1 = appUserId + "_" + "Three";
//                    //定时修改排课状态
//                    String s = internalRestTemplate.getForObject("http://mb-cloud-gateway/netty/sendMsgToClient?id=" + s1, String.class);
//                    JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
//                    if (jsonObject1.getIntValue("code") != 200) {
//                        System.err.println(jsonObject1.getString("msg"));
//                    }
//                }
//
//                CancelledClasses cancelledClasses = new CancelledClasses();
//                cancelledClasses.setType(2);
//                cancelledClasses.setVoucher(paymentDeductionClassHour.getCode());
//                cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId());
//                cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId());
//                cancelledClasses.setCancelledClassesNumber(classHour);
//                cancelledClasses.setInsertTime(new Date());
//                cancelledClassesService.save(cancelledClasses);
//
//            } else {
//                CancelledClasses cancelledClasses = new CancelledClasses();
//                cancelledClasses.setType(2);
//                cancelledClasses.setVoucher(paymentDeductionClassHour.getCode());
//                cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId());
//                cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId());
//                cancelledClasses.setCancelledClassesNumber(coursePackagePayment.getLaveClassHours());
//                cancelledClasses.setInsertTime(new Date());
//                cancelledClassesService.save(cancelledClasses);
//
//                coursePackagePayment.setLaveClassHours(0);
//                packagePaymentService.updateById(coursePackagePayment);
//
//                classHour -= cancelledClasses.getCancelledClassesNumber();
//            }
//                }
            CourseCounsum courseCounsum = new CourseCounsum();
            courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
            courseCounsum.setChangeType(0);
            courseCounsum.setNum(paymentDeductionClassHour.getClassHour());
            courseCounsum.setInsertTime(new Date());
            courseCounsum.setReason("赛事报名");
            courseCounsum.setAppUserId(coursePackageOrderStudent.getAppUserId());
            courseCounsumService.save(courseCounsum);
        } catch (Exception e) {
            e.printStackTrace();
@@ -1621,7 +1506,6 @@
            appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() - paymentConfig.getPlayPaiCoin());
            auClitn.updateAppUser(appUser);
            // 2.0
            TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
            tCourseInfoRecord.setUserId(userIdFormRedis);
            tCourseInfoRecord.setCourseId(coursePackage.getCoursePackageId());
@@ -1636,7 +1520,7 @@
            courseCounsum.setChangeType(1);
            courseCounsum.setNum(packagePayment.getClassHours());
            courseCounsum.setInsertTime(new Date());
            courseCounsum.setReason("购买课包");
            courseCounsum.setReason("报名运动营");
            courseCounsumService.save(courseCounsum);
        } catch (Exception e) {
@@ -1670,7 +1554,6 @@
        boolean id = packagePaymentService.update(packagePayment, new QueryWrapper<TCoursePackagePayment>()
                .eq("id", packagePayment.getId()));
        if (id) {
            // 2.0
            TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
            tCourseInfoRecord.setNum(packagePayment.getTotalClassHours());
            tCourseInfoRecord.setName("续课");
@@ -1694,9 +1577,9 @@
    }
    @PostMapping("/base/coursePack/savePaymentCoursePackage")
    public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment) {
        return packagePaymentService.save(packagePayment);
    public Long savePaymentCoursePackage(@RequestBody CoursePackageOrder coursePackageOrder) {
        coursePackageOrderService.save(coursePackageOrder);
        return coursePackageOrder.getId();
    }
@@ -1814,7 +1697,6 @@
                // 其他星期减一即可得到1-6的数字表示
                dayOfWeek -= 1;
            }
            // todo
            if (weeks.contains(String.valueOf(dayOfWeek))){
                // 限时折扣判断是否在有效期
                try {
@@ -2184,7 +2066,6 @@
                }
            }
        }
        // 2.0
        TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
        tCourseInfoRecord.setUserId(userId);
        tCourseInfoRecord.setCourseId(courseId);
@@ -2198,12 +2079,7 @@
    @ResponseBody
    @PostMapping("/base/coursePack/obtainStudentClassDetails")
    public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody WeeksOfCourseRest stuId) {
//        try {
        return coursePackageOrderStudentService.obtainStuClassDetails(stuId.getStuId(), stuId.getAppUserId(), stuId.getPageNum());
//        }catch (Exception e){
//            e.printStackTrace();
//            throw new RuntimeException();
//        }
    }
@@ -2221,16 +2097,16 @@
    }
    // 2.0 送课时
    @PostMapping("/base/coursePack/sendHours")
    public Integer sendHours(@RequestBody String s) throws ParseException {
        String[] split2 = s.split("_");
        TCoursePackagePayment byId = packagePaymentService.getById(Long.valueOf(split2[0]));
        byId.setTotalClassHours(byId.getTotalClassHours() + Integer.valueOf(split2[2]));
        boolean b = packagePaymentService.updateHoursById(byId, Integer.valueOf(split2[2]));
        CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(Long.valueOf(split2[0]));
        coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + Integer.valueOf(split2[2]));
        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + Integer.valueOf(split2[2]));
        coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
        CourseCounsum courseCounsum = new CourseCounsum();
        courseCounsum.setPaymentId(byId.getId());
        courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
        courseCounsum.setChangeType(1);
        courseCounsum.setNum(Integer.valueOf(split2[2]));
        courseCounsum.setInsertTime(new Date());
@@ -2238,17 +2114,17 @@
        courseCounsumService.save(courseCounsum);
        List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", byId.getStudentId()).eq("coursePackageId", byId.getCoursePackageId()));
        List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackageOrderStudent.getStudentId()).eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()));
        List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
        coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect));
        coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", byId.getStudentId()).eq("coursePackageId", byId.getCoursePackageId()));
        coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackageOrderStudent.getStudentId()).eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()));
        TCoursePackage tCoursePackage = packageService.getById(byId.getCoursePackageId());
        TCoursePackage tCoursePackage = packageService.getById(coursePackageOrderStudent.getCoursePackageId());
        String classWeeks = tCoursePackage.getClassWeeks();
        List<Integer> week = week(classWeeks);
        TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", byId.getCoursePackageId()).eq("studentId", byId.getStudentId()));
        TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()).eq("studentId", coursePackageOrderStudent.getStudentId()));
        Date today = new Date();
@@ -2295,14 +2171,7 @@
                }
            }
        }
        if (b) {
            return 1;
        } else {
            return 0;
        }
        return 1;
    }
@@ -2383,6 +2252,13 @@
        }
        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-coursePackage.getNeedNum());
        orderStudentService.updateById(coursePackageOrderStudent);
        Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
        if(3 >= laveClassHours){
            AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
            //发送短信提醒
            aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", "");
        }
        CourseCounsum courseCounsum = new CourseCounsum();
        courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
        courseCounsum.setChangeType(0);
@@ -2416,7 +2292,6 @@
        packagePaymentService.updateById(coursePackagePayment);
    }
    /**
     * 修改数据
     *
@@ -2446,7 +2321,7 @@
     */
    @ResponseBody
    @PostMapping("/api/startCource/reverse")
    @ApiOperation(value = "上课主页-预约操作--2.0改请假操作", tags = {"APP-开始上课"})
    @ApiOperation(value = "上课主页-预约操作--改请假操作", tags = {"APP-开始上课"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "课包id", name = "courseID", required = true, dataType = "String"),
@@ -2504,14 +2379,28 @@
    @PostMapping("/base/coursePack/getConsumes")
    List<CourseCounsum> getConsumes(@RequestBody BillingDataRequestVo requestVo) {
        Integer[] integers = {2, 3};
        QueryWrapper<CourseCounsum> courseCounsumQueryWrapper = new QueryWrapper<CourseCounsum>().in("changeType", integers).eq("appUserId", requestVo.getAppUserId());
        QueryWrapper<CourseCounsum> courseCounsumQueryWrapper = new QueryWrapper<CourseCounsum>()
                .in("changeType", integers).eq("appUserId", requestVo.getAppUserId());
        if (requestVo.getMonthEnd() != null) {
            courseCounsumQueryWrapper.ge("insertTime", requestVo.getMonthStart());
            courseCounsumQueryWrapper.le("insertTime", requestVo.getMonthEnd());
        }
        return courseCounsumService.list(courseCounsumQueryWrapper);
    }
    @ResponseBody
    @PostMapping("/base/coursePack/getCoursePackageOrder")
    public List<CoursePackageOrder> getCoursePackageOrder(@RequestBody BillingDataRequestVo requestVo){
        QueryWrapper<CoursePackageOrder> wrapper = new QueryWrapper<CoursePackageOrder>().eq("appUserId", requestVo.getAppUserId())
                .in("payType", Arrays.asList(1, 2, 5, 6)).eq("payStatus", 2).eq("state", 1).eq("orderType", 1);
        return coursePackageOrderService.list(wrapper);
    }
    @ResponseBody
@@ -2600,6 +2489,7 @@
                        .eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId())
                        .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime())
                );
                if (list3.isEmpty()) {
                    detailsListVo.setType(2);
                    objects.add(detailsListVo);
@@ -2678,6 +2568,10 @@
                detailsListVo.setType(2);
                objects.add(detailsListVo);
            }
            //课程暂停
            if(tCoursePackage.getState() == 4){
                detailsListVo.setType(4);
            }
        }
        map.put("data", objects);
@@ -3028,10 +2922,7 @@
        weekData.add(count2);
        weekData.add(count1);
        weekData.add(count);
        map.put("weekData", weekData);
        LocalDateTime currentDateTime = LocalDateTime.now();
        List<Integer> amountByDay = new ArrayList<>(Collections.nCopies(7, 0));
        for (CoursePackageStudent coursePackageStudent : list) {