feat: 更新web配置接口

This commit is contained in:
bunny 2025-04-26 10:25:38 +08:00
parent a351191b4c
commit fb4623da8f
13 changed files with 40 additions and 18 deletions

View File

@ -6,7 +6,7 @@ import cn.bunny.domain.system.entity.Role;
import cn.bunny.domain.vo.LoginVo; import cn.bunny.domain.vo.LoginVo;
import cn.bunny.domain.vo.result.ResultCodeEnum; import cn.bunny.domain.vo.result.ResultCodeEnum;
import cn.bunny.services.context.BaseContext; import cn.bunny.services.context.BaseContext;
import cn.bunny.services.mapper.system.PowerMapper; import cn.bunny.services.mapper.system.PermissionMapper;
import cn.bunny.services.mapper.system.RoleMapper; import cn.bunny.services.mapper.system.RoleMapper;
import cn.bunny.services.utils.JwtHelper; import cn.bunny.services.utils.JwtHelper;
import cn.bunny.services.utils.system.RoleUtil; import cn.bunny.services.utils.system.RoleUtil;
@ -36,7 +36,7 @@ import java.util.function.Supplier;
public class CustomAuthorizationManagerServiceImpl implements AuthorizationManager<RequestAuthorizationContext> { public class CustomAuthorizationManagerServiceImpl implements AuthorizationManager<RequestAuthorizationContext> {
@Resource @Resource
private PowerMapper powerMapper; private PermissionMapper permissionMapper;
@Resource @Resource
private RoleMapper roleMapper; private RoleMapper roleMapper;
@ -100,6 +100,7 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag
* @param request 请求url地址 * @param request 请求url地址
*/ */
private Boolean hasAuth(HttpServletRequest request) { private Boolean hasAuth(HttpServletRequest request) {
String requestMethod = request.getMethod();
// 根据用户ID查询角色数据 // 根据用户ID查询角色数据
Long userId = BaseContext.getUserId(); Long userId = BaseContext.getUserId();
List<Role> roleList = roleMapper.selectListByUserId(userId); List<Role> roleList = roleMapper.selectListByUserId(userId);
@ -116,10 +117,12 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag
if (requestURI.contains("noManage")) return true; if (requestURI.contains("noManage")) return true;
// 根据角色列表查询权限信息 // 根据角色列表查询权限信息
List<Permission> permissionList = powerMapper.selectListByUserId(userId); List<Permission> permissionList = permissionMapper.selectListByUserId(userId);
// 判断是否与请求路径匹配 // 判断是否与请求路径匹配
return permissionList.stream().map(Permission::getRequestUrl) return permissionList.stream()
.filter(permission -> permission.getRequestMethod().equals(requestMethod))
.map(Permission::getRequestUrl)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.anyMatch(requestUrl -> { .anyMatch(requestUrl -> {
if ((requestUrl.contains("/*") || requestUrl.contains("/**"))) { if ((requestUrl.contains("/*") || requestUrl.contains("/**"))) {

View File

@ -26,14 +26,14 @@ public class ConfigurationController {
} }
@Operation(summary = "获取修改web配置文件", description = "获取修改web配置文件") @Operation(summary = "获取修改web配置文件", description = "获取修改web配置文件")
@GetMapping("getWebConfig") @GetMapping()
public Result<WebConfiguration> getWebConfig() { public Result<WebConfiguration> getWebConfig() {
WebConfiguration webConfiguration = configurationService.webConfig(); WebConfiguration webConfiguration = configurationService.webConfig();
return Result.success(webConfiguration); return Result.success(webConfiguration);
} }
@Operation(summary = "更新web配置文件", description = "更新web配置文件") @Operation(summary = "更新web配置文件", description = "更新web配置文件")
@PutMapping("updateWebConfiguration") @PutMapping()
public Result<Object> updateWebConfiguration(@Valid @RequestBody WebConfigurationDto dto) { public Result<Object> updateWebConfiguration(@Valid @RequestBody WebConfigurationDto dto) {
configurationService.updateWebConfiguration(dto); configurationService.updateWebConfiguration(dto);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS); return Result.success(ResultCodeEnum.UPDATE_SUCCESS);

View File

@ -37,7 +37,7 @@ public class EmailTemplateController {
private EmailTemplateService emailTemplateService; private EmailTemplateService emailTemplateService;
@Operation(summary = "分页查询邮件模板", description = "分页查询邮件模板") @Operation(summary = "分页查询邮件模板", description = "分页查询邮件模板")
@GetMapping("getEmailTemplateList/{page}/{limit}") @GetMapping("query/page/{page}/{limit}")
public Result<PageResult<EmailTemplateVo>> getEmailTemplateList( public Result<PageResult<EmailTemplateVo>> getEmailTemplateList(
@Parameter(name = "page", description = "当前页", required = true) @Parameter(name = "page", description = "当前页", required = true)
@PathVariable("page") Integer page, @PathVariable("page") Integer page,
@ -50,14 +50,14 @@ public class EmailTemplateController {
} }
@Operation(summary = "获取邮件模板类型字段", description = "获取邮件模板类型字段") @Operation(summary = "获取邮件模板类型字段", description = "获取邮件模板类型字段")
@GetMapping("getEmailTypes") @GetMapping("query/emailTypes")
public Result<List<Map<String, String>>> getEmailTypes() { public Result<List<Map<String, String>>> getEmailTypes() {
List<Map<String, String>> list = emailTemplateService.getEmailTypes(); List<Map<String, String>> list = emailTemplateService.getEmailTypes();
return Result.success(list); return Result.success(list);
} }
@Operation(summary = "添加邮件模板", description = "添加邮件模板") @Operation(summary = "添加邮件模板", description = "添加邮件模板")
@PostMapping("addEmailTemplate") @PostMapping("add/emailTemplate")
public Result<String> addEmailTemplate(@Valid @RequestBody EmailTemplateAddDto dto) { public Result<String> addEmailTemplate(@Valid @RequestBody EmailTemplateAddDto dto) {
emailTemplateService.addEmailTemplate(dto); emailTemplateService.addEmailTemplate(dto);
return Result.success(ResultCodeEnum.ADD_SUCCESS); return Result.success(ResultCodeEnum.ADD_SUCCESS);

View File

@ -65,7 +65,7 @@ public class PowerController {
@Operation(summary = "更新权限", description = "更新权限") @Operation(summary = "更新权限", description = "更新权限")
@PutMapping("updatePower") @PutMapping("updatePower")
public Result<Object> updatePower(@Valid @RequestBody PowerUpdateDto dto) { public Result<String> updatePower(@Valid @RequestBody PowerUpdateDto dto) {
powerService.updatePower(dto); powerService.updatePower(dto);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS); return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
} }

View File

@ -34,5 +34,8 @@ public class PowerAddDto {
@Schema(name = "requestUrl", title = "请求路径") @Schema(name = "requestUrl", title = "请求路径")
private String requestUrl; private String requestUrl;
@Schema(name = "requestMethod", title = "请求方法")
private String requestMethod;
} }

View File

@ -22,5 +22,8 @@ public class PowerDto {
@Schema(name = "requestUrl", title = "请求路径") @Schema(name = "requestUrl", title = "请求路径")
private String requestUrl; private String requestUrl;
@Schema(name = "requestMethod", title = "请求方法")
private String requestMethod;
} }

View File

@ -34,5 +34,8 @@ public class PowerUpdateDto {
@Schema(name = "requestUrl", title = "请求路径") @Schema(name = "requestUrl", title = "请求路径")
private String requestUrl; private String requestUrl;
@Schema(name = "requestMethod", title = "请求方法")
private String requestMethod;
} }

View File

@ -24,5 +24,8 @@ public class Permission extends BaseEntity {
@Schema(name = "requestUrl", title = "请求路径") @Schema(name = "requestUrl", title = "请求路径")
private String requestUrl; private String requestUrl;
@Schema(name = "requestMethod", title = "请求方法")
private String requestMethod;
} }

View File

@ -31,6 +31,9 @@ public class PowerVo extends BaseUserVo {
@Schema(name = "requestUrl", title = "请求路径") @Schema(name = "requestUrl", title = "请求路径")
private String requestUrl; private String requestUrl;
@Schema(name = "requestMethod", title = "请求路径")
private String requestMethod;
@Schema(name = "children", title = "子级") @Schema(name = "children", title = "子级")
private List<PowerVo> children; private List<PowerVo> children;

View File

@ -20,7 +20,7 @@ import java.util.List;
* @since 2024-10-03 16:00:52 * @since 2024-10-03 16:00:52
*/ */
@Mapper @Mapper
public interface PowerMapper extends BaseMapper<Permission> { public interface PermissionMapper extends BaseMapper<Permission> {
/** /**
* * 分页查询权限内容 * * 分页查询权限内容

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.bunny.services.mapper.system.PowerMapper"> <mapper namespace="cn.bunny.services.mapper.system.PermissionMapper">
<!-- 通用查询映射结果 --> <!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.bunny.domain.system.entity.Permission"> <resultMap id="BaseResultMap" type="cn.bunny.domain.system.entity.Permission">
@ -14,6 +14,7 @@
<id column="power_code" property="powerCode"/> <id column="power_code" property="powerCode"/>
<id column="power_name" property="powerName"/> <id column="power_name" property="powerName"/>
<id column="request_url" property="requestUrl"/> <id column="request_url" property="requestUrl"/>
<id column="request_method" property="requestMethod"/>
</resultMap> </resultMap>
<!-- 通用查询结果列 --> <!-- 通用查询结果列 -->
@ -40,7 +41,10 @@
and permission.power_name like CONCAT('%',#{dto.powerName},'%') and permission.power_name like CONCAT('%',#{dto.powerName},'%')
</if> </if>
<if test="dto.requestUrl != null and dto.requestUrl != ''"> <if test="dto.requestUrl != null and dto.requestUrl != ''">
and permission.request_url like CONCAT('%',#{dto.requestUrl},'%') and permission.requestMethod like CONCAT('%',#{dto.requestMethod},'%')
</if>
<if test="dto.requestMethod != null and dto.requestMethod != ''">
and permission.request_method like CONCAT('%',#{dto.requestMethod},'%')
</if> </if>
</where> </where>
</select> </select>

View File

@ -9,7 +9,7 @@ import cn.bunny.domain.system.vo.PowerVo;
import cn.bunny.domain.vo.result.PageResult; import cn.bunny.domain.vo.result.PageResult;
import cn.bunny.domain.vo.result.ResultCodeEnum; import cn.bunny.domain.vo.result.ResultCodeEnum;
import cn.bunny.services.exception.AuthCustomerException; import cn.bunny.services.exception.AuthCustomerException;
import cn.bunny.services.mapper.system.PowerMapper; import cn.bunny.services.mapper.system.PermissionMapper;
import cn.bunny.services.mapper.system.RolePermissionMapper; import cn.bunny.services.mapper.system.RolePermissionMapper;
import cn.bunny.services.service.system.PowerService; import cn.bunny.services.service.system.PowerService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -37,7 +37,7 @@ import java.util.List;
*/ */
@Service @Service
@Transactional @Transactional
public class PowerServiceImpl extends ServiceImpl<PowerMapper, Permission> implements PowerService { public class PowerServiceImpl extends ServiceImpl<PermissionMapper, Permission> implements PowerService {
@Resource @Resource
private RolePermissionMapper rolePermissionMapper; private RolePermissionMapper rolePermissionMapper;

View File

@ -10,7 +10,7 @@ import cn.bunny.domain.system.entity.Role;
import cn.bunny.domain.vo.LoginVo; import cn.bunny.domain.vo.LoginVo;
import cn.bunny.services.exception.AuthCustomerException; import cn.bunny.services.exception.AuthCustomerException;
import cn.bunny.services.mapper.log.UserLoginLogMapper; import cn.bunny.services.mapper.log.UserLoginLogMapper;
import cn.bunny.services.mapper.system.PowerMapper; import cn.bunny.services.mapper.system.PermissionMapper;
import cn.bunny.services.mapper.system.RoleMapper; import cn.bunny.services.mapper.system.RoleMapper;
import cn.bunny.services.mapper.system.UserMapper; import cn.bunny.services.mapper.system.UserMapper;
import cn.bunny.services.utils.JwtHelper; import cn.bunny.services.utils.JwtHelper;
@ -38,7 +38,7 @@ import java.util.regex.Pattern;
@Component @Component
public class UserUtil { public class UserUtil {
private final MinioUtil minioUtil; private final MinioUtil minioUtil;
private final PowerMapper powerMapper; private final PermissionMapper permissionMapper;
private final RoleMapper roleMapper; private final RoleMapper roleMapper;
private final UserMapper userMapper; private final UserMapper userMapper;
private final UserLoginLogMapper userLoginLogMapper; private final UserLoginLogMapper userLoginLogMapper;
@ -123,7 +123,7 @@ public class UserUtil {
// 判断是否是 admin 如果是admin 赋予所有权限 // 判断是否是 admin 如果是admin 赋予所有权限
boolean isAdmin = RoleUtil.checkAdmin(roles, permissions, user); boolean isAdmin = RoleUtil.checkAdmin(roles, permissions, user);
if (!isAdmin) { if (!isAdmin) {
permissions = powerMapper.selectListByUserId(userId).stream().map(Permission::getPowerCode).toList(); permissions = permissionMapper.selectListByUserId(userId).stream().map(Permission::getPowerCode).toList();
} }
// 计算过期时间并格式化返回 // 计算过期时间并格式化返回