diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/security/SecurityAreaUserController.java b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/security/SecurityAreaUserController.java index 1421c89..bd34c5a 100644 --- a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/security/SecurityAreaUserController.java +++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/security/SecurityAreaUserController.java @@ -1,11 +1,14 @@ package com.viewsh.module.ops.controller.admin.security; import com.viewsh.framework.common.pojo.CommonResult; +import com.viewsh.framework.common.util.collection.CollectionUtils; import com.viewsh.module.ops.controller.admin.security.vo.OpsAreaSecurityUserBindReqVO; import com.viewsh.module.ops.controller.admin.security.vo.OpsAreaSecurityUserRespVO; import com.viewsh.module.ops.controller.admin.security.vo.OpsAreaSecurityUserUpdateReqVO; import com.viewsh.module.ops.security.dal.dataobject.area.OpsAreaSecurityUserDO; import com.viewsh.module.ops.security.service.area.OpsAreaSecurityUserService; +import com.viewsh.module.system.api.user.AdminUserApi; +import com.viewsh.module.system.api.user.dto.AdminUserRespDTO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -16,6 +19,9 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; import static com.viewsh.framework.common.pojo.CommonResult.success; @@ -32,6 +38,8 @@ public class SecurityAreaUserController { @Resource private OpsAreaSecurityUserService areaSecurityUserService; + @Resource + private AdminUserApi adminUserApi; @GetMapping("/list") @Operation(summary = "查询区域绑定的安保人员") @@ -39,8 +47,11 @@ public class SecurityAreaUserController { public CommonResult> list( @Parameter(description = "区域ID", required = true) @RequestParam("areaId") Long areaId) { List list = areaSecurityUserService.listByAreaId(areaId); + // 批量查询用户信息,填充 nickname 和 mobile + Set userIds = list.stream().map(OpsAreaSecurityUserDO::getUserId).collect(Collectors.toSet()); + Map userMap = adminUserApi.getUserMap(userIds); List result = list.stream() - .map(this::convertToRespVO) + .map(entity -> convertToRespVO(entity, userMap)) .toList(); return success(result); } @@ -72,7 +83,8 @@ public class SecurityAreaUserController { return success(true); } - private OpsAreaSecurityUserRespVO convertToRespVO(OpsAreaSecurityUserDO entity) { + private OpsAreaSecurityUserRespVO convertToRespVO(OpsAreaSecurityUserDO entity, + Map userMap) { OpsAreaSecurityUserRespVO vo = new OpsAreaSecurityUserRespVO(); vo.setId(entity.getId()); vo.setAreaId(entity.getAreaId()); @@ -82,6 +94,12 @@ public class SecurityAreaUserController { vo.setEnabled(entity.getEnabled()); vo.setSort(entity.getSort()); vo.setCreateTime(entity.getCreateTime()); + // 填充用户昵称和手机号 + AdminUserRespDTO user = userMap.get(entity.getUserId()); + if (user != null) { + vo.setNickname(user.getNickname()); + vo.setMobile(user.getMobile()); + } return vo; } diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/security/vo/OpsAreaSecurityUserRespVO.java b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/security/vo/OpsAreaSecurityUserRespVO.java index d733502..3a98941 100644 --- a/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/security/vo/OpsAreaSecurityUserRespVO.java +++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/java/com/viewsh/module/ops/controller/admin/security/vo/OpsAreaSecurityUserRespVO.java @@ -26,6 +26,12 @@ public class OpsAreaSecurityUserRespVO { @Schema(description = "安保人员姓名", example = "张三") private String userName; + @Schema(description = "用户昵称", example = "小王") + private String nickname; + + @Schema(description = "手机号码", example = "13800138000") + private String mobile; + @Schema(description = "班组ID", example = "10") private Long teamId;