nickchange
2023-11-21 41b60f3df5f3054aad44307c13a26b14f3b32ac0
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -203,7 +203,7 @@
                coursePackageListVo.setPlayPaiCoin(coursePackagePaymentConfig.getPlayPaiCoin());
            }
            //会员显示原价和会员价(最低)。非会员显示会员价和支付价(最低)
            if(appUser.getIsVip() == 0){//非会员
//            if(appUser.getIsVip() == 0){//非会员
                List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
                        .eq("type", 1).eq("auditStatus", 2).eq("status",1));
                Double vipPrice = coursePackagePaymentConfig.getCashPayment();
@@ -214,9 +214,10 @@
                    }
                }
                coursePackageListVo.setVipPrice(vipPrice);
                coursePackageListVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
                Double paymentPrice = coursePackagePaymentConfig.getCashPayment();
                List<TCoursePackageDiscount> list3 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
                    List<TCoursePackageDiscount> list3 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
                        .eq("type", 3).eq("auditStatus", 2).eq("status",1));
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                for (TCoursePackageDiscount coursePackageDiscount : list3) {
@@ -292,19 +293,31 @@
                    }
                }
                coursePackageListVo.setPaymentPrice(paymentPrice);
            }else{
                List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
                        .eq("type", 1).eq("auditStatus", 2).eq("status",1));
                Double vipPrice = coursePackagePaymentConfig.getCashPayment();
                for (TCoursePackageDiscount coursePackageDiscount : list2) {
                    Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember");
                    if(vipPrice.compareTo(num1) > 0){
                        vipPrice = num1;
                    }
                }
                coursePackageListVo.setPaymentPrice(vipPrice);
                coursePackageListVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
            }
            double vipPrice1 = coursePackageListVo.getVipPrice();
            double originalPrice1 = coursePackageListVo.getOriginalPrice();
            double paymentPrice1 = coursePackageListVo.getPaymentPrice();
            double minPrice = Math.min(vipPrice1, Math.min(originalPrice1, paymentPrice1));
            double maxPrice = Math.max(vipPrice1, Math.max(originalPrice1, paymentPrice1));
            coursePackageListVo.setPaymentPrice(minPrice);
            coursePackageListVo.setOriginalPrice(maxPrice);
            System.out.println("Minimum price: " + minPrice);
            System.out.println("Maximum price: " + maxPrice);
//            }
//            else{
//                List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
//                        .eq("type", 1).eq("auditStatus", 2).eq("status",1));
//                Double vipPrice = coursePackagePaymentConfig.getCashPayment();
//                for (TCoursePackageDiscount coursePackageDiscount : list2) {
//                    Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember");
//                    if(vipPrice.compareTo(num1) > 0){
//                        vipPrice = num1;
//                    }
//                }
//                coursePackageListVo.setPaymentPrice(vipPrice);
//                coursePackageListVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
//            }
            Map<String, Double> distance = GeodesyUtil.getDistance(coursePackageList.getLon() + "," + coursePackageList.getLat(), store.getLon() + "," + store.getLat());
            coursePackageListVo.setDistance(distance.get("WGS84") / 1000);
@@ -604,6 +617,8 @@
            coursePackageInfo.setDetailDrawing(coursePackage.getDetailDrawing());
            coursePackageInfo.setIntroduceDrawing(coursePackage.getIntroduceDrawing());
            List<CoursePackagePaymentConfigVo> list = new ArrayList<>();
            List<CoursePackagePaymentConfig> list1 = coursePackagePaymentConfigService.list(new QueryWrapper<CoursePackagePaymentConfig>().eq("coursePackageId", id).orderByAsc("classHours"));
            list1.forEach(coursePackagePaymentConfig -> {
@@ -633,7 +648,6 @@
                        }
                    }
                    coursePackagePaymentConfigVo.setVipPrice(vipPrice);
                    Double paymentPrice = coursePackagePaymentConfig.getCashPayment();
                    List<TCoursePackageDiscount> list3 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
                            .eq("type", 3).eq("auditStatus", 2));
