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); 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); 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(); } } 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); } 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 { 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){ 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;