Browse Source

5.25.Role_Permission

亨利王 1 year ago
parent
commit
137f80a3c2

+ 18 - 7
.idea/workspace.xml

@@ -6,9 +6,12 @@
   <component name="ChangeListManager">
     <list default="true" id="46b159bd-08ca-42f0-b80f-41d4944a8a29" name="Changes" comment="App端诊断日志上传">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/user/APPBrandController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/user/APPBrandController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/service/IBrandService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/service/IBrandService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/service/impl/BrandServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/service/impl/BrandServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/RoleMenuController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/controller/admin/RoleMenuController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/entity/po/RoleMenu.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/entity/po/RoleMenu.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/mapper/RoleMenuMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/mapper/RoleMenuMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/service/IRoleService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/service/IRoleService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/om/service/impl/RoleServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/om/service/impl/RoleServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/RoleMenuMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/RoleMenuMapper.xml" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -38,9 +41,7 @@
   <component name="MavenImportPreferences">
     <option name="generalSettings">
       <MavenGeneralSettings>
-        <option name="customMavenHome" value="B:\apache-maven-3.8.8" />
-        <option name="mavenHomeTypeForPersistence" value="CUSTOM" />
-        <option name="userSettingsFile" value="B:\apache-maven-3.8.8\conf\settings.xml" />
+        <option name="useMavenConfig" value="false" />
       </MavenGeneralSettings>
     </option>
   </component>
@@ -74,7 +75,7 @@
     &quot;git-widget-placeholder&quot;: &quot;master&quot;,
     &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
     &quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
-    &quot;last_opened_file_path&quot;: &quot;C:/Users/wxy/IdeasProjects/outsourcing/OperationSystem/src/main/resources/mapper&quot;,
+    &quot;last_opened_file_path&quot;: &quot;C:/Users/Administrator/IdeaProjects/OperationSystem&quot;,
     &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
     &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
     &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
@@ -164,6 +165,14 @@
       </list>
     </recent_temporary>
   </component>
+  <component name="SharedIndexes">
+    <attachedChunks>
+      <set>
+        <option value="bundled-jdk-9f38398b9061-18abd8497189-intellij.indexing.shared.core-IU-241.14494.240" />
+        <option value="bundled-js-predefined-1d06a55b98c1-74d2a5396914-JavaScript-IU-241.14494.240" />
+      </set>
+    </attachedChunks>
+  </component>
   <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
   <component name="TaskManager">
     <task active="true" id="Default" summary="Default task">
@@ -215,6 +224,8 @@
       <workItem from="1710721799820" duration="2290000" />
       <workItem from="1710740432278" duration="2248000" />
       <workItem from="1710745462072" duration="7048000" />
+      <workItem from="1716601848539" duration="716000" />
+      <workItem from="1716602583519" duration="5960000" />
     </task>
     <task id="LOCAL-00001" summary="管理员登录">
       <option name="closed" value="true" />

+ 8 - 0
src/main/java/com/om/controller/admin/RoleMenuController.java

@@ -35,4 +35,12 @@ public class RoleMenuController {
         Object roleMenu = roleService.getRoleMenu(roleId);
         return Result.succ(roleMenu);
     }
+
+    @GetMapping
+    @ApiOperation("根据角色ID和语言查询菜单接口")
+    public Result getRoleMenuByLang(@RequestParam(defaultValue = "") Integer roleId,
+                                    @RequestParam(defaultValue = "zhCn") String lang) {
+        Object roleMenu = roleService.getRoleMenu(roleId, lang);
+        return Result.succ(roleMenu);
+    }
 }

+ 2 - 0
src/main/java/com/om/entity/po/RoleMenu.java

@@ -18,4 +18,6 @@ public class RoleMenu implements Serializable {
     private Integer roleId;
     @ApiModelProperty("菜单ID")
     private Integer menuId;
+    @ApiModelProperty("语言标记")
+    private String lang;
 }

+ 2 - 0
src/main/java/com/om/mapper/RoleMenuMapper.java

@@ -16,6 +16,8 @@ public interface RoleMenuMapper extends BaseMapper<RoleMenu> {
 
     int deleteByRoleId(@Param("roleId") Integer roleId);
 
+    int deleteByRoleIdLang(@Param("roleId") Integer roleId, @Param("lang") String lang);
+
     List<Integer> selectByRoleId(@Param("roleId") Integer roleId);
 
     List<Integer> selectByRoleIdLang(@Param("roleId") Integer roleId, @Param("lang") String lang);

+ 1 - 0
src/main/java/com/om/service/IRoleService.java

@@ -11,4 +11,5 @@ public interface IRoleService extends IService<Role> {
 
     Object getRoleMenu(Integer roleId);
 
+    Object getRoleMenu(Integer roleId, String lang);
 }

+ 22 - 3
src/main/java/com/om/service/impl/RoleServiceImpl.java

@@ -40,10 +40,12 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
         //roleMenuMapper.delete(queryWrapper);
 
         // 先删除当前角色id所有的绑定关系
-        roleMenuMapper.deleteByRoleId(roleId);
+//        roleMenuMapper.deleteByRoleId(roleId);
 
+        String lang = "";
         // 再把前端传过来的菜单id数组绑定到当前的这个角色id上去
         List<Integer> menuIdsCopy = CollUtil.newArrayList(menuIds);
+        List<RoleMenu> roleMenuList = CollUtil.newArrayList();
         for (Integer menuId : menuIds) {
             Menu menu = menuService.getById(menuId);
             if (menu.getPid() != null && !menuIdsCopy.contains(menu.getPid())) { // 二级菜单 并且传过来的menuId数组里面没有它的父级id
@@ -51,14 +53,26 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
                 RoleMenu roleMenu = new RoleMenu();
                 roleMenu.setRoleId(roleId);
                 roleMenu.setMenuId(menu.getPid());
-                roleMenuMapper.insert(roleMenu);
+                // 增加语言标记
+                roleMenu.setLang(menu.getLang());
+//                roleMenuMapper.insert(roleMenu);
+                roleMenuList.add(roleMenu);
                 menuIdsCopy.add(menu.getPid());
             }
             RoleMenu roleMenu = new RoleMenu();
             roleMenu.setRoleId(roleId);
             roleMenu.setMenuId(menuId);
-            roleMenuMapper.insert(roleMenu);
+            if(lang.isEmpty()) lang= menu.getLang();
+            // 增加语言标记
+            roleMenu.setLang(menu.getLang());
+//            roleMenuMapper.insert(roleMenu);
+            roleMenuList.add(roleMenu);
         }
+        // 先删除当前角色id所有的绑定关系
+        roleMenuMapper.deleteByRoleIdLang(roleId, lang);
+        roleMenuList.forEach(roleMenu -> {
+            roleMenuMapper.insert(roleMenu);
+        });
     }
 
     @Override
@@ -67,4 +81,9 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
         return roleMenuMapper.selectByRoleId(roleId);
     }
 
+    @Override
+    public List<Integer> getRoleMenu(Integer roleId, String lang) {
+
+        return roleMenuMapper.selectByRoleIdLang(roleId, lang);
+    }
 }

+ 5 - 0
src/main/resources/mapper/RoleMenuMapper.xml

@@ -7,6 +7,11 @@
         from sys_role_menu
         where role_id = #{roleId}
     </delete>
+    <delete id="deleteByRoleIdLang">
+        delete
+        from sys_role_menu
+        where role_id = #{roleId} and lang like concat('%',#{lang},'%')
+    </delete>
     <select id="selectByRoleId" resultType="java.lang.Integer">
         select menu_id
         from sys_role_menu