44323
2023-11-22 f6ba3e15355e22767e69f8fc14ae22523f8db8dc
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -298,12 +298,14 @@
            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);
//            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);
//            }
//            else{
//                List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
@@ -318,6 +320,20 @@
//                coursePackageListVo.setPaymentPrice(vipPrice);
//                coursePackageListVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
//            }
            if (coursePackageListVo.getPaymentPrice()<coursePackageListVo.getVipPrice()){
                coursePackageListVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
//                coursePackageListVo.setVipPrice(null);
            }
            if(appUser.getIsVip() == 1) {
                if (coursePackageListVo.getVipPrice() < coursePackageListVo.getPaymentPrice()) {
                    coursePackageListVo.setPaymentPrice(coursePackageListVo.getVipPrice());
                }
            }else {
                coursePackageListVo.setVipPrice(null);
            }
            Map<String, Double> distance = GeodesyUtil.getDistance(coursePackageList.getLon() + "," + coursePackageList.getLat(), store.getLon() + "," + store.getLat());
            coursePackageListVo.setDistance(distance.get("WGS84") / 1000);
@@ -637,7 +653,7 @@
//                coursePackagePaymentConfigVo.setPayType(coursePackage.getPayType());
                //会员显示原价和支付价(会员价)。非会员显示会员价和支付价(最低)
                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));
                    Double vipPrice = coursePackagePaymentConfig.getCashPayment();
@@ -726,25 +742,52 @@
                    }
                    coursePackagePaymentConfigVo.setPaymentPrice(paymentPrice);
                    if (coursePackagePaymentConfigVo.getPaymentPrice()<coursePackagePaymentConfigVo.getVipPrice()){
//                    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(appUser.getIsVip() == 1) {
                        if (coursePackagePaymentConfigVo.getVipPrice()<coursePackagePaymentConfigVo.getPaymentPrice()){
                            coursePackagePaymentConfigVo.setPaymentPrice(coursePackagePaymentConfigVo.getVipPrice());
                        }
                                }
                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();
                    for (TCoursePackageDiscount coursePackageDiscount : list2) {
                        Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember");
                        if(vipPrice.compareTo(num1) > 0){
                            vipPrice = num1;
                        }
                    }
                    coursePackagePaymentConfigVo.setPaymentPrice(vipPrice);
                    coursePackagePaymentConfigVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
                }
//                }
//                else{
//                    List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
//                            .eq("type", 1).eq("auditStatus", 2));
//                    Double vipPrice = coursePackagePaymentConfig.getCashPayment();
//                    for (TCoursePackageDiscount coursePackageDiscount : list2) {
//                        Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember");
//                        if(vipPrice.compareTo(num1) > 0){
//                            vipPrice = num1;
//                        }
//                    }
//                    coursePackagePaymentConfigVo.setPaymentPrice(vipPrice);
//                    coursePackagePaymentConfigVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
//                }
                list.add(coursePackagePaymentConfigVo);
            });
            coursePackageInfo.setList(list);
@@ -853,6 +896,9 @@
                }
                price = new BigDecimal(price).subtract(new BigDecimal(num1)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
            }
            userCoupon.setStatus(2);
           userCouponClient.edit(userCoupon);
        }
        if(paymentCourseVo.getPayType() == 1){//微信支付
@@ -1035,6 +1081,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);
@@ -1042,11 +1103,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);
@@ -1073,17 +1134,32 @@
                courseCounsum.setReason("购买课包");
                courseCounsumService.save(courseCounsum);
                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);
                }
            }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.setCode(code);
//
//                coursePackagePaymentServiceOne.setAppUserId(null);
                coursePackagePaymentServiceOne.setPayStatus(2);
                coursePackagePaymentServiceOne.setSalesName("续课");
                coursePackagePaymentServiceOne.setAppUserId(null);
//                coursePackagePaymentServiceOne.setPayStatus(2);
//                coursePackagePaymentService.updateById(coursePackagePaymentServiceOne);
                coursePackagePaymentService.updateById(coursePackagePaymentServiceOne);
//
//                Integer sId = null;
//                Student student = studentClient.queryDefaultStudent(uid);
@@ -1118,6 +1194,8 @@
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                        int num = 1;
                        int wait = 0;
                        while (num <= 10){
@@ -1126,10 +1204,11 @@
                            Thread.sleep(wait);
                            List<TCoursePackagePayment> list = coursePackagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("state", 1).eq("code", code).eq("payType", 2));
                            TCoursePackagePayment one = list.get(0);
                            AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code);
                            if(one.getPayStatus() == 2){
                                break;
                            }
                            AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code);
                            if( one.getPayStatus() == 1){
                                /**
                                 * WAIT_BUYER_PAY(交易创建,等待买家付款)、
@@ -1141,7 +1220,13 @@
                                String tradeNo = alipayTradeQueryResponse.getTradeNo();
                                if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){
                                    for (TCoursePackagePayment coursePackagePayment : list) {
                                        for (TCoursePackagePayment coursePackagePayment : list) {
                                        if (coursePackagePayment.getStudentName()!=null){
                                        if (coursePackagePayment.getStudentName().equals("续课")){
                                            coursePackagePayment.setPayStatus(2);
                                        }
                                        }
                                        coursePackagePayment.setStatus(3);
                                    }
                                    coursePackagePaymentService.updateBatchById(list);
@@ -1157,11 +1242,26 @@
                                    for (String s1 : split) {
                                        TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId", paymentCourseVo.getId()));
                                        if (coursePackagePaymentServiceOne!=null) {
                                            coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours());
                                            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());
                                            coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours());
                                            coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                                            coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                                            coursePackagePaymentServiceOne.setCode(code);
                                            coursePackagePaymentServiceOne.setAppUserId(null);
@@ -1183,6 +1283,18 @@
                                            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);
                                            }
                                        }
@@ -1335,6 +1447,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;
@@ -1374,6 +1488,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());
@@ -1391,6 +1515,16 @@
                courseCounsum.setReason("购买课包");
                courseCounsumService.save(courseCounsum);
                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);
                if (coursePackagePaymentServiceOne.getOriginalPrice()!=null) {
@@ -1406,6 +1540,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);
@@ -1424,6 +1570,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);
                }
            }
@@ -1514,7 +1670,7 @@
                if (count == can) {
                    break;
                }
                int wei = DateUtil.dayOfWeek(date);
                int wei = DateUtil.dayOfWeek(date)-1;
                if (week.contains(wei)) {
                    for (int i1 = 0; i1 < split.length; i1++) {
                        if (count == can) {