Selaa lähdekoodia

git-svn-id: https://192.168.57.71/svn/jsgkj@302 931142cf-59ea-a443-aa0e-51397b428577

ld_xuhx 9 vuotta sitten
vanhempi
commit
e4afdeb6dd
1 muutettua tiedostoa jossa 73 lisäystä ja 28 poistoa
  1. 73 28
      gkjsjy/trunk/src/com/xt/jygl/sys/ctl/CommonCtl.java

+ 73 - 28
gkjsjy/trunk/src/com/xt/jygl/sys/ctl/CommonCtl.java

@@ -47,6 +47,7 @@ import com.xtframe.core.base.vo.TreeNode;
 import com.xtframe.sec.code.entity.CodeEntity;
 import com.xtframe.sec.common.BaseEntity;
 import com.xtframe.sec.common.SimplePageRequest;
+import com.xtframe.sec.role.entity.RoleEntity;
 import com.xtframe.sec.user.entity.UserEntity;
 import com.xtframe.util.StringUtils;
 
@@ -70,7 +71,7 @@ public class CommonCtl extends BaseWebCtl {
 	private XzglbmxxService xzglbmService;
 	@Autowired
 	private XzglryService xzglryService;
-	
+
 	/**
 	 * 根据当前系统部署的citycode进行过滤
 	 * 
@@ -327,19 +328,17 @@ public class CommonCtl extends BaseWebCtl {
 		return wr;
 	}
 
-	
-	
 	/**
 	 * 初始化公告人员树
 	 */
 	@RequestMapping(value = "/getUserTreeData", produces = { "text/json;charset=utf-8" })
 	@ResponseBody
-	public String getUserTreeData(Model model) {
+	public String getUserTreeData(Model model, String roleCode) {
 		TreeNode root = new TreeNode();
 		root.setId(Constants.BLANK_UUID);
 		root.setName("省港口局");
 		root.setOpen(true);
-		root.setChildren(getByPid("402881a45155eda5015156512d080000"));
+		root.setChildren(getByPid("402881a45155eda5015156512d080000", roleCode));
 		return JSONObject.fromObject(root).toString();
 	}
 
@@ -349,22 +348,31 @@ public class CommonCtl extends BaseWebCtl {
 	 * @param xzglbmxx
 	 * @return
 	 */
-	private TreeNode xzglbmToTreeNode(XzglbmxxEntity xzglbmxx) {
+	private TreeNode xzglbmToTreeNode(XzglbmxxEntity xzglbmxx, String roleCode) {
 		if (xzglbmxx != null) {
 			TreeNode node = new TreeNode();
 			node.setId(xzglbmxx.getId());
 			node.setName(xzglbmxx.getGkglbmqc());
-			if (StringUtils.isEmpty(getByPid(xzglbmxx.getId()))) {
-				node.setChildren(getUsers(xzglbmxx.getId()));
+			List<TreeNode> nodelist = new ArrayList<TreeNode>();
+			if (StringUtils.isEmpty(getByPid(xzglbmxx.getId(), roleCode))) {
+				nodelist = getUsers(xzglbmxx.getId(), roleCode);
+				if (nodelist != null && nodelist.size() > 0) {
+					node.setChildren(nodelist);
+					return node;
+				}
 			} else {
-				node.setChildren(getByPid(xzglbmxx.getId()));
+				nodelist = getByPid(xzglbmxx.getId(), roleCode);
+				if (nodelist != null && nodelist.size() > 0) {
+					node.setChildren(nodelist);
+					return node;
+				}
 			}
-			return node;
+
 		}
 		return null;
 	}
 
-	private List<TreeNode> getUsers(String bmid) {
+	private List<TreeNode> getUsers(String bmid, String roleCode) {
 		List<TreeNode> nodeList = null;
 		List<XzglryEntity> rylist = xzglryService.queryXzglryByBmid(bmid);
 		if (rylist != null && rylist.size() > 0) {
@@ -373,15 +381,32 @@ public class CommonCtl extends BaseWebCtl {
 				TreeNode node = new TreeNode();
 				if (!StringUtils.isEmpty(ry)) {
 					UserEntity user = securityMgr.userService().findByssry(ry.getId());
-					if(user!=null){
-						node.setId(user.getId());
-						node.setType("user");
-						node.setName(ry.getXm());
-						node.setChecked(false);
-						nodeList.add(node);
+					if (user != null) {
+						boolean flag = false;
+						if (!StringUtils.isEmpty(roleCode)) {
+							List<RoleEntity> rlist = securityMgr.roleService().findByUserId(user.getId());
+
+							if (rlist != null && rlist.size() > 0) {
+								for (RoleEntity role : rlist) {
+									if (roleCode.equals(role.getCode())) {
+										flag = true;
+										break;
+									}
+								}
+							}
+						} else {
+							flag = true;
+						}
+						if (flag) {
+							node.setId(user.getId());
+							node.setType("user");
+							node.setName(user.getName());
+							node.setChecked(false);
+							nodeList.add(node);
+						}
 					}
 				}
-				
+
 			}
 		}
 		return nodeList;
@@ -393,7 +418,7 @@ public class CommonCtl extends BaseWebCtl {
 	 * @param pid
 	 * @return
 	 */
-	public List<TreeNode> getByPid(String pid) {
+	public List<TreeNode> getByPid(String pid, String roleCode) {
 		List<TreeNode> nodeList = new ArrayList<TreeNode>();
 		List<XzglryEntity> rylist = xzglryService.queryXzglryByBmid(pid);
 		if (rylist != null && rylist.size() > 0) {
@@ -401,22 +426,42 @@ public class CommonCtl extends BaseWebCtl {
 				TreeNode node = new TreeNode();
 				if (!StringUtils.isEmpty(ry)) {
 					UserEntity user = securityMgr.userService().findByssry(ry.getId());
-					if(user!=null){
-						node.setId(user.getId());
-						node.setType("user");
-						node.setName(user.getName());
-						node.setChecked(false);
-						nodeList.add(node);
+					if (user != null) {
+						boolean flag = false;
+						if (!StringUtils.isEmpty(roleCode)) {
+							List<RoleEntity> rlist = securityMgr.roleService().findByUserId(user.getId());
+
+							if (rlist != null && rlist.size() > 0) {
+								for (RoleEntity role : rlist) {
+									if (roleCode.equals(role.getCode())) {
+										flag = true;
+										break;
+									}
+								}
+							}
+						} else {
+							flag = true;
+						}
+						if (flag) {
+							node.setId(user.getId());
+							node.setType("user");
+							node.setName(user.getName());
+							node.setChecked(false);
+							nodeList.add(node);
+						}
 					}
 				}
-				
 			}
 		}
 		List<XzglbmxxEntity> xzglbmxxlist = xzglbmService.queryXzglbm(pid, GlobalData.CITY_CODE);
 		if (xzglbmxxlist != null && xzglbmxxlist.size() > 0) {
 			for (XzglbmxxEntity xzglbmxxEntity : xzglbmxxlist) {
-				if ("省港口局".equals(xzglbmxxEntity.getGkglbmqc()) || !"00".equals(pid) ) {
-					nodeList.add(xzglbmToTreeNode(xzglbmxxEntity));
+				if ("省港口局".equals(xzglbmxxEntity.getGkglbmqc()) || !"00".equals(pid)) {
+					TreeNode node = xzglbmToTreeNode(xzglbmxxEntity, roleCode);
+					if (!StringUtils.isEmpty(node)) {
+						nodeList.add(node);
+					}
+
 				}
 			}
 		}