From a0e041cef9d0cb1c340e5341939901b229a2de01 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 12 七月 2024 10:56:48 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java | 81 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 78 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java index 47dfb0e..a276ee2 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java @@ -18,6 +18,7 @@ import com.ruoyi.common.core.enums.OrderStatusEnum; import com.ruoyi.common.core.enums.PaymentMethodEnum; import com.ruoyi.common.core.enums.PointStatusEnum; +import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.order.domain.Paylog; import com.ruoyi.order.mapper.OrderAuctionBondMapper; @@ -48,6 +49,7 @@ import java.io.*; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.function.Function; import java.util.regex.Matcher; @@ -96,7 +98,58 @@ String body; try { if(judgeContainsStr(orderNO)){ + + if (orderNO.contains("BO")) { + LambdaQueryWrapper<OrderAuctionBond> wrapper1= Wrappers.lambdaQuery(); + wrapper1.eq(OrderAuctionBond::getOrderNo,orderNO); + wrapper1.eq(OrderAuctionBond::getDelFlag,0); + OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1); + one1.setBoundStatus(BondStatusEnum.PAID); + one1.setPaymentMethod(PaymentMethodEnum.WECHAT); + orderAuctionBondMapper.updateById(one1); + + }else{ + LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery(); + wrapper1.eq(Order::getOrderNo,orderNO); + wrapper1.eq(Order::getDelFlag,0); + Order page1 = OrderMapper.selectOne(wrapper1); + page1.setOrderStatus(OrderStatusEnum.TO_BE_SHIPPED); + page1.setPaymentMethod(PaymentMethodEnum.WECHAT); + page1.setPayTime(LocalDateTime.now()); + OrderMapper.updateById(page1); + + if(page1.getOrderNo().contains("SP")){ + GoodsSku goodsSku =new GoodsSku(); + goodsSku.setId(page1.getGoodsSkuId()); + goodsSku.setSoldQuantity(page1.getGoodsQuantity()); + GoodsSkuClient.updGoods(goodsSku, SecurityConstants.INNER); + } + + if(page1.getOrderNo().contains("MS")){ + GoodsSku goodsSku =new GoodsSku(); + goodsSku.setId(page1.getGoodsSkuId()); + goodsSku.setSoldQuantity(page1.getGoodsQuantity()); + GoodsSkuClient.updGoodsSeckill1(goodsSku, SecurityConstants.INNER); + } + + MemberPointsDTO memberPointsDTO=new MemberPointsDTO(); + memberPointsDTO.setMemberId(page1.getMemberId()); + memberPointsDTO.setPointsType(1); + memberPointsDTO.setPointsStatus(PointStatusEnum.INCREASE); + memberPointsDTO.setPoints(page1.getPoints()); + memberClient.addMemberPoints(memberPointsDTO); + updMembeOneDTO MembeOneDTO=new updMembeOneDTO(); + MembeOneDTO.setType(1); + MembeOneDTO.setMemberId(page1.getMemberId()); + MembeOneDTO.setMoney(page1.getTotalAmount()); + MembeOneDTO.setTotalPoints(page1.getPoints()); + memberClient.updMembeOne(MembeOneDTO, SecurityConstants.INNER); + } + + + + /*if (orderNO.contains("BO")) { LambdaQueryWrapper<OrderAuctionBond> wrapper1= Wrappers.lambdaQuery(); wrapper1.eq(OrderAuctionBond::getOrderNo,orderNO); wrapper1.eq(OrderAuctionBond::getDelFlag,0); @@ -161,7 +214,7 @@ - } + }*/ if (orderNO.contains("BO")) { LambdaQueryWrapper<OrderAuctionBond> wrapper1= Wrappers.lambdaQuery(); @@ -176,7 +229,7 @@ return this.alipay(orderNO, subject, body, price, request); } if (type == 2){ // 微信预下单 - return this.wxpay(2, orderNO, body, openId, price, request); + return this.wxpay(2 ,orderNO, body, openId, price, request); } }else{ LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery(); @@ -253,8 +306,16 @@ wrapper1.eq(OrderAuctionBond::getOrderNo,paylog1.getOutTradeNo()); wrapper1.eq(OrderAuctionBond::getDelFlag,0); OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1); + + if (one1.getOrderTimeSx().isAfter(LocalDateTime.now())){ + boolean bo = refundForAlipay(paylog1.getOutTradeNo(), paylog1.getTradeNo(), paylog1.getPayMoney()); + } + + one1.setBoundStatus(BondStatusEnum.PAID); orderAuctionBondMapper.updateById(one1); + + }else{ LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery(); wrapper1.eq(Order::getOrderNo,paylog1.getOutTradeNo()); @@ -382,6 +443,20 @@ wrapper1.eq(OrderAuctionBond::getOrderNo,paylog.getOutTradeNo()); wrapper1.eq(OrderAuctionBond::getDelFlag,0); OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1); + if (one1.getOrderTimeSx().isAfter(LocalDateTime.now())){ + String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); + Integer refundFee = Integer.parseInt(refundMoney.substring(0, refundMoney.length() - 3)); + String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); + Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3)); + refundFee = Integer.parseInt(money.substring(0, money.length() - 3)); + + String regEx = "[^0-9]"; + Pattern p = Pattern.compile(regEx); + Matcher m = p.matcher(paylog.getOutTradeNo()); + String ma = m.replaceAll("").trim(); + refundForWxpay(4, paylog.getTradeNo(), paylog.getOutTradeNo(), "R" + ma, totalFee, refundFee, "2"); + } + one1.setBoundStatus(BondStatusEnum.PAID); one1.setPaymentMethod(PaymentMethodEnum.WECHAT); orderAuctionBondMapper.updateById(one1); @@ -518,7 +593,7 @@ * @param request * @return */ - public static R<Map<String, Object>> wxpay(Integer apptype, String outTradeNo, String body,String openId, Double price, + public static R<Map<String, Object>> wxpay(Integer apptype,String outTradeNo, String body,String openId, Double price, HttpServletRequest request) { // 获取预支付接口返回参数 Map<String, Object> map1 = new HashMap<String, Object>(); -- Gitblit v1.7.1