Преглед изворни кода

在 service-system 新增系统字典查询接口,供前端后续从 EMS 切换。

Co-authored-by: Cursor <cursoragent@cursor.com>
fuyuchuan пре 19 часа
родитељ
комит
9b8b5ae0e1
13 измењених фајлова са 341 додато и 0 уклоњено
  1. 55 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SystemDictController.java
  2. 37 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SystemDictCode.java
  3. 37 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SystemDictRegion.java
  4. 43 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SystemDictValue.java
  5. 12 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SystemDictCodeMapper.java
  6. 12 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SystemDictRegionMapper.java
  7. 12 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SystemDictValueMapper.java
  8. 10 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SystemDictCodeService.java
  9. 22 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SystemDictRegionService.java
  10. 10 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SystemDictValueService.java
  11. 15 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SystemDictCodeServiceImpl.java
  12. 61 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SystemDictRegionServiceImpl.java
  13. 15 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SystemDictValueServiceImpl.java

+ 55 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SystemDictController.java

@@ -0,0 +1,55 @@
+package com.usky.system.controller.web;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.domain.SystemDictCode;
+import com.usky.system.domain.SystemDictRegion;
+import com.usky.system.domain.SystemDictValue;
+import com.usky.system.service.SystemDictCodeService;
+import com.usky.system.service.SystemDictRegionService;
+import com.usky.system.service.SystemDictValueService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 系统字典(sys_system_dict_code / sys_system_dict_region / sys_system_dict_value)查询接口。
+ * 服务内路径:/system-dict;网关前缀:/prod-api/system/system-dict。
+ * 原 EMS 接口 /prod-api/service-ems/system-dict 本期仍保留,待前端切换后再下线。
+ */
+@RestController
+@RequestMapping("/system-dict")
+public class SystemDictController {
+
+    @Autowired
+    private SystemDictCodeService systemDictCodeService;
+    @Autowired
+    private SystemDictRegionService systemDictRegionService;
+    @Autowired
+    private SystemDictValueService systemDictValueService;
+
+    @GetMapping("/code/list")
+    public ApiResult<List<SystemDictCode>> listCodes() {
+        return ApiResult.success(systemDictCodeService.list());
+    }
+
+    /**
+     * @param parent 父级区域编码(如国标省市区上一级 code;省级可传约定根编码,需与字典数据一致)
+     */
+    @GetMapping("/region/list")
+    public ApiResult<List<SystemDictRegion>> listRegions(@RequestParam String parent) {
+        return ApiResult.success(systemDictRegionService.listByParentCode(parent));
+    }
+
+    @GetMapping("/value/list")
+    public ApiResult<List<SystemDictValue>> listValues(@RequestParam String dictCode) {
+        return ApiResult.success(systemDictValueService.list(
+                new LambdaQueryWrapper<SystemDictValue>()
+                        .eq(SystemDictValue::getDictCode, dictCode)
+                        .orderByAsc(SystemDictValue::getSort)));
+    }
+}

+ 37 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SystemDictCode.java

@@ -0,0 +1,37 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 系统字典编码(sys_system_dict_code,由 ems_system_dict_code 复制)
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("sys_system_dict_code")
+public class SystemDictCode implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String name;
+    private String code;
+    private String remark;
+    @TableField("updated_by")
+    private Long updatedBy;
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+    @TableField("created_by")
+    private Long createdBy;
+    @TableField("create_time")
+    private LocalDateTime createTime;
+}

+ 37 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SystemDictRegion.java

@@ -0,0 +1,37 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 省市区字典(sys_system_dict_region,由 ems_system_dict_region 复制)
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("sys_system_dict_region")
+public class SystemDictRegion implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String code;
+    private String name;
+    private String parent;
+    @TableField("updated_by")
+    private Long updatedBy;
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+    @TableField("created_by")
+    private Long createdBy;
+    @TableField("create_time")
+    private LocalDateTime createTime;
+}

+ 43 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SystemDictValue.java

@@ -0,0 +1,43 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 系统字典值(sys_system_dict_value,由 ems_system_dict_value 复制)
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("sys_system_dict_value")
+public class SystemDictValue implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("dict_code")
+    private String dictCode;
+    @TableField("parent_id")
+    private Integer parentId;
+    private String name;
+    private String value;
+    private String icon;
+    private Integer sort;
+    private String remark;
+    @TableField("updated_by")
+    private Long updatedBy;
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+    @TableField("created_by")
+    private Long createdBy;
+    @TableField("create_time")
+    private LocalDateTime createTime;
+}

+ 12 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SystemDictCodeMapper.java

@@ -0,0 +1,12 @@
+package com.usky.system.mapper;
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SystemDictCode;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 系统字典编码 Mapper(sys_system_dict_code)
+ */
+@Repository
+public interface SystemDictCodeMapper extends CrudMapper<SystemDictCode> {
+}

+ 12 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SystemDictRegionMapper.java

@@ -0,0 +1,12 @@
+package com.usky.system.mapper;
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SystemDictRegion;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 省市区字典 Mapper(sys_system_dict_region)
+ */
+@Repository
+public interface SystemDictRegionMapper extends CrudMapper<SystemDictRegion> {
+}

