修复bug

This commit is contained in:
lulz1 2024-02-20 09:28:07 +08:00
parent 7b67196eff
commit d771a5b068
13 changed files with 220 additions and 67 deletions

View File

@ -0,0 +1,48 @@
package com.chint.application.dtos.response;
import com.chint.domain.aggregates.order.Location;
import com.chint.domain.aggregates.order.OrderDetail;
import com.chint.domain.value_object.enums.CurrencyType;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
import org.springframework.data.relational.core.mapping.Column;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class LegRes {
@Id
private Long legId;
private String legNo;
private Integer legType;
private LocalDateTime startTime;
private LocalDateTime endTime;
private String estimateAmount;
private LocalDateTime createTime;
private LocationRes originLocation;
private LocationRes destinationLocation;
@Transient
private String amount;
@Transient
private String legTypeName;
@Transient
private Integer legStatus;
@Transient
private String legStatusName;
@Transient
private CurrencyType currencyType;
@Transient
private List<OrderDetail> orderDetails; //这个属性不做持久化保存 根据下单事件进行获取
}

View File

@ -1,12 +1,17 @@
package com.chint.application.dtos.response; package com.chint.application.dtos.response;
import cn.hutool.core.bean.BeanUtil;
import com.chint.domain.aggregates.order.Location;
import lombok.Data; import lombok.Data;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
@Data @Data
public class LocationRes { public class LocationRes {
@Id @Id
private Long locationId; private Long locationId;
private String locationName; private String locationName;
public static LocationRes copyFrom(Location location) {
return BeanUtil.copyProperties(location, LocationRes.class);
}
} }

View File

@ -0,0 +1,7 @@
package com.chint.application.dtos.response;
import lombok.Data;
@Data
public class OrderDetailRes {
}

View File

@ -0,0 +1,39 @@
package com.chint.application.dtos.response;
import com.chint.domain.aggregates.order.ApproveOrderNo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Embedded;
import java.time.LocalDateTime;
@Data
public class RouteOrderPageRes {
@Id
@Column("route_id")
private Long routeId;
//差旅订单单号
private String routeOrderNo;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime bookingTime;
private Long userId;
//审批订单号
@Embedded.Nullable
private ApproveOrderNo approveOrderNo;
//差旅订单总价值
private String amount;
private String estimateAmount;
private Integer orderStatus;
private String approvalStatus;
private String orderStatusName;
private String startTime;
private String endTime;
private String supplierName;
private String supplierCNName;
}

View File

@ -0,0 +1,24 @@
package com.chint.application.dtos.response;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
@Data
public class UserRes {
@Id
private Long userId;
private Long employeeNo;
private Integer employeeLevel;
private String name;
private String email;
private String gender;
private String phoneNumber;
private String password;
@Transient
private String rankCode;
@Transient
private String companyCode;
@Transient
private String workStatus;
}

View File