@@ -711,7 +725,33 @@
                        }
                    }
                    coursePackagePaymentConfigVo.setPaymentPrice(paymentPrice);
                }else{
                    TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
                            .eq("type", 2).eq("auditStatus", 2));
                    //这里是续课优惠
                    Double continuingMember = JSON.parseObject(discount.getContent()).getDouble("continuingUser");
                    Double vipcontinuingMember = JSON.parseObject(discount.getContent()).getDouble("continuingMember");
                    if (coursePackagePaymentConfigVo.getPaymentPrice()>continuingMember){
                        coursePackagePaymentConfigVo.setPaymentPrice(continuingMember);
                    }
                    if (coursePackagePaymentConfigVo.getVipPrice()>vipcontinuingMember){
                        coursePackagePaymentConfigVo.setVipPrice(vipcontinuingMember);
                    }
                    if (coursePackagePaymentConfigVo.getPaymentPrice()<coursePackagePaymentConfigVo.getVipPrice()){
                        coursePackagePaymentConfigVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
                        coursePackagePaymentConfigVo.setVipPrice(null);
                    }
                }
                else{
                    List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
                            .eq("type", 1).eq("auditStatus", 2));
                    Double vipPrice = coursePackagePaymentConfig.getCashPayment();
@@ -756,8 +796,11 @@
        //校验是否已经报满
        Integer integer = coursePackagePaymentService.queryCountNumber(paymentCourseVo.getId());
        TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId());
        if (integer+paymentCourseVo.getStudentIds().split(";").length>course.getMaxSubscribeNumber()){
            return ResultUtil.error("报名失败,已达最大报名人数");
        if (course.getType()!=3) {
            if (integer + paymentCourseVo.getStudentIds().split(";").length > course.getMaxSubscribeNumber()) {
                return ResultUtil.error("报名失败,已达最大报名人数");
            }
        }
        List<CoursePackagePaymentConfigVo> list = coursePackageInfo.getList();
        String[] students = paymentCourseVo.getStudentIds().split(";");
@@ -1011,6 +1054,21 @@
            TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId", paymentCourseVo.getId()));
            //赠送课时
            int weekday = DateUtil.dayOfWeek(new Date()) - 1;
            TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("type",4).eq("coursePackageId", paymentCourseVo.getId()).last("limit 1"));
            Integer hour = 0;
            if (discount!=null) {
                JSONArray objects = JSONObject.parseArray(discount.getContent());
                JSONObject parse = JSONObject.parseObject(JSONObject.toJSONString(objects.get(0)));
                hour = parse.getInteger("hour");
                if (hour == null) {
                    hour = 0;
                }
            }
            if (coursePackagePaymentServiceOne==null) {
                TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment();
                coursePackagePayment.setCode(code);
@@ -1018,11 +1076,11 @@
                coursePackagePayment.setStudentId(Integer.valueOf(s));
                coursePackagePayment.setCoursePackageId(paymentCourseVo.getId());
                coursePackagePayment.setPayType(paymentCourseVo.getPayType());
                coursePackagePayment.setClassHours(coursePackagePaymentConfig.getClassHours());
                coursePackagePayment.setClassHours(coursePackagePaymentConfig.getClassHours()+hour);
                coursePackagePayment.setOriginalPrice(paymentCourseVo.getPrice());
                coursePackagePayment.setPlayPaiCoin(paymentPrice.intValue());
                coursePackagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
                coursePackagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
                coursePackagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours()+hour);
                coursePackagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours()+hour);
                coursePackagePayment.setAbsencesNumber(0);
                coursePackagePayment.setPayUserType(1);
                coursePackagePayment.setPayStatus(1);
