package com.onu.controller.awave;
import java.io.IOException;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.onu.entity.awave.Region;
import com.onu.service.awave.RegionService;
/**
* 生成省市区三级菜单
* @author awave
*
*/
@Controller
@RequestMapping("/awave")
public class RegionController {
@Resource
RegionService regionService;
@RequestMapping("/getNodesById")
public void getNodesById(Integer id,HttpServletResponse response) {
System.out.println("kaishi");
String str = "";
StringBuilder json = new StringBuilder();
List<Region> treeRoot = regionService.FindProvince();
// 获得根节点
if (treeRoot != null && treeRoot.size() != 0) {
json.append("[");
for (Region a : treeRoot) {
// 拼接根节点
json.append("{\"id\":" + String.valueOf(a.getId()));
json.append(",\"text\":\"" + a.getRegionName() + "\"");
// 获取根节点下的所有子节点
List<Region> treeList = regionService.FindCityOrDistrict(a.getId());
// 遍历子节点下的子节点
if (treeList != null && treeList.size() != 0) {
json.append(",\"children\":[");
for (Region t : treeList) {
json.append("{\"id\":" + String.valueOf(t.getId()));
json.append(",\"text\":\"" + t.getRegionName() + "\"");
json.append(",\"state\":\"open\"");
// 该节点有子节点
// 设置为关闭状态,而从构造异步加载tree
List<Region> tList = regionService .FindCityOrDistrict(t.getId());
if (tList != null && tList.size() != 0) {// 存在子节点
json.append(",\"children\":[");
for (Region c : tList) {
json.append("{\"id\":" + String.valueOf(c.getId()));
json.append(",\"text\":\""+ c.getRegionName() + "\"");
json.append("}");
json.append(",");
}
json.deleteCharAt(json.length()-1);
json.append("]");
}
json.append("}");
json.append(",");
}
json.deleteCharAt(json.length()-1);
json.append("]");
}
json.append("}");
json.append(",");
}
json.deleteCharAt(json.length()-1);
json.append("]");
str = json.toString();
try {
System.out.println("输出json数据"+str);
//解决中文response乱码
response.setHeader("Content-type", "text/html;charset=UTF-8");
//向客户端输出内容
response.getWriter().print(str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
@RequestMapping("/region_add")
@ResponseBody
public Object addRegion(Region region){
return regionService.addRegion(region);
}
@RequestMapping("/region_delete")
@ResponseBody
public Object deleteRegion(Integer id){
return regionService.deleteRegion(id);
}
}