package cn.ksource.web.service.xtgl.xtgn.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; import cn.ksource.beans.GG_XTGN; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.web.TreeNode; import cn.ksource.web.Constants; import cn.ksource.web.service.xtgl.xtgn.XtgnService; @Service("xtgnService") public class XtgnServiceImpl implements XtgnService { @Resource(name="baseDao") private BaseDao baseDao; @Override public Map getXtgnTree() { TreeNode root = new TreeNode("0","系统功能"); Map rootAttrMap = new HashMap(); rootAttrMap.put("type", 0); root.setAttributes(rootAttrMap); String sql = "SELECT ID,GNMC,TYPE,SXH,SMALL_IMAGE,SJBH FROM GG_XTGN ORDER BY TYPE ASC,SXH ASC"; List xtgnList = baseDao.queryForList(sql, new SqlParameter()); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); for (Map map : xtgnList) { //一级功能 if (map.get("type").toString().equalsIgnoreCase("1")) { TreeNode yjTree = new TreeNode(map.get("ID").toString(),map.get("GNMC").toString()); yjTree.setIconCls(ConvertUtil.obj2Str(map.get("SMALL_IMAGE"))); yjTree.setIsOpen(false); Map attrMap = new HashMap(); attrMap.put("type", 1); yjTree.setAttributes(attrMap); root.addChild(yjTree); yjgnCache.put(ConvertUtil.obj2Str(map.get("ID")), yjTree); continue; } if (map.get("type").toString().equalsIgnoreCase("2")) { TreeNode ejTree = new TreeNode(map.get("ID").toString(),map.get("GNMC").toString()); ejTree.setIconCls(ConvertUtil.obj2Str(map.get("SMALL_IMAGE"))); Map attrMap = new HashMap(); attrMap.put("type", 2); ejTree.setAttributes(attrMap); ejTree.setIsOpen(false); yjgnCache.get(ConvertUtil.obj2Str(map.get("SJBH"))).addChild(ejTree); ejgnCache.put(ConvertUtil.obj2Str(map.get("ID")), ejTree); continue; } if (map.get("type").toString().equalsIgnoreCase("3")) { TreeNode sjTree = new TreeNode(map.get("ID").toString(),map.get("GNMC").toString()); Map attrMap = new HashMap(); attrMap.put("type", 3); sjTree.setAttributes(attrMap); sjTree.setIconCls(ConvertUtil.obj2Str(map.get("SMALL_IMAGE"))); ejgnCache.get(ConvertUtil.obj2Str(map.get("SJBH"))).addChild(sjTree); } } Map resultMap = new HashMap(); resultMap.put("TreeNode", root); return resultMap; } @Override public List getXtgnList(String id) { String sql = "SELECT * FROM GG_XTGN WHERE 1=1 " ; if (StringUtils.isBlank(id) || StringUtils.equalsIgnoreCase(id, "0")) { sql += " AND SJBH IS NULL "; } else { sql += " AND SJBH = :id "; } sql += "ORDER BY TYPE ASC,SXH ASC"; List list = baseDao.queryForList(sql,new SqlParameter("id",id)); for (Map map : list) { map.put("_TYPE", Constants.getGG_XTGN_TYPE_Label(ConvertUtil.obj2Integer(map.get("TYPE")))); } return list; } @Override public void deleteXtgn(String id) { new GG_XTGN(id).deleteById(); } @Override public Map getXtgnInfo(String id) { return baseDao.queryForMap("SELECT * FROM GG_XTGN WHERE ID=:id",new SqlParameter("id",id)); } @Override public List gntzJson(String id) { GG_XTGN xtgn = new GG_XTGN(id).getInstanceById(); if (xtgn.getType() == 1) { return new ArrayList(); } String sql = "SELECT * FROM GG_XTGN WHERE TYPE=:type AND ID != :sjbh ORDER BY TYPE ASC,SXH ASC"; List list = baseDao.queryForList(sql,new SqlParameter("type",xtgn.getType()-1).addValue("sjbh", xtgn.getSjbh())); for (Map map : list) { map.put("_TYPE", Constants.getGG_XTGN_TYPE_Label(ConvertUtil.obj2Integer(map.get("TYPE")))); } return list; } }