Browse Source

新医保菜单和权限设置

lighter 3 years ago
parent
commit
740b4d77d5

+ 17 - 0
src/main/java/thyyxxk/webserver/controller/settings/SettingsController.java

@@ -4,6 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.login.UserInfo;
+import thyyxxk.webserver.entity.login.VueMenu;
 import thyyxxk.webserver.entity.settings.deptphones.DeptPhones;
 import thyyxxk.webserver.entity.settings.permissions.*;
 import thyyxxk.webserver.entity.settings.users.ChangePwdParam;
@@ -111,4 +112,20 @@ public class SettingsController {
     public ResultVo<String> replyAdvice(@RequestBody WorkIntegrationPlatformAdvice advice) {
         return service.replyAdvice(advice);
     }
+
+
+    @GetMapping("/getAllVueMenus")
+    public ResultVo<List<VueMenu>> getAllVueMenus() {
+        return service.getAllVueMenus();
+    }
+
+    @GetMapping("/getRoleVueMenus")
+    public ResultVo<List<Integer>> getRoleVueMenus(@RequestParam("id") Integer id) {
+        return service.getRoleVueMenus(id);
+    }
+
+    @PostMapping("/saveRoleVueMenus")
+    public ResultVo<String> saveRoleVueMenus(@RequestBody SaveRoleMenusParam param) {
+        return service.saveRoleVueMenus(param);
+    }
 }

+ 8 - 2
src/main/java/thyyxxk/webserver/dao/his/LoginDao.java

@@ -56,6 +56,12 @@ public interface LoginDao {
             "</script>")
     List<MenuItem> selectMenusByRoles(@Param("roles") List<Integer> roles);
 
-    @Select("select * from t_intergration_platform_menu")
-    List<VueMenu> selectAllMenus();
+    @Select("<script>" +
+            "select * from t_intergration_platform_menu where id in " +
+            "(select menu_id from t_intergration_platform_role_menu where role_id in " +
+            "<foreach collection='roles' item='role' separator=',' open='(' close='))'>" +
+            "#{role}" +
+            "</foreach> order by sort" +
+            "</script>")
+    List<VueMenu> selectVueMenusByRoles(@Param("roles") List<Integer> roles);
 }

+ 19 - 3
src/main/java/thyyxxk/webserver/dao/his/settings/SettingsDao.java

@@ -3,6 +3,7 @@ package thyyxxk.webserver.dao.his.settings;
 import org.apache.ibatis.annotations.*;
 import thyyxxk.webserver.entity.dictionary.PureCodeName;
 import thyyxxk.webserver.entity.login.UserInfo;
+import thyyxxk.webserver.entity.login.VueMenu;
 import thyyxxk.webserver.entity.settings.deptphones.DeptPhones;
 import thyyxxk.webserver.entity.settings.permissions.MenuItem;
 import thyyxxk.webserver.entity.settings.permissions.Role;
@@ -82,9 +83,6 @@ public interface SettingsDao {
             "(#{name},getdate(),#{createStaff})")
     void addNewRole(Role role);
 
-    @Select("select * from dj_dict_menu where parent=#{code}")
-    List<MenuItem> getMenusByParent(@Param("code") Integer code);
-
     @Select("select * from dj_dict_menu")
     List<MenuItem> selectAllMenus();
 
@@ -131,4 +129,22 @@ public interface SettingsDao {
     @Update("update t_work_integration_platform_advice set reply=#{reply},reply_staff=#{staff}, " +
             "reply_datetime=getdate(), status_flag=2, user_badge=1 where id=#{id}")
     void updateReply(@Param("id") Integer id, @Param("reply") String reply, @Param("staff") String staff);
+
+    @Select("select * from t_intergration_platform_menu order by sort")
+    List<VueMenu> selectAllVueMenus();
+
+    @Select("select id from t_intergration_platform_menu where type=2 and id " +
+            "in (select menu_id from t_intergration_platform_role_menu where role_id=#{id})")
+    List<Integer> getRoleVueMenus(@Param("id") Integer id);
+
+    @Delete("delete from t_intergration_platform_role_menu where role_id=#{id}")
+    void deleteRoleVueMenus(@Param("id") Integer id);
+
+    @Insert("<script>" +
+            "insert into t_intergration_platform_role_menu (role_id, menu_id) VALUES " +
+            "<foreach collection='menus' item='menu' separator=',' open='' close=''>" +
+            "(#{id}, #{menu})" +
+            "</foreach>" +
+            "</script>")
+    void insertRoleVueMenus(@Param("id") Integer id, @Param("menus") List<Integer> menus);
 }

