68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
|
package role
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"mini_server/internal/dao"
|
||
|
"mini_server/internal/server/httpreply"
|
||
|
"net/http"
|
||
|
|
||
|
"github.com/gin-gonic/gin"
|
||
|
"github.com/sirupsen/logrus"
|
||
|
)
|
||
|
|
||
|
// 角色添加
|
||
|
|
||
|
type CreateRequest struct {
|
||
|
VoiceId int `json:"voice_id" bingding:"gt=0"`
|
||
|
RoleName string `json:"role_name"`
|
||
|
WakeupWords string `json:"wakeup_words" binding:"min=1"`
|
||
|
WorldScenario string `json:"world_scenario" binding:"min=1"`
|
||
|
Description string `json:"description" binding:"min=1"`
|
||
|
Emojis string `json:"emojis"` // json格式
|
||
|
Dialogues string `json:"dialogues" binding:"min=1"`
|
||
|
AvatarId string `json:"avatar_id" binding:"min=0"` /// 头像图片路径
|
||
|
BackgroundIds string `json:"background_ids" binding:"min=0"` // 背景图列表,以逗号分隔
|
||
|
}
|
||
|
|
||
|
type CreateReply struct {
|
||
|
RoleId int32 `json:"role_id"` // 角色ID
|
||
|
}
|
||
|
|
||
|
// 添加角色
|
||
|
func Create(c *gin.Context) {
|
||
|
reply := httpreply.NewDefaultReplyData()
|
||
|
defer httpreply.Reply(c, reply)
|
||
|
|
||
|
var request CreateRequest
|
||
|
if err := c.ShouldBindJSON(&request); err != nil {
|
||
|
reply.Status = http.StatusBadRequest
|
||
|
reply.Message = fmt.Sprintf("invalid json data,err:%v", err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// 将数据写入数据库中
|
||
|
data := dao.Character{
|
||
|
VoiceId: request.VoiceId,
|
||
|
Name: request.RoleName,
|
||
|
WakeupWords: request.WakeupWords,
|
||
|
WorldScenario: request.WorldScenario,
|
||
|
Description: request.Description,
|
||
|
Emojis: request.Emojis,
|
||
|
Dialogues: request.Dialogues,
|
||
|
AvatarId: request.AvatarId,
|
||
|
BackgroundIds: request.BackgroundIds,
|
||
|
}
|
||
|
|
||
|
if data.Emojis == "" {
|
||
|
data.Emojis = "{}"
|
||
|
}
|
||
|
roleId, err := dao.Character_Insert(&data)
|
||
|
if err != nil {
|
||
|
logrus.Errorf("dao.Character_Insert failed, err:%v", err)
|
||
|
reply.Status = http.StatusInternalServerError
|
||
|
reply.Message = "添加角色失败"
|
||
|
return
|
||
|
}
|
||
|
reply.Data = &CreateReply{RoleId: roleId}
|
||
|
}
|