From 564cf34a6fb2447515e61c3cc698faea2c4fb08d Mon Sep 17 00:00:00 2001 From: rentaiming <806181662@qq.com> Date: 星期日, 09 六月 2024 21:23:07 +0800 Subject: [PATCH] 用户端 商品 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java | 105 +++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 83 insertions(+), 22 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 4731fc4..1297b6c 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.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,14 +68,16 @@ @Service public class PaylogServiceImpl extends ServiceImpl<PaylogMapper, Paylog> implements IPaylogService { - @Resource - private PaylogServiceImpl paylogServiceImpl; + @Resource - private IPaylogService iPaylogService; + private OrderMapper OrderMapper; @Resource - private OrderClient orderClient; + private AuctionClient auctionClient; + + @Resource + private MemberClient memberClient; @Override public R<Map<String, Object>> getPayInfo(Integer uid, Integer type, String subject, String body, String orderNO,String openId, HttpServletRequest request) { @@ -82,10 +91,10 @@ 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,13 +144,40 @@ try { LambdaQueryWrapper<Paylog> wrapper = Wrappers.lambdaQuery(); wrapper.eq(Paylog::getOutTradeNo,paylog1.getOutTradeNo()); - Paylog one = iPaylogService.getOne(wrapper); - if(SinataUtil.isEmpty(one)) { - iPaylogService.save(paylog1); + Paylog paylog = this.getOne(wrapper); + if(SinataUtil.isEmpty(paylog)) { + this.save(paylog1); if (paylog1.getOutTradeNo().contains("BO")) { BondDTO bondVO=new BondDTO(); bondVO.setOrderNO(paylog1.getOutTradeNo()); - orderClient.UpdateBond(bondVO, SecurityConstants.INNER); + auctionClient.UpdateBond(bondVO, SecurityConstants.INNER); + + }else{ + 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); + 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 +257,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,15 +268,40 @@ paylog.setState(1); System.out.println("支付完成时间" + time_end); paylog.setAddTime(LocalDateTime.now()); - iPaylogService.save(paylog); + this.save(paylog); if (paylog.getOutTradeNo().contains("BO")) { BondDTO bondVO=new BondDTO(); bondVO.setOrderNO(paylog.getOutTradeNo()); - orderClient.UpdateBond(bondVO, SecurityConstants.INNER); + auctionClient.UpdateBond(bondVO, SecurityConstants.INNER); + + }else{ + 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); + 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 +535,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 +552,7 @@ } }); } - iPaylogService.updateBatchById(updList); + this.updateBatchById(updList); } return map; } @@ -501,7 +562,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 +573,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