diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderItemDTO.java b/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderItemDTO.java index 67175832..dac88fd2 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderItemDTO.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderItemDTO.java @@ -55,4 +55,10 @@ public class MchOrderItemDTO implements Serializable { @ApiModelProperty(value = "商品规格描述") private String spec_info; + + @ApiModelProperty(value = "退货数量") + private Integer order_item_return_num; + + @ApiModelProperty(value = "退款金额:同意额度") + private BigDecimal order_item_return_agree_amount; } diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/controller/mobile/IndexController.java b/mall-pay/src/main/java/com/suisung/mall/pay/controller/mobile/IndexController.java index 3262469a..0938a9c0 100644 --- a/mall-pay/src/main/java/com/suisung/mall/pay/controller/mobile/IndexController.java +++ b/mall-pay/src/main/java/com/suisung/mall/pay/controller/mobile/IndexController.java @@ -198,7 +198,7 @@ public class IndexController extends BaseControllerImpl { } // todo $payment_channel_code 是否启用 - String payment_channel_code = getParameter("payment_channel_code");// payment_channel_code:wx_native, alipay + String payment_channel_code = getParameter("payment_channel_code");// payment_channel_code:wx_native, alipay, lakala if (StrUtil.isBlank(payment_channel_code)) { Integer payment_channel_id = Convert.toInt(getParameter("payment_channel_id")); PayPaymentChannel payPaymentChannel = payPaymentChannelService.get(payment_channel_id); diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java index 4da4e9a8..5eed110f 100644 --- a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java +++ b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java @@ -150,6 +150,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl requestParams, PayTypeBean payTypeBean) { + // 获取订单ID列表 List order_id_row = (List) requestParams.get("order_id_row"); QueryWrapper tradeQueryWrapper = new QueryWrapper<>(); tradeQueryWrapper.in("order_id", order_id_row); @@ -159,6 +160,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl 1) { @@ -174,9 +176,13 @@ public class PayUserPayServiceImpl extends BaseServiceImpl 0 && !StrUtil.equals(payment_channel_code, "offline")) { // 金额大于0且不是线下交易的情况 BigDecimal trade_payment_recharge_card = (BigDecimal) requestParams.get("trade_payment_recharge_card"); BigDecimal trade_payment_points = (BigDecimal) requestParams.get("trade_payment_points"); BigDecimal trade_payment_sp = (BigDecimal) requestParams.get("trade_payment_sp"); + // 检查是否有支付金额 if (CheckUtil.isNotEmpty(trade_payment_money) || CheckUtil.isNotEmpty(trade_payment_recharge_card) || CheckUtil.isNotEmpty(trade_payment_points) /*|| CheckUtil.isNotEmpty(trade_payment_sp)*/ /*|| CheckUtil.isNotEmpty(trade_payment_credit) || CheckUtil.isNotEmpty(trade_payment_redpack)*/) { // 判断支付密码 String password = (String) requestParams.get("password"); + // 如果有支付密码 if (StrUtil.isNotBlank(password)) { UserDto user = getCurrentUser(); BigDecimal trade_payment_credit = (BigDecimal) requestParams.get("trade_payment_credit"); BigDecimal trade_payment_redpack = (BigDecimal) requestParams.get("trade_payment_redpack"); + // 检查支付密码是否正确 checkPayPasswd(user.getId(), password); List _trade_rows = Convert.toList(Map.class, trade_rows); + // 处理线下支付 payConsumeTradeService.processOfflinePay(_trade_rows, trade_payment_money, trade_payment_recharge_card, trade_payment_points, trade_payment_credit, trade_payment_redpack, trade_payment_sp); trade_rows = payConsumeTradeService.find(tradeQueryWrapper); } } + // 创建新的交易记录 PayConsumeTrade trade_row = new PayConsumeTrade(); List trade_is_paids = trade_rows.stream().map(PayConsumeTrade::getTrade_is_paid).collect(Collectors.toList()); Integer trade_is_paid = trade_is_paids.contains(StateCode.ORDER_PAID_STATE_YES) ? StateCode.ORDER_PAID_STATE_YES : StateCode.ORDER_PAID_STATE_NO; trade_row.setTrade_is_paid(trade_is_paid); + // 获取订单ID列表 List trade_order_id_row = trade_rows.stream().map(PayConsumeTrade::getOrder_id).distinct().collect(Collectors.toList()); + // 如果有多个订单 if (trade_order_id_row.size() > 1) { // 生成联合支付 PayConsumeTradeCombine consume_trade_combine_row = new PayConsumeTradeCombine(); consume_trade_combine_row.setOrder_ids(CollUtil.join(trade_order_id_row, ",")); + // 添加联合支付记录 payConsumeTradeCombineService.addTradeCombine(consume_trade_combine_row); String ctc_id = consume_trade_combine_row.getCtc_id(); if (StrUtil.isBlank(ctc_id)) { @@ -247,20 +265,31 @@ public class PayUserPayServiceImpl extends BaseServiceImpl trade_titles = trade_rows.stream().map(PayConsumeTrade::getTrade_title).distinct().collect(Collectors.toList()); trade_row.setTrade_title(CollUtil.join(trade_titles, ",")); // 多条付款金额累加 BigDecimal payment_amount = trade_rows.stream().map(PayConsumeTrade::getTrade_payment_amount).reduce(BigDecimal::add).get(); trade_row.setTrade_payment_amount(payment_amount); + // 如果支付金额大于0 if (payment_amount.compareTo(BigDecimal.ZERO) > 0) { + + // update 2025-07-30 为什么不给真正的订单标题,我暂时注释了 // 订单金额大于0的情况 - List order_state_ids = trade_rows.stream().map(PayConsumeTrade::getOrder_state_id).distinct().collect(Collectors.toList()); - if (!order_state_ids.contains(StateCode.ORDER_STATE_CANCEL)) { - trade_row.setTrade_title(I18nUtil._("在线购物")); - trade_row.setTrade_desc(I18nUtil._("在线购物")); +// List order_state_ids = trade_rows.stream().map(PayConsumeTrade::getOrder_state_id).distinct().collect(Collectors.toList()); +// // 如果订单状态不是取消状态 +// if (!order_state_ids.contains(StateCode.ORDER_STATE_CANCEL)) { +// trade_row.setTrade_title(I18nUtil._("在线购物")); +// trade_row.setTrade_desc(I18nUtil._("在线购物")); +// } + + if (StrUtil.isBlank(trade_row.getTrade_title())) { + trade_row.setTrade_title("小发同城线上超市商品"); + trade_row.setTrade_desc("小发同城线上超市商品"); } + // 设置店铺ID if (CollUtil.isNotEmpty(trade_rows)) { trade_row.setStore_id(trade_rows.get(0).getStore_id());//店铺ID } @@ -284,6 +313,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl payUserResourceList) { - boolean result=false; - if(!payUserResourceList.isEmpty()){ + boolean result = false; + if (!payUserResourceList.isEmpty()) { try { - result=payUserResourceService.saveBatch(payUserResourceList,payUserResourceList.size()); - }catch (RuntimeException e){ - throw new ApiException("保存saveBatchPayUserResources报错:"+e.getMessage()); + result = payUserResourceService.saveBatch(payUserResourceList, payUserResourceList.size()); + } catch (RuntimeException e) { + throw new ApiException("保存saveBatchPayUserResources报错:" + e.getMessage()); } } - if(result){ + if (result) { return new ThirdApiRes().success("批量保存成功"); } - return new ThirdApiRes().fail(250,"批量保存失败"); + return new ThirdApiRes().fail(250, "批量保存失败"); } } diff --git a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml index 25c80256..7df85224 100644 --- a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml +++ b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml @@ -633,6 +633,8 @@ + + @@ -791,6 +793,9 @@ oit.order_item_quantity, oit.item_unit_price, oit.order_item_amount, + IF(oit.order_item_return_num > 0, oit.order_item_return_num, 0) AS order_item_return_num, + IF(oit.order_item_return_agree_amount > 0, oit.order_item_return_agree_amount, 0.00) AS + order_item_return_agree_amount, spi.item_barcode, oit.order_item_image, oit.spec_info,