|
@@ -975,34 +975,42 @@ public class SubmitServiceImpl implements SubmitService {
|
|
|
if (3 != orderParamBo.getCartType()) {
|
|
|
// 部收款待发货
|
|
|
mainOrder.setStatus(21);
|
|
|
+ //非协销下单,直接扣
|
|
|
+ // 线上+线下只够部分抵扣,线上线下可用都置为0
|
|
|
+ payOrderMapper.updateMoneyByUserId(0d, 0d, 0d, orderParamBo.getUserId());
|
|
|
+ log.info("【提交订单】>>>>>更新用户余额,抵扣后剩余:[userMoney:" + 0 + "] ,ableUserMoney:" + 0);
|
|
|
+ }else{
|
|
|
+ //协销下单,只扣可用余额
|
|
|
+ payOrderMapper.updateAbleMoney(0d, orderParamBo.getUserId());
|
|
|
}
|
|
|
mainOrder.setReceiptStatus(2);
|
|
|
- // 线上+线下只够部分抵扣,线上线下可用都置为0
|
|
|
- payOrderMapper.updateMoneyByUserId(0d, 0d, 0d, orderParamBo.getUserId());
|
|
|
- log.info("【提交订单】>>>>>更新用户余额,抵扣后剩余:[userMoney:" + 0 + "] ,ableUserMoney:" + 0);
|
|
|
} else {
|
|
|
// 全部用余额抵扣, 直接变成支付完成
|
|
|
balancePayFee.set(payTotalFee.get());
|
|
|
payableAmount.set(0d);
|
|
|
+ Double availableMoney = MathUtil.sub(orderParamBo.getAbleUserMoney(), balancePayFee).doubleValue();
|
|
|
if (3 != orderParamBo.getCartType()) {
|
|
|
// 已收款待发货
|
|
|
mainOrder.setStatus(31);
|
|
|
+ //非协销下单,直接扣
|
|
|
+ // 线上余额全付
|
|
|
+ if (MathUtil.compare(orderParamBo.getOnlineMoney(), balancePayFee) > 0) {
|
|
|
+ Double onlineMoney = MathUtil.sub(orderParamBo.getOnlineMoney(), balancePayFee).doubleValue();
|
|
|
+ payOrderMapper.updateOnlineMoneyByUserId(onlineMoney, availableMoney, orderParamBo.getUserId());
|
|
|
+ log.info("【提交订单】>>>>>更新用户余额,抵扣后剩余:[userMoney:" + availableMoney + "] ,ableUserMoney:" + availableMoney);
|
|
|
+ } else {
|
|
|
+ //线上余额不够,线上全抵
|
|
|
+ Double userMoney = MathUtil.sub(orderParamBo.getUserMoney(), MathUtil.sub(balancePayFee, orderParamBo.getOnlineMoney())).doubleValue();
|
|
|
+ //更新线上/线下余额 线上置为0,全部抵扣
|
|
|
+ payOrderMapper.updateMoneyByUserId(userMoney, MathUtil.sub(orderParamBo.getAbleUserMoney(), balancePayFee).doubleValue(), 0d, orderParamBo.getUserId());
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ //协销下单,只扣可用余额,确认订单在扣usermoney和onlinemoney
|
|
|
+ payOrderMapper.updateAbleMoney(availableMoney, orderParamBo.getUserId());
|
|
|
}
|
|
|
mainOrder.setReceiptStatus(3);
|
|
|
mainOrder.setPayFlag(1);
|
|
|
isPaySuccessFlag = true;
|
|
|
- // 线上余额全付
|
|
|
- if (MathUtil.compare(orderParamBo.getOnlineMoney(), balancePayFee) > 0) {
|
|
|
- Double onlineMoney = MathUtil.sub(orderParamBo.getOnlineMoney(), balancePayFee).doubleValue();
|
|
|
- Double availableMoney = MathUtil.sub(orderParamBo.getAbleUserMoney(), balancePayFee).doubleValue();
|
|
|
- payOrderMapper.updateOnlineMoneyByUserId(onlineMoney, availableMoney, orderParamBo.getUserId());
|
|
|
- log.info("【提交订单】>>>>>更新用户余额,抵扣后剩余:[userMoney:" + availableMoney + "] ,ableUserMoney:" + availableMoney);
|
|
|
- } else {
|
|
|
- //线上余额不够,线上全抵
|
|
|
- Double userMoney = MathUtil.sub(orderParamBo.getUserMoney(), MathUtil.sub(balancePayFee, orderParamBo.getOnlineMoney())).doubleValue();
|
|
|
- //更新线上/线下余额 线上置为0,全部抵扣
|
|
|
- payOrderMapper.updateMoneyByUserId(userMoney, MathUtil.sub(orderParamBo.getAbleUserMoney(), balancePayFee).doubleValue(), 0d, orderParamBo.getUserId());
|
|
|
- }
|
|
|
}
|
|
|
// 支付时间
|
|
|
mainOrder.setPayTime(curDateStr);
|