package advitiseV2Ser import ( "context" "stat/api/proto" "stat/common/genId" "stat/models/advitiseInfoMod" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo/options" ) func InfoList(ctx context.Context, req *proto.AdvitiseInfoListReq) (*proto.AdvitiseInfoListResp, error) { resp := &proto.AdvitiseInfoListResp{ Total: 0, List: make(advitiseInfoMod.AdvitiseInfoList, 0), } filter := bson.M{} if req.Title != "" { filter[advitiseInfoMod.FN.AdvitiseInfo.Title] = bson.M{"$regex": req.Title, "$options": "i"} } if req.Remark != "" { filter[advitiseInfoMod.FN.AdvitiseInfo.Remark] = bson.M{"$regex": req.Remark, "$options": "i"} } if req.Status != nil { filter[advitiseInfoMod.FN.AdvitiseInfo.Status] = *req.Status } total, err := advitiseInfoMod.CountAdvitiseInfos(ctx, filter) if err != nil { return nil, err } opt := &options.FindOptions{} opt.SetSort(bson.D{{Key: advitiseInfoMod.FN.AdvitiseInfo.CreatedAt, Value: -1}}) opt.SetSkip((req.PageNum - 1) * req.PageSize) opt.SetLimit(req.PageSize) list, err := advitiseInfoMod.FindManyAdvitiseInfos(ctx, filter, opt) if err != nil { return nil, err } resp.Total = total resp.List = list return resp, nil } func InfoAdd(ctx context.Context, req *proto.AddAdvitiseInfoReq) error { now := time.Now() doc := &advitiseInfoMod.AdvitiseInfo{ Id: genId.GetAdvitiseInfoId(), Title: req.Title, FullScreenImgs: emptyIfNil(req.FullScreenImgs), Banner720300Imgs: emptyIfNil(req.Banner720300Imgs), Banner720150Imgs: emptyIfNil(req.Banner720150Imgs), Banner750700Imgs: emptyIfNil(req.Banner750700Imgs), Banner800450Imgs: emptyIfNil(req.Banner800450Imgs), PopUps600800Imgs: emptyIfNil(req.PopUps600800Imgs), PopUps512512Imgs: emptyIfNil(req.PopUps512512Imgs), SmallCubeImgs: emptyIfNil(req.SmallCubeImgs), VerticalCubeImgs: emptyIfNil(req.VerticalCubeImgs), RandomNames: emptyIfNil(req.RandomNames), Link: req.Link, Status: req.Status, StartTime: req.StartTime, EndTime: req.EndTime, Remark: req.Remark, Desc: req.Desc, CreatedAt: now, UpdatedAt: now, } return advitiseInfoMod.InsertOneAdvitiseInfo(ctx, doc) } func InfoUpdate(ctx context.Context, req *proto.UpdateAdvitiseInfoReq) error { set := bson.M{ advitiseInfoMod.FN.AdvitiseInfo.UpdatedAt: time.Now(), } if req.Title != nil { set[advitiseInfoMod.FN.AdvitiseInfo.Title] = *req.Title } if req.FullScreenImgs != nil { set[advitiseInfoMod.FN.AdvitiseInfo.FullScreenImgs] = *req.FullScreenImgs } if req.Banner720300Imgs != nil { set[advitiseInfoMod.FN.AdvitiseInfo.Banner720300Imgs] = *req.Banner720300Imgs } if req.Banner720150Imgs != nil { set[advitiseInfoMod.FN.AdvitiseInfo.Banner720150Imgs] = *req.Banner720150Imgs } if req.Banner750700Imgs != nil { set[advitiseInfoMod.FN.AdvitiseInfo.Banner750700Imgs] = *req.Banner750700Imgs } if req.Banner800450Imgs != nil { set[advitiseInfoMod.FN.AdvitiseInfo.Banner800450Imgs] = *req.Banner800450Imgs } if req.PopUps600800Imgs != nil { set[advitiseInfoMod.FN.AdvitiseInfo.PopUps600800Imgs] = *req.PopUps600800Imgs } if req.PopUps512512Imgs != nil { set[advitiseInfoMod.FN.AdvitiseInfo.PopUps512512Imgs] = *req.PopUps512512Imgs } if req.SmallCubeImgs != nil { set[advitiseInfoMod.FN.AdvitiseInfo.SmallCubeImgs] = *req.SmallCubeImgs } if req.VerticalCubeImgs != nil { set[advitiseInfoMod.FN.AdvitiseInfo.VerticalCubeImgs] = *req.VerticalCubeImgs } if req.RandomNames != nil { set[advitiseInfoMod.FN.AdvitiseInfo.RandomNames] = *req.RandomNames } if req.Link != nil { set[advitiseInfoMod.FN.AdvitiseInfo.Link] = *req.Link } if req.Status != nil { set[advitiseInfoMod.FN.AdvitiseInfo.Status] = *req.Status } if req.StartTime != nil { set[advitiseInfoMod.FN.AdvitiseInfo.StartTime] = *req.StartTime } if req.EndTime != nil { set[advitiseInfoMod.FN.AdvitiseInfo.EndTime] = *req.EndTime } if req.Remark != nil { set[advitiseInfoMod.FN.AdvitiseInfo.Remark] = *req.Remark } if req.Desc != nil { set[advitiseInfoMod.FN.AdvitiseInfo.Desc] = *req.Desc } return advitiseInfoMod.UpdateOneAdvitiseInfo(ctx, bson.M{advitiseInfoMod.FN.AdvitiseInfo.Id: req.Id}, bson.M{"$set": set}, ) } func InfoDel(ctx context.Context, id int64) error { _, err := advitiseInfoMod.DelOneAdvitiseInfo(ctx, bson.M{advitiseInfoMod.FN.AdvitiseInfo.Id: id}) return err } func emptyIfNil(s []string) []string { if s == nil { return []string{} } return s }