From 2493985a5bdfc6496381b39de0f9713b79c2e51d Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期六, 25 十一月 2023 11:14:52 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 233 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 178 insertions(+), 55 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java index 3709539..0cc4ea6 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java +++ b/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(); @@ -728,42 +744,51 @@ - TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) - .eq("type", 2).eq("auditStatus", 2)); +// 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()); + coursePackagePaymentConfigVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); + } + } - //这里是续课优惠 - 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()){ + 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); @@ -832,9 +857,10 @@ paymentPrice = new BigDecimal(students.length).multiply(new BigDecimal(paymentPrice)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); Double playPaiCoin = coursePackagePaymentConfigVo.getPlayPaiCoin().doubleValue();//支付币 playPaiCoin = new BigDecimal(students.length).multiply(new BigDecimal(playPaiCoin)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); - if(paymentCourseVo.getPayType() != 3 && paymentPrice.compareTo(paymentCourseVo.getPrice()) != 0&&paymentCourseVo.getCouponId()!=null){ - return ResultUtil.error("支付金额异常,请刷新后重试"); - } + +// if(paymentCourseVo.getPayType() != 3 && paymentPrice.compareTo(paymentCourseVo.getPrice()) != 0&&paymentCourseVo.getCouponId()!=null){ +// return ResultUtil.error("支付金额异常,请刷新后重试"); +// } if(paymentCourseVo.getPayType() == 3 && playPaiCoin.compareTo(paymentCourseVo.getPrice()) != 0){ return ResultUtil.error("支付金额异常,请刷新后重试"); } @@ -846,7 +872,7 @@ if(null != couponId && paymentCourseVo.getPayType() != 3){ UserCoupon userCoupon = userCouponClient.queryUserCouponById(couponId); if(userCoupon.getStatus() == 2){ - return ResultUtil.error("优惠券已被核销"); + return ResultUtil.error("优惠券已被使用"); } Coupon coupon = couponClient.queryCouponById(userCoupon.getCouponId()); long time = coupon.getEndTime().getTime(); @@ -872,6 +898,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){//微信支付 @@ -1007,6 +1036,8 @@ return weixinpay; } + @Autowired + private TOrderService orderService; /** * 课程支付宝支付 @@ -1021,6 +1052,10 @@ String[] split = paymentCourseVo.getStudentIds().split(";"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); + List<Long> pays = new ArrayList<>(); + + int isContinue = 0; + for (String s : split) { // TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); // coursePackagePayment.setCode(code); @@ -1069,7 +1104,9 @@ } + if (coursePackagePaymentServiceOne==null) { + isContinue = 1; TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); coursePackagePayment.setCode(code); coursePackagePayment.setAppUserId(uid); @@ -1095,6 +1132,8 @@ sId = student.getId(); } + pays.add(coursePackagePayment.getId()); + // coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); // addPackageStudent(paymentCourseVo.getId(), uid, Integer.valueOf(s), coursePackagePayment.getId()); @@ -1107,6 +1146,9 @@ courseCounsum.setReason("购买课包"); courseCounsumService.save(courseCounsum); + + + if (hour!=0){ CourseCounsum courseCounsum1 = new CourseCounsum(); courseCounsum1.setPaymentId(coursePackagePayment.getId()); @@ -1118,19 +1160,31 @@ } + //保存订单 + + }else { + if (coursePackagePaymentServiceOne.getPayStatus()==1){ + isContinue = 1; + + } // 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(1); +// coursePackagePaymentServiceOne.setSalesName("续课"); + coursePackagePaymentServiceOne.setAppUserId(null); // coursePackagePaymentServiceOne.setPayStatus(2); -// coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); + coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); + pays.add(coursePackagePaymentServiceOne.getId()); + + // // Integer sId = null; // Student student = studentClient.queryDefaultStudent(uid); @@ -1152,6 +1206,25 @@ } } + + //新的订单添加 + if (paymentCourseVo.getOrderId()==null) { + TOrder order = new TOrder(); + order.setIsPay(1); + order.setPayType(1); + order.setAppUserId(uid); + order.setPrice(paymentPrice); + order.setCode(code); + + String paysStr = pays.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + order.setPaysId(paysStr); + + orderService.save(order); + + } + Student student = studentClient.queryDefaultStudent(uid); Integer sid=null; if(student!=null){ @@ -1161,10 +1234,13 @@ ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", student.getId().toString(), code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback"); if(alipay.getCode() == 200){ Integer finalSid = sid; + int finalIsContinue = isContinue; new Thread(new Runnable() { @Override public void run() { try { + Thread.sleep(1000); + int num = 1; int wait = 0; while (num <= 10){ @@ -1173,11 +1249,17 @@ 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); - if(one.getPayStatus() == 2){ + + List<TOrder> list1 = orderService.list(new QueryWrapper<TOrder>().eq("code", code).eq("payType", 1)); + TOrder order = list1.get(0); + + + AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); + if(order.getIsPay() == 2){ break; } - AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); - if( one.getPayStatus() == 1){ + + if(order.getIsPay() == 1){ /** * WAIT_BUYER_PAY(交易创建,等待买家付款)、 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 @@ -1188,7 +1270,8 @@ String tradeNo = alipayTradeQueryResponse.getTradeNo(); if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){ - for (TCoursePackagePayment coursePackagePayment : list) { + for (TCoursePackagePayment coursePackagePayment : list) { + coursePackagePayment.setStatus(3); } coursePackagePaymentService.updateBatchById(list); @@ -1201,9 +1284,20 @@ coursePackagePayment.setAppUserId(null); } + coursePackagePaymentService.updateBatchById(list); + + + for (TOrder tOrder : list1) { + tOrder.setIsPay(2); + tOrder.setOrderNum(tradeNo); + } + orderService.updateBatchById(list1); + + + for (String s1 : split) { - TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId", paymentCourseVo.getId())); - if (coursePackagePaymentServiceOne!=null) { + TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s1).eq("coursePackageId", paymentCourseVo.getId())); + if (finalIsContinue !=1) { TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("type",4).eq("coursePackageId", paymentCourseVo.getId()).last("limit 1")); @@ -1262,7 +1356,6 @@ } } - coursePackagePaymentService.updateBatchById(list); System.out.println("===========到达支付"); // 2.0 String[] coupons = coursePackagePaymentConfig.getCouponIds().split(","); @@ -1272,9 +1365,7 @@ userCouponClient.sendUserCoupon(new SendCouponReq(uid,coursePackagePaymentConfig.getCouponIds())); for (TCoursePackagePayment coursePackagePayment : list) { - addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentCourseVo.getPrice()); - - + addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentPrice); } moneyOut(tradeNo,tradeNo); @@ -1409,6 +1500,9 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); + List<Long> pays = new ArrayList<>(); + + TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId()); @@ -1487,6 +1581,8 @@ courseCounsumService.save(courseCounsum1); } + + pays.add(coursePackagePayment.getId()); }else{ coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()+hour); if (coursePackagePaymentServiceOne.getOriginalPrice()!=null) { @@ -1544,9 +1640,33 @@ } + pays.add(coursePackagePaymentServiceOne.getId()); + + + } } + + + if (paymentCourseVo.getOrderId()==null) { + TOrder order = new TOrder(); + order.setIsPay(1); + order.setPayType(2); + order.setAppUserId(appUser.getId()); + order.setPrice(paymentPrice); + order.setCode(code); + + String paysStr = pays.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + order.setPaysId(paysStr); + + orderService.save(order); + + } + + Integer playPaiCoins = appUser.getPlayPaiCoins(); appUser.setPlayPaiCoins(playPaiCoins - paymentPrice.intValue()); @@ -1632,7 +1752,10 @@ if (count == can) { break; } - int wei = DateUtil.dayOfWeek(date); + int wei = DateUtil.dayOfWeek(date)-1; + if (wei == 0){ + wei = 7; + } if (week.contains(wei)) { for (int i1 = 0; i1 < split.length; i1++) { if (count == can) { -- Gitblit v1.7.1