@ -1,6 +1,8 @@
package com.chint.application.out; package com.chint.application.out;
import cn.hutool.core.bean.BeanUtil;
import com.chint.application.dtos.response.RouteOrderPageRes;
import com.chint.application.dtos.trip.TripCallback; import com.chint.application.dtos.trip.TripCallback;
import com.chint.application.queryies.OrderQuery; import com.chint.application.queryies.OrderQuery;
import com.chint.domain.aggregates.order.RouteOrder; import com.chint.domain.aggregates.order.RouteOrder;
@ -17,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import static com.chint.infrastructure.constant.Constant.SUCCESS; import static com.chint.infrastructure.constant.Constant.SUCCESS;
@RestController @RestController
@ -43,8 +47,14 @@ public class OrderOutController {
@ApiOperation("分页查询行程规划订单") @ApiOperation("分页查询行程规划订单")
@PostMapping("/pageQuery") @PostMapping("/pageQuery")
public Result<PageResult<RouteOrder>> pageQuery(@RequestBody OrderQueryData queryData) { public Result<PageResult<RouteOrderPageRes>> pageQuery(@RequestBody OrderQueryData queryData) {
return Result.Success(SUCCESS, orderQuery.pageQuery(queryData)); PageResult<RouteOrder> routeOrderPageResult = orderQuery.pageQuery(queryData);
List<RouteOrderPageRes> routeOrderPageRes = routeOrderPageResult
.getRecords()
.stream()
.map(routeOrder -> BeanUtil.copyProperties(routeOrder, RouteOrderPageRes.class))
.toList();
return Result.Success(SUCCESS, new PageResult<>(routeOrderPageResult.getTotal(), routeOrderPageRes));
} }
@ApiOperation("查询火车估算价格") @ApiOperation("查询火车估算价格")

View File

@ -1,29 +1,25 @@
package com.chint.application.out; package com.chint.application.out;
import com.chint.domain.repository.UserRepository; import cn.hutool.core.bean.BeanUtil;
import com.chint.application.dtos.response.UserRes;
import com.chint.domain.aggregates.user.User;
import com.chint.infrastructure.util.BaseContext;
import com.chint.infrastructure.util.Result;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; 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.SUCCESS;
@RestController @RestController
@RequestMapping("/users") @RequestMapping("/users")
public class UserController { public class UserController {
// @Autowired
// private final UserRepository userRepository; @ApiOperation("根据Id查询用户信息")
// @PostMapping("/query")
// public Result<UserRes> getUserByEmployeeNo() {
// User currentUser = BaseContext.getCurrentUser();
// @ApiOperation("根据Id查询用户信息") return Result.Success(SUCCESS, BeanUtil.copyProperties(currentUser, UserRes.class));
// @PostMapping("/query") }
// public Result<UserVO> getUserById(@RequestBody long id) {
// UserVO user = userService.findById(id);
// if (user != null) {
// return new Result<UserVO>(SUCCESS, user);
// } else {
// return Result.error(FAILURE);
// }
// }
} }

View File

@ -33,6 +33,7 @@ public class Leg {
private Integer legType; private Integer legType;
private LocalDateTime startTime; private LocalDateTime startTime;
private LocalDateTime endTime; private LocalDateTime endTime;

View File

@ -39,7 +39,7 @@ public class RouteOrder extends BaseEntity {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime bookingTime; private LocalDateTime bookingTime;
private Long userId; private Long userId;
private String supplierName;
//审批订单号 //审批订单号
@Embedded.Nullable @Embedded.Nullable
private ApproveOrderNo approveOrderNo; private ApproveOrderNo approveOrderNo;
@ -58,8 +58,9 @@ public class RouteOrder extends BaseEntity {
private String startTime; private String startTime;
@Transient @Transient
private String endTime; private String endTime;
@Transient
private String supplierCNName;
private String supplierName;
@MappedCollection(idColumn = "route_id", keyColumn = "route_order_key") @MappedCollection(idColumn = "route_id", keyColumn = "route_order_key")
private List<Leg> legItems; private List<Leg> legItems;
@ -119,7 +120,7 @@ public class RouteOrder extends BaseEntity {
} }
public RouteOrder addOrderDetail(OrderDetail orderDetail) { public RouteOrder addOrderDetail(OrderDetail orderDetail) {
if(this.orderDetails == null){ if (this.orderDetails == null) {
this.orderDetails = new ArrayList<>(); this.orderDetails = new ArrayList<>();
} }
this.orderDetails.add(orderDetail); this.orderDetails.add(orderDetail);
@ -127,14 +128,14 @@ public class RouteOrder extends BaseEntity {
} }
public RouteOrder addApprovalEvent(ApprovalEvent approvalEvent) { public RouteOrder addApprovalEvent(ApprovalEvent approvalEvent) {
if(this.approveEvents == null){ if (this.approveEvents == null) {
this.approveEvents = new ArrayList<>(); this.approveEvents = new ArrayList<>();
} }
this.approveEvents.add(approvalEvent); this.approveEvents.add(approvalEvent);
return this; return this;
} }
private RouteOrder reloadApprovalStatus(){ private RouteOrder reloadApprovalStatus() {
if (this.approveEvents != null && !this.approveEvents.isEmpty()) { if (this.approveEvents != null && !this.approveEvents.isEmpty()) {
this.approveEvents.stream() this.approveEvents.stream()
.max(Comparator.comparingLong(ApprovalEvent::getApprovalEventId)) .max(Comparator.comparingLong(ApprovalEvent::getApprovalEventId))
@ -161,7 +162,14 @@ public class RouteOrder extends BaseEntity {
.orElse(KEEP_TWO_DECIMAL_ZERO); .orElse(KEEP_TWO_DECIMAL_ZERO);
this.updateStatus(); this.updateStatus();
this.orderStatusName = translateOrderStatus(this.orderStatus); this.orderStatusName = translateOrderStatus(this.orderStatus);
//根据节点时间更新订单时间
reloadTime(); reloadTime();
//更新供应商中文名称
if(this.supplierName != null){
this.supplierCNName = translateOrderSupplierName(this.supplierName);
}
return this; return this;
} }
@ -213,7 +221,10 @@ public class RouteOrder extends BaseEntity {
} }
public void updateStatus() { public void updateStatus() {
if (allItemsInStatus(4)) { // 首先检查所有项是否都为-1状态
if (allItemsInStatus(-1)) {
this.orderStatus = -1;
} else if (allItemsInStatus(4)) {
this.orderStatus = 4; this.orderStatus = 4;
} else if (allItemsInStatus(3)) { } else if (allItemsInStatus(3)) {
this.orderStatus = 3; this.orderStatus = 3;
@ -221,19 +232,17 @@ public class RouteOrder extends BaseEntity {
this.orderStatus = 2; this.orderStatus = 2;
} else if (allItemsInStatus(1)) { } else if (allItemsInStatus(1)) {
this.orderStatus = 1; this.orderStatus = 1;
} else if (allItemsInStatus(-1)) {
this.orderStatus = -1;
} else { } else {
this.orderStatus = 0; // 或其他适当的默认状态 this.orderStatus = 0; // 或其他适当的默认状态
} }
} }
private boolean allItemsInStatus(int targetStatus) { private boolean allItemsInStatus(int targetStatus) {
if (this.getLegItems().isEmpty()) { if (this.legItems.isEmpty()) {
return false; return false;
} }
for (Leg item : this.legItems) { for (Leg item : this.legItems) {
if (item.getLegStatus() < targetStatus) { if (item.getLegStatus() != targetStatus) {
return false; return false;
} }
} }
@ -266,4 +275,12 @@ public class RouteOrder extends BaseEntity {
} }
return this; return this;
} }
private String translateOrderSupplierName(String supplierName) {
return switch (supplierName) {
case SUPPLIER_L_Y -> SUPPLIER_L_Y_CN_NAME;
case SUPPLIER_C_TRIP -> SUPPLIER_C_TRIP_CN_NAME;
default -> "未知供应商";
};
}
} }

View File

@ -2,6 +2,7 @@ package com.chint.domain.aggregates.user;
import com.auth0.jwt.interfaces.Claim; import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.DecodedJWT; import com.auth0.jwt.interfaces.DecodedJWT;
import com.chint.domain.aggregates.base.BaseEntity;
import com.chint.domain.value_object.UserLoginParam; import com.chint.domain.value_object.UserLoginParam;
import com.google.gson.Gson; import com.google.gson.Gson;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@ -155,7 +155,9 @@ public class Constant {
public static final String TRAVEL_RANK_BASE_URL = "http://10.10.14.178:8080"; public static final String TRAVEL_RANK_BASE_URL = "http://10.10.14.178:8080";
public static final String TRAVEL_RANK_PATH = "/fssc/queryBill/queryTravelLevelByRank"; public static final String TRAVEL_RANK_PATH = "/fssc/queryBill/queryTravelLevelByRank";
public static final String SUPPLIER_C_TRIP = "CTrip"; public static final String SUPPLIER_C_TRIP = "CTrip";
public static final String SUPPLIER_C_TRIP_CN_NAME = "携程";
public static final String SUPPLIER_L_Y = "LY"; public static final String SUPPLIER_L_Y = "LY";
public static final String SUPPLIER_L_Y_CN_NAME = "同程";
// 携程 // 携程
public static final String C_TRIP_BASE_URL = "https://ct.ctrip.com"; public static final String C_TRIP_BASE_URL = "https://ct.ctrip.com";

View File

@ -6,6 +6,9 @@ package com.chint.interfaces.rest.user;
//import com.chint.dc.api.dto.DataCenterOption; //import com.chint.dc.api.dto.DataCenterOption;
//import com.chint.dc.api.service.DataCenterService; //import com.chint.dc.api.service.DataCenterService;
import com.chint.dc.api.DataCenterResult;
import com.chint.dc.api.dto.DataCenterOption;
import com.chint.dc.api.service.DataCenterService;
import com.chint.domain.aggregates.user.User; import com.chint.domain.aggregates.user.User;
import com.chint.interfaces.rest.base.PostRequest; import com.chint.interfaces.rest.base.PostRequest;
import com.chint.interfaces.rest.user.dto.*; import com.chint.interfaces.rest.user.dto.*;
@ -41,14 +44,14 @@ public class UserHttpRequestImpl implements UserHttpRequest {
} }
private User loadSFAndRank(User user) { private User loadSFAndRank(User user) {
// List<UserDataDTO> loadSFInfo = loadSFInfo(user); List<UserDataDTO> loadSFInfo = loadSFInfo(user);
// String custManaLevel = loadSFInfo.get(0).getCust_manaLevel(); String custManaLevel = loadSFInfo.get(0).getCust_manaLevel();
// String level = custManaLevel != null ? custManaLevel : "M0"; String level = custManaLevel != null ? custManaLevel : "M0";
// if (level.contains("R")) { if (level.contains("R")) {
// 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("测试职级"); user.setRankCode("测试职级");
return user; return user;
} }
@ -68,33 +71,33 @@ public class UserHttpRequestImpl implements UserHttpRequest {
} }
private List<UserDataDTO> loadSFInfo(User user) { private List<UserDataDTO> loadSFInfo(User user) {
// Gson gson = new Gson(); Gson gson = new Gson();
// AccessKeyDTO akSkLoad = akSkLoad(); AccessKeyDTO akSkLoad = akSkLoad();
// DataCenterOption option = new DataCenterOption(); DataCenterOption option = new DataCenterOption();
// option.setSk(akSkLoad.sk); option.setSk(akSkLoad.sk);
// option.setAk(akSkLoad.ak); option.setAk(akSkLoad.ak);
// option.setUrl(OPENAI_BASE_URL); option.setUrl(OPENAI_BASE_URL);
// DataCenterService dataCenterService = new DataCenterService(option); DataCenterService dataCenterService = new DataCenterService(option);
// LinkedHashMap map = new LinkedHashMap<String, Object>(); LinkedHashMap map = new LinkedHashMap<String, Object>();
// map.put("LoginUsername", user.getEmployeeNo().toString()); map.put("LoginUsername", user.getEmployeeNo().toString());
// map.put("start", 0); map.put("start", 0);
// map.put("pageSize", 1); map.put("pageSize", 1);
// DataCenterResult result = dataCenterService.post(USER_DATA_PATH, map); DataCenterResult result = dataCenterService.post(USER_DATA_PATH, map);
// Type type = new TypeToken<List<UserDataDTO>>() { Type type = new TypeToken<List<UserDataDTO>>() {
// }.getType(); }.getType();
// if (result.getData() != null) { if (result.getData() != null) {
// List<UserDataDTO> fromJson = gson.fromJson(result.getData().toString(), type); List<UserDataDTO> fromJson = gson.fromJson(result.getData().toString(), type);
// UserDataDTO userDataDTO = fromJson.get(0); UserDataDTO userDataDTO = fromJson.get(0);
// user.setCompanyCode(userDataDTO.getCompany()); user.setCompanyCode(userDataDTO.getCompany());
// user.setWorkStatus(userDataDTO.getStatus()); user.setWorkStatus(userDataDTO.getStatus());
// user.setGender(userDataDTO.getGender()); user.setGender(userDataDTO.getGender());
// user.setName(userDataDTO.getUname()); user.setName(userDataDTO.getUname());
// user.setPhoneNumber(userDataDTO.getMobilePhone()); user.setPhoneNumber(userDataDTO.getMobilePhone());
// return fromJson; return fromJson;
// } else { } else {
// throw new RuntimeException("用户数据不存在"); throw new RuntimeException("用户数据不存在");
// } }
return null; // return null;
} }
private TravelRankDTO loadTravelRank(TravelRankParam travelRankParam) { private TravelRankDTO loadTravelRank(TravelRankParam travelRankParam) {

View File

@ -31,7 +31,7 @@ class RouteApplicationTests {
@Test @Test
void loginSign() { void loginSign() {
String sfno = "230615020"; String sfno = "231116009";
String syscode = "abc"; String syscode = "abc";
String billcode = "KK12321412323"; String billcode = "KK12321412323";
String sec = "Superdandan"; String sec = "Superdandan";