ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/model/UserDetail.java
@@ -6,41 +6,53 @@ import java.time.LocalDateTime; @Data @Schema(description = "用户详情") public class UserDetail { @Schema(description = "用户id") private Long userId; @Schema(description = "公司名称") private String companyName; /** 统一社会信用代码 */ @Schema(description = "统一社会信用代码") private String socialCode; /** 联系人姓名 */ @Schema(description = "联系人姓名") private String contactName; /** 联系人手机号 */ @Schema(description = "联系人手机号") private String contactPhone; /** 联系人邮箱 */ @Schema(description = "联系人邮箱") private String email; /** 账号 */ @Schema(description = "账号") private String accountName; /** 用户名称 */ @Schema(description = "用户名称") private String userName; /** 注册时间 */ @Schema(description = "注册时间") private LocalDateTime registerTime; /** 绑定手机号 */ @Schema(description = "绑定手机号") private String phone; /** 账号ID */ @Schema(description = "账号ID") private Long accountId; /** 登录密码 */ @Schema(description = "登录密码") private String password; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Region.java
New file @@ -0,0 +1,21 @@ package com.ruoyi.system.api.domain; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.util.List; @Data @TableName("sys_region") public class Region { private Integer id; private String name; private String code; private String citycode; private Integer parentId; private String english; @TableField(exist = false) // 表示该字段不在数据库表中 private List<Region> children; // 子节点 } ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -157,6 +157,7 @@ appUser.setAccountName(user.getAccountName()); appUser.setPhone(user.getPhone()); appUser.setLoginTime(System.currentTimeMillis()); appUser.setExpireTime(appUser.getLoginTime() + CacheConstants.EXPIRATION * 60 * 1000L); appUser.setToken(token); // 根据uuid将loginUser缓存 ruoyi-gateway/src/main/resources/bootstrap.yml
@@ -15,6 +15,7 @@ discovery: # 服务注册地址 server-addr: 192.168.110.111:8848 ip: 192.168.110.111 config: # 配置中心地址 server-addr: 192.168.110.111:8848 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RegionController.java
New file @@ -0,0 +1,27 @@ package com.ruoyi.system.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.Region; import com.ruoyi.system.service.RegionService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; 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.RestController; import java.util.List; @RestController @RequestMapping("/region") @Tag(name = "区域管理") public class RegionController { @Autowired private RegionService regionService; @GetMapping("/tree") @Operation(summary = "获取区域树") public R<List<Region>> getRegionTree() { return R.ok(regionService.getRegionTree()); } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RegionMapper.java
New file @@ -0,0 +1,7 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.api.domain.Region; public interface RegionMapper extends BaseMapper<Region> { } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/RegionService.java
New file @@ -0,0 +1,10 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.api.domain.Region; import java.util.List; public interface RegionService extends IService<Region> { List<Region> getRegionTree(); } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RegionServiceImpl.java
New file @@ -0,0 +1,57 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.api.domain.Region; import com.ruoyi.system.mapper.RegionMapper; import com.ruoyi.system.service.RegionService; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; @Service public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> implements RegionService { @Override public List<Region> getRegionTree() { // 查询所有数据 List<Region> allRegions = list(); // 构建树形结构 return buildTree(allRegions); } /** * 构建树形结构 * * @param allRegions 所有地区数据 * @return 树形结构数据 */ private List<Region> buildTree(List<Region> allRegions) { // 1. 找到所有省份(parentId为null或0) List<Region> provinces = allRegions.stream() .filter(region -> region.getParentId() == null || region.getParentId() == 0) .collect(Collectors.toList()); // 2. 递归设置子节点 provinces.forEach(province -> { province.setChildren(getChildren(province, allRegions)); }); return provinces; } /** * 递归获取子节点 * * @param parent 父节点 * @param allRegions 所有地区数据 * @return 子节点列表 */ private List<Region> getChildren(Region parent, List<Region> allRegions) { return allRegions.stream() .filter(region -> parent.getId().equals(region.getParentId())) .peek(region -> region.setChildren(getChildren(region, allRegions))) .collect(Collectors.toList()); } } ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -15,6 +15,7 @@ discovery: # 服务注册地址 server-addr: 192.168.110.111:8848 ip: 192.168.110.111 config: # 配置中心地址 server-addr: 192.168.110.111:8848