This commit is contained in:
2026-02-23 23:50:04 +08:00
commit 084d3b0faf
45 changed files with 4090 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
package controllers
import (
"net/http"
"strings"
"github.com/gin-gonic/gin"
"lv8girl/internal/middleware"
"lv8girl/internal/repositories"
"lv8girl/internal/services"
)
type MessageController struct {
messageSvc *services.MessageService
userRepo *repositories.UserRepository
}
func NewMessageController() *MessageController {
return &MessageController{
messageSvc: services.NewMessageService(),
userRepo: repositories.NewUserRepository(),
}
}
func (c *MessageController) ShowMessages(ctx *gin.Context) {
currentUserID, currentUsername, currentUserRole, _ := middleware.GetCurrentUser(ctx)
conversations, _ := c.messageSvc.GetConversations(currentUserID)
ctx.HTML(http.StatusOK, "messages.html", gin.H{
"IsLoggedIn": true,
"UserID": currentUserID,
"Username": currentUsername,
"UserRole": currentUserRole,
"Conversations": conversations,
})
}
func (c *MessageController) ShowSendMessage(ctx *gin.Context) {
currentUserID, currentUsername, currentUserRole, _ := middleware.GetCurrentUser(ctx)
toUserID := parseUint(ctx.Query("to"))
if toUserID == 0 {
ctx.Redirect(http.StatusFound, "/")
return
}
receiver, err := c.userRepo.FindByID(toUserID)
if err != nil {
ctx.String(http.StatusNotFound, "用户不存在")
return
}
ctx.HTML(http.StatusOK, "send_message.html", gin.H{
"IsLoggedIn": true,
"UserID": currentUserID,
"Username": currentUsername,
"UserRole": currentUserRole,
"Receiver": receiver,
"Error": "",
"Success": "",
})
}
func (c *MessageController) SendMessage(ctx *gin.Context) {
currentUserID, _, _, _ := middleware.GetCurrentUser(ctx)
toUserID := parseUint(ctx.Query("to"))
content := strings.TrimSpace(ctx.PostForm("content"))
receiver, _ := c.userRepo.FindByID(toUserID)
if content == "" {
ctx.HTML(http.StatusOK, "send_message.html", gin.H{
"Receiver": receiver,
"Error": "消息内容不能为空",
"Success": "",
})
return
}
c.messageSvc.SendMessage(currentUserID, toUserID, content)
ctx.HTML(http.StatusOK, "send_message.html", gin.H{
"Receiver": receiver,
"Error": "",
"Success": "消息已发送!",
})
}