Files
dify-plus/admin/server/api/v1/gaia/test.go
T
2025-03-28 15:18:33 +08:00

142 lines
4.6 KiB
Go

package gaia
import (
"github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
"github.com/flipped-aurora/gin-vue-admin/server/model/gaia"
"github.com/flipped-aurora/gin-vue-admin/server/model/gaia/request"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
type TestApi struct{}
// SyncDatabaseTableData
// @Tags Test
// @Summary 同步数据库表数据
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query gaiaReq.DashboardSearch true "分页获取账号额度排名列表"
// @Success 200 {object} response.Response{data=response.PageResult,msg=string} "获取成功"
// @Router /gaia/test/sync/database [post]
func (quotaApi *TestApi) SyncDatabaseTableData(c *gin.Context) {
var data request.SyncDatabaseTableData
if err := c.ShouldBindJSON(&data); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
// 是否都不为空
if len(data.LogTable) > 0 && len(data.NewTable) > 0 && len(data.KeyName) > 0 && len(data.OrderName) > 0 {
go TestService.SyncDatabaseTableData(data.LogTable, data.NewTable, data.KeyName, data.OrderName, data.GroupName)
response.OkWithDetailed("ok", "获取成功", c)
} else {
response.FailWithMessage("传参有误", c)
}
}
// GaiaAppRequestTest
// @Tags Test
// @Summary 发起gaia应用请求测试
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query gaiaReq.DashboardSearch true "分页获取账号额度排名列表"
// @Success 200 {object} response.Response{data=response.PageResult,msg=string} "获取成功"
// @Router /gaia/test/app/request [post]
func (quotaApi *TestApi) GaiaAppRequestTest(c *gin.Context) {
err := TestService.AppRequestTest()
if err != nil {
global.GVA_LOG.Error("获取失败!", zap.Error(err))
response.FailWithMessage("获取失败:"+err.Error(), c)
return
}
response.OkWithDetailed("ok", "获取成功", c)
}
// GaiaAppRequestTestList
// @Tags Test
// @Summary gaia应用请求测试结果列表
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query gaiaReq.DashboardSearch true "分页获取账号额度排名列表"
// @Success 200 {object} response.Response{data=response.PageResult,msg=string} "获取成功"
// @Router /gaia/test/app/request/list [get]
func (quotaApi *TestApi) GaiaAppRequestTestList(c *gin.Context) {
var pageInfo request.GetAppRequestTestRequest
if err := c.ShouldBindQuery(&pageInfo); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
// list
lock, list, total, err := TestService.AppRequestTestList(pageInfo)
if err != nil {
global.GVA_LOG.Error("获取失败!", zap.Error(err))
response.FailWithMessage("获取失败:"+err.Error(), c)
return
}
var appIdList []string
var appList []map[string]string
var batchInfo []gaia.AppRequestTest
if err = global.GVA_DB.Select("app_id").Where("batch_id = ?", pageInfo.BatchId).Group(
"app_id").Find(&batchInfo).Error; err == nil {
for _, v := range batchInfo {
appIdList = append(appIdList, v.AppID)
}
}
// 查询相关的app列表
if len(appIdList) > 0 {
var apps []gaia.Apps
if err = global.GVA_DB.Select("id", "name").Where(
"id IN (?)", appIdList).Find(&apps).Error; err == nil {
for _, v := range apps {
appList = append(appList, map[string]string{
"value": v.ID.String(),
"label": v.Name,
})
}
}
}
response.OkWithDetailed(map[string]interface{}{
"lock": lock,
"list": list,
"total": total,
"apps": appList,
"page": pageInfo.Page,
"page_size": pageInfo.PageSize,
}, "获取成功", c)
}
// GaiaAppRequestTestBatch
// @Tags Test
// @Summary gaia应用请求测试批次列表
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query gaiaReq.DashboardSearch true "分页获取账号额度排名列表"
// @Success 200 {object} response.Response{data=response.PageResult,msg=string} "获取成功"
// @Router /gaia/test/app/request/batch [get]
func (quotaApi *TestApi) GaiaAppRequestTestBatch(c *gin.Context) {
var pageInfo request.GetAppRequestTestRequest
if err := c.ShouldBindQuery(&pageInfo); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
// list
lock, list, total, err := TestService.AppRequestTestBatch(pageInfo)
if err != nil {
global.GVA_LOG.Error("获取失败!", zap.Error(err))
response.FailWithMessage("获取失败:"+err.Error(), c)
return
}
response.OkWithDetailed(map[string]interface{}{
"lock": lock,
"list": list,
"total": total,
"page": pageInfo.Page,
"page_size": pageInfo.PageSize,
}, "获取成功", c)
}