cy
2022-06-22 425675051e544cf29b2132615cfbf7a93dc5e51f
src/cn/ksource/web/facade/knowledge/KmLibraryFacadeImpl.java
@@ -1,53 +1,39 @@
package cn.ksource.web.facade.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.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.ksource.beans.GG_USER;
import cn.ksource.beans.KM_LIBRARY;
import cn.ksource.beans.KM_LIBRARY_CATEGORY;
import cn.ksource.beans.KM_LIBRARY_HIT_RECORD;
import cn.ksource.beans.KM_LIBRARY_KNOWLEDGE_ACCESS;
import cn.ksource.beans.KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP;
import cn.ksource.beans.KM_LIBRARY_TEMP;
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.ParamsMapUtil;
import cn.ksource.core.util.StringUtil;
import cn.ksource.core.web.SysInfoMsg;
import cn.ksource.core.web.WebUtil;
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;
   /**
@@ -59,15 +45,15 @@
      String selectSubSql = "SELECT * FROM KM_LIBRARY_CATEGORY WHERE STATE=1 ORDER BY LEVEL,SERIAL,TITLE";
      List<Map> subCus = baseDao.queryForList(selectSubSql,param);
        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 : subCus) {
         //一级树
         if (map.get("LEVEL").toString().equalsIgnoreCase("1")) {
            yjgnCache.put(map.get("ID").toString(), map);
@@ -84,7 +70,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;
@@ -119,11 +105,11 @@
      param.put("id", id);
      PageInfo pageInfos = baseDao.queryforSplitPageInfo(pageInfo, selectSql, param);
      if(pageInfos.getDatas().size() > 0){
         for(Map map:pageInfos.getDatas()){
         for(Map map:pageInfos.getDatas()){
            map.put("CREATE_TIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", map.get("CREATE_TIME")));
         }
         }
      }
      return pageInfos;
   }
   /**
@@ -131,22 +117,22 @@
    */
   @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;
   }
   /**
    * 验证分类名称
    */
