🎉 初始化项目

Signed-off-by: Echo <1711788888@qq.com>
This commit is contained in:
2026-02-27 21:52:00 +08:00
commit f4e166c5ee
482 changed files with 55079 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
package app
import (
v1 "git.echol.cn/loser/st/server/api/v1"
"git.echol.cn/loser/st/server/middleware"
"github.com/gin-gonic/gin"
)
type AIConfigRouter struct{}
// InitAIConfigRouter 初始化AI配置路由
func (r *AIConfigRouter) InitAIConfigRouter(Router *gin.RouterGroup) {
aiConfigRouter := Router.Group("ai-config").Use(middleware.AppJWTAuth())
aiConfigApi := v1.ApiGroupApp.AppApiGroup.AIConfigApi
{
aiConfigRouter.POST("", aiConfigApi.CreateAIConfig) // 创建AI配置
aiConfigRouter.GET("", aiConfigApi.GetAIConfigList) // 获取AI配置列表
aiConfigRouter.PUT(":id", aiConfigApi.UpdateAIConfig) // 更新AI配置
aiConfigRouter.DELETE(":id", aiConfigApi.DeleteAIConfig) // 删除AI配置
aiConfigRouter.POST(":id/test", aiConfigApi.TestAIConfigByID) // 通过ID测试AI配置
aiConfigRouter.GET(":id/models", aiConfigApi.GetModelsByID) // 通过ID获取模型列表
aiConfigRouter.POST("models", aiConfigApi.GetModels) // 获取模型列表
aiConfigRouter.POST("test", aiConfigApi.TestAIConfig) // 测试AI配置用于新建时
}
}

36
server/router/app/auth.go Normal file
View File

@@ -0,0 +1,36 @@
package app
import (
v1 "git.echol.cn/loser/st/server/api/v1"
"git.echol.cn/loser/st/server/middleware"
"github.com/gin-gonic/gin"
)
type AuthRouter struct{}
// InitAuthRouter 初始化前台用户认证路由
func (r *AuthRouter) InitAuthRouter(Router *gin.RouterGroup) {
authRouter := Router.Group("auth")
authApi := v1.ApiGroupApp.AppApiGroup.AuthApi
{
// 公开路由(无需认证)
authRouter.POST("register", authApi.Register) // 注册
authRouter.POST("login", authApi.Login) // 登录
authRouter.POST("refresh", authApi.RefreshToken) // 刷新Token
}
// 需要认证的路由
authRouterAuth := Router.Group("auth").Use(middleware.AppJWTAuth())
{
authRouterAuth.POST("logout", authApi.Logout) // 登出
authRouterAuth.GET("userinfo", authApi.GetUserInfo) // 获取用户信息
}
// 用户相关路由
userRouter := Router.Group("user").Use(middleware.AppJWTAuth())
{
userRouter.PUT("profile", authApi.UpdateProfile) // 更新用户信息
userRouter.POST("change-password", authApi.ChangePassword) // 修改密码
}
}

View File

@@ -0,0 +1,25 @@
package app
import (
v1 "git.echol.cn/loser/st/server/api/v1"
"git.echol.cn/loser/st/server/middleware"
"github.com/gin-gonic/gin"
)
type CharacterRouter struct{}
// InitCharacterRouter 初始化角色卡路由
func (r *CharacterRouter) InitCharacterRouter(Router *gin.RouterGroup) {
characterRouter := Router.Group("character").Use(middleware.AppJWTAuth())
characterApi := v1.ApiGroupApp.AppApiGroup.CharacterApi
{
characterRouter.POST("", characterApi.CreateCharacter) // 创建角色卡
characterRouter.GET("", characterApi.GetCharacterList) // 获取角色卡列表
characterRouter.GET(":id", characterApi.GetCharacterByID) // 获取角色卡详情
characterRouter.PUT(":id", characterApi.UpdateCharacter) // 更新角色卡
characterRouter.DELETE(":id", characterApi.DeleteCharacter) // 删除角色卡
characterRouter.POST("upload", characterApi.UploadCharacter) // 上传角色卡文件
characterRouter.GET(":id/export", characterApi.ExportCharacter) // 导出角色卡
}
}

View File

@@ -0,0 +1,25 @@
package app
import (
v1 "git.echol.cn/loser/st/server/api/v1"
"git.echol.cn/loser/st/server/middleware"
"github.com/gin-gonic/gin"
)
type ConversationRouter struct{}
// InitConversationRouter 初始化对话路由
func (r *ConversationRouter) InitConversationRouter(Router *gin.RouterGroup) {
conversationRouter := Router.Group("conversation").Use(middleware.AppJWTAuth())
conversationApi := v1.ApiGroupApp.AppApiGroup.ConversationApi
{
conversationRouter.POST("", conversationApi.CreateConversation) // 创建对话
conversationRouter.GET("", conversationApi.GetConversationList) // 获取对话列表
conversationRouter.GET(":id", conversationApi.GetConversationByID) // 获取对话详情
conversationRouter.PUT(":id/settings", conversationApi.UpdateConversationSettings) // 更新对话设置
conversationRouter.DELETE(":id", conversationApi.DeleteConversation) // 删除对话
conversationRouter.GET(":id/messages", conversationApi.GetMessageList) // 获取消息列表
conversationRouter.POST(":id/message", conversationApi.SendMessage) // 发送消息
}
}

View File

@@ -0,0 +1,10 @@
package app
type RouterGroup struct {
AuthRouter
CharacterRouter
ConversationRouter
AIConfigRouter
PresetRouter
UploadRouter
}

View File

@@ -0,0 +1,24 @@
package app
import (
v1 "git.echol.cn/loser/st/server/api/v1"
"github.com/gin-gonic/gin"
)
type PresetRouter struct{}
// InitPresetRouter 初始化预设路由
func (r *PresetRouter) InitPresetRouter(Router *gin.RouterGroup) {
presetRouter := Router.Group("preset")
presetApi := v1.ApiGroupApp.AppApiGroup.PresetApi
{
presetRouter.POST("", presetApi.CreatePreset) // 创建预设
presetRouter.GET("", presetApi.GetPresetList) // 获取预设列表
presetRouter.GET("/:id", presetApi.GetPresetByID) // 获取预设详情
presetRouter.PUT("/:id", presetApi.UpdatePreset) // 更新预设
presetRouter.DELETE("/:id", presetApi.DeletePreset) // 删除预设
presetRouter.POST("/:id/default", presetApi.SetDefaultPreset) // 设置默认预设
presetRouter.POST("/import", presetApi.ImportPreset) // 导入预设
presetRouter.GET("/:id/export", presetApi.ExportPreset) // 导出预设
}
}

View File

@@ -0,0 +1,17 @@
package app
import (
v1 "git.echol.cn/loser/st/server/api/v1"
"github.com/gin-gonic/gin"
)
type UploadRouter struct{}
// InitUploadRouter 初始化上传路由
func (r *UploadRouter) InitUploadRouter(Router *gin.RouterGroup) {
uploadRouter := Router.Group("upload")
uploadApi := v1.ApiGroupApp.AppApiGroup.UploadApi
{
uploadRouter.POST("/image", uploadApi.UploadImage) // 上传图片
}
}