Browse Source

优化安防应用模块客户端id生成逻辑

zhaojinyu 4 days ago
parent
commit
5c68fd3496

+ 21 - 3
service-sas/service-sas-biz/src/main/java/com/usky/sas/service/impl/SasSystemServiceImpl.java

@@ -26,6 +26,7 @@ import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 /**
@@ -58,14 +59,31 @@ public class SasSystemServiceImpl implements SasSystemService {
         wrapper.orderByDesc(SasSystemActivation::getUpdateTime).last("limit 1");
         List<SasSystemActivation> activationList = sasSystemActivationMapper.selectList(wrapper);
 
-        SasSystemActivation activation = null;
+        SasSystemActivation activation;
         if (activationList != null && !activationList.isEmpty()) {
             activation = activationList.get(0);
         } else {
-            return response;
+            // 表中无记录,创建一条新记录
+            activation = new SasSystemActivation();
+            activation.setClientId(UUID.randomUUID().toString());
+            activation.setCreateTime(LocalDateTime.now());
+            activation.setUpdateTime(LocalDateTime.now());
+            sasSystemActivationMapper.insert(activation);
+            log.info("系统激活表无记录,已创建新记录,clientId:{}", activation.getClientId());
+        }
+
+        // 检查 clientId 是否需要重新生成:为空或等于默认占位值时重新生成
+        String clientId = activation.getClientId();
+        if (StringUtils.isEmpty(clientId) || "66331ef6-b55b-4828-a2a8-2cb0d24edee7".equals(clientId)) {
+            String newClientId = UUID.randomUUID().toString();
+            activation.setClientId(newClientId);
+            activation.setUpdateTime(LocalDateTime.now());
+            sasSystemActivationMapper.updateById(activation);
+            log.info("clientId需重新生成,旧值:{},新值:{}", clientId, newClientId);
+            clientId = newClientId;
         }
 
-        response.setClientId(activation.getClientId());
+        response.setClientId(clientId);
         response.setIsPerpetual(activation.getIsPerpetual());
         response.setValidityTime(activation.getValidityTime());
         response.setCreateTime(activation.getCreateTime());