:refactor: 更新机器人模型,添加用户ID字段并优化数据库查询逻辑
All checks were successful
BuildImage / build-image (push) Successful in 2m8s

This commit is contained in:
李寻欢 2025-04-28 11:38:35 +08:00
parent c8427c851d
commit 3be5e65a88
2 changed files with 7 additions and 5 deletions

View File

@ -83,6 +83,7 @@ func CreateRobot(c *fiber.Ctx) error {
// 创建机器人数据库记录
robot := model.Robot{
UserId: c.Locals("userId").(string),
ContainerID: containerID,
ContainerHost: containerHost, // 使用新的字段名
Nickname: robotName,
@ -111,8 +112,8 @@ func ShowRobot(c *fiber.Ctx) error {
var robot model.Robot
db := model.GetDB()
if err := db.First(&robot, id).Error; err != nil {
if err == gorm.ErrRecordNotFound {
if err = db.First(&robot, id).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return fiber.NewError(fiber.StatusNotFound, "机器人不存在")
}
return fiber.NewError(fiber.StatusInternalServerError, "查询数据库失败")
@ -141,7 +142,7 @@ func DeleteRobot(c *fiber.Ctx) error {
var robot model.Robot
db := model.GetDB()
if err = db.First(&robot, id).Error; err != nil {
if err = db.Where("user_id = ?", c.Locals("userId")).First(&robot, id).Error; err != nil {
// 针对API请求返回JSON
if strings.HasPrefix(c.Get("Accept"), "application/json") || c.Method() == "DELETE" {
return c.Status(fiber.StatusNotFound).JSON(fiber.Map{
@ -210,7 +211,7 @@ func RobotLogin(c *fiber.Ctx) error {
var robot model.Robot
db := model.GetDB()
if err = db.First(&robot, id).Error; err != nil {
if err = db.Where("user_id = ?", c.Locals("userId")).First(&robot, id).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return fiber.NewError(fiber.StatusNotFound, "机器人不存在")
}
@ -296,7 +297,7 @@ func RobotLogout(c *fiber.Ctx) error {
var robot model.Robot
db := model.GetDB()
if err = db.First(&robot, id).Error; err != nil {
if err = db.Where("user_id = ?", c.Locals("userId")).First(&robot, id).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return fiber.NewError(fiber.StatusNotFound, "机器人不存在")
}

View File

@ -19,6 +19,7 @@ const (
// Robot 表示微信机器人实例
type Robot struct {
BaseModel
UserId string `gorm:"column:user_id;index:deleted,unique;" json:"userId"` // 用户ID
ContainerID string `gorm:"column:container_id;index:deleted,unique,length:64" json:"container_id"`
ShortContainerID string `gorm:"column:short_container_id;index" json:"short_container_id"` // 容器ID的前12位
ContainerHost string `gorm:"column:container_host" json:"container_host"` // 容器访问地址格式为ip:port