新增缺少的方法和参数
This commit is contained in:
parent
e1221dd1f9
commit
099b308c5e
@ -4,7 +4,7 @@ import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 分页查询请求类
|
||||
@ -43,6 +43,11 @@ public class PageRequest {
|
||||
*/
|
||||
private String keyword;
|
||||
|
||||
/**
|
||||
* 条件过滤器
|
||||
*/
|
||||
private List<FilterCondition> filters;
|
||||
|
||||
/**
|
||||
* 获取偏移量
|
||||
*
|
||||
@ -69,4 +74,4 @@ public class PageRequest {
|
||||
public boolean isDesc() {
|
||||
return "desc".equalsIgnoreCase(orderDirection);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.stdproject.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@ -87,8 +88,10 @@ public class AppMenuController {
|
||||
@Operation(summary = "获取菜单树形结构")
|
||||
@GetMapping("/tree")
|
||||
@OperationLog(type = "06", module = "菜单管理", description = "获取菜单树形结构")
|
||||
public Result<List<MenuTreeNode>> getMenuTree() {
|
||||
public Result<List<MenuTreeNode>> getMenuTree(@RequestParam String appId,@RequestParam String name) {
|
||||
QueryWrapper<AppMenu> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq(StrUtil.isNotBlank(appId),"app_id", appId);
|
||||
queryWrapper.like(StrUtil.isNotBlank(name),"name", name);
|
||||
queryWrapper.orderByAsc("parentid", "orderno");
|
||||
|
||||
List<AppMenu> allMenus = appMenuService.list(queryWrapper);
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.stdproject.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
@ -53,9 +54,11 @@ public class AppOrganizationController {
|
||||
@Operation(summary = "查询部门列表")
|
||||
@GetMapping("/getDepartmentList")
|
||||
@OperationLog(type = "06", module = "组织管理", description = "查询部门列表")
|
||||
public Result<List<AppOrganization>> getDepartmentList(@RequestParam String parentid, @RequestParam String keystr) {
|
||||
public Result<List<AppOrganization>> getDepartmentList(@RequestParam String appId, @RequestParam String orgtype,
|
||||
@RequestParam String parentid, @RequestParam String keystr) {
|
||||
QueryWrapper<AppOrganization> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("orgtype", "02");
|
||||
queryWrapper.eq(StrUtil.isNotBlank(appId), "app_id", appId);
|
||||
queryWrapper.eq(StrUtil.isNotBlank(orgtype), "orgtype", orgtype);
|
||||
queryWrapper.eq("parentid", parentid);
|
||||
queryWrapper.eq("isvaild", "1");
|
||||
if (StringUtils.hasText(keystr)) {
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.stdproject.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@ -41,32 +42,33 @@ public class AppRoleController {
|
||||
|
||||
@Autowired
|
||||
private IAppRoleService appRoleService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IAppRoleMenuService appRoleMenuService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IAppRoleUserService appRoleUserService;
|
||||
|
||||
@Operation(summary = "分页查询角色列表")
|
||||
@PostMapping("/page")
|
||||
@PostMapping("/page/{appId}")
|
||||
@OperationLog(type = "06", module = "角色管理", description = "分页查询角色列表")
|
||||
public Result<IPage<AppRole>> page(@RequestBody @Valid PageRequest pageRequest) {
|
||||
public Result<IPage<AppRole>> page(@Parameter(description = "用户ID") @PathVariable String appId,
|
||||
@RequestBody @Valid PageRequest pageRequest) {
|
||||
Page<AppRole> page = new Page<>(pageRequest.getCurrent(), pageRequest.getSize());
|
||||
QueryWrapper<AppRole> queryWrapper = new QueryWrapper<>();
|
||||
|
||||
queryWrapper.eq(StrUtil.isNotBlank(appId),"app_id",appId);
|
||||
// 关键字搜索
|
||||
if (StringUtils.hasText(pageRequest.getKeyword())) {
|
||||
queryWrapper.and(wrapper -> wrapper
|
||||
.like("rolename", pageRequest.getKeyword())
|
||||
.or().like("rolecode", pageRequest.getKeyword())
|
||||
.or().like("description", pageRequest.getKeyword())
|
||||
.like("rolename", pageRequest.getKeyword())
|
||||
.or().like("rolecode", pageRequest.getKeyword())
|
||||
.or().like("description", pageRequest.getKeyword())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// 只查询有效的角色
|
||||
queryWrapper.eq("isvaild", "1");
|
||||
|
||||
|
||||
// 排序
|
||||
if (StringUtils.hasText(pageRequest.getOrderBy())) {
|
||||
if ("asc".equalsIgnoreCase(pageRequest.getOrderDirection())) {
|
||||
@ -77,7 +79,7 @@ public class AppRoleController {
|
||||
} else {
|
||||
queryWrapper.orderByAsc("rolecode");
|
||||
}
|
||||
|
||||
|
||||
IPage<AppRole> result = appRoleService.page(page, queryWrapper);
|
||||
return Result.success(result);
|
||||
}
|
||||
@ -89,7 +91,7 @@ public class AppRoleController {
|
||||
QueryWrapper<AppRole> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("isvaild", "1");
|
||||
queryWrapper.orderByAsc("rolecode");
|
||||
|
||||
|
||||
List<AppRole> roles = appRoleService.list(queryWrapper);
|
||||
return Result.success(roles);
|
||||
}
|
||||
@ -101,6 +103,7 @@ public class AppRoleController {
|
||||
AppRole role = appRoleService.getById(id);
|
||||
return Result.success(role);
|
||||
}
|
||||
|
||||
@Operation(summary = "新增角色")
|
||||
@PostMapping
|
||||
@OperationLog(type = "01", module = "角色管理", description = "新增角色")
|
||||
@ -133,6 +136,7 @@ public class AppRoleController {
|
||||
|
||||
/**
|
||||
* 获取最大的角色编号
|
||||
*
|
||||
* @return 最大角色编号
|
||||
*/
|
||||
private String getMaxRoleCode() {
|
||||
@ -154,7 +158,7 @@ public class AppRoleController {
|
||||
if (existRole == null) {
|
||||
return Result.error("角色不存在");
|
||||
}
|
||||
|
||||
|
||||
// 如果修改了角色名称,检查新名称是否已被其他角色使用
|
||||
if (!existRole.getRolename().equals(appRole.getRolename())) {
|
||||
QueryWrapper<AppRole> nameQuery = new QueryWrapper<>();
|
||||
@ -183,29 +187,27 @@ public class AppRoleController {
|
||||
if (userCount > 0) {
|
||||
return Result.error("存在用户关联此角色,无法删除");
|
||||
}
|
||||
|
||||
|
||||
// 软删除:设置为无效
|
||||
AppRole role = appRoleService.getById(id);
|
||||
if (role != null) {
|
||||
role.setIsvaild("0");
|
||||
role.setLastmodifydate(LocalDateTime.now());
|
||||
boolean success = appRoleService.updateById(role);
|
||||
|
||||
|
||||
if (success) {
|
||||
// 同时删除角色菜单关联
|
||||
QueryWrapper<AppRoleMenu> menuQuery = new QueryWrapper<>();
|
||||
menuQuery.eq("roleid", id);
|
||||
appRoleMenuService.remove(menuQuery);
|
||||
}
|
||||
|
||||
|
||||
return success ? Result.success("删除成功") : Result.error("删除失败");
|
||||
}
|
||||
|
||||
|
||||
return Result.error("角色不存在");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Operation(summary = "根据角色类型查询角色列表")
|
||||
@GetMapping("/type/{type}")
|
||||
@OperationLog(type = "06", module = "角色管理", description = "根据角色类型查询角色列表")
|
||||
@ -213,7 +215,7 @@ public class AppRoleController {
|
||||
QueryWrapper<AppRole> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("type", type);
|
||||
queryWrapper.eq("isvaild", "1");
|
||||
queryWrapper.orderByAsc("rolecode");
|
||||
queryWrapper.orderByAsc("rolecode");
|
||||
List<AppRole> roles = appRoleService.list(queryWrapper);
|
||||
return Result.success(roles);
|
||||
}
|
||||
@ -224,18 +226,18 @@ public class AppRoleController {
|
||||
public Result<String> assignMenus(
|
||||
@Parameter(description = "角色ID") @PathVariable String roleId,
|
||||
@RequestBody List<String> menuIds) {
|
||||
|
||||
|
||||
// 检查角色是否存在
|
||||
AppRole role = appRoleService.getById(roleId);
|
||||
if (role == null || !"1".equals(role.getIsvaild())) {
|
||||
return Result.error("角色不存在或已禁用");
|
||||
}
|
||||
|
||||
|
||||
// 先删除原有的菜单权限
|
||||
QueryWrapper<AppRoleMenu> deleteQuery = new QueryWrapper<>();
|
||||
deleteQuery.eq("roleid", roleId);
|
||||
appRoleMenuService.remove(deleteQuery);
|
||||
|
||||
|
||||
// 添加新的菜单权限
|
||||
if (menuIds != null && !menuIds.isEmpty()) {
|
||||
List<AppRoleMenu> roleMenus = menuIds.stream().map(menuId -> {
|
||||
@ -245,11 +247,11 @@ public class AppRoleController {
|
||||
roleMenu.setAppId(role.getAppId());
|
||||
return roleMenu;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
|
||||
boolean success = appRoleMenuService.saveBatch(roleMenus);
|
||||
return success ? Result.success("权限分配成功") : Result.error("权限分配失败");
|
||||
}
|
||||
|
||||
|
||||
return Result.success("权限分配成功");
|
||||
}
|
||||
|
||||
@ -259,12 +261,12 @@ public class AppRoleController {
|
||||
public Result<List<String>> getRoleMenus(@Parameter(description = "角色ID") @PathVariable String roleId) {
|
||||
QueryWrapper<AppRoleMenu> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("roleid", roleId);
|
||||
|
||||
|
||||
List<AppRoleMenu> roleMenus = appRoleMenuService.list(queryWrapper);
|
||||
List<String> menuIds = roleMenus.stream()
|
||||
.map(AppRoleMenu::getMenuid)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
.map(AppRoleMenu::getMenuid)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
return Result.success(menuIds);
|
||||
}
|
||||
|
||||
@ -274,18 +276,18 @@ public class AppRoleController {
|
||||
public Result<String> assignUsers(
|
||||
@Parameter(description = "角色ID") @PathVariable String roleId,
|
||||
@RequestBody List<String> userIds) {
|
||||
|
||||
|
||||
// 检查角色是否存在
|
||||
AppRole role = appRoleService.getById(roleId);
|
||||
if (role == null || !"1".equals(role.getIsvaild())) {
|
||||
return Result.error("角色不存在或已禁用");
|
||||
}
|
||||
|
||||
|
||||
// 先删除原有的用户角色关联
|
||||
QueryWrapper<AppRoleUser> deleteQuery = new QueryWrapper<>();
|
||||
deleteQuery.eq("roleid", roleId);
|
||||
appRoleUserService.remove(deleteQuery);
|
||||
|
||||
|
||||
// 添加新的用户角色关联
|
||||
if (userIds != null && !userIds.isEmpty()) {
|
||||
List<AppRoleUser> roleUsers = userIds.stream().map(userId -> {
|
||||
@ -295,11 +297,11 @@ public class AppRoleController {
|
||||
roleUser.setAppId(role.getAppId());
|
||||
return roleUser;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
|
||||
boolean success = appRoleUserService.saveBatch(roleUsers);
|
||||
return success ? Result.success("用户分配成功") : Result.error("用户分配失败");
|
||||
}
|
||||
|
||||
|
||||
return Result.success("用户分配成功");
|
||||
}
|
||||
|
||||
@ -309,12 +311,12 @@ public class AppRoleController {
|
||||
public Result<List<String>> getRoleUsers(@Parameter(description = "角色ID") @PathVariable String roleId) {
|
||||
QueryWrapper<AppRoleUser> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("roleid", roleId);
|
||||
|
||||
|
||||
List<AppRoleUser> roleUsers = appRoleUserService.list(queryWrapper);
|
||||
List<String> userIds = roleUsers.stream()
|
||||
.map(AppRoleUser::getUserid)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
.map(AppRoleUser::getUserid)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
return Result.success(userIds);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,12 @@
|
||||
package com.stdproject.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.stdproject.common.OperationLog;
|
||||
import com.stdproject.common.PageRequest;
|
||||
import com.stdproject.common.QueryWrapperBuilder;
|
||||
import com.stdproject.common.Result;
|
||||
import com.stdproject.entity.AppUser;
|
||||
import com.stdproject.service.IAppUserService;
|
||||
@ -37,22 +39,25 @@ public class AppUserController {
|
||||
private IAppUserService appUserService;
|
||||
|
||||
@Operation(summary = "分页查询用户列表")
|
||||
@PostMapping("/page")
|
||||
@PostMapping("/page/{orgId}/{appId}")
|
||||
@OperationLog(type = "06", module = "用户管理", description = "分页查询用户列表")
|
||||
public Result<IPage<AppUser>> page(@RequestBody @Valid PageRequest pageRequest) {
|
||||
public Result<IPage<AppUser>> page(@Parameter(description = "用户ID") @PathVariable String orgId,
|
||||
@Parameter(description = "用户ID") @PathVariable String appId,
|
||||
@RequestBody @Valid PageRequest pageRequest) {
|
||||
Page<AppUser> page = new Page<>(pageRequest.getCurrent(), pageRequest.getSize());
|
||||
QueryWrapper<AppUser> queryWrapper = new QueryWrapper<>();
|
||||
|
||||
queryWrapper.eq(StrUtil.isNotBlank(orgId),"orgid",orgId);
|
||||
queryWrapper.eq(StrUtil.isNotBlank(appId),"app_id",appId);
|
||||
// 关键字搜索
|
||||
if (StringUtils.hasText(pageRequest.getKeyword())) {
|
||||
queryWrapper.and(wrapper -> wrapper
|
||||
.like("username", pageRequest.getKeyword())
|
||||
.or().like("nickname", pageRequest.getKeyword())
|
||||
.or().like("email", pageRequest.getKeyword())
|
||||
.or().like("phone", pageRequest.getKeyword())
|
||||
.like("username", pageRequest.getKeyword())
|
||||
.or().like("nickname", pageRequest.getKeyword())
|
||||
.or().like("email", pageRequest.getKeyword())
|
||||
.or().like("phone", pageRequest.getKeyword())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// 排序
|
||||
if (StringUtils.hasText(pageRequest.getOrderBy())) {
|
||||
if ("asc".equalsIgnoreCase(pageRequest.getOrderDirection())) {
|
||||
@ -63,7 +68,7 @@ public class AppUserController {
|
||||
} else {
|
||||
queryWrapper.orderByDesc("lastmodifydate");
|
||||
}
|
||||
|
||||
|
||||
IPage<AppUser> result = appUserService.page(page, queryWrapper);
|
||||
return Result.success(result);
|
||||
}
|
||||
@ -101,7 +106,7 @@ public class AppUserController {
|
||||
if (existUser != null) {
|
||||
return Result.error("用户名已存在");
|
||||
}
|
||||
|
||||
|
||||
// 设置默认值
|
||||
if (!StringUtils.hasText(appUser.getStatus())) {
|
||||
appUser.setStatus("1"); // 默认有效
|
||||
@ -112,12 +117,12 @@ public class AppUserController {
|
||||
if (appUser.getFailednum() == null) {
|
||||
appUser.setFailednum(0);
|
||||
}
|
||||
|
||||
|
||||
// 密码加密
|
||||
if (StringUtils.hasText(appUser.getPassword())) {
|
||||
appUser.setPassword(PasswordUtils.encodePassword(appUser.getPassword()));
|
||||
}
|
||||
|
||||
|
||||
appUser.setLastmodifydate(LocalDateTime.now());
|
||||
boolean success = appUserService.save(appUser);
|
||||
return success ? Result.success("新增成功") : Result.error("新增失败");
|
||||
@ -132,7 +137,7 @@ public class AppUserController {
|
||||
if (existUser == null) {
|
||||
return Result.error("用户不存在");
|
||||
}
|
||||
|
||||
|
||||
// 如果修改了用户名,检查新用户名是否已被其他用户使用
|
||||
if (!existUser.getUsername().equals(appUser.getUsername())) {
|
||||
AppUser userWithSameName = appUserService.findByUsername(appUser.getUsername());
|
||||
@ -140,7 +145,7 @@ public class AppUserController {
|
||||
return Result.error("用户名已被其他用户使用");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 如果传入了新密码,进行加密
|
||||
if (StringUtils.hasText(appUser.getPassword())) {
|
||||
appUser.setPassword(PasswordUtils.encodePassword(appUser.getPassword()));
|
||||
@ -149,7 +154,7 @@ public class AppUserController {
|
||||
// 如果没有传入密码,保持原密码不变
|
||||
appUser.setPassword(existUser.getPassword());
|
||||
}
|
||||
|
||||
|
||||
appUser.setLastmodifydate(LocalDateTime.now());
|
||||
boolean success = appUserService.updateById(appUser);
|
||||
return success ? Result.success("修改成功") : Result.error("修改失败");
|
||||
@ -181,17 +186,17 @@ public class AppUserController {
|
||||
if (user == null) {
|
||||
return Result.error("用户不存在");
|
||||
}
|
||||
|
||||
|
||||
// 验证旧密码
|
||||
if (!PasswordUtils.matches(request.getOldPassword(), user.getPassword())) {
|
||||
return Result.error("原密码错误");
|
||||
}
|
||||
|
||||
|
||||
// 更新新密码
|
||||
user.setPassword(PasswordUtils.encodePassword(request.getNewPassword()));
|
||||
user.setPwdresettime(LocalDateTime.now());
|
||||
user.setLastmodifydate(LocalDateTime.now());
|
||||
|
||||
|
||||
boolean success = appUserService.updateById(user);
|
||||
return success ? Result.success("密码修改成功") : Result.error("密码修改失败");
|
||||
}
|
||||
@ -206,12 +211,12 @@ public class AppUserController {
|
||||
if (user == null) {
|
||||
return Result.error("用户不存在");
|
||||
}
|
||||
|
||||
|
||||
// 重置密码
|
||||
user.setPassword(PasswordUtils.encodePassword(request.getNewPassword()));
|
||||
user.setPwdresettime(LocalDateTime.now());
|
||||
user.setLastmodifydate(LocalDateTime.now());
|
||||
|
||||
|
||||
boolean success = appUserService.updateById(user);
|
||||
return success ? Result.success("密码重置成功") : Result.error("密码重置失败");
|
||||
}
|
||||
@ -226,10 +231,10 @@ public class AppUserController {
|
||||
if (user == null) {
|
||||
return Result.error("用户不存在");
|
||||
}
|
||||
|
||||
|
||||
user.setStatus(status);
|
||||
user.setLastmodifydate(LocalDateTime.now());
|
||||
|
||||
|
||||
boolean success = appUserService.updateById(user);
|
||||
String message = "1".equals(status) ? "启用成功" : "禁用成功";
|
||||
return success ? Result.success(message) : Result.error("操作失败");
|
||||
@ -242,11 +247,11 @@ public class AppUserController {
|
||||
QueryWrapper<AppUser> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("orgid", orgId);
|
||||
queryWrapper.orderByDesc("lastmodifydate");
|
||||
|
||||
|
||||
List<AppUser> users = appUserService.list(queryWrapper);
|
||||
// 不返回密码信息
|
||||
users.forEach(user -> user.setPassword(null));
|
||||
|
||||
|
||||
return Result.success(users);
|
||||
}
|
||||
|
||||
@ -254,24 +259,42 @@ public class AppUserController {
|
||||
* 密码修改请求类
|
||||
*/
|
||||
public static class PasswordUpdateRequest {
|
||||
|
||||
private String oldPassword;
|
||||
private String newPassword;
|
||||
|
||||
|
||||
// getters and setters
|
||||
public String getOldPassword() { return oldPassword; }
|
||||
public void setOldPassword(String oldPassword) { this.oldPassword = oldPassword; }
|
||||
public String getNewPassword() { return newPassword; }
|
||||
public void setNewPassword(String newPassword) { this.newPassword = newPassword; }
|
||||
public String getOldPassword() {
|
||||
return oldPassword;
|
||||
}
|
||||
|
||||
public void setOldPassword(String oldPassword) {
|
||||
this.oldPassword = oldPassword;
|
||||
}
|
||||
|
||||
public String getNewPassword() {
|
||||
return newPassword;
|
||||
}
|
||||
|
||||
public void setNewPassword(String newPassword) {
|
||||
this.newPassword = newPassword;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 密码重置请求类
|
||||
*/
|
||||
public static class PasswordResetRequest {
|
||||
|
||||
private String newPassword;
|
||||
|
||||
|
||||
// getters and setters
|
||||
public String getNewPassword() { return newPassword; }
|
||||
public void setNewPassword(String newPassword) { this.newPassword = newPassword; }
|
||||
public String getNewPassword() {
|
||||
return newPassword;
|
||||
}
|
||||
|
||||
public void setNewPassword(String newPassword) {
|
||||
this.newPassword = newPassword;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user