From 23bd719cebe5feeff4e48fde925b0b39755eea93 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 15 十一月 2022 10:59:50 +0800 Subject: [PATCH] 2022.11.15 --- src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/OnLineQuestionServiceImpl.kt | 63 ++++++++++++++++++++++--------- 1 files changed, 45 insertions(+), 18 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/OnLineQuestionServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/OnLineQuestionServiceImpl.kt index 053434b..4fea98a 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/OnLineQuestionServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/OnLineQuestionServiceImpl.kt @@ -1,5 +1,6 @@ package cn.flightfeather.supervision.lightshare.service.Impl +import cn.flightfeather.supervision.common.nlp.NlpController import cn.flightfeather.supervision.domain.entity.* import cn.flightfeather.supervision.domain.enumeration.* import cn.flightfeather.supervision.domain.mapper.* @@ -26,7 +27,8 @@ private val userinfoMapper: UserinfoMapper, private val cstQuestionMapper: CstQuestionMapper, private val settingAnswerMapper: SettingAnswerMapper, - private val enforceCaseMapper: EnforceCaseMapper + private val enforceCaseMapper: EnforceCaseMapper, + private val nlpController: NlpController ) : OnLineQuestionService { @Resource private val onLineQuestionMapper: OnLineQuestionMapper? = null @@ -100,6 +102,11 @@ } override fun searchLaw(userId: String, keyword: String, type: Byte?, page: Int, perPage: Int): BaseResponse<List<ConsultResultVo>> { + val keywordList = if (keyword.isBlank()) { + emptyList() + } else { + nlpController.execute(keyword) + } val userInfo = userinfoMapper.selectByPrimaryKey(userId) ?: return BaseResponse(false) val response = BaseResponse<List<ConsultResultVo>>(false, head = DataHead(page, perPage)) val result = mutableListOf<ConsultResultVo>() @@ -112,14 +119,21 @@ if (type == null || type == ConsultResultType.TYPE1.value) { val p = PageHelper.startPage<MgtFile>(_page, _perPage) val example = Example(MgtFile::class.java).apply { - if (keyword.isNotBlank()) { - createCriteria().orLike("mfName", "%${keyword}%") - .orLike("mfShortName", "%${keyword}%") - .orLike("mfSummary", "%${keyword}%") - .orLike("mfKeywordLv1", "%${keyword}%") - .orLike("mfKeywordLv2", "%${keyword}%") - .orLike("mfKeywordLv3", "%${keyword}%") - .orLike("mfKeywordLv4", "%${keyword}%") + if (keywordList.isNotEmpty()) { + createCriteria().apply { + keywordList.forEach { k -> + orLike("mfName", "%${k}%") + orLike("mfShortName", "%${k}%") + orLike("mfSummary", "%${k}%") + orLike("mfKeywordLv1", "%${k}%") + orLike("mfKeywordLv2", "%${k}%") + orLike("mfKeywordLv3", "%${k}%") + orLike("mfKeywordLv4", "%${k}%") + } + } + and(createCriteria().orLike("mfExtension1", "%${userInfo.extension2}%") + .orEqualTo("mfExtension1", "") + .orIsNull("mfExtension1")) } else { // TODO: 2022/9/8 娌℃湁鍏抽敭瀛楁椂锛屾寜鐓х儹闂ㄨ幏鍙栨満鍒惰幏鍙� createCriteria().orLike("mfExtension1", "%${userInfo.extension2}%") @@ -166,14 +180,19 @@ val map = mutableMapOf<String, MgtFile>() val p = PageHelper.startPage<MgtItem>(_page, _perPage) val example = Example(MgtItem::class.java).apply { - if (keyword.isNotBlank()) { - createCriteria().orLike("miChapterKeyword", "%${keyword}%") - .orLike("miKeyword", "%${keyword}%") + if (keywordList.isNotEmpty()) { + createCriteria().apply { + keywordList.forEach { k -> + orLike("miChapterKeyword", "%${k}%") + orLike("miKeyword", "%${k}%") + } + } } else { // TODO: 2022/9/8 娌℃湁鍏抽敭瀛楁椂锛屾寜鐓х儹闂ㄨ幏鍙栨満鍒惰幏鍙栨潯鐩� } } mgtItemMapper.selectByExample(example).forEach { + if (!map.containsKey(it.mfGuid)) { map[it.mfGuid] = mgtFileMapper.selectByPrimaryKey(it.mfGuid) } @@ -217,13 +236,17 @@ if (type == null || type == ConsultResultType.TYPE4.value) { val p = PageHelper.startPage<CstQuestion>(_page, _perPage) val example = Example(CstQuestion::class.java).apply { - if (keyword.isNotBlank()) { + if (keywordList.isNotEmpty()) { createCriteria().orLike("cqScenes", "%${userInfo.extension2}%") .orEqualTo("cqScenes", "") .orIsNull("cqScenes") and( - createCriteria().orLike("cqContent", "%${keyword}%") - .orLike("cqKeywords", "%${keyword}%") + createCriteria().apply { + keywordList.forEach { k -> + orLike("cqContent", "%${k}%") + orLike("cqKeywords", "%${k}%") + } + } ) } else { // TODO: 2022/9/8 娌℃湁鍏抽敭瀛楁椂锛屾寜鐓х儹闂ㄨ幏鍙栨満鍒惰幏鍙� @@ -274,13 +297,17 @@ if (type == null || type == ConsultResultType.TYPE3.value) { val p = PageHelper.startPage<EnforceCase>(_page, _perPage) val example = Example(EnforceCase::class.java).apply { - if (keyword.isNotBlank()) { + if (keywordList.isNotEmpty()) { createCriteria().orLike("ecScenes", "%${userInfo.extension2}%") .orEqualTo("ecScenes", "") .orIsNull("ecScenes") and( - createCriteria().orLike("ecTitle", "%${keyword}%") - .orLike("ecKeywords", "%${keyword}%") + createCriteria().apply { + keywordList.forEach { k -> + orLike("ecTitle", "%${k}%") + orLike("ecKeywords", "%${k}%") + } + } ) } else { // TODO: 2022/9/8 娌℃湁鍏抽敭瀛楁椂锛屾寜鐓х儹闂ㄨ幏鍙栨満鍒惰幏鍙� -- Gitblit v1.9.3