Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
dengwc 2024-03-01 18:15:58 +08:00
commit 9109b125e6
21 changed files with 212 additions and 77 deletions

View File

@ -1,6 +1,5 @@
package com.chint.application.commands; package com.chint.application.commands;
import com.chint.domain.value_object.ApproveLegData;
import com.chint.infrastructure.echo_framework.command.Command; import com.chint.infrastructure.echo_framework.command.Command;
import lombok.Data; import lombok.Data;
@ -8,17 +7,11 @@ import static com.chint.infrastructure.constant.LegConstant.LEG_EVENT_APPROVAL;
@Data @Data
public class LegApprovalCommand extends Command { public class LegApprovalCommand extends Command {
private Integer LegEventType = LEG_EVENT_APPROVAL; private Integer legEventType = LEG_EVENT_APPROVAL;
private Long LegId; private Long legId;
private ApproveLegData data;
public LegApprovalCommand legId(Long LegId) { public LegApprovalCommand legId(Long LegId) {
this.setLegId(LegId); this.setLegId(LegId);
return this; return this;
} }
public LegApprovalCommand data(ApproveLegData data) {
this.data = data;
return this;
}
} }

View File

@ -0,0 +1,24 @@
package com.chint.application.commands;
import com.chint.domain.value_object.ApproveLegData;
import com.chint.infrastructure.echo_framework.command.Command;
import lombok.Data;
import static com.chint.infrastructure.constant.LegConstant.LEG_EVENT_APPROVAL;
@Data
public class RouteApprovalCommand extends Command {
private Integer LegEventType = LEG_EVENT_APPROVAL;
private Long LegId;
private ApproveLegData data;
public RouteApprovalCommand legId(Long LegId) {
this.setLegId(LegId);
return this;
}
public RouteApprovalCommand data(ApproveLegData data) {
this.data = data;
return this;
}
}

View File

@ -7,6 +7,7 @@ import com.chint.domain.aggregates.order.LegExtensionField;
import com.chint.domain.aggregates.order.Location; import com.chint.domain.aggregates.order.Location;
import com.chint.domain.aggregates.order.OrderDetail; import com.chint.domain.aggregates.order.OrderDetail;
import com.chint.domain.value_object.enums.CurrencyType; import com.chint.domain.value_object.enums.CurrencyType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
@ -30,11 +31,21 @@ public class LegRes {
private String amount; private String amount;
private String legTypeName; private String legTypeName;
private String legTypeEnName; private String legTypeEnName;
@ApiModelProperty("其他费用类型")
private Integer amountType; private Integer amountType;
@ApiModelProperty("其他费用类型名称")
private String amountTypeName; private String amountTypeName;
@ApiModelProperty("其他费用类型英文名称")
private String amountTypeEnName; private String amountTypeEnName;
@ApiModelProperty("费用说明")
private String expenseExplanation;
@ApiModelProperty("初始地详细")
private String originDescription;
@ApiModelProperty("目的地详细")
private String destinationDescription;
private Integer legStatus; private Integer legStatus;
private String legStatusName; private String legStatusName;
private CurrencyType currencyType; private CurrencyType currencyType;
@ -54,7 +65,9 @@ public class LegRes {
legRes.setAmountType(legExtensionField.getAmountType()); legRes.setAmountType(legExtensionField.getAmountType());
legRes.setAmountTypeName(legExtensionField.getAmountTypeName()); legRes.setAmountTypeName(legExtensionField.getAmountTypeName());
legRes.setAmountTypeEnName(legExtensionField.getAmountTypeEnName()); legRes.setAmountTypeEnName(legExtensionField.getAmountTypeEnName());
legRes.setExpenseExplanation(legExtensionField.getExpenseExplanation());
legRes.setOriginDescription(legExtensionField.getOriginDescription());
legRes.setDestinationDescription(legExtensionField.getDestinationDescription());
if (legExtensionField.getLocationIds() != null) { if (legExtensionField.getLocationIds() != null) {
List<LocationRes> locationResList = new ArrayList<>(); List<LocationRes> locationResList = new ArrayList<>();
List<Location> locationList = legExtensionField.getLocationList(); List<Location> locationList = legExtensionField.getLocationList();
@ -66,7 +79,6 @@ public class LegRes {
} }
legRes.setOriginLocation(LocationRes.copyFrom(leg.getOriginLocation())); legRes.setOriginLocation(LocationRes.copyFrom(leg.getOriginLocation()));
legRes.setDestinationLocation(LocationRes.copyFrom(leg.getDestinationLocation())); legRes.setDestinationLocation(LocationRes.copyFrom(leg.getDestinationLocation()));
return legRes; return legRes;
} }
} }

View File

