From f19bed2541ec1d36c47597131edbe9bcc7b282e903cdb1d69f53c4baf810597e Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Mon, 8 Dec 2025 09:56:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=90=E8=90=A5=E5=8C=BA=E5=88=97=E8=A1=A8-?= =?UTF-8?q?=E8=B7=9D=E7=A6=BB=E6=8E=92=E5=BA=8F=E6=8C=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EbikeBikeOrderController.java | 12 ++++++++ .../operations/mapper/EbikeRegionMapper.java | 10 +++++++ .../operations/model/vo/OrderRegionVo.java | 30 +++++++++++++++++++ .../service/EbikeBikeOrderService.java | 7 +++++ .../impl/EbikeBikeOrderServiceImpl.java | 16 +++++++++- .../resources/mapper/EbikeRegionMapper.xml | 18 +++++++++++ 6 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 ebike-operations/src/main/java/com/cdzy/operations/model/vo/OrderRegionVo.java diff --git a/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeBikeOrderController.java b/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeBikeOrderController.java index 25c8903..723c73c 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeBikeOrderController.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeBikeOrderController.java @@ -9,6 +9,7 @@ import com.cdzy.operations.model.dto.EbikeBikeOrderInfoDto; import com.cdzy.operations.model.dto.EbikeOrderBikeListDto; import com.cdzy.operations.model.dto.EbikeBikeOrderPageDto; import com.cdzy.operations.model.dto.EbikeOrderBikeInfoDto; +import com.cdzy.operations.model.entity.EbikeRegion; import com.cdzy.operations.model.vo.*; import com.cdzy.operations.service.EbikeBikeOrderService; import com.mybatisflex.core.paginate.Page; @@ -232,6 +233,17 @@ public class EbikeBikeOrderController { // return JsonResult.success(); // } + /** + * 运营区列表列表(工单用) + * + * @return 操作结果 + */ + @PostMapping("regionList") + public JsonResult> regionList(@RequestBody OrderRegionVo orderRegionVo){ + List list = ebikeBikeOrderService.regionList(orderRegionVo); + return JsonResult.success(list); + } + /** * 车辆列表(工单用) * diff --git a/ebike-operations/src/main/java/com/cdzy/operations/mapper/EbikeRegionMapper.java b/ebike-operations/src/main/java/com/cdzy/operations/mapper/EbikeRegionMapper.java index 3966873..4ad69f1 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/mapper/EbikeRegionMapper.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/mapper/EbikeRegionMapper.java @@ -2,6 +2,9 @@ package com.cdzy.operations.mapper; import com.mybatisflex.core.BaseMapper; import com.cdzy.operations.model.entity.EbikeRegion; +import org.postgresql.geometric.PGpoint; + +import java.util.List; /** * 运营区域表 映射层。 @@ -17,4 +20,11 @@ public interface EbikeRegionMapper extends BaseMapper { * @return 结果 */ boolean checkBikeInRegion(String bikeCode); + + /** + * 查询运营区列表,按照距离排序 + * @param point 用户当前位置 + * @return 列表 + */ + List findAllRegionsOrderByDistance(PGpoint point); } diff --git a/ebike-operations/src/main/java/com/cdzy/operations/model/vo/OrderRegionVo.java b/ebike-operations/src/main/java/com/cdzy/operations/model/vo/OrderRegionVo.java new file mode 100644 index 0000000..c6fdabf --- /dev/null +++ b/ebike-operations/src/main/java/com/cdzy/operations/model/vo/OrderRegionVo.java @@ -0,0 +1,30 @@ +package com.cdzy.operations.model.vo; + +import com.cdzy.operations.handler.PGpointDeserializer; +import com.cdzy.operations.handler.PGpointSerializer; +import com.cdzy.operations.handler.PGpointTypeHandler; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.mybatisflex.annotation.Column; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.postgresql.geometric.PGpoint; + +/** + * @author attiya + * @since 2025-11-26 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OrderRegionVo { + + @Column(typeHandler = PGpointTypeHandler.class) + @JsonSerialize(using = PGpointSerializer.class) + @JsonDeserialize(using = PGpointDeserializer.class) + private PGpoint point; + +} diff --git a/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeBikeOrderService.java b/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeBikeOrderService.java index e8bae30..69d520a 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeBikeOrderService.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeBikeOrderService.java @@ -4,6 +4,7 @@ import com.cdzy.operations.model.dto.EbikeBikeOrderInfoDto; import com.cdzy.operations.model.dto.EbikeOrderBikeListDto; import com.cdzy.operations.model.dto.EbikeOrderBikeInfoDto; import com.cdzy.operations.model.entity.EbikeBikeOrder; +import com.cdzy.operations.model.entity.EbikeRegion; import com.cdzy.operations.model.vo.*; import com.mybatisflex.core.service.IService; import org.springframework.web.multipart.MultipartFile; @@ -115,4 +116,10 @@ public interface EbikeBikeOrderService extends IService { * @param inspectionVo 巡检信息 */ void doInspection(DoneInspectionVo inspectionVo); + + /** + * 获取运营区列表(距离排序 + * @return 列表 + */ + List regionList(OrderRegionVo orderRegionVo); } diff --git a/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeBikeOrderServiceImpl.java b/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeBikeOrderServiceImpl.java index b656e53..0d74fc0 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeBikeOrderServiceImpl.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeBikeOrderServiceImpl.java @@ -7,8 +7,8 @@ import com.cdzy.common.model.dto.ResGPSDto; import com.cdzy.operations.enums.*; import com.cdzy.operations.mapper.*; import com.cdzy.operations.model.dto.EbikeBikeOrderInfoDto; -import com.cdzy.operations.model.dto.EbikeOrderBikeListDto; import com.cdzy.operations.model.dto.EbikeOrderBikeInfoDto; +import com.cdzy.operations.model.dto.EbikeOrderBikeListDto; import com.cdzy.operations.model.entity.*; import com.cdzy.operations.model.vo.*; import com.cdzy.operations.service.EbikeBikeOrderService; @@ -25,6 +25,7 @@ import com.mybatisflex.core.update.UpdateChain; import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.postgresql.geometric.PGpoint; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -75,6 +76,9 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl regionList(OrderRegionVo orderRegionVo) { + PGpoint point = orderRegionVo.getPoint(); + if (point != null) { + return regionMapper.findAllRegionsOrderByDistance(point); + }else { + return regionMapper.selectAll(); + } + } + EbikeBikeInfo checkBikeCode(String bikeCode) { QueryWrapper queryWrapper = QueryWrapper.create() .where(EBIKE_BIKE_INFO.BIKE_CODE.eq(bikeCode)) diff --git a/ebike-operations/src/main/resources/mapper/EbikeRegionMapper.xml b/ebike-operations/src/main/resources/mapper/EbikeRegionMapper.xml index 7f47508..4ab0bb8 100644 --- a/ebike-operations/src/main/resources/mapper/EbikeRegionMapper.xml +++ b/ebike-operations/src/main/resources/mapper/EbikeRegionMapper.xml @@ -18,5 +18,23 @@ b.bike_code = #{bikeCode} + + \ No newline at end of file