package advitiseV2Ser import ( "context" "stat/api/proto" "stat/common/genId" "stat/models/advitiseLocationMod" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo/options" ) func LocationList(ctx context.Context, req *proto.AdvitiseLocationListReq) (*proto.AdvitiseLocationListResp, error) { resp := &proto.AdvitiseLocationListResp{ Total: 0, List: make(advitiseLocationMod.AdvitiseLocationList, 0), } filter := bson.M{} if req.AppId != nil { filter[advitiseLocationMod.FN.AdvitiseLocation.AppId] = *req.AppId } if req.LocId != nil { filter[advitiseLocationMod.FN.AdvitiseLocation.LocId] = *req.LocId } if req.Name != "" { filter[advitiseLocationMod.FN.AdvitiseLocation.Name] = bson.M{"$regex": req.Name, "$options": "i"} } total, err := advitiseLocationMod.CountAdvitiseLocations(ctx, filter) if err != nil { return nil, err } opt := &options.FindOptions{} opt.SetSort(bson.D{{Key: advitiseLocationMod.FN.AdvitiseLocation.CreatedAt, Value: -1}}) opt.SetSkip((req.PageNum - 1) * req.PageSize) opt.SetLimit(req.PageSize) list, err := advitiseLocationMod.FindManyAdvitiseLocations(ctx, filter, opt) if err != nil { return nil, err } resp.Total = total resp.List = list return resp, nil } func LocationAdd(ctx context.Context, req *proto.AddAdvitiseLocationReq) error { now := time.Now() doc := &advitiseLocationMod.AdvitiseLocation{ Id: genId.GetAdvitiseLocationId(), AppId: req.AppId, LocId: req.LocId, Name: req.Name, AdvitiseSize: req.AdvitiseSize, ImgSizeDesc: req.ImgSizeDesc, Remark: req.Remark, CreatedAt: now, UpdatedAt: now, } return advitiseLocationMod.InsertOneAdvitiseLocation(ctx, doc) } func LocationUpdate(ctx context.Context, req *proto.UpdateAdvitiseLocationReq) error { set := bson.M{ advitiseLocationMod.FN.AdvitiseLocation.UpdatedAt: time.Now(), } if req.AppId != nil { set[advitiseLocationMod.FN.AdvitiseLocation.AppId] = *req.AppId } if req.LocId != nil { set[advitiseLocationMod.FN.AdvitiseLocation.LocId] = *req.LocId } if req.Name != nil { set[advitiseLocationMod.FN.AdvitiseLocation.Name] = *req.Name } if req.AdvitiseSize != nil { set[advitiseLocationMod.FN.AdvitiseLocation.AdvitiseSize] = *req.AdvitiseSize } if req.ImgSizeDesc != nil { set[advitiseLocationMod.FN.AdvitiseLocation.ImgSizeDesc] = *req.ImgSizeDesc } if req.Remark != nil { set[advitiseLocationMod.FN.AdvitiseLocation.Remark] = *req.Remark } return advitiseLocationMod.UpdateOneAdvitiseLocation(ctx, bson.M{advitiseLocationMod.FN.AdvitiseLocation.Id: req.Id}, bson.M{"$set": set}, ) } func LocationDel(ctx context.Context, id int64) error { _, err := advitiseLocationMod.DelOneAdvitiseLocation(ctx, bson.M{advitiseLocationMod.FN.AdvitiseLocation.Id: id}) return err }