管理员列表

This commit is contained in:
YunaiV
2019-03-02 00:16:02 +08:00
parent d7519b6019
commit ffeb866b91
18 changed files with 388 additions and 53 deletions

View File

@@ -1,19 +1,25 @@
package cn.iocoder.mall.admin.application.controller;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.AdminService;
import cn.iocoder.mall.admin.api.ResourceService;
import cn.iocoder.mall.admin.api.bo.AdminPageBO;
import cn.iocoder.mall.admin.api.bo.ResourceBO;
import cn.iocoder.mall.admin.api.constant.ResourceConstants;
import cn.iocoder.mall.admin.api.dto.AdminPageDTO;
import cn.iocoder.mall.admin.application.convert.AdminConvert;
import cn.iocoder.mall.admin.application.convert.ResourceConvert;
import cn.iocoder.mall.admin.application.vo.AdminMenuTreeNodeVO;
import cn.iocoder.mall.admin.application.vo.AdminPageVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
import cn.iocoder.mall.admin.application.convert.AdminConvert;
import cn.iocoder.mall.admin.application.vo.AdminInfoVO;
import com.alibaba.dubbo.config.annotation.Reference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
@@ -26,11 +32,8 @@ public class AdminController {
@Reference(validation = "true")
private ResourceService resourceService;
@GetMapping("/info")
public CommonResult<AdminInfoVO> info() {
return CommonResult.success(AdminConvert.INSTANCE.convert(AdminSecurityContextHolder.getContext()));
}
@Reference(validation = "true")
private AdminService adminService;
// =========== 当前管理员相关的资源 API ===========
@@ -69,4 +72,20 @@ public class AdminController {
return CommonResult.success(resources.stream().map(ResourceBO::getHandler).collect(Collectors.toSet()));
}
// =========== 管理员管理 API ===========
@GetMapping("/page")
@ApiOperation(value = "管理员分页")
@ApiImplicitParams({
@ApiImplicitParam(name = "nickname", value = "昵称,模糊匹配", required = true, example = "小王"),
@ApiImplicitParam(name = "pageNo", value = "页码,从 0 开始", example = "0"),
@ApiImplicitParam(name = "pageSize", value = "每页条数", required = true, example = "10"),
})
public CommonResult<AdminPageVO> page(@RequestParam(value = "nickname", required = false) String nickname,
@RequestParam(value = "pageNo", defaultValue = "0") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
CommonResult<AdminPageBO> result = adminService.getAdminPage(new AdminPageDTO().setNickname(nickname).setPageNo(pageNo).setPageSize(pageSize));
return AdminConvert.INSTANCE.convert(result);
}
}

View File

@@ -3,17 +3,17 @@ package cn.iocoder.mall.admin.application.controller;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.OAuth2Service;
import cn.iocoder.mall.admin.api.bo.OAuth2AccessTokenBO;
import cn.iocoder.mall.admin.application.convert.AdminConvert;
import cn.iocoder.mall.admin.application.convert.PassportConvert;
import cn.iocoder.mall.admin.application.vo.AdminInfoVO;
import cn.iocoder.mall.admin.application.vo.PassportLoginVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
import com.alibaba.dubbo.config.annotation.Reference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("admin/passport")
@@ -35,4 +35,10 @@ public class PassportController {
return PassportConvert.INSTANCE.convert(result);
}
// TODO 艿艿:后续继续完善
@GetMapping("/info")
public CommonResult<AdminInfoVO> info() {
return CommonResult.success(AdminConvert.INSTANCE.convert(AdminSecurityContextHolder.getContext()));
}
}

View File

@@ -31,8 +31,6 @@ public class ResourceController {
@Reference(validation = "true")
private ResourceService resourceService;
// =========== 资源管理 API ===========
@SuppressWarnings("Duplicates")
@GetMapping("/tree")
@ApiOperation(value = "获得所有资源,按照树形结构返回")

View File

@@ -35,6 +35,11 @@ public class RoleController {
@GetMapping("/page")
@ApiOperation(value = "角色分页")
@ApiImplicitParams({
@ApiImplicitParam(name = "name", value = "角色名,模糊匹配", required = true, example = "系统管理员"),
@ApiImplicitParam(name = "pageNo", value = "页码,从 0 开始", example = "0"),
@ApiImplicitParam(name = "pageSize", value = "每页条数", required = true, example = "10"),
})
public CommonResult<RolePageVO> page(@RequestParam(value = "name", required = false) String name,
@RequestParam(value = "pageNo", defaultValue = "0") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {

View File

@@ -1,7 +1,12 @@
package cn.iocoder.mall.admin.application.convert;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContext;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.bo.AdminBO;
import cn.iocoder.mall.admin.api.bo.AdminPageBO;
import cn.iocoder.mall.admin.application.vo.AdminInfoVO;
import cn.iocoder.mall.admin.application.vo.AdminPageVO;
import cn.iocoder.mall.admin.application.vo.AdminVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContext;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
@@ -14,4 +19,10 @@ public interface AdminConvert {
@Mappings({})
AdminInfoVO convert(AdminSecurityContext adminSecurityContext);
@Mappings({})
AdminVO convert(AdminBO adminBO);
@Mappings({})
CommonResult<AdminPageVO> convert(CommonResult<AdminPageBO> result);
}

View File

@@ -0,0 +1,34 @@
package cn.iocoder.mall.admin.application.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
@ApiModel("管理员分页 VO")
public class AdminPageVO {
@ApiModelProperty(value = "管理员数组")
private List<AdminVO> admins;
@ApiModelProperty(value = "管理员总数")
private Integer count;
public List<AdminVO> getAdmins() {
return admins;
}
public AdminPageVO setAdmins(List<AdminVO> admins) {
this.admins = admins;
return this;
}
public Integer getCount() {
return count;
}
public AdminPageVO setCount(Integer count) {
this.count = count;
return this;
}
}

View File

@@ -0,0 +1,67 @@
package cn.iocoder.mall.admin.application.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
@ApiModel("管理员 VO")
public class AdminVO {
@ApiModelProperty(value = "管理员编号", required = true, example = "1")
private Integer id;
@ApiModelProperty(value = "登陆账号", required = true, example = "15601691300")
private String username;
@ApiModelProperty(value = "昵称", required = true, example = "小王")
private String nickname;
@ApiModelProperty(value = "账号状态", required = true, example = "1")
private Integer status;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
private Date createTime;
public Integer getId() {
return id;
}
public AdminVO setId(Integer id) {
this.id = id;
return this;
}
public String getUsername() {
return username;
}
public AdminVO setUsername(String username) {
this.username = username;
return this;
}
public String getNickname() {
return nickname;
}
public AdminVO setNickname(String nickname) {
this.nickname = nickname;
return this;
}
public Integer getStatus() {
return status;
}
public AdminVO setStatus(Integer status) {
this.status = status;
return this;
}
public Date getCreateTime() {
return createTime;
}
public AdminVO setCreateTime(Date createTime) {
this.createTime = createTime;
return this;
}
}