迁移 system 服务,admin 逻辑
This commit is contained in:
@@ -1,7 +1,19 @@
|
||||
package cn.iocoder.mall.system.rest.controller.admin;
|
||||
|
||||
import cn.iocoder.common.framework.constant.MallConstants;
|
||||
import cn.iocoder.common.framework.vo.CommonResult;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.security.core.annotation.RequiresPermissions;
|
||||
import cn.iocoder.mall.system.biz.bo.admin.AdminBO;
|
||||
import cn.iocoder.mall.system.biz.dto.admin.AdminPageDTO;
|
||||
import cn.iocoder.mall.system.biz.service.admin.AdminService;
|
||||
import cn.iocoder.mall.system.rest.convert.admin.AdminsAdminConvert;
|
||||
import cn.iocoder.mall.system.rest.request.admin.AdminsAdminPageRequest;
|
||||
import cn.iocoder.mall.system.rest.response.admin.AdminsAdminPageResponse;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@@ -10,6 +22,88 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
@Api(tags = "管理员 - 管理员 API")
|
||||
public class AdminsAdminController {
|
||||
|
||||
@Autowired
|
||||
private AdminService adminService;
|
||||
|
||||
@GetMapping("/page")
|
||||
@RequiresPermissions("system:admin:page")
|
||||
@ApiOperation(value = "管理员分页")
|
||||
public CommonResult<PageResult<AdminsAdminPageResponse>> page(AdminsAdminPageRequest request) {
|
||||
// 查询管理员分页
|
||||
AdminPageDTO pageDTO = AdminsAdminConvert.INSTANCE.convert(request);
|
||||
PageResult<AdminBO> adminPageBO = adminService.getAdminPage(pageDTO);
|
||||
PageResult<AdminsAdminPageResponse> adminPageResponse = AdminsAdminConvert.INSTANCE.convertPage(adminPageBO);
|
||||
if (adminPageResponse.getList().isEmpty()) {
|
||||
return CommonResult.success(adminPageResponse);
|
||||
}
|
||||
// 拼接角色数据
|
||||
|
||||
|
||||
// TODO 拼接部门数据
|
||||
|
||||
// 拼接结果
|
||||
// if (!resultPage.getList().isEmpty()) {
|
||||
// // 查询角色数组
|
||||
// Map<Integer, Collection<RoleBO>> roleMap = adminService.getAdminRolesMap(CollectionUtil.convertList(resultPage.getList(), AdminBO::getId));
|
||||
// resultPage.getList().forEach(admin -> admin.setRoles(AdminConvert.INSTANCE.convertAdminVORoleList(roleMap.get(admin.getId()))));
|
||||
//
|
||||
// // 查询对应部门
|
||||
// List<DeptmentBO> deptmentBOS = deptmentService.getAllDeptments();
|
||||
// Map<Integer, String> deptNameMap = deptmentBOS.stream().collect(Collectors.toMap(d->d.getId(), d->d.getName()));
|
||||
// //管理员所在部门被删后,变成未分配状态
|
||||
// deptNameMap.put(0, "未分配");
|
||||
// resultPage.getList().forEach(admin->{
|
||||
// admin.setDeptment(new AdminVO.Deptment(admin.getDeptmentId(), deptNameMap.get(admin.getDeptmentId())));
|
||||
// });
|
||||
// }
|
||||
|
||||
return CommonResult.success(adminPageResponse);
|
||||
}
|
||||
|
||||
// @PostMapping("/add")
|
||||
// @ApiOperation(value = "创建管理员")
|
||||
// public CommonResult<AdminBO> add(AdminAddDTO adminAddDTO) {
|
||||
// return success(adminService.addAdmin(AdminSecurityContextHolder.getContext().getAdminId(), adminAddDTO));
|
||||
// }
|
||||
//
|
||||
// @PostMapping("/update")
|
||||
// @ApiOperation(value = "更新管理员")
|
||||
// public CommonResult<Boolean> update(AdminUpdateDTO adminUpdateDTO) {
|
||||
// return success(adminService.updateAdmin(AdminSecurityContextHolder.getContext().getAdminId(), adminUpdateDTO));
|
||||
// }
|
||||
//
|
||||
// @PostMapping("/update_status")
|
||||
// @ApiOperation(value = "更新管理员状态")
|
||||
// public CommonResult<Boolean> updateStatus(AdminUpdateStatusDTO adminUpdateStatusDTO) {
|
||||
// return success(adminService.updateAdminStatus(AdminSecurityContextHolder.getContext().getAdminId(), adminUpdateStatusDTO));
|
||||
// }
|
||||
//
|
||||
// @PostMapping("/delete")
|
||||
// @ApiOperation(value = "删除管理员")
|
||||
// @ApiImplicitParam(name = "id", value = "管理员编号", required = true, example = "1")
|
||||
// public CommonResult<Boolean> delete(@RequestParam("id") Integer id) {
|
||||
// return success(adminService.deleteAdmin(AdminSecurityContextHolder.getContext().getAdminId(), id));
|
||||
// }
|
||||
//
|
||||
// @GetMapping("/role_list")
|
||||
// @ApiOperation(value = "指定管理员拥有的角色列表")
|
||||
// @ApiImplicitParam(name = "id", value = "管理员编号", required = true, example = "1")
|
||||
// public CommonResult<List<AdminRoleVO>> roleList(@RequestParam("id") Integer id) {
|
||||
// // 获得所有角色列表
|
||||
// List<RoleBO> allRoleList = roleService.getRoleList();
|
||||
// // 获得管理员的角色数组
|
||||
// Set<Integer> adminRoleIdSet = CollectionUtil.convertSet(adminService.getRoleList(id), RoleBO::getId);
|
||||
// // 转换出返回结果
|
||||
// List<AdminRoleVO> result = AdminConvert.INSTANCE.convert(allRoleList);
|
||||
// // 设置每个角色是否赋予给改管理员
|
||||
// result.forEach(adminRoleVO -> adminRoleVO.setAssigned(adminRoleIdSet.contains(adminRoleVO.getId())));
|
||||
// return success(result);
|
||||
// }
|
||||
//
|
||||
// @PostMapping("/assign_role")
|
||||
// @ApiOperation(value = "分配给管理员角色")
|
||||
// public CommonResult<Boolean> assignRole(AdminAssignRoleDTO adminAssignRoleDTO) {
|
||||
// return success(adminService.assignAdminRole(AdminSecurityContextHolder.getContext().getAdminId(), adminAssignRoleDTO));
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package cn.iocoder.mall.system.rest.controller.authorization;
|
||||
|
||||
import cn.iocoder.common.framework.constant.MallConstants;
|
||||
import cn.iocoder.common.framework.vo.CommonResult;
|
||||
import cn.iocoder.mall.security.core.annotation.RequiresPermissions;
|
||||
import cn.iocoder.mall.security.core.context.AdminSecurityContextHolder;
|
||||
import cn.iocoder.mall.system.biz.bo.authorization.ResourceBO;
|
||||
import cn.iocoder.mall.system.biz.bo.authorization.ResourceTreeNodeBO;
|
||||
@@ -12,6 +13,7 @@ import cn.iocoder.mall.system.biz.dto.authorization.ResourceGetTreeDTO;
|
||||
import cn.iocoder.mall.system.biz.enums.authorization.ResourceTypeEnum;
|
||||
import cn.iocoder.mall.system.biz.service.authorization.AuthorizationService;
|
||||
import cn.iocoder.mall.system.biz.service.authorization.ResourceService;
|
||||
import cn.iocoder.mall.system.biz.service.authorization.RoleService;
|
||||
import cn.iocoder.mall.system.rest.convert.authorization.AdminsAuthorizationConvert;
|
||||
import cn.iocoder.mall.system.rest.request.authorization.AdminsAuthorizationAssignRoleResourceRequest;
|
||||
import cn.iocoder.mall.system.rest.response.authorization.AdminsAuthorizationMenuTreeResponse;
|
||||
@@ -37,6 +39,8 @@ public class AdminsAuthorizationController {
|
||||
private AuthorizationService authorizationService;
|
||||
@Autowired
|
||||
private ResourceService resourceService;
|
||||
@Autowired
|
||||
private RoleService roleService;
|
||||
|
||||
@GetMapping("/menu-resource-tree")
|
||||
@ApiOperation(value = "获得当前账号的菜单资源树", notes = "以树结构返回")
|
||||
@@ -57,6 +61,7 @@ public class AdminsAuthorizationController {
|
||||
@GetMapping("/role_resource_tree")
|
||||
@ApiOperation(value = "获得角色拥有的菜单权限", notes = "以树结构返回。注意,返回的资源树是完整的结构,会标记每个资源节点是否被角色所拥有")
|
||||
@ApiImplicitParam(name = "roleId", value = "角色编号", required = true, example = "1")
|
||||
@RequiresPermissions("system:authorization:assign_role_resource")
|
||||
public CommonResult<List<AdminsAuthorizationRoleResourceTreeResponse>> roleResourceTree(@RequestParam("roleId") Integer roleId) {
|
||||
// 1. 获得完整的资源树
|
||||
List<ResourceTreeNodeBO> resourceTreeNodeBOs = resourceService.getResourceTree(new ResourceGetTreeDTO());
|
||||
@@ -68,6 +73,7 @@ public class AdminsAuthorizationController {
|
||||
|
||||
@PostMapping("/assign_role_resource")
|
||||
@ApiOperation(value = "分配角色资源")
|
||||
@RequiresPermissions("system:authorization:assign_role_resource")
|
||||
public CommonResult<Boolean> assignRoleResource(AdminsAuthorizationAssignRoleResourceRequest request) {
|
||||
AuthorizationAssignRoleResourceDTO authorizationAssignRoleResourceDTO = AdminsAuthorizationConvert.INSTANCE.convert(request)
|
||||
.setAdminId(AdminSecurityContextHolder.getAdminId());
|
||||
@@ -75,4 +81,26 @@ public class AdminsAuthorizationController {
|
||||
return CommonResult.success(true);
|
||||
}
|
||||
|
||||
// @GetMapping("/role_list")
|
||||
// @ApiOperation(value = "指定账号拥有的角色列表")
|
||||
// @ApiImplicitParam(name = "accountId", value = "账号编号", required = true, example = "1")
|
||||
// public CommonResult<List<AdminRoleVO>> roleList(@RequestParam("accountId") Integer accountId) {
|
||||
// // 获得所有角色列表
|
||||
// List<RoleBO> allRoleList = roleService.getRoleList();
|
||||
// // 获得管理员的角色数组
|
||||
// Set<Integer> adminRoleIdSet = CollectionUtil.convertSet(adminService.getRoleList(id), RoleBO::getId);
|
||||
// // 转换出返回结果
|
||||
// List<AdminRoleVO> result = AdminConvert.INSTANCE.convert(allRoleList);
|
||||
// // 设置每个角色是否赋予给改管理员
|
||||
// result.forEach(adminRoleVO -> adminRoleVO.setAssigned(adminRoleIdSet.contains(adminRoleVO.getId())));
|
||||
// return success(result);
|
||||
// }
|
||||
//
|
||||
// @PostMapping("/assign_role")
|
||||
// @ApiOperation(value = "分配给管理员角色")
|
||||
// public CommonResult<Boolean> assignRole(AdminAssignRoleDTO adminAssignRoleDTO) {
|
||||
// return success(adminService.assignAdminRole(AdminSecurityContextHolder.getContext().getAdminId(), adminAssignRoleDTO));
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
package cn.iocoder.mall.system.rest.convert.admin;
|
||||
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.system.biz.bo.account.AccountUsernameAuthorizeBO;
|
||||
import cn.iocoder.mall.system.biz.bo.admin.AdminBO;
|
||||
import cn.iocoder.mall.system.biz.dto.admin.AdminPageDTO;
|
||||
import cn.iocoder.mall.system.rest.request.admin.AdminsAdminPageRequest;
|
||||
import cn.iocoder.mall.system.rest.request.oauth2.AdminsOAuth2UsernameAuthenticateRequest;
|
||||
import cn.iocoder.mall.system.rest.response.admin.AdminsAdminPageResponse;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
@@ -12,4 +17,8 @@ public interface AdminsAdminConvert {
|
||||
|
||||
AccountUsernameAuthorizeBO convert(AdminsOAuth2UsernameAuthenticateRequest bean);
|
||||
|
||||
AdminPageDTO convert(AdminsAdminPageRequest bean);
|
||||
|
||||
PageResult<AdminsAdminPageResponse> convertPage(PageResult<AdminBO> bean);
|
||||
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ public interface AdminsOAuth2Convert {
|
||||
OAuth2UsernameAuthenticateDTO convert(AdminsOAuth2UsernameAuthenticateRequest bean);
|
||||
|
||||
@Mapping(source = "adminBO", target = "admin")
|
||||
@Mapping(source = "accessTokenBO.id", target = "token.accessToken")
|
||||
@Mapping(source = "accessTokenBO.accessToken", target = "token.accessToken")
|
||||
@Mapping(source = "accessTokenBO.refreshToken", target = "token.refreshToken")
|
||||
@Mapping(source = "accessTokenBO.expiresTime", target = "token.expiresTime")
|
||||
AdminsOAuth2AuthenticateResponse convert(AdminBO adminBO, OAuth2AuthenticateBO accessTokenBO);
|
||||
|
||||
@@ -5,7 +5,6 @@ import cn.iocoder.mall.system.biz.dto.oatuh2.OAuth2MobileCodeAuthenticateDTO;
|
||||
import cn.iocoder.mall.system.rest.request.oauth2.UsersOAuth2MobileCodeAuthenticateRequest;
|
||||
import cn.iocoder.mall.system.rest.response.user.UsersOAuth2AuthenticateResponse;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
@Mapper
|
||||
@@ -15,7 +14,6 @@ public interface UsersOAuth2Convert {
|
||||
|
||||
OAuth2MobileCodeAuthenticateDTO convert(UsersOAuth2MobileCodeAuthenticateRequest bean);
|
||||
|
||||
@Mapping(source = "token.id", target = "token.accessToken")
|
||||
UsersOAuth2AuthenticateResponse convert(UserAuthenticateBO bean);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package cn.iocoder.mall.system.rest.request.admin;
|
||||
|
||||
import cn.iocoder.common.framework.vo.PageParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@ApiModel("管理员 - 管理员模块 - 管理员分页信息 Request")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
public class AdminsAdminPageRequest extends PageParam {
|
||||
|
||||
@ApiModelProperty(value = "真实名字,模糊匹配", example = "小王")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "部门编号")
|
||||
private Integer departmentId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package cn.iocoder.mall.system.rest.response.admin;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@ApiModel("管理员 - 管理员模块 - 管理员分页信息 Response")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AdminsAdminPageResponse {
|
||||
|
||||
@ApiModel("角色")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class Role {
|
||||
|
||||
@ApiModelProperty(value = "角色编号", required = true, example = "1")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "角色名", required = true, example = "码神")
|
||||
private String name;
|
||||
|
||||
}
|
||||
|
||||
@ApiModel("部门")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class Department {
|
||||
|
||||
@ApiModelProperty(value = "部门编号", required = true, example = "1")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "部门名称", required = true, example = "研发部")
|
||||
private String name;
|
||||
|
||||
}
|
||||
|
||||
@ApiModel("账号")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class Account {
|
||||
|
||||
@ApiModelProperty(value = "账号编号", required = true, example = "1")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "登陆账号", required = true, example = "15601691300")
|
||||
private String username;
|
||||
|
||||
}
|
||||
|
||||
@ApiModelProperty(value = "管理员编号", required = true, example = "1")
|
||||
private Integer id;
|
||||
@ApiModelProperty(value = "真实名字", required = true, example = "小王")
|
||||
private String name;
|
||||
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
|
||||
private Date createTime;
|
||||
@ApiModelProperty(value = "在职状态", required = true, example = "1", notes = "见 AdminStatusEnum 枚举")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 账号
|
||||
*/
|
||||
private Account account;
|
||||
|
||||
/**
|
||||
* 角色列表
|
||||
*/
|
||||
private List<Role> roles;
|
||||
|
||||
/**
|
||||
* 所在部门
|
||||
*/
|
||||
private Department department;
|
||||
|
||||
}
|
||||
@@ -18,6 +18,8 @@ public class AdminsRolePageResponse {
|
||||
private String name;
|
||||
@ApiModelProperty(value = "角色编码", example = "SUPER_ADMIN")
|
||||
private String code;
|
||||
@ApiModelProperty(value = "角色类型", required = true, example = "1-系统角色; 2-内置角色")
|
||||
private Integer type;
|
||||
@ApiModelProperty(value = "创建时间", required = true)
|
||||
private Date createTime;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user