From cc9a6537341f0ab89a856aa4dff22fa4202d2803a91119b187a287be63d19840 Mon Sep 17 00:00:00 2001 From: yanglei Date: Wed, 7 Jan 2026 09:59:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=BF=90=E8=90=A5=E5=8C=BA?= =?UTF-8?q?=E5=8F=8A=E8=BF=90=E8=90=A5=E5=8C=BA=E4=B8=8B=E6=89=80=E6=9C=89?= =?UTF-8?q?=E7=AB=99=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/model/vo/FeignEbikeRegionVo.java | 10 +-- .../feign/model/vo/FeignEbikeSiteVo.java | 55 ++++++++++++++++ .../src/main/resources/application-dev.yml | 2 +- .../controller/EbikeRegionController.java | 12 +++- .../operations/mapper/EbikeRegionMapper.java | 3 +- .../service/EbikeRegionService.java | 3 +- .../service/impl/EbikeRegionServiceImpl.java | 15 ++++- .../impl/EbikeReportRecordServiceImpl.java | 3 +- .../src/main/resources/application-dev.yml | 2 +- .../resources/mapper/EbikeRegionMapper.xml | 65 ++++++++++++++++--- .../src/main/resources/application-dev.yml | 2 +- 11 files changed, 143 insertions(+), 29 deletions(-) create mode 100644 ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeSiteVo.java diff --git a/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeRegionVo.java b/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeRegionVo.java index a1b035d..751280c 100644 --- a/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeRegionVo.java +++ b/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeRegionVo.java @@ -10,6 +10,7 @@ import org.locationtech.jts.geom.Polygon; import java.io.Serial; import java.io.Serializable; import java.time.LocalDateTime; +import java.util.List; /** * 运营区域表 实体类。 @@ -59,12 +60,5 @@ public class FeignEbikeRegionVo implements Serializable { */ private Integer status; - private LocalDateTime createdAt; - - private Long createdBy; - - private LocalDateTime updatedAt; - - private Long updatedBy; - + private List ebikeSiteVos; } diff --git a/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeSiteVo.java b/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeSiteVo.java new file mode 100644 index 0000000..8f8785b --- /dev/null +++ b/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeSiteVo.java @@ -0,0 +1,55 @@ +package com.ebike.feign.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.locationtech.jts.geom.Polygon; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @author yanglei + * @since 2026-01-06 17:28 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class FeignEbikeSiteVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Long siteId; + + /** + * 站点名称 + */ + private String siteName; + + /** + * 运营商ID + */ + private Long operatorId; + + /** + * 运营区ID + */ + private Long regionId; + + /** + * 站点区域 + */ + private Polygon sitePolygon; + + /** + * 站点类型:1-普通站点(停车) 2-禁停区 3-仓库区 + */ + private Integer siteType; + + + private Boolean isDeleted; +} diff --git a/ebike-gather/src/main/resources/application-dev.yml b/ebike-gather/src/main/resources/application-dev.yml index ba92213..6bd4a04 100644 --- a/ebike-gather/src/main/resources/application-dev.yml +++ b/ebike-gather/src/main/resources/application-dev.yml @@ -13,7 +13,7 @@ spring: username: nacos password: nacos kafka: - bootstrap-servers: 47.109.71.130:9092 + bootstrap-servers: 192.168.1.20:9092 producer: retries: 0 key-serializer: org.apache.kafka.common.serialization.StringSerializer diff --git a/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeRegionController.java b/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeRegionController.java index 6d61a3f..1910e32 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeRegionController.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeRegionController.java @@ -15,6 +15,7 @@ import com.cdzy.operations.model.vo.EbikeSpecialBillingConfigurationVo; import com.cdzy.operations.service.EbikeDefaultBillingConfigurationService; import com.cdzy.operations.service.EbikeRegionService; import com.cdzy.operations.service.EbikeSpecialBillingConfigurationService; +import com.ebike.feign.model.vo.FeignEbikeRegionVo; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.update.UpdateChain; @@ -25,7 +26,12 @@ import org.locationtech.jts.geom.GeometryFactory; import org.locationtech.jts.geom.Point; import org.locationtech.jts.geom.PrecisionModel; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +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.RequestParam; +import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -138,7 +144,7 @@ public class EbikeRegionController { QueryWrapper queryWrapper = QueryWrapper.create() .where(EBIKE_REGION.REGION_NAME.like(regionName, StringUtil.hasText(regionName))) .where(EBIKE_REGION.REGION_SIMPLE_NAME.like(regionSimpleName, StringUtil.hasText(regionSimpleName))) - .orderBy(EBIKE_REGION.CREATED_AT,Boolean.FALSE); + .orderBy(EBIKE_REGION.CREATED_AT, Boolean.FALSE); Page page = ebikeRegionService.page(pageParam.getPage(), queryWrapper); return JsonResult.success(page); } @@ -268,7 +274,7 @@ public class EbikeRegionController { @RequestParam("lat") double lat) { GeometryFactory geometryFactory = new GeometryFactory(new PrecisionModel(), 4326); Point location = geometryFactory.createPoint(new Coordinate(lng, lat)); - EbikeRegion region = ebikeRegionService.getRegionByLocation(location); + FeignEbikeRegionVo region = ebikeRegionService.getRegionByLocation(location); return JsonResult.success(region); } } 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 734b0d3..9059c6d 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 @@ -1,6 +1,7 @@ package com.cdzy.operations.mapper; import com.cdzy.operations.model.entity.EbikeRegion; +import com.ebike.feign.model.vo.FeignEbikeRegionVo; import com.mybatisflex.core.BaseMapper; import org.locationtech.jts.geom.Point; @@ -36,5 +37,5 @@ public interface EbikeRegionMapper extends BaseMapper { * @param point 用户当前位置 * @return 运营区信息 */ - EbikeRegion findCurrentRegion(Point point); + FeignEbikeRegionVo findCurrentRegion(Point point); } diff --git a/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeRegionService.java b/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeRegionService.java index 873f798..a4e4de8 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeRegionService.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeRegionService.java @@ -2,6 +2,7 @@ package com.cdzy.operations.service; import com.cdzy.operations.model.vo.EbikeOperationConfigVo; import com.cdzy.operations.model.vo.EbikeRegionVo; +import com.ebike.feign.model.vo.FeignEbikeRegionVo; import com.mybatisflex.core.service.IService; import com.cdzy.operations.model.entity.EbikeRegion; import org.locationtech.jts.geom.Point; @@ -44,5 +45,5 @@ public interface EbikeRegionService extends IService { * @param point 当前位置 * @return 运营区信息 */ - EbikeRegion getRegionByLocation(Point point); + FeignEbikeRegionVo getRegionByLocation(Point point); } diff --git a/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeRegionServiceImpl.java b/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeRegionServiceImpl.java index f05ff4b..61dbbe2 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeRegionServiceImpl.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeRegionServiceImpl.java @@ -3,11 +3,20 @@ package com.cdzy.operations.service.impl; import cn.dev33.satoken.stp.StpUtil; import com.cdzy.common.ex.EbikeException; import com.cdzy.operations.enums.RegionStatus; -import com.cdzy.operations.mapper.*; -import com.cdzy.operations.model.entity.*; +import com.cdzy.operations.mapper.EbikeOperationConfigMapper; +import com.cdzy.operations.mapper.EbikeOperationLockConfigMapper; +import com.cdzy.operations.mapper.EbikeOperationReturnConfigMapper; +import com.cdzy.operations.mapper.EbikeOperationUseConfigMapper; +import com.cdzy.operations.mapper.EbikeRegionMapper; +import com.cdzy.operations.model.entity.EbikeOperationConfig; +import com.cdzy.operations.model.entity.EbikeOperationLockConfig; +import com.cdzy.operations.model.entity.EbikeOperationReturnConfig; +import com.cdzy.operations.model.entity.EbikeOperationUseConfig; +import com.cdzy.operations.model.entity.EbikeRegion; import com.cdzy.operations.model.vo.EbikeOperationConfigVo; import com.cdzy.operations.model.vo.EbikeRegionVo; import com.cdzy.operations.service.EbikeRegionService; +import com.ebike.feign.model.vo.FeignEbikeRegionVo; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; @@ -145,7 +154,7 @@ public class EbikeRegionServiceImpl extends ServiceImpl - + SELECT + r.region_id, + r.operator_id, + r.region_name, + r.region_simple_name, + r.region_polygon, + r.site_num, + r.status, + s.site_id, + s.site_name, + s.operator_id AS site_operator_id, + s.region_id AS site_region_id, + s.site_polygon, + s.site_type, + s.is_deleted AS site_is_deleted + FROM ( + SELECT region_id + FROM ebike_region + WHERE is_deleted IS NOT TRUE + AND status = 1 + AND ST_Contains( + ST_SetSRID(region_polygon::geometry, 4326), + ST_SetSRID(ST_MakePoint(#{x}, #{y}), 4326) + ) + ORDER BY region_id + LIMIT 1 + ) fr + JOIN ebike_region r ON fr.region_id = r.region_id + LEFT JOIN ebike_site s ON r.region_id = s.region_id + AND s.is_deleted IS NOT TRUE + AND s.site_type = 1 \ No newline at end of file diff --git a/ebike-report/src/main/resources/application-dev.yml b/ebike-report/src/main/resources/application-dev.yml index 45ad499..f27f2b9 100644 --- a/ebike-report/src/main/resources/application-dev.yml +++ b/ebike-report/src/main/resources/application-dev.yml @@ -14,7 +14,7 @@ spring: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 kafka: - bootstrap-servers: 47.109.71.130:9092 + bootstrap-servers: 192.168.1.20:9092 producer: retries: 0 key-serializer: org.apache.kafka.common.serialization.StringSerializer