新增缺少的方法和参数

This commit is contained in:
weitang 2025-06-05 13:57:24 +08:00
parent e1221dd1f9
commit 099b308c5e
5 changed files with 113 additions and 77 deletions

View File

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

View File

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

View File

@ -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)) {

View File

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

View File

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