From 1dd543cf9c2d02d0a6ee2925b9ba2567955bf787 Mon Sep 17 00:00:00 2001 From: chenxiky <2868613334@qq.com> Date: Thu, 31 Jul 2025 00:26:11 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E8=AE=A2=E5=8D=95=E7=A1=AE=E8=AE=A4=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=A0=87=E8=AF=86=EF=BC=8C=E4=BB=A5=E5=8F=8A=E7=9B=B8?= =?UTF-8?q?=E5=85=B3ID=EF=BC=88=E7=BC=96=E8=BE=91=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=EF=BC=89=EF=BC=9B=E5=AE=8C=E6=88=90=E8=AE=A2=E5=8D=95=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E9=A3=9E=E8=A1=8C=E5=91=98=E7=AB=AF=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E5=8F=AA=E6=98=AF=E7=A1=AE=E8=AE=A4=E7=8A=B6=E6=80=81=EF=BC=8C?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81=E4=BD=8D=E6=94=B9=E5=8F=98?= =?UTF-8?q?=EF=BC=88=E6=AD=A4=E6=97=B6=E5=BA=94=E8=AF=A5=E4=B8=8D=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E6=B7=BB=E5=8A=A0=E9=A3=9E=E8=A1=8C=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aircraft/modules/order/biz/OrderBiz.java | 20 ++++++- .../modules/order/domain/OrderMain.java | 8 +++ .../domain/dto/OrderMainPageQueryDTO.java | 7 +++ .../order/domain/enums/ConfirmStatusEnum.java | 56 +++++++++++++++++++ .../order/domain/vo/OrderAllDetailVO.java | 36 ++++++++++++ .../service/impl/OrderMainServiceImpl.java | 7 ++- .../mapper/order/OrderMainMapper.xml | 6 ++ 7 files changed, 136 insertions(+), 4 deletions(-) create mode 100644 aircraft-system/src/main/java/com/aircraft/modules/order/domain/enums/ConfirmStatusEnum.java diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java b/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java index 73cacaa..50cf271 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java @@ -392,11 +392,17 @@ public class OrderBiz { orderAllDetailVO.setTotalAmount(orderMain.getTotalAmount()); orderAllDetailVO.setAmount(orderMain.getAmount()); orderAllDetailVO.setScenicName(emScenicService.obtainScenicById(orderMain.getAttractionId()).getName()); + orderAllDetailVO.setCustomerId(orderMain.getCustomerId()); + orderAllDetailVO.setOrderInitiatorId(orderMain.getOrderInitiatorId()); + orderAllDetailVO.setAttractionId(orderMain.getAttractionId()); + orderAllDetailVO.setConfirmStatus(orderMain.getConfirmStatus()); + // 获取路线 - String routeName = obtainRouteName(orderMain); + String routeName = obtainRouteName(orderMain, orderAllDetailVO); orderAllDetailVO.setRouteName(routeName); // 获取该订单下的操作人 List orderOperatorList = orderOperatorService.queryAllByOrderIds(List.of(id)); + orderAllDetailVO.setOperatorIds(orderOperatorList.stream().map(OrderOperator::getOperatorId).toList()); // 转成map StringBuilder nameBuilder = new StringBuilder(); for (OrderOperator operator : orderOperatorList) { @@ -466,9 +472,10 @@ public class OrderBiz { * 获取路线名称 * * @param orderMain {@link OrderMain} + * @param orderAllDetailVO * @return 拼接的路线名称 */ - private String obtainRouteName(OrderMain orderMain) { + private String obtainRouteName(OrderMain orderMain, OrderAllDetailVO orderAllDetailVO) { String routeIds = orderMain.getRouteIds(); List cpRoutes = cpRouteService.obtainAllRoutes(); Map routeMap = cpRoutes.stream().collect(Collectors.toMap(CpRoute::getId, route -> route)); @@ -478,6 +485,7 @@ public class OrderBiz { CpRoute cpRoute = routeMap.get(Long.valueOf(routeIdStr)); String name = cpRoute.getName(); routeNameBuilder.append(name).append(StrUtil.COMMA); + orderAllDetailVO.setRouteIds(List.of(cpRoute.getId())); } // 去掉最后一个逗号 return routeNameBuilder.substring(0, routeNameBuilder.length() - 1); @@ -907,7 +915,13 @@ public class OrderBiz { OrderMain updateOrderMain = new OrderMain(); updateOrderMain.setId(orderId); updateOrderMain.setOrderFinishTime(new Date()); - updateOrderMain.setMainOrderStatus(MainOrderStatusEnum.COMPLETED.getCode()); + if (currentUserType.equals(UserTypeEnum.EMPLOYEES)) { + updateOrderMain.setConfirmStatus(ConfirmStatusEnum.PILOT_CONFIRMED.getCode()); + updateOrderMain.setConfirmTime(new Date()); + } else { + updateOrderMain.setConfirmStatus(ConfirmStatusEnum.CUSTOMER_CONFIRMED.getCode()); + updateOrderMain.setMainOrderStatus(MainOrderStatusEnum.COMPLETED.getCode()); + } orderMainService.finishMainOrder(updateOrderMain); } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/OrderMain.java b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/OrderMain.java index 532cd3c..f857eb8 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/OrderMain.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/OrderMain.java @@ -114,5 +114,13 @@ public class OrderMain extends BaseEntity { */ private Date orderFinishTime; + /** + * 确认标识(1是飞行员确认,2是客户已确认,默认0) + */ + private Integer confirmStatus; + /** + * 确认时间 + */ + private Date confirmTime; } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/OrderMainPageQueryDTO.java b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/OrderMainPageQueryDTO.java index 97aaed0..0acc491 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/OrderMainPageQueryDTO.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/OrderMainPageQueryDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; +import java.util.List; /** * @@ -73,5 +74,11 @@ public class OrderMainPageQueryDTO { @ApiModelProperty(value = "区域ID") private Long areaId; + /** + * 订单状态,支持多个状态查询 + */ + @ApiModelProperty(value = "订单状态(支持多个状态查询)") + private List mainOrderStatusList; + } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/enums/ConfirmStatusEnum.java b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/enums/ConfirmStatusEnum.java new file mode 100644 index 0000000..46e54e0 --- /dev/null +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/enums/ConfirmStatusEnum.java @@ -0,0 +1,56 @@ +package com.aircraft.modules.order.domain.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * + * 订单确认状态枚举 + * + * @author chenxiky + * @version 1.0.0 + * @since 2025/7/31 + */ +@Getter +@AllArgsConstructor +public enum ConfirmStatusEnum { + /** + * 默认值 + */ + NOT_CONFIRM(0, "默认值"), + /** + * 飞行员已确认 + */ + PILOT_CONFIRMED(1, "飞行员已确认"), + + /** + * 客户已确认 + */ + CUSTOMER_CONFIRMED(2, "客户已确认"), + ; + + /** + * 状态码 + */ + private final Integer code; + + /** + * 描述 + */ + private final String description; + + /** + * 根据code获取枚举 + * + * @param code ~ + * @return ~ + */ + public static ConfirmStatusEnum getInstance(Integer code) { + for (ConfirmStatusEnum value : values()) { + if (value.code.equals(code)) { + return value; + } + } + return null; + } +} diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/vo/OrderAllDetailVO.java b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/vo/OrderAllDetailVO.java index e20b61b..560dc58 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/vo/OrderAllDetailVO.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/vo/OrderAllDetailVO.java @@ -48,12 +48,24 @@ public class OrderAllDetailVO { @ApiModelProperty(value = "订单发起人") private String orderInitiator; + /** + * 订单发起人ID + */ + @ApiModelProperty(value = "订单发起人ID") + private Long orderInitiatorId; + /** * 客户名称 */ @ApiModelProperty(value = "客户名称") private String customerName; + /** + * 客户ID + */ + @ApiModelProperty(value = "客户ID") + private Long customerId; + /** * 手机号码 */ @@ -72,12 +84,24 @@ public class OrderAllDetailVO { @ApiModelProperty(value = "景区名称") private String scenicName; + /** + * 景区ID + */ + @ApiModelProperty(value = "景区ID") + private Long attractionId; + /** * 路线,多个用逗号隔开返回 */ @ApiModelProperty(value = "路线名称,多个用逗号隔开返回", example = "线路1,线路2") private String routeName; + /** + * 路线ID集合 + */ + @ApiModelProperty(value = "路线ID集合") + private List routeIds; + /** * 货物重量 */ @@ -108,6 +132,12 @@ public class OrderAllDetailVO { @ApiModelProperty(value = "操作员,多个逗号拼接返回", example = "操作员1,操作员2") private String operatorName; + /** + * 操作员ID集合 + */ + @ApiModelProperty(value = "操作员ID集合") + private List operatorIds; + /** * 下单时间 */ @@ -122,6 +152,12 @@ public class OrderAllDetailVO { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date orderFinishTime; + /** + * 确认标识(1是飞行员已确认,2是客户已确认,默认0) + */ + @ApiModelProperty(value = "确认标识(1是飞行员已确认,2是客户已确认,默认0)") + private Integer confirmStatus; + /** * 订单子单信息列表 */ diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderMainServiceImpl.java b/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderMainServiceImpl.java index e389e6b..27233fd 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderMainServiceImpl.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderMainServiceImpl.java @@ -43,6 +43,7 @@ public class OrderMainServiceImpl extends ServiceImpllambdaUpdate() .eq(OrderMain::getId, updateOrderMain.getId()) .set(OrderMain::getOrderFinishTime, updateOrderMain.getOrderFinishTime()) - .set(OrderMain::getMainOrderStatus, updateOrderMain.getMainOrderStatus()) + .set(OrderMain::getConfirmStatus, updateOrderMain.getConfirmStatus()) + .set(ObjectUtil.isNotNull(updateOrderMain.getMainOrderStatus()), + OrderMain::getMainOrderStatus, updateOrderMain.getMainOrderStatus()) + .set(ObjectUtil.isNotNull(updateOrderMain.getConfirmTime()), + OrderMain::getConfirmTime, updateOrderMain.getConfirmTime()) ); } } diff --git a/aircraft-system/src/main/resources/mapper/order/OrderMainMapper.xml b/aircraft-system/src/main/resources/mapper/order/OrderMainMapper.xml index cb7afbd..c92e38a 100644 --- a/aircraft-system/src/main/resources/mapper/order/OrderMainMapper.xml +++ b/aircraft-system/src/main/resources/mapper/order/OrderMainMapper.xml @@ -29,6 +29,12 @@ and attraction_id = #{attractionId} + + and main_order_status in + + #{item} + + order by id desc