EasyVQD/internal/web/api/vqdtasktemplate.go
2026-01-17 16:19:36 +08:00

120 lines
3.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package api
import (
"easyvqd/internal/core/vqd"
"fmt"
"git.lnton.com/lnton/pkg/reason"
"github.com/gin-gonic/gin"
"strconv"
)
func (a VqdTaskAPI) findVqdTaskTemplate(c *gin.Context, in *vqd.FindVqdTaskTemplateInput) (any, error) {
items, total, err := a.core.FindVqdTaskTemplate(c.Request.Context(), in)
rows := make([]map[string]interface{}, 0)
for _, item := range items {
//row := structs.Map(item)
row := make(map[string]interface{})
row["id"] = item.ID
row["name"] = item.Name
row["des"] = item.Des
row["plans"] = item.Plans
row["enable"] = item.Enable
row["is_default"] = item.IsDefault
row["vqd_config"] = item.VqdConfig
row["vqd_lgt_dark"] = item.VqdLgtDark
row["vqd_blue"] = item.VqdBlue
row["vqd_clarity"] = item.VqdClarity
row["vqd_shark"] = item.VqdShark
row["vqd_freeze"] = item.VqdFreeze
row["vqd_color"] = item.VqdColor
row["vqd_occlusion"] = item.VqdOcclusion
row["vqd_noise"] = item.VqdNoise
row["vqd_contrast"] = item.VqdContrast
row["vqd_mosaic"] = item.VqdMosaic
row["vqd_flower"] = item.VqdFlower
row["created_at"] = item.CreatedAt
row["updated_at"] = item.UpdatedAt
rows = append(rows, row)
}
return gin.H{"items": rows, "total": total}, err
}
func (a VqdTaskAPI) getVqdTaskTemplate(c *gin.Context, _ *struct{}) (any, error) {
ID, _ := strconv.Atoi(c.Param("id"))
item, err := a.core.GetVqdTaskTemplate(c.Request.Context(), ID)
if err != nil {
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`find vqd [%d] err [%s]`, ID, err.Error()))
}
row := make(map[string]interface{})
row["id"] = item.ID
row["name"] = item.Name
row["is_default"] = item.IsDefault
row["vqd_config"] = item.VqdConfig
row["vqd_lgt_dark"] = item.VqdLgtDark
row["vqd_blue"] = item.VqdBlue
row["vqd_clarity"] = item.VqdClarity
row["vqd_shark"] = item.VqdShark
row["vqd_freeze"] = item.VqdFreeze
row["vqd_color"] = item.VqdColor
row["vqd_occlusion"] = item.VqdOcclusion
row["vqd_noise"] = item.VqdNoise
row["vqd_contrast"] = item.VqdContrast
row["vqd_mosaic"] = item.VqdMosaic
row["vqd_flower"] = item.VqdFlower
row["des"] = item.Des
row["plans"] = item.Plans
row["enable"] = item.Enable
row["created_at"] = item.CreatedAt
row["updated_at"] = item.UpdatedAt
return gin.H{"data": row}, err
}
func (a VqdTaskAPI) addVqdTaskTemplate(c *gin.Context, in *vqd.AddVqdTaskTemplateInput) (any, error) {
_, err := a.core.AddVqdTaskTemplate(c.Request.Context(), in)
if err != nil {
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`add vqd err [%s]`, err.Error()))
}
return gin.H{"data": "OK!"}, err
}
func (a VqdTaskAPI) editVqdTaskTemplate(c *gin.Context, in *vqd.EditVqdTaskTemplateInput) (any, error) {
ID, _ := strconv.Atoi(c.Param("id"))
_, err := a.core.GetVqdTaskTemplate(c.Request.Context(), ID)
if err != nil {
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`find vqd [%d] err [%s]`, ID, err.Error()))
}
_, err = a.core.EditVqdTaskTemplate(c.Request.Context(), in, ID)
if err != nil {
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`edit vqd err [%s]`, err.Error()))
}
return gin.H{"data": "OK!"}, err
}
func (a VqdTaskAPI) delVqdTaskTemplate(c *gin.Context, _ *struct{}) (any, error) {
ID, _ := strconv.Atoi(c.Param("id"))
info, err := a.core.GetVqdTaskTemplate(c.Request.Context(), ID)
if err != nil {
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`find vqd [%d] err [%s]`, ID, err.Error()))
}
if info.IsDefault {
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`默认模板不支持删除 [%s] `, info.Name))
}
templateInfo, err := a.core.FindVqdTaskTemplateID(c.Request.Context(), ID)
if err == nil {
if templateInfo != nil {
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`模板关联【%s】任务,需先清理【%s】任务后才能删除模板`, templateInfo.Name, templateInfo.Name))
}
}
_, err = a.core.DelVqdTaskTemplate(c.Request.Context(), ID)
if err != nil {
return nil, reason.ErrServer.SetMsg(fmt.Sprintf(`del vqd [%d] err [%s]`, ID, err.Error()))
}
return gin.H{"data": "OK!"}, err
}