package com.cloudroam.controller.cms;
|
|
import com.cloudroam.bo.GroupPermissionBO;
|
import com.cloudroam.dto.admin.*;
|
import com.cloudroam.vo.*;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.cloudroam.dto.admin.*;
|
import com.cloudroam.vo.*;
|
import io.github.talelin.core.annotation.AdminRequired;
|
import io.github.talelin.core.annotation.PermissionMeta;
|
import io.github.talelin.core.annotation.PermissionModule;
|
import com.cloudroam.common.util.PageUtil;
|
import com.cloudroam.dto.admin.*;
|
import com.cloudroam.dto.query.BasePageDTO;
|
import com.cloudroam.model.GroupDO;
|
import com.cloudroam.model.PermissionDO;
|
import com.cloudroam.model.UserDO;
|
import com.cloudroam.service.AdminService;
|
import com.cloudroam.service.GroupService;
|
import com.cloudroam.vo.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.constraints.Positive;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* 管理员控制器
|
* @author
|
* @author
|
*/
|
@Validated
|
@RestController
|
@RequestMapping("/cms/admin")
|
@PermissionModule(value = "管理员")
|
public class AdminController {
|
|
@Autowired
|
private AdminService adminService;
|
|
@Autowired
|
private GroupService groupService;
|
|
@AdminRequired
|
@GetMapping("/permission")
|
@PermissionMeta(value = "查询所有可分配的权限", mount = false)
|
public Map<String, List<PermissionDO>> getAllPermissions() {
|
return adminService.getAllStructuralPermissions();
|
}
|
|
// @AdminRequired
|
@GetMapping("/users")
|
// @PermissionMeta(value = "查询所有用户", mount = false)
|
public PageResponseVO<UserInfoVO> getUsers(
|
@Validated QueryUsersDTO dto) {
|
IPage<UserDO> iPage = adminService.getUserPageByGroupId(dto.getGroupId(), dto.getCount(), dto.getPage());
|
List<UserInfoVO> userInfos = iPage.getRecords().stream().map(user -> {
|
List<GroupDO> groups = groupService.getUserGroupsByUserId(Integer.valueOf(user.getId()));
|
return new UserInfoVO(user, groups);
|
}).collect(Collectors.toList());
|
return PageUtil.build(iPage, userInfos);
|
}
|
|
@AdminRequired
|
@PutMapping("/user/{id}/password")
|
@PermissionMeta(value = "修改用户密码", mount = false)
|
public UpdatedVO changeUserPassword(@PathVariable @Positive(message = "{id.positive}") Integer id, @RequestBody @Validated ResetPasswordDTO validator) {
|
adminService.changeUserPassword(id, validator);
|
return new UpdatedVO(4);
|
}
|
|
@AdminRequired
|
@DeleteMapping("/user/{id}")
|
@PermissionMeta(value = "删除用户", mount = false)
|
public DeletedVO deleteUser(@PathVariable @Positive(message = "{id.positive}") Integer id) {
|
adminService.deleteUser(id);
|
return new DeletedVO(5);
|
}
|
|
@AdminRequired
|
@PutMapping("/user/{id}")
|
@PermissionMeta(value = "管理员更新用户信息", mount = false)
|
public UpdatedVO updateUser(@PathVariable @Positive(message = "{id.positive}") Integer id, @RequestBody @Validated UpdateUserInfoDTO validator) {
|
adminService.updateUserInfo(id, validator);
|
return new UpdatedVO(6);
|
}
|
|
@AdminRequired
|
@GetMapping("/group")
|
@PermissionMeta(value = "查询所有权限组及其权限", mount = false)
|
public PageResponseVO<GroupDO> getGroups(
|
@Validated BasePageDTO dto) {
|
IPage<GroupDO> iPage = adminService.getGroupPage(dto.getPage(), dto.getCount());
|
return PageUtil.build(iPage);
|
}
|
|
@AdminRequired
|
@GetMapping("/group/all")
|
@PermissionMeta(value = "查询所有权限组", mount = false)
|
public List<GroupDO> getAllGroup() {
|
return adminService.getAllGroups();
|
}
|
|
@AdminRequired
|
@GetMapping("/group/{id}")
|
@PermissionMeta(value = "查询一个权限组及其权限", mount = false)
|
public GroupPermissionBO getGroup(@PathVariable @Positive(message = "{id.positive}") Integer id) {
|
return adminService.getGroup(id);
|
}
|
|
@AdminRequired
|
@PostMapping("/group")
|
@PermissionMeta(value = "新建权限组", mount = false)
|
public CreatedVO createGroup(@RequestBody @Validated NewGroupDTO validator) {
|
adminService.createGroup(validator);
|
return new CreatedVO(15);
|
}
|
|
@AdminRequired
|
@PutMapping("/group/{id}")
|
@PermissionMeta(value = "更新一个权限组", mount = false)
|
public UpdatedVO updateGroup(@PathVariable @Positive(message = "{id.positive}") Integer id,
|
@RequestBody @Validated UpdateGroupDTO validator) {
|
adminService.updateGroup(id, validator);
|
return new UpdatedVO(7);
|
}
|
|
@AdminRequired
|
@DeleteMapping("/group/{id}")
|
@PermissionMeta(value = "删除一个权限组", mount = false)
|
public DeletedVO deleteGroup(@PathVariable @Positive(message = "{id.positive}") Integer id) {
|
adminService.deleteGroup(id);
|
return new DeletedVO(8);
|
}
|
|
@AdminRequired
|
@PostMapping("/permission/dispatch")
|
@PermissionMeta(value = "分配单个权限", mount = false)
|
public CreatedVO dispatchPermission(@RequestBody @Validated DispatchPermissionDTO validator) {
|
adminService.dispatchPermission(validator);
|
return new CreatedVO(9);
|
}
|
|
@AdminRequired
|
@PostMapping("/permission/dispatch/batch")
|
@PermissionMeta(value = "分配多个权限", mount = false)
|
public CreatedVO dispatchPermissions(@RequestBody @Validated DispatchPermissionsDTO validator) {
|
adminService.dispatchPermissions(validator);
|
return new CreatedVO(9);
|
}
|
|
@AdminRequired
|
@PostMapping("/permission/remove")
|
@PermissionMeta(value = "删除多个权限", mount = false)
|
public DeletedVO removePermissions(@RequestBody @Validated RemovePermissionsDTO validator) {
|
adminService.removePermissions(validator);
|
return new DeletedVO(10);
|
}
|
|
}
|