feat(security): 安保人员列表接口补充昵称和手机号

区域安保人员查询接口批量关联 AdminUserApi,
在响应中填充 nickname 和 mobile 字段

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
lzh
2026-03-25 11:31:09 +08:00
parent c7bdf7d773
commit 4c48f72c66
2 changed files with 26 additions and 2 deletions

View File

@@ -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<OpsAreaSecurityUserRespVO>> list(
@Parameter(description = "区域ID", required = true) @RequestParam("areaId") Long areaId) {
List<OpsAreaSecurityUserDO> list = areaSecurityUserService.listByAreaId(areaId);
// 批量查询用户信息,填充 nickname 和 mobile
Set<Long> userIds = list.stream().map(OpsAreaSecurityUserDO::getUserId).collect(Collectors.toSet());
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
List<OpsAreaSecurityUserRespVO> 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<Long, AdminUserRespDTO> 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;
}

View File

@@ -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;