This is an automated email from the ASF dual-hosted git repository.

wuzhiguo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bigtop-manager.git


The following commit(s) were added to refs/heads/main by this push:
     new 31858b9  BIGTOP-4235: Fix update in SQLBuilder (#79)
31858b9 is described below

commit 31858b935e552821ac424bf1d156ec87bba0843f
Author: haopeng <[email protected]>
AuthorDate: Thu Sep 26 13:29:43 2024 +0800

    BIGTOP-4235: Fix update in SQLBuilder (#79)
---
 .../apache/bigtop/manager/dao/sql/SQLBuilder.java   | 21 +++++++++++++++------
 .../server/service/impl/ChatbotServiceImpl.java     | 15 ++++++++++++---
 2 files changed, 27 insertions(+), 9 deletions(-)

diff --git 
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
 
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
index 4321f22..4b56c73 100644
--- 
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
+++ 
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
@@ -219,6 +219,9 @@ public class SQLBuilder {
                     }
                     Field field = ReflectionUtils.findField(entityClass, 
entry.getKey());
                     if (field != null) {
+                        if (checkBaseField(field)) {
+                            continue;
+                        }
                         Column column = field.getAnnotation(Column.class);
                         if (column != null && !column.nullable() && value == 
null) {
                             continue;
@@ -248,6 +251,9 @@ public class SQLBuilder {
                     }
                     Field field = ReflectionUtils.findField(entityClass, 
entry.getKey());
                     if (field != null) {
+                        if (checkBaseField(field)) {
+                            continue;
+                        }
                         Column column = field.getAnnotation(Column.class);
                         if (column != null && !column.nullable() && value == 
null) {
                             continue;
@@ -291,7 +297,10 @@ public class SQLBuilder {
                         primaryKey = keywordsFormat(entry.getValue(), 
DBType.MYSQL);
                         continue;
                     }
-
+                    Field field = ReflectionUtils.findField(entityClass, 
entry.getKey());
+                    if (field == null || checkBaseField(field)) {
+                        continue;
+                    }
                     StringBuilder caseClause = new StringBuilder();
                     caseClause
                             .append(keywordsFormat(entry.getValue(), 
DBType.MYSQL))
@@ -301,10 +310,6 @@ public class SQLBuilder {
                         if (ps == null || ps.getReadMethod() == null) {
                             continue;
                         }
-                        Field field = ReflectionUtils.findField(entityClass, 
entry.getKey());
-                        if (field == null || checkBaseField(field)) {
-                            continue;
-                        }
                         Object value = 
ReflectionUtils.invokeMethod(ps.getReadMethod(), entity);
                         PropertyDescriptor pkPs =
                                 BeanUtils.getPropertyDescriptor(entityClass, 
tableMetaData.getPkProperty());
@@ -335,8 +340,12 @@ public class SQLBuilder {
                                     .append("' THEN NULL ");
                         }
                     }
+                    if (caseClause.toString().endsWith("CASE ")) {
+                        caseClause.append("WHEN TRUE THEN ");
+                    } else {
+                        caseClause.append("ELSE ");
+                    }
                     caseClause
-                            .append("ELSE ")
                             .append(keywordsFormat(entry.getValue(), 
DBType.MYSQL))
                             .append(" ");
                     caseClause.append("END");
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ChatbotServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ChatbotServiceImpl.java
index 7148ee3..0c49abc 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ChatbotServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ChatbotServiceImpl.java
@@ -81,7 +81,7 @@ public class ChatbotServiceImpl implements ChatbotService {
 
     private AIAssistantFactory aiAssistantFactory;
 
-    public AIAssistantFactory getAiAssistantFactory() {
+    public AIAssistantFactory getAIAssistantFactory() {
         if (aiAssistantFactory == null) {
             aiAssistantFactory =
                     new GeneralAssistantFactory(new 
PersistentChatMemoryStore(chatThreadDao, chatMessageDao));
@@ -105,7 +105,7 @@ public class ChatbotServiceImpl implements ChatbotService {
 
     private AIAssistant buildAIAssistant(
             PlatformAuthorizedDTO platformAuthorizedDTO, Long threadId, 
Map<String, String> configs) {
-        return getAiAssistantFactory()
+        return getAIAssistantFactory()
                 .create(
                         
getPlatformType(platformAuthorizedDTO.getPlatformName()),
                         getAIAssistantConfig(platformAuthorizedDTO, configs),
@@ -113,7 +113,7 @@ public class ChatbotServiceImpl implements ChatbotService {
     }
 
     private Boolean testAuthorization(PlatformAuthorizedDTO 
platformAuthorizedDTO) {
-        AIAssistant aiAssistant = getAiAssistantFactory()
+        AIAssistant aiAssistant = getAIAssistantFactory()
                 .create(
                         
getPlatformType(platformAuthorizedDTO.getPlatformName()),
                         getAIAssistantConfig(platformAuthorizedDTO, null));
@@ -215,10 +215,16 @@ public class ChatbotServiceImpl implements ChatbotService 
{
                 authorizedPlatformPO.setIsDeleted(true);
                 platformAuthorizedDao.partialUpdateById(authorizedPlatformPO);
                 List<ChatThreadPO> chatThreadPOS = 
chatThreadDao.findAllByPlatformId(authorizedPlatformPO.getId());
+                if (chatThreadPOS.isEmpty()) {
+                    return true;
+                }
                 chatThreadPOS.forEach(chatThread -> 
chatThread.setIsDeleted(true));
                 chatThreadDao.partialUpdateByIds(chatThreadPOS);
                 for (ChatThreadPO chatThreadPO : chatThreadPOS) {
                     List<ChatMessagePO> chatMessagePOS = 
chatMessageDao.findAllByThreadId(chatThreadPO.getId());
+                    if (chatMessagePOS.isEmpty()) {
+                        return true;
+                    }
                     chatMessagePOS.forEach(chatMessage -> 
chatMessage.setIsDeleted(true));
                     chatMessageDao.partialUpdateByIds(chatMessagePOS);
                 }
@@ -265,6 +271,9 @@ public class ChatbotServiceImpl implements ChatbotService {
                 chatThreadPO.setIsDeleted(true);
                 chatThreadDao.partialUpdateById(chatThreadPO);
                 List<ChatMessagePO> chatMessagePOS = 
chatMessageDao.findAllByThreadId(threadId);
+                if (chatMessagePOS.isEmpty()) {
+                    return true;
+                }
                 chatMessagePOS.forEach(chatMessage -> 
chatMessage.setIsDeleted(true));
                 chatMessageDao.partialUpdateByIds(chatMessagePOS);
                 return true;

Reply via email to