From 5ad1e6f6f453cbff471108907403fabe75594a76 Mon Sep 17 00:00:00 2001 From: lulz1 Date: Wed, 3 Apr 2024 10:27:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=90=BA=E7=A8=8B=E7=BB=93?= =?UTF-8?q?=E7=AE=97=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/order_record/OrderFlightRecord.java | 2 + .../order/order_record/OrderHotelRecord.java | 9 +- .../ctrip_order_record/CTripFlightRecord.java | 8 +- .../CTripFlightTripInfo.java | 90 +++++++++++++++++++ .../CTripHotelOrderDetail.java | 10 ++- .../CTripHotelRoomDetail.java | 35 ++++++++ .../CTripOrderRecordExtensionFactory.java | 78 +++++++++++----- .../OrderCarRecordRepositoryImpl.java | 3 +- .../OrderFlightRecordRepositoryImpl.java | 3 +- .../OrderHotelRecordRepositoryImpl.java | 9 +- .../OrderTrainRecordRepositoryImpl.java | 8 +- .../jdbc/JdbcOrderCarRecordRepository.java | 1 + .../jdbc/JdbcOrderFlightRecordRepository.java | 1 + .../jdbc/JdbcOrderHotelRecordRepository.java | 2 + .../jdbc/JdbcOrderTrainRecordRepository.java | 2 + .../ctrip/order/CTripOrderRecordAutoSave.java | 11 ++- 16 files changed, 227 insertions(+), 45 deletions(-) create mode 100644 src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripFlightTripInfo.java create mode 100644 src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripHotelRoomDetail.java diff --git a/src/main/java/com/chint/domain/aggregates/order/order_record/OrderFlightRecord.java b/src/main/java/com/chint/domain/aggregates/order/order_record/OrderFlightRecord.java index 795e137c..7d5ced56 100644 --- a/src/main/java/com/chint/domain/aggregates/order/order_record/OrderFlightRecord.java +++ b/src/main/java/com/chint/domain/aggregates/order/order_record/OrderFlightRecord.java @@ -119,9 +119,11 @@ public class OrderFlightRecord extends OrderBaseRecord { // 加载机票信息 public OrderFlightRecord loadTicketInfo(String issueTicketTime, + String ticketNo, String facePrice, String useStatus) { this.setIssueTicketTime(issueTicketTime); + this.setTicketNo(ticketNo); this.setFacePrice(facePrice); this.setUseStatus(useStatus); return this; diff --git a/src/main/java/com/chint/domain/aggregates/order/order_record/OrderHotelRecord.java b/src/main/java/com/chint/domain/aggregates/order/order_record/OrderHotelRecord.java index b6280dc8..befe93e2 100644 --- a/src/main/java/com/chint/domain/aggregates/order/order_record/OrderHotelRecord.java +++ b/src/main/java/com/chint/domain/aggregates/order/order_record/OrderHotelRecord.java @@ -79,6 +79,7 @@ public class OrderHotelRecord extends OrderBaseRecord { private String orderStatus; private String createTime; private String receiptsNumOrigin;//支付总金额 + // 加载基础订单信息 public OrderHotelRecord loadBasicOrderInfo(String orderNo, String orderStatus, @@ -90,10 +91,9 @@ public class OrderHotelRecord extends OrderBaseRecord { } // 加载酒店和入住信息 - public OrderHotelRecord loadHotelInfo(String hotelName, String hotelAddress, String checkInDate, String departureDate, + public OrderHotelRecord loadHotelInfo(String hotelName, String checkInDate, String departureDate, int roomCount, String roomTypeName) { this.setHotelName(hotelName); - this.setHotelAddress(hotelAddress); this.setCheckInDate(checkInDate); this.setDepartureDate(departureDate); this.setRoomCount(roomCount); @@ -102,10 +102,11 @@ public class OrderHotelRecord extends OrderBaseRecord { } // 加载地理信息位置 - public OrderHotelRecord loadLocationInfo(String country, String province, String checkInCity) { + public OrderHotelRecord loadLocationInfo(String country, String province, String checkInCity, String hotelAddress) { this.setCountry(country); this.setProvince(province); this.setCheckInCity(checkInCity); + this.setHotelAddress(hotelAddress); return this; } @@ -239,6 +240,4 @@ public class OrderHotelRecord extends OrderBaseRecord { this.setTaxCusFee(taxCusFee); return this; } - - } \ No newline at end of file diff --git a/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripFlightRecord.java b/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripFlightRecord.java index 98ea8dc8..4eb90c4a 100644 --- a/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripFlightRecord.java +++ b/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripFlightRecord.java @@ -26,14 +26,20 @@ public class CTripFlightRecord implements Serializable { private CTripFlightInfo cTripFlightInfo; @MappedCollection(idColumn = "c_trip_flight_record_id") private CTripFlightBaseInfo cTripFlightBaseInfo; + @MappedCollection(idColumn = "c_trip_flight_record_id") + private CTripFlightTripInfo cTripFlightTripInfo; - public static CTripFlightRecord of(CTripFlightRecordBase cTripFlightRecordBase, CTripFlightInfo cTripFlightInfo,CTripFlightBaseInfo cTripOrderBaseInfo) { + public static CTripFlightRecord of(CTripFlightRecordBase cTripFlightRecordBase, + CTripFlightInfo cTripFlightInfo, + CTripFlightBaseInfo cTripOrderBaseInfo, + CTripFlightTripInfo cTripFlightTripInfo) { CTripFlightRecord cTripFlightRecord = new CTripFlightRecord(); cTripFlightRecord.setCTripFlightRecordBase(cTripFlightRecordBase); cTripFlightRecord.setCTripFlightInfo(cTripFlightInfo); cTripFlightRecord.setRecordId(String.valueOf(cTripFlightRecordBase.getRecordId())); cTripFlightRecord.setCreateTime(DateTimeUtil.strToTimeMM(cTripFlightRecordBase.getCreateTime())); cTripFlightRecord.setCTripFlightBaseInfo(cTripOrderBaseInfo); + cTripFlightRecord.setCTripFlightTripInfo(cTripFlightTripInfo); return cTripFlightRecord; } } diff --git a/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripFlightTripInfo.java b/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripFlightTripInfo.java new file mode 100644 index 00000000..304f9744 --- /dev/null +++ b/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripFlightTripInfo.java @@ -0,0 +1,90 @@ +package com.chint.domain.aggregates.order.order_record.ctrip_order_record; + +import cn.hutool.core.bean.BeanUtil; +import com.chint.interfaces.rest.ctrip.dto.order.OrderFlightResponse; +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.io.Serial; +import java.io.Serializable; + +@Data +@Table("c_trip_flight_trip_info") +public class CTripFlightTripInfo implements Serializable { + @Serial + private static final long serialVersionUID = -2541232534673683466L; + @Id + private Long id; + private Long cTripFlightRecordId; + private Long TripId; + private Integer SectorId; + private String PassengerName; + private String RecordStatus; + private Integer ValidFlag;// + private String FlightClass; + private String Flight; + private String ClassGrade; + private String SubClass; + private String TakeOffTime; + private String ArrivalTime; + private Integer DCity; + private String DepartureDistrictCode; + private String DPort; + private String DPortBuilding; + private Integer DPortBuildingId; + private Integer ACity; + private String ArrivalDistrictCode; + private String APort; + private String APortBuilding; + private Integer APortBuildingId; + private Integer OpenTranFlag;// + private Double PrintPrice; + private Double Oil; + private Double Tax; + private String RecordNo; + private String AirlineRecordNo; + private Integer SharedFlag;// + private String SharedFlight; + private Integer SurfaceFlag; // + private String AirLineCode; + private String TicketNo; + private Integer TicketNoStatus; + private String TicketNoStatusName; + private String DCityName; + private String DPortName; + private String ACityName; + private String APortName; + // private OrderFlightResponse.StandardGeoInfo StandardGeoInfo; + private String ClassTypeName; + private String AirlineName; + + public static CTripFlightTripInfo of(OrderFlightResponse.FlightTripRecordInfo flightTripRecordInfo) { + CTripFlightTripInfo cTripFlightTripInfo = BeanUtil.copyProperties(flightTripRecordInfo, CTripFlightTripInfo.class); + cTripFlightTripInfo.setValidFlag(flightTripRecordInfo.isValidFlag() ? 1 : 0); + cTripFlightTripInfo.setOpenTranFlag(flightTripRecordInfo.isOpenTranFlag() ? 1 : 0); + cTripFlightTripInfo.setSharedFlag(flightTripRecordInfo.isSharedFlag() ? 1 : 0); + cTripFlightTripInfo.setSurfaceFlag(flightTripRecordInfo.isSurfaceFlag() ? 1 : 0); + cTripFlightTripInfo.setTicketNoStatusName(translateTicketStatus(flightTripRecordInfo.getTicketNoStatus())); + return cTripFlightTripInfo; + } + + private static String translateTicketStatus(Integer ticketNoStatus) { + return switch (ticketNoStatus) { + case -2 -> "未知"; + case -1 -> "未知"; + case 1 -> "待使用"; + case 2 -> "已使用"; + case 3 -> "已经办理登记"; + case 4 -> "已离港"; + case 5 -> "已作废"; + case 6 -> "已退票"; + case 7 -> "换开"; + case 8 -> "挂起"; + case 9 -> "机场控制"; + case 10 -> "机场控制"; + case 11 -> "未查到"; + default -> "未知"; + }; + } +} diff --git a/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripHotelOrderDetail.java b/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripHotelOrderDetail.java index 96b8da25..1bbfa1ba 100644 --- a/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripHotelOrderDetail.java +++ b/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripHotelOrderDetail.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.chint.interfaces.rest.ctrip.dto.order.OrderHotelResponse; import lombok.Data; import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.MappedCollection; import org.springframework.data.relational.core.mapping.Table; import java.io.Serial; @@ -19,6 +20,8 @@ public class CTripHotelOrderDetail implements Serializable { private Long id; private Long cTripHotelRecordId; private Long OrderId; + @MappedCollection(idColumn = "c_trip_hotel_order_detail_id", keyColumn = "c_trip_hotel_order_detail_key") + private List cTripHotelRoomDetailList; private String EmployeeName; private String EmployeeID; private String WorkCity; @@ -100,8 +103,13 @@ public class CTripHotelOrderDetail implements Serializable { private Double TPConfigMaxPrice; private String ReservationType; private String PreEmail; + public static CTripHotelOrderDetail of(OrderHotelResponse.SettlementOrderDetail data) { - return BeanUtil.copyProperties(data, CTripHotelOrderDetail.class); + CTripHotelOrderDetail cTripHotelOrderDetail = BeanUtil.copyProperties(data, CTripHotelOrderDetail.class); + List roomDetailList = data.getRoomDetailList(); + List res = roomDetailList.stream().map(CTripHotelRoomDetail::of).toList(); + cTripHotelOrderDetail.setCTripHotelRoomDetailList(res); + return cTripHotelOrderDetail; } } diff --git a/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripHotelRoomDetail.java b/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripHotelRoomDetail.java new file mode 100644 index 00000000..91d65f3d --- /dev/null +++ b/src/main/java/com/chint/domain/aggregates/order/order_record/ctrip_order_record/CTripHotelRoomDetail.java @@ -0,0 +1,35 @@ +package com.chint.domain.aggregates.order.order_record.ctrip_order_record; + +import cn.hutool.core.bean.BeanUtil; +import com.chint.interfaces.rest.ctrip.dto.order.OrderHotelResponse; +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.io.Serial; +import java.io.Serializable; + +@Data +@Table("c_trip_hotel_room_detail") +public class CTripHotelRoomDetail implements Serializable { + @Serial + private static final long serialVersionUID = 1027124557206346513L; + @Id + private Long id; + private Long cTripHotelOrderDetailId; + private Integer cTripHotelOrderDetailKey; + private String BasicRoomTypeName; + private String BasicRoomTypeEnName; + private Integer Breakfast; + private Integer AddBreakfast; + private Integer Meals; + private String ETA; + private String ETD; + private Double Price; + private Integer remainQuantity; + private Integer refundQuantity; + + public static CTripHotelRoomDetail of(OrderHotelResponse.SettlementRoomDetail roomDetail) { + return BeanUtil.copyProperties(roomDetail, CTripHotelRoomDetail.class); + } +} diff --git a/src/main/java/com/chint/domain/factoriy/order_record/CTripOrderRecordExtensionFactory.java b/src/main/java/com/chint/domain/factoriy/order_record/CTripOrderRecordExtensionFactory.java index 06fe0202..98eba36d 100644 --- a/src/main/java/com/chint/domain/factoriy/order_record/CTripOrderRecordExtensionFactory.java +++ b/src/main/java/com/chint/domain/factoriy/order_record/CTripOrderRecordExtensionFactory.java @@ -49,16 +49,16 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac orderRecordBasic.setProjectOrderNo(cTripCarPassengerInfo.getCostCenter5()); String sysCode = cTripCarPassengerInfo.getCostCenter3(); if (sysCode != null) { - if (sysCode.equals(BELONG_SYS_CODE_FSSC)) { + if (sysCode.contains(BELONG_SYS_CODE_FSSC)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_FSSC); } - if (sysCode.equals(BELONG_SYS_CODE_H3BPM)) { + if (sysCode.contains(BELONG_SYS_CODE_H3BPM)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_H3BPM); } - if (sysCode.equals(BELONG_SYS_CODE_XNFSSC)) { + if (sysCode.contains(BELONG_SYS_CODE_XNFSSC)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_XNFSSC); } - if (sysCode.equals(BELONG_SYS_CODE_ANFSSC)) { + if (sysCode.contains(BELONG_SYS_CODE_ANFSSC)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_ANFSSC); } } else { @@ -208,16 +208,16 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac orderRecordBasic.setProjectOrderNo(cTripFlightBaseInfo.getCostCenter5()); String sysCode = cTripFlightBaseInfo.getCostCenter3(); if (sysCode != null) { - if (sysCode.equals(BELONG_SYS_CODE_FSSC)) { + if (sysCode.contains(BELONG_SYS_CODE_FSSC)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_FSSC); } - if (sysCode.equals(BELONG_SYS_CODE_H3BPM)) { + if (sysCode.contains(BELONG_SYS_CODE_H3BPM)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_H3BPM); } - if (sysCode.equals(BELONG_SYS_CODE_XNFSSC)) { + if (sysCode.contains(BELONG_SYS_CODE_XNFSSC)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_XNFSSC); } - if (sysCode.equals(BELONG_SYS_CODE_ANFSSC)) { + if (sysCode.contains(BELONG_SYS_CODE_ANFSSC)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_ANFSSC); } } else { @@ -231,6 +231,7 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac public OrderFlightRecord createFlightOrderRecord(Object orderFlightRecordData) { CTripFlightRecord cTripFlightRecord = (CTripFlightRecord) orderFlightRecordData; CTripFlightBaseInfo cTripFlightBaseInfo = cTripFlightRecord.getCTripFlightBaseInfo(); + CTripFlightTripInfo cTripFlightTripInfo = cTripFlightRecord.getCTripFlightTripInfo(); String routeOrderNo = cTripFlightRecord.getRouteOrderNo(); Optional byOrderNo = Optional.ofNullable(routeRepository.findByOrderNo(routeOrderNo)); OrderFlightRecord orderFlightRecord = buildWithRecord(cTripFlightRecord) @@ -257,13 +258,22 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac "", cTripFlightInfo.getACityCode(), "") - .loadTicketInfo(cTripFlightRecordBase.getCreateTime(), - String.valueOf(cTripFlightRecordBase.getPrice()), - "") .loadSeatInfo(cTripFlightInfo.getClassName(), cTripFlightInfo.getClassName(), String.valueOf(cTripFlightInfo.getPriceRate())); + if (cTripFlightTripInfo != null) { + orderFlightRecord.loadTicketInfo(cTripFlightRecordBase.getCreateTime(), + String.valueOf(cTripFlightRecordBase.getPrice()), + cTripFlightTripInfo.getTicketNo(), + cTripFlightTripInfo.getTicketNoStatusName()); + } else { + orderFlightRecord.loadTicketInfo(cTripFlightRecordBase.getCreateTime(), + String.valueOf(cTripFlightRecordBase.getPrice()), + "", + "无机票信息"); + } + // 加载财务与价格信息 String batchNo = cTripFlightRecordBase.getBatchStartDate().substring(0, 6); @@ -349,16 +359,16 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac orderRecordBasic.setProjectOrderNo(cTripHotelOrderDetail.getCostCenter5()); String sysCode = cTripHotelOrderDetail.getCostCenter3(); if (sysCode != null) { - if (sysCode.equals(BELONG_SYS_CODE_FSSC)) { + if (sysCode.contains(BELONG_SYS_CODE_FSSC)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_FSSC); } - if (sysCode.equals(BELONG_SYS_CODE_H3BPM)) { + if (sysCode.contains(BELONG_SYS_CODE_H3BPM)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_H3BPM); } - if (sysCode.equals(BELONG_SYS_CODE_XNFSSC)) { + if (sysCode.contains(BELONG_SYS_CODE_XNFSSC)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_XNFSSC); } - if (sysCode.equals(BELONG_SYS_CODE_ANFSSC)) { + if (sysCode.contains(BELONG_SYS_CODE_ANFSSC)) { orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_ANFSSC); } } else { @@ -386,7 +396,6 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac // 加载酒店和入住信息 orderHotelRecord.loadHotelInfo(cTripHotelInfo.getHotelName(), - cTripHotelInfo.getHotelName(), cTripHotelOrderDetail.getStartTime(), cTripHotelOrderDetail.getEndTime(), cTripHotelOrderDetail.getRoomQuantity(), @@ -399,7 +408,15 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac } else { isAgreement = "否"; } - orderHotelRecord.loadRoomAndBreakfastInfo("", + List roomDetails = cTripHotelOrderDetail.getCTripHotelRoomDetailList(); + Integer averageMeals; + if (roomDetails != null && !roomDetails.isEmpty()) { + averageMeals = roomDetails.stream().map(CTripHotelRoomDetail::getBreakfast).reduce(Integer::sum).get(); + + } else { + averageMeals = 0; + } + orderHotelRecord.loadRoomAndBreakfastInfo(String.valueOf(averageMeals), isAgreement, cTripHotelRecordBase.getQuantity(), cTripHotelRecordBase.getQuantity(), @@ -413,10 +430,19 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac if (locations != null && !locations.isEmpty()) { Location location = locations.get(0); LocationRes locationRes = LocationRes.copyFrom(location); - orderHotelRecord.loadLocationInfo(locationRes.getCountry(), locationRes.getProvince(), cTripHotelInfo.getCityName()); + String address = locationRes.getCountry() + locationRes.getProvince() + cTripHotelInfo.getCityName(); + if (cTripHotelInfo.getDistrictName() != null) { + address = address + cTripHotelInfo.getDistrictName(); + } + address = address + cTripHotelInfo.getHotelName(); + orderHotelRecord.loadLocationInfo( + address, + locationRes.getCountry(), + locationRes.getProvince(), + cTripHotelInfo.getCityName()); } else { //如果找不到该地区,那么只能先用空的 - orderHotelRecord.loadLocationInfo("", "", cTripHotelInfo.getCityName()); + orderHotelRecord.loadLocationInfo("", "", cTripHotelInfo.getCityName(), cTripHotelInfo.getHotelName()); } // 加载酒店品牌和星级信息 @@ -458,11 +484,17 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac cTripHotelRecordBase.getCreateTime())); // 加载财务信息 + String invoiceType = cTripHotelOrderDetail.getIsHasSpecialInvoice().equals("T") ? "增值税专用发票" : "增值税普通发票"; //发票类型 orderHotelRecord.loadFinancialInfo(cTripHotelRecordBase.getBatchStartDate().substring(0, 6), - cTripHotelRecordBase.getSubAccCheckBatchNo(), - String.valueOf(cTripHotelRecordBase.getAmount()), - "", - cTripHotelRecordBase.getPaidAmount()); + cTripHotelRecordBase.getSubAccCheckBatchNo(), + String.valueOf(cTripHotelRecordBase.getAmount()), + "", + cTripHotelRecordBase.getPaidAmount()) + .loadInvoiceAndFeeInfo(invoiceType, + String.valueOf(cTripHotelRecordBase.getExtraCharge()), + String.valueOf(cTripHotelRecordBase.getServiceFee()), + "", + ""); // 加载付款 付款方式,公司付款金额, 个人付款金额 diff --git a/src/main/java/com/chint/infrastructure/repository/OrderCarRecordRepositoryImpl.java b/src/main/java/com/chint/infrastructure/repository/OrderCarRecordRepositoryImpl.java index bd675e95..26d0ae29 100644 --- a/src/main/java/com/chint/infrastructure/repository/OrderCarRecordRepositoryImpl.java +++ b/src/main/java/com/chint/infrastructure/repository/OrderCarRecordRepositoryImpl.java @@ -40,7 +40,8 @@ public class OrderCarRecordRepositoryImpl implements OrderCarRecordRepository { String systemType) { PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending()); Page byUpdateDataTimeBetween = orderCarRecordRepository - .findByBelongSysTypeAndUpdateDataTimeBetween(systemType, startTime, endTime, pageRequest); + .findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(systemType, + startTime, endTime, startTime, endTime, pageRequest); return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent()); } } diff --git a/src/main/java/com/chint/infrastructure/repository/OrderFlightRecordRepositoryImpl.java b/src/main/java/com/chint/infrastructure/repository/OrderFlightRecordRepositoryImpl.java index 87e8436d..68268d29 100644 --- a/src/main/java/com/chint/infrastructure/repository/OrderFlightRecordRepositoryImpl.java +++ b/src/main/java/com/chint/infrastructure/repository/OrderFlightRecordRepositoryImpl.java @@ -37,7 +37,8 @@ public class OrderFlightRecordRepositoryImpl implements OrderFlightRecordReposit public PageResult findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum, String systemType) { PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending()); Page byUpdateDataTimeBetween = jdbcOrderFlightRecordRepository - .findByBelongSysTypeAndUpdateDataTimeBetween(systemType, startTime, endTime, pageRequest); + .findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(systemType, + startTime, endTime, startTime, endTime, pageRequest); return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent()); } diff --git a/src/main/java/com/chint/infrastructure/repository/OrderHotelRecordRepositoryImpl.java b/src/main/java/com/chint/infrastructure/repository/OrderHotelRecordRepositoryImpl.java index 50b7e88c..23c216ef 100644 --- a/src/main/java/com/chint/infrastructure/repository/OrderHotelRecordRepositoryImpl.java +++ b/src/main/java/com/chint/infrastructure/repository/OrderHotelRecordRepositoryImpl.java @@ -1,10 +1,7 @@ package com.chint.infrastructure.repository; -import com.chint.domain.aggregates.order.order_record.OrderCarRecord; -import com.chint.domain.aggregates.order.order_record.OrderFlightRecord; import com.chint.domain.aggregates.order.order_record.OrderHotelRecord; import com.chint.domain.repository.OrderHotelRecordRepository; -import com.chint.infrastructure.repository.jdbc.JdbcOrderFlightRecordRepository; import com.chint.infrastructure.repository.jdbc.JdbcOrderHotelRecordRepository; import com.chint.infrastructure.util.PageResult; import org.springframework.beans.factory.annotation.Autowired; @@ -23,6 +20,7 @@ public class OrderHotelRecordRepositoryImpl implements OrderHotelRecordRepositor @Autowired private JdbcOrderHotelRecordRepository jdbcOrderHotelRecordRepository; + @Override public List saveAll(List orderHotelRecordList) { List res = new ArrayList<>(); @@ -36,10 +34,11 @@ public class OrderHotelRecordRepositoryImpl implements OrderHotelRecordRepositor } @Override - public PageResult findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum ,String systemType) { + public PageResult findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum, String systemType) { PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending()); Page byUpdateDataTimeBetween = jdbcOrderHotelRecordRepository - .findByBelongSysTypeAndUpdateDataTimeBetween(systemType, startTime, endTime, pageRequest); + .findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(systemType, + startTime, endTime, startTime, endTime, pageRequest); return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent()); } } diff --git a/src/main/java/com/chint/infrastructure/repository/OrderTrainRecordRepositoryImpl.java b/src/main/java/com/chint/infrastructure/repository/OrderTrainRecordRepositoryImpl.java index e9a8df6d..64041ced 100644 --- a/src/main/java/com/chint/infrastructure/repository/OrderTrainRecordRepositoryImpl.java +++ b/src/main/java/com/chint/infrastructure/repository/OrderTrainRecordRepositoryImpl.java @@ -1,9 +1,7 @@ package com.chint.infrastructure.repository; -import com.chint.domain.aggregates.order.order_record.OrderHotelRecord; import com.chint.domain.aggregates.order.order_record.OrderTrainRecord; import com.chint.domain.repository.OrderTrainRecordRepository; -import com.chint.infrastructure.repository.jdbc.JdbcOrderHotelRecordRepository; import com.chint.infrastructure.repository.jdbc.JdbcOrderTrainRecordRepository; import com.chint.infrastructure.util.PageResult; import org.springframework.beans.factory.annotation.Autowired; @@ -21,6 +19,7 @@ import java.util.Optional; public class OrderTrainRecordRepositoryImpl implements OrderTrainRecordRepository { @Autowired private JdbcOrderTrainRecordRepository jdbcOrderTrainRecordRepository; + @Override public List saveAll(List orderTrainRecordList) { List res = new ArrayList<>(); @@ -34,10 +33,11 @@ public class OrderTrainRecordRepositoryImpl implements OrderTrainRecordRepositor } @Override - public PageResult findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum ,String systemType) { + public PageResult findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum, String systemType) { PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending()); Page byUpdateDataTimeBetween = jdbcOrderTrainRecordRepository - .findByBelongSysTypeAndUpdateDataTimeBetween(systemType, startTime, endTime, pageRequest); + .findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(systemType, + startTime, endTime, startTime, endTime, pageRequest); return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent()); } } diff --git a/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderCarRecordRepository.java b/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderCarRecordRepository.java index bf1fac92..6e0a4bdc 100644 --- a/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderCarRecordRepository.java +++ b/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderCarRecordRepository.java @@ -15,4 +15,5 @@ public interface JdbcOrderCarRecordRepository extends CrudRepository findByDetailId(String detailId); Page findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable); + Page findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, LocalDateTime updateDataTime3, LocalDateTime updateDataTime4, Pageable pageable); } diff --git a/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderFlightRecordRepository.java b/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderFlightRecordRepository.java index a6d053d7..e6dd5c8d 100644 --- a/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderFlightRecordRepository.java +++ b/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderFlightRecordRepository.java @@ -14,4 +14,5 @@ public interface JdbcOrderFlightRecordRepository extends CrudRepository findByDetailId(String detailId); Page findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable); + Page findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, LocalDateTime updateDataTime3, LocalDateTime updateDataTime4, Pageable pageable); } diff --git a/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderHotelRecordRepository.java b/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderHotelRecordRepository.java index 4bf5cd9a..658e713c 100644 --- a/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderHotelRecordRepository.java +++ b/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderHotelRecordRepository.java @@ -1,5 +1,6 @@ package com.chint.infrastructure.repository.jdbc; +import com.chint.domain.aggregates.order.order_record.OrderFlightRecord; import com.chint.domain.aggregates.order.order_record.OrderHotelRecord; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -15,4 +16,5 @@ public interface JdbcOrderHotelRecordRepository extends CrudRepository findByDetailId(String detailId); Page findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable); + Page findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, LocalDateTime updateDataTime3, LocalDateTime updateDataTime4, Pageable pageable); } diff --git a/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderTrainRecordRepository.java b/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderTrainRecordRepository.java index ee634c0a..690dc56c 100644 --- a/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderTrainRecordRepository.java +++ b/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcOrderTrainRecordRepository.java @@ -14,4 +14,6 @@ public interface JdbcOrderTrainRecordRepository extends CrudRepository findByDetailId(String detailId); Page findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable); + + Page findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, LocalDateTime updateDataTime3, LocalDateTime updateDataTime4, Pageable pageable); } diff --git a/src/main/java/com/chint/interfaces/rest/ctrip/order/CTripOrderRecordAutoSave.java b/src/main/java/com/chint/interfaces/rest/ctrip/order/CTripOrderRecordAutoSave.java index 8b588697..97ca04d3 100644 --- a/src/main/java/com/chint/interfaces/rest/ctrip/order/CTripOrderRecordAutoSave.java +++ b/src/main/java/com/chint/interfaces/rest/ctrip/order/CTripOrderRecordAutoSave.java @@ -55,20 +55,23 @@ public class CTripOrderRecordAutoSave { .map(it -> { //对数据库进行查找 ,如果发现已经存在 , 就使用查找出来的 OrderFlightResponse.FlightOrderSettlementBaseInfo orderSettlementBaseInfo = it.getOrderSettlementBaseInfo(); + OrderFlightResponse.FlightTripRecordInfo flightTripRecordInfo = it.getFlightTripRecordInfo(); CTripFlightRecord record = cTripOrderDetailRepository.findFlightRecordByRecordId( String.valueOf(orderSettlementBaseInfo.getRecordID())); if (record == null) { record = CTripFlightRecord.of( CTripFlightRecordBase.changeInfo(orderSettlementBaseInfo), CTripFlightInfo.of(it.getOrderFlightInfo()), - CTripFlightBaseInfo.of(it.getOrderBaseInfo()) + CTripFlightBaseInfo.of(it.getOrderBaseInfo()), + CTripFlightTripInfo.of(flightTripRecordInfo) ); } else { Long originId = record.getId(); record = CTripFlightRecord.of( CTripFlightRecordBase.changeInfo(orderSettlementBaseInfo), CTripFlightInfo.of(it.getOrderFlightInfo()), - CTripFlightBaseInfo.of(it.getOrderBaseInfo())); + CTripFlightBaseInfo.of(it.getOrderBaseInfo()), + CTripFlightTripInfo.of(flightTripRecordInfo)); record.setId(originId); } //补充额外的字段 @@ -120,7 +123,7 @@ public class CTripOrderRecordAutoSave { public void cTripTrainRecordAutoSave(Optional date) { - OrderTrainResponse trainOrder = date + OrderTrainResponse trainOrder = date .flatMap(it -> Optional.ofNullable(cTripOrderDetailRequest.getTrainOrderByDate(it))) .orElseGet(() -> cTripOrderDetailRequest.getTrainOrder()); @@ -150,7 +153,7 @@ public class CTripOrderRecordAutoSave { } public void cTripCarRecordAutoSave(Optional date) { - OrderCarResponse carOrder = date + OrderCarResponse carOrder = date .flatMap(it -> Optional.ofNullable(cTripOrderDetailRequest.getCarOrderByDate(it))) .orElseGet(() -> cTripOrderDetailRequest.getCarOrder());