From cceb51128b6c2ecace8897d171168b2b7f4943ba Mon Sep 17 00:00:00 2001 From: sunxiwang Date: Thu, 7 Jan 2021 19:35:40 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=97=A5=E6=9C=9F=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WeConversationArchiveServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeConversationArchiveServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeConversationArchiveServiceImpl.java index 05247eaae..6d6ef1192 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeConversationArchiveServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeConversationArchiveServiceImpl.java @@ -68,8 +68,8 @@ public class WeConversationArchiveServiceImpl implements IWeConversationArchiveS .minimumShouldMatch(1); //时间范围查询 if (StringUtils.isNotEmpty(query.getBeginTime()) && StringUtils.isNotEmpty(query.getEndTime())) { - Date beginTime = DateUtils.dateTime(query.getBeginTime(), DateUtils.YYYY_MM_DD); - Date endTime = DateUtils.dateTime(query.getEndTime(), DateUtils.YYYY_MM_DD); + Date beginTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD,query.getBeginTime()); + Date endTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD,query.getEndTime()); boolQueryBuilder.filter(QueryBuilders.rangeQuery("msgtime").gte(beginTime).lte(endTime)); } builder.query(boolQueryBuilder); @@ -105,8 +105,8 @@ public class WeConversationArchiveServiceImpl implements IWeConversationArchiveS //时间范围查询 if (StringUtils.isNotEmpty(query.getBeginTime()) && StringUtils.isNotEmpty(query.getEndTime())) { - Date beginTime = DateUtils.dateTime(query.getBeginTime(), DateUtils.YYYY_MM_DD); - Date endTime = DateUtils.dateTime(query.getEndTime(), DateUtils.YYYY_MM_DD); + Date beginTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD,query.getBeginTime()); + Date endTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD,query.getEndTime()); boolQueryBuilder.filter(QueryBuilders.rangeQuery("msgtime").gte(beginTime).lte(endTime)); } @@ -194,8 +194,8 @@ public class WeConversationArchiveServiceImpl implements IWeConversationArchiveS //时间范围查询 if (StringUtils.isNotEmpty(query.getBeginTime()) && StringUtils.isNotEmpty(query.getEndTime())) { - Date beginTime = DateUtils.dateTime(query.getBeginTime(), DateUtils.YYYY_MM_DD); - Date endTime = DateUtils.dateTime(query.getEndTime(), DateUtils.YYYY_MM_DD); + Date beginTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD,query.getBeginTime()); + Date endTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD,query.getEndTime()); boolQueryBuilder.filter(QueryBuilders.rangeQuery("msgtime").gte(beginTime).lte(endTime)); } builder.query(boolQueryBuilder); -- Gitee From 3c42d90b7088a2a5009cab9ee475c757da290aae Mon Sep 17 00:00:00 2001 From: ws <1048058229@qq.com> Date: Thu, 7 Jan 2021 23:49:06 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=B5=B7=E6=8A=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/wecom/WePosterController.java | 50 ++++++++++--------- .../wecom/WePosterFontController.java | 21 ++++---- .../common/utils/img/NetFileUtils.java | 13 ----- .../service/impl/WePosterServiceImpl.java | 9 +++- 4 files changed, 44 insertions(+), 49 deletions(-) diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterController.java index 885db14e1..13022c407 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterController.java @@ -5,22 +5,19 @@ import com.linkwechat.common.core.domain.AjaxResult; import com.linkwechat.common.enums.MediaType; import com.linkwechat.common.utils.SnowFlakeUtil; import com.linkwechat.common.utils.StringUtils; -import com.linkwechat.wecom.domain.WeMaterial; import com.linkwechat.wecom.domain.WePoster; -import com.linkwechat.wecom.domain.WePosterFont; import com.linkwechat.wecom.domain.WePosterSubassembly; import com.linkwechat.wecom.service.IWePosterFontService; import com.linkwechat.wecom.service.IWePosterService; import com.linkwechat.wecom.service.IWePosterSubassemblyService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.awt.*; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -46,8 +43,9 @@ public class WePosterController extends BaseController { @PostMapping(value = "insert") @ApiOperation("创建海报") + @PreAuthorize("@ss.hasAnyPermi('wecom:poster:insert')") @Transactional(rollbackFor = RuntimeException.class) - public AjaxResult insert(@RequestBody WePoster poster){ + public AjaxResult insert(@RequestBody WePoster poster) { wePosterService.generateSimpleImg(poster); poster.setId(SnowFlakeUtil.nextId()); poster.setDelFlag(0); @@ -68,37 +66,38 @@ public class WePosterController extends BaseController { @PutMapping(value = "update") @ApiOperation("修改海报") + @PreAuthorize("@ss.hasAnyPermi('wecom:poster:update')") @Transactional(rollbackFor = RuntimeException.class) - public AjaxResult update(@RequestBody WePoster poster){ - if(poster.getId() == null){ + public AjaxResult update(@RequestBody WePoster poster) { + if (poster.getId() == null) { return AjaxResult.error("id为空"); } poster.setMediaType(null); wePosterService.generateSimpleImg(poster); wePosterService.saveOrUpdate(poster); - List posterSubassemblyList = wePosterSubassemblyService.lambdaQuery().eq(WePosterSubassembly::getPosterId,poster.getId()).eq(WePosterSubassembly::getDelFlag,1).list(); - Map posterSubassemblyMap = posterSubassemblyList.stream().collect(Collectors.toMap(WePosterSubassembly::getId,p->p)); + List posterSubassemblyList = wePosterSubassemblyService.lambdaQuery().eq(WePosterSubassembly::getPosterId, poster.getId()).eq(WePosterSubassembly::getDelFlag, 1).list(); + Map posterSubassemblyMap = posterSubassemblyList.stream().collect(Collectors.toMap(WePosterSubassembly::getId, p -> p)); List insertList = new ArrayList<>(); List updateList = new ArrayList<>(); poster.getPosterSubassemblyList().forEach(wePosterSubassembly -> { - if(wePosterSubassembly.getId() == null){ + if (wePosterSubassembly.getId() == null) { wePosterSubassembly.setId(SnowFlakeUtil.nextId()); wePosterSubassembly.setPosterId(poster.getId()); wePosterSubassembly.setDelFlag(0); insertList.add(wePosterSubassembly); - }else { + } else { posterSubassemblyMap.remove(wePosterSubassembly.getId()); updateList.add(wePosterSubassembly); } }); - if(!CollectionUtils.isEmpty(insertList)) { + if (!CollectionUtils.isEmpty(insertList)) { wePosterSubassemblyService.saveBatch(insertList); } - if(!CollectionUtils.isEmpty(updateList)) { + if (!CollectionUtils.isEmpty(updateList)) { wePosterSubassemblyService.updateBatchById(updateList); } List deleteList = new ArrayList<>(posterSubassemblyMap.values()); - if(!CollectionUtils.isEmpty(deleteList)){ + if (!CollectionUtils.isEmpty(deleteList)) { deleteList.forEach(wePosterSubassembly -> wePosterSubassembly.setDelFlag(1)); wePosterSubassemblyService.updateBatchById(deleteList); } @@ -118,19 +117,21 @@ public class WePosterController extends BaseController { }*/ @GetMapping(value = "entity/{id}") + @PreAuthorize("@ss.hasAnyPermi('wecom:poster:entity')") @ApiOperation("查询海报详情") - public AjaxResult entity(@PathVariable Long id){ + public AjaxResult entity(@PathVariable Long id) { return AjaxResult.success(wePosterService.selectOne(id)); } @GetMapping(value = "page") @ApiOperation("分页查询海报") - public AjaxResult page(Long categoryId,String name){ + @PreAuthorize("@ss.hasAnyPermi('wecom:poster:page')") + public AjaxResult page(Long categoryId, String name) { startPage(); List fontList = wePosterService.lambdaQuery() - .eq(WePoster::getDelFlag,0) - .eq(categoryId != null,WePoster::getCategoryId,categoryId) - .like(StringUtils.isNotBlank(name),WePoster::getTitle,name) + .eq(WePoster::getDelFlag, 0) + .eq(categoryId != null, WePoster::getCategoryId, categoryId) + .like(StringUtils.isNotBlank(name), WePoster::getTitle, name) .orderByDesc(WePoster::getCreateTime) .list(); return AjaxResult.success(getDataTable(fontList)); @@ -138,14 +139,15 @@ public class WePosterController extends BaseController { @DeleteMapping(value = "delete/{id}") @ApiOperation(value = "删除海报") + @PreAuthorize("@ss.hasAnyPermi('wecom:poster:delete')") @Transactional(rollbackFor = RuntimeException.class) - public AjaxResult deletePosterFont(@PathVariable Long id){ - wePosterService.lambdaUpdate().set(WePoster::getDelFlag,1).eq(WePoster::getId,id); - wePosterSubassemblyService.lambdaUpdate().set(WePosterSubassembly::getDelFlag,1).eq(WePosterSubassembly::getPosterId,id); + public AjaxResult deletePosterFont(@PathVariable Long id) { + wePosterService.update( + wePosterService.lambdaUpdate().set(WePoster::getDelFlag, 1).eq(WePoster::getId, id)); + wePosterSubassemblyService.update( + wePosterSubassemblyService.lambdaUpdate().set(WePosterSubassembly::getDelFlag, 1).eq(WePosterSubassembly::getPosterId, id)); return AjaxResult.success("删除成功"); } - - } diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterFontController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterFontController.java index f38522e18..28d691e5e 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterFontController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterFontController.java @@ -4,7 +4,6 @@ import com.linkwechat.common.core.controller.BaseController; import com.linkwechat.common.core.domain.AjaxResult; import com.linkwechat.common.enums.MediaType; import com.linkwechat.common.utils.SnowFlakeUtil; -import com.linkwechat.web.controller.common.CommonController; import com.linkwechat.wecom.domain.WePosterFont; import com.linkwechat.wecom.service.IWePosterFontService; import io.swagger.annotations.Api; @@ -30,7 +29,7 @@ public class WePosterFontController extends BaseController { @PostMapping(value = "posterFont") @ApiOperation("创建海报字体") @Transactional(rollbackFor = RuntimeException.class) - public AjaxResult insertPosterFont(@RequestBody WePosterFont posterFont){ + public AjaxResult insertPosterFont(@RequestBody WePosterFont posterFont) { posterFont.setId(SnowFlakeUtil.nextId()); posterFont.setDelFlag(0); posterFont.setMediaType(MediaType.POSTER_FONT.getType()); @@ -42,8 +41,8 @@ public class WePosterFontController extends BaseController { @PutMapping(value = "posterFont") @ApiOperation("修改海报字体") @Transactional(rollbackFor = RuntimeException.class) - public AjaxResult updatePosterFont(@RequestBody WePosterFont posterFont){ - if(posterFont.getId() == null){ + public AjaxResult updatePosterFont(@RequestBody WePosterFont posterFont) { + if (posterFont.getId() == null) { return AjaxResult.error("id为空"); } posterFont.setMediaType(null); @@ -53,9 +52,9 @@ public class WePosterFontController extends BaseController { @GetMapping(value = "posterFontList") @ApiOperation("列表查询海报字体") - public AjaxResult selectPosterFontList(){ + public AjaxResult selectPosterFontList() { List fontList = wePosterFontService.lambdaQuery() - .eq(WePosterFont::getDelFlag,0) + .eq(WePosterFont::getDelFlag, 0) .orderByDesc(WePosterFont::getOrder) .orderByDesc(WePosterFont::getCreateTime) .list(); @@ -64,10 +63,10 @@ public class WePosterFontController extends BaseController { @GetMapping(value = "posterFontPage") @ApiOperation("分页查询海报字体") - public AjaxResult selectPosterFontPage(){ + public AjaxResult selectPosterFontPage() { startPage(); List fontList = wePosterFontService.lambdaQuery() - .eq(WePosterFont::getDelFlag,0) + .eq(WePosterFont::getDelFlag, 0) .orderByDesc(WePosterFont::getOrder) .orderByDesc(WePosterFont::getCreateTime) .list(); @@ -77,11 +76,11 @@ public class WePosterFontController extends BaseController { @DeleteMapping(value = "posterFont/{id}") @ApiOperation("删除海报字体") @Transactional(rollbackFor = RuntimeException.class) - public AjaxResult deletePosterFont(@PathVariable Long id){ - wePosterFontService.lambdaUpdate().set(WePosterFont::getDelFlag,1).eq(WePosterFont::getId,id); + public AjaxResult deletePosterFont(@PathVariable Long id) { + wePosterFontService.update( + wePosterFontService.lambdaUpdate().set(WePosterFont::getDelFlag, 1).eq(WePosterFont::getId, id)); return AjaxResult.success("删除成功"); } - } diff --git a/linkwe-common/src/main/java/com/linkwechat/common/utils/img/NetFileUtils.java b/linkwe-common/src/main/java/com/linkwechat/common/utils/img/NetFileUtils.java index 547dfe0d5..f8ceee1d8 100644 --- a/linkwe-common/src/main/java/com/linkwechat/common/utils/img/NetFileUtils.java +++ b/linkwe-common/src/main/java/com/linkwechat/common/utils/img/NetFileUtils.java @@ -25,19 +25,6 @@ public class NetFileUtils { private static final WebClient webClient = WebClient.create(vertx); - public static void main(String[] args) { - FileCallable fileCallable = getNetFile("https://pc-index-skin.cdn.bcebos.com/hiphoto/51631423522.jpg?x-bce-process=image/crop,x_0,y_13,w_1999,h_1250"); - ByteArrayOutputStream byteArrayOutputStream = getByteArrayOutputStream(fileCallable,true); - StreamMultipartFile file = new StreamMultipartFile("你好啊.jpg",byteArrayOutputStream.toByteArray()); - File f = new File("D:/网页/2.jpg"); - try { - file.transferTo(f); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public static FileCallable getNetFile(String urlPath){ FileCallable fileCallable = new FileCallable(); diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java index 7dcc4b7c7..6ea106ad2 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java @@ -7,10 +7,12 @@ import com.linkwechat.common.utils.file.FileUploadUtils; import com.linkwechat.common.utils.file.FileUtils; import com.linkwechat.common.utils.img.ImageUtils; import com.linkwechat.common.utils.img.NetFileUtils; +import com.linkwechat.wecom.domain.WeCategory; import com.linkwechat.wecom.domain.WePoster; import com.linkwechat.wecom.domain.WePosterFont; import com.linkwechat.wecom.domain.WePosterSubassembly; import com.linkwechat.wecom.mapper.WePosterMapper; +import com.linkwechat.wecom.service.IWeCategoryService; import com.linkwechat.wecom.service.IWePosterFontService; import com.linkwechat.wecom.service.IWePosterService; import com.linkwechat.wecom.service.IWePosterSubassemblyService; @@ -54,6 +56,9 @@ public class WePosterServiceImpl extends ServiceImpl i @Resource private ServerConfig serverConfig; + @Resource + private IWeCategoryService weCategoryService; + /** * 查询一条 @@ -86,8 +91,10 @@ public class WePosterServiceImpl extends ServiceImpl i }); } } - } + /*if(poster.getCategoryId() != null){ + weCategoryService.findWeCategoryById(poster.getId()); + }*/ return poster; } -- Gitee From 8f46f86814a51180e28339bb6ea40411a2d53979 Mon Sep 17 00:00:00 2001 From: sunxiwang Date: Fri, 8 Jan 2021 11:13:52 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BC=9A=E8=AF=9D?= =?UTF-8?q?=E6=8B=89=E5=8E=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/linkwechat/quartz/task/RyTask.java | 4 ++-- .../wecom/service/IWeChatContactMappingService.java | 2 +- .../service/impl/WeChatContactMappingServiceImpl.java | 9 +++------ 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/linkwe-quartz/src/main/java/com/linkwechat/quartz/task/RyTask.java b/linkwe-quartz/src/main/java/com/linkwechat/quartz/task/RyTask.java index b1155dc13..57beccf9c 100644 --- a/linkwe-quartz/src/main/java/com/linkwechat/quartz/task/RyTask.java +++ b/linkwe-quartz/src/main/java/com/linkwechat/quartz/task/RyTask.java @@ -76,10 +76,10 @@ public class RyTask { "", redisCache); if (CollectionUtil.isNotEmpty(chatDataList)){ try { + List elasticSearchEntities = weChatContactMappingService.saveWeChatContactMapping(chatDataList); List>> consumerList = Lists.newArrayList(); - consumerList.add(weChatContactMappingService::saveWeChatContactMapping); consumerList.add(weSensitiveService::hitSensitive); - elasticSearch.insertBatchAsync(WeConstans.WECOM_FINANCE_INDEX, chatDataList, consumerList); + elasticSearch.insertBatchAsync(WeConstans.WECOM_FINANCE_INDEX, elasticSearchEntities, consumerList); } catch (Exception e) { log.error("消息处理异常:ex:{}", e); e.printStackTrace(); diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeChatContactMappingService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeChatContactMappingService.java index 2270549ee..7d2af458d 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeChatContactMappingService.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeChatContactMappingService.java @@ -70,7 +70,7 @@ public interface IWeChatContactMappingService extends IService saveWeChatContactMapping(List query); + public List saveWeChatContactMapping(List query); /** * 按客户查询关系映射列表 diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeChatContactMappingServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeChatContactMappingServiceImpl.java index 7c0a9d45d..7df1e3251 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeChatContactMappingServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeChatContactMappingServiceImpl.java @@ -160,11 +160,9 @@ public class WeChatContactMappingServiceImpl extends ServiceImpl saveWeChatContactMapping(List query) { - List resultList = new ArrayList<>(); + public List saveWeChatContactMapping(List query) { + List resultList = new ArrayList<>(); query.stream().filter(chatData -> StringUtils.isNotEmpty(chatData.getString("from"))).forEach(chatData -> { - ElasticSearchEntity elasticSearchEntity = new ElasticSearchEntity(); - elasticSearchEntity.setId(chatData.getString("msgid")); //发送人映射数据 WeChatContactMapping fromWeChatContactMapping = new WeChatContactMapping(); String fromId = chatData.getString("from"); @@ -194,8 +192,7 @@ public class WeChatContactMappingServiceImpl extends ServiceImpl Date: Fri, 8 Jan 2021 11:23:08 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9insertBatchAsync?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/linkwechat/common/core/elasticsearch/ElasticSearch.java | 2 +- .../linkwechat/wecom/service/impl/WeSensitiveServiceImpl.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/linkwe-common/src/main/java/com/linkwechat/common/core/elasticsearch/ElasticSearch.java b/linkwe-common/src/main/java/com/linkwechat/common/core/elasticsearch/ElasticSearch.java index 7ad7c6e39..523d0738c 100644 --- a/linkwe-common/src/main/java/com/linkwechat/common/core/elasticsearch/ElasticSearch.java +++ b/linkwe-common/src/main/java/com/linkwechat/common/core/elasticsearch/ElasticSearch.java @@ -216,7 +216,7 @@ public class ElasticSearch { */ public void insertBatchAsync(String idxName, List list, List>> consumers) { BulkRequest request = new BulkRequest(); - list.forEach(item -> request.add(new IndexRequest(idxName, "_doc").id(item.getString("msgid")) + list.parallelStream().forEach(item -> request.add(new IndexRequest(idxName, "_doc").id(item.getString("msgid")) .source(item, XContentType.JSON))); try { restHighLevelClient.bulkAsync(request, RequestOptions.DEFAULT, getActionListener(list, consumers)); diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeSensitiveServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeSensitiveServiceImpl.java index 639a05ae9..846d06de9 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeSensitiveServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeSensitiveServiceImpl.java @@ -165,6 +165,7 @@ public class WeSensitiveServiceImpl implements IWeSensitiveService { @Override public void hitSensitive(List entityList) { + log.info("执行敏感词命中过滤,time=[{}]", System.currentTimeMillis()); //获取所有的敏感词规则 List allSensitiveRules = weSensitiveMapper.selectWeSensitiveList(new WeSensitive()); //根据规则过滤命中 -- Gitee From c1ded1be4f7ce5d0e3a11c70286b0792dbcff073 Mon Sep 17 00:00:00 2001 From: leejoker <1056650571@qq.com> Date: Sat, 9 Jan 2021 17:15:00 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=97=B6=E5=9B=A0=E6=B2=A1=E6=9C=89=E5=88=9B=E5=BB=BA=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=E6=8A=9B=E5=87=BA=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WeSensitiveServiceImpl.java | 55 +++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeSensitiveServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeSensitiveServiceImpl.java index 846d06de9..9944490aa 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeSensitiveServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeSensitiveServiceImpl.java @@ -22,6 +22,8 @@ import com.linkwechat.wecom.service.IWeUserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.exception.ExceptionUtils; +import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; @@ -30,7 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.io.IOException; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -176,18 +177,14 @@ public class WeSensitiveServiceImpl implements IWeSensitiveService { List users = getScopeUsers(weSensitive.getAuditUserScope()); jsonList.addAll(hitSensitiveInES(patternWords, users)); //将命中结果插入es - try { - addHitSensitiveList(jsonList, weSensitive); - } catch (IOException e) { - log.warn("添加敏感词命中信息失败, jsonList={}, auditUserId={}, exception={}", - jsonList, weSensitive.getAuditUserId(), ExceptionUtils.getStackTrace(e)); - } + addHitSensitiveList(jsonList, weSensitive); }); } } @Override public PageInfo getHitSensitiveList(WeSensitiveHitQuery weSensitiveHitQuery) { + elasticSearch.createIndex2(WeConstans.WECOM_SENSITIVE_HIT_INDEX, getSensitiveHitMapping()); List userIds = Lists.newArrayList(); if (weSensitiveHitQuery.getScopeType().equals(WeConstans.USE_SCOP_BUSINESSID_TYPE_USER)) { userIds.add(weSensitiveHitQuery.getAuditScopeId()); @@ -219,9 +216,8 @@ public class WeSensitiveServiceImpl implements IWeSensitiveService { return elasticSearch.searchPage(WeConstans.WECOM_SENSITIVE_HIT_INDEX, builder, pageNum, pageSize, JSONObject.class); } - private void addHitSensitiveList(List json, WeSensitive weSensitive) throws IOException { - //创建索引 - elasticSearch.createIndex2(WeConstans.WECOM_SENSITIVE_HIT_INDEX, elasticSearch.getFinanceMapping()); + private void addHitSensitiveList(List json, WeSensitive weSensitive) { + elasticSearch.createIndex2(WeConstans.WECOM_SENSITIVE_HIT_INDEX, getSensitiveHitMapping()); if (weSensitive.getAlertFlag().equals(1)) { //针对每一条命中信息发送消息通知给相应的审计人 TODO } @@ -271,4 +267,43 @@ public class WeSensitiveServiceImpl implements IWeSensitiveService { builder.query(searchBuilder); return elasticSearch.search(WeConstans.WECOM_FINANCE_INDEX, builder, JSONObject.class); } + + private XContentBuilder getSensitiveHitMapping() { + try { + //创建索引 + XContentBuilder mapping = XContentFactory.jsonBuilder() + .startObject() + .startObject("properties") + .startObject("msgid") + .field("type", "keyword") + .endObject() + .startObject("seq") + .field("type", "long") + .endObject() + .startObject("action") + .field("type", "keyword") + .endObject() + .startObject("from") + .field("type", "keyword") + .endObject() + .startObject("roomid") + .field("type", "keyword") + .endObject() + .startObject("msgtime") + .field("type", "long") + .endObject() + .startObject("msgtype") + .field("type", "keyword") + .endObject() + .startObject("alerted") + .field("type", "keyword") + .endObject() + .endObject() + .endObject(); + return mapping; + } catch (Exception e) { + log.warn("create sensitive-hit mapping failed, exception={}", ExceptionUtils.getStackTrace(e)); + } + return null; + } } -- Gitee