@@ -1049,36 +1107,46 @@
                courseCounsum.setReason("购买课包");
                courseCounsumService.save(courseCounsum);
            }else {
                coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours());
                coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice());
                coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue());
                coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours());
                coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours());
                coursePackagePaymentServiceOne.setCode(code);
                if (hour!=0){
                    CourseCounsum courseCounsum1 = new CourseCounsum();
                    courseCounsum1.setPaymentId(coursePackagePayment.getId());
                    courseCounsum1.setChangeType(1);
                    courseCounsum1.setNum(hour);
                    courseCounsum1.setInsertTime(new Date());
                    courseCounsum1.setReason("赠送课时");
                    courseCounsumService.save(courseCounsum);
                coursePackagePaymentServiceOne.setAppUserId(null);
                coursePackagePaymentServiceOne.setPayStatus(1);
                coursePackagePaymentService.updateById(coursePackagePaymentServiceOne);
//                coursePackagePaymentService.save(coursePackagePayment);
                Integer sId = null;
                Student student = studentClient.queryDefaultStudent(uid);
                if (student != null) {
                    sId = student.getId();
                }
                coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue());
//                addPackageStudent(paymentCourseVo.getId(), uid, Integer.valueOf(s), coursePackagePaymentServiceOne.getId());
                CourseCounsum courseCounsum = new CourseCounsum();
                courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId());
                courseCounsum.setChangeType(1);
                courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
                courseCounsum.setInsertTime(new Date());
                courseCounsum.setReason("续课");
                courseCounsumService.save(courseCounsum);
            }else {
//                coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours());
//                coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice());
//                coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue());
//                coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours());
//                coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours());
//                coursePackagePaymentServiceOne.setCode(code);
//
//                coursePackagePaymentServiceOne.setAppUserId(null);
//                coursePackagePaymentServiceOne.setPayStatus(2);
//                coursePackagePaymentService.updateById(coursePackagePaymentServiceOne);
//
//                Integer sId = null;
//                Student student = studentClient.queryDefaultStudent(uid);
//                if (student != null) {
//                    sId = student.getId();
//                }
//                coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue());
//
//
//                CourseCounsum courseCounsum = new CourseCounsum();
//                courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId());
//                courseCounsum.setChangeType(1);
//                courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
//                courseCounsum.setInsertTime(new Date());
//                courseCounsum.setReason("续课");
//                courseCounsumService.save(courseCounsum);
            }
@@ -1132,6 +1200,68 @@
                                        coursePackagePayment.setOrderNumber(tradeNo);
                                        coursePackagePayment.setAppUserId(null);
                                    }
                                    for (String s1 : split) {
                                        TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId", paymentCourseVo.getId()));
                                        if (coursePackagePaymentServiceOne!=null) {
                                            TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("type",4).eq("coursePackageId", paymentCourseVo.getId()).last("limit 1"));
                                            Integer hour = 0;
                                            if (discount!=null) {
                                                JSONArray objects = JSONObject.parseArray(discount.getContent());
                                                JSONObject parse = JSONObject.parseObject(JSONObject.toJSONString(objects.get(0)));
                                                hour = parse.getInteger("hour");
                                                if (hour == null) {
                                                    hour = 0;
                                                }
                                            }
                                            coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                                            coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice());
                                            coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue());
                                            coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                                            coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                                            coursePackagePaymentServiceOne.setCode(code);
                                            coursePackagePaymentServiceOne.setAppUserId(null);
                                            coursePackagePaymentServiceOne.setPayStatus(2);
                                            coursePackagePaymentService.updateById(coursePackagePaymentServiceOne);
                                            Integer sId = null;
                                            Student student = studentClient.queryDefaultStudent(uid);
                                            if (student != null) {
                                                sId = student.getId();
                                            }
                                            coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue());
                                            CourseCounsum courseCounsum = new CourseCounsum();
                                            courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId());
                                            courseCounsum.setChangeType(1);
                                            courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
                                            courseCounsum.setInsertTime(new Date());
                                            courseCounsum.setReason("续课");
                                            courseCounsumService.save(courseCounsum);
                                            if (hour!=0){
                                                CourseCounsum courseCounsum1 = new CourseCounsum();
                                                courseCounsum1.setPaymentId(coursePackagePaymentServiceOne.getId());
                                                courseCounsum1.setChangeType(1);
                                                courseCounsum1.setNum(hour);
                                                courseCounsum1.setInsertTime(new Date());
                                                courseCounsum1.setReason("赠送课时");
                                                courseCounsumService.save(courseCounsum);
                                            }
                                        }
                                    }
                                    coursePackagePaymentService.updateBatchById(list);
                                System.out.println("===========到达支付");
                                    // 2.0
