From f80156459bbde643640ddb6ccc0c6b73bc083e0e Mon Sep 17 00:00:00 2001 From: root <13910913995@163.com> Date: Fri, 20 Jun 2025 12:59:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BA=86=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DynamicDataController.java | 30 ++++++++++++------- .../java/com/stdproject/entity/LoginUser.java | 7 +++-- .../com/stdproject/mapper/MenuMapper.java | 4 +++ .../service/CustomUserDetailsService.java | 15 ++++------ 4 files changed, 33 insertions(+), 23 deletions(-) diff --git a/backend/src/main/java/com/stdproject/controller/DynamicDataController.java b/backend/src/main/java/com/stdproject/controller/DynamicDataController.java index e9d71f5..9abd5cd 100644 --- a/backend/src/main/java/com/stdproject/controller/DynamicDataController.java +++ b/backend/src/main/java/com/stdproject/controller/DynamicDataController.java @@ -2,6 +2,7 @@ package com.stdproject.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.stdproject.common.OperationLog; +import com.stdproject.config.ResponseResult; import com.stdproject.service.IDynamicDataService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -32,53 +33,62 @@ public class DynamicDataController { @Operation(summary = "向指定数据源的表中添加数据") @OperationLog(type = "01", module = "动态数据管理", description = "添加表数据") @PostMapping("addTableData") - public boolean addTableData(Long datasourceId, @RequestParam("tableData") String tableData) throws Exception { + public ResponseResult addTableData(Long datasourceId, @RequestParam("tableData") String tableData) throws Exception { boolean result = dynamicDataService.addTableData( datasourceId, tableData ); - return result; + if (!result) { + return ResponseResult.error(); + } + return ResponseResult.success(); } @Operation(summary = "根据主键查询表数据") @PostMapping("getTableDataByPk") - public Map getTableDataByPk(Long datasourceId,@RequestParam("whereJson") String whereJson) throws Exception { + public ResponseResult getTableDataByPk(Long datasourceId,@RequestParam("whereJson") String whereJson) throws Exception { Map result=dynamicDataService.getTableDataByPk( datasourceId, whereJson ); - return result; + return ResponseResult.successData( result); } @Operation(summary = "更新表数据") @OperationLog(type = "02", module = "动态数据管理", description = "更新表数据") @PostMapping("updateTableData") - public boolean updateTableData(Long datasourceId, @RequestParam("tableData") String tableData) throws Exception { + public ResponseResult updateTableData(Long datasourceId, @RequestParam("tableData") String tableData) throws Exception { boolean result = dynamicDataService.updateTableData( datasourceId, tableData ); - return result; + if (!result) { + return ResponseResult.error(); + } + return ResponseResult.success(); } @Operation(summary = "删除表数据") @OperationLog(type = "03", module = "动态数据管理", description = "删除表数据") @PostMapping("deleteTableData") - public boolean deleteTableData(Long datasourceId, @RequestParam("whereJson") String whereJson) throws Exception { + public ResponseResult deleteTableData(Long datasourceId, @RequestParam("whereJson") String whereJson) throws Exception { boolean result = dynamicDataService.deleteTableData( datasourceId, whereJson ); - return result; + if (!result) { + return ResponseResult.error(); + } + return ResponseResult.success(); } @Operation(summary = "分页查询表数据") @PostMapping("queryTableDataPaged") - public Page> queryTableDataPaged(Long datasourceId, @RequestParam("queryJson") String queryJson) throws Exception { + public ResponseResult queryTableDataPaged(Long datasourceId, @RequestParam("queryJson") String queryJson) throws Exception { Page> result = dynamicDataService.queryTableDataPaged( datasourceId, queryJson ); - return result; + return ResponseResult.successData( result); } } \ No newline at end of file diff --git a/backend/src/main/java/com/stdproject/entity/LoginUser.java b/backend/src/main/java/com/stdproject/entity/LoginUser.java index f14f819..c1ff2bb 100644 --- a/backend/src/main/java/com/stdproject/entity/LoginUser.java +++ b/backend/src/main/java/com/stdproject/entity/LoginUser.java @@ -10,6 +10,7 @@ import org.springframework.security.core.userdetails.UserDetails; import java.util.Collection; import java.util.List; +import java.util.Map; @Data @NoArgsConstructor @@ -18,9 +19,9 @@ public class LoginUser implements UserDetails { private User user; - private List permissions; + private List permissions; - public LoginUser(User user, List permissions) { + public LoginUser(User user, List permissions) { this.user = user; this.permissions = permissions; } @@ -28,7 +29,7 @@ public class LoginUser implements UserDetails { @JSONField(serialize = false) private List authorities; - public List getPermissions() { + public List getPermissions() { return permissions; } diff --git a/backend/src/main/java/com/stdproject/mapper/MenuMapper.java b/backend/src/main/java/com/stdproject/mapper/MenuMapper.java index 22cbcb4..5c82137 100644 --- a/backend/src/main/java/com/stdproject/mapper/MenuMapper.java +++ b/backend/src/main/java/com/stdproject/mapper/MenuMapper.java @@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; +import java.util.Map; @Mapper public interface MenuMapper extends BaseMapper { @@ -15,4 +16,7 @@ public interface MenuMapper extends BaseMapper { @Select("select m.id FROM app_role_menu rm INNER JOIN app_menu m on rm.menuid = m.id where m.isdisplay = 1 AND rm.app_id = #{appid} AND rm.roleid = #{roleid} ORDER BY m.orderno ASC") List selectMenuByRoleId( @Param("appid")String appId, @Param("roleid") String roleId); + + @Select("") + List listMenuByIds(@Param("menuIds") List menuIds); } diff --git a/backend/src/main/java/com/stdproject/service/CustomUserDetailsService.java b/backend/src/main/java/com/stdproject/service/CustomUserDetailsService.java index 9f4f6d2..ab26b02 100644 --- a/backend/src/main/java/com/stdproject/service/CustomUserDetailsService.java +++ b/backend/src/main/java/com/stdproject/service/CustomUserDetailsService.java @@ -48,7 +48,7 @@ public class CustomUserDetailsService implements UserDetailsService { if (appUser == null) { throw new UsernameNotFoundException("用户不存在: " + username); } - List permissions = buildUserAuthorities(appUser); + List permissions = buildUserAuthorities(appUser); LoginUser loginUser = new LoginUser(appUser,permissions); return loginUser; @@ -60,8 +60,8 @@ public class CustomUserDetailsService implements UserDetailsService { * @param appUser 用户信息 * @return 权限集合 */ - private List buildUserAuthorities(User appUser) { - List permissions = new ArrayList<>(); + private List buildUserAuthorities(User appUser) { + List permissions = new ArrayList<>(); try { // 使用RoleMapper直接查询用户的角色信息 @@ -80,13 +80,8 @@ public class CustomUserDetailsService implements UserDetailsService { if (!menuIds.isEmpty()) { // 查询菜单信息并添加菜单权限 - List menus = appMenuService.listByIds(menuIds); - for (Menu menu : menus) { - if ("1".equals(menu.getIsdisplay()) && StringUtils.hasText(menu.getCode())) { - // 添加菜单权限,格式:菜单编码 - permissions.add(menu); - } - } + List menus = menuMapper.listMenuByIds(menuIds); + permissions.addAll(menus); } } }