|
|
@@ -37,6 +37,7 @@ import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
|
|
|
import com.yc.ship.framework.tenant.core.context.TenantContextHolder;
|
|
|
import com.yc.ship.framework.tenant.core.util.TenantUtils;
|
|
|
import com.yc.ship.module.infra.api.config.ConfigApi;
|
|
|
+import com.yc.ship.module.marketing.api.policy.PolicyApi;
|
|
|
import com.yc.ship.module.member.api.address.MemberAddressApi;
|
|
|
import com.yc.ship.module.member.api.user.MemberUserApi;
|
|
|
import com.yc.ship.module.member.api.user.dto.MemberUserRespDTO;
|
|
|
@@ -82,12 +83,14 @@ import com.yc.ship.module.trade.dal.dataobject.insurance.InsuranceDO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.invoice.InvoiceDO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.order.*;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
|
|
|
+import com.yc.ship.module.trade.dal.dataobject.orderpolicy.OrderPolicyDO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.tradeOrderaudit.TradeOrderAuditDO;
|
|
|
import com.yc.ship.module.trade.dal.mysql.audituser.AuditUserMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.contract.ContractMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.insurance.InsuranceMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.order.*;
|
|
|
import com.yc.ship.module.trade.dal.mysql.orderjz.OrderJzMapper;
|
|
|
+import com.yc.ship.module.trade.dal.mysql.orderpolicy.OrderPolicyMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.tradeOrderaudit.TradeOrderAuditMapper;
|
|
|
import com.yc.ship.module.trade.enums.*;
|
|
|
import com.yc.ship.module.trade.framework.annotation.TradeOrderLog;
|
|
|
@@ -96,6 +99,7 @@ import com.yc.ship.module.trade.framework.common.TradeOrderLogUtils;
|
|
|
import com.yc.ship.module.trade.service.invoice.InvoiceService;
|
|
|
import com.yc.ship.module.trade.service.order.TradeOrderRepositoryService;
|
|
|
import com.yc.ship.module.trade.service.order.TradeOrderService;
|
|
|
+import com.yc.ship.module.trade.service.orderpolicy.OrderPolicyService;
|
|
|
import com.yc.ship.module.trade.service.otc.OtcTradeOrderService;
|
|
|
import com.yc.ship.module.trade.service.pay.TradeOrderPayService;
|
|
|
import com.yc.ship.module.trade.service.refund.TradeRefundRepositoryService;
|
|
|
@@ -231,6 +235,12 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Resource
|
|
|
private VoyageApi voyageApi;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private OrderPolicyMapper orderPolicyMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PolicyApi policyApi;
|
|
|
+
|
|
|
@Resource
|
|
|
private RedissonClient redissonClient;
|
|
|
|
|
|
@@ -1491,6 +1501,34 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
tradeOrderRoomDOList.add(tradeOrderRoomDO);
|
|
|
});
|
|
|
|
|
|
+ // 创建订单优惠政策数据
|
|
|
+ //1.先删除原来的
|
|
|
+ orderPolicyMapper.deleteByOrderId(orderId);
|
|
|
+ List<OrderPolicyDO> orderPolicyDOList = new ArrayList<>();
|
|
|
+ List<TradeOrderPolicyReqVO> policyList = createVO.getPolicyList();
|
|
|
+ policyList.stream().forEach(policy -> {
|
|
|
+ OrderPolicyDO orderPolicyDO = new OrderPolicyDO();
|
|
|
+ orderPolicyDO.setOrderId(orderId);
|
|
|
+ orderPolicyDO.setOrderNo(orderNo);
|
|
|
+ orderPolicyDO.setPolicyId(policy.getPolicyId());
|
|
|
+ if(createVO.getIsYd() != null && createVO.getIsYd() == 1) {
|
|
|
+ orderPolicyDO.setPreUseNum(policy.getUseNum());
|
|
|
+ orderPolicyDO.setRealUseNum(BigDecimal.ZERO);
|
|
|
+ }else {
|
|
|
+ //TODO: 需要修改订单金额,参考文档
|
|
|
+ orderPolicyDO.setPreUseNum(BigDecimal.ZERO);
|
|
|
+ orderPolicyDO.setRealUseNum(policy.getUseNum());
|
|
|
+ policyApi.updatePolicySurplusNum(policy.getPolicyId(), policy.getUseNum());
|
|
|
+ }
|
|
|
+ orderPolicyDO.setAmount(policy.getAmount());
|
|
|
+ orderPolicyDO.setRooms(policy.getRooms());
|
|
|
+ orderPolicyDOList.add(orderPolicyDO);
|
|
|
+ });
|
|
|
+ if(orderPolicyDOList.size() > 0) {
|
|
|
+ //TODO: 判断优惠政策是否需要审核
|
|
|
+ orderPolicyMapper.insertBatch(orderPolicyDOList);
|
|
|
+ }
|
|
|
+
|
|
|
int auditType = 0;
|
|
|
BigDecimal leaderTotalMoney = summary.getLeaderTotalMoney();
|
|
|
if (leaderTotalMoney != null && leaderTotalMoney.compareTo(new BigDecimal(0)) > 0) {
|
|
|
@@ -1766,6 +1804,34 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
tradeOrderRoomModelMapper.insertBatch(list);
|
|
|
}
|
|
|
|
|
|
+ // 创建订单优惠政策数据
|
|
|
+ //1.先删除原来的
|
|
|
+ orderPolicyMapper.deleteByOrderId(orderId);
|
|
|
+ List<OrderPolicyDO> orderPolicyDOList = new ArrayList<>();
|
|
|
+ List<TradeOrderPolicyReqVO> policyList = createVO.getPolicyList();
|
|
|
+ policyList.stream().forEach(policy -> {
|
|
|
+ OrderPolicyDO orderPolicyDO = new OrderPolicyDO();
|
|
|
+ orderPolicyDO.setOrderId(orderId);
|
|
|
+ orderPolicyDO.setOrderNo(orderNo);
|
|
|
+ orderPolicyDO.setPolicyId(policy.getPolicyId());
|
|
|
+ if(tradeOrderDO.getOrderStatus() == TradeOrderStatusEnum.UNPAID.getStatus() || tradeOrderDO.getOrderStatus() == TradeOrderStatusEnum.UNPAID.getStatus()) {
|
|
|
+ orderPolicyDO.setRealUseNum(policy.getUseNum());
|
|
|
+ orderPolicyDO.setPreUseNum(BigDecimal.ZERO);
|
|
|
+ policyApi.updatePolicySurplusNum(policy.getPolicyId(), policy.getUseNum());
|
|
|
+ //TODO: 需要修改订单金额,参考文档
|
|
|
+ }else {
|
|
|
+ orderPolicyDO.setRealUseNum(BigDecimal.ZERO);
|
|
|
+ orderPolicyDO.setPreUseNum(policy.getUseNum());
|
|
|
+ }
|
|
|
+ orderPolicyDO.setAmount(policy.getAmount());
|
|
|
+ orderPolicyDO.setRooms(policy.getRooms());
|
|
|
+ orderPolicyDOList.add(orderPolicyDO);
|
|
|
+ });
|
|
|
+ if(orderPolicyDOList.size() > 0) {
|
|
|
+ //TODO: 判断优惠政策是否需要审核
|
|
|
+ orderPolicyMapper.insertBatch(orderPolicyDOList);
|
|
|
+ }
|
|
|
+
|
|
|
OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
|
|
|
return CommonResult.success(respVO, msg);
|
|
|
} finally {
|