package cn.ksource.web.facade.knowledge; import cn.ksource.beans.*; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.AjaxUtil; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.DateUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.SysInfoMsg; import cn.ksource.web.Constants; import cn.ksource.web.facade.knowledge.knowledgeDeal.KnowledgeDealFacade; import cn.ksource.web.service.file.FileService; import cn.ksource.web.service.knowledge.KmRecordService; import cn.ksource.web.service.knowledge.KmService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.util.*; @Service("kmLibraryFacade") public class KmLibraryFacadeImpl implements KmLibraryFacade { @Autowired private BaseDao baseDao; @Autowired private FileService fileService; @Autowired private KmService kmService; @Autowired private KnowledgeDealFacade knowledgeDealFacade; @Autowired private KmRecordService kmRecordService; /** * 查询知识分类树 */ @Override public List querycategory(Map param) { //Map paramMap = new HashMap(); String selectSubSql = "SELECT * FROM KM_LIBRARY_CATEGORY WHERE STATE=1 ORDER BY LEVEL,SERIAL,TITLE"; List subCus = baseDao.queryForList(selectSubSql,param); Map result = new HashMap(); List resultList = new LinkedList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : subCus) { //一级树 if (map.get("LEVEL").toString().equalsIgnoreCase("1")) { yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (map.get("LEVEL").toString().equalsIgnoreCase("2")) { String pId = map.get("TAG").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(map.get("ID").toString(), map); } continue; } //三级树 if (map.get("LEVEL").toString().equalsIgnoreCase("3")) { if(null!=map.get("TAG")){ String pId = map.get("TAG").toString(); if(ejgnCache.containsKey(pId)) { Map ejgnMap = ejgnCache.get(map.get("TAG").toString()); List list = (List)ejgnMap.get("sjTree"); list.add(map); } } } } return resultList; } /** * 查询知识分类列表 */ @Override public PageInfo queryknowcateList(String id,PageInfo pageInfo) { String selectSql = "SELECT * FROM KM_LIBRARY_CATEGORY WHERE 1=1 "; if(StringUtil.isEmpty(id)){ selectSql +=" AND (TAG is null or TAG = '') "; }else{ selectSql +=" AND TAG = :id "; } selectSql += " ORDER BY SERIAL "; Map param = new HashMap(); param.put("id", id); PageInfo pageInfos = baseDao.queryforSplitPageInfo(pageInfo, selectSql, param); if(pageInfos.getDatas().size() > 0){ for(Map map:pageInfos.getDatas()){ map.put("CREATE_TIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", map.get("CREATE_TIME"))); } } return pageInfos; } /** * 获取知识分类总数 */ @Override public int queryZsflCount(String pId) { String selectSql = "SELECT COUNT(ID) FROM KM_LIBRARY_CATEGORY WHERE 1=1 "; if(StringUtil.isEmpty(pId)){ selectSql +=" AND (TAG is null or TAG = '') "; }else{ selectSql +=" AND TAG = :id "; } Map param = new HashMap(); param.put("id", pId); int count = baseDao.queryForInteger(selectSql.toString(),param); return count; } /** * 验证分类名称 */ @Override public List checkForTitle(Map param) { String pId = param.get("pId"); String id = param.get("id"); String title = AjaxUtil.decode(param.get("title")); String sql = "select * from KM_LIBRARY_CATEGORY WHERE TITLE=:title "; if(StringUtil.isBlank(pId)||"0".equals(pId)){ sql = sql + " AND (TAG is null or TAG = '')"; }else{ sql = sql + " AND TAG=:sjbh "; } if(!StringUtil.isBlank(id)){ sql = sql + " AND ID <> :id "; } //Map paraMap = new HashMap(); param.put("title", title); param.put("sjbh", pId); param.put("id", id); return baseDao.queryForList(sql,param); } /** * 保存知识分类 */ @Override public void saveknowcategory(Map param) { KM_LIBRARY_CATEGORY km_library_category = new KM_LIBRARY_CATEGORY(); String level = param.get("LEVEL");//新增使用 String tag = param.get("TAG");//新增使用 String title = param.get("title"); String note = param.get("note"); String serial = param.get("serial"); String id = param.get("id"); //String userId = WebUtil.getLoginedUserId(request) ; String userId = param.get("userId"); String userName = ConvertUtil.obj2Str(param.get("userName")); if (StringUtils.isBlank(id)) {//new km_library_category.setCreate_user_id(userId); km_library_category.setCreate_user_name(userName); if(!"0".equals(tag)){ km_library_category.setTag(tag); } km_library_category.setCreate_time(DateUtil.getCurrentDate14()); km_library_category.setState(1); km_library_category.setLevel((Integer.parseInt(level)+1)); }else{ km_library_category.setId(id); } km_library_category.setTitle(title); km_library_category.setNote(note); km_library_category.setSerial(ConvertUtil.obj2Integer(serial)); km_library_category.insertOrUpdate(); } /** * 修改顺序号 */ @Override public int updatenum(HttpServletRequest request) { String ids = request.getParameter("ids"); String nums = request.getParameter("nums"); String[] id = ids.split(","); String[] num = nums.split(","); List paramList = new ArrayList(); for(int i =0 ;i queryCategoryList(String p_id) { String sql = "select ID FROM KM_LIBRARY_CATEGORY WHERE TAG = :p_id"; List catgoryList = baseDao.queryForList(sql, new SqlParameter("p_id",p_id)); return catgoryList; } /** * 修改知识分类状态 * @param id * @param state */ @Override public void updateState(String id, String state) { List paramList = new ArrayList(); Map map5 = new HashMap(); map5.put("id", id); map5.put("state", state); paramList.add(map5); if("2".equals(state)){ List categoryList = this.queryCategoryList(id); if(null!=categoryList){ for (Map map : categoryList) { String p_id = ConvertUtil.obj2Str(map.get("ID")); Map map3 = new HashMap(); map3.put("id", p_id); map3.put("state", state); paramList.add(map3); List categorys = this.queryCategoryList(p_id); if(null!=categorys){ for (Map map2 : categorys) { String third_id = ConvertUtil.obj2Str(map2.get("ID")); Map map4 = new HashMap(); map4.put("id", third_id); map4.put("state", state); paramList.add(map4); } } } } } String sql = "update KM_LIBRARY_CATEGORY set STATE=:state where ID=:id"; baseDao.executeBatch(sql, paramList); } @Override public int getMyCreateKnowCount(Map params) { StringBuilder sql = new StringBuilder("SELECT COUNT(DISTINCT K.ID) FROM ( "); sql.append("( SELECT ID, TITLE, TAG, SUMMARY, CONTENT, CATEGORY_ID, CATEGORY_NAME, CREATE_USER_ID, CREATE_USER_NAME, CREATE_TIME, STATE, VERSION, HITS, IS_EDITOR, THIRDLEVEL_NAME, THIRDLEVEL_ID, FIRST_CATEGORY_ID, FIRST_CATEGORY_NAME, SECOND_CATEGORY_ID, SECOND_CATEGORY_NAME, THIRD_CATEGORY_ID, THIRD_CATEGORY_NAME, UPDATE_DATE, UPDATER_ID, UPDATE_NAME, SECOND_KNOWCATEGORY_ID, SECOND_KNOWCATEGORY_NAME, FIRST_KNOWCATEGORY_ID, FIRST_KNOWCATEGORY_NAME, SECONDLEVEL_NAME, SECONDLEVEL_ID, FIRSTLEVEL_NAME, FIRSTLEVEL_ID, ACCESS_TYPE, AUDIT_STATE FROM km_library_temp WHERE km_library_temp.CONTENT_STATE = 1 ) "); sql.append(" UNION ALL( SELECT ID, TITLE, TAG, SUMMARY, CONTENT, CATEGORY_ID, CATEGORY_NAME, CREATE_USER_ID, CREATE_USER_NAME, CREATE_TIME, STATE, VERSION, HITS, IS_EDITOR, THIRDLEVEL_NAME, THIRDLEVEL_ID, FIRST_CATEGORY_ID, FIRST_CATEGORY_NAME, SECOND_CATEGORY_ID, SECOND_CATEGORY_NAME, THIRD_CATEGORY_ID, THIRD_CATEGORY_NAME, UPDATE_DATE, UPDATER_ID, UPDATE_NAME, SECOND_KNOWCATEGORY_ID, SECOND_KNOWCATEGORY_NAME, FIRST_KNOWCATEGORY_ID, FIRST_KNOWCATEGORY_NAME, SECONDLEVEL_NAME, SECONDLEVEL_ID, FIRSTLEVEL_NAME, FIRSTLEVEL_ID, ACCESS_TYPE, 2 AS AUDIT_STATE FROM km_library )"); sql.append(") K WHERE K.STATE=1 AND K.CREATE_USER_ID=:loginUserId"); queryMyCreateKnowIf(params,sql); return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo getMyCreateKnowData(Map params,PageInfo pageInfo) { StringBuilder sql = new StringBuilder("SELECT k.* FROM ( "); sql.append("( SELECT ID, TITLE, TAG, SUMMARY, CONTENT, CATEGORY_ID, CATEGORY_NAME, CREATE_USER_ID, CREATE_USER_NAME, CREATE_TIME, STATE, VERSION, HITS, IS_EDITOR, THIRDLEVEL_NAME, THIRDLEVEL_ID, FIRST_CATEGORY_ID, FIRST_CATEGORY_NAME, SECOND_CATEGORY_ID, SECOND_CATEGORY_NAME, THIRD_CATEGORY_ID, THIRD_CATEGORY_NAME, UPDATE_DATE, UPDATER_ID, UPDATE_NAME, SECOND_KNOWCATEGORY_ID, SECOND_KNOWCATEGORY_NAME, FIRST_KNOWCATEGORY_ID, FIRST_KNOWCATEGORY_NAME, SECONDLEVEL_NAME, SECONDLEVEL_ID, FIRSTLEVEL_NAME, FIRSTLEVEL_ID, ACCESS_TYPE, AUDIT_STATE FROM km_library_temp WHERE km_library_temp.CONTENT_STATE = 1 ) "); sql.append(" UNION ALL( SELECT ID, TITLE, TAG, SUMMARY, CONTENT, CATEGORY_ID, CATEGORY_NAME, CREATE_USER_ID, CREATE_USER_NAME, CREATE_TIME, STATE, VERSION, HITS, IS_EDITOR, THIRDLEVEL_NAME, THIRDLEVEL_ID, FIRST_CATEGORY_ID, FIRST_CATEGORY_NAME, SECOND_CATEGORY_ID, SECOND_CATEGORY_NAME, THIRD_CATEGORY_ID, THIRD_CATEGORY_NAME, UPDATE_DATE, UPDATER_ID, UPDATE_NAME, SECOND_KNOWCATEGORY_ID, SECOND_KNOWCATEGORY_NAME, FIRST_KNOWCATEGORY_ID, FIRST_KNOWCATEGORY_NAME, SECONDLEVEL_NAME, SECONDLEVEL_ID, FIRSTLEVEL_NAME, FIRSTLEVEL_ID, ACCESS_TYPE, 2 AS AUDIT_STATE FROM km_library )"); sql.append(" ) K WHERE K.STATE=1 AND K.CREATE_USER_ID=:loginUserId "); queryMyCreateKnowIf(params, sql); sql.append(" ORDER BY K.AUDIT_STATE ASC,K.CREATE_TIME DESC"); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List datas = info.getDatas(); if(datas.size()>0){ List filesList = baseDao.queryForList("SELECT * FROM GG_FILES"); Map cachefile = new HashMap(); for(Map file:filesList){ if(!cachefile.containsKey(file.get("BUSINESS_ID"))){ cachefile.put(file.get("BUSINESS_ID"), file); } } for(Map map:datas){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(datas); return info; } private void queryMyCreateKnowIf(Map params, StringBuilder sql) { String title = params.get("title"); String keyword = params.get("keyword"); String sl = params.get("sl"); if(StringUtil.notEmpty(sl)) { String[] sls = sl.split(","); if(sls.length==1) { sql.append(" AND K.THIRD_CATEGORY_ID = :third_category_id"); params.put("third_category_id", sls[0]); } else { sql.append(" AND K.THIRD_CATEGORY_ID IN ("); for(int i=0; i params) { StringBuilder sql = new StringBuilder("SELECT COUNT(K.ID) FROM ( "); sql.append("( SELECT ID, TITLE, TAG, SUMMARY, CONTENT, CATEGORY_ID, CATEGORY_NAME, CREATE_USER_ID, CREATE_USER_NAME, CREATE_TIME, STATE, VERSION, HITS, IS_EDITOR, THIRDLEVEL_NAME, THIRDLEVEL_ID, FIRST_CATEGORY_ID, FIRST_CATEGORY_NAME, SECOND_CATEGORY_ID, SECOND_CATEGORY_NAME, THIRD_CATEGORY_ID, THIRD_CATEGORY_NAME, UPDATE_DATE, UPDATER_ID, UPDATE_NAME, SECOND_KNOWCATEGORY_ID, SECOND_KNOWCATEGORY_NAME, FIRST_KNOWCATEGORY_ID, FIRST_KNOWCATEGORY_NAME, SECONDLEVEL_NAME, SECONDLEVEL_ID, FIRSTLEVEL_NAME, FIRSTLEVEL_ID, ACCESS_TYPE, AUDIT_STATE FROM km_library_temp WHERE km_library_temp.CONTENT_STATE = 2 AND km_library_temp.UPDATER_ID = :loginUserId ) "); sql.append(" UNION ALL( SELECT B.ID, B.TITLE, B.TAG, B.SUMMARY, B.CONTENT, B.CATEGORY_ID, B.CATEGORY_NAME, B.CREATE_USER_ID, B.CREATE_USER_NAME, B.CREATE_TIME, B.STATE, B.VERSION, B.HITS, B.IS_EDITOR, B.THIRDLEVEL_NAME, B.THIRDLEVEL_ID, B.FIRST_CATEGORY_ID, B.FIRST_CATEGORY_NAME, B.SECOND_CATEGORY_ID, B.SECOND_CATEGORY_NAME, B.THIRD_CATEGORY_ID, B.THIRD_CATEGORY_NAME, F.TIME AS UPDATE_DATE, B.UPDATER_ID, B.UPDATE_NAME, B.SECOND_KNOWCATEGORY_ID, B.SECOND_KNOWCATEGORY_NAME, B.FIRST_KNOWCATEGORY_ID, B.FIRST_KNOWCATEGORY_NAME, B.SECONDLEVEL_NAME, B.SECONDLEVEL_ID, B.FIRSTLEVEL_NAME, B.FIRSTLEVEL_ID, B.ACCESS_TYPE, 2 AS AUDIT_STATE FROM (SELECT E.LIBRARY_ID,E.type,E.USER_ID,MAX(E.EDITOR_DATE) AS TIME FROM KM_LIBRARY_UPDATER E WHERE E.USER_ID =:loginUserId GROUP BY E.LIBRARY_ID,E.type,E.USER_ID) F,KM_LIBRARY B WHERE F.LIBRARY_ID=B.ID AND B.STATE=1 AND F.USER_ID=:loginUserId AND F.TYPE = 2 AND B.ID NOT IN (SELECT G.ORIGINAL_ID FROM KM_LIBRARY_TEMP G WHERE G.AUDIT_STATE = 1 AND G.CONTENT_STATE =2))"); sql.append(" ) K WHERE K.STATE=1 "); queryMyEditKnowIf(params,sql); return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo getMyEditKnowData(Map params, PageInfo pageInfo) { StringBuilder sql = new StringBuilder("SELECT K.* FROM ( "); sql.append("( SELECT ID, TITLE, TAG, SUMMARY, CONTENT, CATEGORY_ID, CATEGORY_NAME, CREATE_USER_ID, CREATE_USER_NAME, CREATE_TIME, STATE, VERSION, HITS, IS_EDITOR, THIRDLEVEL_NAME, THIRDLEVEL_ID, FIRST_CATEGORY_ID, FIRST_CATEGORY_NAME, SECOND_CATEGORY_ID, SECOND_CATEGORY_NAME, THIRD_CATEGORY_ID, THIRD_CATEGORY_NAME, UPDATE_DATE, UPDATER_ID, UPDATE_NAME, SECOND_KNOWCATEGORY_ID, SECOND_KNOWCATEGORY_NAME, FIRST_KNOWCATEGORY_ID, FIRST_KNOWCATEGORY_NAME, SECONDLEVEL_NAME, SECONDLEVEL_ID, FIRSTLEVEL_NAME, FIRSTLEVEL_ID, ACCESS_TYPE, AUDIT_STATE FROM km_library_temp WHERE km_library_temp.CONTENT_STATE = 2 AND km_library_temp.UPDATER_ID = :loginUserId ) "); sql.append(" UNION ALL( SELECT B.ID, B.TITLE, B.TAG, B.SUMMARY, B.CONTENT, B.CATEGORY_ID, B.CATEGORY_NAME, B.CREATE_USER_ID, B.CREATE_USER_NAME, B.CREATE_TIME, B.STATE, B.VERSION, B.HITS, B.IS_EDITOR, B.THIRDLEVEL_NAME, B.THIRDLEVEL_ID, B.FIRST_CATEGORY_ID, B.FIRST_CATEGORY_NAME, B.SECOND_CATEGORY_ID, B.SECOND_CATEGORY_NAME, B.THIRD_CATEGORY_ID, B.THIRD_CATEGORY_NAME, F.TIME AS UPDATE_DATE, B.UPDATER_ID, B.UPDATE_NAME, B.SECOND_KNOWCATEGORY_ID, B.SECOND_KNOWCATEGORY_NAME, B.FIRST_KNOWCATEGORY_ID, B.FIRST_KNOWCATEGORY_NAME, B.SECONDLEVEL_NAME, B.SECONDLEVEL_ID, B.FIRSTLEVEL_NAME, B.FIRSTLEVEL_ID, B.ACCESS_TYPE, 2 AS AUDIT_STATE FROM (SELECT E.LIBRARY_ID,E.type,E.USER_ID,MAX(E.EDITOR_DATE) AS TIME FROM KM_LIBRARY_UPDATER E WHERE E.USER_ID =:loginUserId GROUP BY E.LIBRARY_ID,E.type,E.USER_ID) F,KM_LIBRARY B WHERE F.LIBRARY_ID=B.ID AND B.STATE=1 AND F.USER_ID=:loginUserId AND F.TYPE = 2 AND B.ID NOT IN (SELECT G.ORIGINAL_ID FROM KM_LIBRARY_TEMP G WHERE G.AUDIT_STATE = 1 AND G.CONTENT_STATE =2))"); sql.append(" ) K WHERE K.STATE=1 "); queryMyEditKnowIf(params, sql); sql.append(" ORDER BY K.UPDATE_DATE DESC"); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List datas = info.getDatas(); if(datas.size()>0){ List filesList = baseDao.queryForList("SELECT * FROM GG_FILES"); Map cachefile = new HashMap(); for(Map file:filesList){ if(!cachefile.containsKey(file.get("BUSINESS_ID"))){ cachefile.put(file.get("BUSINESS_ID"), file); } } for(Map map:datas){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(datas); return info; } private void queryMyEditKnowIf(Map params, StringBuilder sql) { String title = params.get("title"); String keyword = params.get("keyword"); String sl = params.get("sl"); if(StringUtil.notEmpty(sl)) { String[] sls = sl.split(","); if(sls.length==1) { sql.append(" AND k.THIRD_CATEGORY_ID = :third_category_id"); params.put("third_category_id", sls[0]); } else { sql.append(" AND k.THIRD_CATEGORY_ID IN ("); for(int i=0; i params) { StringBuilder sql = new StringBuilder("SELECT COUNT(DISTINCT K.ID) FROM KM_LIBRARY_FAVORITE F,KM_LIBRARY K WHERE F.LIBRARY_ID=K.ID AND K.STATE=1 AND F.CREATE_USER_ID=:loginUserId "); queryMyFavKnowIf(params,sql); return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo getMyFavKnowData(Map params, PageInfo pageInfo) { StringBuilder sql = new StringBuilder("SELECT K.*,F.CREATE_TIME AS FAV_TIME FROM KM_LIBRARY_FAVORITE F,KM_LIBRARY K WHERE F.LIBRARY_ID=K.ID AND K.STATE=1 AND F.CREATE_USER_ID=:loginUserId "); queryMyFavKnowIf(params, sql); sql.append(" ORDER BY F.CREATE_TIME DESC"); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List datas = info.getDatas(); if(datas.size()>0){ List filesList = baseDao.queryForList("SELECT * FROM GG_FILES"); Map cachefile = new HashMap(); for(Map file:filesList){ if(!cachefile.containsKey(file.get("BUSINESS_ID"))){ cachefile.put(file.get("BUSINESS_ID"), file); } } for(Map map:datas){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(datas); return info; } private void queryMyFavKnowIf(Map params, StringBuilder sql) { String title = params.get("title"); String keyword = params.get("keyword"); String sl = params.get("sl"); if(StringUtil.notEmpty(sl)) { String[] sls = sl.split(","); if(sls.length==1) { sql.append(" AND k.THIRD_CATEGORY_ID = :third_category_id"); params.put("third_category_id", sls[0]); } else { sql.append(" AND k.THIRD_CATEGORY_ID IN ("); for(int i=0; i params) { StringBuilder sql = new StringBuilder("SELECT COUNT(DISTINCT K.ID) FROM KM_LIBRARY K LEFT JOIN KM_LIBRARY_TEMP F ON K.ID = F.ORIGINAL_ID WHERE 1=1 "); queryMyKnowIf(params,sql); return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo getMyKnowData(Map params, PageInfo pageInfo) { StringBuilder sql = new StringBuilder("SELECT K.*,K.STATE K_STATE,F.AUDIT_STATE STATE FROM KM_LIBRARY K LEFT JOIN KM_LIBRARY_TEMP F ON K.ID = F.ORIGINAL_ID WHERE 1=1 "); queryMyKnowIf(params, sql); sql.append(" ORDER BY K.STATE,K.CREATE_TIME DESC"); return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); } private void queryMyKnowIf(Map params, StringBuilder sql) { String title = params.get("title"); String keyword = params.get("keyword"); String sl = params.get("sl"); if(StringUtil.notEmpty(sl)) { String[] sls = sl.split(","); if(sls.length==1) { sql.append(" AND K.THIRD_CATEGORY_ID = :third_category_id"); params.put("third_category_id", sls[0]); } else { sql.append(" AND K.THIRD_CATEGORY_ID IN ("); for(int i=0; i params) { StringBuilder sql = new StringBuilder("SELECT COUNT(DISTINCT K.ID) FROM KM_LIBRARY_TEMP K WHERE K.STATE=1 AND K.CREATE_USER_ID=:loginUserId "); queryMyDshKnowIf(params,sql); return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo queryMyDshKnowData(PageInfo pageInfo, Map params) { StringBuilder sql = new StringBuilder("SELECT DISTINCT K.* FROM KM_LIBRARY_TEMP K WHERE K.STATE=1 AND K.CREATE_USER_ID=:loginUserId "); queryMyDshKnowIf(params, sql); sql.append(" ORDER BY K.AUDIT_STATE,K.CREATE_TIME DESC"); return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); } private void queryMyDshKnowIf(Map params, StringBuilder sql) { String title = params.get("title"); String keyword = params.get("keyword"); String state = params.get("state"); String sl = params.get("sl"); if(StringUtil.notEmpty(sl)) { String[] sls = sl.split(","); if(sls.length==1) { sql.append(" AND K.THIRD_CATEGORY_ID = :third_category_id"); params.put("third_category_id", sls[0]); } else { sql.append(" AND K.THIRD_CATEGORY_ID IN ("); for(int i=0; i knowList = baseDao.queryForList("SELECT B.* FROM KM_LIBRARY_KNOWLEDGE A,KM_LIBRARY B WHERE A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID = :business_id", new SqlParameter("business_id",id)); knowMap.put("knowList", knowList); //用户可见权限 用户 List cusList = baseDao.queryForList("SELECT * FROM KM_LIBRARY_KNOWLEDGE_ACCESS WHERE KNOWLEDGE_ID = :id", new SqlParameter().addValue("id", knowMap.get("ID"))); String cusIdStr = new String(); String cusListStr = new String(); if(cusList.size() > 0){ for (Map map : cusList) { cusIdStr += map.get("CUSTOMER_ID") + ","; cusListStr += map.get("CUSTOMER_NAME") + ","; } knowMap.put("cusIdStr", cusIdStr.substring(0, cusIdStr.length()-1)); knowMap.put("cusListStr", cusListStr.substring(0, cusListStr.length()-1)); }else{ knowMap.put("cusIdStr", cusIdStr); knowMap.put("cusListStr", cusListStr); } //文件 List fileList = fileService.getFileList(ConvertUtil.obj2StrBlank(knowMap.get("FILE_ID"))); knowMap.put("fileList", fileList); return knowMap; } @Override public void saveKnowledge(HttpServletRequest request, KM_LIBRARY km_library) { String serivceListId = request.getParameter("serivceListId"); String serivceList = request.getParameter("serivceList"); String category_id = request.getParameter("category_id"); String categoryList = request.getParameter("categoryList"); String thirdlevel_id = request.getParameter("thirdlevel_id"); String thirdlevelList = request.getParameter("thirdlevelList"); String first_category_id = new String(); String first_category_name = new String(); String second_category_id = new String(); String second_category_name = new String(); String third_category_id = new String(); String third_category_name = new String(); String categoryid = new String(); String category_name = new String(); String first_knowcategory_id = new String(); String first_knowcategory_name = new String(); String second_knowcategory_id = new String(); String second_knowcategory_name = new String(); String third_level_id = new String(); String third_level_name = new String(); String first_level_id = new String(); String first_level_name = new String(); String second_level_id = new String(); String second_level_name = new String(); if(StringUtil.notEmpty(serivceListId) && StringUtil.notEmpty(serivceList)) { String[] serivceListIds = serivceListId.split("-"); String[] serivceLists = serivceList.split("-"); first_category_id = serivceListIds[0]; first_category_name = serivceLists[0]; second_category_id = serivceListIds[1]; second_category_name = serivceLists[1]; third_category_id = serivceListIds[2]; third_category_name = serivceLists[2]; } if(StringUtil.notEmpty(category_id) && StringUtil.notEmpty(categoryList)) { String[] categoryListIds = category_id.split("-"); String[] categoryLists = categoryList.split("-"); if(categoryListIds.length>0){ first_knowcategory_id = categoryListIds[0]; first_knowcategory_name = categoryLists[0]; second_knowcategory_id = categoryListIds[1]; second_knowcategory_name = categoryLists[1]; categoryid = categoryListIds[2]; category_name = categoryLists[2]; } } if(StringUtil.notEmpty(thirdlevel_id) && StringUtil.notEmpty(thirdlevelList)) { String[] thirdListIds = thirdlevel_id.split("-"); String[] thirdLists = thirdlevelList.split("-"); if(thirdListIds.length>0){ first_level_id = thirdListIds[0]; first_level_name = thirdLists[0]; second_level_id = thirdListIds[1]; second_level_name = thirdLists[1]; third_level_id = thirdListIds[2]; third_level_name = thirdLists[2]; } } Integer access_type = ConvertUtil.obj2Integer(request.getParameter("isKj")); km_library.setFirst_knowcategory_id(first_knowcategory_id).setFirst_knowcategory_name(first_knowcategory_name) .setSecond_knowcategory_id(second_knowcategory_id).setSecond_knowcategory_name(second_knowcategory_name) .setCategory_id(categoryid).setCategory_name(category_name) .setFirstlevel_id(first_level_id).setFirstlevel_name(first_level_name) .setSecondlevel_id(second_level_id).setSecondlevel_name(second_level_name) .setThirdlevel_id(third_level_id).setThirdlevel_name(third_level_name) .setFirst_category_id(first_category_id).setFirst_category_name(first_category_name) .setSecond_category_id(second_category_id).setSecond_category_name(second_category_name) .setThird_category_id(third_category_id).setThird_category_name(third_category_name) .setAccess_type(access_type); km_library.insertOrUpdate(); //添加用户权限信息 String cusId = request.getParameter("cusId"); String cusList = request.getParameter("cusList"); if(access_type == 1){ //需要设置权限 KM_LIBRARY_KNOWLEDGE_ACCESS access = new KM_LIBRARY_KNOWLEDGE_ACCESS(); //每次重新存之前先删除先前的数据 baseDao.execute("DELETE FROM KM_LIBRARY_KNOWLEDGE_ACCESS WHERE KNOWLEDGE_ID = :knowId", new SqlParameter("knowId",km_library.getId())); String[] cusIdArray = cusId.split(","); String[] cusListArray = cusList.split(","); for (int i = 0; i < cusIdArray.length; i++) { access = new KM_LIBRARY_KNOWLEDGE_ACCESS(); access.setKnowledge_id(km_library.getId()).setCustomer_id(cusIdArray[i]).setCustomer_name(cusListArray[i]).insert(); } } //添加关联知识 //删除已存在的关联知识 baseDao.execute("DELETE FROM KM_LIBRARY_KNOWLEDGE WHERE LIBRARY_ID = :business_id ", new SqlParameter("business_id",km_library.getId())); String[] knowId = request.getParameterValues("knowId"); if(null!=knowId && knowId.length>0) { List paramList = new ArrayList(); for(String str : knowId) { SqlParameter sqlParameter = new SqlParameter(); sqlParameter.put("id", StringUtil.getUUID()); sqlParameter.put("library_id", km_library.getId()); sqlParameter.put("knowledge_id", str); paramList.add(sqlParameter); } String insertSql = "INSERT INTO KM_LIBRARY_KNOWLEDGE(ID,LIBRARY_ID,KNOWLEDGE_ID) VALUES (:id,:library_id,:knowledge_id)"; baseDao.executeBatch(insertSql, paramList); } //如果为空,给file_id赋值 km_library = new KM_LIBRARY().setId(km_library.getId()).getInstanceById(); if(StringUtil.isEmpty(km_library.getFile_id())){ km_library.setFile_id(km_library.getId()).update(); } fileService.uploadFile(request,km_library.getFile_id(),Constants.GG_FOLDERS_KNOWFOLDERS,Constants.FILE_STATE_SHTG,null); } @Override public int getMyKnowCxCount(Map params) { StringBuilder sql = new StringBuilder("SELECT COUNT(DISTINCT K.ID) FROM KM_LIBRARY K WHERE 1=1 "); queryMyKnowCxIf(params,sql); return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo getMyKnowCxData(Map params, PageInfo pageInfo) { StringBuilder sql = new StringBuilder("SELECT K.* FROM KM_LIBRARY K WHERE 1=1 "); queryMyKnowCxIf(params, sql); sql.append(" ORDER BY K.STATE,K.CREATE_TIME DESC"); return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); } private void queryMyKnowCxIf(Map params, StringBuilder sql) { String title = params.get("title"); String keyword = params.get("keyword"); String sl = params.get("sl"); if(StringUtil.notEmpty(sl)) { String[] sls = sl.split(","); if(sls.length==1) { sql.append(" AND K.THIRD_CATEGORY_ID = :third_category_id"); params.put("third_category_id", sls[0]); } else { sql.append(" AND K.THIRD_CATEGORY_ID IN ("); for(int i=0; i params = new HashMap(); params.put("library_id", id); params.put("userId", knowledge.getCreate_user_id()); params.put("type", ConvertUtil.obj2StrBlank(Constants.KM_SCORE_RULE_TYPE_JH)); kmRecordService.addrecord(params); } } return 1; } @Override public int updatetop(String id,String state) { KM_LIBRARY knowledge = new KM_LIBRARY(id).getInstanceById(); knowledge.setId(id).setIs_top(ConvertUtil.obj2Integer(state)).update(); if(state.equals("1")){ String sql = "SELECT COUNT(ID) FROM KM_RECORD WHERE LIBRARY_ID = :library_id AND TYPE = :type "; Map param = new HashMap(); param.put("library_id", id); param.put("type", Constants.KM_SCORE_RULE_TYPE_ZJ); int count = baseDao.queryForInteger(sql, param); if(count == 0){ Map params = new HashMap(); params.put("library_id", id); params.put("userId", knowledge.getCreate_user_id()); params.put("type", ConvertUtil.obj2StrBlank(Constants.KM_SCORE_RULE_TYPE_ZJ)); kmRecordService.addrecord(params); } } return 1; } @Override public int getMyKnowTypeCount(Map params) { StringBuilder sql = new StringBuilder("SELECT COUNT(D.ID) FROM ( "); sql = sql.append(getknowtypesql(params)); sql.append(" ) D "); return baseDao.queryForInteger(sql.toString(),params); } @Override public PageInfo getMyKnowTypeData(Map params, PageInfo pageInfo) { StringBuilder sql = getknowtypesql(params); sql.append(" ORDER BY A.UPDATE_DATE DESC "); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List datas = info.getDatas(); if(datas.size()>0){ List filesList = baseDao.queryForList("SELECT * FROM GG_FILES"); Map cachefile = new HashMap(); for(Map file:filesList){ if(!cachefile.containsKey(file.get("BUSINESS_ID"))){ cachefile.put(file.get("BUSINESS_ID"), file); } } for(Map map:datas){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(datas); return info; } public StringBuilder getknowtypesql(Map params){ StringBuilder sql = new StringBuilder("SELECT A.* FROM KM_LIBRARY A,KM_RECORD B WHERE A.CREATE_USER_ID = :userId AND A.STATE = 1 AND A.ID = B.LIBRARY_ID AND B.TYPE = :type "); String title = params.get("title"); String keyword = params.get("keyword"); String sl = params.get("sl"); String type = params.get("type"); if(StringUtil.notEmpty(sl)) { String[] sls = sl.split(","); if(sls.length==1) { sql.append(" AND K.THIRD_CATEGORY_ID = :third_category_id"); params.put("third_category_id", sls[0]); } else { sql.append(" AND K.THIRD_CATEGORY_ID IN ("); for(int i=0; i params) { String sql = "SELECT COUNT(ID) FROM KM_RECORD WHERE USER_ID = :userId "; return baseDao.queryForInteger(sql,params); } @Override public PageInfo getMyKnowJfData(Map params, PageInfo pageInfo) { String sql = "SELECT A.*,B.TITLE FROM KM_RECORD A,KM_LIBRARY B WHERE A.USER_ID = :userId AND A.LIBRARY_ID = B.ID ORDER BY A.CREATE_TIME DESC "; return baseDao.queryforSplitPageInfo(pageInfo, sql, params); } @Override public Map getUserJfMsg(String userId) { GG_USER user = new GG_USER(userId).getInstanceById(); if(StringUtil.isEmpty(ConvertUtil.obj2StrBlank(user.getKm_score()))){ user.setKm_score(0); } Map msg = new HashMap(); msg.put("SCORE", user.getKm_score()); String sql = "SELECT * FROM KM_EXPERT_LEVEL_RULE ORDER BY SCORE "; List list = baseDao.queryForList(sql); Map cacheMap = new HashMap(); for(Map map:list){ int score = ConvertUtil.obj2Int(map.get("SCORE")); cacheMap.put(map.get("TYPE"),score); } if(cacheMap.size() != 0){ if(user.getKm_score() < ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ))){ msg.put("DQDJ", ""); msg.put("XYDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)); msg.put("SXJF",ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ))-user.getKm_score()); } if(user.getKm_score() >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)) && user.getKm_score()< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ))){ msg.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)); msg.put("XYDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)); msg.put("SXJF",ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ))-user.getKm_score()); } if(user.getKm_score() >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)) && user.getKm_score()< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ))){ msg.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)); msg.put("XYDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)); msg.put("SXJF",ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ))-user.getKm_score()); } if(user.getKm_score() >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)) && user.getKm_score()< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))){ msg.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)); msg.put("XYDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ)); msg.put("SXJF",ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))-user.getKm_score()); } if(user.getKm_score() >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))){ msg.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ)); msg.put("XYDJ", ""); msg.put("SXJF",""); msg.put("TYPE", Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ); } } return msg; } @Override public List QueryMainKnowList(Map params,int num) { Map param = new HashMap(); param.put("num", num); String type = params.get("type"); StringBuilder sql = new StringBuilder("SELECT ID,TITLE,TAG,SUMMARY,CREATE_USER_NAME,HITS,CREATE_TIME FROM KM_LIBRARY WHERE STATE = 1 "); if("new".equals(type)){ sql.append(" ORDER BY CREATE_TIME DESC "); } if("jh".equals(type)){ sql.append(" AND IS_ESSENCE = 1 ORDER BY CREATE_TIME DESC "); } if("top".equals(type)){ sql.append(" AND IS_TOP = 1 ORDER BY CREATE_TIME DESC "); } if("hot".equals(type)){ sql.append(" ORDER BY HITS DESC "); } sql.append(" LIMIT 0,:num "); List knowList = baseDao.queryForList(sql.toString(),param); List mylist = kmService.getmyFavourite(params.get("userId")); List myrecord = kmService.getmyknowRecord(params.get("userId")); for (Map map : knowList) { for(Map mymap :mylist){ if(map.get("ID").equals(mymap.get("LIBRARY_ID"))){ map.put("favourite", 1); } } for(Map mymap :myrecord){ if(map.get("ID").equals(mymap.get("LIBRARY_ID"))){ if(ConvertUtil.obj2Integer(mymap.get("TYPE")) == Constants.KM_SCORE_RULE_TYPE_D){ map.put("zan", 1); } if(ConvertUtil.obj2Integer(mymap.get("TYPE")) == Constants.KM_SCORE_RULE_TYPE_C){ map.put("cai", 1); } } } map.put("CREATE_TIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", map.get("CREATE_TIME"))); //标签 String tag = ConvertUtil.obj2Str(map.get("TAG")); if (tag != null) { String[] tags = tag.split("\\s"); List tagList = new ArrayList(); for(int i=0;i queryForUser(Map params) { String sql1 = "SELECT * FROM KM_EXPERT_LEVEL_RULE ORDER BY SCORE "; List list = baseDao.queryForList(sql1); Map cacheMap = new HashMap(); for(Map map:list){ int score = ConvertUtil.obj2Int(map.get("SCORE")); cacheMap.put(map.get("TYPE"),score); } String name = AjaxUtil.decode(params.get("name")); String type = params.get("type"); StringBuilder sql = new StringBuilder("SELECT * FROM GG_USER WHERE ZT = 1 "); if(!StringUtil.isEmpty(name)){ sql.append(" AND ZSXM LIKE :name "); params.put("name", "%"+name+"%"); } if(!StringUtil.isEmpty(type)){ if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ){ sql.append(" AND KM_SCORE >=:score1 AND KM_SCORE< :score2 "); params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)) ); params.put("score2", ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ))); }else if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ){ sql.append(" AND KM_SCORE >=:score1 AND KM_SCORE< :score2 "); params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)) ); params.put("score2", ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ))); }else if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ){ sql.append(" AND KM_SCORE >=:score1 AND KM_SCORE< :score2 "); params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)) ); params.put("score2", ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))); }else if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ){ sql.append(" AND KM_SCORE >=:score1 "); params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ)) ); } } sql.append(" ORDER BY KM_SCORE DESC "); List userList = baseDao.queryForList(sql.toString(),params); for(Map map:userList){ if(StringUtil.isEmpty(ConvertUtil.obj2StrBlank(map.get("KM_SCORE")))){ map.put("KM_SCORE", 0); } int score = ConvertUtil.obj2Int(map.get("KM_SCORE")); if(cacheMap.size()!=0){ if(score < ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ))){ map.put("DQDJ", ""); map.put("djtype", ""); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)) && score< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)) && score< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)) && score< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ); } } } return userList; } @Override public int knowZjhyCount(Map params) { String userId = params.get("userId"); String type = params.get("type"); StringBuilder sql = new StringBuilder("SELECT COUNT(C.ID) FROM (SELECT DISTINCT A.ID FROM KM_LIBRARY A,KM_RECORD B WHERE A.ID = B.LIBRARY_ID AND A.STATE=1 "); if(!StringUtil.isEmpty(userId)){ sql.append(" AND B.USER_ID = :userId "); } if(!StringUtil.isEmpty(type)){ if(ConvertUtil.obj2Integer(type)==Constants.KM_SCORE_RULE_TYPE_ZJ ){ sql.append(" AND A.IS_TOP = 1 "); }else if(ConvertUtil.obj2Integer(type)==Constants.KM_SCORE_RULE_TYPE_JH ){ sql.append(" AND A.IS_ESSENCE = 1 "); }else{ sql.append(" AND B.TYPE = :type "); } } sql.append(" )C "); return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo knowZjhyData(PageInfo pageInfo, Map params) { String userId = params.get("userId"); String type = params.get("type"); StringBuilder sql = new StringBuilder("SELECT DISTINCT A.ID,A.TITLE,A.TAG,A.CATEGORY_ID,A.CATEGORY_NAME,A.CREATE_USER_ID,A.CREATE_USER_NAME,A.CREATE_TIME,A.STATE,A.VERSION,A.HITS,A.IS_EDITOR,A.THIRDLEVEL_NAME,A.THIRDLEVEL_ID,A.FIRST_CATEGORY_ID,A.FIRST_CATEGORY_NAME,A.SECOND_CATEGORY_ID,A.SECOND_CATEGORY_NAME,A.THIRD_CATEGORY_ID,A.THIRD_CATEGORY_NAME,A.UPDATE_DATE,A.UPDATER_ID,A.UPDATE_NAME,A.SECOND_KNOWCATEGORY_ID,A.SECOND_KNOWCATEGORY_NAME,A.FIRST_KNOWCATEGORY_ID,A.FIRST_KNOWCATEGORY_NAME,A.SECONDLEVEL_NAME,A.SECONDLEVEL_ID,A.FIRSTLEVEL_NAME,A.FIRSTLEVEL_ID,A.ACCESS_TYPE,A.FILE_ID,A.IS_ESSENCE,A.IS_TOP,A.AUDIT_USERID,A.AUDIT_USERNAME,A.AUDIT_USERNAME,P.STATE FROM KM_RECORD B ,KM_LIBRARY A LEFT JOIN KM_LIBRARY_TEMP P on P.ORIGINAL_ID = A.ID WHERE A.ID = B.LIBRARY_ID AND A.STATE=1 "); if(!StringUtil.isEmpty(userId)){ sql.append(" AND B.USER_ID = :userId "); } if(!StringUtil.isEmpty(type)){ if(ConvertUtil.obj2Integer(type)==Constants.KM_SCORE_RULE_TYPE_ZJ ){ sql.append(" AND A.IS_TOP = 1 "); }else if(ConvertUtil.obj2Integer(type)==Constants.KM_SCORE_RULE_TYPE_JH ){ sql.append(" AND A.IS_ESSENCE = 1 "); }else{ sql.append(" AND B.TYPE = :type "); } } sql.append(" ORDER BY A.CREATE_TIME DESC "); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List knowList = info.getDatas(); List mylist = kmService.getmyFavourite(params.get("createUserId")); if(knowList.size()>0){ for (Map map : knowList) { for(Map mymap :mylist){ if(map.get("ID").equals(mymap.get("LIBRARY_ID"))){ map.put("favourite", 1); } } map.put("CREATE_TIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", map.get("CREATE_TIME"))); //标签 String tag = ConvertUtil.obj2Str(map.get("TAG")); if (tag != null) { String[] tags = tag.split("\\s"); List tagList = new ArrayList(); for(int i=0;i filesList = baseDao.queryForList("SELECT * FROM GG_FILES"); Map cachefile = new HashMap(); for(Map file:filesList){ if(!cachefile.containsKey(file.get("BUSINESS_ID"))){ cachefile.put(file.get("BUSINESS_ID"), file); } } for(Map map:knowList){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(knowList); return info; } @Override public void savecaiLibrary(Map params) { String sql = "SELECT COUNT(ID) FROM KM_RECORD WHERE CREATE_USER_ID = :createUserId AND TYPE = :type AND LIBRARY_ID = :library_id "; int count = baseDao.queryForInteger(sql,params); if(count == 0){ kmRecordService.addrecord(params); } } @Override public void savezanLibrary(Map params) { String sql = "SELECT COUNT(ID) FROM KM_RECORD WHERE CREATE_USER_ID = :createUserId AND TYPE = :type AND LIBRARY_ID = :library_id "; int count = baseDao.queryForInteger(sql,params); if(count == 0){ kmRecordService.addrecord(params); } } @Override public Map getTempKnowledgeById(String id) { Map knowMap = new KM_LIBRARY_TEMP(id).getBeanMapById(); List knowList = baseDao.queryForList("SELECT B.* FROM KM_LIBRARY_KNOWLEDGE_TEMP A,KM_LIBRARY B WHERE A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID = :business_id ", new SqlParameter("business_id",id)); knowMap.put("knowList", knowList); //用户可见权限 用户 List cusList = baseDao.queryForList("SELECT * FROM KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP WHERE KNOWLEDGE_ID = :id", new SqlParameter().addValue("id", knowMap.get("ID"))); String cusIdStr = new String(); String cusListStr = new String(); if(cusList.size() > 0){ for (Map map : cusList) { cusIdStr += map.get("CUSTOMER_ID") + ","; cusListStr += map.get("CUSTOMER_NAME") + ","; } knowMap.put("cusIdStr", cusIdStr.substring(0, cusIdStr.length()-1)); knowMap.put("cusListStr", cusListStr.substring(0, cusListStr.length()-1)); }else{ knowMap.put("cusIdStr", cusIdStr); knowMap.put("cusListStr", cusListStr); } //文件 List fileList = fileService.getFileList(ConvertUtil.obj2StrBlank(knowMap.get("ID"))); knowMap.put("fileList", fileList); return knowMap; } @Override public Map saveAgainUpdate(HttpServletRequest request, KM_LIBRARY_TEMP km_library_temp) { Map resultMap = new HashMap(); resultMap.put("result", 2); String id = request.getParameter("id"); KM_LIBRARY_TEMP temp = new KM_LIBRARY_TEMP(id).getInstanceById(); String serivceListId = request.getParameter("serivceListId"); String serivceList = request.getParameter("serivceList"); String category_id = request.getParameter("category_id"); String categoryList = request.getParameter("categoryList"); String thirdlevel_id = request.getParameter("thirdlevel_id"); String thirdlevelList = request.getParameter("thirdlevelList"); String first_category_id = new String(); String first_category_name = new String(); String second_category_id = new String(); String second_category_name = new String(); String third_category_id = new String(); String third_category_name = new String(); String categoryid = new String(); String category_name = new String(); String first_knowcategory_id = new String(); String first_knowcategory_name = new String(); String second_knowcategory_id = new String(); String second_knowcategory_name = new String(); String third_level_id = new String(); String third_level_name = new String(); String first_level_id = new String(); String first_level_name = new String(); String second_level_id = new String(); String second_level_name = new String(); if(StringUtil.notEmpty(serivceListId) && StringUtil.notEmpty(serivceList)) { String[] serivceListIds = serivceListId.split("-"); String[] serivceLists = serivceList.split("-"); first_category_id = serivceListIds[0]; first_category_name = serivceLists[0]; second_category_id = serivceListIds[1]; second_category_name = serivceLists[1]; third_category_id = serivceListIds[2]; third_category_name = serivceLists[2]; } if(StringUtil.notEmpty(category_id) && StringUtil.notEmpty(categoryList)) { String[] categoryListIds = category_id.split("-"); String[] categoryLists = categoryList.split("-"); if(categoryListIds.length>0){ first_knowcategory_id = categoryListIds[0]; first_knowcategory_name = categoryLists[0]; second_knowcategory_id = categoryListIds[1]; second_knowcategory_name = categoryLists[1]; categoryid = categoryListIds[2]; category_name = categoryLists[2]; } } if(StringUtil.notEmpty(thirdlevel_id) && StringUtil.notEmpty(thirdlevelList)) { String[] thirdListIds = thirdlevel_id.split("-"); String[] thirdLists = thirdlevelList.split("-"); if(thirdListIds.length>0){ first_level_id = thirdListIds[0]; first_level_name = thirdLists[0]; second_level_id = thirdListIds[1]; second_level_name = thirdLists[1]; third_level_id = thirdListIds[2]; third_level_name = thirdLists[2]; } } Integer access_type = ConvertUtil.obj2Integer(request.getParameter("isKj")); temp.setFirst_knowcategory_id(first_knowcategory_id).setFirst_knowcategory_name(first_knowcategory_name) .setSecond_knowcategory_id(second_knowcategory_id).setSecond_knowcategory_name(second_knowcategory_name) .setCategory_id(categoryid).setCategory_name(category_name) .setFirstlevel_id(first_level_id).setFirstlevel_name(first_level_name) .setSecondlevel_id(second_level_id).setSecondlevel_name(second_level_name) .setThirdlevel_id(third_level_id).setThirdlevel_name(third_level_name) .setFirst_category_id(first_category_id).setFirst_category_name(first_category_name) .setSecond_category_id(second_category_id).setSecond_category_name(second_category_name) .setThird_category_id(third_category_id).setThird_category_name(third_category_name) .setAccess_type(access_type); //待审核 Integer auditState = Constants.KM_LIBRARY_TEMP_AUDIT_STATE_DSH; Map shuser = knowledgeDealFacade.getSpMap(categoryid); String shId = ConvertUtil.obj2StrBlank(shuser.get("AUDITOR_ID")); String shName = ""; if(StringUtil.isEmpty(shId)){ shuser = knowledgeDealFacade.getDefaultSpMap(); shId = ConvertUtil.obj2StrBlank(shuser.get("AUDITOR_ID")); if(!StringUtil.isEmpty(shId)){ shName = ConvertUtil.obj2StrBlank(shuser.get("AUDITOR_NAME")); } }else{ shName = ConvertUtil.obj2StrBlank(shuser.get("AUDITOR_NAME")); } if(!StringUtil.isEmpty(shId)){ //更新共同的部分 temp.setTitle(km_library_temp.getTitle()).setTag(km_library_temp.getTag()).setSummary(km_library_temp.getSummary()) .setContent(km_library_temp.getContent()).setAudit_userid(shId).setAudit_username(shName).setUpdate_date(DateUtil.getCurrentDate14()).setAudit_state(Constants.KM_LIBRARY_TEMP_AUDIT_STATE_DSH).update(); //添加用户权限信息 String cusId = request.getParameter("cusId"); String cusList = request.getParameter("cusList"); if(access_type == 1){ //需要设置权限 KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP access = new KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP(); //每次重新存之前先删除先前的数据 baseDao.execute("DELETE FROM KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP WHERE KNOWLEDGE_ID = :knowId", new SqlParameter("knowId",temp.getId())); String[] cusIdArray = cusId.split(","); String[] cusListArray = cusList.split(","); for (int i = 0; i < cusIdArray.length; i++) { access = new KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP(); access.setKnowledge_id(temp.getId()).setCustomer_id(cusIdArray[i]).setCustomer_name(cusListArray[i]).insert(); } } //添加关联知识 //删除已存在的关联知识 baseDao.execute("DELETE FROM KM_LIBRARY_KNOWLEDGE_TEMP WHERE LIBRARY_ID = :business_id ", new SqlParameter("business_id",temp.getId())); String[] knowId = request.getParameterValues("knowId"); if(null!=knowId && knowId.length>0) { List paramList = new ArrayList(); for(String str : knowId) { SqlParameter sqlParameter = new SqlParameter(); sqlParameter.put("id", StringUtil.getUUID()); sqlParameter.put("library_id", temp.getId()); sqlParameter.put("knowledge_id", str); paramList.add(sqlParameter); } String insertSql = "INSERT INTO KM_LIBRARY_KNOWLEDGE_TEMP(ID,LIBRARY_ID,KNOWLEDGE_ID) VALUES (:id,:library_id,:knowledge_id)"; baseDao.executeBatch(insertSql, paramList); } fileService.uploadFile(request,temp.getId(),Constants.GG_FOLDERS_KNOWFOLDERS,Constants.FILE_STATE_SHTG,null); SysInfoMsg msg = new SysInfoMsg("2",shName,"知识审核"); resultMap.put("msg", msg); resultMap.put("result", 1); }else{ resultMap.put("nouser", 1); } return resultMap; } }