@@ -0,0 +1,166 @@
|
||||
package adser
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"91porn-server/common/db"
|
||||
"91porn-server/models/v/adreviewmod"
|
||||
"91porn-server/models/v/adsmod"
|
||||
"91porn-server/web/webg"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
type ReviewRecord struct {
|
||||
ID primitive.ObjectID `json:"id"` //id
|
||||
DistrictCode string `json:"districtCode"` //商区码
|
||||
OptType adreviewmod.OptType `json:"optType"` //操作类型
|
||||
ApplyAt time.Time `json:"applyAt"` //申请时间
|
||||
PassAt time.Time `json:"passAt"` //通过时间
|
||||
RefussAt time.Time `json:"refussAt"` //拒绝时间
|
||||
Reviewer string `json:"reviewer"` //审核人
|
||||
ReviewStatus adreviewmod.ReviewStatus `json:"reviewStatus"` //审核状态
|
||||
Remark string `json:"remark"` //备注
|
||||
ReceiptInfo string `json:"receiptInfo"` //回执信息
|
||||
ADID primitive.ObjectID `json:"adID"` //广告id
|
||||
Title string `json:"title"` //广告标题
|
||||
Cover string `json:"cover"` //广告封面图
|
||||
Size int `json:"size"` //尺寸 单位:B
|
||||
Height int `json:"height"`
|
||||
Width int `json:"width"`
|
||||
HrefType adsmod.URLJumpType `json:"hrefType"` //广告链接类型
|
||||
Href string `json:"href"` //广告跳转地址
|
||||
Position adsmod.AdPosition `json:"position"` //广告位置
|
||||
SortCode int `json:"sortCode"` //排序号
|
||||
}
|
||||
|
||||
type ReviewPage struct {
|
||||
List []ReviewRecord `json:"list"`
|
||||
Total int64 `json:"total"`
|
||||
}
|
||||
|
||||
// ReviewPages 获取广告列表
|
||||
func ReviewPages(skip, limit int64, idMatch adreviewmod.IDMatch, reviewStatusMatch adreviewmod.ReviewStatusMatch, districtCodeMatch adreviewmod.DistrictCodeMatch) (ReviewPage, error) {
|
||||
mats := []adreviewmod.Matcher{
|
||||
idMatch.New(),
|
||||
reviewStatusMatch.New(),
|
||||
districtCodeMatch.New(),
|
||||
}
|
||||
list, err := adreviewmod.List(adreviewmod.Sort_createdAt_N1, &skip, &limit, mats...)
|
||||
if err != nil {
|
||||
return ReviewPage{}, nil
|
||||
}
|
||||
recordList := make([]ReviewRecord, len(list))
|
||||
for i, v := range list {
|
||||
recordList[i] = ReviewRecord{
|
||||
ID: v.ID,
|
||||
DistrictCode: v.DistrictCode,
|
||||
OptType: v.OptType,
|
||||
PassAt: v.PassAt,
|
||||
RefussAt: v.RefussAt,
|
||||
Reviewer: v.Reviewer,
|
||||
ReviewStatus: v.ReviewStatus,
|
||||
ADID: v.ADID,
|
||||
Cover: v.Cover,
|
||||
Size: v.Size,
|
||||
Height: v.Height,
|
||||
Width: v.Width,
|
||||
Title: v.Title,
|
||||
HrefType: v.HrefType,
|
||||
Href: v.Href,
|
||||
Position: adsmod.AdPosition(v.Position),
|
||||
SortCode: v.SortCode,
|
||||
Remark: v.Remark,
|
||||
ReceiptInfo: v.ReceiptInfo,
|
||||
ApplyAt: v.ApplyAt,
|
||||
}
|
||||
}
|
||||
count, err := adreviewmod.Count(mats...)
|
||||
if err != nil {
|
||||
return ReviewPage{}, nil
|
||||
}
|
||||
return ReviewPage{
|
||||
recordList,
|
||||
count,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func CheckRefuse(id primitive.ObjectID, reviewer string, receiptInfo string) error {
|
||||
return adreviewmod.UpdateReviewByID(id, adreviewmod.Processong, adreviewmod.Refuse, nil, reviewer, receiptInfo, time.Now())
|
||||
}
|
||||
|
||||
func CheckPass(id primitive.ObjectID, adsType adsmod.AdsType, reviewer string, receiptInfo string, startTime, endTime time.Time) error {
|
||||
adR, err := adreviewmod.FindOneByID(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
now := time.Now()
|
||||
position := adsmod.AdPosition(adR.Position)
|
||||
reviewInfo := adsmod.ReviewInfo{
|
||||
ReviewID: adR.ID,
|
||||
ReviewAt: &now,
|
||||
Reviewer: &reviewer,
|
||||
}
|
||||
insDoc := adsmod.InsertDoc{
|
||||
AdsType: adsType,
|
||||
Cover: adR.Cover,
|
||||
Title: adR.Title,
|
||||
HrefType: adR.HrefType,
|
||||
Href: adR.Href,
|
||||
Position: position,
|
||||
SortCode: adR.SortCode,
|
||||
Active: true,
|
||||
Remark: receiptInfo,
|
||||
DistrictCode: adR.DistrictCode,
|
||||
ReviewInfo: reviewInfo,
|
||||
CreatedAt: now,
|
||||
CoverProp: adR.CoverProp,
|
||||
Start: startTime,
|
||||
End: endTime,
|
||||
}
|
||||
t := true
|
||||
upDoc := adsmod.UpdateDoc{
|
||||
Title: &adR.Title,
|
||||
Cover: &adR.Cover,
|
||||
HrefType: &adR.HrefType,
|
||||
Href: &adR.Href,
|
||||
Position: &position,
|
||||
SortCode: &adR.SortCode,
|
||||
Active: &t,
|
||||
Remark: &receiptInfo,
|
||||
ReviewInfo: reviewInfo,
|
||||
UpdatedAt: now,
|
||||
CoverProp: adR.CoverProp,
|
||||
Start: &startTime,
|
||||
End: &endTime,
|
||||
}
|
||||
return webg.VideoDB.Trans(func(t *db.MongoTool) error {
|
||||
if adR.ADID.IsZero() {
|
||||
adID, err := adsmod.InsertOne(t, insDoc)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return adreviewmod.UpdateReviewByID(id, adreviewmod.Processong, adreviewmod.Pass, &adID, reviewer, receiptInfo, now)
|
||||
}
|
||||
if err := adsmod.UpdateOneByID(t, adR.ADID, upDoc); err != nil {
|
||||
return err
|
||||
}
|
||||
return adreviewmod.UpdateReviewByID(id, adreviewmod.Processong, adreviewmod.Pass, nil, reviewer, receiptInfo, now)
|
||||
})
|
||||
}
|
||||
|
||||
func DeleteAd(adID, arID *primitive.ObjectID) error {
|
||||
return webg.VideoDB.Trans(func(t *db.MongoTool) error {
|
||||
if adID != nil {
|
||||
if err := adsmod.DeleteOne(t, *adID); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if arID != nil {
|
||||
if err := adreviewmod.DeleteOne(t, *arID); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user