Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

156 lines
3.6 KiB
Go
Executable File

package ai_template_module_ser
import (
"time"
"91porn-server/models/commod"
"91porn-server/models/v/aitemplatemodulemod"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type WebListReq struct {
Type *int `json:"type" form:"type"` // 模块类型
Status *int `json:"status" form:"status"` // 状态
commod.Page
}
func (q *WebListReq) Filter() primitive.M {
filter := bson.M{}
if q.Status != nil {
filter["status"] = q.Status
}
if q.Type != nil {
filter["type"] = q.Type
}
return filter
}
type WebListRes struct {
Total int64 `json:"total"`
List []aitemplatemodulemod.AiTemplateModule `json:"list"`
}
// GetList 获取列表
func (q *WebListReq) GetList() (res WebListRes, err error) {
sort := bson.D{{"sortNum", -1}}
res.List, res.Total, _, err = aitemplatemodulemod.GetList(q.Filter(), int64(q.Skip()), int64(q.Limit()), sort)
return
}
type WebAllListReq struct {
}
func (q *WebAllListReq) Filter() primitive.M {
filter := bson.M{}
filter["status"] = 1
filter["isDelete"] = false
return filter
}
type WebAllListRes struct {
ID primitive.ObjectID `json:"id" bson:"_id,omitempty"` // 文档id
Type int `json:"type" bson:"type"` // 模块类型 1:AI视频换脸,2:AI图片换脸
Name string `json:"name" bson:"name"` // 模块名称
}
// GetList 获取列表
func (q *WebAllListReq) GetList() (res []WebAllListRes, err error) {
var ret []WebAllListRes
sort := bson.D{{"sortNum", -1}}
data, err := aitemplatemodulemod.GetAll(q.Filter(), sort)
if err != nil {
return ret, err
}
if data != nil && len(data) > 0 {
for _, d := range data {
ret = append(ret, WebAllListRes{
ID: d.ID,
Name: d.Name,
Type: d.Type,
})
}
}
return ret, nil
}
type WebCreateReq struct {
Type int `json:"type" form:"type" binding:"required"` // 模块类型
Name string `json:"name" form:"name" binding:"required"` // 模块名称
Status int `json:"status" form:"status" binding:"required"` // 状态
SortNum int `json:"sortNum" form:"sortNum" binding:"required"` // 模块排序
}
// Create 发布数据
func (p *WebCreateReq) Create() error {
data := aitemplatemodulemod.AiTemplateModule{
Type: p.Type,
Name: p.Name,
Status: p.Status,
SortNum: p.SortNum,
IsDelete: false,
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
}
// 创建数据
if _, err := aitemplatemodulemod.Insert(nil, data); err != nil {
return err
}
return nil
}
type WebUpdateReq struct {
ID primitive.ObjectID `json:"id" binding:"required"`
Type *int `json:"type"` // 模块类型
Name *string `json:"name"` // 模块名称
Status *int `json:"status"` // 状态
SortNum *int `json:"sortNum"` // 模块排序
}
// Update 更新数据
func (p *WebUpdateReq) Update() error {
_, err := aitemplatemodulemod.GetInfo(p.ID)
if err != nil {
return err
}
data := make(map[string]interface{})
if p.Type != nil {
data["type"] = *p.Type
}
if p.Name != nil {
data["name"] = *p.Name
}
if p.Status != nil {
data["status"] = *p.Status
}
if p.SortNum != nil {
data["sortNum"] = *p.SortNum
}
data["updatedAt"] = time.Now()
if _, err = aitemplatemodulemod.UpdateByID(nil, p.ID, data); err != nil {
return err
}
return nil
}
type WebDeleteReq struct {
ID primitive.ObjectID `json:"id" binding:"required"`
}
// Delete 删除数据
func (p *WebDeleteReq) Delete() error {
if err := aitemplatemodulemod.DeleteByID(nil, p.ID); err != nil {
return err
}
return nil
}