修复同步订单代码逻辑
This commit is contained in:
parent
b4d8f012ca
commit
3656d28727
|
@ -21,11 +21,16 @@ import static com.chint.infrastructure.constant.Constant.SUCCESS;
|
||||||
public class OrderOutController {
|
public class OrderOutController {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private OrderQuery orderQuery;
|
private OrderQuery orderQuery;
|
||||||
|
|
||||||
|
@ApiOperation("根据临时单号查询订单")
|
||||||
|
@PostMapping("/query/billcode")
|
||||||
|
public Result<RouteOrder> queryOrderByBillCode(@RequestBody OrderQueryData queryData) {
|
||||||
|
return Result.Success(SUCCESS, orderQuery.queryByBillCode(queryData.getBillcode()).reloadStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation("查询行程规划订单详情")
|
@ApiOperation("查询行程规划订单详情")
|
||||||
@PostMapping("/query")
|
@PostMapping("/query")
|
||||||
public Result<RouteOrder> queryOrder(@RequestBody OrderQueryData queryData) {
|
public Result<RouteOrder> queryOrder(@RequestBody OrderQueryData queryData) {
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
package com.chint.application.queryies;
|
package com.chint.application.queryies;
|
||||||
|
|
||||||
import com.chint.domain.aggregates.order.RouteOrder;
|
import com.chint.domain.aggregates.order.RouteOrder;
|
||||||
import com.chint.domain.aggregates.user.User;
|
|
||||||
import com.chint.domain.repository.RouteRepository;
|
import com.chint.domain.repository.RouteRepository;
|
||||||
import com.chint.domain.service.OrderDomainService;
|
import com.chint.domain.service.OrderDomainService;
|
||||||
import com.chint.domain.value_object.OrderQueryData;
|
import com.chint.domain.value_object.OrderQueryData;
|
||||||
import com.chint.infrastructure.util.BaseContext;
|
|
||||||
import com.chint.infrastructure.util.PageResult;
|
import com.chint.infrastructure.util.PageResult;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -36,4 +34,8 @@ public class OrderQuery {
|
||||||
orderDomainService.queryLocation(routeOrder.getLegItems());
|
orderDomainService.queryLocation(routeOrder.getLegItems());
|
||||||
return routeOrder;
|
return routeOrder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RouteOrder queryByBillCode(String billCode) {
|
||||||
|
return routeRepository.findByFakeOrderNo(billCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,7 +77,7 @@ public class LegEventServiceImpl implements LegEventService {
|
||||||
@Override
|
@Override
|
||||||
public void syncLeg(LegSyncCommand command) {
|
public void syncLeg(LegSyncCommand command) {
|
||||||
SyncLegData data = command.getData();
|
SyncLegData data = command.getData();
|
||||||
RouteOrder routeOrder = routeRepository.queryById(data.getRouteId());
|
RouteOrder routeOrder = routeRepository.queryById(data.getRouteId()).reloadStatus();
|
||||||
if (routeOrder.getOrderStatus().equals(ORDER_STATUS_APPROVAL)) {
|
if (routeOrder.getOrderStatus().equals(ORDER_STATUS_APPROVAL)) {
|
||||||
String supplierName = data.getSupplierName();
|
String supplierName = data.getSupplierName();
|
||||||
routeOrder.setSupplierName(supplierName);
|
routeOrder.setSupplierName(supplierName);
|
||||||
|
@ -85,9 +85,9 @@ public class LegEventServiceImpl implements LegEventService {
|
||||||
routeOrder.getLegItems().forEach(leg -> leg.getEventList().add(
|
routeOrder.getLegItems().forEach(leg -> leg.getEventList().add(
|
||||||
legEventFactory.creatLegEvent(command.getLegEventType())
|
legEventFactory.creatLegEvent(command.getLegEventType())
|
||||||
));
|
));
|
||||||
syncAdapter.of(supplierName).syncSupplierOrder(routeOrder.reloadStatus());
|
|
||||||
//保存routeOrder的状态
|
//保存routeOrder的状态
|
||||||
routeRepository.save(routeOrder);
|
routeRepository.save(routeOrder);
|
||||||
|
syncAdapter.of(supplierName).syncSupplierOrder(routeOrder.reloadStatus());
|
||||||
} else {
|
} else {
|
||||||
throw new CommandException("订单未提交审批");
|
throw new CommandException("订单未提交审批");
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,10 +8,17 @@ import com.chint.domain.repository.LocationRepository;
|
||||||
import com.chint.infrastructure.util.BaseContext;
|
import com.chint.infrastructure.util.BaseContext;
|
||||||
import com.chint.interfaces.rest.ctrip.CTripApprovalRequest;
|
import com.chint.interfaces.rest.ctrip.CTripApprovalRequest;
|
||||||
import com.chint.interfaces.rest.ctrip.dto.approval.ApprovalRequest;
|
import com.chint.interfaces.rest.ctrip.dto.approval.ApprovalRequest;
|
||||||
|
import com.chint.interfaces.rest.ctrip.dto.approval.PassengerDetail;
|
||||||
|
import com.chint.interfaces.rest.ctrip.dto.approval.hotel.HotelEndorsementDetail;
|
||||||
import com.chint.interfaces.rest.ctrip.dto.approval.quick.RankInfo;
|
import com.chint.interfaces.rest.ctrip.dto.approval.quick.RankInfo;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.chint.infrastructure.constant.Constant.LEG_TYPE_HOTEL;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class CTripOrderSyncAdapter implements SupplierOrderSync {
|
public class CTripOrderSyncAdapter implements SupplierOrderSync {
|
||||||
|
|
||||||
|
@ -26,13 +33,29 @@ public class CTripOrderSyncAdapter implements SupplierOrderSync {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void syncSupplierOrder(RouteOrder order) {
|
public void syncSupplierOrder(RouteOrder order) {
|
||||||
// User currentUser = BaseContext.getCurrentUser();
|
System.out.println("开始同步协程订单");
|
||||||
// ApproveOrderNo approveOrderNo = order.getApproveOrderNo();
|
User currentUser = BaseContext.getCurrentUser();
|
||||||
// new RankInfo()
|
ApproveOrderNo approveOrderNo = order.getApproveOrderNo();
|
||||||
// ApprovalRequest.buildApproval(currentUser.getEmployeeNo(), approveOrderNo.getActualOrderNo(), )
|
RankInfo rankInfo = RankInfo.of(currentUser.getRankCode());
|
||||||
//
|
List<String> cityCode = new ArrayList<>();
|
||||||
// approvalRequest.approval()
|
List<HotelEndorsementDetail> hotelList = new ArrayList<>();
|
||||||
//
|
order.getLegItems().forEach(
|
||||||
// System.out.println("开始同步协程订单");
|
leg -> {
|
||||||
|
cityCode.add(
|
||||||
|
cityRepository.findByCityName(leg.getOriginLocation().getLocationName()).getCity()
|
||||||
|
);
|
||||||
|
if (leg.getLegType().equals(LEG_TYPE_HOTEL)) {
|
||||||
|
hotelList.add(
|
||||||
|
HotelEndorsementDetail.of(cityCode.stream().distinct().toList())
|
||||||
|
.passenger(PassengerDetail.of(String.valueOf(currentUser.getEmployeeNo())))
|
||||||
|
.starTime(leg.getStartTime())
|
||||||
|
.endTime(leg.getEndTime())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ApprovalRequest approvalRequestParam = ApprovalRequest.buildApproval(String.valueOf(currentUser.getEmployeeNo()), approveOrderNo.getActualOrderNo(), rankInfo)
|
||||||
|
.withHotel(hotelList);
|
||||||
|
approvalRequest.approval(approvalRequestParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,4 +6,6 @@ import lombok.Data;
|
||||||
@Data
|
@Data
|
||||||
public class OrderQueryData extends BaseQuery {
|
public class OrderQueryData extends BaseQuery {
|
||||||
private Long routeId;
|
private Long routeId;
|
||||||
|
|
||||||
|
private String billcode;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ public class RouteRepositoryImpl implements RouteRepository {
|
||||||
return jdbcRouteRepository.findByRouteId(orderId);
|
return jdbcRouteRepository.findByRouteId(orderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RouteOrder findByFakeOrderNo(String fakeOrderNo) {
|
public RouteOrder findByFakeOrderNo(String fakeOrderNo) {
|
||||||
return jdbcRouteRepository.findByApproveOrderNo_FakeOrderNo(fakeOrderNo);
|
return jdbcRouteRepository.findByApproveOrderNo_FakeOrderNo(fakeOrderNo);
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.chint.infrastructure.util;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
public class DateTimeUtil {
|
||||||
|
|
||||||
|
public static String timeToStr(LocalDateTime input) {
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
|
return input.format(formatter);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,10 @@
|
||||||
package com.chint.interfaces.rest.ctrip.dto.approval;
|
package com.chint.interfaces.rest.ctrip.dto.approval;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
public class PassengerDetail {
|
public class PassengerDetail {
|
||||||
|
|
||||||
// 姓名 - 必填
|
// 姓名 - 必填
|
||||||
|
@ -62,4 +65,10 @@ public class PassengerDetail {
|
||||||
|
|
||||||
// Getters and setters for each field would be included below...
|
// Getters and setters for each field would be included below...
|
||||||
|
|
||||||
|
public static PassengerDetail of(String employeeNo) {
|
||||||
|
PassengerDetail passengerDetail = new PassengerDetail();
|
||||||
|
passengerDetail.setEID(employeeNo);
|
||||||
|
return passengerDetail;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,10 +1,16 @@
|
||||||
package com.chint.interfaces.rest.ctrip.dto.approval.hotel;
|
package com.chint.interfaces.rest.ctrip.dto.approval.hotel;
|
||||||
|
|
||||||
|
import com.chint.infrastructure.util.DateTimeUtil;
|
||||||
import com.chint.interfaces.rest.ctrip.dto.approval.CurrencyType;
|
import com.chint.interfaces.rest.ctrip.dto.approval.CurrencyType;
|
||||||
import com.chint.interfaces.rest.ctrip.dto.approval.PassengerDetail;
|
import com.chint.interfaces.rest.ctrip.dto.approval.PassengerDetail;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
public class HotelEndorsementDetail {
|
public class HotelEndorsementDetail {
|
||||||
|
|
||||||
// 产品类型
|
// 产品类型
|
||||||
|
@ -68,4 +74,30 @@ public class HotelEndorsementDetail {
|
||||||
private long preVerifyFields;
|
private long preVerifyFields;
|
||||||
|
|
||||||
// Getters and setters...
|
// Getters and setters...
|
||||||
|
|
||||||
|
public static HotelEndorsementDetail of(List<String> cityCodes) {
|
||||||
|
HotelEndorsementDetail hotelEndorsementDetail = new HotelEndorsementDetail();
|
||||||
|
hotelEndorsementDetail.setCheckInCityCodes(cityCodes);
|
||||||
|
return hotelEndorsementDetail;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HotelEndorsementDetail passenger(PassengerDetail passengerDetail) {
|
||||||
|
if (this.passengerList == null) {
|
||||||
|
this.passengerList = new ArrayList<>();
|
||||||
|
}
|
||||||
|
this.passengerList.add(passengerDetail);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HotelEndorsementDetail starTime(LocalDateTime startTime) {
|
||||||
|
this.checkInDateBegin = DateTimeUtil.timeToStr(startTime);
|
||||||
|
this.checkOutDateBegin = DateTimeUtil.timeToStr(startTime);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HotelEndorsementDetail endTime(LocalDateTime endTime) {
|
||||||
|
this.checkInDateEnd = DateTimeUtil.timeToStr(endTime);
|
||||||
|
this.checkOutDateEnd = DateTimeUtil.timeToStr(endTime);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -47,8 +47,8 @@ public class UserHttpRequestImpl implements UserHttpRequest {
|
||||||
level = level.substring(0, level.length() - 3) + "M0";
|
level = level.substring(0, level.length() - 3) + "M0";
|
||||||
}
|
}
|
||||||
TravelRankDTO loadTravelRank = loadTravelRank(new TravelRankParam(level));
|
TravelRankDTO loadTravelRank = loadTravelRank(new TravelRankParam(level));
|
||||||
user.setRankCode(loadTravelRank.getLEVEL_MAPPING_CODE());
|
// user.setRankCode(loadTravelRank.getLEVEL_MAPPING_CODE());
|
||||||
// user.setRankCode("M0");
|
user.setRankCode("测试职级");
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue