diff --git a/cloud-common/cloud-common-cache/pom.xml b/cloud-common/cloud-common-cache/pom.xml
index 8fb18c6..12b64f4 100644
--- a/cloud-common/cloud-common-cache/pom.xml
+++ b/cloud-common/cloud-common-cache/pom.xml
@@ -11,7 +11,7 @@
cloud-common-cache
- cloud-common-cache 本地换存
+ cloud-common-cache 缓存基准
17
@@ -19,28 +19,12 @@
UTF-8
-
- com.google.guava
- guava
- 33.0.0-jre
-
+
- logkit
- logkit
- 1.0.1
+ com.muyu
+ cloud-common-redis
-
- org.projectlombok
- lombok
-
-
- com.github.ben-manes.caffeine
- caffeine
- 2.9.3
-
-
-
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/AtomicSequenceCache.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/AtomicSequenceCache.java
new file mode 100644
index 0000000..6215b75
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/AtomicSequenceCache.java
@@ -0,0 +1,37 @@
+package com.muyu.common.cache;
+
+import com.muyu.common.cache.decoration.DecorationKey;
+
+/**
+ * @author DongZl
+ * @description: 原子序列缓存基准
+ * @Date 2024-4-1 下午 08:07
+ */
+public interface AtomicSequenceCache extends DecorationKey {
+
+ /**
+ * 获取存储的值
+ * @param key 键
+ * @return 值
+ */
+ public Long get(K key);
+
+ /**
+ * 自增
+ */
+ public Long increment(K key);
+ /**
+ * 自减
+ */
+ public Long decrement(K key);
+
+ /**
+ * 增加数值
+ */
+ public Long increment(K key, Long number);
+
+ /**
+ * 减少数值
+ */
+ public Long decrement(K key, Long number);
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/BasicCacheData.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/BasicCacheData.java
new file mode 100644
index 0000000..3ae5073
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/BasicCacheData.java
@@ -0,0 +1,11 @@
+package com.muyu.common.cache;
+
+/**
+ * 数据转换接口
+ * @param 数据键
+ * @param 数据值
+ */
+public interface BasicCacheData {
+
+ public V apply(K key);
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/Cache.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/Cache.java
new file mode 100644
index 0000000..9d96206
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/Cache.java
@@ -0,0 +1,43 @@
+package com.muyu.common.cache;
+
+import com.muyu.common.cache.decoration.DecorationKey;
+
+/**
+ * @author DongZl
+ * @description: 缓存接口基类
+ * @Date 2024-3-26 下午 03:25
+ */
+public interface Cache extends DecorationKey {
+
+ /**
+ * 通过Key获取value值
+ * @param key 键
+ * @return 值
+ */
+ public V get(K key);
+
+ /**
+ * 缓存添加/修改
+ * @param key 键
+ * @param value 值
+ */
+ public void put(K key, V value);
+
+ /**
+ * 通过键删除
+ * @param key 键
+ */
+ public void remove(K key);
+
+ /**
+ * 刷新缓存时间
+ * @param key 键
+ */
+ public void refreshTime (K key);
+
+ /**
+ * 刷新缓存数据
+ * @param key 键
+ */
+ public void refreshData (K key);
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/CaffeineTest.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/CaffeineTest.java
deleted file mode 100644
index 7158738..0000000
--- a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/CaffeineTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.muyu.common.cache;
-
-import com.github.benmanes.caffeine.cache.Cache;
-import com.github.benmanes.caffeine.cache.Caffeine;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.concurrent.TimeUnit;
-
-@Slf4j
-public class CaffeineTest {
- public static void main(String[] args) {
- Cache cache = Caffeine.newBuilder()
- .initialCapacity(5)
- // 超出时淘汰
- .maximumSize(10)
- //设置写缓存后n秒钟过期
- .expireAfterWrite(60, TimeUnit.SECONDS)
- //设置读写缓存后n秒钟过期,实际很少用到,类似于expireAfterWrite
- //.expireAfterAccess(17, TimeUnit.SECONDS)
- .build();
-
- String orderId = String.valueOf(123456789);
- String orderInfo = cache.get(orderId, key -> getInfo(key));
- System.out.println(orderInfo);
- }
-
- private static String getInfo(String orderId) {
- String info = "";
- // 先查询redis缓存
- log.info("get data from redis");
-
- // 当redis缓存不存在查db
- log.info("get data from mysql");
- info = String.format("{orderId=%s}", orderId);
- return info;
- }
-}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/GuavaCacheTest.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/GuavaCacheTest.java
deleted file mode 100644
index f9dd5d9..0000000
--- a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/GuavaCacheTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.muyu.common.cache;
-
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-
-@Slf4j
-public class GuavaCacheTest {
- public static void main(String[] args) throws ExecutionException {
- Cache cache = CacheBuilder.newBuilder()
- .initialCapacity(5) // 初始容量
- .maximumSize(10) // 最大缓存数,超出淘汰
- .expireAfterWrite(60, TimeUnit.SECONDS) // 过期时间
- .build();
-
- String orderId = String.valueOf(123456789);
- // 获取orderInfo,如果key不存在,callable中调用getInfo方法返回数据
- String orderInfo = cache.get(orderId, () -> getInfo(orderId));
- log.info("orderInfo = {}", orderInfo);
-
- }
-
- private static String getInfo(String orderId) {
- String info = "";
- // 先查询redis缓存
- log.info("get data from redis");
-
- // 当redis缓存不存在查db
- log.info("get data from mysql");
- info = String.format("{orderId=%s}", orderId);
- return info;
- }
-}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/HashCache.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/HashCache.java
new file mode 100644
index 0000000..19549ba
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/HashCache.java
@@ -0,0 +1,104 @@
+package com.muyu.common.cache;
+
+import com.muyu.common.cache.decoration.DecorationKey;
+
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+
+/**
+ * @author DongZl
+ * @description: Hash缓存基准
+ * @Date 2024-3-29 下午 03:16
+ */
+public interface HashCache extends DecorationKey {
+
+
+ /**
+ * 编码
+ * @param hashKey ID
+ * @return 键
+ */
+ public String encodeHashKey(HK hashKey);
+
+ /**
+ * 解码
+ * @param redisHashKey 数据库键
+ * @return ID
+ */
+ public HK decodeHashKey(String redisHashKey);
+
+ /**
+ * 通过Key获取所有的map
+ * @param key 数据库键
+ * @return 所有集合Map
+ */
+ public Map get(K key);
+
+ /**
+ * 通过键和hashKey获取数据库hashValue
+ * @param key 键
+ * @param hashKey hash键
+ * @return hash值
+ */
+ public HV get(K key, HK hashKey);
+
+ /**
+ * 通过键和hashKey获取数据库hashValue
+ * @param key 键
+ * @param hashKeyList hash键集合
+ * @return hash值
+ */
+ public List get(K key, HK... hashKeyList);
+
+ /**
+ * 获取hash值集合
+ * @param key 键
+ * @return hash值集合
+ */
+ public List getToList(K key);
+
+ /**
+ * 存储数据
+ * @param key redis键
+ * @param map hashMap集合
+ */
+ public void put(K key, Map map);
+
+ /**
+ * 存储数据
+ * @param key redis键
+ * @param dataList 数据值
+ * @param hashKey hash键
+ */
+ public void put(K key, List dataList, Function hashKey);
+
+ /**
+ * 存储数据
+ * @param key redis键
+ * @param hashKey hash键
+ * @param hashValue hash值
+ */
+ public void put(K key, HK hashKey, HV hashValue);
+
+ /**
+ * 通过redis键删除
+ * @param key hash键
+ */
+ public void remove(K key);
+
+ /**
+ * 通过redis键和hash键删除
+ * @param key redis键
+ * @param hashKey hash键
+ */
+ public void remove(K key, HK hashKey);
+
+ /**
+ * 判断redis中hashKey是否存在
+ * @param key redis键
+ * @param hashKey hash键
+ */
+ public boolean hasKey(K key, HK hashKey);
+
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/AtomicSequenceCacheAbs.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/AtomicSequenceCacheAbs.java
new file mode 100644
index 0000000..54358b7
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/AtomicSequenceCacheAbs.java
@@ -0,0 +1,99 @@
+package com.muyu.common.cache.abs;
+
+import com.muyu.common.cache.AtomicSequenceCache;
+import com.muyu.common.redis.service.RedisService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @author DongZl
+ * @description: 原子序列缓存抽象类
+ * @Date 2024-4-1 下午 08:33
+ */
+public abstract class AtomicSequenceCacheAbs implements AtomicSequenceCache {
+
+ @Autowired
+ private RedisService redisService;
+
+ /**
+ * 获取存储的值
+ * @param key 键
+ * @return 值
+ */
+ @Override
+ public Long get (K key) {
+ Long cacheValue = this.redisService.getCacheObject(encode(key));
+ if (cacheValue == null){
+ Long data = getData(key);
+ cacheValue = data == null ? 0L : data;
+ this.redisService.setCacheObject(encode(key), cacheValue);
+ }
+ return cacheValue;
+ }
+
+ /**
+ * 自增
+ * @param key
+ */
+ @Override
+ public Long increment (K key) {
+ return this.increment(key, 1L);
+ }
+
+ /**
+ * 自减
+ *
+ * @param key
+ */
+ @Override
+ public Long decrement (K key) {
+ return this.decrement(key, 1L);
+ }
+
+ /**
+ * 增加数值
+ *
+ * @param key
+ * @param number
+ */
+ @Override
+ public Long increment (K key, Long number) {
+ Long numberValue = redisService.getCacheObject(encode(key));
+ if (numberValue == null){
+ Long data = getData(key);
+ data = data == null ? 0L : data;
+ redisService.setCacheObject(encode(key), data);
+ }
+ return redisService.increment(encode(key), number);
+ }
+
+ /**
+ * 减少数值
+ *
+ * @param key
+ * @param number
+ */
+ @Override
+ public Long decrement (K key, Long number) {
+ Long numberValue = redisService.getCacheObject(encode(key));
+ if (numberValue == null){
+ Long data = getData(key);
+ data = data == null ? 0L : data;
+ redisService.setCacheObject(encode(key), data);
+ }
+ return redisService.decrement(encode(key), number);
+ }
+
+ /**
+ * 编码
+ *
+ * @param key ID
+ *
+ * @return 键
+ */
+ @Override
+ public String encode (K key) {
+ return keyPre() + key;
+ }
+
+ public abstract Long getData(K key);
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java
new file mode 100644
index 0000000..d2bf765
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java
@@ -0,0 +1,96 @@
+package com.muyu.common.cache.abs;
+
+import com.muyu.common.cache.Cache;
+import com.muyu.common.redis.service.RedisService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author DongZl
+ * @description: 缓存抽象类
+ * @Date 2024-3-27 下午 03:10
+ */
+public abstract class CacheAbs implements Cache {
+
+ @Autowired
+ private RedisService redisService;
+
+ /**
+ * 编码
+ * @param key ID
+ * @return 键
+ */
+ @Override
+ public String encode (K key) {
+ return keyPre() + key;
+ }
+
+ /**
+ * 通过Key获取value值
+ * @param key 键
+ * @return 值
+ */
+ @Override
+ public V get (K key) {
+ V value = redisService.getCacheObject(encode(key));
+ if (value == null){
+ value = getData(key);
+ if (value == null){
+ value = defaultValue();
+ }
+ }
+ this.put(key, value);
+ return value;
+ }
+
+ /**
+ * 缓存添加/修改
+ * @param key 键
+ * @param value 值
+ */
+ @Override
+ public void put (K key, V value) {
+ this.redisService.setCacheObject(encode(key), value);
+ }
+
+ /**
+ * 通过键删除
+ * @param key 键
+ */
+ @Override
+ public void remove (K key) {
+ this.redisService.deleteObject(encode(key));
+ }
+
+ /**
+ * 刷新缓存
+ * @param key 键
+ */
+ @Override
+ public void refreshTime (K key) {
+ this.redisService.expire(encode(key), 60, TimeUnit.SECONDS);
+ }
+
+ /**
+ * 刷新缓存数据
+ *
+ * @param key 键
+ */
+ @Override
+ public void refreshData (K key) {
+ this.put(key, getData(key));
+ }
+
+ /**
+ * 从数据库获取数据
+ * @param key ID
+ * @return 缓存对象
+ */
+ public abstract V getData(K key);
+
+ /**
+ * 默认值
+ */
+ public abstract V defaultValue();
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java
new file mode 100644
index 0000000..adada29
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java
@@ -0,0 +1,223 @@
+package com.muyu.common.cache.abs;
+
+import com.muyu.common.cache.HashCache;
+import com.muyu.common.redis.service.RedisService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+
+/**
+ * @author DongZl
+ * @description: hash缓存抽象类
+ * @Date 2024-3-29 下午 07:40
+ */
+public abstract class HashCacheAbs implements HashCache {
+
+ @Autowired
+ private RedisService redisService;
+
+ /**
+ * 编码
+ *
+ * @param key ID
+ *
+ * @return 键
+ */
+ @Override
+ public String encode (K key) {
+ return keyPre() + key;
+ }
+
+ /**
+ * 编码
+ * @param hashKey ID
+ * @return 键
+ */
+ @Override
+ public String encodeHashKey (HK hashKey) {
+ return hashKey.toString();
+ }
+
+ /**
+ * 通过Key获取所有的map
+ * @param key 数据库键
+ * @return 所有集合Map
+ */
+ @Override
+ public Map get (K key) {
+ // 获取为null的情况
+ Map cacheMap = redisService.getCacheMap(encode(key));
+ if (cacheMap == null || cacheMap.isEmpty()){
+ Map dataMap = getData(key);
+ if (dataMap != null && !dataMap.isEmpty()){
+ cacheMap = encodeMap(dataMap);
+ }else {
+ cacheMap = encodeMap(defaultValue());
+ }
+ redisService.setCacheMap(encode(key), cacheMap);
+ }
+ return decodeMap(cacheMap);
+ }
+
+ /**
+ * 通过键和hashKey获取数据库hashValue
+ *
+ * @param key 键
+ * @param hashKey hash键
+ *
+ * @return hash值
+ */
+ @Override
+ public HV get (K key, HK hashKey) {
+ HV hashValue = redisService.getCacheMapValue(encode(key), encodeHashKey(hashKey));
+ if (hashValue == null){
+ HV dataValue = getData(key, hashKey);
+ hashValue = dataValue != null ? dataValue : defaultHashValue();
+ put(key, hashKey, hashValue);
+ }
+ return hashValue;
+ }
+
+ /**
+ * 通过键和hashKey获取数据库hashValue
+ *
+ * @param key 键
+ * @param hashKeyList hash键集合
+ *
+ * @return hash值
+ */
+ @Override
+ public List get (K key, HK... hashKeyList) {
+ List encodeHashKeyList = Arrays.stream(hashKeyList).map(this::encodeHashKey).toList();
+ return redisService.getMultiCacheMapValue(encode(key), encodeHashKeyList);
+ }
+
+ /**
+ * 获取hash值集合
+ *
+ * @param key 键
+ *
+ * @return hash值集合
+ */
+ @Override
+ public List getToList (K key) {
+ Map hkhvMap = get(key);
+ return hkhvMap.values().stream().toList();
+ }
+
+ /**
+ * 存储数据
+ *
+ * @param key redis键
+ * @param map hashMap集合
+ */
+ @Override
+ public void put (K key, Map map) {
+ redisService.setCacheMap(encode(key), encodeMap(map));
+ }
+
+ /**
+ * 存储数据
+ *
+ * @param key redis键
+ * @param dataList 数据值
+ * @param hashKey hash键
+ */
+ @Override
+ public void put (K key, List dataList, Function hashKey) {
+ Map dataMap = new HashMap<>();
+ dataList.forEach((data) -> dataMap.put(hashKey.apply(data), data));
+ redisService.setCacheMap(encode(key), encodeMap(dataMap));
+ }
+
+ /**
+ * 存储数据
+ *
+ * @param key redis键
+ * @param hashKey hash键
+ * @param hashValue hash值
+ */
+ @Override
+ public void put (K key, HK hashKey, HV hashValue) {
+ redisService.setCacheMapValue(encode(key), encodeHashKey(hashKey), hashValue);
+ }
+
+ /**
+ * 通过redis键删除
+ *
+ * @param key hash键
+ */
+ @Override
+ public void remove (K key) {
+ redisService.deleteObject(encode(key));
+ }
+
+ /**
+ * 通过redis键和hash键删除
+ *
+ * @param key redis键
+ * @param hashKey hash键
+ */
+ @Override
+ public void remove (K key, HK hashKey) {
+ redisService.deleteCacheMapValue(encode(key), encodeHashKey(hashKey));
+ }
+
+ /**
+ * 判断redis中hashKey是否存在
+ *
+ * @param key redis键
+ * @param hashKey hash键
+ */
+ @Override
+ public boolean hasKey (K key, HK hashKey) {
+ return redisService.hashKey(encode(key), encodeHashKey(hashKey));
+ }
+
+ /**
+ * 原始数据转编码数据
+ * @param dataMap 原始数据
+ * @return 编码数据
+ */
+ private Map encodeMap(Map dataMap){
+ Map encodeDataMap = new HashMap<>();
+ dataMap.forEach((hashKey, HashValue) -> encodeDataMap.put(encodeHashKey(hashKey), HashValue));
+ return encodeDataMap;
+ }
+
+ /**
+ * 编码数据转原始数据
+ * @param encodeDataMap 编码数据
+ * @return 原始数据
+ */
+ private Map decodeMap(Map encodeDataMap){
+ Map dataMap = new HashMap<>();
+ encodeDataMap.forEach((hashKey, hashValue) -> dataMap.put(decodeHashKey(hashKey), hashValue));
+ return dataMap;
+ }
+
+ /**
+ * 通过键获取所有的hash数据
+ * @param key 键
+ * @return
+ */
+ public abstract Map getData(K key);
+
+ /**
+ * 通过缓存键和hash键获取hash值
+ * @param key 缓存键
+ * @param hashKey hash键
+ * @return hash值
+ */
+ public abstract HV getData(K key, HK hashKey);
+
+ /**
+ * 默认值
+ */
+ public abstract Map defaultValue();
+ public abstract HV defaultHashValue();
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/decoration/DecorationKey.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/decoration/DecorationKey.java
new file mode 100644
index 0000000..284b09a
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/decoration/DecorationKey.java
@@ -0,0 +1,30 @@
+package com.muyu.common.cache.decoration;
+
+/**
+ * @author DongZl
+ * @description: 装饰Key
+ * @Date 2024-3-29 下午 03:19
+ */
+public interface DecorationKey {
+
+ /**
+ * key前缀
+ * @return key前缀
+ */
+ public String keyPre();
+
+
+ /**
+ * 编码
+ * @param key ID
+ * @return 键
+ */
+ public String encode(K key);
+
+ /**
+ * 解码
+ * @param redisKey 数据库键
+ * @return ID
+ */
+ public K decode(String redisKey);
+}
diff --git a/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java b/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java
index 2c1cad4..73326db 100644
--- a/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java
+++ b/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java
@@ -261,4 +261,23 @@ public class RedisService {
public Collection keys (final String pattern) {
return redisTemplate.keys(pattern);
}
+
+ /**
+ * 减少序列值
+ * @param key key
+ * @param number 值
+ * @return 操作后的值
+ */
+ public Long decrement (final String key, Long number) {
+ return redisTemplate.opsForValue().decrement(key,number);
+ }
+ /**
+ * 增加序列值
+ * @param key key
+ * @param number 值
+ * @return 操作后的值
+ */
+ public Long increment (final String key, Long number) {
+ return redisTemplate.opsForValue().increment(key,number);
+ }
}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/pom.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/pom.xml
new file mode 100644
index 0000000..d4204aa
--- /dev/null
+++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/pom.xml
@@ -0,0 +1,41 @@
+
+
+ 4.0.0
+
+ com.muyu
+ cloud-modules-openbusiness
+ 3.6.3
+
+
+ cloud-modules-openbusiness-cache
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+
+ com.muyu
+ cloud-common-cache
+
+
+
+
+ com.muyu
+ cloud-modules-openbusiness-common
+
+
+
+
+ com.muyu
+ cloud-modules-openbusiness-remote
+ 3.6.3
+
+
+
\ No newline at end of file
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/VehicleCacheService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/VehicleCacheService.java
new file mode 100644
index 0000000..6e119ad
--- /dev/null
+++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/VehicleCacheService.java
@@ -0,0 +1,34 @@
+package com.muyu.openbusiness;
+
+import com.muyu.common.cache.BasicCacheData;
+import com.muyu.common.cache.abs.CacheAbs;
+import com.muyu.openbusiness.domain.SysCar;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class VehicleCacheService extends CacheAbs {
+
+ @Autowired
+ private BasicCacheData basicCacheData;
+
+ @Override
+ public SysCar getData(String key) {
+ return basicCacheData.apply(key);
+ }
+
+ @Override
+ public SysCar defaultValue() {
+ return SysCar.builder().build();
+ }
+
+ @Override
+ public String keyPre() {
+ return "car:info:";
+ }
+
+ @Override
+ public String decode(String redisKey) {
+ return redisKey.replace(keyPre(), "");
+ }
+}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/apply/SysCarCacheRemoteData.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/apply/SysCarCacheRemoteData.java
new file mode 100644
index 0000000..0ffcaec
--- /dev/null
+++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-cache/src/main/java/com/muyu/openbusiness/apply/SysCarCacheRemoteData.java
@@ -0,0 +1,23 @@
+package com.muyu.openbusiness.apply;
+
+import com.muyu.common.cache.BasicCacheData;
+import com.muyu.openbusiness.domain.SysCar;
+import com.muyu.openbusiness.remote.SysCarRemoteService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 键和值转换 - 车辆数据
+ */
+@Component
+public class SysCarCacheRemoteData implements BasicCacheData {
+
+
+ @Autowired
+ private SysCarRemoteService sysCarRemoteService;
+
+ @Override
+ public SysCar apply(String key) {
+ return sysCarRemoteService.findByVin(key).getData();
+ }
+}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/DTO/MessageDTO.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/DTO/MessageDTO.java
deleted file mode 100644
index 3151d95..0000000
--- a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/DTO/MessageDTO.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.muyu.openbusiness.DTO;//package com.muyu.breakdown.DTO;
-//
-//
-//import com.muyu.openbusiness.domain.Messages;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.stereotype.Component;
-//
-//import java.sql.*;
-//import java.util.*;
-//
-///**
-// * @ Tool:IntelliJ IDEA
-// * @ Author:CHX
-// * @ Date:2024-09-18-15:00
-// * @ Version:1.0
-// * @ Description:数据库连接层
-// * @author Lenovo
-// */
-//@Component
-//public class MessageDTO {
-// private static final String DB_URL = "jdbc:mysql://106.54.193.225:3306/one";
-// private static final String USER = "root";
-// private static final String PASSWORD = "bawei2112A";
-//
-// // 2. 建立数据库连接
-// Connection connection;
-// // 构造函数,初始化数据库连接
-// // 保存消息到数据库
-// public void saveMessage(Messages message) {
-// String sql = "INSERT INTO sys_messages (sender_id, receiver_id, content) VALUES (?, ?, ?)";
-// try {
-// Class.forName("com.mysql.cj.jdbc.Driver");
-// } catch (ClassNotFoundException e) {
-// throw new RuntimeException(e);
-// }
-// try {
-// connection = DriverManager.getConnection(DB_URL, USER, PASSWORD);
-// } catch (SQLException e) {
-// throw new RuntimeException(e);
-// }
-// try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
-// preparedStatement.setInt(1, message.getSenderId());
-// preparedStatement.setInt(2, message.getReceiverId());
-// preparedStatement.setString(3, message.getContent());
-// // 执行添加操作
-// preparedStatement.executeUpdate();
-// } catch (SQLException e) {
-// throw new RuntimeException(e);
-// }
-// try {
-// connection.close();
-// } catch (SQLException e) {
-// throw new RuntimeException(e);
-// }
-// }
-//
-// // 获取所有消息
-// public List getAllMessages(int receiverId){
-// String sql = "SELECT * FROM sys_messages WHERE receiver_id = ?";
-// try {
-// Class.forName("com.mysql.cj.jdbc.Driver");
-// } catch (ClassNotFoundException e) {
-// throw new RuntimeException(e);
-// }
-// List messages = new ArrayList<>();
-// try {
-// connection = DriverManager.getConnection(DB_URL, USER, PASSWORD);
-// } catch (SQLException e) {
-// throw new RuntimeException(e);
-// }
-// try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
-// preparedStatement.setInt(1, receiverId);
-// // 执行查询操作
-// ResultSet rs = preparedStatement.executeQuery();
-// while (rs.next()) {
-// Messages message = new Messages(rs.getInt("sender_id"), receiverId, rs.getString("content"));
-//
-// // 添加到消息列表
-// messages.add(message);
-// }
-// } catch (SQLException e) {
-// throw new RuntimeException(e);
-// }
-// try {
-// connection.close();
-// } catch (SQLException e) {
-// throw new RuntimeException(e);
-// }
-// // 返回消息列表
-// return messages;
-// }
-//
-//}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/BreakDown.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/BreakDown.java
index 336f7f7..ff972e8 100644
--- a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/BreakDown.java
+++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/BreakDown.java
@@ -13,6 +13,8 @@ import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
+ *
+ * 故障实体类
* @author Lenovo
* @ Tool:IntelliJ IDEA
* @ Author:CHX
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/Person.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/Person.java
deleted file mode 100644
index 88b7119..0000000
--- a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/Person.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.muyu.openbusiness.domain;
-
-import io.micrometer.observation.annotation.Observed;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-
-@Data
-@ToString
-@AllArgsConstructor
-@NoArgsConstructor
-public class Person {
- private String person;
- private Integer Age;
- private String name;
- private String Nation;
- private String Animal;
- private Integer id;
-}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/RedisService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/RedisService.java
deleted file mode 100644
index 3a9b843..0000000
--- a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/RedisService.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.muyu.openbusiness.domain;
-
-public interface RedisService {
-}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SerializeUtil.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SerializeUtil.java
deleted file mode 100644
index 282f7b7..0000000
--- a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SerializeUtil.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.muyu.openbusiness.domain;
-
-import java.io.*;
-
-public class SerializeUtil {
- public static byte[] serialize(Object object){
- ObjectOutputStream oos =null;
- ByteArrayOutputStream baos =null;
- try{
- //序列化
- baos =new ByteArrayOutputStream();
- oos =new ObjectOutputStream(baos);
- oos.writeObject(object);
- byte[] bytes =baos.toByteArray();
- return bytes;
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
- public static Object unserialize(byte[] bytes) throws IOException {
- ByteArrayInputStream bais =null;
- bais =new ByteArrayInputStream(bytes);
- ObjectInputStream ois =new ObjectInputStream(bais);
- return ois.available();
- }
-}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysFenceRail.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysFenceRail.java
deleted file mode 100644
index 4eddb74..0000000
--- a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysFenceRail.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.muyu.openbusiness.domain;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.muyu.common.core.annotation.Excel;
-import lombok.*;
-import lombok.experimental.SuperBuilder;
-
-@Data
-@Setter
-@Getter
-@SuperBuilder
-@NoArgsConstructor
-@AllArgsConstructor
-@TableName("sys_corpuscle_fence")
-public class SysFenceRail {
-private static final long seriaversionUID =1L;
-/** 自增主键 */
-@TableId(type = IdType.AUTO)
- private Long id;
-
-/** 围栏编码 */
-@Excel(name="围栏编码")
- private String fenceCode;
- /**围栏名称**/
- @Excel(name = "围栏名称")
- private String fenceName;
-
- /**围栏类型**/
- @Excel(name = "围栏类型")
- private Long fenceType;
-
-
-
-
-
-}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/pom.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/pom.xml
new file mode 100644
index 0000000..da9f398
--- /dev/null
+++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+
+ com.muyu
+ cloud-modules-openbusiness
+ 3.6.3
+
+
+ cloud-modules-openbusiness-remote
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ com.muyu
+ cloud-modules-openbusiness-common
+
+
+
\ No newline at end of file
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/src/main/java/com/muyu/openbusiness/remote/SysCarRemoteService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/src/main/java/com/muyu/openbusiness/remote/SysCarRemoteService.java
new file mode 100644
index 0000000..9671464
--- /dev/null
+++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-remote/src/main/java/com/muyu/openbusiness/remote/SysCarRemoteService.java
@@ -0,0 +1,11 @@
+package com.muyu.openbusiness.remote;
+
+import com.muyu.common.core.domain.Result;
+import com.muyu.openbusiness.domain.SysCar;
+import org.springframework.cloud.openfeign.FeignClient;
+
+@FeignClient()
+public interface SysCarRemoteService {
+
+ public Result findByVin(String vin);
+}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/pom.xml b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/pom.xml
index 8e7f6a7..45c6529 100644
--- a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/pom.xml
+++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/pom.xml
@@ -106,8 +106,12 @@
com.muyu
cloud-modules-openbusiness-common
+
+
+
+ com.muyu
+ cloud-modules-openbusiness-cache
3.6.3
- compile
@@ -117,10 +121,6 @@
3.6.3
compile
-
-
-
-
org.springframework.cloud
spring-cloud-starter-openfeign
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/cahce/apply/SysCarCacheRemoteData.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/cahce/apply/SysCarCacheRemoteData.java
new file mode 100644
index 0000000..72f5b3a
--- /dev/null
+++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/cahce/apply/SysCarCacheRemoteData.java
@@ -0,0 +1,31 @@
+package com.muyu.openbusiness.cahce.apply;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.muyu.common.cache.BasicCacheData;
+import com.muyu.openbusiness.domain.SysCar;
+import com.muyu.openbusiness.remote.SysCarRemoteService;
+import com.muyu.openbusiness.service.impl.SysCarServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Component;
+
+/**
+ * 键和值转换 - 车辆数据
+ */
+@Primary
+@Component
+public class SysCarCacheRemoteData implements BasicCacheData {
+
+
+ @Autowired
+ private SysCarServiceImpl sysCarService;
+
+ @Override
+ public SysCar apply(String key) {
+ return sysCarService.getOne(
+ new LambdaQueryWrapper<>(){{
+ eq(SysCar::getCarVin, key);
+ }}
+ );
+ }
+}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/feign/SystemFeign.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/feign/SystemFeign.java
deleted file mode 100644
index 5910690..0000000
--- a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/feign/SystemFeign.java
+++ /dev/null
@@ -1,12 +0,0 @@
-//package com.muyu.openbusiness.feign;
-//
-//import com.muyu.common.core.domain.Result;
-//import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory;
-//import org.springframework.cloud.openfeign.FeignClient;
-//import org.springframework.web.bind.annotation.GetMapping;
-//
-//@FeignClient(name = "cloud-system",fallbackFactory = RemoteUserFallbackFactory.class)
-//public interface SystemFeign {
-// @GetMapping("/user/getInfo")
-// public Result getInfo ();
-//}
diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/redis/RedisInitialize.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/redis/RedisInitialize.java
deleted file mode 100644
index 4369521..0000000
--- a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/redis/RedisInitialize.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package com.muyu.openbusiness.redis;
-
-import com.alibaba.fastjson2.JSON;
-import com.muyu.openbusiness.constant.RedisConstant;
-import com.muyu.openbusiness.domain.VehicleMessage;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-
-@Component
-public class RedisInitialize {
-
-
- @Autowired
- private RedisTemplateredisTemplate;
-
- @PostConstruct
- public void a() {
-
- new Thread(()->{
- try {
- Thread.sleep(1000);
- }catch (Exception exception){
- throw new RuntimeException(exception);
- }
- });
- VehicleMessage message1 = new VehicleMessage();
- message1.setStartTime(System.currentTimeMillis());
- message1.setSpeed("50");
- message1.setLongitude("126.397428");
- message1.setLatitude("37.90923");
- message1.setTotalMileage("1010");
- message1.setTotalVoltage("22.5");
- message1.setAcceleratorPedalTravelValue("1.5");
- message1.setBrakePedalTravelValue("1.2");
- message1.setSpecificFuelConsumption("1.8");
- message1.setMotorControllerTemperature("59");
- message1.setMotorSpeed("850");
- message1.setMotorTorque("110");
- message1.setMotorTemperature("53");
- message1.setMotorVoltage("12.5");
- message1.setMotorCurrent("1.1");
- message1.setPowerBatteryRemainingSOC("88");
- message1.setMaximumPower("999");
- message1.setMaximumDischargePower("950");
- message1.setDcdc("2");
- message1.setChg("2");
- message1.setBMSSelfCheckCounter("2");
- message1.setElectricCurrent("2.3");
- message1.setTotalVoltageV3("13.1");
- message1.setSingleMaximumVoltage("14.1");
- message1.setMinimumVoltageOfABattery("12.2");
- message1.setMaximumBatteryTemperature("85");
- message1.setMinimumBatteryTemperature("51");
- message1.setPowerBatteryAvailableCapacity("560");
- message1.setCombinedCurrent("1.1");
- message1.setRunningState("2");
- message1.setWorkStatus("2");
- message1.setDriveMotorCondition("1");
- message1.setVehicleStatus("1");
- message1.setChargingState("1");
- message1.setHeatingState("1");
- message1.setCarVin("1HGCM826X3A004352");
-
- redisTemplate.opsForValue().set(RedisConstant.VEHICLE_ENTERPRISE + message1.getCarVin(), JSON.toJSONString(message1));
- }
-
- @PostConstruct
- public void initialize() {
-
-
-//
-// new Thread(() -> {
-// try {
-// Thread.sleep(500);
-// } catch (InterruptedException e) {
-// throw new RuntimeException(e);
-// }
-// List vehicleMessageMiddleList = vehicleMessageMiddleService.list();
-// vehicleMessageMiddleList.forEach(vehicleMessageMiddle -> {
-// List messageDetailList = messageDetailService.list(new LambdaQueryWrapper<>() {{
-// in(MessageDetail::getId, Arrays.asList(vehicleMessageMiddle.getMessageIds().split(",")));
-// }});
-// String jsonString = JSON.toJSONString(messageDetailList);
-// redisTemplate.opsForHash().put(RedisConstant.MESSAGE_DETAIL, vehicleMessageMiddle.getCarVin(), jsonString);
-// });
-// });
-
-// MessageDetail messageDetail = new MessageDetail();
-// messageDetail.setKeyCode("1");
-// messageDetail.setLabel("测试");
-// messageDetail.setStartBit(0);
-// messageDetail.setStopBit(8);
-// messageDetail.setType("1");
-
-// List list = vehicleMessageMiddleService.list();
-// list.forEach(vehicleMessageMiddle -> {
-// List messageDetailList = messageDetailService.list(new LambdaQueryWrapper<>() {{
-// in(MessageDetail::getId, Arrays.asList(vehicleMessageMiddle.getMessageIds().split(",")));
-// });
-// String jsonString = JSON.toJSONString(messageDetailList);
-// redisTemplate.opsForHash().put(RedisConstant.VEHICLE_ENTERPRISE, message1.getCarVin(), String.valueOf(jsonString));
-
- new Thread(()->{
- try {
- Thread.sleep(500);
- }catch (Exception exception){
- throw new RuntimeException(exception);
- }
- });
- VehicleMessage message1 = new VehicleMessage();
- message1.setStartTime(System.currentTimeMillis());
- message1.setSpeed("50");
- message1.setLongitude("116.397428");
- message1.setLatitude("39.90923");
- message1.setTotalMileage("1000");
- message1.setTotalVoltage("12.5");
- message1.setAcceleratorPedalTravelValue("0.5");
- message1.setBrakePedalTravelValue("0.2");
- message1.setSpecificFuelConsumption("0.8");
- message1.setMotorControllerTemperature("60");
- message1.setMotorSpeed("800");
- message1.setMotorTorque("100");
- message1.setMotorTemperature("70");
- message1.setMotorVoltage("12.6");
- message1.setMotorCurrent("1.2");
- message1.setPowerBatteryRemainingSOC("80");
- message1.setMaximumPower("1000");
- message1.setMaximumDischargePower("900");
- message1.setDcdc("1");
- message1.setChg("1");
- message1.setBMSSelfCheckCounter("1");
- message1.setElectricCurrent("2.5");
- message1.setTotalVoltageV3("13.5");
- message1.setSingleMaximumVoltage("14.5");
- message1.setMinimumVoltageOfABattery("12.0");
- message1.setMaximumBatteryTemperature("80");
- message1.setMinimumBatteryTemperature("50");
- message1.setPowerBatteryAvailableCapacity("800");
- message1.setCombinedCurrent("1.5");
- message1.setRunningState("1");
- message1.setWorkStatus("1");
- message1.setDriveMotorCondition("1");
- message1.setVehicleStatus("1");
- message1.setChargingState("1");
- message1.setHeatingState("1");
- message1.setCarVin("1HGCM826X3A004352");
-
- redisTemplate.opsForValue().set(RedisConstant.VEHICLE_ENTERPRISE + message1.getCarVin(), JSON.toJSONString(message1));
- }
-}
diff --git a/cloud-modules/cloud-modules-openbusiness/pom.xml b/cloud-modules/cloud-modules-openbusiness/pom.xml
index bae1e50..ae92460 100644
--- a/cloud-modules/cloud-modules-openbusiness/pom.xml
+++ b/cloud-modules/cloud-modules-openbusiness/pom.xml
@@ -16,6 +16,8 @@
cloud-modules-openbusiness-server
cloud-modules-openbusiness-common
+ cloud-modules-openbusiness-cache
+ cloud-modules-openbusiness-remote
diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java
index 11a1744..ef6b67b 100644
--- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java
+++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysFirmController.java
@@ -16,7 +16,9 @@ import com.muyu.system.domain.SysMenu;
import com.muyu.system.domain.req.SysFirmReq;
import com.muyu.system.service.ISysFirmService;
import com.muyu.system.service.SysEntService;
+import com.muyu.system.service.impl.SysConfigServiceImpl;
import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.jdbc.datasource.init.ScriptUtils;
@@ -59,6 +61,8 @@ public class SysFirmController extends BaseController
private static final String FIRM_CREDIT_CODE = "^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$";
+ @Autowired
+ private SysConfigServiceImpl sysConfigServiceImpl;
/**
* 查询企业基础信息列表
@@ -119,33 +123,8 @@ public class SysFirmController extends BaseController
return error("新增 企业基础信息 '" + sysFirm + "'失败,统一社会信用代码格式不正确");
}
- //添加角色与角色权限
- SysRole role = new SysRole();
- role.setFirmCode(firmCode);
- role.setRoleName(firmName+"超级管理员");
- role.setRoleKey(firmCode+"_admin");
- role.setRoleSort(1);
- role.setDataScope("1");
- role.setMenuCheckStrictly(true);
- role.setDeptCheckStrictly(true);
- role.setStatus("0");
- role.setDelFlag("0");
- SysMenu sysMenu = new SysMenu();
- Result> sysMenus = sysMenuController.list(sysMenu);
- List menulist = sysMenus.getData();
- Long[] menuIds = menulist.stream()
- .map(SysMenu::getMenuId)
- .filter(Objects::nonNull) // 过滤掉 null 值
- .toArray(Long[]::new);
- role.setCreateBy(SecurityUtils.getUsername());
- role.setMenuIds(menuIds);
-
- sysRoleController.add(role);
-
//添加部门
SysDept sysDept = new SysDept();
- Result list = sysDeptController.list(sysDept);
- List depts = (List) list.getData();
sysDept.setFirmCode(firmCode);
sysDept.setParentId(100L);
sysDept.setDeptName(firmName);
@@ -155,7 +134,6 @@ public class SysFirmController extends BaseController
sysDept.setDelFlag("0");
sysDeptController.add(sysDept);
- SysDept sysDepts = depts.get(depts.size() - 1);
// 设置创建者和状态
sysFirm.setCreateBy(SecurityUtils.getUsername());
@@ -163,18 +141,11 @@ public class SysFirmController extends BaseController
//添加用户与用户角色
SysUser sysUser = new SysUser();
sysUser.setFirmCode(firmCode);
- sysUser.setUserName(sysFirm.getUserName());
- sysUser.setNickName(sysFirm.getUserName());
- sysUser.setPassword(sysFirm.getPassword());
+ sysUser.setUserName(sysFirm.getFirmCode()+"-admin");
+ sysUser.setNickName(sysFirm.getFirmName()+"管理员");
+ sysUser.setPassword(sysConfigServiceImpl.selectConfigByKey("sys.user.initPassword"));
sysUser.setDeptId(sysDept.getDeptId());
- sysUser.setDept(sysDepts);
- Result> resultRole = sysRoleController.list(role);
- List roleList = resultRole.getData().getRows();
- Long[] roleIds = roleList.stream()
- .map(SysRole::getRoleId)
- .filter(Objects::nonNull) // 过滤掉 null 值
- .toArray(Long[]::new);
- sysUser.setRoleIds(new Long[]{roleIds[roleList.size() - 1]});
+ sysUser.setRoleIds(new Long[]{119L});
sysUserController.add(sysUser);
// 创建数据库和表
@@ -196,7 +167,7 @@ public class SysFirmController extends BaseController
sysFirm.setMemberId(1L);
- return toAjax(sysFirmService.save((SysFirm) sysFirm));
+ return toAjax(sysFirmService.save(sysFirm));
}
//
diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java
index a7bd9aa..0912f00 100644
--- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java
+++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysFirmReq.java
@@ -2,12 +2,11 @@ package com.muyu.system.domain.req;
import com.muyu.common.core.annotation.Excel;
import com.muyu.system.domain.SysFirm;
+import jakarta.validation.constraints.NotBlank;
import lombok.*;
import lombok.experimental.SuperBuilder;
@Data
-@Setter
-@Getter
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@@ -18,6 +17,10 @@ public class SysFirmReq extends SysFirm {
*/
@Excel(name = "登录名称")
private String userName;
+
+ /** 统一社会信用代码 */
+ @NotBlank(message = "统一社会信用代码不可为空")
+ private String firmCreditCode;
/**
* 密码
*/
diff --git a/pom.xml b/pom.xml
index 6171f59..b556173 100644
--- a/pom.xml
+++ b/pom.xml
@@ -296,6 +296,20 @@
cloud-modules-data-processing
${muyu.version}
+
+
+
+ com.muyu
+ cloud-common-cache
+ ${muyu.version}
+
+
+
+
+ com.muyu
+ cloud-modules-openbusiness-common
+ ${muyu.version}
+