diff --git a/im-admin-ui/src/components/ImagePreview/index.vue b/im-admin-ui/src/components/ImagePreview/index.vue index 982e68b..e8950c3 100644 --- a/im-admin-ui/src/components/ImagePreview/index.vue +++ b/im-admin-ui/src/components/ImagePreview/index.vue @@ -57,8 +57,7 @@ const realHeight = computed(() => (typeof props.height == 'string' ? props.heigh .el-image { border-radius: 5px; background-color: #ebeef5; - box-shadow: 0 0 5px 1px #ccc; - + :deep(.el-image__inner) { transition: all 0.3s; cursor: pointer; diff --git a/im-admin-ui/src/layout/components/Navbar.vue b/im-admin-ui/src/layout/components/Navbar.vue index bcf6403..db4c7f2 100644 --- a/im-admin-ui/src/layout/components/Navbar.vue +++ b/im-admin-ui/src/layout/components/Navbar.vue @@ -272,8 +272,8 @@ watch( .user-avatar { cursor: pointer; - width: 40px; - height: 40px; + width: 35px; + height: 35px; border-radius: 10px; margin-top: 10px; } diff --git a/im-admin-ui/src/views/im/group/index.vue b/im-admin-ui/src/views/im/group/index.vue index 7abb89f..59731d8 100644 --- a/im-admin-ui/src/views/im/group/index.vue +++ b/im-admin-ui/src/views/im/group/index.vue @@ -56,8 +56,8 @@ diff --git a/im-admin-ui/src/views/im/user/index.vue b/im-admin-ui/src/views/im/user/index.vue index b4faffa..a4e4423 100644 --- a/im-admin-ui/src/views/im/user/index.vue +++ b/im-admin-ui/src/views/im/user/index.vue @@ -60,8 +60,8 @@ diff --git a/im-admin/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/config/CacheConfig.java b/im-admin/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/config/CacheConfig.java index d57ba4e..127f353 100644 --- a/im-admin/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/config/CacheConfig.java +++ b/im-admin/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/config/CacheConfig.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; import java.util.concurrent.TimeUnit; @@ -37,6 +38,7 @@ public class CacheConfig { /** * 自定义缓存管理器 整合spring-cache */ + @Primary @Bean public CacheManager cacheManager() { return new PlusSpringCacheManager(); diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/config/ImCacheConfig.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/config/ImCacheConfig.java index f78091a..94c96a6 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/config/ImCacheConfig.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/config/ImCacheConfig.java @@ -1,32 +1,58 @@ package org.dromara.im.config; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import lombok.AllArgsConstructor; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializationContext; import java.time.Duration; +@Configuration @EnableCaching @AllArgsConstructor public class ImCacheConfig extends CachingConfigurerSupport { + public final static String REDIS_CACHE_MANAGER = "redisCacheManager"; + private final RedisConnectionFactory factory; - private final GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer; - @Bean + @Bean(REDIS_CACHE_MANAGER) public CacheManager cacheManager() { // 设置redis缓存管理器 RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofSeconds(600)) - .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer)); + .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer())); return RedisCacheManager.builder(factory).cacheDefaults(cacheConfiguration).build(); } + + @Bean + public Jackson2JsonRedisSerializer jackson2JsonRedisSerializer() { + ObjectMapper om = new ObjectMapper(); + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + // 解决jackson2无法反序列化LocalDateTime的问题 + om.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + om.registerModule(new JavaTimeModule()); + om.setSerializationInclusion(JsonInclude.Include.NON_NULL); // 忽略空值 + om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); + //忽略无效字段 + om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + return new Jackson2JsonRedisSerializer<>(om, Object.class); + } + } diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/controller/ImGroupMessageController.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/controller/ImGroupMessageController.java index a5f5d82..f688325 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/controller/ImGroupMessageController.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/controller/ImGroupMessageController.java @@ -1,17 +1,9 @@ package org.dromara.im.controller; import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.common.idempotent.annotation.RepeatSubmit; -import org.dromara.common.log.annotation.Log; -import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; @@ -19,9 +11,10 @@ import org.dromara.im.domain.bo.ImGroupMessageBo; import org.dromara.im.domain.vo.ImGroupMessageVo; import org.dromara.im.service.IImGroupMessageService; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * 群消息 diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImGroupMemberBo.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImGroupMemberBo.java index 42d8e04..52201d4 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImGroupMemberBo.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImGroupMemberBo.java @@ -1,13 +1,7 @@ package org.dromara.im.domain.bo; import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import lombok.Data; -import lombok.EqualsAndHashCode; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.im.domain.ImGroupMember; import java.util.Date; diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImGroupMessageBo.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImGroupMessageBo.java index be60445..c349250 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImGroupMessageBo.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImGroupMessageBo.java @@ -1,13 +1,7 @@ package org.dromara.im.domain.bo; import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import lombok.Data; -import lombok.EqualsAndHashCode; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.im.domain.ImGroupMessage; import java.util.Date; diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImPrivateMessageBo.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImPrivateMessageBo.java index cf59ab2..7f26efd 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImPrivateMessageBo.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImPrivateMessageBo.java @@ -2,8 +2,6 @@ package org.dromara.im.domain.bo; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import lombok.EqualsAndHashCode; -import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.im.domain.ImPrivateMessage; import java.util.Date; diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImSensitiveWordBo.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImSensitiveWordBo.java index 0952660..4ce51b2 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImSensitiveWordBo.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/bo/ImSensitiveWordBo.java @@ -5,10 +5,8 @@ import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; -import lombok.EqualsAndHashCode; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.im.domain.ImSensitiveWord; import java.util.Date; diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/vo/ImGroupMessageVo.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/vo/ImGroupMessageVo.java index 0301df6..a0108cf 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/vo/ImGroupMessageVo.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/vo/ImGroupMessageVo.java @@ -6,7 +6,6 @@ import com.fhs.core.trans.anno.Trans; import com.fhs.core.trans.constant.TransType; import com.fhs.core.trans.vo.TransPojo; import io.github.linpeilie.annotations.AutoMapper; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.im.constant.ImConstant; import org.dromara.im.domain.ImGroup; @@ -14,7 +13,6 @@ import org.dromara.im.domain.ImGroupMessage; import org.dromara.im.domain.ImUser; import java.io.Serial; -import java.io.Serializable; import java.util.Date; diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/vo/ImSensitiveWordVo.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/vo/ImSensitiveWordVo.java index c5b1c1c..da5285d 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/vo/ImSensitiveWordVo.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/vo/ImSensitiveWordVo.java @@ -8,14 +8,10 @@ import com.fhs.core.trans.vo.TransPojo; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.translation.annotation.Translation; -import org.dromara.common.translation.constant.TransConstant; import org.dromara.im.domain.ImSensitiveWord; import org.dromara.system.domain.SysUser; -import org.springframework.boot.autoconfigure.security.SecurityProperties; import java.io.Serial; -import java.io.Serializable; import java.util.Date; /** diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/IImGroupMessageService.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/IImGroupMessageService.java index deb3e36..ca0660c 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/IImGroupMessageService.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/IImGroupMessageService.java @@ -5,7 +5,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.im.domain.bo.ImGroupMessageBo; import org.dromara.im.domain.vo.ImGroupMessageVo; -import java.util.Collection; import java.util.List; /** diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupMemberServiceImpl.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupMemberServiceImpl.java index 02a6a6c..0adba86 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupMemberServiceImpl.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupMemberServiceImpl.java @@ -18,7 +18,6 @@ import org.dromara.im.service.IImGroupMemberService; import org.springframework.stereotype.Service; import java.util.List; -import java.util.Map; /** * 群成员Service业务层处理 diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupMessageServiceImpl.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupMessageServiceImpl.java index 2b95f66..e6d5285 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupMessageServiceImpl.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupMessageServiceImpl.java @@ -5,20 +5,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; -import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.im.constant.ImConstant; import org.dromara.im.domain.ImGroupMessage; -import org.dromara.im.domain.ImPrivateMessage; import org.dromara.im.domain.bo.ImGroupMessageBo; import org.dromara.im.domain.vo.ImGroupMessageVo; import org.dromara.im.mapper.ImGroupMessageMapper; import org.dromara.im.service.IImGroupMessageService; import org.springframework.stereotype.Service; -import java.util.Collection; import java.util.List; import java.util.Map; diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupServiceImpl.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupServiceImpl.java index 0993ac8..de71976 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupServiceImpl.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImGroupServiceImpl.java @@ -12,6 +12,7 @@ import org.apache.logging.log4j.util.Strings; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.im.config.ImCacheConfig; import org.dromara.im.constant.ImConstant; import org.dromara.im.constant.ImRedisKey; import org.dromara.im.domain.ImGroup; @@ -35,10 +36,9 @@ import java.util.Map; * 群Service业务层处理 * * @author Blue - * @date 2024-12-22 */ @DS(ImConstant.DS_IM_PLATFORM) -@CacheConfig(cacheNames = ImRedisKey.IM_CACHE_GROUP) +@CacheConfig(cacheManager = ImCacheConfig.REDIS_CACHE_MANAGER ,cacheNames = ImRedisKey.IM_CACHE_GROUP) @RequiredArgsConstructor @Service public class ImGroupServiceImpl implements IImGroupService { @@ -128,7 +128,7 @@ public class ImGroupServiceImpl implements IImGroupService { return baseMapper.selectVoList(queryWrapper); } - private LambdaQueryWrapper buildQueryWrapper(ImGroupBo bo) {; + private LambdaQueryWrapper buildQueryWrapper(ImGroupBo bo) { Map params = bo.getParams(); LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.like(StringUtils.isNotBlank(bo.getName()), ImGroup::getName, bo.getName()); diff --git a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImSensitiveWordServiceImpl.java b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImSensitiveWordServiceImpl.java index 687c836..39b11f7 100644 --- a/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImSensitiveWordServiceImpl.java +++ b/im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImSensitiveWordServiceImpl.java @@ -20,7 +20,6 @@ import org.springframework.stereotype.Service; import java.util.Collection; import java.util.List; -import java.util.Map; /** * 敏感词Service业务层处理