From 31267d9b3a33c8b3fbb1b9f810ab08e01c49b846 Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期二, 16 七月 2024 19:12:28 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java | 73 +++++++++++++++++++++++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java | 7 ++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java | 4 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java | 4 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 32 ++-------- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 11 ++- 7 files changed, 100 insertions(+), 33 deletions(-) diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java index d1b9ddf..bf73784 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java @@ -571,22 +571,15 @@ throw new ServiceException("当前拍卖场中标拍品订单未完成,请完成后再试。"); } // 远程调用订单服务进行退款 - Map<String, Object> data = orderClient.refund(refundDTOList, - SecurityConstants.INNER).getData(); + orderClient.refund1(refundDTO, SecurityConstants.INNER).getData(); // 处理退款返回结果 List<String> successfulOrders = new ArrayList<>(); List<String> failedOrders = new ArrayList<>(); - data.forEach((key, value) -> { - if ((boolean) value) { - successfulOrders.add(key); - } else { - failedOrders.add(key); - } - }); - // 退款成功的订单修改状态 - List<Long> ids = new ArrayList<>(); + + List<Long> ids=new ArrayList<>(); ids.add(orderAuctionBond.getId()); + // 远程调用订单服务修改订单状态 orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.REFUNDED,SecurityConstants.INNER); @@ -596,6 +589,7 @@ RefundDTO refundDTO = new RefundDTO(); refundDTO.setOrderNo(orderAuctionBond.getOrderNo()); refundDTO.setAmount(orderAuctionBond.getBond()); + refundDTOList.add(refundDTO); LambdaQueryWrapper<AuctionBidRecord> wrapper = Wrappers.lambdaQuery(); wrapper.eq(AuctionBidRecord::getTargetId, memberAuctionSalesroomBondDTO.getAuctionGoodsId()); @@ -608,21 +602,11 @@ } // 远程调用订单服务进行退款 - Map<String, Object> data = orderClient.refund(refundDTOList, + orderClient.refund1(refundDTO, SecurityConstants.INNER).getData(); - // 处理退款返回结果 - List<String> successfulOrders = new ArrayList<>(); - List<String> failedOrders = new ArrayList<>(); - data.forEach((key, value) -> { - if ((boolean) value) { - successfulOrders.add(key); - } else { - failedOrders.add(key); - } - }); - // 退款成功的订单修改状态 - List<Long> ids = new ArrayList<>(); + + List<Long> ids=new ArrayList<>(); ids.add(orderAuctionBond.getId()); // 远程调用订单服务修改订单状态 orderClient.updateOrderAuctionBondStatus(ids,BondStatusEnum.REFUNDED,SecurityConstants.INNER); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java index 82e9d2e..fb62e3e 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java @@ -143,7 +143,7 @@ LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery(); wrapper.eq(OrderAuctionBond::getMemberId,memberAuctionSalesroomBondDTO.getMemberId()); wrapper.eq(OrderAuctionBond::getAuctionGoodsId,memberAuctionSalesroomBondDTO.getAuctionGoodsId()); - wrapper.eq(OrderAuctionBond::getBoundStatus,1); + wrapper.eq(OrderAuctionBond::getBondType,1); wrapper.eq(OrderAuctionBond::getDelFlag,0); OrderAuctionBond one = iOrderAuctionBondService.getOne(wrapper); return R.ok(one); @@ -158,7 +158,7 @@ LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery(); wrapper.eq(OrderAuctionBond::getMemberId,memberAuctionSalesroomBondDTO.getMemberId()); wrapper.eq(OrderAuctionBond::getAuctionSalesroomId,memberAuctionSalesroomBondDTO.getAuctionSalesroomId()); - wrapper.eq(OrderAuctionBond::getBoundStatus,2); + wrapper.eq(OrderAuctionBond::getBondType,2); wrapper.eq(OrderAuctionBond::getDelFlag,0); OrderAuctionBond one = iOrderAuctionBondService.getOne(wrapper); return R.ok(one); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java index 83eb4f4..ac94f0d 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java @@ -29,4 +29,11 @@ public R<Map<String, Object>> refund(@RequestBody List<RefundDTO> refundDTOS) { return R.ok(paylogService.refund(refundDTOS)); } + + @InnerAuth + @PostMapping("/refund-batch1") + public R refund(@RequestBody RefundDTO refundDTOS) { + paylogService.refund1(refundDTOS); + return R.ok(); + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java index 621b644..3152b76 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java @@ -43,4 +43,6 @@ void wxnotify(HttpServletRequest request, HttpServletResponse response); Map<String, Object> refund(List<RefundDTO> refundDTOS); + + void refund1(RefundDTO refundDTOS); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java index a67f809..e98266a 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java @@ -148,7 +148,7 @@ orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId()); orderAuctionBond.setBond(data.getBond()); orderAuctionBond.setBoundStatus(BondStatusEnum.PAID); - orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS); + orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY); this.save(orderAuctionBond); payInfoVO.setOrderNO(orderAuctionBond.getOrderNo()); payInfoVO.setType(0); @@ -163,7 +163,7 @@ orderAuctionBond.setBond(data.getBond()); orderAuctionBond.setOrderTimeSx(data.getEndTime()); orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY); - orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS); + orderAuctionBond.setBondType(AuctionOrderTypeEnum.REGULAR_ITEMS); if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) { orderAuctionBond.setPaymentMethod(PaymentMethodEnum.WECHAT); } else { diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index 595a1a4..aab1f9b 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -7,6 +7,7 @@ import com.google.common.collect.Lists; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; import com.ruoyi.common.core.enums.AuditStatusEnum; import com.ruoyi.common.core.enums.BondStatusEnum; @@ -121,6 +122,7 @@ @Resource private GoodsSkuClient GoodsSkuClient; + @Override @@ -381,8 +383,6 @@ memberOrderVO.setYouhiPrice(data.getGroupPurchasePrice()); pice=data.getGroupPurchasePrice(); - - order.setSkuName(goodsSku.getSkuName()); order.setPrice(data.getGroupPurchasePrice()); order.setCoverPic(goodsSku.getCoverPic()); @@ -412,6 +412,11 @@ order.setReceiverCity(data.getReceiverCity()); order.setReceiverDetailAddress(data.getDetailedAddress()); order.setReceiverPhone(data.getRecipientPhone()); + + memberOrderVO.setReceiverName(data.getRecipientName()); + memberOrderVO.setReceiverCity(data.getReceiverCity()); + memberOrderVO.setReceiverDetailAddress(data.getDetailedAddress()); + memberOrderVO.setReceiverphone(data.getRecipientPhone()); } order.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); @@ -687,7 +692,7 @@ Page<Order> page = new Page<>(memberOrderListDTO.getPageCurr(), memberOrderListDTO.getPageSize()); LambdaQueryWrapper<Order> wrapper= Wrappers.lambdaQuery(); wrapper.eq(Order::getMemberId,memberOrderListDTO.getMemberId()); - if(memberOrderListDTO.getGoodsSkuName()!=null){ + if(memberOrderListDTO.getGoodsSkuName()!=null&&memberOrderListDTO.getGoodsSkuName()!=""){ wrapper.like(Order::getSkuName,memberOrderListDTO.getGoodsSkuName()); } if(memberOrderListDTO.getOrderNo()!=null){ 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 f0bb94d..a5c6bde 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 @@ -89,6 +89,9 @@ @Resource private GoodsSkuClient goodsSkuClient; + @Resource + private PaylogMapper paylogMapper; + @Override public R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String orderNO,String openId, HttpServletRequest request) { Double price = 0.0; @@ -96,8 +99,6 @@ String body; try { if(judgeContainsStr(orderNO)){ - - if (orderNO.contains("BO")) { LambdaQueryWrapper<OrderAuctionBond> wrapper1= Wrappers.lambdaQuery(); wrapper1.eq(OrderAuctionBond::getOrderNo,orderNO); @@ -106,6 +107,14 @@ one1.setBoundStatus(BondStatusEnum.PAID); one1.setPaymentMethod(PaymentMethodEnum.WECHAT); orderAuctionBondMapper.updateById(one1); + + if (one1.getBond().compareTo(new BigDecimal(0))==0){ + one1.setBoundStatus(BondStatusEnum.PAID); + Map<String, Object> returnMap = new HashMap<>(); + returnMap.put("Type",1); + return R.ok(returnMap); + } + }else{ LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery(); @@ -356,6 +365,26 @@ goodsSku.setSoldQuantity(page1.getGoodsQuantity()); goodsSkuClient.updGoodsSeckill1(goodsSku, SecurityConstants.INNER); } + + if(page1.getOrderNo().contains("TG")){ + GoodsGroupPurchase goodsSeckiGoodsGroupPurchaseOne = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(page1.getGoodsSkuId(), SecurityConstants.INNER).getData(); + GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo(page1.getGoodsSkuId(), SecurityConstants.INNER).getData(); + if (goodsSeckiGoodsGroupPurchaseInfo!=null){ + goodsSkuClient.updgoodsGroupPurchaseInfo(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); + page1.setGroupNo(goodsSeckiGoodsGroupPurchaseInfo.getMubre()); + }else{ + UUID uuid = UUID.randomUUID(); + GoodsGroupPurchaseInfo goodsGroupPurchaseInfo=new GoodsGroupPurchaseInfo(); + goodsGroupPurchaseInfo.setGroupSize(goodsSeckiGoodsGroupPurchaseOne.getGroupSize()); + goodsGroupPurchaseInfo.setCurrentNumber(1); + goodsGroupPurchaseInfo.setMubre(uuid.toString()); + goodsGroupPurchaseInfo.setGroupPurchaseId(page1.getGoodsSkuId()); + goodsGroupPurchaseInfo.setGroupStatus(0); + goodsSkuClient.updgoodsGroupPurchaseInfo(goodsGroupPurchaseInfo, SecurityConstants.INNER); + page1.setGroupNo(uuid.toString()); + } + } + page1.setOrderStatus(OrderStatusEnum.TO_BE_SHIPPED); page1.setPayTime(LocalDateTime.now()); OrderMapper.updateById(page1); @@ -878,6 +907,46 @@ return map; } + @Override + public void refund1(RefundDTO refundDTOS) { + + LambdaQueryWrapper<Paylog> paylogEntityWrapper = Wrappers.lambdaQuery(); + paylogEntityWrapper.eq(Paylog::getOutTradeNo, refundDTOS.getOrderNo()); + Paylog paylog = paylogMapper.selectOne(paylogEntityWrapper); + + + if (paylog.getPayType() ==1) {//支付宝 + //获取支付信息 + + if (paylog != null) { + boolean bo = this.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), paylog.getPayMoney()); + if (!bo) { + System.out.println("支付宝退款失败"); + } + } + + } else if (paylog.getPayType() ==2) {//微信 + //获取支付信息 + if (paylog != null) { + 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(refundDTOS.getOrderNo()); + String ma = m.replaceAll("").trim(); + boolean bo = this.refundForWxpay(4, paylog.getTradeNo(), paylog.getOutTradeNo(), "R" + ma, totalFee, refundFee, "2"); + if (!bo) { + System.out.println("微信退款失败"); + } + + } + } + } + private Boolean handleRefund(Paylog paylog, BigDecimal amount, String orderNo) { boolean res = false; -- Gitblit v1.7.1