mirror of https://gitee.com/stylefeng/roses
【7.2.5】【user】更新管理员类型
parent
4677f9bbde
commit
57d5005ad3
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
* Copyright [2020-2030] [https://www.stylefeng.cn]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Guns源码头部的版权声明。
|
||||
* 3.请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
||||
*/
|
||||
package cn.stylefeng.roses.kernel.system.api.pojo.user;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 管理员用户的响应
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/30 11:25
|
||||
*/
|
||||
@Data
|
||||
public class SysUserAdminDTO {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ChineseDescription("主键")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
@ChineseDescription("角色id")
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@ChineseDescription("姓名")
|
||||
private String realName;
|
||||
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* Copyright [2020-2030] [https://www.stylefeng.cn]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Guns源码头部的版权声明。
|
||||
* 3.请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
||||
*/
|
||||
package cn.stylefeng.roses.kernel.system.modular.user.controller;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserAdminDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.request.SysUserRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserAdminService;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 管理员相关接口
|
||||
* <p>
|
||||
* 管理员角色只能维护后台相关菜单
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/30 10:44
|
||||
*/
|
||||
@RestController
|
||||
@ApiResource(name = "管理员相关接口", resBizType = ResBizTypeEnum.SYSTEM)
|
||||
public class SysUserAdminController {
|
||||
|
||||
@Resource
|
||||
private SysUserAdminService sysUserAdminService;
|
||||
|
||||
/**
|
||||
* 获取后台管理员列表
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/30 10:44
|
||||
*/
|
||||
@GetResource(name = "获取后台管理员列表", path = "/sysUser/backAuth/getAdminList")
|
||||
public ResponseData<List<SysUserAdminDTO>> getAdminList() {
|
||||
List<SysUserAdminDTO> adminUserList = sysUserAdminService.getAdminUserList();
|
||||
return new SuccessResponseData<>(adminUserList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加后台管理员
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/28 20:28
|
||||
*/
|
||||
@PostResource(name = "添加后台管理员", path = "/sysUser/backAuth/addAdmin")
|
||||
public ResponseData<?> addAdmin(@RequestBody SysUserRequest sysUserRequest) {
|
||||
|
||||
return new SuccessResponseData<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除后台管理员
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/28 20:28
|
||||
*/
|
||||
@PostResource(name = "删除后台管理员", path = "/sysUser/backAuth/delAdmin")
|
||||
public ResponseData<?> delAdmin(@RequestBody SysUserRequest sysUserRequest) {
|
||||
|
||||
return new SuccessResponseData<>();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* Copyright [2020-2030] [https://www.stylefeng.cn]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Guns源码头部的版权声明。
|
||||
* 3.请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
||||
*/
|
||||
package cn.stylefeng.roses.kernel.system.modular.user.service;
|
||||
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserAdminDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 管理员用户业务
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/30 11:05
|
||||
*/
|
||||
public interface SysUserAdminService {
|
||||
|
||||
/**
|
||||
* 获取管理员列表
|
||||
*
|
||||
* @return 返回的包装类中,id是角色id
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/30 11:06
|
||||
*/
|
||||
List<SysUserAdminDTO> getAdminUserList();
|
||||
|
||||
}
|
|
@ -24,9 +24,9 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.system.modular.user.service;
|
||||
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserRole;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.request.SysUserRequest;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.request.UserRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserRole;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -39,7 +39,6 @@ import java.util.List;
|
|||
*/
|
||||
public interface SysUserRoleService extends IService<SysUserRole> {
|
||||
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
|
@ -98,7 +97,6 @@ public interface SysUserRoleService extends IService<SysUserRole> {
|
|||
* 根据userId查询列表
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 15:06
|
||||
*/
|
||||
|
@ -118,7 +116,6 @@ public interface SysUserRoleService extends IService<SysUserRole> {
|
|||
* 角色分配
|
||||
*
|
||||
* @param sysUserRequest 请求参数
|
||||
* @return
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 15:16
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.user.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.RoleServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserAdminDTO;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUser;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserRole;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserAdminService;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserRoleService;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 管理员相关的业务
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/30 11:07
|
||||
*/
|
||||
@Service
|
||||
public class SysUserAdminServiceImpl implements SysUserAdminService {
|
||||
|
||||
@Resource
|
||||
private RoleServiceApi roleServiceApi;
|
||||
|
||||
@Resource
|
||||
private SysUserRoleService sysUserRoleService;
|
||||
|
||||
@Resource
|
||||
private SysUserService sysUserService;
|
||||
|
||||
@Override
|
||||
public List<SysUserAdminDTO> getAdminUserList() {
|
||||
|
||||
// 获取所有管理员角色
|
||||
SysRoleRequest sysRoleRequest = new SysRoleRequest();
|
||||
sysRoleRequest.setAdminFlag(YesOrNotEnum.Y.getCode());
|
||||
List<SysRoleDTO> roleSelectList = roleServiceApi.getRoleSelectList(sysRoleRequest);
|
||||
List<Long> adminRoleIds = roleSelectList.stream().map(SysRoleDTO::getRoleId).collect(Collectors.toList());
|
||||
|
||||
// 如果没有管理员,则返回空
|
||||
if (ObjectUtil.isEmpty(adminRoleIds)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
// 获取管理员角色,对应的用户集合
|
||||
LambdaQueryWrapper<SysUserRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(SysUserRole::getRoleId, adminRoleIds);
|
||||
List<SysUserRole> sysUserRoleList = sysUserRoleService.list(queryWrapper);
|
||||
List<Long> userIdList = sysUserRoleList.stream().map(SysUserRole::getUserId).collect(Collectors.toList());
|
||||
|
||||
// 没有相关的人员绑定管理员角色,则返回空
|
||||
if (ObjectUtil.isEmpty(userIdList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
// 查询对应的人员信息
|
||||
LambdaQueryWrapper<SysUser> sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sysUserLambdaQueryWrapper.select(SysUser::getUserId, SysUser::getRealName);
|
||||
sysUserLambdaQueryWrapper.in(SysUser::getUserId);
|
||||
sysUserLambdaQueryWrapper.ne(SysUser::getDelFlag, YesOrNotEnum.Y.getCode());
|
||||
List<SysUser> userList = sysUserService.list(sysUserLambdaQueryWrapper);
|
||||
if (ObjectUtil.isEmpty(userList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
// 转化实体
|
||||
ArrayList<SysUserAdminDTO> sysUserAdminDTOS = new ArrayList<>();
|
||||
Map<Long, List<SysUserRole>> userIdRoles = sysUserRoleList.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
|
||||
for (SysUser sysUser : userList) {
|
||||
SysUserAdminDTO sysUserAdminDTO = new SysUserAdminDTO();
|
||||
sysUserAdminDTO.setUserId(sysUser.getUserId());
|
||||
|
||||
// 设置角色id
|
||||
List<SysUserRole> userRoles = userIdRoles.get(sysUser.getUserId());
|
||||
if (userRoles != null && userRoles.size() > 0) {
|
||||
sysUserAdminDTO.setRoleId(userRoles.get(0).getRoleId());
|
||||
}
|
||||
|
||||
// 设置用户名称
|
||||
sysUserAdminDTO.setRealName(sysUser.getNickName());
|
||||
}
|
||||
|
||||
return sysUserAdminDTOS;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue