From 0f127d5b6a8d2d9824a2d227c1d8b4026d38d737 Mon Sep 17 00:00:00 2001 From: "liang.chao" <1360241448@qq.com> Date: Mon, 23 Dec 2024 17:04:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/BmMessageController.java | 8 +++ .../basic/service/IBmMessageService.java | 3 + .../service/impl/BmMessageServiceImpl.java | 60 ++++++++++++++----- .../reply/controller/ReplyController.java | 2 +- .../mapper/material/device/SafeBookMapper.xml | 25 ++++---- 5 files changed, 69 insertions(+), 29 deletions(-) diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmMessageController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmMessageController.java index 084524e..a95dfbf 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmMessageController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/BmMessageController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.bonus.common.log.enums.OperaType; import com.bonus.material.common.annotation.PreventRepeatSubmit; +import com.fasterxml.jackson.core.JsonProcessingException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -44,6 +45,13 @@ public class BmMessageController extends BaseController { List list = bmMessageService.selectBmMessageListFromCache(bmMessage); return AjaxResult.success(list); } + @ApiOperation(value = "查询消息列表") + //@RequiresPermissions("basic:message:list") + @GetMapping("/listOneToOne") + public AjaxResult listOneToOne(BmMessage bmMessage) throws JsonProcessingException { + List list = bmMessageService.selectBmMessageListFromCacheOne(bmMessage); + return AjaxResult.success(list); + } /** * 查询消息列表 diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/IBmMessageService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/IBmMessageService.java index 1554e64..6d492e5 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/IBmMessageService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/IBmMessageService.java @@ -2,6 +2,7 @@ package com.bonus.material.basic.service; import java.util.List; import com.bonus.material.basic.domain.BmMessage; +import com.fasterxml.jackson.core.JsonProcessingException; /** * 消息Service接口 @@ -59,4 +60,6 @@ public interface IBmMessageService { * @return 结果 */ public int deleteBmMessageById(Long id); + + List selectBmMessageListFromCacheOne(BmMessage bmMessage) throws JsonProcessingException; } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/BmMessageServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/BmMessageServiceImpl.java index 6b14dce..a01b58f 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/BmMessageServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/BmMessageServiceImpl.java @@ -1,21 +1,28 @@ package com.bonus.material.basic.service.impl; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; +import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Function; import java.util.stream.Collectors; -import com.alibaba.fastjson2.JSONObject; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONReader; import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; +import com.bonus.common.core.utils.SpringUtils; +import com.bonus.common.core.utils.StringUtils; import com.bonus.common.redis.service.RedisService; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.system.api.domain.SysDictData; +import com.fasterxml.jackson.core.JsonProcessingException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.bonus.material.basic.mapper.BmMessageMapper; import com.bonus.material.basic.domain.BmMessage; import com.bonus.material.basic.service.IBmMessageService; + import javax.annotation.Resource; @Service @@ -28,7 +35,7 @@ public class BmMessageServiceImpl implements IBmMessageService { /** * 查询消息 - * + * * @param id 消息主键 * @return 消息 */ @@ -39,7 +46,7 @@ public class BmMessageServiceImpl implements IBmMessageService { /** * 查询消息列表 - * + * * @param bmMessage 消息 * @return 消息 */ @@ -54,14 +61,38 @@ public class BmMessageServiceImpl implements IBmMessageService { @Override public List selectBmMessageListFromCache(BmMessage bmMessage) { Long companyId = SecurityUtils.getLoginUser().getSysUser().getCompanyId(); - List bmMessages = redisService.getCacheList(MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + DateUtils.getDate()); - List result = bmMessages.stream().filter(o -> companyId.equals(o.getFromCompany()) || companyId.equals(o.getToCompany())).collect(Collectors.toList()); + Collection keys = SpringUtils.getBean(RedisService.class).keys(MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + "*"); + List list = new ArrayList<>(); + keys.stream().forEach(t -> { + JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(t); + list.addAll(arrayCache.toList(BmMessage.class)); + }); + List result = list.stream().filter(o -> companyId.equals(o.getFromCompany())).collect(Collectors.toList()); + Map groupedMessages = result.stream() + .collect(Collectors.toMap( + BmMessage::getFromCompany, + Function.identity(), + (existing, replacement) -> existing + )); + List messages = new ArrayList<>(groupedMessages.values()); + return messages; + } + + public List selectBmMessageListFromCacheOne(BmMessage bmMessage) { + Long companyId = SecurityUtils.getLoginUser().getSysUser().getCompanyId(); + Collection keys = SpringUtils.getBean(RedisService.class).keys(MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + "*"); + List list = new ArrayList<>(); + keys.stream().forEach(t -> { + JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(t); + list.addAll(arrayCache.toList(BmMessage.class)); + }); + List result = list.stream().filter(o -> companyId.equals(o.getFromCompany()) && o.getToCompany().equals(bmMessage.getToCompany())).collect(Collectors.toList()); return result; } /** * 新增消息 - * + * * @param bmMessage 消息 * @return 结果 */ @@ -73,9 +104,8 @@ public class BmMessageServiceImpl implements IBmMessageService { bmMessage.setFromCompany(companyId); bmMessage.setFromUser(SecurityUtils.getLoginUser().getSysUser().getUserId()); bmMessage.setUuid(String.valueOf(UUID.randomUUID())); - String msgKey = MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + DateUtils.getDate(); - String msgContent = JSONObject.toJSONString(bmMessage); - redisService.setCacheObject(msgKey, msgContent, MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE_HOURS, TimeUnit.HOURS); + String msgKey = MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE + System.currentTimeMillis(); + (SpringUtils.getBean(RedisService.class)).setCacheObject(msgKey, Arrays.asList(bmMessage), MaterialConstants.CACHE_MATERIAL_MALL_MESSAGE_HOURS, TimeUnit.HOURS); return bmMessageMapper.insertBmMessage(bmMessage); } catch (Exception e) { throw new ServiceException("错误信息描述"); @@ -84,7 +114,7 @@ public class BmMessageServiceImpl implements IBmMessageService { /** * 修改消息 - * + * * @param bmMessage 消息 * @return 结果 */ @@ -100,7 +130,7 @@ public class BmMessageServiceImpl implements IBmMessageService { /** * 批量删除消息 - * + * * @param ids 需要删除的消息主键 * @return 结果 */ @@ -111,7 +141,7 @@ public class BmMessageServiceImpl implements IBmMessageService { /** * 删除消息信息 - * + * * @param id 消息主键 * @return 结果 */ diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/reply/controller/ReplyController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/reply/controller/ReplyController.java index 860ed94..9729857 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/reply/controller/ReplyController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/reply/controller/ReplyController.java @@ -23,7 +23,7 @@ public class ReplyController extends BaseController { private ReplyService replyService; @GetMapping("/list") - @ApiOperation("获取公司列表") + @ApiOperation("获取快捷回复列表") public AjaxResult list(BmReply bmReply) { startPage(); List list = replyService.list(bmReply); diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/SafeBookMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/SafeBookMapper.xml index 6433e72..40be399 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/SafeBookMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/SafeBookMapper.xml @@ -17,27 +17,26 @@