@@ -176,7 +162,7 @@
   @Override
   public void saveknowcategory(Map<String, String> 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");
@@ -186,7 +172,7 @@
      //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);
@@ -195,15 +181,15 @@
            }
            km_library_category.setCreate_time(DateUtil.getCurrentDate14());
            km_library_category.setState(1);
            km_library_category.setLevel((Integer.parseInt(level)+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.setSerial(ConvertUtil.obj2Integer(serial));
         km_library_category.insertOrUpdate();
   }
   /**
    * 修改顺序号
@@ -236,7 +222,7 @@
      Integer count = baseDao.queryForInteger(sql, new SqlParameter("id",id));
      return count;
   }
   /**
    * 验证知识分类可否禁用
    * @param id
@@ -248,10 +234,10 @@
      Integer count = baseDao.queryForInteger(sql, new SqlParameter("id",id));
      return count;
   }
   /**
    *
    *
    * @param p_id
    * @return
    */
@@ -291,13 +277,13 @@
                     paramList.add(map4);
                  }
               }
            }
         }
      }
      String sql = "update KM_LIBRARY_CATEGORY set STATE=:state where ID=:id";
      baseDao.executeBatch(sql, paramList);
   }
   @Override
   public int getMyCreateKnowCount(Map<String, String> params) {
@@ -316,13 +302,13 @@
      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<Map> datas = info.getDatas();
      if(datas.size()>0){
         List<Map> 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);
@@ -337,7 +323,7 @@
         }
      }
      info.setDatas(datas);
      return info;
   }
   private void queryMyCreateKnowIf(Map<String, String> params,
@@ -361,7 +347,7 @@
            sql.append(")");
         }
      }
      String know = params.get("know");
      if(StringUtil.notEmpty(know)) {
         String[] knows = know.split(",");
@@ -379,7 +365,7 @@
            sql.append(")");
         }
      }
      String ci = params.get("ci");
      if(StringUtil.notEmpty(ci)) {
         String[] cis = ci.split(",");
@@ -401,7 +387,7 @@
         sql.append(" AND K.TITLE like :title  ");
         params.put("title", "%" + title + "%");
      }
      if (!StringUtil.isEmpty(keyword)) {
         sql.append(" AND K.TAG like :keyword  ");
         params.put("keyword", "%" + keyword + "%");
@@ -411,7 +397,7 @@
   public int getMyEditKnowCount(Map<String, String> 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.*,MAX(E.EDITOR_DATE) AS TIME FROM KM_LIBRARY_UPDATER E WHERE E.USER_ID =:loginUserId GROUP BY E.LIBRARY_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(" 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);
@@ -419,22 +405,22 @@
   @Override
   public PageInfo getMyEditKnowData(Map<String, String> 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.*,MAX(E.EDITOR_DATE) AS TIME FROM KM_LIBRARY_UPDATER E WHERE E.USER_ID =:loginUserId GROUP BY E.LIBRARY_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(" 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<Map> datas = info.getDatas();
      if(datas.size()>0){
         List<Map> 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);
@@ -449,13 +435,13 @@
         }
      }
      info.setDatas(datas);
      return info;
   }
   private void queryMyEditKnowIf(Map<String, String> 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(",");
@@ -473,7 +459,7 @@
            sql.append(")");
         }
      }
      String know = params.get("know");
      if(StringUtil.notEmpty(know)) {
         String[] knows = know.split(",");
@@ -491,7 +477,7 @@
            sql.append(")");
         }
      }
      String ci = params.get("ci");
      if(StringUtil.notEmpty(ci)) {
         String[] cis = ci.split(",");
@@ -513,7 +499,7 @@
         sql.append(" AND k.TITLE like :title  ");
         params.put("title", "%" + title + "%");
      }
      if (!StringUtil.isEmpty(keyword)) {
         sql.append(" AND k.TAG like :keyword  ");
         params.put("keyword", "%" + keyword + "%");
@@ -536,7 +522,7 @@
      if(datas.size()>0){
         List<Map> 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);
@@ -551,13 +537,13 @@
         }
      }
      info.setDatas(datas);
      return info;
   }
   private void queryMyFavKnowIf(Map<String, String> 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(",");
@@ -575,7 +561,7 @@
            sql.append(")");
         }
      }
      String know = params.get("know");
      if(StringUtil.notEmpty(know)) {
         String[] knows = know.split(",");
@@ -593,7 +579,7 @@
            sql.append(")");
         }
      }
      String ci = params.get("ci");
      if(StringUtil.notEmpty(ci)) {
         String[] cis = ci.split(",");
@@ -615,7 +601,7 @@
         sql.append(" AND k.TITLE like :title  ");
         params.put("title", "%" + title + "%");
      }
      if (!StringUtil.isEmpty(keyword)) {
         sql.append(" AND k.TAG like :keyword  ");
         params.put("keyword", "%" + keyword + "%");
@@ -629,7 +615,7 @@
   }
   @Override
   public PageInfo getMyKnowData(Map<String, String> params, PageInfo pageInfo) {
      StringBuilder sql = new StringBuilder("SELECT DISTINCT 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 ");
      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);
