|
|
@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.yc.ship.framework.common.enums.UserTypeEnum;
|
|
|
+import com.yc.ship.framework.common.exception.ErrorCode;
|
|
|
import com.yc.ship.framework.common.lang.Asserts;
|
|
|
import com.yc.ship.framework.common.pojo.CommonResult;
|
|
|
import com.yc.ship.framework.common.pojo.PageResult;
|
|
|
@@ -164,8 +165,10 @@ import java.util.concurrent.TimeUnit;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
import static com.yc.ship.framework.common.util.collection.CollectionUtils.convertList;
|
|
|
import static com.yc.ship.framework.security.core.util.SecurityFrameworkUtils.*;
|
|
|
+import static com.yc.ship.module.marketing.enums.ErrorCodeConstants.POLICY_OVER_NUM;
|
|
|
import static com.yc.ship.module.trade.enums.ApiConstants.ORDER_CHANGE_TYPE_NEW;
|
|
|
import static com.yc.ship.module.trade.enums.ErrorCodeConstants.*;
|
|
|
|
|
|
@@ -2610,6 +2613,13 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
orderPolicyDO.setPreUseNum(policy.getUseNum());
|
|
|
// 只要不是审核,都是预占,实占和预占一样,不用区分了,其实实占没有意义了
|
|
|
orderPolicyDO.setRealUseNum(BigDecimal.ZERO);
|
|
|
+ //判断当前库存够不够
|
|
|
+ if(!policyApi.checkPolicySurplusNum(policy.getPolicyId(),voyageId,policy.getUseNum())){
|
|
|
+ BigDecimal policySurplusNum = policyApi.getPolicySurplusNum(policy.getPolicyId(), voyageId);
|
|
|
+ throw exception(new ErrorCode(POLICY_OVER_NUM.getCode(),
|
|
|
+ "营销政策-"+policy.getPolicyName()+
|
|
|
+ "剩余房间不足,当前剩余房间数量:"+policySurplusNum+",本次使用房间数:"+policy.getUseNum()));
|
|
|
+ }
|
|
|
// if (createVO.getIsYd() != null && createVO.getIsYd() == 1) {
|
|
|
// orderPolicyDO.setPreUseNum(policy.getUseNum());
|
|
|
// orderPolicyDO.setRealUseNum(BigDecimal.ZERO);
|
|
|
@@ -3068,6 +3078,13 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
orderPolicyDO.setPreUseNum(policy.getUseNum());
|
|
|
// 只要不是审核,都是预占,实占和预占一样,不用区分了,其实实占没有意义了
|
|
|
orderPolicyDO.setRealUseNum(policy.getUseNum());
|
|
|
+ //判断当前库存够不够
|
|
|
+ if(!policyApi.checkPolicySurplusNum(policy.getPolicyId(),voyageId,policy.getUseNum())){
|
|
|
+ BigDecimal policySurplusNum = policyApi.getPolicySurplusNum(policy.getPolicyId(), voyageId);
|
|
|
+ throw exception(new ErrorCode(POLICY_OVER_NUM.getCode(),
|
|
|
+ "营销政策-"+policy.getPolicyName()+
|
|
|
+ "剩余房间不足,当前剩余房间数量:"+policySurplusNum+",本次使用房间数:"+policy.getUseNum()));
|
|
|
+ }
|
|
|
orderPolicyDO.setAmount(policy.getAmount());
|
|
|
orderPolicyDO.setRooms(policy.getRooms());
|
|
|
if(policy.getId()!=null){
|