@ -156,6 +156,7 @@ public class OrderQuery {
.flatMap(leg -> Stream.of(leg.getOriginLocation(), leg.getDestinationLocation())) .flatMap(leg -> Stream.of(leg.getOriginLocation(), leg.getDestinationLocation()))
.map(LocationRes::copyFrom) .map(LocationRes::copyFrom)
.distinct() .distinct()
.filter(Objects::nonNull)
.toList(); .toList();
res.setLocationResList(locationRes); res.setLocationResList(locationRes);
res.setUserName(currentUser.getName()); res.setUserName(currentUser.getName());

View File

@ -89,7 +89,11 @@ public class CTripEstimatePrice implements EstimatePrice {
.max(Comparator.comparing(BigDecimal::new));//获取最大值 .max(Comparator.comparing(BigDecimal::new));//获取最大值
if (optional.isPresent()) { if (optional.isPresent()) {
String maxPrice = optional.get(); String maxPrice = optional.get();
trainPriceData.setMaxPrice(maxPrice); if (priceQueryData.getIfRound() != null && priceQueryData.getIfRound().equals(1)) {
trainPriceData.setMaxPrice(String.valueOf(Integer.parseInt(maxPrice) * 2));
} else {
trainPriceData.setMaxPrice(maxPrice);
}
} }
return trainPriceData; return trainPriceData;
} }
@ -124,7 +128,11 @@ public class CTripEstimatePrice implements EstimatePrice {
estimate.getData().getFlightValuationResult().getTotalPrice() estimate.getData().getFlightValuationResult().getTotalPrice()
).ifPresentOrElse(price -> { ).ifPresentOrElse(price -> {
flightPriceData.setSuccess(true); flightPriceData.setSuccess(true);
flightPriceData.setMaxPrice(String.valueOf(price)); if (priceQueryData.getIfRound() != null && priceQueryData.getIfRound().equals(1)) {
flightPriceData.setMaxPrice(String.valueOf(price.multiply(BigDecimal.valueOf(2))));
} else {
flightPriceData.setMaxPrice(String.valueOf(price));
}
}, () -> { }, () -> {
flightPriceData.setSuccess(false); flightPriceData.setSuccess(false);
flightPriceData.setMaxPrice("无估算价格"); flightPriceData.setMaxPrice("无估算价格");

View File

@ -28,8 +28,7 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import static com.chint.infrastructure.constant.RouteConstant.ORDER_STATUS_NOT_ORDERED; import static com.chint.infrastructure.constant.RouteConstant.*;
import static com.chint.infrastructure.constant.RouteConstant.ORDER_STATUS_PREPARE;
@Service @Service
public class OrderApplicationService { public class OrderApplicationService {
@ -77,7 +76,14 @@ public class OrderApplicationService {
List<Leg> legs = processLegData(addLegData.getLegData(), order); List<Leg> legs = processLegData(addLegData.getLegData(), order);
RouteOrder routeOrder = orderDomainService.saveOrder(order); RouteOrder routeOrder = orderDomainService.saveOrder(order);
legs.forEach(leg -> Command.of(LegPrepareCommand.class).legId(leg.getLegId()).sendToQueue()); legs.forEach(leg -> {
Command.of(LegPrepareCommand.class).legId(leg.getLegId()).sendToQueue();
//如果订单状态已经处于审批中 那么为这个新增的leg也提交审批状态
if (order.getOrderStatus() >= ORDER_STATUS_APPROVAL) {
Command.of(LegApprovalCommand.class).legId(leg.getLegId()).sendToQueue();
}
});
//异步操作-如果是当前的状态已经进行过匹配那么就要订单同步到供应商一次 //异步操作-如果是当前的状态已经进行过匹配那么就要订单同步到供应商一次
if (order.getOrderStatus() >= ORDER_STATUS_NOT_ORDERED) { if (order.getOrderStatus() >= ORDER_STATUS_NOT_ORDERED) {
@ -142,7 +148,7 @@ public class OrderApplicationService {
@Transactional @Transactional
public void approve(ApproveLegData approveLegData) { public void approve(ApproveLegData approveLegData) {
Command.of(LegApprovalCommand.class).data(approveLegData).sendToQueue(); Command.of(RouteApprovalCommand.class).data(approveLegData).sendToQueue();
} }
@Transactional @Transactional

View File

@ -43,6 +43,10 @@ public class HotCityTag {
internationalCitys.add("欧洲_挪威_奥斯陆市_奥斯陆_"); internationalCitys.add("欧洲_挪威_奥斯陆市_奥斯陆_");
internationalCitys.add("北美洲_美国_加利福尼亚州_旧金山_"); internationalCitys.add("北美洲_美国_加利福尼亚州_旧金山_");
internationalCitys.add("亚洲_新加坡_新加坡_新加坡_"); internationalCitys.add("亚洲_新加坡_新加坡_新加坡_");
internationalCitys.add("亚洲_中国_香港_香港_");
internationalCitys.add("亚洲_中国_澳门_澳门_");
internationalCitys.add("亚洲_中国_台湾_台北_");
} }

View File

@ -72,7 +72,7 @@ public class LegEventHandler implements LegEventService {
@Transactional @Transactional
@Override @Override
public void approveLeg(LegApprovalCommand command) { public void approveRoute(RouteApprovalCommand command) {
ApproveLegData data = command.getData(); ApproveLegData data = command.getData();
RouteOrder routeOrder = routeRepository.findByFakeOrderNoAndSysCode(data.getFakeOrderNo(), data.getSysCode()).reloadStatus(); RouteOrder routeOrder = routeRepository.findByFakeOrderNoAndSysCode(data.getFakeOrderNo(), data.getSysCode()).reloadStatus();
if (routeOrder.getLegItems().isEmpty()) { if (routeOrder.getLegItems().isEmpty()) {
@ -135,6 +135,13 @@ public class LegEventHandler implements LegEventService {
} }
} }
@Override
public void approveLeg(LegApprovalCommand command) {
Leg leg = legRepository.findByLegId(command.getLegId());
leg.addEvent(legEventFactory.creatLegEvent(command.getLegEventType()));
legRepository.save(leg);
}
@Transactional @Transactional
@Override @Override
public ResultContainer routeUpdateOrder(RouteUpdateOrderCommand command) { public ResultContainer routeUpdateOrder(RouteUpdateOrderCommand command) {

View File

@ -8,10 +8,12 @@ public interface LegEventService {
void prepareLeg(LegPrepareCommand command); void prepareLeg(LegPrepareCommand command);
//审批事件要从bpm或其他平台接收到一个真实订单 //审批事件要从bpm或其他平台接收到一个真实订单
void approveLeg(LegApprovalCommand command); void approveRoute(RouteApprovalCommand command);
void syncLeg(LegSyncCommand command); void syncLeg(LegSyncCommand command);
void approveLeg(LegApprovalCommand command);
//下单事件 //下单事件
ResultContainer orderLeg(LegOrderedCommand command); ResultContainer orderLeg(LegOrderedCommand command);

View File

@ -23,10 +23,10 @@ public class LegEventServiceImpl implements LegEventService {
//因为审批是针对整个订单的因此所有订单下属的行程节点触发审批事件 //因为审批是针对整个订单的因此所有订单下属的行程节点触发审批事件
//出发审批提交事件 需要生成 差旅单 将差旅但提交到供应商 //出发审批提交事件 需要生成 差旅单 将差旅但提交到供应商
//根据command里面选择的数据来讲差旅但提交到不同的实现类当中 //根据command里面选择的数据来讲差旅但提交到不同的实现类当中
@ListenTo(command = "LegApprovalCommand", order = 0) @ListenTo(command = "RouteApprovalCommand", order = 0)
@Override @Override
public void approveLeg(LegApprovalCommand command) { public void approveRoute(RouteApprovalCommand command) {
legEventHandler.approveLeg(command); legEventHandler.approveRoute(command);
} }
//这里需要获取同步类价格routeOrder同步到供应商 //这里需要获取同步类价格routeOrder同步到供应商
@ -36,6 +36,13 @@ public class LegEventServiceImpl implements LegEventService {
legEventHandler.syncLeg(command); legEventHandler.syncLeg(command);
} }
@ListenTo(command = "LegApprovalCommand", order = 0)
@Override
public void approveLeg(LegApprovalCommand command) {
legEventHandler.approveLeg(command);
}
//下单时间要求回传需要付款的金额以及生成对于的行程订单号如果没有行程订单号根据地点和时间进行匹配 //下单时间要求回传需要付款的金额以及生成对于的行程订单号如果没有行程订单号根据地点和时间进行匹配
@ListenTo(command = "LegOrderedCommand", order = 0) @ListenTo(command = "LegOrderedCommand", order = 0)
@Override @Override

View File

@ -1,7 +1,10 @@
package com.chint.domain.service.supplier; package com.chint.domain.service.supplier;
import com.chint.domain.aggregates.order.Location;
import com.chint.domain.repository.LocationRepository;
import com.chint.domain.value_object.OrderLegData; import com.chint.domain.value_object.OrderLegData;
import com.chint.domain.value_object.SupplierCallbackData; import com.chint.domain.value_object.SupplierCallbackData;
import com.chint.infrastructure.constant.OrderConstant;
import com.chint.interfaces.rest.ly.dto.ResultBackHotel; import com.chint.interfaces.rest.ly.dto.ResultBackHotel;
import com.chint.interfaces.rest.ly.dto.carorderdatapushback.CarDetailResult; import com.chint.interfaces.rest.ly.dto.carorderdatapushback.CarDetailResult;
import com.chint.interfaces.rest.ly.dto.flydatapushback.FlyDetailResult; import com.chint.interfaces.rest.ly.dto.flydatapushback.FlyDetailResult;
@ -11,6 +14,7 @@ import com.chint.interfaces.rest.ly.dto.search.response.filght.FlightOrderDetail
import com.chint.interfaces.rest.ly.dto.search.response.hotel.HotelDetailResponse; import com.chint.interfaces.rest.ly.dto.search.response.hotel.HotelDetailResponse;
import com.chint.interfaces.rest.ly.dto.search.response.train.TrainDetailResponse; import com.chint.interfaces.rest.ly.dto.search.response.train.TrainDetailResponse;
import com.chint.interfaces.rest.ly.dto.trainorderdatapushback.TrainDetailResult; import com.chint.interfaces.rest.ly.dto.trainorderdatapushback.TrainDetailResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Optional; import java.util.Optional;
@ -20,6 +24,10 @@ import static com.chint.infrastructure.constant.SupplierNameConstant.SUPPLIER_L_
@Component @Component
public class LYOrderDataAdapter implements OrderDataAdapter { public class LYOrderDataAdapter implements OrderDataAdapter {
@Autowired
private LocationRepository locationRepository;
@Override @Override
public Optional<OrderLegData> adapt(SupplierCallbackData supplierData) { public Optional<OrderLegData> adapt(SupplierCallbackData supplierData) {
return switch (supplierData.getProductType()) { return switch (supplierData.getProductType()) {
@ -54,6 +62,9 @@ public class LYOrderDataAdapter implements OrderDataAdapter {
private Optional<OrderLegData> hotelDateProcess(HotelDetailResult hotelDetailResult) { private Optional<OrderLegData> hotelDateProcess(HotelDetailResult hotelDetailResult) {
HotelDetailResponse.Data data = hotelDetailResult.getHotelDetailResponse().getData(); HotelDetailResponse.Data data = hotelDetailResult.getHotelDetailResponse().getData();
ResultBackHotel.DataObject dataObject = hotelDetailResult.getDataObject(); ResultBackHotel.DataObject dataObject = hotelDetailResult.getDataObject();
String cityName = data.getHotelInfo().getCityName();
long cityId = data.getHotelInfo().getCityId();
return Optional.of( return Optional.of(
OrderLegData.builder() OrderLegData.builder()
.productType(LEG_TYPE_HOTEL) .productType(LEG_TYPE_HOTEL)
@ -62,12 +73,30 @@ public class LYOrderDataAdapter implements OrderDataAdapter {
.selfOrderNo(dataObject.getTravelData().getTravelApplyNo()) .selfOrderNo(dataObject.getTravelData().getTravelApplyNo())
.actualOrderNo(data.getOrderInfo().getOrderSerialNo()) .actualOrderNo(data.getOrderInfo().getOrderSerialNo())
.hotelOrderDetailData(hotelDetailResult) .hotelOrderDetailData(hotelDetailResult)
// .orderStatus() .orderTime(data.getOrderInfo().getCreateTime())
// .originOrderStatus() .startTime(data.getOrderInfo().getOriginalCheckInDate())
.endTime(data.getOrderInfo().getOriginalCheckOutDate())
.orderStatus(hotelState(data.getOrderInfo().getOrderStatusDesc()))
.originOrderStatus(data.getOrderInfo().getOrderStatusDesc())
.originId(cityId)
.originName(cityName)
.destinationId(cityId)
.destinationName(cityName)
.supplierName(SUPPLIER_L_Y) .supplierName(SUPPLIER_L_Y)
.build() .build()
); );
} }
public Integer hotelState(String subNotifyType) {
return switch (subNotifyType) {
case "确认中" -> OrderConstant.ORDER_EVENT_PAYED;//确认中
case "待入住" -> OrderConstant.ORDER_EVENT_ORDERED;//已下单,
case "已退房","已入住" -> OrderConstant.ORDER_EVENT_FINISH;//已完成
case "已取消" -> OrderConstant.ORDER_EVENT_CANCEL;//取消
case "待提交" -> OrderConstant.ORDER_EVENT_PREPARE;//未下单
case "待支付" -> OrderConstant.ORDER_EVENT_ORDERED;//已下单
default -> -99;
};
}
private Optional<OrderLegData> carDateProcess(CarDetailResult carDetailResult) { private Optional<OrderLegData> carDateProcess(CarDetailResult carDetailResult) {
CarDetailResponse.Data data = carDetailResult.getCarDetailResponse().getData(); CarDetailResponse.Data data = carDetailResult.getCarDetailResponse().getData();

View File

@ -20,7 +20,7 @@ public class OrderLegData {
private String orderTime; //下单时间 private String orderTime; //下单时间
private String startTime; //开始时间 private String startTime; //开始时间
private String endTime; //结束时间 private String endTime; //结束时间
private Long originId; private Long originId;
private String originName; private String originName;
private Long destinationId; private Long destinationId;
private String destinationName; private String destinationName;
@ -84,6 +84,7 @@ public class OrderLegData {
private Object flightOrderDetailData; private Object flightOrderDetailData;
private Object otherOrderDetailData; private Object otherOrderDetailData;
public Builder() { public Builder() {
} }
@ -92,6 +93,21 @@ public class OrderLegData {
return this; return this;
} }
public Builder originName(String originName) {
this.originName = originName;
return this;
}
public Builder destinationName(String destinationName) {
this.destinationName = destinationName;
return this;
}
public void setDestinationName(String destinationName) {
this.destinationName = destinationName;
}
public Builder trainOrderDetailData(Object trainOrderDetailData) { public Builder trainOrderDetailData(Object trainOrderDetailData) {
this.trainOrderDetailData = trainOrderDetailData; this.trainOrderDetailData = trainOrderDetailData;
return this; return this;
@ -132,6 +148,7 @@ public class OrderLegData {
return this; return this;
} }
public Builder originId(Long originId) { public Builder originId(Long originId) {
this.originId = originId; this.originId = originId;
return this; return this;

View File

@ -8,4 +8,5 @@ public class PriceQueryData {
private String arriveCity; private String arriveCity;
private String departDate; private String departDate;
private String arriveDate; private String arriveDate;
private Integer ifRound;
} }

View File

@ -12,10 +12,12 @@ public class LegConstant {
public static final String LEG_STATUS_ORDERED_NAME = "已下单"; public static final String LEG_STATUS_ORDERED_NAME = "已下单";
public static final int LEG_STATUS_PAYED = 5; public static final int LEG_STATUS_PAYED = 5;
public static final String LEG_STATUS_PAYED_NAME = "已付款"; public static final String LEG_STATUS_PAYED_NAME = "已付款";
public static final int LEG_STATUS_FINISH = -2; public static final int LEG_STATUS_FINISH = 9;
public static final String LEG_STATUS_FINISH_NAME = "已结束"; public static final String LEG_STATUS_FINISH_NAME = "已结束";
public static final int LEG_STATUS_REJECT = -1; public static final int LEG_STATUS_REJECT = -1;
public static final String LEG_STATUS_REJECT_NAME = "审批未通过"; public static final String LEG_STATUS_REJECT_NAME = "审批未通过";
// 规划节点运输方式 // 规划节点运输方式
public static final int LEG_TYPE_TRAIN = 0; public static final int LEG_TYPE_TRAIN = 0;
public static final String LEG_TYPE_TRAIN_NAME = "火车"; public static final String LEG_TYPE_TRAIN_NAME = "火车";
@ -58,7 +60,7 @@ public class LegConstant {
public static final String LEG_EVENT_ORDERED_NAME = "下单事件"; public static final String LEG_EVENT_ORDERED_NAME = "下单事件";
public static final int LEG_EVENT_PAYED = 5; public static final int LEG_EVENT_PAYED = 5;
public static final String LEG_EVENT_PAYED_NAME = "付款事件"; public static final String LEG_EVENT_PAYED_NAME = "付款事件";
public static final int LEG_EVENT_FINISH = -2; public static final int LEG_EVENT_FINISH = 9;
public static final String LEG_EVENT_FINISH_NAME = "结束事件"; public static final String LEG_EVENT_FINISH_NAME = "结束事件";
public static final int LEG_EVENT_REJECT = -1; public static final int LEG_EVENT_REJECT = -1;
public static final String LEG_EVENT_REJECT_NAME = "拒绝事件"; public static final String LEG_EVENT_REJECT_NAME = "拒绝事件";

View File

@ -12,7 +12,7 @@ public class RouteConstant {
public static final String ORDER_STATUS_ORDERED_NAME = "已下单"; public static final String ORDER_STATUS_ORDERED_NAME = "已下单";
public static final int ORDER_STATUS_PAYED = 4; public static final int ORDER_STATUS_PAYED = 4;
public static final String ORDER_STATUS_PAYED_NAME = "已付款"; public static final String ORDER_STATUS_PAYED_NAME = "已付款";
public static final int ORDER_STATUS_FINISH = 5; public static final int ORDER_STATUS_FINISH = 9;
public static final String ORDER_STATUS_FINISH_NAME = "已结束"; public static final String ORDER_STATUS_FINISH_NAME = "已结束";
public static final int ORDER_STATUS_REJECT = -1; public static final int ORDER_STATUS_REJECT = -1;
public static final String ORDER_STATUS_REJECT_NAME = "审批拒绝"; public static final String ORDER_STATUS_REJECT_NAME = "审批拒绝";

View File

@ -94,6 +94,8 @@ public class LocationRepositoryImpl implements LocationRepository {
List<Location> hotCities = List<Location> hotCities =
jdbcLocationRepository.findByLocationPathNameInAndLevel(locationNames,3); jdbcLocationRepository.findByLocationPathNameInAndLevel(locationNames,3);
return hotCities; return hotCities;
} }

View File

@ -53,7 +53,7 @@ public class RouteRepositoryImpl implements RouteRepository {
String employeeNo = BaseContext.getCurrentUser().getEmployeeNo().toString(); String employeeNo = BaseContext.getCurrentUser().getEmployeeNo().toString();
return jdbcRouteRepository return jdbcRouteRepository
.findByUserIdAndRouteOrderNoContainingOrApproveOrderNo_CreatorAndRouteOrderNoContaining( .findByUserIdAndRouteOrderNoContainingOrApproveOrderNo_CreatorAndRouteOrderNoContaining(
Long.valueOf(employeeNo), employeeNo,
orderQueryData.getOrderNo(), orderQueryData.getOrderNo(),
employeeNo, employeeNo,
orderQueryData.getOrderNo(), orderQueryData.getOrderNo(),
@ -66,7 +66,7 @@ public class RouteRepositoryImpl implements RouteRepository {
.of(orderQueryData.getPageNum() - 1, orderQueryData.getPageSize(), Sort.by("updateTime")); .of(orderQueryData.getPageNum() - 1, orderQueryData.getPageSize(), Sort.by("updateTime"));
String employeeNo = BaseContext.getCurrentUser().getEmployeeNo().toString(); String employeeNo = BaseContext.getCurrentUser().getEmployeeNo().toString();
return jdbcRouteRepository.findByUserIdAndApproveOrderNo_InstructionsContainingOrApproveOrderNo_CreatorAndApproveOrderNo_InstructionsContaining( return jdbcRouteRepository.findByUserIdAndApproveOrderNo_InstructionsContainingOrApproveOrderNo_CreatorAndApproveOrderNo_InstructionsContaining(
Long.valueOf(employeeNo), employeeNo,
orderQueryData.getInstructions(), orderQueryData.getInstructions(),
employeeNo, employeeNo,
orderQueryData.getInstructions(), orderQueryData.getInstructions(),
@ -84,7 +84,7 @@ public class RouteRepositoryImpl implements RouteRepository {
.of(orderQueryData.getPageNum() - 1, orderQueryData.getPageSize(), Sort.by("updateTime")); .of(orderQueryData.getPageNum() - 1, orderQueryData.getPageSize(), Sort.by("updateTime"));
String employeeNo = BaseContext.getCurrentUser().getEmployeeNo().toString(); String employeeNo = BaseContext.getCurrentUser().getEmployeeNo().toString();
Page<RouteOrder> byUserId = jdbcRouteRepository Page<RouteOrder> byUserId = jdbcRouteRepository
.findByUserIdAndApproveOrderNo_ActualOrderNoNotNullOrApproveOrderNo_CreatorAndApproveOrderNo_ActualOrderNoNotNull(Long.valueOf(employeeNo), employeeNo, sort); .findByUserIdAndApproveOrderNo_ActualOrderNoNotNullOrApproveOrderNo_CreatorAndApproveOrderNo_ActualOrderNoNotNull(employeeNo, employeeNo, sort);
List<RouteOrder> orders = byUserId.toList(); List<RouteOrder> orders = byUserId.toList();
orders.forEach(RouteOrder::reloadStatus); orders.forEach(RouteOrder::reloadStatus);
return new PageResult<>(byUserId.getTotalElements(), orders); return new PageResult<>(byUserId.getTotalElements(), orders);
@ -93,6 +93,6 @@ public class RouteRepositoryImpl implements RouteRepository {
@Override @Override
public List<RouteOrder> findByActualOrderNoNotNull(OrderQueryData orderQueryData) { public List<RouteOrder> findByActualOrderNoNotNull(OrderQueryData orderQueryData) {
String employeeNo = BaseContext.getCurrentUser().getEmployeeNo().toString(); String employeeNo = BaseContext.getCurrentUser().getEmployeeNo().toString();
return jdbcRouteRepository.findByUserIdAndApproveOrderNo_ActualOrderNoNotNullOrApproveOrderNo_CreatorAndApproveOrderNo_ActualOrderNoNotNull(Long.valueOf(employeeNo), employeeNo); return jdbcRouteRepository.findByUserIdAndApproveOrderNo_ActualOrderNoNotNullOrApproveOrderNo_CreatorAndApproveOrderNo_ActualOrderNoNotNull(employeeNo, employeeNo);
} }
} }

View File

@ -23,17 +23,17 @@ public interface JdbcRouteRepository extends CrudRepository<RouteOrder, Long> {
RouteOrder findByRouteOrderNo(String routeOrderNo); RouteOrder findByRouteOrderNo(String routeOrderNo);
Page<RouteOrder> findByUserIdAndRouteOrderNoContainingOrApproveOrderNo_CreatorAndRouteOrderNoContaining(Long userId, String routeOrderNo, String approveOrderNo_creator, String routeOrderNo2, Pageable pageable); Page<RouteOrder> findByUserIdAndRouteOrderNoContainingOrApproveOrderNo_CreatorAndRouteOrderNoContaining(String userId, String routeOrderNo, String approveOrderNo_creator, String routeOrderNo2, Pageable pageable);
Page<RouteOrder> findByUserIdAndApproveOrderNo_InstructionsContainingOrApproveOrderNo_CreatorAndApproveOrderNo_InstructionsContaining(Long userId, String approveOrderNo_instructions, String approveOrderNo_creator, String approveOrderNo_instructions2, Pageable pageable); Page<RouteOrder> findByUserIdAndApproveOrderNo_InstructionsContainingOrApproveOrderNo_CreatorAndApproveOrderNo_InstructionsContaining(String userId, String approveOrderNo_instructions, String approveOrderNo_creator, String approveOrderNo_instructions2, Pageable pageable);
Page<RouteOrder> findByUserIdAndApproveOrderNo_ActualOrderNoNotNullOrApproveOrderNo_CreatorAndApproveOrderNo_ActualOrderNoNotNull(Long userId, String approveOrderNo_creator, Pageable pageable); Page<RouteOrder> findByUserIdAndApproveOrderNo_ActualOrderNoNotNullOrApproveOrderNo_CreatorAndApproveOrderNo_ActualOrderNoNotNull(String userId, String approveOrderNo_creator, Pageable pageable);
List<RouteOrder> findByUserIdAndApproveOrderNo_ActualOrderNoNotNullOrApproveOrderNo_CreatorAndApproveOrderNo_ActualOrderNoNotNull(Long userId, String approveOrderNo_creator); List<RouteOrder> findByUserIdAndApproveOrderNo_ActualOrderNoNotNullOrApproveOrderNo_CreatorAndApproveOrderNo_ActualOrderNoNotNull(String userId, String approveOrderNo_creator);
} }

View File

@ -29,40 +29,40 @@ public class ResultBackHotel {
@Data @Data
public static class OrderInfo { public static class OrderInfo {
private int orderType; private Integer orderType;
private String orderSerialNo; private String orderSerialNo;
private String outEnterpriseId; private String outEnterpriseId;
private int protocolType; private Integer protocolType;
private double saveTotalPrice; private Double saveTotalPrice;
private double totalStandardPrice; private Double totalStandardPrice;
private String outEmployeeId; private String outEmployeeId;
private String employeeId; private String employeeId;
private String employeeCode; private String employeeCode;
private String changeOrderSerialNo; private String changeOrderSerialNo;
private boolean isChangeOrder; private Boolean isChangeOrder;
private int orderStatus; private Integer orderStatus;
private String orderStatusDesc; private String orderStatusDesc;
private String createTime; private String createTime;
private int payType; private Integer payType;
private int paymentType; private Integer paymentType;
private double totalPrice; private Double totalPrice;
private double diffPrice; private Double diffPrice;
private double personalDiffPrice; private Double personalDiffPrice;
private double companyDiffPrice; private Double companyDiffPrice;
private double roomTotalPrice; private Double roomTotalPrice;
private double servicePrice; private Double servicePrice;
private double afterSettlementServicePrice; private Double afterSettlementServicePrice;
private String contactName; private String contactName;
private String contactPhone; private String contactPhone;
private String contactEmail; private String contactEmail;
private String refundRule; private String refundRule;
private String refundIntro; private String refundIntegerro;
private String servicePhone; private String servicePhone;
private boolean canRefund; private Boolean canRefund;
private double companyPrice; private Double companyPrice;
private double personalPrice; private Double personalPrice;
private String supplierOrderCreateTime; private String supplierOrderCreateTime;
private boolean ruleViolate; private Boolean ruleViolate;
private RuleViolateDetail ruleViolateDetail; private RuleViolateDetail ruleViolateDetail;
private String foulReason; private String foulReason;
private String foulReasonCode; private String foulReasonCode;
@ -71,10 +71,10 @@ public class ResultBackHotel {
private String cancelReasons; private String cancelReasons;
private String customerOrderNo; private String customerOrderNo;
private String customerRefundOrderNo; private String customerRefundOrderNo;
private int customerInvoiceCode; private Integer customerInvoiceCode;
private String customerInvoiceDesc; private String customerInvoiceDesc;
private int halfDayRoom; private Integer halfDayRoom;
private double businessAmount; private Double businessAmount;
} }
@Data @Data
@ -92,23 +92,23 @@ public class ResultBackHotel {
private String checkInDate; private String checkInDate;
private String checkOutDate; private String checkOutDate;
private String hotelTel; private String hotelTel;
private int checkInTime; private Integer checkIntegerime;
private String roomName; private String roomName;
private String bedType; private String bedType;
private String breakfast; private String breakfast;
private int roomNum; private Integer roomNum;
private int nightNum; private Integer nightNum;
private double bdLon; private Double bdLon;
private double bdLat; private Double bdLat;
} }
@Data @Data
public static class DayPrice { public static class DayPrice {
private String date; private String date;
private String dateStr; private String dateStr;
private double price; private Double price;
private double marketPrice; private Double marketPrice;
private double savePrice; private Double savePrice;
private String breakfast; private String breakfast;
} }
@ -146,16 +146,16 @@ public class ResultBackHotel {
private String checkInDate; private String checkInDate;
private String checkOutDate; private String checkOutDate;
private String confirmNo; private String confirmNo;
private int orderStatus; private Integer orderStatus;
private String orderStatusDesc; private String orderStatusDesc;
private double salesPrice; private Double salesPrice;
private double costPrice; private Double costPrice;
private double marketPrice; private Double marketPrice;
private double savePrice; private Double savePrice;
private double standardPrice; private Double standardPrice;
private String dayStandardPrice; private String dayStandardPrice;
private double servicePrice; private Double servicePrice;
private double afterSettlementServicePrice; private Double afterSettlementServicePrice;
} }

View File

@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import static com.chint.infrastructure.constant.Constant.*; import static com.chint.infrastructure.constant.Constant.*;
import static com.chint.infrastructure.constant.OrderConstant.ORDER_EVENT_ETA;
/** /**
* 酒店订单数据回推控制层 * 酒店订单数据回推控制层
@ -61,6 +62,14 @@ public class HotelBackController {
//状态映射 //状态映射
command.eventType(mapHotelState(notification.getSubNotifyType())); command.eventType(mapHotelState(notification.getSubNotifyType()));
command.sendToQueue(); command.sendToQueue();
if (dataObject.getOrderInfo().getRuleViolate()){
OrderStatusChangeCommand command2 = Command.of(OrderStatusChangeCommand.class)
.orderNo(serialNo)
.outStatus(String.valueOf(notification.getSubNotifyType()));
//状态映射
command.eventType(ORDER_EVENT_ETA);
command.sendToQueue();
}
return new LYNoteResponse("100", "成功收到消息"); return new LYNoteResponse("100", "成功收到消息");
} }
return new LYNoteResponse("200", "未收到消息"); return new LYNoteResponse("200", "未收到消息");

View File

@ -4,8 +4,10 @@ import cn.hutool.extra.pinyin.PinyinUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.chint.application.services.login.strategy.PailaLoginStrategy; import com.chint.application.services.login.strategy.PailaLoginStrategy;
import com.chint.domain.aggregates.order.Leg;
import com.chint.domain.aggregates.order.Location; import com.chint.domain.aggregates.order.Location;
import com.chint.domain.aggregates.user.User; import com.chint.domain.aggregates.user.User;
import com.chint.domain.repository.LegRepository;
import com.chint.domain.repository.LocationRepository; import com.chint.domain.repository.LocationRepository;
import com.chint.domain.repository.OrderDetailRepository; import com.chint.domain.repository.OrderDetailRepository;
import com.chint.domain.repository.RouteRepository; import com.chint.domain.repository.RouteRepository;
@ -53,6 +55,9 @@ class RouteApplicationTests {
@Autowired @Autowired
private PailaLoginStrategy pailaLoginStrategy; private PailaLoginStrategy pailaLoginStrategy;
@Autowired
private LegRepository legRepository;
private User user = new User(1L, "230615020", 1, "卢麟哲", "1033719135@qq.com", "15857193365"); private User user = new User(1L, "230615020", 1, "卢麟哲", "1033719135@qq.com", "15857193365");
@ -139,9 +144,9 @@ class RouteApplicationTests {
} }
@Test @Test
void loginSign() { void loginSign() {
String sfno = "230615020"; String sfno = "090223001";
String syscode = "FSSC"; String syscode = "FSSC";
String billcode = "CLSQ20240228"; String billcode = "CLSQ240226000004";
String companycode = "正泰集团股份有限公司"; String companycode = "正泰集团股份有限公司";
String sec = "Superdandan"; String sec = "Superdandan";
String timespan = "1708908662738"; String timespan = "1708908662738";
@ -202,6 +207,12 @@ class RouteApplicationTests {
orderDetailRepository.deleteById(31L); orderDetailRepository.deleteById(31L);
orderDetailRepository.deleteById(33L); orderDetailRepository.deleteById(33L);
} }
@Test
void deleteLeg(){
legRepository.deleteById(Leg.of(506L));
legRepository.deleteById(Leg.of(507L));
}
// @Test // @Test
void ssoLogin(){ void ssoLogin(){