package cn.ksource.web.facade.impl; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; 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.page.PageInfo; import cn.ksource.core.util.JsonUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.web.facade.XtgnFacade; @Service("xtgnFacade") public class XtgnFacadeImpl implements XtgnFacade { @Autowired public BaseDao baseDao; @Override public Map deleteXtgn(String id) { String sql = "SELECT COUNT(ID) FROM GG_XTGN WHERE SJBH = :sjbh "; Map param = new HashMap(); param.put("sjbh", id); int count = baseDao.queryForInteger(sql, param); String firstCate = new String(); String secondCate = new String(); GG_XTGN xtgn = new GG_XTGN(id).getInstanceById(); String sjbh = xtgn.getSjbh(); if(StringUtil.notEmpty(sjbh)) { GG_XTGN pxtgn = new GG_XTGN(sjbh).getInstanceById(); int level = pxtgn.getType(); if(level==2) { firstCate = pxtgn.getSjbh(); secondCate = pxtgn.getId(); } else { firstCate = pxtgn.getId(); } } Map result = new HashMap(); if(count > 0){ result.put("msg", "存在子功能,不能删除"); }else{ xtgn.deleteById(); result.put("msg", "1"); } result.put("firstCate", firstCate); result.put("secondCate", secondCate); return result; } @Override public int queryXtgnCount(String pId) { StringBuilder builder = new StringBuilder("SELECT COUNT(ID) FROM GG_XTGN WHERE 1 = 1 "); Map paramMap = new HashMap(); if(StringUtil.notEmpty(pId)) { builder.append(" AND SJBH = :pId "); paramMap.put("pId", pId); } else { builder.append(" AND TYPE = 1 "); } int count = baseDao.queryForInteger(builder.toString(),paramMap); return count; } @Override public PageInfo queryXtgnData(PageInfo pageInfo,String pId) { StringBuilder builder = new StringBuilder("SELECT * FROM GG_XTGN WHERE 1 = 1 "); Map paramMap = new HashMap(); if(StringUtil.notEmpty(pId)) { builder.append(" AND SJBH = :pId "); paramMap.put("pId", pId); } else { builder.append(" AND TYPE = 1 "); } builder.append(" ORDER BY TYPE,SXH "); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), paramMap); return info; } @Override public List queryXtgnTree(HttpServletRequest request) { Map paramMap = new HashMap(); String selectSubSql = "SELECT * FROM GG_XTGN ORDER BY TYPE,SXH "; List cates = baseDao.queryForList(selectSubSql,paramMap); Map result = new HashMap(); List resultList = new LinkedList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : cates) { String level = map.get("TYPE").toString(); String id = map.get("ID").toString(); //一级树 if (level.equalsIgnoreCase("1")) { yjgnCache.put(id, map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (level.equalsIgnoreCase("2")) { String pId = map.get("SJBH").toString(); if(yjgnCache.containsKey(pId)) { Map yjgnMap = yjgnCache.get(pId); List list = (List)yjgnMap.get("ejTree"); map.put("sjTree", new LinkedList()); list.add(map); ejgnCache.put(id, map); } continue; } //三级树 if (level.equalsIgnoreCase("3")) { if(null!=map.get("SJBH")){ String pId = map.get("SJBH").toString(); if(ejgnCache.containsKey(pId)) { Map ejgnMap = ejgnCache.get(map.get("SJBH").toString()); List list = (List)ejgnMap.get("sjTree"); map.put("fjTree", new LinkedList()); list.add(map); sjgnCache.put(id, map); } } } } System.out.println(JsonUtil.list2Json(resultList)); return resultList; } @Override public boolean isGn_markExists(String gn_mark, String sjbh) { String selectsql = "select COUNT(ID) from GG_XTGN where GN_MARK=:gn_mark AND SJBH = :sjbh "; int count = baseDao.queryForInteger(selectsql, new SqlParameter().addValue("gn_mark", gn_mark).addValue("sjbh", sjbh)); if(count > 0){ return false; }else{ return true; } } }