|
|
@@ -127,9 +127,9 @@ public class TradeOrderServiceImpl implements TradeOrderService {
|
|
|
iPage.getRecords().forEach(tradeOrderRespVO -> {
|
|
|
List<TradeVisitorRespVO> visitorDOList = tradeVisitorMapper.queryVisitorByOrderId(tradeOrderRespVO.getId());
|
|
|
tradeOrderRespVO.setVisitors(visitorDOList);
|
|
|
- if(!visitorDOList.isEmpty()) {
|
|
|
+ if (!visitorDOList.isEmpty()) {
|
|
|
tradeOrderRespVO.setTotalNum(visitorDOList.size());
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
tradeOrderRespVO.setTotalNum(0);
|
|
|
}
|
|
|
});
|
|
|
@@ -645,65 +645,107 @@ public class TradeOrderServiceImpl implements TradeOrderService {
|
|
|
List<TradeDetailPriceDO> tradeDetailPriceDOList = new ArrayList<>();
|
|
|
|
|
|
ProductSpuRespDTO finalProductSpuRespDTO = productSpuRespDTO;
|
|
|
+ Map<String, Long> vmap = new HashMap<>(16);
|
|
|
orderItem.getDetailList().forEach(orderDetail -> {
|
|
|
- List<String> ticketNoList = tradeUUCodeUtils.generateTicketNo(orderDetail.getVisitorList().size());
|
|
|
- int i = 0;
|
|
|
- ProductSpuRespDTO product;
|
|
|
- if (orderDetail.getProductType() == 1 || orderDetail.getProductType() == 2) {
|
|
|
- product = productApi.getProduct(Long.parseLong(orderDetail.getProductId())).getCheckedData();
|
|
|
- } else {
|
|
|
- product = finalProductSpuRespDTO;
|
|
|
+ if (orderDetail.getProductType() == 0) {
|
|
|
+ List<String> ticketNoList = tradeUUCodeUtils.generateTicketNo(orderDetail.getVisitorList().size());
|
|
|
+ int i = 0;
|
|
|
+ ProductSpuRespDTO product;
|
|
|
+ if (orderDetail.getProductType() == 1 || orderDetail.getProductType() == 2) {
|
|
|
+ product = productApi.getProduct(Long.parseLong(orderDetail.getProductId())).getCheckedData();
|
|
|
+ } else {
|
|
|
+ product = finalProductSpuRespDTO;
|
|
|
+ }
|
|
|
+ for (ShipTradeOrderCreateReqVO.Visitor visitor : orderDetail.getVisitorList()) {
|
|
|
+ //订单详情
|
|
|
+ TradeDetailDO tradeDetailDO = new TradeDetailBO();
|
|
|
+ tradeDetailDO.setOrderId(tradeOrderDO.getId());
|
|
|
+ tradeDetailDO.setUseDate(orderItem.getUseDate() == null ? DateUtil.toLocalDateTime(tradeOrderDO.getTravelDate()) : DateUtil.toLocalDateTime(orderItem.getUseDate()));
|
|
|
+ tradeDetailDO.setProductId(product.getId());
|
|
|
+ tradeDetailDO.setProductName(product.getProductName());
|
|
|
+ tradeDetailDO.setPrice(orderDetail.getOriginPrice());
|
|
|
+ tradeDetailDO.setActualPrice(orderDetail.getPrice());
|
|
|
+ tradeDetailDO.setSpecType(orderDetail.getSpecType());
|
|
|
+ tradeDetailDO.setId(IdWorker.getId());
|
|
|
+ tradeDetailDO.setProductType(orderDetail.getProductType());
|
|
|
+ tradeDetailDO.setVoucherCode(ticketNoList.get(i));
|
|
|
+ i++;
|
|
|
+ tradeDetailDO.setVoucherStatus(VoucherStatusEnum.INIT.getStatus());
|
|
|
+ tradeDetailDOList.add(tradeDetailDO);
|
|
|
+ if (tradeOrderDO.getTravelDate() == null && tradeDetailDO.getUseDate() != null) {
|
|
|
+ //补任意游玩日期
|
|
|
+ tradeOrderDO.setTravelDate(DateUtils.of(tradeDetailDO.getUseDate()));
|
|
|
+ }
|
|
|
+ List<TradeDetailBaseDO> detailBaseDOList = buildShipDetailBase(orderDetail, tradeDetailDO, product);
|
|
|
+ tradeDetailBaseDOList.addAll(detailBaseDOList);
|
|
|
+ Long visitorId = IdWorker.getId();
|
|
|
+ tradeDetailDO.setVisitorId(visitorId);
|
|
|
+ vmap.put(visitor.getVid(), visitorId);
|
|
|
+ TradeVisitorDO tradeVisitorDO = new TradeVisitorDO();
|
|
|
+ tradeVisitorDO.setId(visitorId);
|
|
|
+ tradeVisitorDO.setVid(visitor.getVid());
|
|
|
+ tradeVisitorDO.setOrderId(tradeOrderDO.getId());
|
|
|
+ tradeVisitorDO.setName(visitor.getName());
|
|
|
+ tradeVisitorDO.setDetailId(tradeDetailDO.getId());
|
|
|
+ tradeVisitorDO.setCredentialType(visitor.getCredentialType());
|
|
|
+ tradeVisitorDO.setCredentialNo(visitor.getCredentialNo());
|
|
|
+ tradeVisitorDO.setMobile(visitor.getMobile());
|
|
|
+ tradeVisitorDO.setAge(visitor.getAge());
|
|
|
+ tradeVisitorDO.setType(visitor.getType());
|
|
|
+ tradeVisitorDO.setBirthday(visitor.getBirthday());
|
|
|
+ tradeVisitorDO.setGender(visitor.getGender());
|
|
|
+ tradeVisitorDO.setRemark(visitor.getRemark());
|
|
|
+ tradeVisitorDO.setRoomIndexId(visitor.getRoomIndexId());
|
|
|
+ tradeVisitorDO.setDeleted(false);
|
|
|
+ tradeVisitorDO.setNationality(visitor.getNationality());
|
|
|
+ tradeVisitorDO.setRoomModelId(visitor.getRoomModelId());
|
|
|
+ tradeVisitorDO.setFloor(visitor.getFloor());
|
|
|
+ if (orderDetail.getProductType() == 0) {
|
|
|
+ tradeVisitorDO.setCohabitation(visitor.getCohabitation());
|
|
|
+ tradeVisitorDO.setRoomId(visitor.getRoomId());
|
|
|
+ tradeVisitorDO.setInitRoomId(visitor.getInitRoomId());
|
|
|
+ tradeVisitorDO.setFinalRoomId(visitor.getFinalRoomId());
|
|
|
+ }
|
|
|
+ tradeVisitorDO.setCreateTime(LocalDateTime.now());
|
|
|
+ tradeVisitorDOList.add(tradeVisitorDO);
|
|
|
+ }
|
|
|
}
|
|
|
+ });
|
|
|
|
|
|
- for (ShipTradeOrderCreateReqVO.Visitor visitor : orderDetail.getVisitorList()) {
|
|
|
- //订单详情
|
|
|
- TradeDetailDO tradeDetailDO = new TradeDetailBO();
|
|
|
- tradeDetailDO.setOrderId(tradeOrderDO.getId());
|
|
|
- tradeDetailDO.setUseDate(orderItem.getUseDate() == null ? DateUtil.toLocalDateTime(tradeOrderDO.getTravelDate()) : DateUtil.toLocalDateTime(orderItem.getUseDate()));
|
|
|
- tradeDetailDO.setProductId(product.getId());
|
|
|
- tradeDetailDO.setProductName(product.getProductName());
|
|
|
- tradeDetailDO.setPrice(orderDetail.getOriginPrice());
|
|
|
- tradeDetailDO.setActualPrice(orderDetail.getPrice());
|
|
|
- tradeDetailDO.setSpecType(orderDetail.getSpecType());
|
|
|
- tradeDetailDO.setId(IdWorker.getId());
|
|
|
- tradeDetailDO.setProductType(orderDetail.getProductType());
|
|
|
- tradeDetailDO.setVoucherCode(ticketNoList.get(i));
|
|
|
- i++;
|
|
|
- tradeDetailDO.setVoucherStatus(VoucherStatusEnum.INIT.getStatus());
|
|
|
- tradeDetailDOList.add(tradeDetailDO);
|
|
|
- if (tradeOrderDO.getTravelDate() == null && tradeDetailDO.getUseDate() != null) {
|
|
|
- //补任意游玩日期
|
|
|
- tradeOrderDO.setTravelDate(DateUtils.of(tradeDetailDO.getUseDate()));
|
|
|
+ orderItem.getDetailList().forEach(orderDetail -> {
|
|
|
+ if (orderDetail.getProductType() != 0) {
|
|
|
+ List<String> ticketNoList = tradeUUCodeUtils.generateTicketNo(orderDetail.getVisitorList().size());
|
|
|
+ int i = 0;
|
|
|
+ ProductSpuRespDTO product;
|
|
|
+ if (orderDetail.getProductType() == 1 || orderDetail.getProductType() == 2) {
|
|
|
+ product = productApi.getProduct(Long.parseLong(orderDetail.getProductId())).getCheckedData();
|
|
|
+ } else {
|
|
|
+ product = finalProductSpuRespDTO;
|
|
|
}
|
|
|
- List<TradeDetailBaseDO> detailBaseDOList = buildShipDetailBase(orderDetail, tradeDetailDO, product);
|
|
|
- tradeDetailBaseDOList.addAll(detailBaseDOList);
|
|
|
- TradeVisitorDO tradeVisitorDO = new TradeVisitorDO();
|
|
|
- tradeVisitorDO.setId(IdWorker.getId());
|
|
|
- tradeVisitorDO.setVid(visitor.getVid());
|
|
|
- tradeVisitorDO.setOrderId(tradeOrderDO.getId());
|
|
|
- tradeVisitorDO.setName(visitor.getName());
|
|
|
- tradeVisitorDO.setDetailId(tradeDetailDO.getId());
|
|
|
- tradeVisitorDO.setCredentialType(visitor.getCredentialType());
|
|
|
- tradeVisitorDO.setCredentialNo(visitor.getCredentialNo());
|
|
|
- tradeVisitorDO.setMobile(visitor.getMobile());
|
|
|
- tradeVisitorDO.setAge(visitor.getAge());
|
|
|
- tradeVisitorDO.setType(visitor.getType());
|
|
|
- tradeVisitorDO.setBirthday(visitor.getBirthday());
|
|
|
- tradeVisitorDO.setGender(visitor.getGender());
|
|
|
- tradeVisitorDO.setRemark(visitor.getRemark());
|
|
|
- tradeVisitorDO.setRoomIndexId(visitor.getRoomIndexId());
|
|
|
- tradeVisitorDO.setDeleted(false);
|
|
|
- tradeVisitorDO.setNationality(visitor.getNationality());
|
|
|
- tradeVisitorDO.setRoomModelId(visitor.getRoomModelId());
|
|
|
- tradeVisitorDO.setFloor(visitor.getFloor());
|
|
|
- if (orderDetail.getProductType() == 0) {
|
|
|
- tradeVisitorDO.setCohabitation(visitor.getCohabitation());
|
|
|
- tradeVisitorDO.setRoomId(visitor.getRoomId());
|
|
|
- tradeVisitorDO.setInitRoomId(visitor.getInitRoomId());
|
|
|
- tradeVisitorDO.setFinalRoomId(visitor.getFinalRoomId());
|
|
|
+ for (ShipTradeOrderCreateReqVO.Visitor visitor : orderDetail.getVisitorList()) {
|
|
|
+ //订单详情
|
|
|
+ TradeDetailDO tradeDetailDO = new TradeDetailBO();
|
|
|
+ tradeDetailDO.setOrderId(tradeOrderDO.getId());
|
|
|
+ tradeDetailDO.setUseDate(orderItem.getUseDate() == null ? DateUtil.toLocalDateTime(tradeOrderDO.getTravelDate()) : DateUtil.toLocalDateTime(orderItem.getUseDate()));
|
|
|
+ tradeDetailDO.setProductId(product.getId());
|
|
|
+ tradeDetailDO.setProductName(product.getProductName());
|
|
|
+ tradeDetailDO.setPrice(orderDetail.getOriginPrice());
|
|
|
+ tradeDetailDO.setActualPrice(orderDetail.getPrice());
|
|
|
+ tradeDetailDO.setSpecType(orderDetail.getSpecType());
|
|
|
+ tradeDetailDO.setId(IdWorker.getId());
|
|
|
+ tradeDetailDO.setProductType(orderDetail.getProductType());
|
|
|
+ tradeDetailDO.setVoucherCode(ticketNoList.get(i));
|
|
|
+ i++;
|
|
|
+ tradeDetailDO.setVoucherStatus(VoucherStatusEnum.INIT.getStatus());
|
|
|
+ tradeDetailDOList.add(tradeDetailDO);
|
|
|
+ if (tradeOrderDO.getTravelDate() == null && tradeDetailDO.getUseDate() != null) {
|
|
|
+ //补任意游玩日期
|
|
|
+ tradeOrderDO.setTravelDate(DateUtils.of(tradeDetailDO.getUseDate()));
|
|
|
+ }
|
|
|
+ List<TradeDetailBaseDO> detailBaseDOList = buildShipDetailBase(orderDetail, tradeDetailDO, product);
|
|
|
+ tradeDetailBaseDOList.addAll(detailBaseDOList);
|
|
|
+ tradeDetailDO.setVisitorId(vmap.get(visitor.getVid()));
|
|
|
}
|
|
|
- tradeVisitorDO.setCreateTime(LocalDateTime.now());
|
|
|
- tradeVisitorDOList.add(tradeVisitorDO);
|
|
|
}
|
|
|
});
|
|
|
|