Commit beb96394 by Future

增加缓存

parent be6d45dd
package com.wecloud.im.service.impl; package com.wecloud.im.service.impl;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.enums.BaseEnum;
import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.shiro.util.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
...@@ -100,6 +71,31 @@ import com.wecloud.im.ws.utils.RedisUtils; ...@@ -100,6 +71,31 @@ import com.wecloud.im.ws.utils.RedisUtils;
import com.wecloud.imserver.client.model.enums.DeviceTypeEnum; import com.wecloud.imserver.client.model.enums.DeviceTypeEnum;
import com.wecloud.utils.JsonUtils; import com.wecloud.utils.JsonUtils;
import com.wecloud.utils.SnowflakeUtil; import com.wecloud.utils.SnowflakeUtil;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.enums.BaseEnum;
import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.shiro.util.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static cn.hutool.core.date.DatePattern.CHINESE_DATE_PATTERN; import static cn.hutool.core.date.DatePattern.CHINESE_DATE_PATTERN;
import static com.wecloud.im.ws.enums.MsgTypeEnum.CONVERSATION_FORBID_ADD_FRIEND; import static com.wecloud.im.ws.enums.MsgTypeEnum.CONVERSATION_FORBID_ADD_FRIEND;
...@@ -121,7 +117,6 @@ import static com.wecloud.im.ws.enums.MsgTypeEnum.CONVERSATION_SET_GROUP_PORTRAI ...@@ -121,7 +117,6 @@ import static com.wecloud.im.ws.enums.MsgTypeEnum.CONVERSATION_SET_GROUP_PORTRAI
*/ */
@Slf4j @Slf4j
@Service @Service
@CacheConfig(cacheNames = "convstn")
public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMapper, ImConversation> implements ImConversationService { public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMapper, ImConversation> implements ImConversationService {
@Autowired @Autowired
...@@ -154,6 +149,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -154,6 +149,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
@Autowired @Autowired
private ImApplicationService applicationService; private ImApplicationService applicationService;
@Autowired
private RedisUtils redisUtils;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean saveImConversation(ImConversation imConversation) { public boolean saveImConversation(ImConversation imConversation) {
...@@ -794,14 +792,23 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -794,14 +792,23 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
} }
@Override @Override
// @Cacheable(key = "#p0")
public ImConversationQueryVo getCacheImConversationById(Long id) { public ImConversationQueryVo getCacheImConversationById(Long id) {
return imConversationMapper.getImConversationById(id); String key = "conversationId_" + id;
String conversationStr = redisUtils.getKey(key);
if (StringUtils.isNotBlank(conversationStr)) {
return JsonUtils.decodeJson(conversationStr, ImConversationQueryVo.class);
}
ImConversationQueryVo queryVo = imConversationMapper.getImConversationById(id);
if (queryVo == null) {
return null;
}
redisUtils.addKey(key, JsonUtils.encodeJson(queryVo), Duration.ofHours(1));
return queryVo;
} }
@Override @Override
@CacheEvict(key = "#p0")
public void deleteCacheImConversationById(Long id) { public void deleteCacheImConversationById(Long id) {
redisUtils.delKey("conversationId_" + id);
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment