【7.2.5】【user】更新管理员类型

pull/37/head
fengshuonan 2022-09-30 11:43:25 +08:00
parent 4677f9bbde
commit 57d5005ad3
5 changed files with 295 additions and 4 deletions

View File

@ -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.
*
* GunsAPACHE 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;
}

View File

@ -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.
*
* GunsAPACHE 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<>();
}
}

View File

@ -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.
*
* GunsAPACHE 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 idid
* @author fengshuonan
* @date 2022/9/30 11:06
*/
List<SysUserAdminDTO> getAdminUserList();
}

View File

@ -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
*/

View File

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