rentaiming
2024-07-10 b29becf95484be48aa09e87fcc7cc19f94cf9c81
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
@@ -48,6 +48,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 +97,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 +213,7 @@
                }
                }*/
                if (orderNO.contains("BO")) {
                    LambdaQueryWrapper<OrderAuctionBond> wrapper1= Wrappers.lambdaQuery();
@@ -192,7 +244,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,page1.getOrderTimeSx(), orderNO, body,openId, price, request);
                    }
                }
@@ -518,7 +570,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,LocalDateTime  sx,String outTradeNo, String body,String openId, Double price,
                                               HttpServletRequest request) {
        // 获取预支付接口返回参数
        Map<String, Object> map1 = new HashMap<String, Object>();
@@ -558,6 +610,10 @@
            paraMap.put("body", body);
            //设置请求参数(商户订单号)
            paraMap.put("out_trade_no", outTradeNo);
            if (sx!=null){
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
                paraMap.put("time_expire",sx.format(formatter));
            }
            //设置请求参数(总金额)
            String money=SinataUtil.doubleRetainTwo(price*100d);