/* * jobConfig的格式为 : * sql @ datasource */ protected void excuteJob(String jobConfig) { log.info("开始用户对角色信息同步......"); String info[] = EasyUtils.split(jobConfig, "@"); if (info.length < 2) { log.info("用户对角色信息同步的配置信息有误。" + jobConfig); return; } String sql = info[0]; String dataSource = info[1]; Date fromDay = DateUtil.subDays(DateUtil.today(), 3); List<Map<String, Object>> list = SQLExcutor.query(dataSource, sql, fromDay, fromDay); List<Object[]> addList = new ArrayList<Object[]>(); List<Object[]> delList = new ArrayList<Object[]>(); for (Map<String, Object> item : list) { Long user = EasyUtils.obj2Long(item.get("user")); String[] role1 = EasyUtils.obj2String(item.get("role1")).split(","); // 需要新增的用户角色关系 String[] role2 = EasyUtils.obj2String(item.get("role2")).split(","); // 需要删除的用户角色关系 for (String role : role1) { if (!EasyUtils.isNullOrEmpty(role)) { Long _role = EasyUtils.obj2Long(role); if (getCount(user, _role) == 0) { addList.add(new Object[] {user, _role}); } } } for (String role : role2) { if (!EasyUtils.isNullOrEmpty(role)) { Long _role = EasyUtils.obj2Long(role); delList.add(new Object[] {user, _role}); } } } SQLExcutor.excuteBatchII(insertSQL, addList, DMConstants.LOCAL_CONN_POOL); SQLExcutor.excuteBatchII(deleteSQL, delList, DMConstants.LOCAL_CONN_POOL); log.info("完成用户对角色信息同步。"); }
public TreeNode parse(Object data) { List<Group> mainAndAssistantGroups = (List<Group>) data; TreeNode root = new TreeNode(); Map<Long, TreeNode> treeNodeMap = new HashMap<Long, TreeNode>(); // 解析主用户组和辅助用户组 if (!EasyUtils.isNullOrEmpty(mainAndAssistantGroups)) { for (Group group : mainAndAssistantGroups) { TreeNode item = new TreeNode(group); treeNodeMap.put(group.getId(), item); } parserGroup(root, (List<Group>) mainAndAssistantGroups, treeNodeMap); } return root; }