156 lines
3.6 KiB
Go
Executable File
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
|
|
}
|