|
@@ -1,6 +1,7 @@
|
|
|
package aimod
|
|
|
|
|
|
import (
|
|
|
+ "eta/eta_api/utils"
|
|
|
"time"
|
|
|
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
@@ -17,6 +18,23 @@ type AiChatTopic struct {
|
|
|
ModifyTime time.Time
|
|
|
}
|
|
|
|
|
|
+func (obj *AiChatTopic) AiChatTopicView() *AiChatTopicView {
|
|
|
+ return &AiChatTopicView{
|
|
|
+ AiChatTopicId: obj.AiChatTopicId,
|
|
|
+ TopicName: obj.TopicName,
|
|
|
+ CreateTime: obj.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ ModifyTime: obj.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ AssistantId: obj.AssistantId,
|
|
|
+ ThreadId: obj.ThreadId,
|
|
|
+ }
|
|
|
+}
|
|
|
+func AiChatTopicViewList(topics []*AiChatTopic) (itemList []*AiChatTopicView) {
|
|
|
+ for _, item := range topics {
|
|
|
+ itemList = append(itemList, item.AiChatTopicView())
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
type AiChat struct {
|
|
|
AiChatId int `orm:"column(ai_chat_id);pk"`
|
|
|
AiChatTopicId int
|
|
@@ -33,6 +51,27 @@ type AiChat struct {
|
|
|
ModifyTime time.Time
|
|
|
}
|
|
|
|
|
|
+func (obj *AiChat) AiChatView() *AiChatView {
|
|
|
+ return &AiChatView{
|
|
|
+ AiChatId: obj.AiChatId,
|
|
|
+ AiChatTopicId: obj.AiChatTopicId,
|
|
|
+ Ask: obj.Ask,
|
|
|
+ Answer: obj.Answer,
|
|
|
+ Model: obj.Model,
|
|
|
+ OpenaiFileId: obj.OpenaiFileId,
|
|
|
+ OpenaiFileName: obj.OpenaiFileName,
|
|
|
+ OpenaiFilePath: obj.OpenaiFilePath,
|
|
|
+ CreateTime: obj.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ ModifyTime: obj.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ }
|
|
|
+}
|
|
|
+func AiChatViewList(chats []*AiChat) (itemList []*AiChatView) {
|
|
|
+ for _, item := range chats {
|
|
|
+ itemList = append(itemList, item.AiChatView())
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
type ChatReq struct {
|
|
|
AiChatTopicId int `description:"主题id"`
|
|
|
Ask string `description:"提问"`
|
|
@@ -76,10 +115,16 @@ type AiChatTopicView struct {
|
|
|
ThreadId string
|
|
|
}
|
|
|
|
|
|
+// [2025-zsh-时间类型修复-chenhan]
|
|
|
func GetAiChatTopicList(sysUserId int) (item []*AiChatTopicView, err error) {
|
|
|
+ var dbItemList []*AiChatTopic
|
|
|
sql := ` SELECT * FROM ai_chat_topic WHERE sys_user_id=? ORDER BY create_time DESC `
|
|
|
o := orm.NewOrmUsingDB("ai")
|
|
|
- _, err = o.Raw(sql, sysUserId).QueryRows(&item)
|
|
|
+ _, err = o.Raw(sql, sysUserId).QueryRows(&dbItemList)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item = AiChatTopicViewList(dbItemList)
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -106,10 +151,16 @@ var ModelViewMap = map[string]string{
|
|
|
// "moonshot-v1-8k": "Kimi",
|
|
|
}
|
|
|
|
|
|
+// [2025-zsh-时间类型修复-chenhan]
|
|
|
func GetAiChatList(aiChatTopicId int) (item []*AiChatView, err error) {
|
|
|
+ var dbItemList []*AiChat
|
|
|
sql := ` SELECT * FROM ai_chat WHERE ai_chat_topic_id=? ORDER BY create_time ASC `
|
|
|
o := orm.NewOrmUsingDB("ai")
|
|
|
- _, err = o.Raw(sql, aiChatTopicId).QueryRows(&item)
|
|
|
+ _, err = o.Raw(sql, aiChatTopicId).QueryRows(&dbItemList)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item = AiChatViewList(dbItemList)
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -149,10 +200,16 @@ type TopicEditReq struct {
|
|
|
TopicName string `description:"主题名称"`
|
|
|
}
|
|
|
|
|
|
+// [2025-zsh-时间类型修复-chenhan]
|
|
|
func GetAiChatTopicByTopicName(topicName string) (item *AiChatTopicView, err error) {
|
|
|
+ var dbItem *AiChatTopic
|
|
|
sql := ` SELECT * FROM ai_chat_topic WHERE topic_name=? `
|
|
|
o := orm.NewOrmUsingDB("ai")
|
|
|
- err = o.Raw(sql, topicName).QueryRow(&item)
|
|
|
+ err = o.Raw(sql, topicName).QueryRow(&dbItem)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item = dbItem.AiChatTopicView()
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -163,10 +220,16 @@ func EditTopic(topicId int, topicName string) (err error) {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
+// [2025-zsh-时间类型修复-chenhan]
|
|
|
func (obj *AiChatTopic) GetAiChatTopicById() (item *AiChatTopicView, err error) {
|
|
|
+ var dbItem *AiChatTopic
|
|
|
o := orm.NewOrmUsingDB("ai")
|
|
|
sql := ` SELECT * FROM ai_chat_topic WHERE ai_chat_topic_id=? `
|
|
|
- err = o.Raw(sql, obj.AiChatTopicId).QueryRow(&item)
|
|
|
+ err = o.Raw(sql, obj.AiChatTopicId).QueryRow(&dbItem)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item = dbItem.AiChatTopicView()
|
|
|
return
|
|
|
}
|
|
|
|