@@ -654,7 +640,7 @@
            sql.append(")");
         }
      }
      String know = params.get("know");
      if(StringUtil.notEmpty(know)) {
         String[] knows = know.split(",");
@@ -672,7 +658,7 @@
            sql.append(")");
         }
      }
      String ci = params.get("ci");
      if(StringUtil.notEmpty(ci)) {
         String[] cis = ci.split(",");
@@ -694,20 +680,20 @@
         sql.append(" AND K.TITLE like :title  ");
         params.put("title", "%" + title + "%");
      }
      if (!StringUtil.isEmpty(keyword)) {
         sql.append(" AND K.TAG like :keyword  ");
         params.put("keyword", "%" + keyword + "%");
      }
   }
   @Override
   public int queryMyDshKnowCount(Map<String, String> 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<String, String> params) {
@@ -716,7 +702,7 @@
      sql.append(" ORDER BY K.AUDIT_STATE,K.CREATE_TIME DESC");
      return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
   }
   private void queryMyDshKnowIf(Map<String, String> params, StringBuilder sql) {
      String title = params.get("title");
      String keyword = params.get("keyword");
@@ -738,7 +724,7 @@
            sql.append(")");
         }
      }
      String know = params.get("know");
      if(StringUtil.notEmpty(know)) {
         String[] knows = know.split(",");
@@ -756,7 +742,7 @@
            sql.append(")");
         }
      }
      String ci = params.get("ci");
      if(StringUtil.notEmpty(ci)) {
         String[] cis = ci.split(",");
@@ -778,7 +764,7 @@
         sql.append(" AND K.TITLE like :title  ");
         params.put("title", "%" + title + "%");
      }
      if (!StringUtil.isEmpty(keyword)) {
         sql.append(" AND K.TAG like :keyword  ");
         params.put("keyword", "%" + keyword + "%");
@@ -789,7 +775,7 @@
   }
   @Override
   public int updatestate(String id,String state) {
      KM_LIBRARY library = new KM_LIBRARY(id);
      if("1".equals(state)){
         library.setState(2);
@@ -885,7 +871,7 @@
            }
      }
      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)
@@ -896,7 +882,7 @@
      .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");
@@ -912,7 +898,7 @@
            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()));
@@ -936,23 +922,23 @@
      }
      fileService.uploadFile(request,km_library.getFile_id(),Constants.GG_FOLDERS_KNOWFOLDERS,Constants.FILE_STATE_SHTG,null);
   }
   @Override
   public int getMyKnowCxCount(Map<String, String> 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<String, String> params,
         PageInfo pageInfo) {
      StringBuilder sql = new StringBuilder("SELECT DISTINCT K.* FROM KM_LIBRARY K WHERE 1=1 ");
      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<String, String> params, StringBuilder sql) {
      String title = params.get("title");
      String keyword = params.get("keyword");
@@ -973,7 +959,7 @@
            sql.append(")");
         }
      }
      String know = params.get("know");
      if(StringUtil.notEmpty(know)) {
         String[] knows = know.split(",");
@@ -991,7 +977,7 @@
            sql.append(")");
         }
      }
      String ci = params.get("ci");
      if(StringUtil.notEmpty(ci)) {
         String[] cis = ci.split(",");
@@ -1013,7 +999,7 @@
         sql.append(" AND K.TITLE like :title  ");
         params.put("title", "%" + title + "%");
      }
      if (!StringUtil.isEmpty(keyword)) {
         sql.append(" AND K.TAG like :keyword  ");
         params.put("keyword", "%" + keyword + "%");
@@ -1026,10 +1012,10 @@
   @Override
   public void deleteMyLibraryFavorite(String userId, String libraryId) {
       String sql = "delete from KM_LIBRARY_FAVORITE where LIBRARY_ID=:library_id and CREATE_USER_ID=:user_id ";
           SqlParameter param = new SqlParameter("library_id", libraryId);
           param.addValue("user_id", userId);
         baseDao.execute(sql, param);
   }
   @Override
@@ -1043,12 +1029,12 @@
         KM_LIBRARY_HIT_RECORD record = new KM_LIBRARY_HIT_RECORD();
         record.setLibrary_id(libraryId).setCreate_user_id(userId).setCreate_time(DateUtil.getCurrentDate14()).insert();
         String sqlupd = "update KM_LIBRARY set HITS=HITS+1 where ID=:libraryId ";
         baseDao.execute(sqlupd, param);
      }/*如果同一账号点击过,不再增加点击数
      else{
         String sqlupd = "update KM_LIBRARY set HITS=HITS+1 where ID=:libraryId ";
         baseDao.execute(sqlupd, param);
      }*/
      return baseDao.queryForInteger("select HITS FROM KM_LIBRARY WHERE ID=:id",new SqlParameter("id",libraryId));
