diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java index 82efb9b1..bf6624eb 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java @@ -1,11 +1,5 @@ package com.ruoyi.common.redis.service; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.TimeUnit; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.BoundSetOperations; import org.springframework.data.redis.core.HashOperations; @@ -13,64 +7,62 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Component; +import java.util.*; +import java.util.concurrent.TimeUnit; + /** * spring redis 工具类 - * + * * @author ruoyi **/ -@SuppressWarnings(value = { "unchecked", "rawtypes" }) +@SuppressWarnings(value = {"unchecked", "rawtypes"}) @Component -public class RedisService -{ +public class RedisService { @Autowired public RedisTemplate redisTemplate; /** * 缓存基本的对象,Integer、String、实体类等 * - * @param key 缓存的键值 + * @param key 缓存的键值 * @param value 缓存的值 */ - public void setCacheObject(final String key, final T value) - { + public void setCacheObject(final String key, final T value) { redisTemplate.opsForValue().set(key, value); } /** * 缓存基本的对象,Integer、String、实体类等 * - * @param key 缓存的键值 - * @param value 缓存的值 - * @param timeout 时间 + * @param key 缓存的键值 + * @param value 缓存的值 + * @param timeout 时间 * @param timeUnit 时间颗粒度 */ - public void setCacheObject(final String key, final T value, final Long timeout, final TimeUnit timeUnit) - { + public void setCacheObject(final String key, final T value, final Long timeout, final TimeUnit timeUnit) { redisTemplate.opsForValue().set(key, value, timeout, timeUnit); } /** * 设置有效时间 * - * @param key Redis键 + * @param key Redis键 * @param timeout 超时时间 * @return true=设置成功;false=设置失败 */ - public boolean expire(final String key, final long timeout) - { + public boolean expire(final String key, final long timeout) { return expire(key, timeout, TimeUnit.SECONDS); } /** * 设置有效时间 * - * @param key Redis键 + * @param key Redis键 * @param timeout 超时时间 - * @param unit 时间单位 + * @param unit 时间单位 * @return true=设置成功;false=设置失败 */ - public boolean expire(final String key, final long timeout, final TimeUnit unit) - { + public boolean expire(final String key, final long timeout, final TimeUnit unit) { return redisTemplate.expire(key, timeout, unit); } @@ -80,8 +72,7 @@ public class RedisService * @param key Redis键 * @return 有效时间 */ - public long getExpire(final String key) - { + public long getExpire(final String key) { return redisTemplate.getExpire(key); } @@ -91,8 +82,7 @@ public class RedisService * @param key 键 * @return true 存在 false不存在 */ - public Boolean hasKey(String key) - { + public Boolean hasKey(String key) { return redisTemplate.hasKey(key); } @@ -102,8 +92,7 @@ public class RedisService * @param key 缓存键值 * @return 缓存键值对应的数据 */ - public T getCacheObject(final String key) - { + public T getCacheObject(final String key) { ValueOperations operation = redisTemplate.opsForValue(); return operation.get(key); } @@ -113,8 +102,7 @@ public class RedisService * * @param key */ - public boolean deleteObject(final String key) - { + public boolean deleteObject(final String key) { return redisTemplate.delete(key); } @@ -124,20 +112,18 @@ public class RedisService * @param collection 多个对象 * @return */ - public long deleteObject(final Collection collection) - { + public long deleteObject(final Collection collection) { return redisTemplate.delete(collection); } /** * 缓存List数据 * - * @param key 缓存的键值 + * @param key 缓存的键值 * @param dataList 待缓存的List数据 * @return 缓存的对象 */ - public long setCacheList(final String key, final List dataList) - { + public long setCacheList(final String key, final List dataList) { Long count = redisTemplate.opsForList().rightPushAll(key, dataList); return count == null ? 0 : count; } @@ -148,24 +134,21 @@ public class RedisService * @param key 缓存的键值 * @return 缓存键值对应的数据 */ - public List getCacheList(final String key) - { + public List getCacheList(final String key) { return redisTemplate.opsForList().range(key, 0, -1); } /** * 缓存Set * - * @param key 缓存键值 + * @param key 缓存键值 * @param dataSet 缓存的数据 * @return 缓存数据的对象 */ - public BoundSetOperations setCacheSet(final String key, final Set dataSet) - { + public BoundSetOperations setCacheSet(final String key, final Set dataSet) { BoundSetOperations setOperation = redisTemplate.boundSetOps(key); Iterator it = dataSet.iterator(); - while (it.hasNext()) - { + while (it.hasNext()) { setOperation.add(it.next()); } return setOperation; @@ -177,8 +160,7 @@ public class RedisService * @param key * @return */ - public Set getCacheSet(final String key) - { + public Set getCacheSet(final String key) { return redisTemplate.opsForSet().members(key); } @@ -188,8 +170,7 @@ public class RedisService * @param key * @param dataMap */ - public void setCacheMap(final String key, final Map dataMap) - { + public void setCacheMap(final String key, final Map dataMap) { if (dataMap != null) { redisTemplate.opsForHash().putAll(key, dataMap); } @@ -201,32 +182,29 @@ public class RedisService * @param key * @return */ - public Map getCacheMap(final String key) - { + public Map getCacheMap(final String key) { return redisTemplate.opsForHash().entries(key); } /** * 往Hash中存入数据 * - * @param key Redis键 - * @param hKey Hash键 + * @param key Redis键 + * @param hKey Hash键 * @param value 值 */ - public void setCacheMapValue(final String key, final String hKey, final T value) - { + public void setCacheMapValue(final String key, final String hKey, final T value) { redisTemplate.opsForHash().put(key, hKey, value); } /** * 获取Hash中的数据 * - * @param key Redis键 + * @param key Redis键 * @param hKey Hash键 * @return Hash中的对象 */ - public T getCacheMapValue(final String key, final String hKey) - { + public T getCacheMapValue(final String key, final String hKey) { HashOperations opsForHash = redisTemplate.opsForHash(); return opsForHash.get(key, hKey); } @@ -234,23 +212,32 @@ public class RedisService /** * 获取多个Hash中的数据 * - * @param key Redis键 + * @param key Redis键 * @param hKeys Hash键集合 * @return Hash对象集合 */ - public List getMultiCacheMapValue(final String key, final Collection hKeys) - { + public List getMultiCacheMapValue(final String key, final Collection hKeys) { return redisTemplate.opsForHash().multiGet(key, hKeys); } /** * 获得缓存的基本对象列表 - * + * * @param pattern 字符串前缀 * @return 对象列表 */ - public Collection keys(final String pattern) - { + public Collection keys(final String pattern) { return redisTemplate.keys(pattern); } + + + /** + * 删hash集合某个元素 + * + * @param key redis键 + * @param hkey hash键 + */ + public void dHashByKey(String key, String hkey) { + redisTemplate.opsForHash().delete(key, hkey); + } } diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/word/service/impl/EnglishWordServiceImpl.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/word/service/impl/EnglishWordServiceImpl.java index 2a082d5d..991b4aa4 100644 --- a/xjs-business/xjs-business-english/src/main/java/com/xjs/word/service/impl/EnglishWordServiceImpl.java +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/word/service/impl/EnglishWordServiceImpl.java @@ -11,6 +11,7 @@ import com.xjs.utils.ChineseUtil; import com.xjs.word.domain.EnglishWord; import com.xjs.word.mapper.EnglishWordMapper; import com.xjs.word.service.IEnglishWordService; +import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -28,6 +29,7 @@ import static com.xjs.consts.RedisConst.TRAN_DICT_EXPIRE; * @date 2021-12-29 */ @Service +@Log4j2 public class EnglishWordServiceImpl implements IEnglishWordService { @Resource private EnglishWordMapper englishWordMapper; @@ -110,6 +112,19 @@ public class EnglishWordServiceImpl implements IEnglishWordService { return englishWordMapper.insert(englishWord); } + /** + * 修改英语单词 (修改需要清除redis) + * + * @param englishWord 英语单词 + * @return 结果 + */ + @Override + public int updateEnglishWord(EnglishWord englishWord) { + String hkey = englishWord.getEnglishWord() + ":" + englishWord.getId(); + redisService.dHashByKey(TRAN_DICT, hkey); + return englishWordMapper.updateById(englishWord); + } + //------------------------代码自动生成----------------------------------- @@ -124,19 +139,6 @@ public class EnglishWordServiceImpl implements IEnglishWordService { return englishWordMapper.selectEnglishWordList(englishWord); } - /** - * 修改英语单词 (修改需要清除redis) - * - * @param englishWord 英语单词 - * @return 结果 - */ - @Override - public int updateEnglishWord(EnglishWord englishWord) { - - - return englishWordMapper.updateById(englishWord); - } - /** * 批量删除英语单词 * diff --git a/xjs-business/xjs-business-openapi/src/test/java/com/xjs/copywriting/factory/impl/TianXingPYQCopyWritingFactoryTestJob.java b/xjs-business/xjs-business-openapi/src/test/java/com/xjs/copywriting/factory/impl/TianXingPYQCopyWritingFactoryTestJob.java index 347af536..f21d19ac 100644 --- a/xjs-business/xjs-business-openapi/src/test/java/com/xjs/copywriting/factory/impl/TianXingPYQCopyWritingFactoryTestJob.java +++ b/xjs-business/xjs-business-openapi/src/test/java/com/xjs/copywriting/factory/impl/TianXingPYQCopyWritingFactoryTestJob.java @@ -1,8 +1,8 @@ package com.xjs.copywriting.factory.impl; +import com.ruoyi.common.redis.service.RedisService; import com.xjs.XjsOpenApiApp; import com.xjs.copywriting.domain.RequestBody; -import com.xjs.copywriting.factory.CopyWritingFactory; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -15,11 +15,21 @@ import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest(classes = XjsOpenApiApp.class) class TianXingPYQCopyWritingFactoryTestJob { + @Autowired(required = false) + TianXingPYQCopyWritingFactory tianXingCopyWritingFactory; + @Autowired - CopyWritingFactory tianXingCopyWritingFactory; + RedisService redisService; @Test void productCopyWriting() { tianXingCopyWritingFactory.productCopyWriting(new RequestBody()); } + + + @Test + void testRedis() { + redisService.dHashByKey("tranDict", + "interface:1476499056043425794"); + } } \ No newline at end of file