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 }