|
@@ -30,6 +30,7 @@ import com.yc.ship.module.ota.dal.mysql.distributor.DistributorMapper;
|
|
|
import com.yc.ship.module.otc.api.agency.dto.AgencyUserLoginInfoRespDTO;
|
|
|
import com.yc.ship.module.otc.api.agency.dto.CooperateRespDTO;
|
|
|
import com.yc.ship.module.otc.api.store.StoreApi;
|
|
|
+import com.yc.ship.module.otc.api.store.dto.StoreInfoRespDTO;
|
|
|
import com.yc.ship.module.otc.api.store.dto.StoreMachineDTO;
|
|
|
import com.yc.ship.module.product.api.ProductApi;
|
|
|
import com.yc.ship.module.product.api.dto.*;
|
|
@@ -86,6 +87,8 @@ 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.exception.util.ServiceExceptionUtil.exception0;
|
|
|
import static com.yc.ship.framework.common.util.collection.CollectionUtils.convertList;
|
|
|
import static com.yc.ship.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
|
|
import static com.yc.ship.module.trade.enums.ApiConstants.*;
|
|
@@ -179,6 +182,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Resource
|
|
|
private TradeVisitorMapper tradeVisitorMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private TradeOrderFloorMapper tradeOrderFloorMapper;
|
|
|
+
|
|
|
|
|
|
public final static String AGENCY_LOGIN_INFO = "agencyLoginInfo";
|
|
|
|
|
@@ -2333,7 +2339,26 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public Long createOtcOrder(LoginUser agencyLoginUser, TradeOrderOtcCreateVO createVO) {
|
|
|
+ public Long createOtcOrder(LoginUser loginUser, TradeOrderOtcCreateVO createVO) {
|
|
|
+ Long distributorId = loginUser.getDistributorId();
|
|
|
+ Long storeId = loginUser.getStoreId();
|
|
|
+ //获取当前分销商信息
|
|
|
+ if(distributorId==null) {
|
|
|
+ throw exception0(500,"当前登录用户不是旅行社");
|
|
|
+ }
|
|
|
+ if(storeId==null) {
|
|
|
+ throw exception0(500,"当前登录用户不是门店");
|
|
|
+ }
|
|
|
+ //获取当前分销商信息
|
|
|
+ DistributorDO distributorDO = distributorMapper.selectById(distributorId);
|
|
|
+ if(distributorDO==null) {
|
|
|
+ throw exception0(500,"该旅行社不存在");
|
|
|
+ }
|
|
|
+ //获取当前门店
|
|
|
+ StoreInfoRespDTO storeInfo = storeApi.getStoreInfo(storeId);
|
|
|
+ if(storeInfo==null) {
|
|
|
+ throw exception0(500,"该门店不存在");
|
|
|
+ }
|
|
|
long orderId = IdWorker.getId();
|
|
|
// 创建订单
|
|
|
TradeOrderDO tradeOrderDO = BeanUtils.toBean(createVO, TradeOrderDO.class);
|
|
@@ -2341,7 +2366,10 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
tradeOrderDO.setOrderNo(tradeUUCodeUtils.generateOrderNo(ORDER_PREFIX));
|
|
|
tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.INIT.getStatus());
|
|
|
tradeOrderDO.setSellMethod(SellMethodEnum.OTC.getType());
|
|
|
- tradeOrderDO.setStoreId(agencyLoginUser.getStoreId());
|
|
|
+ tradeOrderDO.setStoreId(storeId);
|
|
|
+ tradeOrderDO.setStoreName(storeInfo.getName());
|
|
|
+ tradeOrderDO.setSourceId(distributorId.toString());
|
|
|
+ tradeOrderDO.setSourceName(distributorDO.getName());
|
|
|
tradeOrderDO.setVisitorType(1);//团队
|
|
|
tradeOrderMapper.insert(tradeOrderDO);
|
|
|
|
|
@@ -2352,22 +2380,39 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
tradeOrderTotalMapper.insert(tradeOrderTotalDO);
|
|
|
|
|
|
//创建订单国籍数据
|
|
|
+ List<TradeOrderRoomModelDO> list = new ArrayList<>(); //创建订单房型数据
|
|
|
+ List<TradeOrderCountryDO> tradeOrderCountryDOList = new ArrayList<>(); //创建订单国籍数据
|
|
|
+ List<TradeOrderFloorDO> floorPlus = new ArrayList<>();
|
|
|
List<TradeOrderCountryReqVO> countryData = createVO.getCountryData();
|
|
|
countryData.stream().forEach(item -> {
|
|
|
TradeOrderCountryDO countryDO = BeanUtils.toBean(item, TradeOrderCountryDO.class);
|
|
|
Long countryId = IdWorker.getId();
|
|
|
countryDO.setOrderId(orderId);
|
|
|
countryDO.setId(countryId);
|
|
|
- tradeOrderCountryMapper.insert(countryDO);
|
|
|
+ tradeOrderCountryDOList.add(countryDO);
|
|
|
List<TradeOrderRoomModelReqVO> roomModels = item.getRoomModels();
|
|
|
//创建订单房型数据
|
|
|
roomModels.stream().forEach(roomModel -> {
|
|
|
TradeOrderRoomModelDO roomModelDO = BeanUtils.toBean(roomModel, TradeOrderRoomModelDO.class);
|
|
|
+ Long roomModelId = IdWorker.getId();
|
|
|
roomModelDO.setOrderId(orderId);
|
|
|
+ roomModelDO.setId(roomModelId);
|
|
|
roomModelDO.setCountryId(countryId);
|
|
|
- tradeOrderRoomModelMapper.insert(roomModelDO);
|
|
|
+ list.add(roomModelDO);
|
|
|
+ // 房型升楼层数据
|
|
|
+ List<TradeOrderFloorReqVO> floorReqVOList = roomModel.getFloorPlus();
|
|
|
+ floorReqVOList.stream().forEach(floor -> {
|
|
|
+ TradeOrderFloorDO floorDO = BeanUtils.toBean(floor, TradeOrderFloorDO.class);
|
|
|
+ floorDO.setOrderId(orderId);
|
|
|
+ floorDO.setRoomModelId(roomModelId);
|
|
|
+ floorPlus.add(floorDO);
|
|
|
+ });
|
|
|
+
|
|
|
});
|
|
|
});
|
|
|
+ tradeOrderCountryMapper.insertBatch(tradeOrderCountryDOList);
|
|
|
+ tradeOrderRoomModelMapper.insertBatch(list);
|
|
|
+ tradeOrderFloorMapper.insertBatch(floorPlus);
|
|
|
|
|
|
//创建订单游客数据
|
|
|
List<TradeVistorReqVO> visitorList = createVO.getVisitorList();
|