主订单结算 提交测试
This commit is contained in:
parent
4d42753847
commit
0dbeb14265
|
|
@ -1,6 +1,5 @@
|
||||||
package com.ghy.order.service.impl;
|
package com.ghy.order.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ghy.common.adapay.AdapayErrorCode;
|
import com.ghy.common.adapay.AdapayErrorCode;
|
||||||
import com.ghy.common.adapay.model.AdapayStatusEnum;
|
import com.ghy.common.adapay.model.AdapayStatusEnum;
|
||||||
|
|
@ -362,7 +361,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
FinancialDetail platformFeeFD = details.get(0);
|
FinancialDetail platformFeeFD = details.get(0);
|
||||||
FinancialDetail update = new FinancialDetail();
|
FinancialDetail update = new FinancialDetail();
|
||||||
update.setId(platformFeeFD.getId());
|
update.setId(platformFeeFD.getId());
|
||||||
|
update.setPayMoney(platformFeeFD.getPayMoney());
|
||||||
logger.debug("子订单[code={}]的完单流程开始", odCode);
|
logger.debug("子订单[code={}]的完单流程开始", odCode);
|
||||||
|
|
||||||
// 更新订单状态
|
// 更新订单状态
|
||||||
|
|
@ -393,18 +392,19 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
DivMember divMember = new DivMember(memberId, AdapayUtils.bigDecimalToString(fcRecord.getChangeMoney()), true);
|
DivMember divMember = new DivMember(memberId, AdapayUtils.bigDecimalToString(fcRecord.getChangeMoney()), true);
|
||||||
divMembers.add(divMember);
|
divMembers.add(divMember);
|
||||||
//调用分账
|
//调用分账
|
||||||
logger.info("子订单[code={}]的[改价单]的分账信息: {}", odCode, JSON.toJSONString(divMembers));
|
logger.info("子订单[code={}]的[改价单]发起分账", odCode);
|
||||||
JSONObject response = adapayService.paymentConfirm(financialDetail.getDeptId(), fcRecord.getRemark(),
|
JSONObject response = adapayService.paymentConfirm(financialDetail.getDeptId(), fcRecord.getRemark(),
|
||||||
payment.getOrderNo() + "_" + System.currentTimeMillis(),
|
payment.getOrderNo() + "_" + System.currentTimeMillis(),
|
||||||
AdapayUtils.bigDecimalToString(fcRecord.getChangeMoney()), divMembers, null, null);
|
AdapayUtils.bigDecimalToString(fcRecord.getChangeMoney()), divMembers, null, null);
|
||||||
if (AdapayStatusEnum.succeeded.code.equals(response.getString("status"))) { // 分账成功
|
if (AdapayStatusEnum.succeeded.code.equals(response.getString("status"))) { // 分账成功
|
||||||
logger.info("子订单[code={}]的[改价单]分账成功", odCode);
|
logger.info("子订单[code={}]的[改价单]分账成功", odCode);
|
||||||
// 这是被扣掉的手续费
|
// 这是被扣掉的手续费 按理说这里肯定大于0
|
||||||
String fee_amt = response.getString("fee_amt");
|
String fee_amt = response.getString("fee_amt");
|
||||||
feeAmt = new BigDecimal(fee_amt);
|
feeAmt = new BigDecimal(fee_amt);
|
||||||
if (feeAmt.compareTo(platformFeeFD.getPayMoney()) < 0 && !"0.00".equals(fee_amt)) {
|
if (feeAmt.compareTo(platformFeeFD.getPayMoney()) < 0 && !"0.00".equals(fee_amt)) {
|
||||||
|
// 当 0.00<改价单的手续费<=平台抽成金额 时
|
||||||
// 用平台抽成来补偿改价单的手续费 修改平台抽成子财务单金额
|
// 用平台抽成来补偿改价单的手续费 修改平台抽成子财务单金额
|
||||||
update.setPayMoney(platformFeeFD.getPayMoney().subtract(feeAmt));
|
update.setPayMoney(update.getPayMoney().subtract(feeAmt));
|
||||||
int i = financialDetailService.updateFinancialDetail(update);
|
int i = financialDetailService.updateFinancialDetail(update);
|
||||||
compensate = i > 0;
|
compensate = i > 0;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -461,17 +461,16 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
DivMember feeDivMember = new DivMember("0", fee.toString(), true);
|
DivMember feeDivMember = new DivMember("0", fee.toString(), true);
|
||||||
divMembers.add(feeDivMember);
|
divMembers.add(feeDivMember);
|
||||||
|
|
||||||
logger.info("子订单[code={}]分账信息: {}", odCode, JSON.toJSONString(divMembers));
|
logger.info("子订单[code={}]发起分账", odCode);
|
||||||
JSONObject response = adapayService.paymentConfirm(financialDetail.getDeptId(), payment.getId(), payment.getOrderNo() + "_" + System.currentTimeMillis(),
|
JSONObject response = adapayService.paymentConfirm(financialDetail.getDeptId(), payment.getId(), payment.getOrderNo() + "_" + System.currentTimeMillis(),
|
||||||
fee.add(payMoney).toString(), divMembers, null, null);
|
fee.add(payMoney).toString(), divMembers, null, null);
|
||||||
logger.info("子订单[code={}]分账结果: {}", odCode, response.toJSONString());
|
|
||||||
boolean status = AdapayStatusEnum.succeeded.code.equals(response.getString("status"));
|
boolean status = AdapayStatusEnum.succeeded.code.equals(response.getString("status"));
|
||||||
// 如果确认支付失败 这里抛出异常 回滚订单状态
|
// 如果确认支付失败 这里抛出异常 回滚订单状态
|
||||||
Assert.isTrue(status, response.getString("error_msg"));
|
Assert.isTrue(status, response.getString("error_msg"));
|
||||||
// 待提现金额里加入子财务单金额
|
// 待提现金额里加入子财务单金额
|
||||||
dtx = dtx.add(fdPayMoney);
|
dtx = dtx.add(fdPayMoney);
|
||||||
// 修改平台抽成子财务单金额
|
// 修改平台抽成子财务单金额
|
||||||
update.setPayMoney(platformFeeFD.getPayMoney().subtract(fee));
|
update.setPayMoney(update.getPayMoney().subtract(fee));
|
||||||
financialDetailService.updateFinancialDetail(update);
|
financialDetailService.updateFinancialDetail(update);
|
||||||
}
|
}
|
||||||
// --------------------- 子财务单分账部分 end ---------------------
|
// --------------------- 子财务单分账部分 end ---------------------
|
||||||
|
|
@ -482,10 +481,10 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
if (BigDecimal.ZERO.compareTo(dtx) > -1) {
|
if (BigDecimal.ZERO.compareTo(dtx) > -1) {
|
||||||
logger.info("子订单[code={}] 待提现金额={} 无需提现", odCode, dtx);
|
logger.info("子订单[code={}] 待提现金额={} 无需提现", odCode, dtx);
|
||||||
}
|
}
|
||||||
|
// 待提现金额
|
||||||
|
String cashAmt = AdapayUtils.bigDecimalToString(dtx);
|
||||||
|
String orderNo = AdapayUtils.createOrderNo(AdapayOrderType.DRAW_CASH);
|
||||||
try {
|
try {
|
||||||
String orderNo = AdapayUtils.createOrderNo(AdapayOrderType.DRAW_CASH);
|
|
||||||
// 待提现金额
|
|
||||||
String cashAmt = AdapayUtils.bigDecimalToString(dtx);
|
|
||||||
JSONObject drawCashResponse = adapayService.drawCash(financialDetail.getDeptId(), orderNo, "T1",
|
JSONObject drawCashResponse = adapayService.drawCash(financialDetail.getDeptId(), orderNo, "T1",
|
||||||
cashAmt, memberId, "订单结算", null);
|
cashAmt, memberId, "订单结算", null);
|
||||||
boolean drawCashStatus = AdapayStatusEnum.pending.code.equals(drawCashResponse.getString("status")) ||
|
boolean drawCashStatus = AdapayStatusEnum.pending.code.equals(drawCashResponse.getString("status")) ||
|
||||||
|
|
@ -495,11 +494,10 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
logger.info("子订单[code={}]自动提现成功", odCode);
|
logger.info("子订单[code={}]自动提现成功", odCode);
|
||||||
} else {
|
} else {
|
||||||
// 提现失败 把信息记录到error日志里
|
// 提现失败 把信息记录到error日志里
|
||||||
logger.error("自动发起提现失败: 子订单code={}, deptId={}, memberId={}, amount={}, 失败信息: {}", odCode,
|
logger.error("自动发起提现失败: 子订单code={}, deptId={} 失败信息: {}", odCode, cashAmt, drawCashResponse.toJSONString());
|
||||||
financialDetail.getDeptId(), memberId, cashAmt, drawCashResponse.toJSONString());
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("自动发起提现失败: 子订单code={}, deptId={}, memberId={}", odCode, financialDetail.getDeptId(), memberId, e);
|
logger.error("自动发起提现失败: 子订单code={}, deptId={}, memberId={}, amount={}", odCode, financialDetail.getDeptId(), memberId, cashAmt, e);
|
||||||
}
|
}
|
||||||
// --------------------- 自动提现流程 end ---------------------
|
// --------------------- 自动提现流程 end ---------------------
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package com.ghy.order.service.impl;
|
package com.ghy.order.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ghy.common.adapay.model.AdapayStatusEnum;
|
import com.ghy.common.adapay.model.AdapayStatusEnum;
|
||||||
import com.ghy.common.adapay.model.DivMember;
|
import com.ghy.common.adapay.model.DivMember;
|
||||||
|
|
@ -159,6 +158,7 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
||||||
PaymentDTO payment = financialMasterService.selectPaymentById(financialMaster.getPaymentId());
|
PaymentDTO payment = financialMasterService.selectPaymentById(financialMaster.getPaymentId());
|
||||||
Assert.notNull(payment, String.format("主订单[id=%d]找不到支付记录", orderMasterId));
|
Assert.notNull(payment, String.format("主订单[id=%d]找不到支付记录", orderMasterId));
|
||||||
|
|
||||||
|
// 修改主订单状态
|
||||||
updateStatus(orderMasterId, OrderStatus.FINISH_CHECK.code());
|
updateStatus(orderMasterId, OrderStatus.FINISH_CHECK.code());
|
||||||
|
|
||||||
if (BigDecimal.ZERO.compareTo(financialMaster.getPayMoney()) > -1) {
|
if (BigDecimal.ZERO.compareTo(financialMaster.getPayMoney()) > -1) {
|
||||||
|
|
@ -169,31 +169,30 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
||||||
|
|
||||||
// 用子财务单组成分账信息
|
// 用子财务单组成分账信息
|
||||||
List<FinancialDetail> financialDetails = financialDetailService.selectByFinancialMasterId(financialMaster.getId());
|
List<FinancialDetail> financialDetails = financialDetailService.selectByFinancialMasterId(financialMaster.getId());
|
||||||
// 校验金额 主财务单的金额减去所有子财务单的金额是否=0
|
// 确认支付总金额
|
||||||
BigDecimal checkMoney = financialMaster.getPayMoney();
|
BigDecimal confirmAmt = BigDecimal.ZERO;
|
||||||
// 确认支付金额 = 主财务单付款金额 - 退款金额 - 已确认金额
|
|
||||||
BigDecimal confirmAmt = financialMaster.getPayMoney();
|
|
||||||
|
|
||||||
// key:memberId(分账账户ID) value:分账金额
|
// key:memberId(分账账户ID) value:分账金额
|
||||||
HashMap<String, BigDecimal> memberMap = new HashMap<>();
|
HashMap<String, BigDecimal> memberMap = new HashMap<>();
|
||||||
|
|
||||||
for (FinancialDetail financialDetail : financialDetails) {
|
for (FinancialDetail financialDetail : financialDetails) {
|
||||||
checkMoney = checkMoney.subtract(financialDetail.getPayMoney());
|
|
||||||
String memberId;
|
String memberId;
|
||||||
switch (financialDetail.getFinancialDetailType()) {
|
switch (financialDetail.getFinancialDetailType()) {
|
||||||
case 0:
|
case 0:
|
||||||
// 上门师傅的财务单单独确认分账了 不在这里分
|
// 上门师傅的财务单单独确认分账了 不在这里分
|
||||||
// 减掉已确认金额
|
|
||||||
confirmAmt = confirmAmt.subtract(financialDetail.getPayMoney());
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
// 大师傅/店铺提成
|
// 大师傅/店铺提成
|
||||||
memberId = AdapayUtils.getWorkerMemberId(financialDetail.getPayeeId(), orderMaster.getDeptId());
|
memberId = AdapayUtils.getWorkerMemberId(financialDetail.getPayeeId(), orderMaster.getDeptId());
|
||||||
memberMap.merge(memberId, financialDetail.getPayMoney(), BigDecimal::add);
|
memberMap.merge(memberId, financialDetail.getPayMoney(), BigDecimal::add);
|
||||||
|
confirmAmt = confirmAmt.add(financialDetail.getPayMoney());
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
// 平台提成 并且是手续费承担方
|
// 平台提成 并且是手续费承担方
|
||||||
|
case 5:
|
||||||
|
// 订单超时罚金 归平台所有
|
||||||
memberMap.merge("0", financialDetail.getPayMoney(), BigDecimal::add);
|
memberMap.merge("0", financialDetail.getPayMoney(), BigDecimal::add);
|
||||||
|
confirmAmt = confirmAmt.add(financialDetail.getPayMoney());
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
// 分销
|
// 分销
|
||||||
|
|
@ -206,44 +205,33 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
||||||
// 如果没有分销人 那这笔钱就分到平台账户
|
// 如果没有分销人 那这笔钱就分到平台账户
|
||||||
memberMap.merge("0", financialDetail.getPayMoney(), BigDecimal::add);
|
memberMap.merge("0", financialDetail.getPayMoney(), BigDecimal::add);
|
||||||
}
|
}
|
||||||
|
confirmAmt = confirmAmt.add(financialDetail.getPayMoney());
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
// 减掉退款金额
|
// 退款金额
|
||||||
confirmAmt = confirmAmt.subtract(financialDetail.getPayMoney());
|
|
||||||
case 5:
|
|
||||||
// 订单超时罚金 归平台所有
|
|
||||||
memberMap.merge("0", financialDetail.getPayMoney(), BigDecimal::add);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 这里校验一次主财务单的金额减去所有子财务单的金额是否=0
|
|
||||||
Assert.isTrue(BigDecimal.ZERO.compareTo(checkMoney) == 0, "订单金额异常,请稍后再试");
|
|
||||||
|
|
||||||
// 分账账户
|
// 分账账户
|
||||||
ArrayList<DivMember> divMembers = new ArrayList<>();
|
ArrayList<DivMember> divMembers = new ArrayList<>();
|
||||||
// 需要自动提现的账户
|
|
||||||
ArrayList<DivMember> autoDrawCashMembers = new ArrayList<>();
|
|
||||||
for (Map.Entry<String, BigDecimal> entry : memberMap.entrySet()) {
|
for (Map.Entry<String, BigDecimal> entry : memberMap.entrySet()) {
|
||||||
String memberId = entry.getKey();
|
String memberId = entry.getKey();
|
||||||
BigDecimal money = entry.getValue();
|
BigDecimal money = entry.getValue();
|
||||||
String amount = AdapayUtils.bigDecimalToString(money);
|
String amount = AdapayUtils.bigDecimalToString(money);
|
||||||
if ("0".equals(memberId)) {
|
if ("0".equals(memberId)) {
|
||||||
// 0是平台账户 只参与分账 不自动提现
|
// 0是平台账户 承担手续费
|
||||||
divMembers.add(new DivMember("0", amount, true));
|
divMembers.add(new DivMember("0", amount, true));
|
||||||
} else {
|
} else {
|
||||||
DivMember member = new DivMember(memberId, amount, false);
|
divMembers.add(new DivMember(memberId, amount, false));
|
||||||
divMembers.add(member);
|
|
||||||
autoDrawCashMembers.add(member);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info("订单[code={}]分账信息: {}", orderMaster.getCode(), JSON.toJSONString(divMembers));
|
logger.info("订单[code={}]发起分账", orderMaster.getCode());
|
||||||
JSONObject response = adapayService.paymentConfirm(orderMaster.getDeptId(), payment.getId(), payment.getOrderNo(),
|
JSONObject response = adapayService.paymentConfirm(orderMaster.getDeptId(), payment.getId(), payment.getOrderNo(),
|
||||||
AdapayUtils.bigDecimalToString(confirmAmt), divMembers, null, null);
|
AdapayUtils.bigDecimalToString(confirmAmt), divMembers, null, null);
|
||||||
logger.info("订单[code={}]分账结果: {}", orderMaster.getCode(), response.toJSONString());
|
|
||||||
|
|
||||||
boolean status = AdapayStatusEnum.pending.code.equals(response.getString("status")) ||
|
boolean status = AdapayStatusEnum.pending.code.equals(response.getString("status")) ||
|
||||||
AdapayStatusEnum.succeeded.code.equals(response.getString("status"));
|
AdapayStatusEnum.succeeded.code.equals(response.getString("status"));
|
||||||
|
|
@ -252,8 +240,12 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
||||||
|
|
||||||
// 走到这里确认支付和分账都成功了 异步进入自动提现流程
|
// 走到这里确认支付和分账都成功了 异步进入自动提现流程
|
||||||
logger.info("订单[code={}]开始自动提现", orderMaster.getCode());
|
logger.info("订单[code={}]开始自动提现", orderMaster.getCode());
|
||||||
autoDrawCashMembers.forEach(member -> executor.execute(() -> {
|
divMembers.forEach(member -> executor.execute(() -> {
|
||||||
String memberId = member.getMemberId();
|
String memberId = member.getMemberId();
|
||||||
|
if ("0".equals(member.getMemberId())) {
|
||||||
|
// 平台的钱不用自动提现
|
||||||
|
return;
|
||||||
|
}
|
||||||
String amount = member.getAmount();
|
String amount = member.getAmount();
|
||||||
try {
|
try {
|
||||||
drawCash(orderMaster.getDeptId(), memberId, amount);
|
drawCash(orderMaster.getDeptId(), memberId, amount);
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,10 @@ public class AdapayService {
|
||||||
confirmParams.put("div_members", divMembers);
|
confirmParams.put("div_members", divMembers);
|
||||||
confirmParams.put("fee_mode", feeMode);
|
confirmParams.put("fee_mode", feeMode);
|
||||||
confirmParams.put("description", description);
|
confirmParams.put("description", description);
|
||||||
return (JSONObject) PaymentConfirm.create(confirmParams, deptId.toString());
|
logger.info("发起支付确认 dept[{}] param:{}", deptId, confirmParams.toJSONString());
|
||||||
|
JSONObject response = (JSONObject) PaymentConfirm.create(confirmParams, deptId.toString());
|
||||||
|
logger.info("支付确认结果 dept[{}] response:{}", deptId, response.toJSONString());
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -255,7 +258,9 @@ public class AdapayService {
|
||||||
cashParam.put("notify_url", adapayProperties.getNotifyUrl());
|
cashParam.put("notify_url", adapayProperties.getNotifyUrl());
|
||||||
cashParam.put("remark", remark);
|
cashParam.put("remark", remark);
|
||||||
cashParam.put("fee_mode", feeMode);
|
cashParam.put("fee_mode", feeMode);
|
||||||
|
logger.info("发起提现 dept[{}] param:{}", deptId, cashParam.toJSONString());
|
||||||
JSONObject response = (JSONObject) Drawcash.create(cashParam, deptId.toString());
|
JSONObject response = (JSONObject) Drawcash.create(cashParam, deptId.toString());
|
||||||
|
logger.info("提现结果 dept[{}] response:{}", deptId, response.toJSONString());
|
||||||
drawCashCallbackService.onResponse(response);
|
drawCashCallbackService.onResponse(response);
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,6 @@ public interface OrderService {
|
||||||
void overTimeOrder(String orderStatus);
|
void overTimeOrder(String orderStatus);
|
||||||
|
|
||||||
// 自动完成和分账
|
// 自动完成和分账
|
||||||
void finishOrder();
|
void autoFinishOrder();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -134,25 +134,27 @@ public class OrderServiceImpl implements OrderService {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void finishOrder() {
|
public void autoFinishOrder() {
|
||||||
|
// 子订单自动完单
|
||||||
// 查询出"待确认"状态的子订单
|
// 查询出"待确认"状态的子订单
|
||||||
List<OrderDetail> orderDetails = orderDetailService.selectByStatus(Collections.singletonList(OrderStatus.FINISH_CHECK.code()));
|
List<OrderDetail> orderDetails = orderDetailService.selectByStatus(Collections.singletonList(OrderStatus.FINISH_CHECK.code()));
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
// long day14ago = now - (60 * 60 * 1000L);
|
// long day14ago = now - (60 * 60 * 1000L);
|
||||||
long day14ago = now - 10000L;
|
long day14ago = now - 10000L;
|
||||||
for (OrderDetail orderDetail : orderDetails) {
|
for (OrderDetail orderDetail : orderDetails) {
|
||||||
// 查询符合自动确认的订单
|
// 筛选符合自动确认的订单
|
||||||
if (day14ago > orderDetail.getUpdateTime().getTime()) {
|
if (day14ago > orderDetail.getUpdateTime().getTime()) {
|
||||||
logger.info("订单自动完成[id={}, code={}]", orderDetail.getId(), orderDetail.getCode());
|
logger.info("子订单自动完成[id={}, code={}]", orderDetail.getId(), orderDetail.getCode());
|
||||||
try {
|
try {
|
||||||
// 完单流程(分账与提现)
|
// 子订单完单流程(分账与提现)
|
||||||
orderDetailService.finish(orderDetail.getId());
|
orderDetailService.finish(orderDetail.getId());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("订单自动完成[id={}, code={}]出错", orderDetail.getId(), orderDetail.getCode(), e);
|
logger.error("子订单自动完成[id={}, code={}]出错", orderDetail.getId(), orderDetail.getCode(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 主订单自动完单
|
||||||
List<OrderMaster> orderMasters = orderMasterService.selectUnfinished();
|
List<OrderMaster> orderMasters = orderMasterService.selectUnfinished();
|
||||||
for (OrderMaster om : orderMasters) {
|
for (OrderMaster om : orderMasters) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -167,7 +169,7 @@ public class OrderServiceImpl implements OrderService {
|
||||||
}
|
}
|
||||||
// 如果已经不存在"已完成"和"已取消"以外的子订单 就把主订单也改为完成
|
// 如果已经不存在"已完成"和"已取消"以外的子订单 就把主订单也改为完成
|
||||||
if (allFinish) {
|
if (allFinish) {
|
||||||
logger.info("主订单可以完成了[id={} code={}]", om.getId(), om.getCode());
|
logger.info("主订单自动完成[id={} code={}]", om.getId(), om.getCode());
|
||||||
orderMasterService.finish(om.getId());
|
orderMasterService.finish(om.getId());
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ public class OrderTask {
|
||||||
* */
|
* */
|
||||||
public void finishOrder(){
|
public void finishOrder(){
|
||||||
try {
|
try {
|
||||||
orderService.finishOrder();
|
orderService.autoFinishOrder();
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error("auto finish order task error is {}", ExceptionUtil.getExceptionMessage(e));
|
log.error("auto finish order task error is {}", ExceptionUtil.getExceptionMessage(e));
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue