From 425675051e544cf29b2132615cfbf7a93dc5e51f Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期三, 22 六月 2022 15:50:59 +0800 Subject: [PATCH] fix(dm): MySQL=》DMSQL --- src/cn/ksource/web/service/knowledge/KmServiceImpl.java | 171 +++++++++++++++++++++++++++----------------------------- 1 files changed, 82 insertions(+), 89 deletions(-) diff --git a/src/cn/ksource/web/service/knowledge/KmServiceImpl.java b/src/cn/ksource/web/service/knowledge/KmServiceImpl.java index e38a94b..7f01b32 100644 --- a/src/cn/ksource/web/service/knowledge/KmServiceImpl.java +++ b/src/cn/ksource/web/service/knowledge/KmServiceImpl.java @@ -1,18 +1,6 @@ package cn.ksource.web.service.knowledge; -import java.util.ArrayList; -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.KM_LIBRARY; import cn.ksource.beans.KM_LIBRARY_FAVORITE; import cn.ksource.beans.KM_LIBRARY_TEMP; import cn.ksource.core.dao.BaseDao; @@ -23,13 +11,18 @@ import cn.ksource.core.web.WebUtil; import cn.ksource.web.Constants; import cn.ksource.web.service.file.FileService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; @Service public class KmServiceImpl implements KmService { - + @Autowired private BaseDao baseDao; - + @Autowired private FileService fileService; @@ -38,10 +31,10 @@ StringBuffer sql=new StringBuffer(" SELECT A.*,COUNT(B.ID) AS NUM FROM KM_LIBRARY_CATEGORY A LEFT JOIN KM_LIBRARY B ON A.ID = B.CATEGORY_ID and B.STATE = 1 WHERE A.STATE=1 "); sql.append(" GROUP BY A.ID ORDER BY A.LEVEL,A.SERIAL,A.TITLE"); List<Map> categoryList = baseDao.queryForList(sql.toString()); - - + + List<Map> resultList = new LinkedList<Map>(); - + Map<String, Map> yjgnCache = new HashMap<String, Map>(); Map<String, Map> ejgnCache = new HashMap<String, Map>(); Map<String, Map> sjgnCache = new HashMap<String, Map>(); @@ -67,9 +60,9 @@ } } } - + for (Map map : categoryList) { - + //涓�绾ф爲 if (map.get("LEVEL").toString().equalsIgnoreCase("1")) { yjgnCache.put(map.get("ID").toString(), map); @@ -84,7 +77,7 @@ List<Map> list = (List<Map>)yjgnMap.get("ejTree"); map.put("sjTree", new LinkedList<Map>()); list.add(map); - + ejgnCache.put(map.get("ID").toString(), map); continue; } @@ -125,21 +118,21 @@ }else{ sql.append(" (SELECT C.* FROM KM_LIBRARY C,KM_LIBRARY_KNOWLEDGE_ACCESS D WHERE C.ID = D.KNOWLEDGE_ID AND D.CUSTOMER_ID = :cusId) B ON A.ID = B.CATEGORY_ID and B.STATE = 1"); } - sql.append(" WHERE A.STATE=1 GROUP BY A.ID ORDER BY A.LEVEL,A.SERIAL,A.TITLE"); - + sql.append(" WHERE A.STATE=1 GROUP BY A.ID,A.TITLE, A.TAG , A.LEVEL,A.SERIAL ORDER BY A.LEVEL,A.SERIAL,A.TITLE"); + List<Map> categoryList = baseDao.queryForList(sql.toString(),new SqlParameter("cusId",cusId)); - + List<Map> resultList = new LinkedList<Map>(); - + String firstCate = ""; String secondCate = ""; - + Map<String, Map> yjgnCache = new HashMap<String, Map>(); Map<String, Map> ejgnCache = new HashMap<String, Map>(); Map<String, Map> sjgnCache = new HashMap<String, Map>(); - + for (Map map : categoryList) { - + //涓�绾ф爲 if (map.get("LEVEL").toString().equalsIgnoreCase("1")) { yjgnCache.put(map.get("ID").toString(), map); @@ -154,7 +147,7 @@ List<Map> list = (List<Map>)yjgnMap.get("ejTree"); map.put("sjTree", new LinkedList<Map>()); list.add(map); - + ejgnCache.put(map.get("ID").toString(), map); continue; } @@ -168,14 +161,14 @@ List<Map> list = (List<Map>)ejgnMap.get("sjTree"); list.add(map); } - - + + } } - + return resultList; } - + @Override public List<Map> getmyFavourite(String userId) { StringBuilder sql = new StringBuilder(); @@ -184,7 +177,7 @@ sql.append("where k.CREATE_USER_ID=:create_user_id "); SqlParameter param = new SqlParameter(); param.addValue("create_user_id", userId); - + return baseDao.queryForList(sql.toString(), param); } @@ -203,13 +196,13 @@ StringBuilder sql = new StringBuilder(); sql.append("select t.ID,t.TITLE,t.TAG,t.CATEGORY_ID,t.SUMMARY,t.CREATE_TIME,t.CREATE_USER_NAME,t.IS_EDITOR,t.STATE from ( "); sql.append("select DISTINCT k.ID,k.TITLE,k.TAG,k.SUMMARY,k.CREATE_TIME,k.CREATE_USER_NAME,k.CATEGORY_ID,k.IS_EDITOR,p.STATE "); - + if(StringUtil.isEmpty(cusId)){ sql.append("from km_library k "); }else{ sql.append("from (SELECT A.* FROM KM_LIBRARY A,KM_LIBRARY_KNOWLEDGE_ACCESS B WHERE A.ID = B.KNOWLEDGE_ID AND B.CUSTOMER_ID = :cusId ) k "); } - + sql.append(" LEFT JOIN KM_LIBRARY_TEMP p on p.ORIGINAL_ID = k.ID where k.STATE=1 "); sql.append("order by k.CREATE_TIME desc) t "); sql.append("limit :limit1,:limit2 "); @@ -220,7 +213,7 @@ param.addValue("cusId", cusId); param.addValue("limit1", (begin-1)*size); param.addValue("limit2", size); - + List<Map> list = baseDao.queryForList(sql.toString(), param); List<Map> mylist = getmyFavourite(userId); for (Map map : list) { @@ -251,7 +244,7 @@ } sql.append("where k.STATE=1 "); sql.append("order by k.CREATE_TIME desc) t "); - + return baseDao.queryForInteger(sql.toString()); } @@ -277,12 +270,12 @@ sql.append("and k.THIRD_CATEGORY_ID=:category_id "); } sql.append("order by k.CREATE_TIME desc) t "); - + SqlParameter param = new SqlParameter(); param.addValue("category_id", categoryId); param.addValue("userId", userId); param.addValue("cusId", cusId); - + return baseDao.queryForInteger(sql.toString(), param); } @@ -303,7 +296,7 @@ StringBuilder sql = new StringBuilder(); sql.append("select t.ID,t.TITLE,t.TAG,t.SUMMARY,t.CREATE_TIME,t.CREATE_USER_NAME,t.IS_EDITOR,t.STATE from ( "); sql.append("select DISTINCT k.ID,k.TITLE,k.TAG,k.SUMMARY,k.CREATE_TIME,k.CREATE_USER_NAME,k.IS_EDITOR,p.STATE "); - + if(StringUtil.isEmpty(cusId)){ sql.append("from km_library k "); }else{ @@ -327,7 +320,7 @@ param.addValue("category_id", categoryId); param.addValue("userId", userId); param.addValue("cusId", cusId); - + List<Map> list = baseDao.queryForList(sql.toString(), param); List<Map> mylist = getmyFavourite(userId); for (Map map : list) { @@ -363,7 +356,7 @@ sql.append(" WHERE k.ID = :id "); SqlParameter param = new SqlParameter(); param.addValue("id", libraryId); - + Map map = baseDao.queryForMap(sql.toString(), param); List<Map> mylist = getmyFavourite(userId); List<Map> myrecord = getmyknowRecord(userId); @@ -393,18 +386,18 @@ } } map.put("tag_list", tagList); - + } - + //闄勪欢 map.put("file_list", fileService.getFileList(ConvertUtil.obj2StrBlank(map.get("FILE_ID")))); - - + + //鐭ヨ瘑鍏宠仈 String linksql = "select B.ID,B.TITLE from KM_LIBRARY_KNOWLEDGE A,KM_LIBRARY B where A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID=:library_id "; List<Map> linkList = baseDao.queryForList(linksql, new SqlParameter("library_id", libraryId)); map.put("link_list", linkList); - + //鍘嗗彶鐗堟湰鍒楄〃 String historySql = "select ID,VERSION,CREATE_USER_NAME,CREATE_TIME from KM_LIBRARY_HISTORY " +"where ORIGINAL_ID=:original_id and STATE=1 order by VERSION "; @@ -413,10 +406,10 @@ //鐐瑰嚮鎺掑悕 Map rankMap = this.getLibraryRankForHits(); map.put("RANK", rankMap.get(libraryId)); - + return map; } - + @Override public Map getLibraryZjbById(String libraryId, HttpServletRequest request) { String userId = WebUtil.getLoginedUserId(request); @@ -426,7 +419,7 @@ sql.append(" WHERE k.ID = :id "); SqlParameter param = new SqlParameter(); param.addValue("id", libraryId); - + Map map = baseDao.queryForMap(sql.toString(), param); List<Map> mylist = getmyFavourite(userId); for(Map mymap :mylist){ @@ -445,13 +438,13 @@ } } map.put("tag_list", tagList); - + } - + //闄勪欢 map.put("file_list", fileService.getFileList(ConvertUtil.obj2StrBlank(map.get("ID")))); - - + + //鐭ヨ瘑鍏宠仈 String linksql = "select B.ID,B.TITLE from KM_LIBRARY_KNOWLEDGE A,KM_LIBRARY B where A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID=:library_id "; List<Map> linkList = baseDao.queryForList(linksql, new SqlParameter("library_id", new KM_LIBRARY_TEMP(libraryId).getInstanceById().getOriginal_id())); @@ -459,7 +452,7 @@ linkList = baseDao.queryForList(linksql, new SqlParameter("library_id", libraryId)); } map.put("link_list", linkList); - + /*//鍘嗗彶鐗堟湰鍒楄〃 String historySql = "select ID,VERSION from KM_LIBRARY_HISTORY " +"where ORIGINAL_ID=:original_id and STATE=1 order by VERSION "; @@ -468,10 +461,10 @@ //鐐瑰嚮鎺掑悕 Map rankMap = this.getLibraryRankForHits(); map.put("RANK", rankMap.get(libraryId));*/ - + return map; } - + /** * 鑾峰彇鏂囧簱鐐瑰嚮鎺掑悕 * @param partnerId @@ -479,16 +472,16 @@ */ private Map getLibraryRankForHits() { Map resultMap = new HashMap(); - + String sql = "select ID,HITS from km_library where STATE=1 order by HITS desc "; - + List<Map> list = baseDao.queryForList(sql); if (list != null && list.size() > 0) { for (int i=0; i<list.size(); i++) { resultMap.put(list.get(i).get("ID"), i+1); } } - + return resultMap; } @@ -496,7 +489,7 @@ public boolean addMyLibraryFavourite(String libraryId, String userId) { KM_LIBRARY_FAVORITE fav = new KM_LIBRARY_FAVORITE().setLibrary_id(libraryId) .setCreate_user_id(userId).queryForBean(); - + if (fav != null && fav.getCreate_time() > 0) { return false;//涓嶉噸澶嶆敹钘� } else { @@ -513,12 +506,12 @@ //鍩烘湰淇℃伅 StringBuilder sql = new StringBuilder("select ID,TITLE,TAG,SUMMARY,CONTENT,CATEGORY_ID,CATEGORY_NAME,CREATE_USER_ID,CREATE_USER_NAME,CREATE_TIME,VERSION,HITS,STATE,FILE_ID "); sql.append("from km_library_history where ID=:id "); - + SqlParameter param = new SqlParameter(); param.addValue("id", historyId); - + Map map = baseDao.queryForMap(sql.toString(), param); - + //鏍囩 String tag = ConvertUtil.obj2Str(map.get("TAG")); if (tag != null) { @@ -531,17 +524,17 @@ } map.put("tag_list", tagList); } - + //闄勪欢 map.put("file_list", fileService.getFileList(ConvertUtil.obj2StrBlank(map.get("FILE_ID")))); - - + + //鐭ヨ瘑鍏宠仈 String linksql = "select B.ID,B.TITLE from KM_LIBRARY_KNOWLEDGE_TEMP A,KM_LIBRARY B where A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID=:library_id "; List<Map> linkList = baseDao.queryForList(linksql, new SqlParameter("library_id", historyId)); map.put("link_list", linkList); - - + + return map; } @@ -549,26 +542,26 @@ public Map thirdlevelListTree(HttpServletRequest request) { String category_id = request.getParameter("category_id"); String cusId = request.getParameter("cusId"); - StringBuilder sql=new StringBuilder("SELECT A.* ,COUNT(B.ID) AS NUM FROM CMDB_CI_CATEGORY A LEFT JOIN "); - + StringBuilder sql=new StringBuilder("SELECT A.ID,A.PID,A.TYPE,A.NAME,A.CODE,A.LV,A.SERIAL,A.STATE,A.LV1_ID,A.LV1_NAME,A.LV2_ID,A.LV2_NAME,A.LV3_ID,A.LV3_NAME,A.FULL_ID,A.FULL_NAME,A.CATE_TYPE,COUNT(B.ID) AS NUM FROM CMDB_CI_CATEGORY A LEFT JOIN "); + if(StringUtil.isEmpty(cusId)){ sql.append(" KM_LIBRARY B ON A.ID = B.THIRDLEVEL_ID AND B.STATE = 1 "); }else{ sql.append(" (SELECT C.* FROM KM_LIBRARY C,KM_LIBRARY_KNOWLEDGE_ACCESS D WHERE C.ID = D.KNOWLEDGE_ID AND D.CUSTOMER_ID = :cusId) B ON A.ID = B.THIRDLEVEL_ID and B.STATE = 1"); } - sql.append(" WHERE A.STATE = 1 and a.cate_type=1 GROUP BY A.ID ORDER BY A.LV,A.SERIAL,A.NAME"); + sql.append(" WHERE A.STATE = 1 and a.cate_type=1 GROUP BY A.ID,A.PID,A.TYPE,A.NAME,A.CODE,A.LV,A.SERIAL,A.STATE,A.LV1_ID,A.LV1_NAME,A.LV2_ID,A.LV2_NAME,A.LV3_ID,A.LV3_NAME,A.FULL_ID,A.FULL_NAME,A.CATE_TYPE ORDER BY A.LV,A.SERIAL,A.NAME"); List<Map> categoryList = baseDao.queryForList(sql.toString(),new SqlParameter("cusId",cusId)); - + Map result = new HashMap(); - + List<Map> resultList = new LinkedList<Map>(); - + Map<String, Map> yjgnCache = new HashMap<String, Map>(); Map<String, Map> ejgnCache = new HashMap<String, Map>(); Map<String, Map> sjgnCache = new HashMap<String, Map>(); - + for (Map map : categoryList) { - + //涓�绾ф爲 if (map.get("LV").toString().equalsIgnoreCase("1")) { yjgnCache.put(map.get("ID").toString(), map); @@ -583,7 +576,7 @@ List<Map> list = (List<Map>)yjgnMap.get("ejTree"); map.put("sjTree", new LinkedList<Map>()); list.add(map); - + ejgnCache.put(map.get("ID").toString(), map); continue; } @@ -593,7 +586,7 @@ map.put("select", 1); } if(null!=map.get("PID")){ - + Map ejgnMap = ejgnCache.get(map.get("PID").toString()); List<Map> list = (List<Map>)ejgnMap.get("sjTree"); list.add(map); @@ -610,29 +603,29 @@ String category_id = request.getParameter("category_id"); String cusId = request.getParameter("cusId"); String type = request.getParameter("type"); - StringBuffer sql = new StringBuffer("SELECT D.*,COUNT(B.ID) AS NUM FROM ("); + StringBuffer sql = new StringBuffer("SELECT D.ID,D.CATEGORY_CODE,D.CATEGORY_NAME,D.LEVEL,D.P_ID,D.STATE,D.SERIAL,D.TYPE, D.PHOTOPATH,COUNT(B.ID) AS NUM FROM ("); String sqlpart="SELECT * FROM SC_SERVCE_CATEGORY WHERE STATE = 1 AND TYPE = 2 ORDER BY LEVEL,SERIAL "; sql.append(sqlpart); sql.append(" ) D LEFT JOIN "); - + if(StringUtil.isEmpty(cusId)){ sql.append(" KM_LIBRARY B ON D.ID = B.THIRD_CATEGORY_ID and B.STATE = 1 "); }else{ sql.append(" (SELECT C.* FROM KM_LIBRARY C,KM_LIBRARY_KNOWLEDGE_ACCESS D WHERE C.ID = D.KNOWLEDGE_ID AND D.CUSTOMER_ID = :cusId) B ON D.ID = B.THIRD_CATEGORY_ID and B.STATE = 1"); } - sql.append(" GROUP BY D.ID ORDER BY D.LEVEL,D.SERIAL,D.CATEGORY_NAME"); + sql.append(" GROUP BY D.ID,D.CATEGORY_CODE,D.CATEGORY_NAME,D.LEVEL,D.P_ID,D.STATE,D.SERIAL,D.TYPE, D.PHOTOPATH ORDER BY D.LEVEL,D.SERIAL,D.CATEGORY_NAME"); List<Map> categoryList = baseDao.queryForList(sql.toString(),new SqlParameter("cusId",cusId)); - + Map result = new HashMap(); - + List<Map> resultList = new LinkedList<Map>(); - + Map<String, Map> yjgnCache = new HashMap<String, Map>(); Map<String, Map> ejgnCache = new HashMap<String, Map>(); Map<String, Map> sjgnCache = new HashMap<String, Map>(); - + for (Map map : categoryList) { - + //涓�绾ф爲 if (map.get("LEVEL").toString().equalsIgnoreCase("1")) { yjgnCache.put(map.get("ID").toString(), map); @@ -647,7 +640,7 @@ List<Map> list = (List<Map>)yjgnMap.get("ejTree"); map.put("sjTree", new LinkedList<Map>()); list.add(map); - + ejgnCache.put(map.get("ID").toString(), map); continue; } @@ -657,7 +650,7 @@ map.put("select", 1); } if(null!=map.get("P_ID")){ - + Map ejgnMap = ejgnCache.get(map.get("P_ID").toString()); List<Map> list = (List<Map>)ejgnMap.get("sjTree"); list.add(map); -- Gitblit v1.9.1