+ 4 - 0
src/main/java/thyyxxk/webserver/entity/login/VueMenu.java

@@ -46,6 +46,10 @@ public class VueMenu implements Serializable {
 	 */
 	private Integer parent;
 
+	private Boolean hideTabs;
+
+	private Boolean hideMenu;
+
 	/**
 	 * 重定向至
 	 */

+ 5 - 7
src/main/java/thyyxxk/webserver/service/LoginService.java

@@ -63,13 +63,11 @@ public class LoginService {
     }
 
     public ResultVo<List<VueMenu>> fetchVueMenus() {
-//        List<Integer> roles = dao.getUserRoles(TokenUtil.getTokenUserId());
-//        if (null == roles || roles.isEmpty()) {
-//            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请联系管理员为您分配角色权限。");
-//        }
-//        List<MenuItem> tempList = dao.selectMenusByRoles(roles);
-//        return TreeUtil.getMenuTree(tempList);
-        List<VueMenu> temp = dao.selectAllMenus();
+        List<Integer> roles = dao.getUserRoles(TokenUtil.getTokenUserId());
+        if (null == roles || roles.isEmpty()) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请联系管理员为您分配角色权限。");
+        }
+        List<VueMenu> temp = dao.selectVueMenusByRoles(roles);
         return TreeUtil.getVueMenuTree(temp);
     }
 

+ 22 - 0
src/main/java/thyyxxk/webserver/service/settings/SettingsService.java

@@ -10,6 +10,7 @@ import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.settings.SettingsDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.login.UserInfo;
+import thyyxxk.webserver.entity.login.VueMenu;
 import thyyxxk.webserver.entity.reports.illegalchargesanalysis.IllegalChargeTemplate;
 import thyyxxk.webserver.entity.settings.deptphones.DeptPhones;
 import thyyxxk.webserver.entity.settings.permissions.*;
@@ -209,4 +210,25 @@ public class SettingsService {
         WebSocketServer.sendMessageByUserCode(advice.getSubmitStaff(), obj.toJSONString());
         return ResultVoUtil.success();
     }
+
+    public ResultVo<List<VueMenu>> getAllVueMenus() {
+        List<VueMenu> tempList = dao.selectAllVueMenus();
+        return TreeUtil.getVueMenuTree(tempList);
+    }
+
+    public ResultVo<List<Integer>> getRoleVueMenus(Integer id) {
+        return ResultVoUtil.success(dao.getRoleVueMenus(id));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public ResultVo<String> saveRoleVueMenus(SaveRoleMenusParam param) {
+        dao.deleteRoleVueMenus(param.getId());
+        if (null == param.getMenus() || param.getMenus().isEmpty()) {
+            return ResultVoUtil.success();
+        }
+        log.info("修改角色菜单 => 操作员:{},数据:{}", TokenUtil.getTokenUserId(), param);
+        dao.insertRoleVueMenus(param.getId(), param.getMenus());
+        return ResultVoUtil.success();
+    }
+
 }

+ 4 - 0
src/main/java/thyyxxk/webserver/utils/TreeUtil.java

@@ -49,10 +49,14 @@ public class TreeUtil {
         Map<Integer, VueMenu> treeMap = new HashMap<>(tempList.size());
         for (VueMenu item : tempList) {
             JSONObject meta = new JSONObject();
+            meta.put("type", item.getType());
             if (StringUtil.notBlank(item.getMetaIcon())) {
                 meta.put("icon", item.getMetaIcon());
             }
             meta.put("title", item.getMetaTitle());
+            if (null != item.getHideTabs()) {
+                meta.put("hideTabs", item.getHideTabs());
+            }
             item.setMeta(meta);
             treeMap.put(item.getId(), item);
             if (0 == item.getParent()) {

+ 1 - 1
src/main/resources/application.yml

@@ -8,7 +8,7 @@ spring:
     cache: false
   datasource:
     dynamic:
-      primary: his
+      primary: dev
       strict: false
       datasource:
         his: