fix (farm): 人员管理,大屏
- 人员管理简化流程 - 大屏数据切换接口
This commit is contained in:
@@ -30,6 +30,7 @@ import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
@@ -122,6 +123,15 @@ public class UserController {
|
||||
return success(UserConvert.INSTANCE.convertSimpleList(list, deptMap));
|
||||
}
|
||||
|
||||
@GetMapping({"/list-all-simple-by-role"})
|
||||
@Operation(summary = "通过角色标识获取用户精简信息列表", description = "通过角色标识区分用户,主要用于前端的下拉选项")
|
||||
@Parameter(name = "roleCode", description = "角色标识", required = true)
|
||||
public CommonResult<List<UserSimpleByRoleRespVO>> getSimpleUserListByRole(@RequestParam("roleCode") String roleCode) {
|
||||
List<AdminUserDO> list = userService.getSimpleUserListByRoleCode(roleCode);
|
||||
List<UserSimpleByRoleRespVO> res = list.stream().map(e -> new UserSimpleByRoleRespVO(e.getId(), e.getNickname())).collect(Collectors.toList());
|
||||
return success(res);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得用户详情")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@@ -185,4 +195,6 @@ public class UserController {
|
||||
return success(userService.fixUserTenantId(userId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package cn.iocoder.yudao.module.system.controller.admin.user.vo.user;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @description: TODO
|
||||
* @author: binda
|
||||
* @date: 2025/11/20 15:37
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class UserSimpleByRoleRespVO {
|
||||
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
private String nickname;
|
||||
}
|
||||
@@ -58,4 +58,6 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
|
||||
@InterceptorIgnore(tenantLine = "true")
|
||||
@Select("SELECT * FROM system_users WHERE deleted = 0 AND mobile = #{mobile} AND tenant_id = #{tenantId}")
|
||||
AdminUserDO selectListByMobileAndTenantId(@Param("mobile") String mobile,@Param("tenantId") String tenantId);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -64,6 +64,13 @@ public interface RoleService {
|
||||
*/
|
||||
RoleDO getRole(Long id);
|
||||
|
||||
/**
|
||||
* 通过角色标识获取角色
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
List<RoleDO> getRoleByCode(String code);
|
||||
|
||||
/**
|
||||
* 获得角色,从缓存中
|
||||
*
|
||||
|
||||
@@ -9,6 +9,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
||||
@@ -189,6 +190,14 @@ public class RoleServiceImpl implements RoleService {
|
||||
return roleMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RoleDO> getRoleByCode(String code) {
|
||||
LambdaQueryWrapperX<RoleDO> x = new LambdaQueryWrapperX<>();
|
||||
x.eqIfPresent(RoleDO::getCode, code);
|
||||
x.ne(RoleDO::getType, 1);
|
||||
return roleMapper.selectList(x);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Cacheable(value = RedisKeyConstants.ROLE, key = "#id",
|
||||
unless = "#result == null")
|
||||
|
||||
@@ -238,4 +238,12 @@ public interface AdminUserService {
|
||||
* @return
|
||||
*/
|
||||
List<TenantRespVO> loginForTenantList(LoginForTenantReqVO reqVO);
|
||||
|
||||
Map<String, String> getIdAndNickNameMap();
|
||||
|
||||
String getNickNameStrLink(String managerIds);
|
||||
|
||||
int countUser();
|
||||
|
||||
List<AdminUserDO> getSimpleUserListByRoleCode(String roleCode);
|
||||
}
|
||||
|
||||
@@ -26,15 +26,15 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqV
|
||||
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.PersonnelDO;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.user.PersonnelMapper;
|
||||
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
||||
import cn.iocoder.yudao.module.system.service.dept.PostService;
|
||||
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
|
||||
import cn.iocoder.yudao.module.system.service.permission.RoleService;
|
||||
import cn.iocoder.yudao.module.system.service.tenant.TenantService;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.mzt.logapi.context.LogRecordContext;
|
||||
@@ -50,11 +50,13 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
|
||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
|
||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.*;
|
||||
import static java.util.stream.Collectors.toMap;
|
||||
|
||||
/**
|
||||
* 后台用户 Service 实现类
|
||||
@@ -71,7 +73,8 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
|
||||
@Resource
|
||||
private AdminUserMapper userMapper;
|
||||
|
||||
@Resource
|
||||
private RoleService roleService;
|
||||
@Resource
|
||||
private DeptService deptService;
|
||||
@Resource
|
||||
@@ -90,9 +93,6 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
@Resource
|
||||
private ConfigApi configApi;
|
||||
|
||||
@Resource
|
||||
private PersonnelMapper personnelMapper;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@LogRecord(type = SYSTEM_USER_TYPE, subType = SYSTEM_USER_CREATE_SUB_TYPE, bizNo = "{{#user.id}}",
|
||||
@@ -142,7 +142,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
}
|
||||
userDo.setRole(roles);
|
||||
userDo.setId(IdUtil.fastUUID());
|
||||
personnelMapper.insert(userDo);
|
||||
// personnelMapper.insert(userDo);
|
||||
return user.getId();
|
||||
}
|
||||
|
||||
@@ -190,27 +190,27 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
// 2.1 更新用户
|
||||
AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class);
|
||||
userMapper.updateById(updateObj);
|
||||
AdminUserDO adminUserDO = userMapper.selectById(updateObj.getId());
|
||||
PersonnelDO userDo = personnelMapper.selectByPhone(adminUserDO.getMobile());
|
||||
if (updateObj.getNickname() != null) userDo.setName(updateObj.getNickname());
|
||||
if (updateObj.getMobile() != null) userDo.setPhone(updateObj.getMobile());
|
||||
if (updateObj.getDeptId() != null) userDo.setDepartment(updateObj.getDeptId().toString());
|
||||
if (updateObj.getTenantId() != null) userDo.setTenantId(updateObj.getTenantId().toString());
|
||||
if (updateObj.getAvatar() != null) userDo.setPicture(updateObj.getAvatar());
|
||||
userDo.setAccountStatus(0);
|
||||
List<UserPostDO> userPostDOS = convertList(updateObj.getPostIds(),
|
||||
postId -> new UserPostDO().setUserId(updateObj.getId()).setPostId(postId));
|
||||
String roles = "";
|
||||
for (UserPostDO up : userPostDOS) {
|
||||
if (roles.length() > 0) {
|
||||
roles += "," + up.getPostId();
|
||||
} else {
|
||||
roles = up.getPostId().toString();
|
||||
}
|
||||
}
|
||||
userDo.setRole(roles);
|
||||
personnelMapper.updateById(userDo);
|
||||
|
||||
// AdminUserDO adminUserDO = userMapper.selectById(updateObj.getId());
|
||||
// PersonnelDO userDo = personnelMapper.selectByPhone(adminUserDO.getMobile());
|
||||
// if (updateObj.getNickname() != null) userDo.setName(updateObj.getNickname());
|
||||
// if (updateObj.getMobile() != null) userDo.setPhone(updateObj.getMobile());
|
||||
// if (updateObj.getDeptId() != null) userDo.setDepartment(updateObj.getDeptId().toString());
|
||||
// if (updateObj.getTenantId() != null) userDo.setTenantId(updateObj.getTenantId().toString());
|
||||
// if (updateObj.getAvatar() != null) userDo.setPicture(updateObj.getAvatar());
|
||||
// userDo.setAccountStatus(0);
|
||||
// List<UserPostDO> userPostDOS = convertList(updateObj.getPostIds(),
|
||||
// postId -> new UserPostDO().setUserId(updateObj.getId()).setPostId(postId));
|
||||
// String roles = "";
|
||||
// for (UserPostDO up : userPostDOS) {
|
||||
// if (roles.length() > 0) {
|
||||
// roles += "," + up.getPostId();
|
||||
// } else {
|
||||
// roles = up.getPostId().toString();
|
||||
// }
|
||||
// }
|
||||
// userDo.setRole(roles);
|
||||
// personnelMapper.updateById(userDo);
|
||||
//
|
||||
// 2.2 更新岗位
|
||||
updateUserPost(updateReqVO, updateObj);
|
||||
|
||||
@@ -298,7 +298,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
// 1. 校验用户存在
|
||||
AdminUserDO user = validateUserExists(id);
|
||||
AdminUserDO adminUserDO = userMapper.selectById(id);
|
||||
personnelMapper.delete(PersonnelDO::getPhone, adminUserDO.getMobile());
|
||||
// personnelMapper.delete(PersonnelDO::getPhone, adminUserDO.getMobile());
|
||||
// 2.1 删除用户
|
||||
userMapper.deleteById(id);
|
||||
// 2.2 删除用户关联数据
|
||||
@@ -656,4 +656,47 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
return tenantService.loginForTenantList(reqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> getIdAndNickNameMap() {
|
||||
Map<String, String> nicknameMap = userMapper.selectList().stream()
|
||||
.collect(toMap(user -> String.valueOf(user.getId()), AdminUserDO::getNickname, (v1, v2) -> v1));
|
||||
return nicknameMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNickNameStrLink(String managerIds) {
|
||||
|
||||
|
||||
List<AdminUserDO> userDOS = userMapper.selectByIds(Arrays.asList(managerIds.split(",")));
|
||||
|
||||
String nicknames = userDOS.stream()
|
||||
.map(AdminUserDO::getNickname)
|
||||
.collect(Collectors.joining(","));
|
||||
|
||||
return nicknames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countUser() {
|
||||
return userMapper.selectCount().intValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AdminUserDO> getSimpleUserListByRoleCode(String roleCode) {
|
||||
|
||||
List<RoleDO> roles = roleService.getRoleByCode(roleCode);
|
||||
if (null == roles || roles.size() == 0) {
|
||||
return Collections.EMPTY_LIST;
|
||||
}
|
||||
|
||||
List<Long> roleIds = roles.stream()
|
||||
.map(RoleDO::getId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Set<Long> userIds = permissionService.getUserRoleIdListByRoleId(roleIds);
|
||||
|
||||
List<AdminUserDO> userList = userMapper.selectByIds(userIds);
|
||||
return userList;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user