@@ -1090,9 +1076,9 @@
            params.put("type", ConvertUtil.obj2StrBlank(Constants.KM_SCORE_RULE_TYPE_ZJ));
            kmRecordService.addrecord(params);
         }
      }
      return 1;
   }
   @Override
@@ -1105,16 +1091,16 @@
   @Override
   public PageInfo getMyKnowTypeData(Map<String, String> params,
         PageInfo pageInfo) {
      StringBuilder sql = getknowtypesql(params);
      sql.append(" ORDER BY A.UPDATE_DATE DESC ");
      PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
      List<Map> datas = info.getDatas();
      if(datas.size()>0){
         List<Map> 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);
@@ -1129,12 +1115,12 @@
         }
      }
      info.setDatas(datas);
      return info;
   }
   public StringBuilder getknowtypesql(Map<String, String> params){
      StringBuilder sql = new StringBuilder("SELECT DISTINCT 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 ");
      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");
@@ -1155,7 +1141,7 @@
            sql.append(")");
         }
      }
      String know = params.get("know");
      if(StringUtil.notEmpty(know)) {
         String[] knows = know.split(",");
@@ -1173,7 +1159,7 @@
            sql.append(")");
         }
      }
      String ci = params.get("ci");
      if(StringUtil.notEmpty(ci)) {
         String[] cis = ci.split(",");
@@ -1195,12 +1181,12 @@
         sql.append(" AND K.TITLE like :title  ");
         params.put("title", "%" + title + "%");
      }
      if (!StringUtil.isEmpty(keyword)) {
         sql.append(" AND K.TAG like :keyword  ");
         params.put("keyword", "%" + keyword + "%");
      }
      if(!StringUtil.isEmpty(type)){
         if(ConvertUtil.obj2Integer(type)==Constants.KM_SCORE_RULE_TYPE_ZJ ){
            sql.append(" AND A.IS_TOP = 1 ");
@@ -1210,9 +1196,9 @@
            sql.append(" AND B.TYPE = :type ");
         }
      }
      return sql;
   }
   @Override
   public int getMyKnowJfCount(Map<String, String> params) {
@@ -1241,7 +1227,7 @@
         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));
@@ -1345,7 +1331,7 @@
         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)) );
@@ -1363,19 +1349,19 @@
            params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ)) );
         }
      }
      sql.append(" ORDER BY KM_SCORE DESC ");
      List<Map> 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", "");
@@ -1427,7 +1413,7 @@
   public PageInfo knowZjhyData(PageInfo pageInfo, Map<String, String> params) {
      String userId = params.get("userId");
      String type = params.get("type");
      StringBuilder sql = new StringBuilder("SELECT DISTINCT A.*,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 ");
      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 ");
      }
@@ -1467,7 +1453,7 @@
         }
         List<Map> 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);
@@ -1491,7 +1477,7 @@
      if(count == 0){
         kmRecordService.addrecord(params);
      }
   }
   @Override
   public void savezanLibrary(Map<String, String> params) {
@@ -1500,11 +1486,11 @@
      if(count == 0){
         kmRecordService.addrecord(params);
      }
   }
   @Override
   public Map getTempKnowledgeById(String id) {
      Map knowMap = new KM_LIBRARY_TEMP(id).getBeanMapById();
      List<Map> 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);
@@ -1526,9 +1512,9 @@
      //文件
      List<Map> fileList = fileService.getFileList(ConvertUtil.obj2StrBlank(knowMap.get("ID")));
      knowMap.put("fileList", fileList);
      return knowMap;
      return knowMap;
   }
   @Override
   public Map saveAgainUpdate(HttpServletRequest request,
         KM_LIBRARY_TEMP km_library_temp) {
@@ -1536,7 +1522,7 @@
      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");
@@ -1596,7 +1582,7 @@
               }
         }
         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)
@@ -1607,7 +1593,7 @@
         .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);
@@ -1626,7 +1612,7 @@
         //更新共同的部分
         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");
@@ -1666,6 +1652,6 @@
      }
      return resultMap;
   }
}