さいきじゅ
9799 ワード
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Test {
public static void main(String[] args) {
List<Sys_privilege> list = loadingList();
List<Sys_privilege> newList = refactorPriviList(list);
JSONArray jsonArray = new JSONArray();
for (Sys_privilege sp : newList) {
JSONObject jObject = new JSONObject();
jObject.put("id", sp.getId());
jObject.put("name", sp.getName());
jObject.put("subList", convertToJson(sp));
jsonArray.add(jObject);
}
System.out.println(jsonArray.toString());
}
public static String convertToJson(Sys_privilege privi){
JSONArray jArray = new JSONArray();
for(Sys_privilege sp : privi.getSubPriviList()) {
JSONObject jObject = new JSONObject();
jObject.put("id", sp.getId());
jObject.put("name", sp.getName());
jObject.put("subList", convertToJson(sp));
jArray.add(jObject);
}
return jArray.toString();
}
public static List<Sys_privilege> refactorPriviList(List<Sys_privilege> list){
if(null == list || list.size() == 0) return null;
Sys_privilege parent = new Sys_privilege();
parent.setParentId(0);
List<Sys_privilege> subList = getPrivilegeByParentId(parent,list);
for (Sys_privilege privilege : subList) {
if(0==privilege.getParentId()){
getChildPrivilege(privilege,list);
}
}
return subList;
}
/***
*
* @param privi
* @param list
*/
public static void getChildPrivilege(Sys_privilege privi,List<Sys_privilege> list){
List<Sys_privilege> subList = getPrivilegeByParentId(privi,list);
if(null != subList && subList.size() > 0){
for (Sys_privilege subPrivi : subList) {
getChildPrivilege(subPrivi,list);
}
}
privi.setSubPriviList(subList);
}
/***
* parentId
* @param priv
* @param list
* @return
*/
private static List<Sys_privilege> getPrivilegeByParentId(Sys_privilege priv,List<Sys_privilege> list){
if(null == list || list.size() == 0) return null;
List<Sys_privilege> newList = new ArrayList<Sys_privilege>();
for (Sys_privilege sys_privilege : list) {
if(sys_privilege.getParentId().equals(priv.getId())){
newList.add(sys_privilege);
}
}
return newList;
}
public static List<Sys_privilege> loadingList(){
List<Sys_privilege> list = new ArrayList<Sys_privilege>();
Sys_privilege p = new Sys_privilege();
p.setId(1);
p.setName("1");
p.setParentId(0);
Sys_privilege p2 = new Sys_privilege();
p2.setId(2);
p2.setName("2");
p2.setParentId(0);
Sys_privilege p3 = new Sys_privilege();
p3.setId(3);
p3.setName("3");
p3.setParentId(0);
Sys_privilege p4 = new Sys_privilege();
p4.setId(4);
p4.setName("1.1");
p4.setParentId(1);
Sys_privilege p5 = new Sys_privilege();
p5.setId(5);
p5.setName("1.2");
p5.setParentId(1);
Sys_privilege p6 = new Sys_privilege();
p6.setId(6);
p6.setName("1.1.1");
p6.setParentId(4);
list.add(p);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
list.add(p6);
return list;
}
}
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public class Sys_privilege implements Serializable {
private static final long serialVersionUID = 1L;
/** : */
public static final int PRIVILEGE_STATUS_NORMAL = 0;
/** : */
public static final int PRIVILEGE_STATUS_DISABLE = 1;
/** : */
public static final String PRIVILEGE_TYPE_MENU = "0";
/** : */
public static final String PRIVILEGE_TYPE_BUTTON = "1";
private int id;//
private String name;//
private String action;// action
private Integer parentId;//
private Integer status;// : 0. 1.
private String type;// : 0. 1. 2...
private List<Sys_privilege> subPriviList = new ArrayList<Sys_privilege>();//
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Set<Sys_role> getRoles() {
return roles;
}
public void setRoles(Set<Sys_role> roles) {
this.roles = roles;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getQueryIds() {
return queryIds;
}
public void setQueryIds(String queryIds) {
this.queryIds = queryIds;
}
public List<Sys_privilege> getSubPriviList() {
return subPriviList;
}
public void setSubPriviList(List<Sys_privilege> subPriviList) {
this.subPriviList = subPriviList;
}
public String toString(){
return "[id=" + id + ",name=" + name + ",status="
+ status + "type=" + type + ",parentId=" + parentId + ",action=" + action + "]";
}
}
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Test2 {
public static void main(String[] args) {
List<Sys_privilege> list = loadingList();
List<Sys_privilege> newList = refactorPriviList(list);
System.out.println(newList.size());
}
public static List<Sys_privilege> refactorPriviList(List<Sys_privilege> list){
if(null == list || list.size() == 0) return null;
Sys_privilege parent = new Sys_privilege();
parent.setParentId(0);
List<Sys_privilege> newList = new ArrayList<Sys_privilege>();
List<Sys_privilege> subList = getPrivilegeByParentId(parent,list);
for (Sys_privilege privilege : subList) {
if(0==privilege.getParentId()){
getChildPrivilege(privilege,list,newList);
}
}
newList.addAll(subList);
return newList;
}
/***
*
* @param privi
* @param list
*/
public static void getChildPrivilege(Sys_privilege privi,List<Sys_privilege> list,
List<Sys_privilege> newList){
List<Sys_privilege> subList = getPrivilegeByParentId(privi,list);
if(null != subList && subList.size() > 0){
for (Sys_privilege subPrivi : subList) {
getChildPrivilege(subPrivi,list,newList);
}
}
newList.addAll(subList);
}
/***
* parentId
* @param priv
* @param list
* @return
*/
private static List<Sys_privilege> getPrivilegeByParentId(Sys_privilege priv,List<Sys_privilege> list){
if(null == list || list.size() == 0) return null;
List<Sys_privilege> newList = new ArrayList<Sys_privilege>();
for (Sys_privilege sys_privilege : list) {
if(sys_privilege.getParentId().equals(priv.getId())){
newList.add(sys_privilege);
}
}
return newList;
}
public static List<Sys_privilege> loadingList(){
List<Sys_privilege> list = new ArrayList<Sys_privilege>();
Sys_privilege p = new Sys_privilege();
p.setId(1);
p.setName("1");
p.setParentId(0);
Sys_privilege p2 = new Sys_privilege();
p2.setId(2);
p2.setName("2");
p2.setParentId(0);
Sys_privilege p3 = new Sys_privilege();
p3.setId(3);
p3.setName("3");
p3.setParentId(0);
Sys_privilege p4 = new Sys_privilege();
p4.setId(4);
p4.setName("1.1");
p4.setParentId(1);
Sys_privilege p5 = new Sys_privilege();
p5.setId(5);
p5.setName("1.2");
p5.setParentId(1);
Sys_privilege p6 = new Sys_privilege();
p6.setId(6);
p6.setName("1.1.1");
p6.setParentId(4);
list.add(p);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
list.add(p6);
return list;
}
}