package dbstruct import ( "errors" "service/library/wishjson" ) // 图片 type Image struct { Id int64 `json:"id" bson:"_id"` // 图片id Ct int64 `json:"ct" bson:"ct"` // 创建时间 Ut int64 `json:"ut" bson:"ut"` // 更新时间 SrcId string `json:"src_id" bson:"src_id"` // 源id MD5 string `json:"md5" bson:"md5"` // 视频md5 W int64 `json:"w" bson:"w"` // 宽 H int64 `json:"h" bson:"h"` // 高 Fmt string `json:"fmt" bson:"fmt"` // 图片格式 } type ToCImage struct { Id int64 `json:"id"` // 图片id W int64 `json:"w"` // 宽 H int64 `json:"h"` // 高 Fmt string `json:"fmt"` // 图片格式 Urls []string `json:"urls"` // 图片展示地址 } // 视频 type Video struct { Id int64 `json:"id" bson:"_id"` // 视频id Ct int64 `json:"ct" bson:"ct"` // 创建时间 Ut int64 `json:"ut" bson:"ut"` // 更新时间 SrcId string `json:"src_id" bson:"src_id"` // 源id CoverSrcId string `json:"cover_src_id" bson:"cover_src_id"` // cover srcId CoverId int64 `json:"cover_id" bson:"cover_id"` // 封面id MD5 string `json:"md5" bson:"md5"` // 视频md5 Dur int64 `json:"dur" bson:"dur"` // 视频时长 Fmt string `json:"fmt" bson:"fmt"` } type ToCVideo struct { Id int64 `json:"id"` // 视频id Dur int64 `json:"dur"` // 视频时 CoverUrls []string `json:"cover_urls"` // 视频封面地址 CoverW int64 `json:"cover_w"` // 封面宽 CoverH int64 `json:"cover_h"` // 封面高 CoverFmt string `json:"cover_fmt"` // 封面图片格式 Urls []string `json:"urls"` // 视频地址 } func NewImageFromJson(item any) (img *Image, err error) { j := wishjson.New(item) img = &Image{ SrcId: j.Get("src_id").MustPhpString(), MD5: j.Get("md5").MustPhpString(), W: j.Get("w").MustPhpInt(), H: j.Get("h").MustPhpInt(), Fmt: j.Get("fmt").MustPhpString(), } if img.SrcId == "" { err = errors.New("invalid image object with null src_id") return } if img.MD5 == "" { err = errors.New("invalid image object with null md5") return } if img.W == 0 { err = errors.New("invalid image object with zero-width") return } if img.H == 0 { err = errors.New("invalid image object with zero-height") return } if img.Fmt == "" { err = errors.New("invalid image object with null fmt") return } return } func NewVideoFromJson(item any) (vid *Video, err error) { j := wishjson.New(item) vid = &Video{ SrcId: j.Get("src_id").MustPhpString(), CoverSrcId: j.Get("cover_src_id").MustPhpString(), CoverId: j.Get("cover_id").MustPhpInt(), MD5: j.Get("md5").MustPhpString(), Dur: j.Get("dur").MustPhpInt(), Fmt: j.Get("fmt").MustPhpString(), } if vid.SrcId == "" { err = errors.New("invalid video object with null src_id") return } if vid.CoverId == 0 { err = errors.New("invalid video object with zero cover_id") return } if vid.MD5 == "" { err = errors.New("invalid video object with null md5") return } if vid.Dur == 0 { err = errors.New("invalid video object with zero dur") return } if vid.Fmt == "" { err = errors.New("invalid video object with null fmt") return } return }