微信订单管理更新
This commit is contained in:
parent
c7ebd82d64
commit
334f0c70d9
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -150,6 +150,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
|
||||
@GlobalTransactional
|
||||
public void pay(HttpServletRequest request, HttpServletResponse response, Map<String, Object> requestParams, PayTypeBean payTypeBean) {
|
||||
|
||||
// 获取订单ID列表
|
||||
List<String> order_id_row = (List<String>) requestParams.get("order_id_row");
|
||||
QueryWrapper<PayConsumeTrade> tradeQueryWrapper = new QueryWrapper<>();
|
||||
tradeQueryWrapper.in("order_id", order_id_row);
|
||||
@ -159,6 +160,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
|
||||
// 判断是门店 店铺 平台
|
||||
Integer payment_store_id = 0;
|
||||
Integer payment_chain_id = 0;
|
||||
// String orderTitle = I18nUtil._("在线购物");
|
||||
if (!accountBaseConfigService.getTradeModePlantform()) {
|
||||
// 不可以联合支付。
|
||||
if (order_id_row.size() > 1) {
|
||||
@ -174,9 +176,13 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
|
||||
} else {
|
||||
payment_chain_id = payConsumeTrade.getChain_id();
|
||||
}
|
||||
|
||||
// orderTitle = payConsumeTrade.getTrade_title();
|
||||
}
|
||||
|
||||
// 获取支付渠道编码
|
||||
String payment_channel_code = (String) requestParams.get("payment_channel_code");
|
||||
// 如果是线下支付
|
||||
if (CollUtil.isNotEmpty(trade_rows) && StrUtil.equals(payment_channel_code, "offline")) {
|
||||
// 线下支付,修改线下支付状态
|
||||
ShopOrderInfo shopOrderInfo = new ShopOrderInfo();
|
||||
@ -185,6 +191,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
|
||||
Map params = new HashMap();
|
||||
params.put("order_ids", order_id_row);
|
||||
params.put("payment_type_id", StateCode.PAYMENT_TYPE_OFFLINE);
|
||||
// 修改订单支付方式为线下支付
|
||||
if (!shopService.editOrderPaymentTypeByIds(params)) {
|
||||
throw new ApiException(I18nUtil._("修改线下支付状态失败!"));
|
||||
}
|
||||
@ -193,49 +200,60 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
|
||||
Integer order_state_id = StateCode.ORDER_STATE_WAIT_PAY;
|
||||
Integer order_next_state_id = StateCode.ORDER_STATE_PICKING;
|
||||
|
||||
// 修改订单状态为待发货
|
||||
if (!shopService.editNextState(order_id_row, payment_store_id, order_state_id, order_next_state_id)) {
|
||||
throw new ApiException(I18nUtil._("修改订单为待发货状态失败!"));
|
||||
}
|
||||
}
|
||||
|
||||
// 获取现金支付金额
|
||||
BigDecimal trade_payment_money = (BigDecimal) requestParams.get("trade_payment_money");
|
||||
|
||||
// 总待支付金额
|
||||
BigDecimal trade_payment_amount = trade_rows.stream().map(PayConsumeTrade::getTrade_payment_amount).reduce(BigDecimal::add).get();
|
||||
// 如果支付金额大于0且不是线下支付
|
||||
if (trade_payment_amount.compareTo(BigDecimal.ZERO) > 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<Map> _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<Integer> 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<String> 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<PayUserPayMapper, Pay
|
||||
trade_row.setOrder_id(CollUtil.join(trade_order_id_row, ","));
|
||||
}
|
||||
|
||||
// 获取订单标题列表
|
||||
List<String> 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<Integer> 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<Integer> 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<PayUserPayMapper, Pay
|
||||
}
|
||||
}
|
||||
|
||||
// 根据支付类型返回结果
|
||||
toResultByPayType(response, order_id_row.get(0), payTypeBean);
|
||||
}
|
||||
|
||||
@ -1772,18 +1802,18 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
|
||||
@Override
|
||||
@Transactional
|
||||
public ThirdApiRes saveBatchPayUserResources(List<PayUserResource> 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, "批量保存失败");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -633,6 +633,8 @@
|
||||
<result property="item_barcode" column="item_barcode"/>
|
||||
<result property="order_item_image" column="order_item_image"/>
|
||||
<result property="spec_info" column="spec_info"/>
|
||||
<result property="order_item_return_num" column="order_item_return_num"/>
|
||||
<result property="order_item_return_agree_amount" column="order_item_return_agree_amount"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
@ -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,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user