puzhibing
2023-10-13 e31a75558bd7b8ac200194d11d181d0c6e319aa9
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -906,6 +906,56 @@
    }
    /**
     * 小程序支付下单API
     * @param appPlaceOrderVo
     * @param userId
     * @param shopId
     * @param goodsName
     * @param outTradeNo
     * @param orderId
     * @param payMoney
     * @param openid
     * @param payerClientIp
     */
    private void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
                                 String goodsName, String outTradeNo,
                                 String orderId, BigDecimal payMoney,
                                 String openid, String payerClientIp){
        try {
            // 支付相关信息返回
            appPlaceOrderVo.setAppId(result.getAppId());
            appPlaceOrderVo.setMchId(config.getMchId());
            appPlaceOrderVo.setTimeStamp(result.getTimeStamp());
            appPlaceOrderVo.setNonceStr(result.getNonceStr());
            appPlaceOrderVo.setPackageStr(result.getPackageValue());
            appPlaceOrderVo.setSignType(result.getSignType());
            appPlaceOrderVo.setPaySign(result.getPaySign());
            appPlaceOrderVo.setPrepayId(result.getPackageValue());
            // 保存支付订单统一下单日志
            paymentMessageService.savePaymentMessage("1", orderId, payRequestJson, payResponseJson);
            // 保存支付订单统一下单支付记录
            orderPaymentService.saveOrderPayment(userId, shopId, mainMchId, orderId, outTradeNo, payMoney,
                    appPlaceOrderVo.getEndTime(), "Y", openid,
                    goodsName, result.getPackageValue());
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    /**
     * @param appPlaceActivityDto
     * @return AppPlaceOrderVo
@@ -1988,29 +2038,37 @@
        MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo();
        // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象
        List<Goods> goodsList = verifyCouponGetVo.getGoodsList();
        String relGoodsIds = memberCoupon.getRelGoodsIds();
        String[] relGoodsIdArr = relGoodsIds.split(",");
        if(relGoodsIdArr.length!=goodsList.size()){
            throw new ServiceException(AppErrorConstant.GOODS_DOWN);
        }
        merVerifyCouponVo.setUserName(member.getRealName());
        merVerifyCouponVo.setUserMobile(member.getMobile());
        merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom());
        merVerifyCouponVo.setCouponName(memberCoupon.getCouponName());
        merVerifyCouponVo.setCreateTime(memberCoupon.getReceiveTime());
        // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性
        List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream()
                .map(goods -> {
                    MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo();
                    merCouponGoods.setGoodsId(goods.getGoodsId());
                    merCouponGoods.setGoodsName(goods.getGoodsName());
                    if (goods.getGoodsType() == 1) {
                        merCouponGoods.setGoodsType("周期");
                    } else if (goods.getGoodsType() == 2) {
                        merCouponGoods.setGoodsType("服务");
                    } else if (goods.getGoodsType() == 3) {
                        merCouponGoods.setGoodsType("体验");
                    } else if (goods.getGoodsType() == 4) {
                        merCouponGoods.setGoodsType("单品");
                    }
                    // 设置其他属性
                    return merCouponGoods;
                }).collect(Collectors.toList());
        List<MerCouponGoodsListVo> merCouponGoodsList = new ArrayList<>();
        MerCouponGoodsListVo merCouponGoods;
        for(Goods goods : goodsList){
            if(goods.getGoodsStatus()!=1){
                throw new ServiceException(AppErrorConstant.GOODS_DOWN);
            }
            merCouponGoods = new MerCouponGoodsListVo();
            merCouponGoods.setGoodsId(goods.getGoodsId());
            merCouponGoods.setGoodsName(goods.getGoodsName());
            if (goods.getGoodsType() == 1) {
                merCouponGoods.setGoodsType("周期");
            } else if (goods.getGoodsType() == 2) {
                merCouponGoods.setGoodsType("服务");
            } else if (goods.getGoodsType() == 3) {
                merCouponGoods.setGoodsType("体验");
            } else if (goods.getGoodsType() == 4) {
                merCouponGoods.setGoodsType("单品");
            }
            merCouponGoodsList.add(merCouponGoods);
        }
        // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList
        merVerifyCouponVo.setGoodsList(merCouponGoodsList);
        //生成服务
@@ -2266,6 +2324,9 @@
            SysUser sysUser;
            if (member != null) {
                sysUser = remoteUserService.getSysUser(member.getUserId()).getData();
                if(member.getBindingFlag()==1&&!member.getRelationShopId().equals(merNewOrderDto.getShopId())){
                    throw new ServiceException(AppErrorConstant.USER_BINDING_ERROR);
                }
            } else {
                //创建新用户
                String memberId = IdUtils.simpleUUID();