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<Map> querycategory(Map<String, String> param) {
|
//Map paramMap = new HashMap();
|
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);
|
List<Map> ejgnList = new LinkedList<Map>();
|
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<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
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<Map> list = (List<Map>)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<Map> checkForTitle(Map<String, String> 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<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");
|
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<SqlParameter> paramList = new ArrayList();
|
for(int i =0 ;i<id.length;i++){
|
SqlParameter param = new SqlParameter();
|
param.put("id", id[i]);
|
param.put("num", num[i]);
|
paramList.add(param);
|
}
|
String sql = "UPDATE KM_LIBRARY_CATEGORY SET SERIAL = :num WHERE ID = :id ";
|
baseDao.executeBatch(sql, paramList);
|
return 1;
|
}
|
/**
|
* 验证知识分类可否启动
|
* @param id
|
* @return
|
*/
|
@Override
|
public Integer queryHighLevel(String id) {
|
String sql = "select count(1) from KM_LIBRARY_CATEGORY where id = (select TAG from km_library_category where ID=:id) and state = 2";
|
Integer count = baseDao.queryForInteger(sql, new SqlParameter("id",id));
|
return count;
|
}
|
|
/**
|
* 验证知识分类可否禁用
|
* @param id
|
* @return
|
*/
|
@Override
|
public Integer queryLowLevel(String id) {
|
String sql = "SELECT COUNT(1) FROM KM_LIBRARY_CATEGORY WHERE TAG = :id AND STATE = 1";
|
Integer count = baseDao.queryForInteger(sql, new SqlParameter("id",id));
|
return count;
|
}
|
|
|
/**
|
*
|
* @param p_id
|
* @return
|
*/
|
public List<Map> queryCategoryList(String p_id) {
|
String sql = "select ID FROM KM_LIBRARY_CATEGORY WHERE TAG = :p_id";
|
List<Map> 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<Map> 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<Map> 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<String, String> 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<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 = 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<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);
|
}
|
}
|
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<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(",");
|
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<sls.length; i++) {
|
sql.append(" :third_category_id"+i);
|
sql.append(",");
|
params.put("third_category_id"+i, sls[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String know = params.get("know");
|
if(StringUtil.notEmpty(know)) {
|
String[] knows = know.split(",");
|
if(knows.length==1) {
|
sql.append(" AND K.CATEGORY_ID = :category_id");
|
params.put("category_id", knows[0]);
|
} else {
|
sql.append(" AND K.CATEGORY_ID IN (");
|
for(int i=0; i<knows.length; i++) {
|
sql.append(" :category_id"+i);
|
sql.append(",");
|
params.put("category_id"+i, knows[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String ci = params.get("ci");
|
if(StringUtil.notEmpty(ci)) {
|
String[] cis = ci.split(",");
|
if(cis.length==1) {
|
sql.append(" AND K.THIRDLEVEL_ID = :thirdlevel_id");
|
params.put("thirdlevel_id", cis[0]);
|
} else {
|
sql.append(" AND K.THIRDLEVEL_ID IN (");
|
for(int i=0; i<cis.length; i++) {
|
sql.append(" :thirdlevel_id"+i);
|
sql.append(",");
|
params.put("thirdlevel_id"+i, cis[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
if (!StringUtil.isEmpty(title)) {
|
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 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.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<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.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);
|
}
|
}
|
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<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(",");
|
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<sls.length; i++) {
|
sql.append(" :third_category_id"+i);
|
sql.append(",");
|
params.put("third_category_id"+i, sls[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String know = params.get("know");
|
if(StringUtil.notEmpty(know)) {
|
String[] knows = know.split(",");
|
if(knows.length==1) {
|
sql.append(" AND k.CATEGORY_ID = :category_id");
|
params.put("category_id", knows[0]);
|
} else {
|
sql.append(" AND k.CATEGORY_ID IN (");
|
for(int i=0; i<knows.length; i++) {
|
sql.append(" :category_id"+i);
|
sql.append(",");
|
params.put("category_id"+i, knows[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String ci = params.get("ci");
|
if(StringUtil.notEmpty(ci)) {
|
String[] cis = ci.split(",");
|
if(cis.length==1) {
|
sql.append(" AND k.THIRDLEVEL_ID = :thirdlevel_id");
|
params.put("thirdlevel_id", cis[0]);
|
} else {
|
sql.append(" AND k.THIRDLEVEL_ID IN (");
|
for(int i=0; i<cis.length; i++) {
|
sql.append(" :thirdlevel_id"+i);
|
sql.append(",");
|
params.put("thirdlevel_id"+i, cis[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
if (!StringUtil.isEmpty(title)) {
|
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 getMyFavKnowCount(Map<String, String> 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<String, String> 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<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);
|
}
|
}
|
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<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(",");
|
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<sls.length; i++) {
|
sql.append(" :third_category_id"+i);
|
sql.append(",");
|
params.put("third_category_id"+i, sls[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String know = params.get("know");
|
if(StringUtil.notEmpty(know)) {
|
String[] knows = know.split(",");
|
if(knows.length==1) {
|
sql.append(" AND k.CATEGORY_ID = :category_id");
|
params.put("category_id", knows[0]);
|
} else {
|
sql.append(" AND k.CATEGORY_ID IN (");
|
for(int i=0; i<knows.length; i++) {
|
sql.append(" :category_id"+i);
|
sql.append(",");
|
params.put("category_id"+i, knows[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String ci = params.get("ci");
|
if(StringUtil.notEmpty(ci)) {
|
String[] cis = ci.split(",");
|
if(cis.length==1) {
|
sql.append(" AND k.THIRDLEVEL_ID = :thirdlevel_id");
|
params.put("thirdlevel_id", cis[0]);
|
} else {
|
sql.append(" AND k.THIRDLEVEL_ID IN (");
|
for(int i=0; i<cis.length; i++) {
|
sql.append(" :thirdlevel_id"+i);
|
sql.append(",");
|
params.put("thirdlevel_id"+i, cis[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
if (!StringUtil.isEmpty(title)) {
|
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 getMyKnowCount(Map<String, String> 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<String, String> 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<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(",");
|
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<sls.length; i++) {
|
sql.append(" :third_category_id"+i);
|
sql.append(",");
|
params.put("third_category_id"+i, sls[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String know = params.get("know");
|
if(StringUtil.notEmpty(know)) {
|
String[] knows = know.split(",");
|
if(knows.length==1) {
|
sql.append(" AND K.CATEGORY_ID = :category_id");
|
params.put("category_id", knows[0]);
|
} else {
|
sql.append(" AND K.CATEGORY_ID IN (");
|
for(int i=0; i<knows.length; i++) {
|
sql.append(" :category_id"+i);
|
sql.append(",");
|
params.put("category_id"+i, knows[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String ci = params.get("ci");
|
if(StringUtil.notEmpty(ci)) {
|
String[] cis = ci.split(",");
|
if(cis.length==1) {
|
sql.append(" AND K.THIRDLEVEL_ID = :thirdlevel_id");
|
params.put("thirdlevel_id", cis[0]);
|
} else {
|
sql.append(" AND K.THIRDLEVEL_ID IN (");
|
for(int i=0; i<cis.length; i++) {
|
sql.append(" :thirdlevel_id"+i);
|
sql.append(",");
|
params.put("thirdlevel_id"+i, cis[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
if (!StringUtil.isEmpty(title)) {
|
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) {
|
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<String, String> 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<sls.length; i++) {
|
sql.append(" :third_category_id"+i);
|
sql.append(",");
|
params.put("third_category_id"+i, sls[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String know = params.get("know");
|
if(StringUtil.notEmpty(know)) {
|
String[] knows = know.split(",");
|
if(knows.length==1) {
|
sql.append(" AND K.CATEGORY_ID = :category_id");
|
params.put("category_id", knows[0]);
|
} else {
|
sql.append(" AND K.CATEGORY_ID IN (");
|
for(int i=0; i<knows.length; i++) {
|
sql.append(" :category_id"+i);
|
sql.append(",");
|
params.put("category_id"+i, knows[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String ci = params.get("ci");
|
if(StringUtil.notEmpty(ci)) {
|
String[] cis = ci.split(",");
|
if(cis.length==1) {
|
sql.append(" AND K.THIRDLEVEL_ID = :thirdlevel_id");
|
params.put("thirdlevel_id", cis[0]);
|
} else {
|
sql.append(" AND K.THIRDLEVEL_ID IN (");
|
for(int i=0; i<cis.length; i++) {
|
sql.append(" :thirdlevel_id"+i);
|
sql.append(",");
|
params.put("thirdlevel_id"+i, cis[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
if (!StringUtil.isEmpty(title)) {
|
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(state)) {
|
sql.append(" AND K.AUDIT_STATE = :state ");
|
}
|
}
|
@Override
|
public int updatestate(String id,String state) {
|
|
KM_LIBRARY library = new KM_LIBRARY(id);
|
if("1".equals(state)){
|
library.setState(2);
|
}else{
|
library.setState(1);
|
}
|
library.update();
|
return 1;
|
}
|
@Override
|
public Map getKnowledgeMsgById(String id) {
|
Map knowMap = new KM_LIBRARY(id).getBeanMapById();
|
List<Map> 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<Map> 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<Map> 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<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
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<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 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");
|
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<sls.length; i++) {
|
sql.append(" :third_category_id"+i);
|
sql.append(",");
|
params.put("third_category_id"+i, sls[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String know = params.get("know");
|
if(StringUtil.notEmpty(know)) {
|
String[] knows = know.split(",");
|
if(knows.length==1) {
|
sql.append(" AND K.CATEGORY_ID = :category_id");
|
params.put("category_id", knows[0]);
|
} else {
|
sql.append(" AND K.CATEGORY_ID IN (");
|
for(int i=0; i<knows.length; i++) {
|
sql.append(" :category_id"+i);
|
sql.append(",");
|
params.put("category_id"+i, knows[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String ci = params.get("ci");
|
if(StringUtil.notEmpty(ci)) {
|
String[] cis = ci.split(",");
|
if(cis.length==1) {
|
sql.append(" AND K.THIRDLEVEL_ID = :thirdlevel_id");
|
params.put("thirdlevel_id", cis[0]);
|
} else {
|
sql.append(" AND K.THIRDLEVEL_ID IN (");
|
for(int i=0; i<cis.length; i++) {
|
sql.append(" :thirdlevel_id"+i);
|
sql.append(",");
|
params.put("thirdlevel_id"+i, cis[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
if (!StringUtil.isEmpty(title)) {
|
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 boolean addMyLibraryFavorite(String userId, String libraryId) {
|
return kmService.addMyLibraryFavourite(libraryId, userId);
|
}
|
@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
|
public Integer updateLibraryHits(String libraryId, String userId) {
|
String sql = "SELECT COUNT(ID) FROM KM_LIBRARY_HIT_RECORD WHERE LIBRARY_ID = :libraryId AND CREATE_USER_ID = :userId ";
|
Map param = new HashMap();
|
param.put("libraryId", libraryId);
|
param.put("userId", userId);
|
int count = baseDao.queryForInteger(sql, param);
|
if(count <= 0){
|
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));
|
}
|
@Override
|
public int updateEssence(String id,String state) {
|
KM_LIBRARY knowledge = new KM_LIBRARY(id).getInstanceById();
|
knowledge.setId(id).setIs_essence(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_JH);
|
int count = baseDao.queryForInteger(sql, param);
|
if(count == 0){
|
Map<String,String> params = new HashMap<String, String>();
|
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<String,String> params = new HashMap<String, String>();
|
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<String, String> 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<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);
|
}
|
}
|
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<String, String> 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<sls.length; i++) {
|
sql.append(" :third_category_id"+i);
|
sql.append(",");
|
params.put("third_category_id"+i, sls[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String know = params.get("know");
|
if(StringUtil.notEmpty(know)) {
|
String[] knows = know.split(",");
|
if(knows.length==1) {
|
sql.append(" AND K.CATEGORY_ID = :category_id");
|
params.put("category_id", knows[0]);
|
} else {
|
sql.append(" AND K.CATEGORY_ID IN (");
|
for(int i=0; i<knows.length; i++) {
|
sql.append(" :category_id"+i);
|
sql.append(",");
|
params.put("category_id"+i, knows[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
|
String ci = params.get("ci");
|
if(StringUtil.notEmpty(ci)) {
|
String[] cis = ci.split(",");
|
if(cis.length==1) {
|
sql.append(" AND K.THIRDLEVEL_ID = :thirdlevel_id");
|
params.put("thirdlevel_id", cis[0]);
|
} else {
|
sql.append(" AND K.THIRDLEVEL_ID IN (");
|
for(int i=0; i<cis.length; i++) {
|
sql.append(" :thirdlevel_id"+i);
|
sql.append(",");
|
params.put("thirdlevel_id"+i, cis[i]);
|
}
|
sql.deleteCharAt(sql.lastIndexOf(","));
|
sql.append(")");
|
}
|
}
|
if (!StringUtil.isEmpty(title)) {
|
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 ");
|
}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 ");
|
}
|
}
|
|
return sql;
|
|
}
|
@Override
|
public int getMyKnowJfCount(Map<String, String> params) {
|
String sql = "SELECT COUNT(ID) FROM KM_RECORD WHERE USER_ID = :userId ";
|
return baseDao.queryForInteger(sql,params);
|
}
|
@Override
|
public PageInfo getMyKnowJfData(Map<String, String> 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<Map> 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<Map> QueryMainKnowList(Map<String, String> 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<Map> knowList = baseDao.queryForList(sql.toString(),param);
|
List<Map> mylist = kmService.getmyFavourite(params.get("userId"));
|
List<Map> 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<String> tagList = new ArrayList();
|
for(int i=0;i<tags.length;i++){
|
if(!StringUtil.isEmpty(tags[i])){
|
tagList.add(tags[i]);
|
}
|
}
|
map.put("tag_list", tagList);
|
}
|
}
|
return knowList;
|
}
|
@Override
|
public List<Map> queryForUser(Map<String, String> params) {
|
String sql1 = "SELECT * FROM KM_EXPERT_LEVEL_RULE ORDER BY SCORE ";
|
List<Map> 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<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", "");
|
}
|
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<String, String> 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<String, String> 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<Map> knowList = info.getDatas();
|
List<Map> 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<String> tagList = new ArrayList();
|
for(int i=0;i<tags.length;i++){
|
if(!StringUtil.isEmpty(tags[i])){
|
tagList.add(tags[i]);
|
}
|
}
|
map.put("tag_list", tagList);
|
}
|
}
|
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);
|
}
|
}
|
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<String, String> 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<String, String> 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<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);
|
//用户可见权限 用户
|
List<Map> 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<Map> 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<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
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;
|
}
|
|
|
}
|