diff --git a/dao/ad_position_dao.go b/dao/ad_position_dao.go index 3748803..2de94ee 100644 --- a/dao/ad_position_dao.go +++ b/dao/ad_position_dao.go @@ -13,9 +13,17 @@ import ( "go.mongodb.org/mongo-driver/v2/mongo/options" ) -var AdPosition = &adPosition{} +var AdPosition = &adPosition{ + NoCache: true, +} -type adPosition struct{} +type adPosition struct { + NoCache bool +} + +func (d *adPosition) SetNoCache() { + AdPosition.NoCache = true +} // Insert 插入广告位 func (d *adPosition) Insert(ctx context.Context, adPosition *entity.AdPosition) (err error) { @@ -156,7 +164,7 @@ func (d *adPosition) GetOne(ctx context.Context, id string) (adPosition *entity. filter := bson.M{"_id": objectId} adPosition = &entity.AdPosition{} - err = mongo.FindOne(ctx, filter, adPosition, entity.AdPositionCollection) + err = mongo.FindOne(ctx, d.NoCache, filter, adPosition, entity.AdPositionCollection) return } @@ -165,7 +173,7 @@ func (d *adPosition) GetByCode(ctx context.Context, code string) (adPosition *en filter := bson.M{"positionCode": code} adPosition = &entity.AdPosition{} - err = mongo.FindOne(ctx, filter, adPosition, entity.AdPositionCollection) + err = mongo.FindOne(ctx, d.NoCache, filter, adPosition, entity.AdPositionCollection) return } @@ -207,7 +215,7 @@ func (d *adPosition) buildListFilter(req *dto.ListAdPositionReq) bson.M { // checkTotalCount 检查总数 func (d *adPosition) checkTotalCount(ctx context.Context, filter bson.M) (total int64, err error) { - total, err = mongo.Count(ctx, filter, entity.AdPositionCollection) + total, err = mongo.Count(ctx, d.NoCache, filter, entity.AdPositionCollection) return } @@ -240,7 +248,7 @@ func (d *adPosition) List(ctx context.Context, req *dto.ListAdPositionReq) (list opts := options.Find().SetLimit(limit).SetSkip(skip).SetSort(sort) - err = mongo.Find(ctx, filter, &list, entity.AdPositionCollection, opts) + err = mongo.Find(ctx, d.NoCache, filter, &list, entity.AdPositionCollection, opts) return } @@ -252,6 +260,6 @@ func (d *adPosition) GetAvailableAdPositions(ctx context.Context) (list []*entit opts := options.Find().SetSort(bson.M{"createdAt": -1}) - err = mongo.Find(ctx, filter, &list, entity.AdPositionCollection, opts) + err = mongo.Find(ctx, d.NoCache, filter, &list, entity.AdPositionCollection, opts) return } diff --git a/dao/ad_source_dao.go b/dao/ad_source_dao.go index 06fe86f..b096ac2 100644 --- a/dao/ad_source_dao.go +++ b/dao/ad_source_dao.go @@ -9,26 +9,34 @@ import ( "go.mongodb.org/mongo-driver/v2/mongo/options" ) -var AdSource = &adSourceDao{} +var AdSource = &adSourceDao{ + NoCache: true, +} -type adSourceDao struct{} +type adSourceDao struct { + NoCache bool +} + +func (d *adSourceDao) SetNoCache() { + AdSource.NoCache = true +} // GetByName 根据名称获取广告源 func (d *adSourceDao) GetByName(ctx context.Context, name string) (adSource *entity.AdSource, err error) { - err = mongo.FindOne(ctx, bson.M{"name": name}, &adSource, "ad_sources") + err = mongo.FindOne(ctx, d.NoCache, bson.M{"name": name}, &adSource, "ad_sources") return } // GetAvailableSources 获取可用的广告源 func (d *adSourceDao) GetAvailableSources(ctx context.Context) (list []*entity.AdSource, err error) { - err = mongo.Find(ctx, bson.M{"status": "active"}, &list, "ad_sources", + err = mongo.Find(ctx, d.NoCache, bson.M{"status": "active"}, &list, "ad_sources", options.Find().SetSort(bson.M{"priority": -1, "createdAt": 1})) return } // GetSourcesByProvider 根据提供商获取广告源 func (d *adSourceDao) GetSourcesByProvider(ctx context.Context, provider string) (list []*entity.AdSource, err error) { - err = mongo.Find(ctx, bson.M{"provider": provider, "status": "active"}, &list, "ad_sources", + err = mongo.Find(ctx, d.NoCache, bson.M{"provider": provider, "status": "active"}, &list, "ad_sources", options.Find().SetSort(bson.M{"priority": -1})) return } @@ -65,7 +73,7 @@ func (d *adSourceDao) Delete(ctx context.Context, id string) (affected int64, er // GetByID 根据ID获取广告源 func (d *adSourceDao) GetByID(ctx context.Context, id string) (adSource *entity.AdSource, err error) { - err = mongo.FindOne(ctx, bson.M{"_id": id}, &adSource, "ad_sources") + err = mongo.FindOne(ctx, d.NoCache, bson.M{"_id": id}, &adSource, "ad_sources") return } diff --git a/dao/advertisement_dao.go b/dao/advertisement_dao.go index a942199..baf2a28 100644 --- a/dao/advertisement_dao.go +++ b/dao/advertisement_dao.go @@ -14,9 +14,17 @@ import ( "go.mongodb.org/mongo-driver/v2/mongo/options" ) -var Advertisement = &advertisement{} +var Advertisement = &advertisement{ + NoCache: true, +} -type advertisement struct{} +type advertisement struct { + NoCache bool +} + +func (d *advertisement) SetNoCache() { + Advertisement.NoCache = true +} // Insert 插入广告 func (d *advertisement) Insert(ctx context.Context, advertisement *entity.Advertisement) (err error) { @@ -173,7 +181,7 @@ func (d *advertisement) GetOne(ctx context.Context, id string) (advertisement *e filter := bson.M{"_id": objectId} advertisement = &entity.Advertisement{} - err = mongo.FindOne(ctx, filter, advertisement, entity.AdvertisementCollection) + err = mongo.FindOne(ctx, d.NoCache, filter, advertisement, entity.AdvertisementCollection) return } @@ -215,7 +223,7 @@ func (d *advertisement) buildListFilter(req *dto.ListAdvertisementReq) bson.M { // checkTotalCount 检查总数 func (d *advertisement) checkTotalCount(ctx context.Context, filter bson.M) (total int64, err error) { - total, err = mongo.Count(ctx, filter, entity.AdvertisementCollection) + total, err = mongo.Count(ctx, d.NoCache, filter, entity.AdvertisementCollection) return } @@ -248,6 +256,6 @@ func (d *advertisement) List(ctx context.Context, req *dto.ListAdvertisementReq) opts := options.Find().SetLimit(limit).SetSkip(skip).SetSort(sort) - err = mongo.Find(ctx, filter, &list, entity.AdvertisementCollection, opts) + err = mongo.Find(ctx, d.NoCache, filter, &list, entity.AdvertisementCollection, opts) return } diff --git a/dao/advertiser_dao.go b/dao/advertiser_dao.go index 069339f..02a4ffb 100644 --- a/dao/advertiser_dao.go +++ b/dao/advertiser_dao.go @@ -14,9 +14,17 @@ import ( "go.mongodb.org/mongo-driver/v2/mongo/options" ) -var Advertiser = &advertiser{} +var Advertiser = &advertiser{ + NoCache: true, +} -type advertiser struct{} +type advertiser struct { + NoCache bool +} + +func (d *advertiser) SetNoCache() { + Advertiser.NoCache = true +} // Insert 插入广告主 func (d *advertiser) Insert(ctx context.Context, advertiser *entity.Advertiser) (err error) { @@ -183,7 +191,7 @@ func (d *advertiser) Recharge(ctx context.Context, id string, amount int64, rema // 先获取当前余额 advertiser := &entity.Advertiser{} - err = mongo.FindOne(ctx, filter, advertiser, entity.AdvertiserCollection) + err = mongo.FindOne(ctx, d.NoCache, filter, advertiser, entity.AdvertiserCollection) if err != nil { return } @@ -218,7 +226,7 @@ func (d *advertiser) GetOne(ctx context.Context, id string) (advertiser *entity. filter := bson.M{"_id": objectId} advertiser = &entity.Advertiser{} - err = mongo.FindOne(ctx, filter, advertiser, entity.AdvertiserCollection) + err = mongo.FindOne(ctx, d.NoCache, filter, advertiser, entity.AdvertiserCollection) return } @@ -260,7 +268,7 @@ func (d *advertiser) buildListFilter(req *dto.ListAdvertiserReq) bson.M { // checkTotalCount 检查总数 func (d *advertiser) checkTotalCount(ctx context.Context, filter bson.M) (total int64, err error) { - total, err = mongo.Count(ctx, filter, entity.AdvertiserCollection) + total, err = mongo.Count(ctx, d.NoCache, filter, entity.AdvertiserCollection) return } @@ -293,6 +301,6 @@ func (d *advertiser) List(ctx context.Context, req *dto.ListAdvertiserReq) (list opts := options.Find().SetLimit(limit).SetSkip(skip).SetSort(sort) - err = mongo.Find(ctx, filter, &list, entity.AdvertiserCollection, opts) + err = mongo.Find(ctx, d.NoCache, filter, &list, entity.AdvertiserCollection, opts) return } diff --git a/dao/application_dao.go b/dao/application_dao.go index 553995c..ff3d15f 100644 --- a/dao/application_dao.go +++ b/dao/application_dao.go @@ -10,9 +10,17 @@ import ( ) // applicationDao 应用DAO -type applicationDao struct{} +type applicationDao struct { + NoCache bool +} -var Application = &applicationDao{} +var Application = &applicationDao{ + NoCache: true, +} + +func (d *applicationDao) SetNoCache() { + Application.NoCache = true +} // Create 创建应用 func (d *applicationDao) Create(ctx context.Context, app *entity.Application) (string, error) { @@ -29,21 +37,23 @@ func (d *applicationDao) Create(ctx context.Context, app *entity.Application) (s // GetByID 根据ID获取应用 func (d *applicationDao) GetByID(ctx context.Context, id string) (*entity.Application, error) { var app *entity.Application - err := mongo.FindOne(ctx, bson.M{"_id": id}, &app, "application") + err := mongo.FindOne(ctx, d.NoCache, bson.M{"_id": id}, &app, "application") return app, err } // GetByTenantID 根据租户ID获取应用列表 func (d *applicationDao) GetByTenantID(ctx context.Context, tenantID string) ([]*entity.Application, error) { var apps []*entity.Application - err := mongo.Find(ctx, bson.M{"tenantId": tenantID}, &apps, "application") + err := mongo.Find(ctx, d.NoCache, + bson.M{"tenantId": tenantID}, &apps, "application") return apps, err } // GetByAPIKey 根据API密钥获取应用 func (d *applicationDao) GetByAPIKey(ctx context.Context, apiKey string) (*entity.Application, error) { var app *entity.Application - err := mongo.FindOne(ctx, bson.M{"appKey": apiKey}, &app, "application") + err := mongo.FindOne(ctx, d.NoCache, + bson.M{"appKey": apiKey}, &app, "application") return app, err } @@ -67,13 +77,13 @@ func (d *applicationDao) List(ctx context.Context, tenantID string, page, pageSi } var apps []*entity.Application - total, err := mongo.Count(ctx, filter, "application") + total, err := mongo.Count(ctx, d.NoCache, filter, "application") if err != nil { return nil, 0, err } offset := (page - 1) * pageSize - err = mongo.Find(ctx, filter, &apps, "application", + err = mongo.Find(ctx, d.NoCache, filter, &apps, "application", options.Find().SetSort(bson.M{"createdAt": -1}). SetSkip(int64(offset)). SetLimit(int64(pageSize))) @@ -87,7 +97,7 @@ func (d *applicationDao) List(ctx context.Context, tenantID string, page, pageSi // GetByName 根据名称获取应用 func (d *applicationDao) GetByName(ctx context.Context, name string) (*entity.Application, error) { var app *entity.Application - err := mongo.FindOne(ctx, bson.M{"name": name}, &app, "application") + err := mongo.FindOne(ctx, d.NoCache, bson.M{"name": name}, &app, "application") return app, err } diff --git a/dao/cid_request_dao.go b/dao/cid_request_dao.go index c9dcb72..06d854b 100644 --- a/dao/cid_request_dao.go +++ b/dao/cid_request_dao.go @@ -9,9 +9,17 @@ import ( "go.mongodb.org/mongo-driver/v2/mongo/options" ) -var CIDRequest = &cidRequestDao{} +var CIDRequest = &cidRequestDao{ + NoCache: true, +} -type cidRequestDao struct{} +type cidRequestDao struct { + NoCache bool +} + +func (d *cidRequestDao) SetNoCache() { + CIDRequest.NoCache = true +} // Create 创建CID请求记录 func (d *cidRequestDao) Create(ctx context.Context, request *entity.CidRequest) (id string, err error) { @@ -30,14 +38,14 @@ func (d *cidRequestDao) GetHistory(ctx context.Context, userId string, page, siz filter := bson.M{"userId": userId} // 获取总数 - total, err = mongo.Count(ctx, filter, entity.CidRequestCollection) + total, err = mongo.Count(ctx, d.NoCache, filter, entity.CidRequestCollection) if err != nil { return } // 分页查询 offset := (page - 1) * size - err = mongo.Find(ctx, filter, &list, entity.CidRequestCollection, + err = mongo.Find(ctx, d.NoCache, filter, &list, entity.CidRequestCollection, options.Find().SetSort(bson.M{"createdAt": -1}). SetSkip(int64(offset)). SetLimit(int64(size))) @@ -50,14 +58,14 @@ func (d *cidRequestDao) GetStatistics(ctx context.Context, userId string) (stats stats = make(map[string]interface{}) // 总请求数 - totalRequests, err := mongo.Count(ctx, bson.M{"userId": userId}, entity.CidRequestCollection) + totalRequests, err := mongo.Count(ctx, d.NoCache, bson.M{"userId": userId}, entity.CidRequestCollection) if err != nil { return nil, err } stats["total_requests"] = totalRequests // 成功请求数 - successfulRequests, err := mongo.Count(ctx, bson.M{"userId": userId, "status": "completed"}, entity.CidRequestCollection) + successfulRequests, err := mongo.Count(ctx, d.NoCache, bson.M{"userId": userId, "status": "completed"}, entity.CidRequestCollection) if err != nil { return nil, err } diff --git a/dao/strategy_dao.go b/dao/strategy_dao.go index 1c54659..3d32a13 100644 --- a/dao/strategy_dao.go +++ b/dao/strategy_dao.go @@ -9,25 +9,33 @@ import ( "go.mongodb.org/mongo-driver/v2/mongo/options" ) -var Strategy = &strategyDao{} +var Strategy = &strategyDao{ + NoCache: true, +} -type strategyDao struct{} +type strategyDao struct { + NoCache bool +} + +func (d *strategyDao) SetNoCache() { + Strategy.NoCache = true +} // GetByName 根据名称获取策略 func (d *strategyDao) GetByName(ctx context.Context, name string) (strategy *entity.Strategy, err error) { - err = mongo.FindOne(ctx, bson.M{"name": name}, &strategy, "strategies") + err = mongo.FindOne(ctx, d.NoCache, bson.M{"name": name}, &strategy, "strategies") return } // GetByID 根据ID获取策略 func (d *strategyDao) GetByID(ctx context.Context, id string) (strategy *entity.Strategy, err error) { - err = mongo.FindOne(ctx, bson.M{"_id": id}, &strategy, "strategies") + err = mongo.FindOne(ctx, d.NoCache, bson.M{"_id": id}, &strategy, "strategies") return } // GetByTenantLevel 根据租户级别获取策略 func (d *strategyDao) GetByTenantLevel(ctx context.Context, tenantLevel string) (strategy *entity.Strategy, err error) { - err = mongo.FindOne(ctx, bson.M{"tenantLevel": tenantLevel, "status": "active"}, &strategy, "strategies", + err = mongo.FindOne(ctx, d.NoCache, bson.M{"tenantLevel": tenantLevel, "status": "active"}, &strategy, "strategies", options.FindOne().SetSort(bson.M{"priority": -1, "createdAt": 1})) return } @@ -75,14 +83,14 @@ func (d *strategyDao) GetList(ctx context.Context, page, size int, tenantLevel, } // 获取总数 - total, err = mongo.Count(ctx, filter, "strategies") + total, err = mongo.Count(ctx, d.NoCache, filter, "strategies") if err != nil { return } // 分页查询 offset := (page - 1) * size - err = mongo.Find(ctx, filter, &list, "strategies", + err = mongo.Find(ctx, d.NoCache, filter, &list, "strategies", options.Find().SetSort(bson.M{"priority": -1, "createdAt": -1}). SetSkip(int64(offset)). SetLimit(int64(size))) diff --git a/go.mod b/go.mod index 3aee642..0e9b507 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module cid go 1.25.3 require ( - gitee.com/red-future---jilin-g/common v0.2.1 + gitee.com/red-future---jilin-g/common v0.2.6 github.com/gogf/gf/contrib/drivers/mysql/v2 v2.9.5 github.com/gogf/gf/contrib/nosql/redis/v2 v2.9.5 github.com/gogf/gf/v2 v2.9.5 @@ -11,7 +11,7 @@ require ( golang.org/x/net v0.47.0 ) -//replace gitee.com/red-future---jilin-g/common v0.2.1 => ../common +//replace gitee.com/red-future---jilin-g/common v0.2.6 => ../common require ( github.com/BurntSushi/toml v1.5.0 // indirect