|
|
@@ -1,10 +1,13 @@
|
|
|
package com.zheng.upms.rpc.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.zheng.common.annotation.BaseService;
|
|
|
import com.zheng.common.base.BaseServiceImpl;
|
|
|
import com.zheng.upms.dao.mapper.UpmsPermissionMapper;
|
|
|
-import com.zheng.upms.dao.model.UpmsPermission;
|
|
|
-import com.zheng.upms.dao.model.UpmsPermissionExample;
|
|
|
+import com.zheng.upms.dao.mapper.UpmsSystemMapper;
|
|
|
+import com.zheng.upms.dao.model.*;
|
|
|
+import com.zheng.upms.rpc.api.UpmsApiService;
|
|
|
import com.zheng.upms.rpc.api.UpmsPermissionService;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
@@ -12,6 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* UpmsPermissionService实现
|
|
|
* Created by shuzheng on 2017/3/20.
|
|
|
@@ -23,7 +28,107 @@ public class UpmsPermissionServiceImpl extends BaseServiceImpl<UpmsPermissionMap
|
|
|
|
|
|
private static Logger _log = LoggerFactory.getLogger(UpmsPermissionServiceImpl.class);
|
|
|
|
|
|
+ @Autowired
|
|
|
+ UpmsSystemMapper upmsSystemMapper;
|
|
|
+
|
|
|
@Autowired
|
|
|
UpmsPermissionMapper upmsPermissionMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ UpmsApiService upmsApiService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public JSONArray getTreeByRoleId(Integer roleId) {
|
|
|
+ // 角色已有权限
|
|
|
+ List<UpmsRolePermission> rolePermissions = upmsApiService.selectUpmsRolePermisstionByUpmsRoleId(roleId);
|
|
|
+
|
|
|
+ JSONArray systems = new JSONArray();
|
|
|
+ // 系统
|
|
|
+ UpmsSystemExample upmsSystemExample = new UpmsSystemExample();
|
|
|
+ upmsSystemExample.createCriteria()
|
|
|
+ .andStatusEqualTo((byte) 1);
|
|
|
+ upmsSystemExample.setOrderByClause("orders asc");
|
|
|
+ List<UpmsSystem> upmsSystems = upmsSystemMapper.selectByExample(upmsSystemExample);
|
|
|
+ for (UpmsSystem upmsSystem : upmsSystems) {
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
+ node.put("id", upmsSystem.getSystemId());
|
|
|
+ node.put("name", upmsSystem.getTitle());
|
|
|
+ node.put("nocheck", true);
|
|
|
+ node.put("open", true);
|
|
|
+ systems.add(node);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!systems.isEmpty()) {
|
|
|
+ for (Object system: systems) {
|
|
|
+ UpmsPermissionExample upmsPermissionExample = new UpmsPermissionExample();
|
|
|
+ upmsPermissionExample.createCriteria()
|
|
|
+ .andStatusEqualTo((byte) 1)
|
|
|
+ .andSystemIdEqualTo(((JSONObject) system).getIntValue("id"));
|
|
|
+ upmsPermissionExample.setOrderByClause("orders asc");
|
|
|
+ List<UpmsPermission> upmsPermissions = upmsPermissionMapper.selectByExample(upmsPermissionExample);
|
|
|
+ if (upmsPermissions.size() == 0) continue;
|
|
|
+ // 目录
|
|
|
+ JSONArray folders = new JSONArray();
|
|
|
+ for (UpmsPermission upmsPermission: upmsPermissions) {
|
|
|
+ if (upmsPermission.getPid().intValue() != 0 || upmsPermission.getType() != 1) continue;
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
+ node.put("id", upmsPermission.getPermissionId());
|
|
|
+ node.put("name", upmsPermission.getName());
|
|
|
+ node.put("open", true);
|
|
|
+ for (UpmsRolePermission rolePermission : rolePermissions) {
|
|
|
+ if (rolePermission.getPermissionId().intValue() == upmsPermission.getPermissionId().intValue()) {
|
|
|
+ node.put("checked", true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ folders.add(node);
|
|
|
+ // 菜单
|
|
|
+ JSONArray menus = new JSONArray();
|
|
|
+ for (Object folder : folders) {
|
|
|
+ for (UpmsPermission upmsPermission2: upmsPermissions) {
|
|
|
+ if (upmsPermission2.getPid().intValue() != ((JSONObject) folder).getIntValue("id") || upmsPermission2.getType() != 2) continue;
|
|
|
+ JSONObject node2 = new JSONObject();
|
|
|
+ node2.put("id", upmsPermission2.getPermissionId());
|
|
|
+ node2.put("name", upmsPermission2.getName());
|
|
|
+ node2.put("open", true);
|
|
|
+ for (UpmsRolePermission rolePermission : rolePermissions) {
|
|
|
+ if (rolePermission.getPermissionId().intValue() == upmsPermission2.getPermissionId().intValue()) {
|
|
|
+ node2.put("checked", true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ menus.add(node2);
|
|
|
+ // 按钮
|
|
|
+ JSONArray buttons = new JSONArray();
|
|
|
+ for (Object menu : menus) {
|
|
|
+ for (UpmsPermission upmsPermission3: upmsPermissions) {
|
|
|
+ if (upmsPermission3.getPid().intValue() != ((JSONObject) menu).getIntValue("id") || upmsPermission3.getType() != 3) continue;
|
|
|
+ JSONObject node3 = new JSONObject();
|
|
|
+ node3.put("id", upmsPermission3.getPermissionId());
|
|
|
+ node3.put("name", upmsPermission3.getName());
|
|
|
+ node3.put("open", true);
|
|
|
+ for (UpmsRolePermission rolePermission : rolePermissions) {
|
|
|
+ if (rolePermission.getPermissionId().intValue() == upmsPermission3.getPermissionId().intValue()) {
|
|
|
+ node3.put("checked", true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ buttons.add(node3);
|
|
|
+ }
|
|
|
+ if (buttons.size() > 0) {
|
|
|
+ ((JSONObject) menu).put("children", buttons);
|
|
|
+ buttons = new JSONArray();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (menus.size() > 0) {
|
|
|
+ ((JSONObject) folder).put("children", menus);
|
|
|
+ menus = new JSONArray();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (folders.size() > 0) {
|
|
|
+ ((JSONObject) system).put("children", folders);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return systems;
|
|
|
+ }
|
|
|
}
|