diff --git a/yudao-module-map/yudao-module-map-api/src/main/java/cn/iocoder/yudao/module/map/enums/ErrorCodeConstants.java b/yudao-module-map/yudao-module-map-api/src/main/java/cn/iocoder/yudao/module/map/enums/ErrorCodeConstants.java index bce6b2fe0e..a174309d04 100644 --- a/yudao-module-map/yudao-module-map-api/src/main/java/cn/iocoder/yudao/module/map/enums/ErrorCodeConstants.java +++ b/yudao-module-map/yudao-module-map-api/src/main/java/cn/iocoder/yudao/module/map/enums/ErrorCodeConstants.java @@ -4,5 +4,7 @@ public interface ErrorCodeConstants { // ========== 高德关键字搜索记录 1-050-000-000 ========== // ========== 高德关键字搜索记录 TODO 补充编号 ========== - ErrorCode KEYWORD_SEARCH_NOT_EXISTS = new ErrorCode(1_050_000_000, "高德关键字搜索记录不存在"); + ErrorCode KEYWORD_SEARCH_NOT_EXISTS = new ErrorCode(1_050_001_000, "高德关键字搜索记录不存在"); + + ErrorCode POIS_NOT_EXISTS = new ErrorCode(1_050_002_000, "高德POI基础信息不存在"); } diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/KeywordSearchController.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/KeywordSearchController.java deleted file mode 100644 index 810721830c..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/KeywordSearchController.java +++ /dev/null @@ -1,155 +0,0 @@ -package cn.iocoder.yudao.module.map.controller.admin.keywordsearch; - -import cn.hutool.core.collection.CollUtil; -import org.springframework.web.bind.annotation.*; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import jakarta.validation.constraints.*; -import jakarta.validation.*; -import jakarta.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - -import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; -import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; - -import cn.iocoder.yudao.module.map.controller.admin.keywordsearch.vo.*; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.KeywordSearchDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisBusinessDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisIndoorDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisNaviDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisPhotosDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisDO; -import cn.iocoder.yudao.module.map.service.keywordsearch.KeywordSearchService; - -@Tag(name = "管理后台 - 高德关键字搜索记录") -@RestController -@RequestMapping("/map/keyword-search") -@Validated -public class KeywordSearchController { - - @Resource - private KeywordSearchService keywordSearchService; - - @PostMapping("/create") - @Operation(summary = "创建高德关键字搜索记录") - @PreAuthorize("@ss.hasPermission('map:keyword-search:create')") - public CommonResult createKeywordSearch(@Valid @RequestBody KeywordSearchSaveReqVO createReqVO) { - return success(keywordSearchService.createKeywordSearch(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新高德关键字搜索记录") - @PreAuthorize("@ss.hasPermission('map:keyword-search:update')") - public CommonResult updateKeywordSearch(@Valid @RequestBody KeywordSearchSaveReqVO updateReqVO) { - keywordSearchService.updateKeywordSearch(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除高德关键字搜索记录") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('map:keyword-search:delete')") - public CommonResult deleteKeywordSearch(@RequestParam("id") Long id) { - keywordSearchService.deleteKeywordSearch(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得高德关键字搜索记录") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('map:keyword-search:query')") - public CommonResult getKeywordSearch(@RequestParam("id") Long id) { - KeywordSearchDO keywordSearch = keywordSearchService.getKeywordSearch(id); - return success(BeanUtils.toBean(keywordSearch, KeywordSearchRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得高德关键字搜索记录分页") - @PreAuthorize("@ss.hasPermission('map:keyword-search:query')") - public CommonResult> getKeywordSearchPage(@Valid KeywordSearchPageReqVO pageReqVO) { - pageReqVO.setPageSize(25); - PageResult pageResult = keywordSearchService.getKeywordSearchPage(pageReqVO); - if (CollUtil.isEmpty(pageResult.getList())) { - return success(PageResult.empty(pageResult.getTotal())); - } - return success(BeanUtils.toBean(pageResult, KeywordSearchRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出高德关键字搜索记录 Excel") - @PreAuthorize("@ss.hasPermission('map:keyword-search:export')") - @ApiAccessLog(operateType = EXPORT) - public void exportKeywordSearchExcel(@Valid KeywordSearchPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = keywordSearchService.getKeywordSearchPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "高德关键字搜索记录.xls", "数据", KeywordSearchRespVO.class, - BeanUtils.toBean(list, KeywordSearchRespVO.class)); - } - - // ==================== 子表(商业信息) ==================== - - @GetMapping("/pois-business/get-by-key-search-id") - @Operation(summary = "获得商业信息") - @Parameter(name = "keySearchId", description = "搜索记录ID") - @PreAuthorize("@ss.hasPermission('map:keyword-search:query')") - public CommonResult getPoisBusinessByKeySearchId(@RequestParam("keySearchId") Long keySearchId) { - return success(keywordSearchService.getPoisBusinessByKeySearchId(keySearchId)); - } - - // ==================== 子表(室内信息) ==================== - - @GetMapping("/pois-indoor/get-by-key-search-id") - @Operation(summary = "获得室内信息") - @Parameter(name = "keySearchId", description = "搜索记录ID") - @PreAuthorize("@ss.hasPermission('map:keyword-search:query')") - public CommonResult getPoisIndoorByKeySearchId(@RequestParam("keySearchId") Long keySearchId) { - return success(keywordSearchService.getPoisIndoorByKeySearchId(keySearchId)); - } - - // ==================== 子表(导航信息) ==================== - - @GetMapping("/pois-navi/get-by-key-search-id") - @Operation(summary = "获得导航信息") - @Parameter(name = "keySearchId", description = "搜索记录ID") - @PreAuthorize("@ss.hasPermission('map:keyword-search:query')") - public CommonResult getPoisNaviByKeySearchId(@RequestParam("keySearchId") Long keySearchId) { - return success(keywordSearchService.getPoisNaviByKeySearchId(keySearchId)); - } - - // ==================== 子表(图片信息) ==================== - - @GetMapping("/pois-photos/get-by-key-search-id") - @Operation(summary = "获得图片信息") - @Parameter(name = "keySearchId", description = "搜索记录ID") - @PreAuthorize("@ss.hasPermission('map:keyword-search:query')") - public CommonResult getPoisPhotosByKeySearchId(@RequestParam("keySearchId") Long keySearchId) { - return success(keywordSearchService.getPoisPhotosByKeySearchId(keySearchId)); - } - - // ==================== 子表(基础信息) ==================== - - @GetMapping("/pois/get-by-key-search-id") - @Operation(summary = "获得基础信息") - @Parameter(name = "keySearchId", description = "搜索记录ID") - @PreAuthorize("@ss.hasPermission('map:keyword-search:query')") - public CommonResult getPoisByKeySearchId(@RequestParam("keySearchId") Long keySearchId) { - return success(keywordSearchService.getPoisByKeySearchId(keySearchId)); - } - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/vo/KeywordSearchPageReqVO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/vo/KeywordSearchPageReqVO.java deleted file mode 100644 index dbc92a8e4c..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/vo/KeywordSearchPageReqVO.java +++ /dev/null @@ -1,55 +0,0 @@ -package cn.iocoder.yudao.module.map.controller.admin.keywordsearch.vo; - -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@Schema(description = "管理后台 - 高德关键字搜索记录分页 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class KeywordSearchPageReqVO extends PageParam { - - @Schema(description = "描述", example = "你说的对") - private String description; - - @Schema(description = "状态(1成功,0失败)", example = "2") - private String status; - - @Schema(description = "状态描述") - private String info; - - @Schema(description = "错误码") - private String infocode; - - @Schema(description = "返回POI数量", example = "6432") - private Integer count; - - @Schema(description = "搜索关键字") - private String keywords; - - @Schema(description = "地点类型") - private String types; - - @Schema(description = "搜索区域") - private String region; - - @Schema(description = "城市限制(0否,1是)") - private Boolean cityLimit; - - @Schema(description = "每页大小",example = "25") - private Integer pageSize; - - @Schema(description = "页码",example = "1") - private Integer pageNum; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/vo/KeywordSearchRespVO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/vo/KeywordSearchRespVO.java deleted file mode 100644 index 3af181f9f8..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/vo/KeywordSearchRespVO.java +++ /dev/null @@ -1,67 +0,0 @@ -package cn.iocoder.yudao.module.map.controller.admin.keywordsearch.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; -import com.alibaba.excel.annotation.*; - -@Schema(description = "管理后台 - 高德关键字搜索记录 Response VO") -@Data -@ExcelIgnoreUnannotated -public class KeywordSearchRespVO { - - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21756") - @ExcelProperty("编号") - private Long id; - - @Schema(description = "描述", example = "你说的对") - @ExcelProperty("描述") - private String description; - - @Schema(description = "状态(1成功,0失败)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - @ExcelProperty("状态(1成功,0失败)") - private String status; - - @Schema(description = "状态描述", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("状态描述") - private String info; - - @Schema(description = "错误码", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("错误码") - private String infocode; - - @Schema(description = "返回POI数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "6432") - @ExcelProperty("返回POI数量") - private Integer count; - - @Schema(description = "搜索关键字", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("搜索关键字") - private String keywords; - - @Schema(description = "地点类型") - @ExcelProperty("地点类型") - private String types; - - @Schema(description = "搜索区域") - @ExcelProperty("搜索区域") - private String region; - - @Schema(description = "城市限制(0否,1是)") - @ExcelProperty("城市限制(0否,1是)") - private Boolean cityLimit; - - @Schema(description = "每页大小") - @ExcelProperty("每页大小") - private Integer pageSize; - - @Schema(description = "页码") - @ExcelProperty("页码") - private Integer pageNum; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") - private LocalDateTime createTime; - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/vo/KeywordSearchSaveReqVO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/vo/KeywordSearchSaveReqVO.java deleted file mode 100644 index e0a9a7d2e2..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/keywordsearch/vo/KeywordSearchSaveReqVO.java +++ /dev/null @@ -1,73 +0,0 @@ -package cn.iocoder.yudao.module.map.controller.admin.keywordsearch.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import jakarta.validation.constraints.*; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisBusinessDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisIndoorDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisNaviDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisPhotosDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisDO; - -@Schema(description = "管理后台 - 高德关键字搜索记录新增/修改 Request VO") -@Data -public class KeywordSearchSaveReqVO { - - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21756") - private Long id; - - @Schema(description = "描述", example = "你说的对") - private String description; - - @Schema(description = "状态(1成功,0失败)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - @NotEmpty(message = "状态(1成功,0失败)不能为空") - private String status; - - @Schema(description = "状态描述", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "状态描述不能为空") - private String info; - - @Schema(description = "错误码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "错误码不能为空") - private String infocode; - - @Schema(description = "返回POI数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "6432") - @NotNull(message = "返回POI数量不能为空") - private Integer count; - - @Schema(description = "搜索关键字", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "搜索关键字不能为空") - private String keywords; - - @Schema(description = "地点类型") - private String types; - - @Schema(description = "搜索区域") - private String region; - - @Schema(description = "城市限制(0否,1是)") - private Boolean cityLimit; - - @Schema(description = "每页大小") - private Integer pageSize; - - @Schema(description = "页码") - private Integer pageNum; - - @Schema(description = "商业信息") - private PoisBusinessDO poisBusiness; - - @Schema(description = "室内信息") - private PoisIndoorDO poisIndoor; - - @Schema(description = "导航信息") - private PoisNaviDO poisNavi; - - @Schema(description = "图片信息") - private PoisPhotosDO poisPhotos; - - @Schema(description = "基础信息") - private PoisDO pois; - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/PoisController.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/PoisController.java new file mode 100644 index 0000000000..d7dcf5345e --- /dev/null +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/PoisController.java @@ -0,0 +1,128 @@ +package cn.iocoder.yudao.module.map.controller.admin.pois; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.map.controller.admin.pois.vo.*; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisBusinessDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisNaviDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisPhotosDO; +import cn.iocoder.yudao.module.map.service.pois.PoisService; + +@Tag(name = "管理后台 - 高德POI基础信息") +@RestController +@RequestMapping("/map/pois") +@Validated +public class PoisController { + + @Resource + private PoisService poisService; + + @PostMapping("/create") + @Operation(summary = "创建高德POI基础信息") + @PreAuthorize("@ss.hasPermission('map:pois:create')") + public CommonResult createPois(@Valid @RequestBody PoisSaveReqVO createReqVO) { + return success(poisService.createPois(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新高德POI基础信息") + @PreAuthorize("@ss.hasPermission('map:pois:update')") + public CommonResult updatePois(@Valid @RequestBody PoisSaveReqVO updateReqVO) { + poisService.updatePois(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除高德POI基础信息") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('map:pois:delete')") + public CommonResult deletePois(@RequestParam("id") Long id) { + poisService.deletePois(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得高德POI基础信息") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('map:pois:query')") + public CommonResult getPois(@RequestParam("id") Long id) { + PoisDO pois = poisService.getPois(id); + return success(BeanUtils.toBean(pois, PoisRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得高德POI基础信息分页") + @PreAuthorize("@ss.hasPermission('map:pois:query')") + public CommonResult> getPoisPage(@Valid PoisPageReqVO pageReqVO) { + PageResult pageResult = poisService.getPoisPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, PoisRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出高德POI基础信息 Excel") + @PreAuthorize("@ss.hasPermission('map:pois:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportPoisExcel(@Valid PoisPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = poisService.getPoisPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "高德POI基础信息.xls", "数据", PoisRespVO.class, + BeanUtils.toBean(list, PoisRespVO.class)); + } + + // ==================== 子表(高德POI商业信息) ==================== + + @GetMapping("/pois-business/get-by-pois-id") + @Operation(summary = "获得高德POI商业信息") + @Parameter(name = "poisId", description = "pois表ID") + @PreAuthorize("@ss.hasPermission('map:pois:query')") + public CommonResult getPoisBusinessByPoisId(@RequestParam("poisId") Long poisId) { + return success(poisService.getPoisBusinessByPoisId(poisId)); + } + + // ==================== 子表(高德POI导航信息) ==================== + + @GetMapping("/pois-navi/get-by-pois-id") + @Operation(summary = "获得高德POI导航信息") + @Parameter(name = "poisId", description = "pois表ID") + @PreAuthorize("@ss.hasPermission('map:pois:query')") + public CommonResult getPoisNaviByPoisId(@RequestParam("poisId") Long poisId) { + return success(poisService.getPoisNaviByPoisId(poisId)); + } + + // ==================== 子表(高德POI图片信息) ==================== + + @GetMapping("/pois-photos/get-by-pois-id") + @Operation(summary = "获得高德POI图片信息") + @Parameter(name = "poisId", description = "pois表ID") + @PreAuthorize("@ss.hasPermission('map:pois:query')") + public CommonResult getPoisPhotosByPoisId(@RequestParam("poisId") Long poisId) { + return success(poisService.getPoisPhotosByPoisId(poisId)); + } + +} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/vo/PoisPageReqVO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/vo/PoisPageReqVO.java new file mode 100644 index 0000000000..16b48f4adc --- /dev/null +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/vo/PoisPageReqVO.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.map.controller.admin.pois.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 高德POI基础信息分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PoisPageReqVO extends PageParam { + + @Schema(description = "搜索记录ID", example = "1273") + private Long keySearchId; + + @Schema(description = "POI名称", example = "王五") + private String name; + + @Schema(description = "经纬度", example = "116.413232,39.899947") + private String location; + + @Schema(description = "所属类型", example = "汽车服务;汽车养护/装饰;汽车养护|汽车服务;洗车场;洗车场|汽车维修;汽车维修;汽车维修") + private String type; + + @Schema(description = "分类编码", example = "010400|010500|030000") + private String typecode; + + @Schema(description = "省份", example = "北京市") + private String pname; + + @Schema(description = "城市", example = "北京市") + private String cityName; + + @Schema(description = "区县", example = "东城区") + private String adname; + + @Schema(description = "详细地址", example = "宝鼎中心C座B2层(崇文门地铁站D西南口步行480米)") + private String address; + + @Schema(description = "省份编码", example = "110000") + private String pcode; + + @Schema(description = "区域编码", example = "110101") + private String adcode; + + @Schema(description = "城市编码", example = "010") + private String citycode; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "poi唯一标识", example = "B0GUKCE3AI") + private String poiId; + +} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/vo/PoisRespVO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/vo/PoisRespVO.java new file mode 100644 index 0000000000..8ff0c36d60 --- /dev/null +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/vo/PoisRespVO.java @@ -0,0 +1,75 @@ +package cn.iocoder.yudao.module.map.controller.admin.pois.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 高德POI基础信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class PoisRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6687") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "搜索记录ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1273") + @ExcelProperty("搜索记录ID") + private Long keySearchId; + + @Schema(description = "POI名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("POI名称") + private String name; + + @Schema(description = "经纬度", requiredMode = Schema.RequiredMode.REQUIRED, example = "116.413232,39.899947") + @ExcelProperty("经纬度") + private String location; + + @Schema(description = "所属类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "汽车服务;汽车养护/装饰;汽车养护|汽车服务;洗车场;洗车场|汽车维修;汽车维修;汽车维修") + @ExcelProperty("所属类型") + private String type; + + @Schema(description = "分类编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "010400|010500|030000") + @ExcelProperty("分类编码") + private String typecode; + + @Schema(description = "省份", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京市") + @ExcelProperty("省份") + private String pname; + + @Schema(description = "城市", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京市") + @ExcelProperty("城市") + private String cityName; + + @Schema(description = "区县", requiredMode = Schema.RequiredMode.REQUIRED, example = "东城区") + @ExcelProperty("区县") + private String adname; + + @Schema(description = "详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "宝鼎中心C座B2层(崇文门地铁站D西南口步行480米)") + @ExcelProperty("详细地址") + private String address; + + @Schema(description = "省份编码", example = "110000") + @ExcelProperty("省份编码") + private String pcode; + + @Schema(description = "区域编码", example = "110101") + @ExcelProperty("区域编码") + private String adcode; + + @Schema(description = "城市编码", example = "010") + @ExcelProperty("城市编码") + private String citycode; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "poi唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "B0GUKCE3AI") + @ExcelProperty("poi唯一标识") + private String poiId; + +} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/vo/PoisSaveReqVO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/vo/PoisSaveReqVO.java new file mode 100644 index 0000000000..90e0f03f1c --- /dev/null +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/controller/admin/pois/vo/PoisSaveReqVO.java @@ -0,0 +1,76 @@ +package cn.iocoder.yudao.module.map.controller.admin.pois.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisBusinessDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisNaviDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisPhotosDO; + +@Schema(description = "管理后台 - 高德POI基础信息新增/修改 Request VO") +@Data +public class PoisSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6687") + private Long id; + + @Schema(description = "搜索记录ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1273") + @NotNull(message = "搜索记录ID不能为空") + private Long keySearchId; + + @Schema(description = "POI名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "POI名称不能为空") + private String name; + + @Schema(description = "经纬度", requiredMode = Schema.RequiredMode.REQUIRED, example = "116.413232,39.899947") + @NotEmpty(message = "经纬度不能为空") + private String location; + + @Schema(description = "所属类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "汽车服务;汽车养护/装饰;汽车养护|汽车服务;洗车场;洗车场|汽车维修;汽车维修;汽车维修") + @NotEmpty(message = "所属类型不能为空") + private String type; + + @Schema(description = "分类编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "010400|010500|030000") + @NotEmpty(message = "分类编码不能为空") + private String typecode; + + @Schema(description = "省份", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京市") + @NotEmpty(message = "省份不能为空") + private String pname; + + @Schema(description = "城市", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京市") + @NotEmpty(message = "城市不能为空") + private String cityName; + + @Schema(description = "区县", requiredMode = Schema.RequiredMode.REQUIRED, example = "东城区") + @NotEmpty(message = "区县不能为空") + private String adname; + + @Schema(description = "详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "宝鼎中心C座B2层(崇文门地铁站D西南口步行480米)") + @NotEmpty(message = "详细地址不能为空") + private String address; + + @Schema(description = "省份编码", example = "110000") + private String pcode; + + @Schema(description = "区域编码", example = "110101") + private String adcode; + + @Schema(description = "城市编码", example = "010") + private String citycode; + + @Schema(description = "poi唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "B0GUKCE3AI") + @NotEmpty(message = "poi唯一标识不能为空") + private String poiId; + + @Schema(description = "高德POI商业信息") + private PoisBusinessDO poisBusiness; + + @Schema(description = "高德POI导航信息") + private PoisNaviDO poisNavi; + + @Schema(description = "高德POI图片信息") + private PoisPhotosDO poisPhotos; + +} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/KeywordSearchDO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/KeywordSearchDO.java deleted file mode 100644 index 7d6055e9d0..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/KeywordSearchDO.java +++ /dev/null @@ -1,75 +0,0 @@ -package cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch; - -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; - -/** - * 高德关键字搜索记录 DO - * - * @author AN - */ -@TableName("map_keyword_search") -@KeySequence("map_keyword_search_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class KeywordSearchDO extends BaseDO { - - /** - * 编号 - */ - @TableId - private Long id; - /** - * 描述 - */ - private String description; - /** - * 状态(1成功,0失败) - */ - private String status; - /** - * 状态描述 - */ - private String info; - /** - * 错误码 - */ - private String infocode; - /** - * 返回POI数量 - */ - private Integer count; - /** - * 搜索关键字 - */ - private String keywords; - /** - * 地点类型 - */ - private String types; - /** - * 搜索区域 - */ - private String region; - /** - * 城市限制(0否,1是) - */ - private Boolean cityLimit; - /** - * 每页大小 - */ - private Integer pageSize; - /** - * 页码 - */ - private Integer pageNum; - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisIndoorDO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisIndoorDO.java deleted file mode 100644 index 0f7924fe21..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisIndoorDO.java +++ /dev/null @@ -1,51 +0,0 @@ -package cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch; - -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; - -/** - * 室内信息 DO - * - * @author AN - */ -@TableName("map_pois_indoor") -@KeySequence("map_pois_indoor_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class PoisIndoorDO extends BaseDO { - - /** - * 主键 - */ - @TableId - private Long id; - /** - * 搜索记录ID - */ - private Long keySearchId; - /** - * 室内地图标志(1有,0无) - */ - private Boolean indoorMap; - /** - * 如果当前 POI 为建筑物类 POI,则 cpid 为自身 POI ID;如果当前 POI 为商铺类 POI,则 cpid 为其所在建筑物的 POI ID。indoor_map 为0时不返回 - */ - private String cpid; - /** - * 楼层索引,一般会用数字表示,例如8;indoor_map 为0时不返回 - */ - private String floor; - /** - * 实际楼层,一般会带有字母,例如F8;indoor_map 为0时不返回 - */ - private String truefloor; - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisBusinessDO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisBusinessDO.java similarity index 92% rename from yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisBusinessDO.java rename to yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisBusinessDO.java index cb004055dc..720926f881 100644 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisBusinessDO.java +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisBusinessDO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch; +package cn.iocoder.yudao.module.map.dal.dataobject.pois; import lombok.*; import java.util.*; @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; /** - * 商业信息 DO + * 高德POI商业信息 DO * * @author AN */ @@ -30,9 +30,9 @@ public class PoisBusinessDO extends BaseDO { @TableId private Long id; /** - * 搜索记录ID + * pois表ID */ - private Long keySearchId; + private Long poisId; /** * 所属商圈 */ diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisDO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisDO.java similarity index 89% rename from yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisDO.java rename to yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisDO.java index a0de34fa29..bd38bb759b 100644 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisDO.java +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisDO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch; +package cn.iocoder.yudao.module.map.dal.dataobject.pois; import lombok.*; import java.util.*; @@ -8,9 +8,9 @@ import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; /** - * 基础信息 DO + * 高德POI基础信息 DO * - * @author 芋道源码 + * @author 安 */ @TableName("map_pois") @KeySequence("map_pois_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @@ -75,5 +75,9 @@ public class PoisDO extends BaseDO { * 城市编码 */ private String citycode; + /** + * poi唯一标识 + */ + private String poiId; } \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisNaviDO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisNaviDO.java similarity index 88% rename from yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisNaviDO.java rename to yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisNaviDO.java index 816e3aca82..cc8b7dabee 100644 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisNaviDO.java +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisNaviDO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch; +package cn.iocoder.yudao.module.map.dal.dataobject.pois; import lombok.*; import java.util.*; @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; /** - * 导航信息 DO + * 高德POI导航信息 DO * * @author AN */ @@ -28,9 +28,9 @@ public class PoisNaviDO extends BaseDO { @TableId private Long id; /** - * 搜索记录ID + * pois表ID */ - private Long keySearchId; + private Long poisId; /** * 导航引导点坐标。大型面状 POI 的导航引导点,一般为各类出入口,方便结合导航、路线规划等服务使用 */ diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisPhotosDO.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisPhotosDO.java similarity index 85% rename from yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisPhotosDO.java rename to yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisPhotosDO.java index f333f1329b..e08ed72815 100644 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/keywordsearch/PoisPhotosDO.java +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/dataobject/pois/PoisPhotosDO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch; +package cn.iocoder.yudao.module.map.dal.dataobject.pois; import lombok.*; import java.util.*; @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; /** - * 图片信息 DO + * 高德POI图片信息 DO * * @author AN */ @@ -28,9 +28,9 @@ public class PoisPhotosDO extends BaseDO { @TableId private Long id; /** - * 搜索记录ID + * pois表ID */ - private Long keySearchId; + private Long poisId; /** * 图片介绍 */ diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/KeywordSearchMapper.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/KeywordSearchMapper.java deleted file mode 100644 index 71bad8a87e..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/KeywordSearchMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package cn.iocoder.yudao.module.map.dal.mysql.keywordsearch; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.KeywordSearchDO; -import org.apache.ibatis.annotations.Mapper; -import cn.iocoder.yudao.module.map.controller.admin.keywordsearch.vo.*; - -/** - * 高德关键字搜索记录 Mapper - * - * @author AN - */ -@Mapper -public interface KeywordSearchMapper extends BaseMapperX { - - default PageResult selectPage(KeywordSearchPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(KeywordSearchDO::getDescription, reqVO.getDescription()) - .eqIfPresent(KeywordSearchDO::getStatus, reqVO.getStatus()) - .eqIfPresent(KeywordSearchDO::getInfo, reqVO.getInfo()) - .eqIfPresent(KeywordSearchDO::getInfocode, reqVO.getInfocode()) - .eqIfPresent(KeywordSearchDO::getCount, reqVO.getCount()) - .likeIfPresent(KeywordSearchDO::getKeywords, reqVO.getKeywords()) - .eqIfPresent(KeywordSearchDO::getTypes, reqVO.getTypes()) - .eqIfPresent(KeywordSearchDO::getRegion, reqVO.getRegion()) - .eqIfPresent(KeywordSearchDO::getCityLimit, reqVO.getCityLimit()) - .eqIfPresent(KeywordSearchDO::getPageSize, reqVO.getPageSize()) - .eqIfPresent(KeywordSearchDO::getPageNum, reqVO.getPageNum()) - .betweenIfPresent(KeywordSearchDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(KeywordSearchDO::getId)); - } - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisBusinessMapper.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisBusinessMapper.java deleted file mode 100644 index 9d39b1a8de..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisBusinessMapper.java +++ /dev/null @@ -1,28 +0,0 @@ -package cn.iocoder.yudao.module.map.dal.mysql.keywordsearch; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisBusinessDO; -import org.apache.ibatis.annotations.Mapper; - -/** - * 商业信息 Mapper - * - * @author AN - */ -@Mapper -public interface PoisBusinessMapper extends BaseMapperX { - - default PoisBusinessDO selectByKeySearchId(Long keySearchId) { - return selectOne(PoisBusinessDO::getKeySearchId, keySearchId); - } - - default int deleteByKeySearchId(Long keySearchId) { - return delete(PoisBusinessDO::getKeySearchId, keySearchId); - } - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisIndoorMapper.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisIndoorMapper.java deleted file mode 100644 index 81b60f4be8..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisIndoorMapper.java +++ /dev/null @@ -1,28 +0,0 @@ -package cn.iocoder.yudao.module.map.dal.mysql.keywordsearch; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisIndoorDO; -import org.apache.ibatis.annotations.Mapper; - -/** - * 室内信息 Mapper - * - * @author AN - */ -@Mapper -public interface PoisIndoorMapper extends BaseMapperX { - - default PoisIndoorDO selectByKeySearchId(Long keySearchId) { - return selectOne(PoisIndoorDO::getKeySearchId, keySearchId); - } - - default int deleteByKeySearchId(Long keySearchId) { - return delete(PoisIndoorDO::getKeySearchId, keySearchId); - } - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisMapper.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisMapper.java deleted file mode 100644 index 9040d37a2e..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisMapper.java +++ /dev/null @@ -1,28 +0,0 @@ -package cn.iocoder.yudao.module.map.dal.mysql.keywordsearch; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisDO; -import org.apache.ibatis.annotations.Mapper; - -/** - * 基础信息 Mapper - * - * @author 芋道源码 - */ -@Mapper -public interface PoisMapper extends BaseMapperX { - - default PoisDO selectByKeySearchId(Long keySearchId) { - return selectOne(PoisDO::getKeySearchId, keySearchId); - } - - default int deleteByKeySearchId(Long keySearchId) { - return delete(PoisDO::getKeySearchId, keySearchId); - } - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisNaviMapper.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisNaviMapper.java deleted file mode 100644 index e0a9616bbe..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisNaviMapper.java +++ /dev/null @@ -1,28 +0,0 @@ -package cn.iocoder.yudao.module.map.dal.mysql.keywordsearch; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisNaviDO; -import org.apache.ibatis.annotations.Mapper; - -/** - * 导航信息 Mapper - * - * @author AN - */ -@Mapper -public interface PoisNaviMapper extends BaseMapperX { - - default PoisNaviDO selectByKeySearchId(Long keySearchId) { - return selectOne(PoisNaviDO::getKeySearchId, keySearchId); - } - - default int deleteByKeySearchId(Long keySearchId) { - return delete(PoisNaviDO::getKeySearchId, keySearchId); - } - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisPhotosMapper.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisPhotosMapper.java deleted file mode 100644 index d100278c77..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/keywordsearch/PoisPhotosMapper.java +++ /dev/null @@ -1,28 +0,0 @@ -package cn.iocoder.yudao.module.map.dal.mysql.keywordsearch; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisPhotosDO; -import org.apache.ibatis.annotations.Mapper; - -/** - * 图片信息 Mapper - * - * @author AN - */ -@Mapper -public interface PoisPhotosMapper extends BaseMapperX { - - default PoisPhotosDO selectByKeySearchId(Long keySearchId) { - return selectOne(PoisPhotosDO::getKeySearchId, keySearchId); - } - - default int deleteByKeySearchId(Long keySearchId) { - return delete(PoisPhotosDO::getKeySearchId, keySearchId); - } - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisBusinessMapper.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisBusinessMapper.java new file mode 100644 index 0000000000..37e03bdbe6 --- /dev/null +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisBusinessMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.map.dal.mysql.pois; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisBusinessDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 高德POI商业信息 Mapper + * + * @author AN + */ +@Mapper +public interface PoisBusinessMapper extends BaseMapperX { + + default PoisBusinessDO selectByPoisId(Long poisId) { + return selectOne(PoisBusinessDO::getPoisId, poisId); + } + + default int deleteByPoisId(Long poisId) { + return delete(PoisBusinessDO::getPoisId, poisId); + } + +} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisMapper.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisMapper.java new file mode 100644 index 0000000000..99920f9cdc --- /dev/null +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisMapper.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.map.dal.mysql.pois; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.map.controller.admin.pois.vo.*; + +/** + * 高德POI基础信息 Mapper + * + * @author 安 + */ +@Mapper +public interface PoisMapper extends BaseMapperX { + + default PageResult selectPage(PoisPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PoisDO::getKeySearchId, reqVO.getKeySearchId()) + .likeIfPresent(PoisDO::getName, reqVO.getName()) + .eqIfPresent(PoisDO::getLocation, reqVO.getLocation()) + .likeIfPresent(PoisDO::getType, reqVO.getType()) + .likeIfPresent(PoisDO::getTypecode, reqVO.getTypecode()) + .likeIfPresent(PoisDO::getPname, reqVO.getPname()) + .likeIfPresent(PoisDO::getCityName, reqVO.getCityName()) + .likeIfPresent(PoisDO::getAdname, reqVO.getAdname()) + .eqIfPresent(PoisDO::getAddress, reqVO.getAddress()) + .eqIfPresent(PoisDO::getPcode, reqVO.getPcode()) + .eqIfPresent(PoisDO::getAdcode, reqVO.getAdcode()) + .eqIfPresent(PoisDO::getCitycode, reqVO.getCitycode()) + .betweenIfPresent(PoisDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(PoisDO::getPoiId, reqVO.getPoiId()) + .orderByDesc(PoisDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisNaviMapper.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisNaviMapper.java new file mode 100644 index 0000000000..a53318b218 --- /dev/null +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisNaviMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.map.dal.mysql.pois; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisNaviDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 高德POI导航信息 Mapper + * + * @author AN + */ +@Mapper +public interface PoisNaviMapper extends BaseMapperX { + + default PoisNaviDO selectByPoisId(Long poisId) { + return selectOne(PoisNaviDO::getPoisId, poisId); + } + + default int deleteByPoisId(Long poisId) { + return delete(PoisNaviDO::getPoisId, poisId); + } + +} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisPhotosMapper.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisPhotosMapper.java new file mode 100644 index 0000000000..fde06bfe23 --- /dev/null +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/dal/mysql/pois/PoisPhotosMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.map.dal.mysql.pois; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisPhotosDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 高德POI图片信息 Mapper + * + * @author AN + */ +@Mapper +public interface PoisPhotosMapper extends BaseMapperX { + + default PoisPhotosDO selectByPoisId(Long poisId) { + return selectOne(PoisPhotosDO::getPoisId, poisId); + } + + default int deleteByPoisId(Long poisId) { + return delete(PoisPhotosDO::getPoisId, poisId); + } + +} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/keywordsearch/KeywordSearchService.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/keywordsearch/KeywordSearchService.java deleted file mode 100644 index 030f355c91..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/keywordsearch/KeywordSearchService.java +++ /dev/null @@ -1,110 +0,0 @@ -package cn.iocoder.yudao.module.map.service.keywordsearch; - -import java.util.*; -import jakarta.validation.*; -import cn.iocoder.yudao.module.map.controller.admin.keywordsearch.vo.*; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.KeywordSearchDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisBusinessDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisIndoorDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisNaviDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisPhotosDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; - -/** - * 高德关键字搜索记录 Service 接口 - * - * @author AN - */ -public interface KeywordSearchService { - - /** - * 创建高德关键字搜索记录 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createKeywordSearch(@Valid KeywordSearchSaveReqVO createReqVO); - - /** - * 更新高德关键字搜索记录 - * - * @param updateReqVO 更新信息 - */ - void updateKeywordSearch(@Valid KeywordSearchSaveReqVO updateReqVO); - - /** - * 删除高德关键字搜索记录 - * - * @param id 编号 - */ - void deleteKeywordSearch(Long id); - - /** - * 获得高德关键字搜索记录 - * - * @param id 编号 - * @return 高德关键字搜索记录 - */ - KeywordSearchDO getKeywordSearch(Long id); - - /** - * 获得高德关键字搜索记录分页 - * - * @param pageReqVO 分页查询 - * @return 高德关键字搜索记录分页 - */ - PageResult getKeywordSearchPage(KeywordSearchPageReqVO pageReqVO); - - // ==================== 子表(商业信息) ==================== - - /** - * 获得商业信息 - * - * @param keySearchId 搜索记录ID - * @return 商业信息 - */ - PoisBusinessDO getPoisBusinessByKeySearchId(Long keySearchId); - - // ==================== 子表(室内信息) ==================== - - /** - * 获得室内信息 - * - * @param keySearchId 搜索记录ID - * @return 室内信息 - */ - PoisIndoorDO getPoisIndoorByKeySearchId(Long keySearchId); - - // ==================== 子表(导航信息) ==================== - - /** - * 获得导航信息 - * - * @param keySearchId 搜索记录ID - * @return 导航信息 - */ - PoisNaviDO getPoisNaviByKeySearchId(Long keySearchId); - - // ==================== 子表(图片信息) ==================== - - /** - * 获得图片信息 - * - * @param keySearchId 搜索记录ID - * @return 图片信息 - */ - PoisPhotosDO getPoisPhotosByKeySearchId(Long keySearchId); - - // ==================== 子表(基础信息) ==================== - - /** - * 获得基础信息 - * - * @param keySearchId 搜索记录ID - * @return 基础信息 - */ - PoisDO getPoisByKeySearchId(Long keySearchId); - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/keywordsearch/KeywordSearchServiceImpl.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/keywordsearch/KeywordSearchServiceImpl.java deleted file mode 100644 index 7563bf778d..0000000000 --- a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/keywordsearch/KeywordSearchServiceImpl.java +++ /dev/null @@ -1,258 +0,0 @@ -package cn.iocoder.yudao.module.map.service.keywordsearch; - -import org.springframework.stereotype.Service; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import cn.iocoder.yudao.module.map.controller.admin.keywordsearch.vo.*; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.KeywordSearchDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisBusinessDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisIndoorDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisNaviDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisPhotosDO; -import cn.iocoder.yudao.module.map.dal.dataobject.keywordsearch.PoisDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - -import cn.iocoder.yudao.module.map.dal.mysql.keywordsearch.KeywordSearchMapper; -import cn.iocoder.yudao.module.map.dal.mysql.keywordsearch.PoisBusinessMapper; -import cn.iocoder.yudao.module.map.dal.mysql.keywordsearch.PoisIndoorMapper; -import cn.iocoder.yudao.module.map.dal.mysql.keywordsearch.PoisNaviMapper; -import cn.iocoder.yudao.module.map.dal.mysql.keywordsearch.PoisPhotosMapper; -import cn.iocoder.yudao.module.map.dal.mysql.keywordsearch.PoisMapper; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.map.enums.ErrorCodeConstants.*; - -/** - * 高德关键字搜索记录 Service 实现类 - * - * @author AN - */ -@Service -@Validated -public class KeywordSearchServiceImpl implements KeywordSearchService { - - @Resource - private KeywordSearchMapper keywordSearchMapper; - @Resource - private PoisBusinessMapper poisBusinessMapper; - @Resource - private PoisIndoorMapper poisIndoorMapper; - @Resource - private PoisNaviMapper poisNaviMapper; - @Resource - private PoisPhotosMapper poisPhotosMapper; - @Resource - private PoisMapper poisMapper; - - @Override - @Transactional(rollbackFor = Exception.class) - public Long createKeywordSearch(KeywordSearchSaveReqVO createReqVO) { - // 插入 - KeywordSearchDO keywordSearch = BeanUtils.toBean(createReqVO, KeywordSearchDO.class); - keywordSearchMapper.insert(keywordSearch); - - // 插入子表 - createPoisBusiness(keywordSearch.getId(), createReqVO.getPoisBusiness()); - createPoisIndoor(keywordSearch.getId(), createReqVO.getPoisIndoor()); - createPoisNavi(keywordSearch.getId(), createReqVO.getPoisNavi()); - createPoisPhotos(keywordSearch.getId(), createReqVO.getPoisPhotos()); - createPois(keywordSearch.getId(), createReqVO.getPois()); - // 返回 - return keywordSearch.getId(); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void updateKeywordSearch(KeywordSearchSaveReqVO updateReqVO) { - // 校验存在 - validateKeywordSearchExists(updateReqVO.getId()); - // 更新 - KeywordSearchDO updateObj = BeanUtils.toBean(updateReqVO, KeywordSearchDO.class); - keywordSearchMapper.updateById(updateObj); - - // 更新子表 - updatePoisBusiness(updateReqVO.getId(), updateReqVO.getPoisBusiness()); - updatePoisIndoor(updateReqVO.getId(), updateReqVO.getPoisIndoor()); - updatePoisNavi(updateReqVO.getId(), updateReqVO.getPoisNavi()); - updatePoisPhotos(updateReqVO.getId(), updateReqVO.getPoisPhotos()); - updatePois(updateReqVO.getId(), updateReqVO.getPois()); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteKeywordSearch(Long id) { - // 校验存在 - validateKeywordSearchExists(id); - // 删除 - keywordSearchMapper.deleteById(id); - - // 删除子表 - deletePoisBusinessByKeySearchId(id); - deletePoisIndoorByKeySearchId(id); - deletePoisNaviByKeySearchId(id); - deletePoisPhotosByKeySearchId(id); - deletePoisByKeySearchId(id); - } - - private void validateKeywordSearchExists(Long id) { - if (keywordSearchMapper.selectById(id) == null) { - throw exception(KEYWORD_SEARCH_NOT_EXISTS); - } - } - - @Override - public KeywordSearchDO getKeywordSearch(Long id) { - return keywordSearchMapper.selectById(id); - } - - @Override - public PageResult getKeywordSearchPage(KeywordSearchPageReqVO pageReqVO) { - return keywordSearchMapper.selectPage(pageReqVO); - } - - // ==================== 子表(商业信息) ==================== - - @Override - public PoisBusinessDO getPoisBusinessByKeySearchId(Long keySearchId) { - return poisBusinessMapper.selectByKeySearchId(keySearchId); - } - - private void createPoisBusiness(Long keySearchId, PoisBusinessDO poisBusiness) { - if (poisBusiness == null) { - return; - } - poisBusiness.setKeySearchId(keySearchId); - poisBusinessMapper.insert(poisBusiness); - } - - private void updatePoisBusiness(Long keySearchId, PoisBusinessDO poisBusiness) { - if (poisBusiness == null) { - return; - } - poisBusiness.setKeySearchId(keySearchId); - poisBusiness.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 - poisBusinessMapper.insertOrUpdate(poisBusiness); - } - - private void deletePoisBusinessByKeySearchId(Long keySearchId) { - poisBusinessMapper.deleteByKeySearchId(keySearchId); - } - - // ==================== 子表(室内信息) ==================== - - @Override - public PoisIndoorDO getPoisIndoorByKeySearchId(Long keySearchId) { - return poisIndoorMapper.selectByKeySearchId(keySearchId); - } - - private void createPoisIndoor(Long keySearchId, PoisIndoorDO poisIndoor) { - if (poisIndoor == null) { - return; - } - poisIndoor.setKeySearchId(keySearchId); - poisIndoorMapper.insert(poisIndoor); - } - - private void updatePoisIndoor(Long keySearchId, PoisIndoorDO poisIndoor) { - if (poisIndoor == null) { - return; - } - poisIndoor.setKeySearchId(keySearchId); - poisIndoor.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 - poisIndoorMapper.insertOrUpdate(poisIndoor); - } - - private void deletePoisIndoorByKeySearchId(Long keySearchId) { - poisIndoorMapper.deleteByKeySearchId(keySearchId); - } - - // ==================== 子表(导航信息) ==================== - - @Override - public PoisNaviDO getPoisNaviByKeySearchId(Long keySearchId) { - return poisNaviMapper.selectByKeySearchId(keySearchId); - } - - private void createPoisNavi(Long keySearchId, PoisNaviDO poisNavi) { - if (poisNavi == null) { - return; - } - poisNavi.setKeySearchId(keySearchId); - poisNaviMapper.insert(poisNavi); - } - - private void updatePoisNavi(Long keySearchId, PoisNaviDO poisNavi) { - if (poisNavi == null) { - return; - } - poisNavi.setKeySearchId(keySearchId); - poisNavi.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 - poisNaviMapper.insertOrUpdate(poisNavi); - } - - private void deletePoisNaviByKeySearchId(Long keySearchId) { - poisNaviMapper.deleteByKeySearchId(keySearchId); - } - - // ==================== 子表(图片信息) ==================== - - @Override - public PoisPhotosDO getPoisPhotosByKeySearchId(Long keySearchId) { - return poisPhotosMapper.selectByKeySearchId(keySearchId); - } - - private void createPoisPhotos(Long keySearchId, PoisPhotosDO poisPhotos) { - if (poisPhotos == null) { - return; - } - poisPhotos.setKeySearchId(keySearchId); - poisPhotosMapper.insert(poisPhotos); - } - - private void updatePoisPhotos(Long keySearchId, PoisPhotosDO poisPhotos) { - if (poisPhotos == null) { - return; - } - poisPhotos.setKeySearchId(keySearchId); - poisPhotos.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 - poisPhotosMapper.insertOrUpdate(poisPhotos); - } - - private void deletePoisPhotosByKeySearchId(Long keySearchId) { - poisPhotosMapper.deleteByKeySearchId(keySearchId); - } - - // ==================== 子表(基础信息) ==================== - - @Override - public PoisDO getPoisByKeySearchId(Long keySearchId) { - return poisMapper.selectByKeySearchId(keySearchId); - } - - private void createPois(Long keySearchId, PoisDO pois) { - if (pois == null) { - return; - } - pois.setKeySearchId(keySearchId); - poisMapper.insert(pois); - } - - private void updatePois(Long keySearchId, PoisDO pois) { - if (pois == null) { - return; - } - pois.setKeySearchId(keySearchId); - pois.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 - poisMapper.insertOrUpdate(pois); - } - - private void deletePoisByKeySearchId(Long keySearchId) { - poisMapper.deleteByKeySearchId(keySearchId); - } - -} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/pois/PoisService.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/pois/PoisService.java new file mode 100644 index 0000000000..3a3c103a8f --- /dev/null +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/pois/PoisService.java @@ -0,0 +1,88 @@ +package cn.iocoder.yudao.module.map.service.pois; + +import java.util.*; +import jakarta.validation.*; +import cn.iocoder.yudao.module.map.controller.admin.pois.vo.*; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisBusinessDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisNaviDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisPhotosDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 高德POI基础信息 Service 接口 + * + * @author 安 + */ +public interface PoisService { + + /** + * 创建高德POI基础信息 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPois(@Valid PoisSaveReqVO createReqVO); + + /** + * 更新高德POI基础信息 + * + * @param updateReqVO 更新信息 + */ + void updatePois(@Valid PoisSaveReqVO updateReqVO); + + /** + * 删除高德POI基础信息 + * + * @param id 编号 + */ + void deletePois(Long id); + + /** + * 获得高德POI基础信息 + * + * @param id 编号 + * @return 高德POI基础信息 + */ + PoisDO getPois(Long id); + + /** + * 获得高德POI基础信息分页 + * + * @param pageReqVO 分页查询 + * @return 高德POI基础信息分页 + */ + PageResult getPoisPage(PoisPageReqVO pageReqVO); + + // ==================== 子表(高德POI商业信息) ==================== + + /** + * 获得高德POI商业信息 + * + * @param poisId pois表ID + * @return 高德POI商业信息 + */ + PoisBusinessDO getPoisBusinessByPoisId(Long poisId); + + // ==================== 子表(高德POI导航信息) ==================== + + /** + * 获得高德POI导航信息 + * + * @param poisId pois表ID + * @return 高德POI导航信息 + */ + PoisNaviDO getPoisNaviByPoisId(Long poisId); + + // ==================== 子表(高德POI图片信息) ==================== + + /** + * 获得高德POI图片信息 + * + * @param poisId pois表ID + * @return 高德POI图片信息 + */ + PoisPhotosDO getPoisPhotosByPoisId(Long poisId); + +} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/pois/PoisServiceImpl.java b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/pois/PoisServiceImpl.java new file mode 100644 index 0000000000..07d5fbaacd --- /dev/null +++ b/yudao-module-map/yudao-module-map-biz/src/main/java/cn/iocoder/yudao/module/map/service/pois/PoisServiceImpl.java @@ -0,0 +1,188 @@ +package cn.iocoder.yudao.module.map.service.pois; + +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.map.controller.admin.pois.vo.*; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisBusinessDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisNaviDO; +import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisPhotosDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.map.dal.mysql.pois.PoisMapper; +import cn.iocoder.yudao.module.map.dal.mysql.pois.PoisBusinessMapper; +import cn.iocoder.yudao.module.map.dal.mysql.pois.PoisNaviMapper; +import cn.iocoder.yudao.module.map.dal.mysql.pois.PoisPhotosMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.map.enums.ErrorCodeConstants.*; + +/** + * 高德POI基础信息 Service 实现类 + * + * @author 安 + */ +@Service +@Validated +public class PoisServiceImpl implements PoisService { + + @Resource + private PoisMapper poisMapper; + @Resource + private PoisBusinessMapper poisBusinessMapper; + @Resource + private PoisNaviMapper poisNaviMapper; + @Resource + private PoisPhotosMapper poisPhotosMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createPois(PoisSaveReqVO createReqVO) { + // 插入 + PoisDO pois = BeanUtils.toBean(createReqVO, PoisDO.class); + poisMapper.insert(pois); + + // 插入子表 + createPoisBusiness(pois.getId(), createReqVO.getPoisBusiness()); + createPoisNavi(pois.getId(), createReqVO.getPoisNavi()); + createPoisPhotos(pois.getId(), createReqVO.getPoisPhotos()); + // 返回 + return pois.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updatePois(PoisSaveReqVO updateReqVO) { + // 校验存在 + validatePoisExists(updateReqVO.getId()); + // 更新 + PoisDO updateObj = BeanUtils.toBean(updateReqVO, PoisDO.class); + poisMapper.updateById(updateObj); + + // 更新子表 + updatePoisBusiness(updateReqVO.getId(), updateReqVO.getPoisBusiness()); + updatePoisNavi(updateReqVO.getId(), updateReqVO.getPoisNavi()); + updatePoisPhotos(updateReqVO.getId(), updateReqVO.getPoisPhotos()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deletePois(Long id) { + // 校验存在 + validatePoisExists(id); + // 删除 + poisMapper.deleteById(id); + + // 删除子表 + deletePoisBusinessByPoisId(id); + deletePoisNaviByPoisId(id); + deletePoisPhotosByPoisId(id); + } + + private void validatePoisExists(Long id) { + if (poisMapper.selectById(id) == null) { + throw exception(POIS_NOT_EXISTS); + } + } + + @Override + public PoisDO getPois(Long id) { + return poisMapper.selectById(id); + } + + @Override + public PageResult getPoisPage(PoisPageReqVO pageReqVO) { + return poisMapper.selectPage(pageReqVO); + } + + // ==================== 子表(高德POI商业信息) ==================== + + @Override + public PoisBusinessDO getPoisBusinessByPoisId(Long poisId) { + return poisBusinessMapper.selectByPoisId(poisId); + } + + private void createPoisBusiness(Long poisId, PoisBusinessDO poisBusiness) { + if (poisBusiness == null) { + return; + } + poisBusiness.setPoisId(poisId); + poisBusinessMapper.insert(poisBusiness); + } + + private void updatePoisBusiness(Long poisId, PoisBusinessDO poisBusiness) { + if (poisBusiness == null) { + return; + } + poisBusiness.setPoisId(poisId); + poisBusiness.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 + poisBusinessMapper.insertOrUpdate(poisBusiness); + } + + private void deletePoisBusinessByPoisId(Long poisId) { + poisBusinessMapper.deleteByPoisId(poisId); + } + + // ==================== 子表(高德POI导航信息) ==================== + + @Override + public PoisNaviDO getPoisNaviByPoisId(Long poisId) { + return poisNaviMapper.selectByPoisId(poisId); + } + + private void createPoisNavi(Long poisId, PoisNaviDO poisNavi) { + if (poisNavi == null) { + return; + } + poisNavi.setPoisId(poisId); + poisNaviMapper.insert(poisNavi); + } + + private void updatePoisNavi(Long poisId, PoisNaviDO poisNavi) { + if (poisNavi == null) { + return; + } + poisNavi.setPoisId(poisId); + poisNavi.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 + poisNaviMapper.insertOrUpdate(poisNavi); + } + + private void deletePoisNaviByPoisId(Long poisId) { + poisNaviMapper.deleteByPoisId(poisId); + } + + // ==================== 子表(高德POI图片信息) ==================== + + @Override + public PoisPhotosDO getPoisPhotosByPoisId(Long poisId) { + return poisPhotosMapper.selectByPoisId(poisId); + } + + private void createPoisPhotos(Long poisId, PoisPhotosDO poisPhotos) { + if (poisPhotos == null) { + return; + } + poisPhotos.setPoisId(poisId); + poisPhotosMapper.insert(poisPhotos); + } + + private void updatePoisPhotos(Long poisId, PoisPhotosDO poisPhotos) { + if (poisPhotos == null) { + return; + } + poisPhotos.setPoisId(poisId); + poisPhotos.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 + poisPhotosMapper.insertOrUpdate(poisPhotos); + } + + private void deletePoisPhotosByPoisId(Long poisId) { + poisPhotosMapper.deleteByPoisId(poisId); + } + +} \ No newline at end of file diff --git a/yudao-module-map/yudao-module-map-biz/src/main/resources/mapper/keywordsearch/KeywordSearchMapper.xml b/yudao-module-map/yudao-module-map-biz/src/main/resources/mapper/pois/PoisMapper.xml similarity index 83% rename from yudao-module-map/yudao-module-map-biz/src/main/resources/mapper/keywordsearch/KeywordSearchMapper.xml rename to yudao-module-map/yudao-module-map-biz/src/main/resources/mapper/pois/PoisMapper.xml index 2ab113aba1..372d77cbe8 100644 --- a/yudao-module-map/yudao-module-map-biz/src/main/resources/mapper/keywordsearch/KeywordSearchMapper.xml +++ b/yudao-module-map/yudao-module-map-biz/src/main/resources/mapper/pois/PoisMapper.xml @@ -1,6 +1,6 @@ - +