|
@@ -1,6 +1,7 @@
|
|
|
package com.yc.ship.module.trade.service.otc.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
@@ -300,6 +301,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
DistributorRespDTO distributorDto = otaDistributorApi.getDistributorByAccountTenantId(loginUser.getTenantId()).getCheckedData();
|
|
|
//当前旅行社信息
|
|
|
initPayParams(loginUser,payOrderReqVO);
|
|
|
+ payOrderReqVO.setAccountId(distributorDto.getId().toString());
|
|
|
+ payOrderReqVO.setAccountType(PayAccountTypeEnum.OTC.getType());
|
|
|
//只在平台环境中下单
|
|
|
Long tenantId = TenantContextHolder.getTenantId();
|
|
|
TenantContextHolder.setTenantId(distributorDto.getTenantId());
|
|
@@ -331,25 +334,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
}
|
|
|
|
|
|
private void initPayParams(LoginUser loginUser, PayOrderReqVO payOrderReqVO){
|
|
|
- AgencyUserLoginInfoRespDTO agencyUserLoginInfo = loginUser.getContext(AGENCY_LOGIN_INFO, AgencyUserLoginInfoRespDTO.class);
|
|
|
- if(agencyUserLoginInfo!=null) {
|
|
|
- payOrderReqVO.setAccountId(agencyUserLoginInfo.getAgencyId().toString());
|
|
|
- if(StrUtil.isNotBlank(agencyUserLoginInfo.getStoreName())){
|
|
|
- payOrderReqVO.setAccountName(agencyUserLoginInfo.getStoreName());
|
|
|
- }else {
|
|
|
- payOrderReqVO.setAccountName(agencyUserLoginInfo.getAgencyName());
|
|
|
- }
|
|
|
- }
|
|
|
+ payOrderReqVO.setAccountId(loginUser.getDistributorId().toString());
|
|
|
payOrderReqVO.setAccountType(PayAccountTypeEnum.OTC.getType());
|
|
|
- //如果为主扫支付则需要获取设备的经纬度信息
|
|
|
- if(payOrderReqVO.getPayParams()!=null && payOrderReqVO.getPayExtraType()!=null && payOrderReqVO.getPayExtraType() == 0){
|
|
|
- if(agencyUserLoginInfo.getMachineId()!=null) {
|
|
|
- TenantUtils.execute(loginUser.getTenantId(),()->{
|
|
|
- StoreMachineDTO storeMachineDTO = storeApi.getMachineById(agencyUserLoginInfo.getMachineId()).getCheckedData();
|
|
|
- payOrderReqVO.setPayParams(TradeOrderConvert.INSTANCE.convert(payOrderReqVO.getPayParams(), storeMachineDTO));
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2293,17 +2279,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
}
|
|
|
|
|
|
private void setShipOrderPropertyFromLoginUser(LoginUser loginUser, ShipTradeOrderCreateReqVO.OrderProperty orderProperty, SellMethodEnum sellMethodEnum){
|
|
|
- AgencyUserLoginInfoRespDTO agencyUserLoginInfo = loginUser.getContext(AGENCY_LOGIN_INFO, AgencyUserLoginInfoRespDTO.class);
|
|
|
- if(agencyUserLoginInfo!=null) {
|
|
|
- if(ObjectUtil.notEqual(sellMethodEnum,SellMethodEnum.OTC_MOVE_ORDER) && agencyUserLoginInfo.getMachineId()!=null) {
|
|
|
- orderProperty.setSourceId(agencyUserLoginInfo.getMachineId().toString());
|
|
|
- orderProperty.setSourceName(agencyUserLoginInfo.getMachineName());
|
|
|
- }
|
|
|
- if(agencyUserLoginInfo.getStoreName()!=null) {
|
|
|
- orderProperty.setStoreId(agencyUserLoginInfo.getStoreId());
|
|
|
- orderProperty.setStoreName(agencyUserLoginInfo.getStoreName());
|
|
|
- }
|
|
|
- }
|
|
|
orderProperty.setSellerId(loginUser.getId().toString());
|
|
|
}
|
|
|
|
|
@@ -2339,7 +2314,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public Long createOtcOrder(LoginUser loginUser, TradeOrderOtcCreateVO createVO) {
|
|
|
+ public CommonResult<?> createOtcOrder(LoginUser loginUser, TradeOrderOtcCreateVO createVO) {
|
|
|
Long distributorId = loginUser.getDistributorId();
|
|
|
Long storeId = loginUser.getStoreId();
|
|
|
//获取当前分销商信息
|
|
@@ -2359,23 +2334,123 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
if(storeInfo==null) {
|
|
|
throw exception0(500,"该门店不存在");
|
|
|
}
|
|
|
- long orderId = IdWorker.getId();
|
|
|
- // 创建订单
|
|
|
- TradeOrderDO tradeOrderDO = BeanUtils.toBean(createVO, TradeOrderDO.class);
|
|
|
- tradeOrderDO.setId(orderId);
|
|
|
- tradeOrderDO.setOrderNo(tradeUUCodeUtils.generateOrderNo(ORDER_PREFIX));
|
|
|
- tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.INIT.getStatus());
|
|
|
- tradeOrderDO.setSellMethod(SellMethodEnum.OTC.getType());
|
|
|
- tradeOrderDO.setStoreId(storeId);
|
|
|
- tradeOrderDO.setStoreName(storeInfo.getName());
|
|
|
- tradeOrderDO.setSourceId(distributorId.toString());
|
|
|
- tradeOrderDO.setSourceName(distributorDO.getName());
|
|
|
- tradeOrderDO.setVisitorType(1);//团队
|
|
|
- tradeOrderMapper.insert(tradeOrderDO);
|
|
|
-
|
|
|
- //创建订单汇总信息
|
|
|
+// long orderId = IdWorker.getId();
|
|
|
+// // 创建订单
|
|
|
+// TradeOrderDO tradeOrderDO = BeanUtils.toBean(createVO, TradeOrderDO.class);
|
|
|
+// tradeOrderDO.setId(orderId);
|
|
|
+// tradeOrderDO.setOrderNo(tradeUUCodeUtils.generateOrderNo(ORDER_PREFIX));
|
|
|
+// tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.INIT.getStatus());
|
|
|
+// tradeOrderDO.setSellMethod(SellMethodEnum.OTC.getType());
|
|
|
+// tradeOrderDO.setStoreId(storeId);
|
|
|
+// tradeOrderDO.setStoreName(storeInfo.getName());
|
|
|
+// tradeOrderDO.setSourceId(distributorId.toString());
|
|
|
+// tradeOrderDO.setSourceName(distributorDO.getName());
|
|
|
+// tradeOrderDO.setVisitorType(1);//团队
|
|
|
+// tradeOrderMapper.insert(tradeOrderDO);
|
|
|
+//
|
|
|
+// //创建订单汇总信息
|
|
|
+// TradeOrderTotalVO summary = createVO.getSummary();
|
|
|
+// TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
|
|
|
+// tradeOrderTotalDO.setOrderId(orderId);
|
|
|
+// 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);
|
|
|
+// 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);
|
|
|
+// 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();
|
|
|
+// List<TradeVisitorDO> visitorDOS = BeanUtils.toBean(visitorList, TradeVisitorDO.class);
|
|
|
+// visitorDOS.stream().forEach(item -> {
|
|
|
+// item.setOrderId(orderId);
|
|
|
+// });
|
|
|
+// tradeVisitorMapper.insertBatch(visitorDOS);
|
|
|
+// return orderId;
|
|
|
+
|
|
|
+ List<TradeOrderCountryReqVO> countryData = createVO.getCountryData();
|
|
|
+ Integer totalNum = 0;
|
|
|
+ for (TradeOrderCountryReqVO item : countryData) {
|
|
|
+ totalNum += item.getAdultNum() + item.getChildNum() + item.getBabyNum() + item.getWithNum();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ ShipTradeOrderCreateReqVO shipTradeOrderCreateReqVO = BeanUtils.toBean(createVO, ShipTradeOrderCreateReqVO.class);
|
|
|
+ shipTradeOrderCreateReqVO.setDistributorId(loginUser.getDistributorId());
|
|
|
+ shipTradeOrderCreateReqVO.setGroupNo(createVO.getGroupNo());
|
|
|
+ ShipTradeOrderCreateReqVO.OrderUser orderUser = new ShipTradeOrderCreateReqVO.OrderUser();
|
|
|
+ orderUser.setContactName(createVO.getLinkMan());
|
|
|
+ orderUser.setMobile(createVO.getLinkMobile());
|
|
|
+ orderUser.setEmail(createVO.getLinkEmail());
|
|
|
+ shipTradeOrderCreateReqVO.setOrderUser(orderUser);
|
|
|
+
|
|
|
+ shipTradeOrderCreateReqVO.setTravelDate(createVO.getBoardingTime());
|
|
|
+
|
|
|
+ ShipTradeOrderCreateReqVO.OrderProperty orderProperty = new ShipTradeOrderCreateReqVO.OrderProperty();
|
|
|
+ orderProperty.setSellMethod(SellMethodEnum.OTC.getType());
|
|
|
+ orderProperty.setSourceId(distributorDO.getId()+"");
|
|
|
+ orderProperty.setSourceName(distributorDO.getName()+"");
|
|
|
+ orderProperty.setStoreId(storeInfo.getId());
|
|
|
+ orderProperty.setStoreName(storeInfo.getName()+"");
|
|
|
+ orderProperty.setSellMethod(SellMethodEnum.OTC.getType());
|
|
|
+
|
|
|
+ shipTradeOrderCreateReqVO.setOrderProperty(orderProperty);
|
|
|
+
|
|
|
+ ShipTradeOrderCreateReqVO.OrderItem orderItem = new ShipTradeOrderCreateReqVO.OrderItem();
|
|
|
+
|
|
|
+ ShipTradeOrderCreateReqVO.OrderDetail orderDetail = new ShipTradeOrderCreateReqVO.OrderDetail();
|
|
|
+ List<ShipTradeOrderCreateReqVO.Visitor> visitorList = new ArrayList<>();
|
|
|
+ for (TradeVistorReqVO tradeVistorReqVO : createVO.getTourist()) {
|
|
|
+ ShipTradeOrderCreateReqVO.Visitor visitor = new ShipTradeOrderCreateReqVO.Visitor();
|
|
|
+ visitor.setName(tradeVistorReqVO.getName());
|
|
|
+ visitor.setMobile(tradeVistorReqVO.getPhone());
|
|
|
+ visitor.setCredentialNo(tradeVistorReqVO.getCardNo());
|
|
|
+ visitor.setCredentialType(tradeVistorReqVO.getCardType());
|
|
|
+ visitor.setYczz(tradeVistorReqVO.getYichang());
|
|
|
+ visitor.setCqzz(tradeVistorReqVO.getChongqing());
|
|
|
+ visitorList.add(visitor);
|
|
|
+ }
|
|
|
+ orderDetail.setVisitorList(visitorList);
|
|
|
+ orderDetail.setCount(totalNum);
|
|
|
+ orderItem.setDetailList(Arrays.asList(orderDetail));
|
|
|
+ shipTradeOrderCreateReqVO.setItemlList(Arrays.asList(orderItem));
|
|
|
+ CommonResult<TradeOrderRespDTO> result = doShipCreateOrder(loginUser,shipTradeOrderCreateReqVO,SellMethodEnum.WINDOW);
|
|
|
+ if (result.isError()) {
|
|
|
+ return CommonResult.error(result);
|
|
|
+ }
|
|
|
TradeOrderTotalVO summary = createVO.getSummary();
|
|
|
TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
|
|
|
+ Long orderId = result.getCheckedData().getOrderId();
|
|
|
tradeOrderTotalDO.setOrderId(orderId);
|
|
|
tradeOrderTotalMapper.insert(tradeOrderTotalDO);
|
|
|
|
|
@@ -2383,7 +2458,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
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();
|
|
@@ -2414,14 +2488,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
tradeOrderRoomModelMapper.insertBatch(list);
|
|
|
tradeOrderFloorMapper.insertBatch(floorPlus);
|
|
|
|
|
|
- //创建订单游客数据
|
|
|
- List<TradeVistorReqVO> visitorList = createVO.getVisitorList();
|
|
|
- List<TradeVisitorDO> visitorDOS = BeanUtils.toBean(visitorList, TradeVisitorDO.class);
|
|
|
- visitorDOS.stream().forEach(item -> {
|
|
|
- item.setOrderId(orderId);
|
|
|
- });
|
|
|
- tradeVisitorMapper.insertBatch(visitorDOS);
|
|
|
- return orderId;
|
|
|
+ OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
|
|
|
+ return CommonResult.success(respVO);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private void markChangeOrder(Long orderId){
|