coai/manager/broadcast/manage.go

50 lines
1.2 KiB
Go

package broadcast
import (
"chat/auth"
"chat/globals"
"chat/utils"
"context"
"github.com/gin-gonic/gin"
)
func createBroadcast(c *gin.Context, user *auth.User, content string) error {
db := utils.GetDBFromContext(c)
cache := utils.GetCacheFromContext(c)
if _, err := globals.ExecDb(db, `INSERT INTO broadcast (poster_id, content) VALUES (?, ?)`, user.GetID(db), content); err != nil {
return err
}
cache.Del(context.Background(), ":broadcast")
return nil
}
func getBroadcastList(c *gin.Context) ([]Info, error) {
db := utils.GetDBFromContext(c)
var broadcastList []Info
rows, err := globals.QueryDb(db, `
SELECT broadcast.id, broadcast.content, auth.username, broadcast.created_at
FROM broadcast
INNER JOIN auth ON broadcast.poster_id = auth.id
ORDER BY broadcast.id DESC
`)
if err != nil {
return nil, err
}
for rows.Next() {
var broadcast Info
var createdAt []uint8
if err := rows.Scan(&broadcast.Index, &broadcast.Content, &broadcast.Poster, &createdAt); err != nil {
return nil, err
}
broadcast.CreatedAt = utils.ConvertTime(createdAt).Format("2006-01-02 15:04:05")
broadcastList = append(broadcastList, broadcast)
}
return broadcastList, nil
}