From 0b9f2eeb5e2ff7995f39d217e90a6c64e37366d4 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 17 六月 2024 15:32:44 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java | 105 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 76 insertions(+), 29 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 70a5210..58f439f 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 @@ -9,12 +9,17 @@ import com.alipay.api.response.AlipayTradeRefundResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.enums.OrderStatusEnum; +import com.ruoyi.common.core.enums.PointStatusEnum; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.order.domain.Paylog; +import com.ruoyi.order.mapper.OrderMapper; import com.ruoyi.order.mapper.PaylogMapper; +import com.ruoyi.order.service.IOrderService; import com.ruoyi.order.service.IPaylogService; import com.ruoyi.order.util.SinataUtil; import com.ruoyi.order.util.alipay.config.AlipayConfig; @@ -24,9 +29,13 @@ import com.ruoyi.order.util.tencent.common.XMLParser; import com.ruoyi.order.util.tencent.protocol.AppPayReqData; import com.ruoyi.order.util.tencent.protocol.UnifiedorderReqData; -import com.ruoyi.system.api.domain.dto.BondVO; +import com.ruoyi.system.api.domain.Order; import com.ruoyi.system.api.domain.dto.BondDTO; +import com.ruoyi.system.api.domain.dto.MemberPointsDTO; import com.ruoyi.system.api.domain.dto.RefundDTO; +import com.ruoyi.system.api.domain.dto.updMembeOneDTO; +import com.ruoyi.system.api.feignClient.AuctionClient; +import com.ruoyi.system.api.feignClient.MemberClient; import com.ruoyi.system.api.feignClient.OrderClient; import java.io.IOException; import java.io.PrintWriter; @@ -46,8 +55,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - -import com.ruoyi.system.api.feignClient.OrderClient; import org.springframework.stereotype.Service; /** @@ -61,31 +68,33 @@ @Service public class PaylogServiceImpl extends ServiceImpl<PaylogMapper, Paylog> implements IPaylogService { - @Resource - private PaylogServiceImpl paylogServiceImpl; + @Resource - private IPaylogService iPaylogService; + private OrderMapper OrderMapper; + @Resource + private AuctionClient auctionClient; @Resource - private OrderClient orderClient; + private MemberClient memberClient; @Override - public R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String subject, String body, String orderNO,String openId, HttpServletRequest request) { + public R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String orderNO,String openId, HttpServletRequest request) { Double price = 0.0; - + String subject; + String body; try { if(judgeContainsStr(orderNO)){ price= Double.valueOf(1); - body = body; - subject = subject; + body = " 订单支付"; + subject = " 订单支付"; Map<String, Object> map = new HashMap<String, Object>(); if (type == 1) { // 支付宝预下单 - return paylogServiceImpl.alipay(orderNO, subject, body, price, request); + return this.alipay(orderNO, subject, body, price, request); } else { // 微信预下单 - return paylogServiceImpl.wxpay(2, orderNO, body,openId, price, request); + return this.wxpay(2, orderNO, body,openId, price, request); } } } catch (Exception e) { @@ -135,15 +144,34 @@ try { LambdaQueryWrapper<Paylog> wrapper = Wrappers.lambdaQuery(); wrapper.eq(Paylog::getOutTradeNo,paylog1.getOutTradeNo()); - Paylog one = iPaylogService.getOne(wrapper); + Paylog one = this.getOne(wrapper); if(SinataUtil.isEmpty(one)) { - iPaylogService.save(paylog1); - if (paylog1.getOutTradeNo().contains("BO")) { + this.save(paylog1); BondDTO bondVO=new BondDTO(); bondVO.setOrderNO(paylog1.getOutTradeNo()); - orderClient.UpdateBond(bondVO, SecurityConstants.INNER); + auctionClient.UpdateBond(bondVO, SecurityConstants.INNER); - } + LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery(); + wrapper1.eq(Order::getOrderNo,paylog1.getOutTradeNo()); + wrapper1.eq(Order::getDelFlag,0); + Order page1 = OrderMapper.selectOne(wrapper1); + page1.setOrderStatus(OrderStatusEnum.GOODS_TO_BE_RECEIVED); + page1.setPayTime(LocalDateTime.now()); + OrderMapper.updateById(page1); + + 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); + } @@ -221,7 +249,7 @@ LambdaQueryWrapper<Paylog> wrapper = Wrappers.lambdaQuery(); wrapper.eq(Paylog::getOutTradeNo,out_trade_no); - Paylog one = iPaylogService.getOne(wrapper); + Paylog one = this.getOne(wrapper); if(SinataUtil.isEmpty(one)) { Paylog paylog = new Paylog(); paylog.setOutTradeNo(out_trade_no); @@ -232,14 +260,33 @@ paylog.setState(1); System.out.println("支付完成时间" + time_end); paylog.setAddTime(LocalDateTime.now()); - iPaylogService.save(paylog); - if (paylog.getOutTradeNo().contains("BO")) { - BondDTO bondVO=new BondDTO(); - bondVO.setOrderNO(paylog.getOutTradeNo()); - orderClient.UpdateBond(bondVO, SecurityConstants.INNER); + this.save(paylog); + BondDTO bondVO=new BondDTO(); - } + bondVO.setOrderNO(paylog.getOutTradeNo()); + auctionClient.UpdateBond(bondVO, SecurityConstants.INNER); + LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery(); + wrapper1.eq(Order::getOrderNo,paylog.getOutTradeNo()); + wrapper1.eq(Order::getDelFlag,0); + Order page1 = OrderMapper.selectOne(wrapper1); + page1.setOrderStatus(OrderStatusEnum.GOODS_TO_BE_RECEIVED); + page1.setPayTime(LocalDateTime.now()); + OrderMapper.updateById(page1); + + 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); log.debug("WxpayController.notify__回调处理成功:SUCCESS"); response.getOutputStream().print("success"); @@ -474,7 +521,7 @@ Set<String> orderNoList = refundDTOS.stream().map(RefundDTO::getOrderNo) .collect(Collectors.toSet()); if (StringUtils.isNotEmpty(orderNoList)) { - Map<String, Paylog> paylogMap = iPaylogService.lambdaQuery() + Map<String, Paylog> paylogMap = this.lambdaQuery() .in(Paylog::getOutTradeNo, orderNoList).eq(Paylog::getState, 1).list().stream() .collect(Collectors.toMap(Paylog::getOutTradeNo, Function.identity())); List<Paylog> updList = new ArrayList<>(); @@ -491,7 +538,7 @@ } }); } - iPaylogService.updateBatchById(updList); + this.updateBatchById(updList); } return map; } @@ -501,7 +548,7 @@ boolean res = false; if (StringUtils.isNotNull(paylog)) { if (paylog.getPayType() == 1) { - res = paylogServiceImpl.refundForAlipay(paylog.getOutTradeNo(), + res = this.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), amount.doubleValue()); } if (paylog.getPayType() == 2) { @@ -512,7 +559,7 @@ String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); Integer totalFee = Integer.parseInt( money.substring(0, money.length() - 3)); - res = paylogServiceImpl.refundForWxpay(2, paylog.getTradeNo(), + res = this.refundForWxpay(2, paylog.getTradeNo(), paylog.getOutTradeNo(), orderNo, totalFee, refundFee, "4"); } -- Gitblit v1.7.1