feat(security): 安保人员列表接口补充昵称和手机号
区域安保人员查询接口批量关联 AdminUserApi, 在响应中填充 nickname 和 mobile 字段 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user