diff --git a/src/main/java/com/ycwl/basic/controller/pc/ScenicV2Controller.java b/src/main/java/com/ycwl/basic/controller/pc/ScenicV2Controller.java new file mode 100644 index 0000000..ef89644 --- /dev/null +++ b/src/main/java/com/ycwl/basic/controller/pc/ScenicV2Controller.java @@ -0,0 +1,310 @@ +package com.ycwl.basic.controller.pc; + +import com.ycwl.basic.integration.scenic.dto.config.BatchConfigRequest; +import com.ycwl.basic.integration.scenic.dto.config.BatchUpdateResponse; +import com.ycwl.basic.integration.scenic.dto.config.CreateConfigRequest; +import com.ycwl.basic.integration.scenic.dto.config.ScenicConfigV2DTO; +import com.ycwl.basic.integration.scenic.dto.config.UpdateConfigRequest; +import com.ycwl.basic.integration.scenic.dto.filter.ScenicFilterPageResponse; +import com.ycwl.basic.integration.scenic.dto.filter.ScenicFilterRequest; +import com.ycwl.basic.integration.scenic.dto.scenic.CreateScenicRequest; +import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2DTO; +import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2WithConfigDTO; +import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2ListResponse; +import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2WithConfigListResponse; +import com.ycwl.basic.integration.scenic.dto.scenic.UpdateScenicRequest; +import com.ycwl.basic.integration.scenic.service.ScenicConfigIntegrationService; +import com.ycwl.basic.integration.scenic.service.ScenicIntegrationService; +import com.ycwl.basic.utils.ApiResponse; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import jakarta.validation.Valid; +import java.util.List; +import java.util.Map; + +/** + * @Author:longbinbin + * @Date:2024/12/26 + * 景区管理 V2 版本控制器 - 基于 zt-scenic 集成服务 + */ +@Slf4j +@RestController +@RequestMapping("/api/scenic/v2") +@RequiredArgsConstructor +public class ScenicV2Controller { + + private final ScenicIntegrationService scenicIntegrationService; + private final ScenicConfigIntegrationService scenicConfigIntegrationService; + + // ========== 景区基础 CRUD 操作 ========== + + /** + * 景区V2核心信息分页列表 + */ + @GetMapping("/") + public ApiResponse listScenics(@RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer pageSize, + @RequestParam(required = false) Integer status, + @RequestParam(required = false) String name) { + log.info("分页查询景区核心信息列表, page: {}, pageSize: {}, status: {}, name: {}", page, pageSize, status, name); + + // 参数验证:限制pageSize最大值为100 + if (pageSize > 100) { + pageSize = 100; + } + + try { + ScenicV2ListResponse response = scenicIntegrationService.listScenics(page, pageSize, status, name); + return ApiResponse.success(response); + } catch (Exception e) { + log.error("分页查询景区核心信息列表失败", e); + return ApiResponse.fail("分页查询景区列表失败: " + e.getMessage()); + } + } + + /** + * 景区V2带配置信息分页列表 + */ + @GetMapping("/with-config") + public ApiResponse listScenicsWithConfig(@RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer pageSize, + @RequestParam(required = false) Integer status, + @RequestParam(required = false) String name) { + log.info("分页查询景区带配置信息列表, page: {}, pageSize: {}, status: {}, name: {}", page, pageSize, status, name); + + // 参数验证:限制pageSize最大值为100 + if (pageSize > 100) { + pageSize = 100; + } + + try { + ScenicV2WithConfigListResponse response = scenicIntegrationService.listScenicsWithConfig(page, pageSize, status, name); + return ApiResponse.success(response); + } catch (Exception e) { + log.error("分页查询景区带配置信息列表失败", e); + return ApiResponse.fail("分页查询景区带配置信息列表失败: " + e.getMessage()); + } + } + + /** + * 查询单个景区详情 + */ + @GetMapping("/{scenicId}") + public ApiResponse getScenic(@PathVariable Long scenicId) { + log.info("查询景区详情, scenicId: {}", scenicId); + try { + ScenicV2DTO scenic = scenicIntegrationService.getScenic(scenicId); + return ApiResponse.success(scenic); + } catch (Exception e) { + log.error("查询景区详情失败, scenicId: {}", scenicId, e); + return ApiResponse.fail("查询景区详情失败: " + e.getMessage()); + } + } + + /** + * 查询景区列表(支持筛选和分页)- 高级筛选 + */ + @PostMapping("/filter") + public ApiResponse filterScenics(@RequestBody @Valid ScenicFilterRequest request) { + log.info("高级筛选景区列表, 筛选条件数: {}, 页码: {}, 页大小: {}", + request.getFilters().size(), request.getPage(), request.getPageSize()); + try { + ScenicFilterPageResponse response = scenicIntegrationService.filterScenics(request); + return ApiResponse.success(response); + } catch (Exception e) { + log.error("高级筛选景区列表失败", e); + return ApiResponse.fail("高级筛选景区列表失败: " + e.getMessage()); + } + } + + /** + * 新增景区 + */ + @PostMapping("/create") + public ApiResponse createScenic(@RequestBody @Valid CreateScenicRequest request) { + log.info("新增景区, name: {}, mpId: {}", request.getName(), request.getMpId()); + try { + ScenicV2DTO scenic = scenicIntegrationService.createScenic(request); + return ApiResponse.success(scenic); + } catch (Exception e) { + log.error("新增景区失败, name: {}", request.getName(), e); + return ApiResponse.fail("新增景区失败: " + e.getMessage()); + } + } + + /** + * 修改景区 + */ + @PutMapping("/{scenicId}") + public ApiResponse updateScenic(@PathVariable Long scenicId, + @RequestBody @Valid UpdateScenicRequest request) { + log.info("修改景区, scenicId: {}", scenicId); + try { + ScenicV2DTO scenic = scenicIntegrationService.updateScenic(scenicId, request); + return ApiResponse.success(scenic); + } catch (Exception e) { + log.error("修改景区失败, scenicId: {}", scenicId, e); + return ApiResponse.fail("修改景区失败: " + e.getMessage()); + } + } + + /** + * 删除景区 + */ + @DeleteMapping("/{scenicId}") + public ApiResponse deleteScenic(@PathVariable Long scenicId) { + log.info("删除景区, scenicId: {}", scenicId); + try { + scenicIntegrationService.deleteScenic(scenicId); + return ApiResponse.success(null); + } catch (Exception e) { + log.error("删除景区失败, scenicId: {}", scenicId, e); + return ApiResponse.fail("删除景区失败: " + e.getMessage()); + } + } + + // ========== 景区配置管理 ========== + + /** + * 获取景区及其配置信息 + */ + @GetMapping("/{scenicId}/with-config") + public ApiResponse getScenicWithConfig(@PathVariable Long scenicId) { + log.info("获取景区配置信息, scenicId: {}", scenicId); + try { + ScenicV2WithConfigDTO scenic = scenicIntegrationService.getScenicWithConfig(scenicId); + return ApiResponse.success(scenic); + } catch (Exception e) { + log.error("获取景区配置信息失败, scenicId: {}", scenicId, e); + return ApiResponse.fail("获取景区配置信息失败: " + e.getMessage()); + } + } + + /** + * 获取景区扁平化配置 + */ + @GetMapping("/{scenicId}/flat-config") + public ApiResponse> getScenicFlatConfig(@PathVariable Long scenicId) { + log.info("获取景区扁平化配置, scenicId: {}", scenicId); + try { + Map config = scenicIntegrationService.getScenicFlatConfig(scenicId); + return ApiResponse.success(config); + } catch (Exception e) { + log.error("获取景区扁平化配置失败, scenicId: {}", scenicId, e); + return ApiResponse.fail("获取景区扁平化配置失败: " + e.getMessage()); + } + } + + /** + * 获取景区配置列表 + */ + @GetMapping("/{scenicId}/config") + public ApiResponse> listConfigs(@PathVariable Long scenicId) { + log.info("获取景区配置列表, scenicId: {}", scenicId); + try { + List configs = scenicConfigIntegrationService.listConfigs(scenicId); + return ApiResponse.success(configs); + } catch (Exception e) { + log.error("获取景区配置列表失败, scenicId: {}", scenicId, e); + return ApiResponse.fail("获取景区配置列表失败: " + e.getMessage()); + } + } + + /** + * 根据配置键获取配置 + */ + @GetMapping("/{scenicId}/config/{configKey}") + public ApiResponse getConfigByKey(@PathVariable Long scenicId, + @PathVariable String configKey) { + log.info("根据键获取景区配置, scenicId: {}, configKey: {}", scenicId, configKey); + try { + ScenicConfigV2DTO config = scenicConfigIntegrationService.getConfigByKey(scenicId, configKey); + return ApiResponse.success(config); + } catch (Exception e) { + log.error("根据键获取景区配置失败, scenicId: {}, configKey: {}", scenicId, configKey, e); + return ApiResponse.fail("获取配置失败: " + e.getMessage()); + } + } + + /** + * 创建景区配置 + */ + @PostMapping("/{scenicId}/config") + public ApiResponse createConfig(@PathVariable Long scenicId, + @RequestBody @Valid CreateConfigRequest request) { + log.info("创建景区配置, scenicId: {}, configKey: {}", scenicId, request.getConfigKey()); + try { + ScenicConfigV2DTO config = scenicConfigIntegrationService.createConfig(scenicId, request); + return ApiResponse.success(config); + } catch (Exception e) { + log.error("创建景区配置失败, scenicId: {}, configKey: {}", scenicId, request.getConfigKey(), e); + return ApiResponse.fail("创建配置失败: " + e.getMessage()); + } + } + + /** + * 更新景区配置 + */ + @PutMapping("/{scenicId}/config/{configId}") + public ApiResponse updateConfig(@PathVariable Long scenicId, + @PathVariable String configId, + @RequestBody @Valid UpdateConfigRequest request) { + log.info("更新景区配置, scenicId: {}, configId: {}", scenicId, configId); + try { + ScenicConfigV2DTO config = scenicConfigIntegrationService.updateConfig(scenicId, configId, request); + return ApiResponse.success(config); + } catch (Exception e) { + log.error("更新景区配置失败, scenicId: {}, configId: {}", scenicId, configId, e); + return ApiResponse.fail("更新配置失败: " + e.getMessage()); + } + } + + /** + * 删除景区配置 + */ + @DeleteMapping("/{scenicId}/config/{configId}") + public ApiResponse deleteConfig(@PathVariable Long scenicId, @PathVariable String configId) { + log.info("删除景区配置, scenicId: {}, configId: {}", scenicId, configId); + try { + scenicConfigIntegrationService.deleteConfig(scenicId, configId); + return ApiResponse.success(null); + } catch (Exception e) { + log.error("删除景区配置失败, scenicId: {}, configId: {}", scenicId, configId, e); + return ApiResponse.fail("删除配置失败: " + e.getMessage()); + } + } + + /** + * 批量更新景区配置 + */ + @PutMapping("/{scenicId}/config/batch") + public ApiResponse batchUpdateConfigs(@PathVariable Long scenicId, + @RequestBody @Valid BatchConfigRequest request) { + log.info("批量更新景区配置, scenicId: {}, configs count: {}", scenicId, request.getConfigs().size()); + try { + BatchUpdateResponse response = scenicConfigIntegrationService.batchUpdateConfigs(scenicId, request); + return ApiResponse.success(response); + } catch (Exception e) { + log.error("批量更新景区配置失败, scenicId: {}", scenicId, e); + return ApiResponse.fail("批量更新配置失败: " + e.getMessage()); + } + } + + /** + * 扁平化批量更新景区配置 + */ + @PutMapping("/{scenicId}/flat-config") + public ApiResponse batchFlatUpdateConfigs(@PathVariable Long scenicId, + @RequestBody Map configs) { + log.info("扁平化批量更新景区配置, scenicId: {}, configs count: {}", scenicId, configs.size()); + try { + BatchUpdateResponse response = scenicConfigIntegrationService.batchFlatUpdateConfigs(scenicId, configs); + return ApiResponse.success(response); + } catch (Exception e) { + log.error("扁平化批量更新景区配置失败, scenicId: {}", scenicId, e); + return ApiResponse.fail("扁平化批量更新配置失败: " + e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/client/ScenicConfigWithDefaultClient.java b/src/main/java/com/ycwl/basic/integration/scenic/client/ScenicConfigWithDefaultClient.java deleted file mode 100644 index cd235d2..0000000 --- a/src/main/java/com/ycwl/basic/integration/scenic/client/ScenicConfigWithDefaultClient.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.ycwl.basic.integration.scenic.client; - -import com.ycwl.basic.integration.common.response.CommonResponse; -import com.ycwl.basic.integration.scenic.dto.config.ConfigWithDefaultResponse; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; - -@FeignClient(name = "zt-scenic", contextId = "scenic-config-with-default", path = "/api/scenic/config-with-default") -public interface ScenicConfigWithDefaultClient { - - @GetMapping("/{scenicId}/{configKey}") - CommonResponse getConfigWithDefault(@PathVariable("scenicId") Long scenicId, - @PathVariable("configKey") String configKey); -} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/client/ScenicMetaClient.java b/src/main/java/com/ycwl/basic/integration/scenic/client/ScenicMetaClient.java deleted file mode 100644 index 580f7e5..0000000 --- a/src/main/java/com/ycwl/basic/integration/scenic/client/ScenicMetaClient.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ycwl.basic.integration.scenic.client; - -import com.ycwl.basic.integration.common.response.CommonResponse; -import com.ycwl.basic.integration.scenic.dto.meta.*; -import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2WithConfigDTO; -import com.ycwl.basic.integration.scenic.dto.scenic.UpdateScenicRequest; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.*; - -import java.util.List; -import java.util.Map; - -@FeignClient(name = "zt-scenic", contextId = "scenic-meta", path = "/api/scenic/meta") -public interface ScenicMetaClient { - - @GetMapping("/{scenicId}/fields/enabled") - CommonResponse getEnabledFields(@PathVariable("scenicId") Long scenicId); - - @GetMapping("/fields/all") - CommonResponse> getAllFields(); - - @GetMapping("/fields/{fieldKey}") - CommonResponse getFieldConfig(@PathVariable("fieldKey") String fieldKey); - - @PostMapping("/{scenicId}/fields/{fieldKey}/enabled") - CommonResponse setFieldEnabled(@PathVariable("scenicId") Long scenicId, - @PathVariable("fieldKey") String fieldKey, - @RequestBody SetFieldEnabledRequest request); - - @PostMapping("/{scenicId}/fields/batch-enabled") - CommonResponse batchSetFieldEnabled(@PathVariable("scenicId") Long scenicId, - @RequestBody BatchSetFieldEnabledRequest request); - - @GetMapping("/{scenicId}/with-config") - CommonResponse getScenicWithConfigEnhanced(@PathVariable("scenicId") Long scenicId); - - @PutMapping("/{scenicId}/config") - CommonResponse updateConfigEnhanced(@PathVariable("scenicId") Long scenicId, - @RequestBody Map configs); -} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/client/ScenicV2Client.java b/src/main/java/com/ycwl/basic/integration/scenic/client/ScenicV2Client.java index be88cee..0405fcf 100644 --- a/src/main/java/com/ycwl/basic/integration/scenic/client/ScenicV2Client.java +++ b/src/main/java/com/ycwl/basic/integration/scenic/client/ScenicV2Client.java @@ -6,6 +6,8 @@ import com.ycwl.basic.integration.scenic.dto.filter.ScenicFilterRequest; import com.ycwl.basic.integration.scenic.dto.scenic.CreateScenicRequest; import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2DTO; import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2WithConfigDTO; +import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2ListResponse; +import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2WithConfigListResponse; import com.ycwl.basic.integration.scenic.dto.scenic.UpdateScenicRequest; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; @@ -21,8 +23,6 @@ public interface ScenicV2Client { @GetMapping("/{scenicId}/with-config") CommonResponse getScenicWithConfig(@PathVariable("scenicId") Long scenicId); - @GetMapping("/{scenicId}/flat") - CommonResponse> getScenicFlatConfig(@PathVariable("scenicId") Long scenicId); @PostMapping("/") CommonResponse createScenic(@RequestBody CreateScenicRequest request); @@ -36,4 +36,16 @@ public interface ScenicV2Client { @PostMapping("/filter") CommonResponse filterScenics(@RequestBody ScenicFilterRequest request); + + @GetMapping("/") + CommonResponse listScenics(@RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer pageSize, + @RequestParam(required = false) Integer status, + @RequestParam(required = false) String name); + + @GetMapping("/with-config") + CommonResponse listScenicsWithConfig(@RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer pageSize, + @RequestParam(required = false) Integer status, + @RequestParam(required = false) String name); } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/dto/config/ConfigWithDefaultResponse.java b/src/main/java/com/ycwl/basic/integration/scenic/dto/config/ConfigWithDefaultResponse.java deleted file mode 100644 index 19cecb4..0000000 --- a/src/main/java/com/ycwl/basic/integration/scenic/dto/config/ConfigWithDefaultResponse.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.ycwl.basic.integration.scenic.dto.config; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -@Data -public class ConfigWithDefaultResponse { - @JsonProperty("configKey") - private String configKey; - - @JsonProperty("configValue") - private String configValue; - - @JsonProperty("source") - private String source; -} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/BatchSetFieldEnabledRequest.java b/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/BatchSetFieldEnabledRequest.java deleted file mode 100644 index c304f4e..0000000 --- a/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/BatchSetFieldEnabledRequest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.ycwl.basic.integration.scenic.dto.meta; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotEmpty; -import java.util.List; - -@Data -public class BatchSetFieldEnabledRequest { - @JsonProperty("fields") - @NotEmpty(message = "字段列表不能为空") - @Valid - private List fields; - - @Data - public static class FieldEnabledItem { - @JsonProperty("fieldKey") - @NotEmpty(message = "字段键不能为空") - private String fieldKey; - - @JsonProperty("enabled") - private Boolean enabled; - } -} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/EnabledFieldsResponse.java b/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/EnabledFieldsResponse.java deleted file mode 100644 index 5d2c48b..0000000 --- a/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/EnabledFieldsResponse.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.ycwl.basic.integration.scenic.dto.meta; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -import java.util.List; - -@Data -public class EnabledFieldsResponse { - @JsonProperty("enabledFields") - private List enabledFields; -} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/FieldConfigDTO.java b/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/FieldConfigDTO.java deleted file mode 100644 index f6cead5..0000000 --- a/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/FieldConfigDTO.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ycwl.basic.integration.scenic.dto.meta; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -@Data -public class FieldConfigDTO { - @JsonProperty("fieldKey") - private String fieldKey; - - @JsonProperty("fieldName") - private String fieldName; - - @JsonProperty("fieldType") - private String fieldType; - - @JsonProperty("description") - private String description; - - @JsonProperty("enabled") - private Boolean enabled; -} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/SetFieldEnabledRequest.java b/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/SetFieldEnabledRequest.java deleted file mode 100644 index 55ad4fa..0000000 --- a/src/main/java/com/ycwl/basic/integration/scenic/dto/meta/SetFieldEnabledRequest.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.ycwl.basic.integration.scenic.dto.meta; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -import jakarta.validation.constraints.NotNull; - -@Data -public class SetFieldEnabledRequest { - @JsonProperty("enabled") - @NotNull(message = "enabled状态不能为空") - private Boolean enabled; -} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/dto/scenic/ScenicV2ListResponse.java b/src/main/java/com/ycwl/basic/integration/scenic/dto/scenic/ScenicV2ListResponse.java new file mode 100644 index 0000000..f2f5790 --- /dev/null +++ b/src/main/java/com/ycwl/basic/integration/scenic/dto/scenic/ScenicV2ListResponse.java @@ -0,0 +1,21 @@ +package com.ycwl.basic.integration.scenic.dto.scenic; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class ScenicV2ListResponse { + @JsonProperty("list") + private List list; + + @JsonProperty("total") + private Long total; + + @JsonProperty("page") + private Integer page; + + @JsonProperty("pageSize") + private Integer pageSize; +} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/dto/scenic/ScenicV2WithConfigListResponse.java b/src/main/java/com/ycwl/basic/integration/scenic/dto/scenic/ScenicV2WithConfigListResponse.java new file mode 100644 index 0000000..cd5cef1 --- /dev/null +++ b/src/main/java/com/ycwl/basic/integration/scenic/dto/scenic/ScenicV2WithConfigListResponse.java @@ -0,0 +1,21 @@ +package com.ycwl.basic.integration.scenic.dto.scenic; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class ScenicV2WithConfigListResponse { + @JsonProperty("list") + private List list; + + @JsonProperty("total") + private Long total; + + @JsonProperty("page") + private Integer page; + + @JsonProperty("pageSize") + private Integer pageSize; +} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicConfigIntegrationService.java b/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicConfigIntegrationService.java index 0351b90..39151fd 100644 --- a/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicConfigIntegrationService.java +++ b/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicConfigIntegrationService.java @@ -3,7 +3,6 @@ package com.ycwl.basic.integration.scenic.service; import com.ycwl.basic.integration.common.exception.IntegrationException; import com.ycwl.basic.integration.common.response.CommonResponse; import com.ycwl.basic.integration.scenic.client.ScenicConfigV2Client; -import com.ycwl.basic.integration.scenic.client.ScenicConfigWithDefaultClient; import com.ycwl.basic.integration.scenic.dto.config.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -18,7 +17,6 @@ import java.util.Map; public class ScenicConfigIntegrationService { private final ScenicConfigV2Client scenicConfigV2Client; - private final ScenicConfigWithDefaultClient scenicConfigWithDefaultClient; public List listConfigs(Long scenicId) { log.info("获取景区配置列表, scenicId: {}", scenicId); @@ -68,11 +66,6 @@ public class ScenicConfigIntegrationService { return handleResponse(response, "扁平化批量更新景区配置失败"); } - public ConfigWithDefaultResponse getConfigWithDefault(Long scenicId, String configKey) { - log.info("获取带默认值的配置, scenicId: {}, configKey: {}", scenicId, configKey); - CommonResponse response = scenicConfigWithDefaultClient.getConfigWithDefault(scenicId, configKey); - return handleResponse(response, "获取带默认值的配置失败"); - } private T handleResponse(CommonResponse response, String errorMessage) { if (response == null || !response.isSuccess()) { diff --git a/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicIntegrationService.java b/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicIntegrationService.java index ec3e8ea..e101398 100644 --- a/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicIntegrationService.java +++ b/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicIntegrationService.java @@ -9,6 +9,8 @@ import com.ycwl.basic.integration.scenic.dto.filter.ScenicFilterRequest; import com.ycwl.basic.integration.scenic.dto.scenic.CreateScenicRequest; import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2DTO; import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2WithConfigDTO; +import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2ListResponse; +import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2WithConfigListResponse; import com.ycwl.basic.integration.scenic.dto.scenic.UpdateScenicRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -66,6 +68,18 @@ public class ScenicIntegrationService { return handleResponse(response, "筛选景区失败"); } + public ScenicV2ListResponse listScenics(Integer page, Integer pageSize, Integer status, String name) { + log.info("分页查询景区列表, page: {}, pageSize: {}, status: {}, name: {}", page, pageSize, status, name); + CommonResponse response = scenicV2Client.listScenics(page, pageSize, status, name); + return handleResponse(response, "分页查询景区列表失败"); + } + + public ScenicV2WithConfigListResponse listScenicsWithConfig(Integer page, Integer pageSize, Integer status, String name) { + log.info("分页查询景区带配置列表, page: {}, pageSize: {}, status: {}, name: {}", page, pageSize, status, name); + CommonResponse response = scenicV2Client.listScenicsWithConfig(page, pageSize, status, name); + return handleResponse(response, "分页查询景区带配置列表失败"); + } + private T handleResponse(CommonResponse response, String errorMessage) { if (response == null || !response.isSuccess()) { String msg = response != null && response.getMessage() != null diff --git a/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicMetaIntegrationService.java b/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicMetaIntegrationService.java deleted file mode 100644 index a39f4dd..0000000 --- a/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicMetaIntegrationService.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.ycwl.basic.integration.scenic.service; - -import com.ycwl.basic.integration.common.exception.IntegrationException; -import com.ycwl.basic.integration.common.response.CommonResponse; -import com.ycwl.basic.integration.scenic.client.ScenicMetaClient; -import com.ycwl.basic.integration.scenic.dto.meta.*; -import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2WithConfigDTO; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -@RequiredArgsConstructor -public class ScenicMetaIntegrationService { - - private final ScenicMetaClient scenicMetaClient; - - public EnabledFieldsResponse getEnabledFields(Long scenicId) { - log.info("获取启用的字段, scenicId: {}", scenicId); - CommonResponse response = scenicMetaClient.getEnabledFields(scenicId); - return handleResponse(response, "获取启用的字段失败"); - } - - public List getAllFields() { - log.info("获取所有字段配置"); - CommonResponse> response = scenicMetaClient.getAllFields(); - return handleResponse(response, "获取所有字段配置失败"); - } - - public FieldConfigDTO getFieldConfig(String fieldKey) { - log.info("获取字段配置, fieldKey: {}", fieldKey); - CommonResponse response = scenicMetaClient.getFieldConfig(fieldKey); - return handleResponse(response, "获取字段配置失败"); - } - - public void setFieldEnabled(Long scenicId, String fieldKey, Boolean enabled) { - log.info("设置字段启用状态, scenicId: {}, fieldKey: {}, enabled: {}", scenicId, fieldKey, enabled); - SetFieldEnabledRequest request = new SetFieldEnabledRequest(); - request.setEnabled(enabled); - CommonResponse response = scenicMetaClient.setFieldEnabled(scenicId, fieldKey, request); - handleResponse(response, "设置字段启用状态失败"); - } - - public void batchSetFieldEnabled(Long scenicId, BatchSetFieldEnabledRequest request) { - log.info("批量设置字段启用状态, scenicId: {}, fields count: {}", scenicId, request.getFields().size()); - CommonResponse response = scenicMetaClient.batchSetFieldEnabled(scenicId, request); - handleResponse(response, "批量设置字段启用状态失败"); - } - - public ScenicV2WithConfigDTO getScenicWithConfigEnhanced(Long scenicId) { - log.info("获取景区与配置(增强版), scenicId: {}", scenicId); - CommonResponse response = scenicMetaClient.getScenicWithConfigEnhanced(scenicId); - return handleResponse(response, "获取景区与配置(增强版)失败"); - } - - public void updateConfigEnhanced(Long scenicId, Map configs) { - log.info("更新配置(增强版), scenicId: {}, configs count: {}", scenicId, configs.size()); - CommonResponse response = scenicMetaClient.updateConfigEnhanced(scenicId, configs); - handleResponse(response, "更新配置(增强版)失败"); - } - - private T handleResponse(CommonResponse response, String errorMessage) { - if (response == null || !response.isSuccess()) { - String msg = response != null && response.getMessage() != null - ? response.getMessage() - : errorMessage; - Integer code = response != null ? response.getCode() : 5000; - throw new IntegrationException(code, msg, "zt-scenic"); - } - return response.getData(); - } -} \ No newline at end of file