🎨 优化前端菜单栏(修改为抽屉模式)&& 新增ai预设功能 && 优化ai对话前端渲染
This commit is contained in:
256
server/api/v1/app/ai_preset.go
Normal file
256
server/api/v1/app/ai_preset.go
Normal file
@@ -0,0 +1,256 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"git.echol.cn/loser/st/server/global"
|
||||
"git.echol.cn/loser/st/server/model/app/request"
|
||||
"git.echol.cn/loser/st/server/model/common/response"
|
||||
"git.echol.cn/loser/st/server/service"
|
||||
"git.echol.cn/loser/st/server/utils"
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.uber.org/zap"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type AIPresetApi struct{}
|
||||
|
||||
var aiPresetService = service.ServiceGroupApp.AppServiceGroup.AIPresetService
|
||||
|
||||
// CreateAIPreset 创建预设
|
||||
// @Tags AIPreset
|
||||
// @Summary 创建AI预设
|
||||
// @Security ApiKeyAuth
|
||||
// @accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.CreateAIPresetRequest true "预设信息"
|
||||
// @Success 200 {object} response.Response{data=app.AIPreset,msg=string} "创建成功"
|
||||
// @Router /app/preset/create [post]
|
||||
func (a *AIPresetApi) CreateAIPreset(c *gin.Context) {
|
||||
var req request.CreateAIPresetRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
response.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取用户ID
|
||||
userID := utils.GetUserID(c)
|
||||
if userID == 0 {
|
||||
response.FailWithMessage("获取用户信息失败", c)
|
||||
return
|
||||
}
|
||||
|
||||
preset, err := aiPresetService.CreateAIPreset(userID, &req)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("创建预设失败", zap.Error(err))
|
||||
response.FailWithMessage("创建预设失败: "+err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
response.OkWithData(preset, c)
|
||||
}
|
||||
|
||||
// UpdateAIPreset 更新预设
|
||||
// @Tags AIPreset
|
||||
// @Summary 更新AI预设
|
||||
// @Security ApiKeyAuth
|
||||
// @accept application/json
|
||||
// @Produce application/json
|
||||
// @Param id path int true "预设ID"
|
||||
// @Param data body request.UpdateAIPresetRequest true "预设信息"
|
||||
// @Success 200 {object} response.Response{msg=string} "更新成功"
|
||||
// @Router /app/preset/update/{id} [put]
|
||||
func (a *AIPresetApi) UpdateAIPreset(c *gin.Context) {
|
||||
presetID, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||
if err != nil {
|
||||
response.FailWithMessage("无效的预设ID", c)
|
||||
return
|
||||
}
|
||||
|
||||
var req request.UpdateAIPresetRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
response.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取用户ID
|
||||
userID := utils.GetUserID(c)
|
||||
if userID == 0 {
|
||||
response.FailWithMessage("获取用户信息失败", c)
|
||||
return
|
||||
}
|
||||
|
||||
if err := aiPresetService.UpdateAIPreset(userID, uint(presetID), &req); err != nil {
|
||||
global.GVA_LOG.Error("更新预设失败", zap.Error(err))
|
||||
response.FailWithMessage("更新预设失败: "+err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
response.OkWithMessage("更新成功", c)
|
||||
}
|
||||
|
||||
// DeleteAIPreset 删除预设
|
||||
// @Tags AIPreset
|
||||
// @Summary 删除AI预设
|
||||
// @Security ApiKeyAuth
|
||||
// @accept application/json
|
||||
// @Produce application/json
|
||||
// @Param id path int true "预设ID"
|
||||
// @Success 200 {object} response.Response{msg=string} "删除成功"
|
||||
// @Router /app/preset/delete/{id} [delete]
|
||||
func (a *AIPresetApi) DeleteAIPreset(c *gin.Context) {
|
||||
presetID, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||
if err != nil {
|
||||
response.FailWithMessage("无效的预设ID", c)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取用户ID
|
||||
userID := utils.GetUserID(c)
|
||||
if userID == 0 {
|
||||
response.FailWithMessage("获取用户信息失败", c)
|
||||
return
|
||||
}
|
||||
|
||||
if err := aiPresetService.DeleteAIPreset(userID, uint(presetID)); err != nil {
|
||||
global.GVA_LOG.Error("删除预设失败", zap.Error(err))
|
||||
response.FailWithMessage("删除预设失败: "+err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
response.OkWithMessage("删除成功", c)
|
||||
}
|
||||
|
||||
// GetAIPreset 获取预设详情
|
||||
// @Tags AIPreset
|
||||
// @Summary 获取AI预设详情
|
||||
// @Security ApiKeyAuth
|
||||
// @accept application/json
|
||||
// @Produce application/json
|
||||
// @Param id path int true "预设ID"
|
||||
// @Success 200 {object} response.Response{data=response.AIPresetResponse,msg=string} "获取成功"
|
||||
// @Router /app/preset/get/{id} [get]
|
||||
func (a *AIPresetApi) GetAIPreset(c *gin.Context) {
|
||||
presetID, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||
if err != nil {
|
||||
response.FailWithMessage("无效的预设ID", c)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取用户ID
|
||||
userID := utils.GetUserID(c)
|
||||
if userID == 0 {
|
||||
response.FailWithMessage("获取用户信息失败", c)
|
||||
return
|
||||
}
|
||||
|
||||
preset, err := aiPresetService.GetAIPreset(userID, uint(presetID))
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("获取预设失败", zap.Error(err))
|
||||
response.FailWithMessage("获取预设失败: "+err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
response.OkWithData(preset, c)
|
||||
}
|
||||
|
||||
// GetAIPresetList 获取预设列表
|
||||
// @Tags AIPreset
|
||||
// @Summary 获取AI预设列表
|
||||
// @Security ApiKeyAuth
|
||||
// @accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.AIPresetSearch true "搜索条件"
|
||||
// @Success 200 {object} response.Response{data=response.PageResult,msg=string} "获取成功"
|
||||
// @Router /app/preset/list [post]
|
||||
func (a *AIPresetApi) GetAIPresetList(c *gin.Context) {
|
||||
var req request.AIPresetSearch
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
response.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取用户ID
|
||||
userID := utils.GetUserID(c)
|
||||
if userID == 0 {
|
||||
response.FailWithMessage("获取用户信息失败", c)
|
||||
return
|
||||
}
|
||||
|
||||
list, total, err := aiPresetService.GetAIPresetList(userID, &req)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("获取预设列表失败", zap.Error(err))
|
||||
response.FailWithMessage("获取预设列表失败: "+err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
response.OkWithDetailed(response.PageResult{
|
||||
List: list,
|
||||
Total: total,
|
||||
Page: req.Page,
|
||||
PageSize: req.PageSize,
|
||||
}, "获取成功", c)
|
||||
}
|
||||
|
||||
// DuplicateAIPreset 复制预设
|
||||
// @Tags AIPreset
|
||||
// @Summary 复制AI预设
|
||||
// @Security ApiKeyAuth
|
||||
// @accept application/json
|
||||
// @Produce application/json
|
||||
// @Param id path int true "预设ID"
|
||||
// @Success 200 {object} response.Response{data=app.AIPreset,msg=string} "复制成功"
|
||||
// @Router /app/preset/duplicate/{id} [post]
|
||||
func (a *AIPresetApi) DuplicateAIPreset(c *gin.Context) {
|
||||
presetID, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||
if err != nil {
|
||||
response.FailWithMessage("无效的预设ID", c)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取用户ID
|
||||
userID := utils.GetUserID(c)
|
||||
if userID == 0 {
|
||||
response.FailWithMessage("获取用户信息失败", c)
|
||||
return
|
||||
}
|
||||
|
||||
preset, err := aiPresetService.DuplicateAIPreset(userID, uint(presetID))
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("复制预设失败", zap.Error(err))
|
||||
response.FailWithMessage("复制预设失败: "+err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
response.OkWithData(preset, c)
|
||||
}
|
||||
|
||||
// SetDefaultPreset 设置默认预设
|
||||
// @Tags AIPreset
|
||||
// @Summary 设置默认AI预设
|
||||
// @Security ApiKeyAuth
|
||||
// @accept application/json
|
||||
// @Produce application/json
|
||||
// @Param id path int true "预设ID"
|
||||
// @Success 200 {object} response.Response{msg=string} "设置成功"
|
||||
// @Router /app/preset/setDefault/{id} [post]
|
||||
func (a *AIPresetApi) SetDefaultPreset(c *gin.Context) {
|
||||
presetID, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||
if err != nil {
|
||||
response.FailWithMessage("无效的预设ID", c)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取用户ID
|
||||
userID := utils.GetUserID(c)
|
||||
if userID == 0 {
|
||||
response.FailWithMessage("获取用户信息失败", c)
|
||||
return
|
||||
}
|
||||
|
||||
if err := aiPresetService.SetDefaultPreset(userID, uint(presetID)); err != nil {
|
||||
global.GVA_LOG.Error("设置默认预设失败", zap.Error(err))
|
||||
response.FailWithMessage("设置默认预设失败: "+err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
response.OkWithMessage("设置成功", c)
|
||||
}
|
||||
Reference in New Issue
Block a user