From 8a8a6e0bfab53253925f0617bed4a27d6d2c7b8c Mon Sep 17 00:00:00 2001 From: shine <1042864399@qq.com> Date: Fri, 18 Oct 2024 18:15:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E8=81=8A=E5=A4=A9?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BC=82=E5=B8=B8=E4=B8=A2=E5=A4=B1=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/message.go | 24 +++++++++++++----------- repo/chatMessage.go | 4 +++- service/server.go | 9 ++++++--- views/chatView.go | 2 +- views/gamesViews.go | 7 +++++-- views/showCards.go | 18 ++++++++++++------ 6 files changed, 40 insertions(+), 24 deletions(-) diff --git a/models/message.go b/models/message.go index 98b69c6..5273963 100644 --- a/models/message.go +++ b/models/message.go @@ -5,11 +5,12 @@ import ( ) type ChatMessage struct { - UserID string - UserName string - CreateTx time.Time - Type string - Text string + UserID string // 发言对象 + UserName string // 发言对象名字 + TarUserID string // 接收对象 + CreateTx time.Time + Type string + Text string } const ( @@ -17,13 +18,14 @@ const ( ChatTypeCard = "CARD" // 工具卡片分享 ) -func NewTextChatMsg(user *Users, text string) *ChatMessage { +func NewTextChatMsg(user *Users, tarUid string, text string) *ChatMessage { return &ChatMessage{ - UserID: user.ID, - UserName: user.Name, - CreateTx: time.Now(), - Type: ChatTypeText, - Text: text, + UserID: user.ID, + UserName: user.Name, + TarUserID: tarUid, + CreateTx: time.Now(), + Type: ChatTypeText, + Text: text, } } diff --git a/repo/chatMessage.go b/repo/chatMessage.go index 53f64b0..d365c3b 100644 --- a/repo/chatMessage.go +++ b/repo/chatMessage.go @@ -12,7 +12,9 @@ var ChatMsg = &chatMessageRepo{} func (*chatMessageRepo) GetUserMsgs(db *gorm.DB, uuid string, limit int) []models.ChatMessage { var msgs []models.ChatMessage // ASC:升序(默认),DESC:降序。 - db.Order("create_tx ASC").Limit(limit).Where("user_id = ?", uuid).Find(&msgs) + db.Order("create_tx ASC").Limit(limit). + Where("user_id = ? OR tar_user_id = ?", uuid, uuid). + Find(&msgs) return msgs } diff --git a/service/server.go b/service/server.go index a49e1c0..ea6d6ca 100644 --- a/service/server.go +++ b/service/server.go @@ -87,9 +87,12 @@ func (s *serverService) StartListenServer() error { return } message := &models.Message{ - Cmd: "chat", - User: *user, - ChatMessage: *models.NewTextChatMsg(&user.Users, msg["text"].(string)), + Cmd: "chat", + User: *user, + ChatMessage: *models.NewTextChatMsg( + &user.Users, + repo.User.GetUserInfo(global.DB).ID, + msg["text"].(string)), } global.Send.SendChan <- message c.JSON(200, gin.H{"message": "ok"}) diff --git a/views/chatView.go b/views/chatView.go index 08b5c75..a319a3b 100644 --- a/views/chatView.go +++ b/views/chatView.go @@ -87,7 +87,7 @@ func OpenChat(user models.Users) { return } my := repo.User.GetUserInfo(global.DB) - chatItem := models.NewTextChatMsg(my, en.Text) + chatItem := models.NewTextChatMsg(my, user.ID, en.Text) userInfo.messages = append(userInfo.messages, *chatItem) _ = repo.ChatMsg.Create(global.DB, chatItem) list.Add(itemMessage(*chatItem)) diff --git a/views/gamesViews.go b/views/gamesViews.go index 8ddf777..fc951a1 100644 --- a/views/gamesViews.go +++ b/views/gamesViews.go @@ -53,7 +53,10 @@ func StartGameListen() { case "/close_game": g := global.GetGameInfo(msg.GameUuid) if g != nil { - dialog.ShowInformation("提示", "对方已退出", g.Obj.(*TenGame).w) + dialog.NewConfirm("提示", "对方已退出", func(b bool) { + g.Obj.(*TenGame).w.Close() + }, g.Obj.(*TenGame).w).Show() + //dialog.ShowInformation("提示", "对方已退出", g.Obj.(*TenGame).w) } case "/start_game": g := global.GetGameInfo(msg.GameUuid) @@ -244,7 +247,7 @@ func (t *TenGame) advance() { } func (t *TenGame) setTitle() { - title := fmt.Sprintf("Game %0.f*%0.f win:%d", t.itemX, t.itemY, t.winSum) + title := fmt.Sprintf("让我们来下棋 %0.f*%0.f win:%d", t.itemX, t.itemY, t.winSum) if t.isNet { title += fmt.Sprintf(" | 我 vs %s", t.user.Name) if t.currentRoundPlayer == t.myIndex { diff --git a/views/showCards.go b/views/showCards.go index 7a70cbd..502f07e 100644 --- a/views/showCards.go +++ b/views/showCards.go @@ -1,6 +1,7 @@ package views import ( + "fmt" "fyne.io/fyne/v2" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/dialog" @@ -44,12 +45,17 @@ func baseCardView( baseCardV = widget.NewCard(baseCardCopy.Title, baseCardCopy.Text, container.NewBorder(nil, widget.NewToolbar( widget.NewToolbarAction(theme.ContentAddIcon(), func() {}), widget.NewToolbarAction(theme.DeleteIcon(), func() { - err := service.BaseCard.Delete(global.DB, baseCardCopy) - if err != nil { - dialog.ShowInformation("删除失败", err.Error(), w) - return - } - gridWrap.Remove(baseCardV) + dialog.NewConfirm("提示", fmt.Sprintf("确定删除:%s?", baseCardCopy.Title), func(b bool) { + if b { + err := service.BaseCard.Delete(global.DB, baseCardCopy) + if err != nil { + dialog.ShowInformation("删除失败", err.Error(), w) + return + } + gridWrap.Remove(baseCardV) + } + }, w).Show() + }), widget.NewToolbarAction(theme.SettingsIcon(), func() { info := cardTypeMap[baseCardCopy.ToolType]