@@ -1279,6 +1409,8 @@
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
        TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId());
        //赠送课时
        int weekday = DateUtil.dayOfWeek(new Date()) - 1;
@@ -1318,6 +1450,16 @@
                coursePackagePayment.setStatus(1);
                coursePackagePayment.setState(1);
                coursePackagePayment.setInsertTime(new Date());
                if (course.getValidDays()!=null) {
                    Date date = new Date();
                    Calendar calendar = Calendar.getInstance();
                    calendar.setTime(date);
                    calendar.add(Calendar.DATE, course.getValidDays());
                    date = calendar.getTime();
                    coursePackagePayment.setUseTime(date);
                }
                coursePackagePaymentService.save(coursePackagePayment);
                Integer sId = null;
                Student student = studentClient.queryDefaultStudent(appUser.getId());
@@ -1335,9 +1477,23 @@
                courseCounsum.setReason("购买课包");
                courseCounsumService.save(courseCounsum);
            }else {
                if (hour!=0){
                    CourseCounsum courseCounsum1 = new CourseCounsum();
                    courseCounsum1.setPaymentId(coursePackagePayment.getId());
                    courseCounsum1.setChangeType(1);
                    courseCounsum1.setNum(hour);
                    courseCounsum1.setInsertTime(new Date());
                    courseCounsum1.setReason("赠送课时");
                    courseCounsumService.save(courseCounsum1);
                }
            }else{
                coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice());
                if (coursePackagePaymentServiceOne.getOriginalPrice()!=null) {
                    coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice() + paymentCourseVo.getPrice());
                }else {
                    coursePackagePaymentServiceOne.setOriginalPrice(paymentCourseVo.getPrice());
                }
                if (coursePackagePaymentServiceOne.getPlayPaiCoin()==null){
                    coursePackagePaymentServiceOne.setPlayPaiCoin(paymentPrice.intValue());
@@ -1346,6 +1502,18 @@
                coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                coursePackagePaymentServiceOne.setAppUserId(null);
                if (course.getValidDays()!=null) {
                    Date date = coursePackagePaymentServiceOne.getUseTime();
                    Calendar calendar = Calendar.getInstance();
                    calendar.setTime(date);
                    calendar.add(Calendar.DATE, course.getValidDays());
                    date = calendar.getTime();
                    coursePackagePaymentServiceOne.setUseTime(date);
                }
                coursePackagePaymentService.updateById(coursePackagePaymentServiceOne);
//                coursePackagePaymentService.save(coursePackagePayment);
@@ -1364,6 +1532,16 @@
                courseCounsum.setInsertTime(new Date());
                courseCounsum.setReason("续课");
                courseCounsumService.save(courseCounsum);
                if (hour!=0){
                    CourseCounsum courseCounsum1 = new CourseCounsum();
                    courseCounsum1.setPaymentId(coursePackagePaymentServiceOne.getId());
                    courseCounsum1.setChangeType(1);
                    courseCounsum1.setNum(hour);
                    courseCounsum1.setInsertTime(new Date());
                    courseCounsum1.setReason("赠送课时");
                    courseCounsumService.save(courseCounsum1);
                }
            }
@@ -1545,6 +1723,27 @@
                    }
                }
            }
        }else if (tCoursePackage.getType()==3){
            if (price!=null) {
                CourseCounsum courseCounsum = new CourseCounsum();
                courseCounsum.setPaymentId(paymentId);
                courseCounsum.setChangeType(3);
                courseCounsum.setInsertTime(new Date());
                courseCounsum.setReason("购买体验课;" + price);
                courseCounsum.setAppUserId(userId);
                courseCounsumService.save(courseCounsum);
            }
            //生成当天的排课记录
            //生成学员的上课表
        }
@@ -1862,7 +2061,7 @@
    }
    @Override
    public Integer getHours(Integer coursePackageId) {
    public List<Integer> getHours(Integer coursePackageId) {
        return this.baseMapper.getHours(coursePackageId);
    }