package cn.ksource.web.facade.colunm; import java.io.File; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.ksource.beans.CMS_CATEGORY; import cn.ksource.beans.GG_XTGN; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.FileUtil; import cn.ksource.core.util.JsonUtil; import cn.ksource.core.util.MyFileUploadException; import cn.ksource.core.util.StringUtil; import cn.ksource.web.entity.colunm.CmsCategory; import cn.ksource.web.service.colunm.ColunmService; @Service("colunmFacade") @SuppressWarnings("unchecked") public class ColunmFacadeImpl implements ColunmFacade { @Autowired public BaseDao baseDao; @Resource(name="colunmService") private ColunmService colunmService; @Override public List getColunmClassifyTree(String id) { return colunmService.getColunmClassifyTree(id); } @Override public Map getColunmList(String nodeId, int page, int rows) { return colunmService.getColunmList(nodeId,page,rows); } @Override public int queryLevelById(String nodeId) { return colunmService.queryLevelById(nodeId); } /** * 保存栏目分类 */ @Override public void saveColumnClassify(CmsCategory cmsCategory,HttpServletRequest request) { String[] allowType = new String[]{"gif","jpg","jpeg","png"}; String uploadUrl = new String(); try { uploadUrl = FileUtil.uploadFile4SpringMVC(request, "classifyimage" ,"/upload/classify",allowType); String pathPix = request.getSession().getServletContext().getRealPath("/"); System.out.println("pathPix:"+pathPix+"url:"+uploadUrl); if(uploadUrl!=null){ String newName = FileUtil.resizeForEqualImg(new File(pathPix+uploadUrl), 50, 50, true); } //uploadUrl = uploadUrl.replace(uploadUrl.substring(uploadUrl.lastIndexOf("/")+1), uploadUrl); } catch (MyFileUploadException e) { e.printStackTrace(); } cmsCategory.setClassifyImage(uploadUrl); colunmService.saveColumnClassify(cmsCategory); } /** * 删除栏目 */ @Override public void deleteColumnClassify(String id) { colunmService.deleteColumnClassify(id); } @Override public Map queryColunmById(String id) { return colunmService.queryColunmById(id); } /** * 更新栏目 */ @Override public void updateColunm(CmsCategory cmsCategory,HttpServletRequest request) { String[] allowType = new String[]{"gif","jpg","jpeg","png"}; String uploadUrl = new String(); try { uploadUrl = FileUtil.uploadFile4SpringMVC(request, "classifyimage" ,"/upload/classify",allowType); if(null!=uploadUrl){ cmsCategory.setClassifyImage(uploadUrl); } } catch (MyFileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } colunmService.updateColunm(cmsCategory); } @Override public int queryClassifyCount(String pId) { StringBuilder builder = new StringBuilder("SELECT COUNT(ID) FROM CMS_CATEGORY WHERE USINGSTATE = 1 "); Map paramMap = new HashMap(); if(StringUtil.notEmpty(pId)) { builder.append(" AND UP_ID = :pId "); paramMap.put("pId", pId); } else { builder.append(" AND LEVEL = 1 "); } int count = baseDao.queryForInteger(builder.toString(),paramMap); return count; } @Override public PageInfo queryClassifyData(PageInfo pageInfo,String pId) { StringBuilder builder = new StringBuilder("SELECT * FROM CMS_CATEGORY WHERE USINGSTATE = 1 "); Map paramMap = new HashMap(); if(StringUtil.notEmpty(pId)) { builder.append(" AND UP_ID = :pId "); paramMap.put("pId", pId); } else { builder.append(" AND LEVEL = 1 "); } builder.append(" ORDER BY LEVEL,ORDERNUM "); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), paramMap); return info; } @Override public List queryColumnTree(HttpServletRequest request) { Map paramMap = new HashMap(); String selectSubSql = "SELECT * FROM CMS_CATEGORY WHERE USINGSTATE = 1 ORDER BY LEVEL,ORDERNUM "; 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("LEVEL").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("UP_ID").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("UP_ID")){ String pId = map.get("UP_ID").toString(); if(ejgnCache.containsKey(pId)) { Map ejgnMap = ejgnCache.get(map.get("UP_ID").toString()); List list = (List)ejgnMap.get("sjTree"); list.add(map); } } } } System.out.println(JsonUtil.list2Json(resultList)); return resultList; } @Override public Map deleteClassify(String id) { String sql = "SELECT COUNT(ID) FROM CMS_CATEGORY WHERE UP_ID = :up_id "; Map param = new HashMap(); param.put("up_id", id); int count = baseDao.queryForInteger(sql, param); String firstCate = new String(); String secondCate = new String(); CMS_CATEGORY cate = new CMS_CATEGORY(id).getInstanceById(); String sjbh = ConvertUtil.obj2StrBlank(cate.getUp_id()); if(StringUtil.notEmpty(sjbh)) { CMS_CATEGORY pcate = new CMS_CATEGORY(sjbh).getInstanceById(); int level = pcate.getLevel(); if(level==2) { firstCate = ConvertUtil.obj2StrBlank(pcate.getUp_id()); secondCate = pcate.getId(); } else { firstCate = pcate.getId(); } } Map result = new HashMap(); if(count > 0){ result.put("msg", "存在子分类,不能删除"); }else{ cate.setUsingstate(2).update(); result.put("msg", "1"); } result.put("firstCate", firstCate); result.put("secondCate", secondCate); return result; } }