|
@@ -809,6 +809,7 @@ public class TradeOrderServiceImpl implements TradeOrderService {
|
|
|
if (productSpuRespDTO == null) {
|
|
|
productSpuRespDTO = new ProductSpuRespDTO();
|
|
|
productSpuRespDTO.setProductName("游轮产品" + orderItem.getProductId());
|
|
|
+ productSpuRespDTO.setId(0L);
|
|
|
}
|
|
|
List<TradeDetailDO> tradeDetailDOList = new ArrayList<>();
|
|
|
List<TradeDetailBaseDO> tradeDetailBaseDOList = new ArrayList<>();
|
|
@@ -817,110 +818,35 @@ public class TradeOrderServiceImpl implements TradeOrderService {
|
|
|
|
|
|
ProductSpuRespDTO finalProductSpuRespDTO = productSpuRespDTO;
|
|
|
orderItem.getDetailList().forEach(orderDetail -> {
|
|
|
+ List<String> ticketNoList = tradeUUCodeUtils.generateTicketNo(orderDetail.getVisitorList().size());
|
|
|
+ int i=0;
|
|
|
+ ProductSpuRespDTO product = null;
|
|
|
+ if(orderDetail.getProductType()==1){
|
|
|
+ product = productApi.getProduct(Long.parseLong(orderDetail.getProductId())).getCheckedData();
|
|
|
+ }else{
|
|
|
+ product = finalProductSpuRespDTO;
|
|
|
+ }
|
|
|
|
|
|
- List<String> ticketNoList = tradeUUCodeUtils.generateTicketNo(1);
|
|
|
+ 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()));
|
|
|
- try {
|
|
|
- tradeDetailDO.setProductId(Long.parseLong(orderItem.getProductId()));
|
|
|
- }catch (Exception e){
|
|
|
- tradeDetailDO.setProductId(0L);
|
|
|
- }
|
|
|
- tradeDetailDO.setProductName(finalProductSpuRespDTO.getProductName());
|
|
|
+ tradeDetailDO.setProductId(product.getId());
|
|
|
+ tradeDetailDO.setProductName(product.getProductName());
|
|
|
tradeDetailDO.setPrice(orderDetail.getOriginPrice());
|
|
|
tradeDetailDO.setActualPrice(orderDetail.getPrice());
|
|
|
tradeDetailDO.setSpecType(orderDetail.getSpecType());
|
|
|
-// tradeDetailDO.setProductType(orderItem.getProductType());
|
|
|
-// tradeDetailDO.setCateType(finalProductSpuRespDTO.getProductType());
|
|
|
-// tradeDetailDO.setQuantityOfOne(finalProductSpuRespDTO.getProductSaleRule().getOneLimitNum());
|
|
|
-// tradeDetailDO.setUseRealName(finalProductSpuRespDTO.getProductSaleRule().getIsLimitType());
|
|
|
- //有效门票都是需要激活的,默认立即激活
|
|
|
-// if(finalProductSpuRespDTO.getProductSaleRule().getActivateType()!=null && finalProductSpuRespDTO.getProductSaleRule().getActivateType() == 1){
|
|
|
-// //立即激活
|
|
|
-// tradeDetailDO.setActivateStatus(1);
|
|
|
-// tradeDetailDO.setActivateTime(LocalDateTime.now());
|
|
|
-// }else{
|
|
|
-// tradeDetailDO.setActivateStatus(0);
|
|
|
-// tradeDetailDO.setActivateDays(finalProductSpuRespDTO.getProductSaleRule().getActivateDayNum());
|
|
|
-// }
|
|
|
-
|
|
|
-// if(finalProductSpuRespDTO.getProductBasicRule().getNeedPlayDate() == 1){
|
|
|
-// //需要选择出行日期
|
|
|
-// Asserts.isTrue(tradeDetailDO.getUseDate()!=null,"此产品需要指定使用日期{}", finalProductSpuRespDTO.getId());
|
|
|
-// Date travelDate = DateUtils.of(tradeDetailDO.getUseDate());
|
|
|
-// switch (finalProductSpuRespDTO.getProductBasicRule().getValidityType()){
|
|
|
-// case 1:
|
|
|
-// //出行当天
|
|
|
-// tradeDetailDO.setValidityStartDate(tradeDetailDO.getUseDate());
|
|
|
-// tradeDetailDO.setValidityEndDate(DateUtil.endOfDay(travelDate).toLocalDateTime());
|
|
|
-// break;
|
|
|
-// case 3:
|
|
|
-// //出行日期前后X天内
|
|
|
-// tradeDetailDO.setValidityStartDate(DateUtil.offsetDay(travelDate,-finalProductSpuRespDTO.getProductBasicRule().getValidityNum()).toLocalDateTime());
|
|
|
-// tradeDetailDO.setValidityEndDate(DateUtil.endOfDay(DateUtil.offsetDay(travelDate, finalProductSpuRespDTO.getProductBasicRule().getValidityNum())).toLocalDateTime());
|
|
|
-// break;
|
|
|
-// case 4:
|
|
|
-// //出行日期至指定日期
|
|
|
-// tradeDetailDO.setValidityStartDate(tradeDetailDO.getUseDate());
|
|
|
-// Date validityDate =DateUtils.of(finalProductSpuRespDTO.getProductBasicRule().getValidityDate());
|
|
|
-// tradeDetailDO.setValidityEndDate(DateUtil.endOfDay(validityDate).toLocalDateTime());
|
|
|
-// break;
|
|
|
-// default:
|
|
|
-// }
|
|
|
-// }else {
|
|
|
-// if(finalProductSpuRespDTO.getProductBasicRule().getValidityType() == 2){
|
|
|
-// //下单后X天内
|
|
|
-// Date now = new Date();
|
|
|
-// tradeDetailDO.setValidityStartDate(DateUtil.beginOfDay(now).toLocalDateTime());
|
|
|
-// tradeDetailDO.setValidityEndDate(DateUtil.endOfDay(DateUtil.offsetDay(now, finalProductSpuRespDTO.getProductBasicRule().getValidityNum())).toLocalDateTime());
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
-// if(finalProductSpuRespDTO.getProductBasicRule().getCheckStartDate()!=null){
|
|
|
-// LocalDateTime checkStartTime = finalProductSpuRespDTO.getProductBasicRule().getCheckStartDate().atStartOfDay();
|
|
|
-// //开始检票时间
|
|
|
-// if(tradeDetailDO.getValidityStartDate() == null || tradeDetailDO.getValidityStartDate().isBefore(checkStartTime)){
|
|
|
-// tradeDetailDO.setValidityStartDate(checkStartTime);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if(finalProductSpuRespDTO.getProductBasicRule().getCheckEndDate()!=null){
|
|
|
-// LocalDateTime checkEndTime = finalProductSpuRespDTO.getProductBasicRule().getCheckEndDate().atStartOfDay();
|
|
|
-// DateTime checkEndDate = DateUtil.endOfDay(DateUtils.of(checkEndTime));
|
|
|
-//
|
|
|
-// //结束检票时间
|
|
|
-// if(tradeDetailDO.getValidityEndDate() == null || tradeDetailDO.getValidityEndDate().isAfter(checkEndDate.toLocalDateTime())){
|
|
|
-// tradeDetailDO.setValidityEndDate(checkEndDate.toLocalDateTime());
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if(tradeDetailDO.getValidityEndDate()!=null){
|
|
|
-// tradeDetailDO.setValidityEndDate(tradeDetailDO.getValidityEndDate().truncatedTo(ChronoUnit.SECONDS));
|
|
|
-// }
|
|
|
-
|
|
|
tradeDetailDO.setId(IdWorker.getId());
|
|
|
- tradeDetailDO.setVoucherCode(ticketNoList.get(0));
|
|
|
+ tradeDetailDO.setVoucherCode(ticketNoList.get(i));
|
|
|
+ i++;
|
|
|
tradeDetailDO.setVoucherStatus(VoucherStatusEnum.INIT.getStatus());
|
|
|
- //游客信息
|
|
|
-// buildTradeVisitor(orderCreateReqDTO,productSpuRespDTO,tradeVisitorDOList,tradeDetailDO,orderDetail,i);
|
|
|
- //详情基础产品
|
|
|
-// List<TradeDetailBaseDO> detailBaseDOList = buildTradeDetailBase(orderDetail,tradeDetailDO,productSpuRespDTO);
|
|
|
- //明细价格
|
|
|
-// List<TradeDetailPriceDO> detailPriceList = buildTradeDetailPrice(tradeOrderDO,orderDetail.getDetailPriceList(),tradeDetailDO);
|
|
|
tradeDetailDOList.add(tradeDetailDO);
|
|
|
-// tradeDetailBaseDOList.addAll(detailBaseDOList);
|
|
|
- /*if(CollUtil.isNotEmpty(detailPriceList)){
|
|
|
- tradeDetailPriceDOList.addAll(detailPriceList);
|
|
|
- }*/
|
|
|
if(tradeOrderDO.getTravelDate() == null && tradeDetailDO.getUseDate()!=null){
|
|
|
//补任意游玩日期
|
|
|
tradeOrderDO.setTravelDate(DateUtils.of(tradeDetailDO.getUseDate()));
|
|
|
}
|
|
|
-
|
|
|
- for (ShipTradeOrderCreateReqVO.Visitor visitor : orderDetail.getVisitorList()) {
|
|
|
TradeVisitorDO tradeVisitorDO = new TradeVisitorDO();
|
|
|
tradeVisitorDO.setId(IdWorker.getId());
|
|
|
tradeVisitorDO.setOrderId(tradeOrderDO.getId());
|