bug
jiangqs
2023-08-18 0b413f3fd67110cfd7752f27eb171bde06edc4b4
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -5,9 +5,17 @@
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.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsRequest;
import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsResult;
import com.github.binarywang.wxpay.bean.ecommerce.RefundNotifyResult;
import com.github.binarywang.wxpay.bean.ecommerce.TransactionsResult;
import com.github.binarywang.wxpay.bean.ecommerce.enums.TradeTypeEnum;
import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyResult;
import com.github.binarywang.wxpay.config.WxPayConfig;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import com.google.common.base.Joiner;
import com.google.gson.Gson;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
@@ -52,7 +60,6 @@
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -119,11 +126,11 @@
    @Resource
    private PayRecordService payRecordService;
    @Autowired
    @Resource
    private RedissonClient redissonClient;
    /*@Autowired
    private WxPayService wxService;*/
    @Resource
    private WxPayService wxService;
    @Resource
    private PaymentMessageService paymentMessageService;
@@ -740,8 +747,8 @@
        appPlaceOrderVo.setOrderNo(orderNo);
        String goodsName = "";
        if (null != goods) {
            goodsName = goods.getGoodsName();
        if (null != goodsNameList) {
            goodsName = String.join(",", goodsNameList);
        }
        // 小程序微信下单支付
@@ -784,14 +791,14 @@
     * @param payerClientIp
     * @param goodsNameList
     */
    /*private void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
    public void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
                                 String goodsName, String orderNo,
                                 String orderId, BigDecimal payMoney,
                                 String openid, String payerClientIp, List<String> goodsNameList){
        try {
            // 创建支付订单
            R<String> resultMch = remoteShopService.getShopSubMchId(shopId);
            String subMchId = resultMch.getData();
            //R<String> resultMch = remoteShopService.getShopSubMchId(shopId);
            String subMchId = "1650744551";
            if (StringUtils.isEmpty(subMchId)) {
                throw new ServiceException("获取微信商户号失败");
            }
@@ -859,7 +866,7 @@
        } catch (WxPayException e) {
            throw new ServiceException(e.getMessage());
        }
    }*/
    }
    /**
@@ -1712,6 +1719,7 @@
        if (member.getBindingFlag() != 1) {
            AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
            appMemberBindingDto.setBindingFlag(1);
            appMemberBindingDto.setBindingType(4);
            appMemberBindingDto.setShopId(shop.getShopId());
            appMemberBindingDto.setShopName(shop.getShopName());
            appMemberBindingDto.setUserId(memberCoupon.getUserId());
@@ -1828,6 +1836,7 @@
        if (member.getBindingFlag() != 1) {
            AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
            appMemberBindingDto.setBindingFlag(1);
            appMemberBindingDto.setBindingType(5);
            appMemberBindingDto.setShopId(shop.getShopId());
            appMemberBindingDto.setShopName(shop.getShopName());
            appMemberBindingDto.setUserId(memberGiftRecord.getUserId());
@@ -1920,7 +1929,6 @@
                sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
                String password = "hongruitang";
                sysUser.setPassword(SecurityUtils.encryptPassword(password));
                log.debug("sysUser" + sysUser.toString());
                sysUser = remoteUserService.registerUser(sysUser).getData();
                member = new Member();
                member.setMemberId(memberId);
@@ -1929,6 +1937,7 @@
                member.setRealName(name);
                member.setNickName(name);
                member.setBindingFlag(1);
                member.setBindingType(3);
                member.setRelationShopId(shopId);
                member.setRelationShopName(shop.getShopName());
                remoteMemberService.createNewMember(member);
@@ -2188,6 +2197,7 @@
            appMemberBindingDto.setShopName(shop.getShopName());
            appMemberBindingDto.setUserId(userId);
            appMemberBindingDto.setBindingFlag(1);
            appMemberBindingDto.setBindingType(3);
            remoteMemberService.updateMemberBinding(appMemberBindingDto);
        }
        //更新商户统计
@@ -2217,10 +2227,12 @@
    @Override
    public List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto) {
        if (StringUtils.isNotBlank(merOrderPageDto.getKeyword())) {
            // 获取关键字对应的用户ID
            MgtUserIdByKeywordDto userIdByKeywordDto = new MgtUserIdByKeywordDto();
            userIdByKeywordDto.setKeyword(merOrderPageDto.getKeyword());
            MgtUserIdByKeywordVo userIdByKeywordVo = remoteMemberService.getUserIdByKeyword(userIdByKeywordDto).getData();
            if (StringUtils.isNotBlank(userIdByKeywordVo.getUserIds())) {
                // 将用户ID转换成List<Long>类型
                List<Long> userIdList = Arrays.stream(userIdByKeywordVo.getUserIds().split(","))
                        .map(Long::parseLong)
                        .collect(Collectors.toList());
@@ -2228,6 +2240,8 @@
                merOrderPageDto.setMemberUserId(null);
            }
        }
        // 获取订单列表
        List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerOrder(page, merOrderPageDto);
        if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) {
            Long userId;
@@ -2236,15 +2250,17 @@
            String orderFromDesc;
            BigDecimal zeroBig = new BigDecimal("0.00");
            StringJoiner userIdSj = new StringJoiner(",");
            // 遍历订单列表
            for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) {
                userId = merOrderPageVo.getUserId();
                userIdSj.add(userId.toString());
                orderFrom = merOrderPageVo.getOrderFrom();
                // 根据订单来源设置订单来源描述
                if (orderFrom != null) {
                    if (orderFrom == 1) {
                        orderFromDesc = "商城订单";
                    } else if(orderFrom == 2){
                        orderFromDesc = "店铺砍价活动("+merOrderPageVo.getActivityName()+")";
                    } else if (orderFrom == 2) {
                        orderFromDesc = "店铺砍价活动(" + merOrderPageVo.getActivityName() + ")";
                    } else {
                        orderFromDesc = "线下创建";
                    }
@@ -2252,18 +2268,22 @@
                    orderFromDesc = "商城订单";
                }
                merOrderPageVo.setOrderFromDesc(orderFromDesc);
                // 设置未支付金额为0.00,如果未支付金额小于0,则设置为0.00
                if (merOrderPageVo.getUnPaidMoney() == null) {
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }
                if(merOrderPageVo.getUnPaidMoney().compareTo(zeroBig)<0){
                if (merOrderPageVo.getUnPaidMoney().compareTo(zeroBig) < 0) {
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }
            }
            // 根据用户ID列表获取用户信息
            MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
            mgtBaseBathDto.setIds(userIdSj.toString());
            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
            Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
            // 遍历订单列表,设置用户信息
            for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) {
                if (merOrderPageVo.getUserId() != null && userMap.get(merOrderPageVo.getUserId()) != null) {
                    merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getRealName());