+ 12 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SystemDictValueMapper.java

@@ -0,0 +1,12 @@
+package com.usky.system.mapper;
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SystemDictValue;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 系统字典值 Mapper(sys_system_dict_value)
+ */
+@Repository
+public interface SystemDictValueMapper extends CrudMapper<SystemDictValue> {
+}

+ 10 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SystemDictCodeService.java

@@ -0,0 +1,10 @@
+package com.usky.system.service;
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SystemDictCode;
+
+/**
+ * 系统字典编码(sys_system_dict_code)
+ */
+public interface SystemDictCodeService extends CrudService<SystemDictCode> {
+}

+ 22 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SystemDictRegionService.java

@@ -0,0 +1,22 @@
+package com.usky.system.service;
+
+import com.usky.system.domain.SystemDictRegion;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 省市区字典(sys_system_dict_region)
+ */
+public interface SystemDictRegionService {
+
+    /**
+     * 校验省市区编码并返回 code -&gt; name;非法时抛出业务异常
+     */
+    Map<String, String> checkAndBuildMap(String provinceCode, String cityCode, String districtCode);
+
+    /**
+     * 按父级编码查询子级区域列表
+     */
+    List<SystemDictRegion> listByParentCode(String parentCode);
+}

+ 10 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SystemDictValueService.java

@@ -0,0 +1,10 @@
+package com.usky.system.service;
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SystemDictValue;
+
+/**
+ * 系统字典值(sys_system_dict_value)
+ */
+public interface SystemDictValueService extends CrudService<SystemDictValue> {
+}

+ 15 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SystemDictCodeServiceImpl.java

@@ -0,0 +1,15 @@
+package com.usky.system.service.impl;
+
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.system.domain.SystemDictCode;
+import com.usky.system.mapper.SystemDictCodeMapper;
+import com.usky.system.service.SystemDictCodeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 系统字典编码服务
+ */
+@Service
+public class SystemDictCodeServiceImpl extends AbstractCrudService<SystemDictCodeMapper, SystemDictCode>
+        implements SystemDictCodeService {
+}

+ 61 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SystemDictRegionServiceImpl.java

@@ -0,0 +1,61 @@
+package com.usky.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.system.domain.SystemDictRegion;
+import com.usky.system.mapper.SystemDictRegionMapper;
+import com.usky.system.service.SystemDictRegionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * 省市区字典服务
+ */
+@Service
+public class SystemDictRegionServiceImpl implements SystemDictRegionService {
+
+    @Autowired
+    private SystemDictRegionMapper systemDictRegionMapper;
+
+    @Override
+    public Map<String, String> checkAndBuildMap(String provinceCode, String cityCode, String districtCode) {
+        if (!StringUtils.hasText(provinceCode) || !StringUtils.hasText(cityCode) || !StringUtils.hasText(districtCode)) {
+            throw new BusinessException("省市区编码不能为空");
+        }
+        SystemDictRegion province = systemDictRegionMapper.selectOne(
+                new LambdaQueryWrapper<SystemDictRegion>().eq(SystemDictRegion::getCode, provinceCode).last("LIMIT 1"));
+        SystemDictRegion city = systemDictRegionMapper.selectOne(
+                new LambdaQueryWrapper<SystemDictRegion>().eq(SystemDictRegion::getCode, cityCode).last("LIMIT 1"));
+        SystemDictRegion district = systemDictRegionMapper.selectOne(
+                new LambdaQueryWrapper<SystemDictRegion>().eq(SystemDictRegion::getCode, districtCode).last("LIMIT 1"));
+        if (province == null || city == null || district == null) {
+            throw new BusinessException("省市区编码无效");
+        }
+        if (!Objects.equals(city.getParent(), province.getCode())) {
+            throw new BusinessException("市级编码与省级不匹配");
+        }
+        if (!Objects.equals(district.getParent(), city.getCode())) {
+            throw new BusinessException("区级编码与市级不匹配");
+        }
+        Map<String, String> map = new HashMap<>(4);
+        map.put(provinceCode, province.getName());
+        map.put(cityCode, city.getName());
+        map.put(districtCode, district.getName());
+        return map;
+    }
+
+    @Override
+    public List<SystemDictRegion> listByParentCode(String parentCode) {
+        if (!StringUtils.hasText(parentCode)) {
+            throw new BusinessException("父级编码不能为空");
+        }
+        return systemDictRegionMapper.selectList(
+                new LambdaQueryWrapper<SystemDictRegion>().eq(SystemDictRegion::getParent, parentCode));
+    }
+}

+ 15 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SystemDictValueServiceImpl.java

@@ -0,0 +1,15 @@
+package com.usky.system.service.impl;
+
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.system.domain.SystemDictValue;
+import com.usky.system.mapper.SystemDictValueMapper;
+import com.usky.system.service.SystemDictValueService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 系统字典值服务
+ */
+@Service
+public class SystemDictValueServiceImpl extends AbstractCrudService<SystemDictValueMapper, SystemDictValue>
+        implements SystemDictValueService {
+}