Procházet zdrojové kódy

refactor(system): 更新工作空间绑定集群 ID 的方式

- 使用 Entity 对象替换原始的 SQL 更新语句
- 添加 DialectUtil以处理字段名的包装
- 修改更新条件,设置 clusterInfoId 时考虑 createTimeMillis 大于 0
- 保留原有的 SQL 语句作为注释
bwcx_jzy před 5 měsíci
rodič
revize
ebf40ead28

+ 6 - 2
modules/server/src/main/java/org/dromara/jpom/func/system/service/ClusterInfoService.java

@@ -28,6 +28,7 @@ import org.dromara.jpom.common.ServerConst;
 import org.dromara.jpom.common.i18n.I18nMessageUtil;
 import org.dromara.jpom.configuration.ClusterConfig;
 import org.dromara.jpom.cron.CronUtils;
+import org.dromara.jpom.dialect.DialectUtil;
 import org.dromara.jpom.func.assets.server.MachineDockerServer;
 import org.dromara.jpom.func.assets.server.MachineNodeServer;
 import org.dromara.jpom.func.assets.server.MachineSshServer;
@@ -198,8 +199,11 @@ public class ClusterInfoService extends BaseDbService<ClusterInfoModel> implemen
             return;
         }
         // 所以工作空间自动绑定集群Id
-        String sql = "update " + workspaceService.getTableName() + " set clusterInfoId=?";
-        workspaceService.execute(sql, installId);
+        Entity entity = new Entity();
+        entity.set(DialectUtil.wrapField("clusterInfoId"), installId);
+        workspaceService.update(entity, Entity.create().set(DialectUtil.wrapField("createTimeMillis"), "> 0"));
+        //String sql = "update " + workspaceService.getTableName() + " set clusterInfoId=?";
+        //workspaceService.execute(sql, installId);
         // 获取所有的资产分组
         List<String> list = this.listLinkGroups();
         String join = CollUtil.join(list, StrUtil.COMMA);