diff --git a/.gitignore b/.gitignore index 68e47f0..a0fcffe 100644 --- a/.gitignore +++ b/.gitignore @@ -20,7 +20,7 @@ bin-release/ /.idea/vcs.xml /.idea/UniappTool.xml /.idea/modules.xml -/.idea/cidservice.iml +/.idea/cid.iml /.idea/.gitignore /.idea/go.imports.xml/ /model/dto/dto规范.md @@ -28,4 +28,5 @@ bin-release/ /controller/controller规范.md /service/service规范.md dao/dao规范.md -api接口文档.md \ No newline at end of file +api接口文档.md +/.idea/cidservice.iml diff --git a/Dockerfile b/Dockerfile index 29e6791..8f5fbdc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,7 +39,7 @@ RUN ln -sf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime \ COPY go.mod go.sum ./ # RUN chown -R golang:golang $WORKDIR RUN go mod download && go mod verify -COPY ../../cidService $WORKDIR +COPY ../../cid $WORKDIR RUN chown -R golang:golang $WORKDIR # Remove SetUID, SetGID RUN chmod 0755 /usr/local/bin/app/api \ @@ -54,4 +54,4 @@ RUN chmod 0755 /usr/local/bin/app/api \ USER golang RUN go build -v -o /usr/local/bin/app ./... EXPOSE 3002 -CMD ./cidService \ No newline at end of file +CMD ./cid \ No newline at end of file diff --git a/README.md b/README.md index 735c589..60ede13 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ CID服务商项目是一个为企业提供CID(Click ID)服务的完整解决 ## 项目结构 ``` -cidservice/ +cid/ ├── controller/ # 控制器层 │ ├── cid_controller.go │ ├── ad_source_controller.go diff --git a/config.yml b/config.yml index 0f82fa4..758d6ef 100644 --- a/config.yml +++ b/config.yml @@ -1,18 +1,9 @@ server: address : ":3001" - name: "cidService" -jwt: - secret: "abcdefghijklmnopqrstuvwxyz" + name: "cid" rate: limit: 200 burst: 300 - -# 租户限流配置 -tenantRateLimit: - enabled: true # 是否启用租户限流 - requestsPerHour: 3600 # 每小时最大请求数 - window: 3600 # 时间窗口(秒) - burst: 100 # 突发请求数 mongo: logger: level: "all" @@ -33,10 +24,5 @@ redis: consul: address: 192.168.3.200:8500 # pass: jiahui8888 -rabbitMQ: - host: 192.168.3.200 - port: 5672 - username: guest # 默认用户名 - password: guest # 默认密码 jaeger: #链路追踪 addr: 192.168.3.200:4318 \ No newline at end of file diff --git a/controller/ad_position_controller.go b/controller/ad_position_controller.go index adff651..e2294f0 100644 --- a/controller/ad_position_controller.go +++ b/controller/ad_position_controller.go @@ -3,8 +3,8 @@ package controller import ( "context" - "cidservice/model/dto" - "cidservice/service" + "cid/model/dto" + "cid/service" "gitee.com/red-future---jilin-g/common/http" ) diff --git a/controller/ad_source_controller.go b/controller/ad_source_controller.go index db61943..94e019b 100644 --- a/controller/ad_source_controller.go +++ b/controller/ad_source_controller.go @@ -4,8 +4,8 @@ import ( "context" "strconv" - "cidservice/model/dto" - "cidservice/service" + "cid/model/dto" + "cid/service" "github.com/gogf/gf/v2/errors/gerror" ) diff --git a/controller/ad_statistics_controller.go b/controller/ad_statistics_controller.go index 95d7f58..9bd2fb9 100644 --- a/controller/ad_statistics_controller.go +++ b/controller/ad_statistics_controller.go @@ -3,8 +3,8 @@ package controller import ( "context" - "cidservice/model/dto" - "cidservice/service" + "cid/model/dto" + "cid/service" ) type adStatistics struct{} diff --git a/controller/advertisement_controller.go b/controller/advertisement_controller.go index b72b753..c8484d1 100644 --- a/controller/advertisement_controller.go +++ b/controller/advertisement_controller.go @@ -1,8 +1,8 @@ package controller import ( - "cidservice/model/dto" - "cidservice/service" + "cid/model/dto" + "cid/service" "context" "gitee.com/red-future---jilin-g/common/http" diff --git a/controller/advertiser_controller.go b/controller/advertiser_controller.go index 0a4055e..5c1f930 100644 --- a/controller/advertiser_controller.go +++ b/controller/advertiser_controller.go @@ -1,8 +1,8 @@ package controller import ( - "cidservice/model/dto" - "cidservice/service" + "cid/model/dto" + "cid/service" "context" "gitee.com/red-future---jilin-g/common/http" diff --git a/controller/application_controller.go b/controller/application_controller.go index f72d487..d5c5299 100644 --- a/controller/application_controller.go +++ b/controller/application_controller.go @@ -3,8 +3,8 @@ package controller import ( "context" - "cidservice/model/dto" - "cidservice/service" + "cid/model/dto" + "cid/service" ) var Application = new(application) diff --git a/controller/cid_controller.go b/controller/cid_controller.go index f446900..045f8c0 100644 --- a/controller/cid_controller.go +++ b/controller/cid_controller.go @@ -3,8 +3,8 @@ package controller import ( "context" - "cidservice/model/dto" - "cidservice/service" + "cid/model/dto" + "cid/service" "github.com/gogf/gf/v2/errors/gerror" ) diff --git a/controller/rate_limit_controller.go b/controller/rate_limit_controller.go index f400853..5c8a4a1 100644 --- a/controller/rate_limit_controller.go +++ b/controller/rate_limit_controller.go @@ -3,8 +3,8 @@ package controller import ( "context" - "cidservice/model/dto" - "cidservice/service" + "cid/model/dto" + "cid/service" ) var RateLimit = new(rateLimit) diff --git a/controller/stat_report_controller.go b/controller/stat_report_controller.go index 4f2000f..e932606 100644 --- a/controller/stat_report_controller.go +++ b/controller/stat_report_controller.go @@ -4,8 +4,8 @@ import ( "context" "fmt" - "cidservice/model/dto" - "cidservice/service" + "cid/model/dto" + "cid/service" ) var StatReport = new(statReport) diff --git a/controller/strategy_controller.go b/controller/strategy_controller.go index 1dd9efa..22c4378 100644 --- a/controller/strategy_controller.go +++ b/controller/strategy_controller.go @@ -3,8 +3,8 @@ package controller import ( "context" - "cidservice/model/dto" - "cidservice/service" + "cid/model/dto" + "cid/service" "github.com/gogf/gf/v2/errors/gerror" ) diff --git a/dao/ad_position_dao.go b/dao/ad_position_dao.go index c02a98a..3748803 100644 --- a/dao/ad_position_dao.go +++ b/dao/ad_position_dao.go @@ -1,8 +1,8 @@ package dao import ( - "cidservice/model/dto" - "cidservice/model/entity" + "cid/model/dto" + "cid/model/entity" "context" "gitee.com/red-future---jilin-g/common/http" diff --git a/dao/ad_source_dao.go b/dao/ad_source_dao.go index cce3122..47d3dc3 100644 --- a/dao/ad_source_dao.go +++ b/dao/ad_source_dao.go @@ -3,7 +3,7 @@ package dao import ( "context" - "cidservice/model/entity" + "cid/model/entity" "github.com/gogf/gf/v2/frame/g" ) diff --git a/dao/ad_statistics_dao.go b/dao/ad_statistics_dao.go index 413340d..6f4f7b8 100644 --- a/dao/ad_statistics_dao.go +++ b/dao/ad_statistics_dao.go @@ -3,8 +3,8 @@ package dao import ( "context" - "cidservice/model/dto" - "cidservice/model/entity" + "cid/model/dto" + "cid/model/entity" "github.com/gogf/gf/v2/frame/g" "go.mongodb.org/mongo-driver/v2/bson" diff --git a/dao/advertisement_dao.go b/dao/advertisement_dao.go index 583c103..a942199 100644 --- a/dao/advertisement_dao.go +++ b/dao/advertisement_dao.go @@ -1,8 +1,8 @@ package dao import ( - "cidservice/model/dto" - "cidservice/model/entity" + "cid/model/dto" + "cid/model/entity" "context" "time" diff --git a/dao/advertiser_dao.go b/dao/advertiser_dao.go index 94b35e0..069339f 100644 --- a/dao/advertiser_dao.go +++ b/dao/advertiser_dao.go @@ -1,8 +1,8 @@ package dao import ( - "cidservice/model/dto" - "cidservice/model/entity" + "cid/model/dto" + "cid/model/entity" "context" "time" diff --git a/dao/application_dao.go b/dao/application_dao.go index 026f5b5..59b7122 100644 --- a/dao/application_dao.go +++ b/dao/application_dao.go @@ -3,7 +3,7 @@ package dao import ( "context" - "cidservice/model/entity" + "cid/model/entity" "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/frame/g" diff --git a/dao/cid_request_dao.go b/dao/cid_request_dao.go index ff9d274..cfb6328 100644 --- a/dao/cid_request_dao.go +++ b/dao/cid_request_dao.go @@ -1,7 +1,7 @@ package dao import ( - "cidservice/model/entity" + "cid/model/entity" "context" "github.com/gogf/gf/v2/frame/g" diff --git a/dao/stat_report_dao.go b/dao/stat_report_dao.go index 06e99c0..1eb96fd 100644 --- a/dao/stat_report_dao.go +++ b/dao/stat_report_dao.go @@ -3,7 +3,7 @@ package dao import ( "context" - "cidservice/model/entity" + "cid/model/entity" "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/frame/g" diff --git a/dao/strategy_dao.go b/dao/strategy_dao.go index 265ac1f..f8f613b 100644 --- a/dao/strategy_dao.go +++ b/dao/strategy_dao.go @@ -1,7 +1,7 @@ package dao import ( - "cidservice/model/entity" + "cid/model/entity" "context" "github.com/gogf/gf/v2/frame/g" diff --git a/dao/tenant_dao.go b/dao/tenant_dao.go index a9e1ed4..47aef82 100644 --- a/dao/tenant_dao.go +++ b/dao/tenant_dao.go @@ -3,7 +3,7 @@ package dao import ( "context" - "cidservice/model/entity" + "cid/model/entity" "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/frame/g" diff --git a/go.mod b/go.mod index 2897456..6eefdf4 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module cidservice +module cid go 1.25.3 diff --git a/main.go b/main.go index 83d6c86..1cbb5a6 100644 --- a/main.go +++ b/main.go @@ -1,8 +1,8 @@ package main import ( - "cidservice/controller" - "cidservice/service" + "cid/controller" + "cid/service" "fmt" "time" diff --git a/model/dto/ad_position_dto.go b/model/dto/ad_position_dto.go index b918a1b..c60cb62 100644 --- a/model/dto/ad_position_dto.go +++ b/model/dto/ad_position_dto.go @@ -1,7 +1,7 @@ package dto import ( - "cidservice/model/entity" + "cid/model/entity" "gitee.com/red-future---jilin-g/common/http" "github.com/gogf/gf/v2/frame/g" diff --git a/model/dto/ad_source_dto.go b/model/dto/ad_source_dto.go index 4e14f2a..a6354ef 100644 --- a/model/dto/ad_source_dto.go +++ b/model/dto/ad_source_dto.go @@ -1,7 +1,7 @@ package dto import ( - "cidservice/model/entity" + "cid/model/entity" "gitee.com/red-future---jilin-g/common/http" "github.com/gogf/gf/v2/frame/g" diff --git a/model/dto/ad_statistics_dto.go b/model/dto/ad_statistics_dto.go index 329eac1..79937fa 100644 --- a/model/dto/ad_statistics_dto.go +++ b/model/dto/ad_statistics_dto.go @@ -1,7 +1,7 @@ package dto import ( - "cidservice/model/entity" + "cid/model/entity" "gitee.com/red-future---jilin-g/common/http" "github.com/gogf/gf/v2/frame/g" diff --git a/model/dto/advertisement_dto.go b/model/dto/advertisement_dto.go index 333ebfa..0d1fecd 100644 --- a/model/dto/advertisement_dto.go +++ b/model/dto/advertisement_dto.go @@ -1,7 +1,7 @@ package dto import ( - "cidservice/model/entity" + "cid/model/entity" "gitee.com/red-future---jilin-g/common/http" "github.com/gogf/gf/v2/frame/g" diff --git a/model/dto/advertiser_dto.go b/model/dto/advertiser_dto.go index 9574d9a..833d3e0 100644 --- a/model/dto/advertiser_dto.go +++ b/model/dto/advertiser_dto.go @@ -1,7 +1,7 @@ package dto import ( - "cidservice/model/entity" + "cid/model/entity" "gitee.com/red-future---jilin-g/common/http" "github.com/gogf/gf/v2/frame/g" diff --git a/service/ad_position_service.go b/service/ad_position_service.go index 81b2e65..09ee099 100644 --- a/service/ad_position_service.go +++ b/service/ad_position_service.go @@ -1,9 +1,9 @@ package service import ( - "cidservice/dao" - "cidservice/model/dto" - "cidservice/model/entity" + "cid/dao" + "cid/model/dto" + "cid/model/entity" "context" "time" diff --git a/service/ad_source_service.go b/service/ad_source_service.go index 25d82a1..df6328b 100644 --- a/service/ad_source_service.go +++ b/service/ad_source_service.go @@ -1,9 +1,9 @@ package service import ( - "cidservice/dao" - "cidservice/model/dto" - "cidservice/model/entity" + "cid/dao" + "cid/model/dto" + "cid/model/entity" "context" "github.com/gogf/gf/v2/errors/gerror" ) diff --git a/service/ad_statistics_service.go b/service/ad_statistics_service.go index 57129dd..24a1d1b 100644 --- a/service/ad_statistics_service.go +++ b/service/ad_statistics_service.go @@ -6,9 +6,9 @@ import ( "sort" "time" - "cidservice/dao" - "cidservice/model/dto" - "cidservice/model/entity" + "cid/dao" + "cid/model/dto" + "cid/model/entity" ) var AdStatistics = new(adStatistics) diff --git a/service/advertisement_service.go b/service/advertisement_service.go index c0d37ef..3c2f8af 100644 --- a/service/advertisement_service.go +++ b/service/advertisement_service.go @@ -1,9 +1,9 @@ package service import ( - "cidservice/dao" - "cidservice/model/dto" - "cidservice/model/entity" + "cid/dao" + "cid/model/dto" + "cid/model/entity" "context" "time" diff --git a/service/advertiser_service.go b/service/advertiser_service.go index 4c8da7c..41bec3c 100644 --- a/service/advertiser_service.go +++ b/service/advertiser_service.go @@ -7,9 +7,9 @@ import ( "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/util/gconv" - "cidservice/dao" - "cidservice/model/dto" - "cidservice/model/entity" + "cid/dao" + "cid/model/dto" + "cid/model/entity" ) var Advertiser = new(advertiser) diff --git a/service/application_service.go b/service/application_service.go index 5c401d1..8e773db 100644 --- a/service/application_service.go +++ b/service/application_service.go @@ -5,9 +5,9 @@ import ( "crypto/rand" "encoding/hex" - "cidservice/dao" - "cidservice/model/dto" - "cidservice/model/entity" + "cid/dao" + "cid/model/dto" + "cid/model/entity" "github.com/gogf/gf/v2/errors/gerror" ) diff --git a/service/cid_service.go b/service/cid_service.go index 20ee9fe..cf54b0e 100644 --- a/service/cid_service.go +++ b/service/cid_service.go @@ -1,10 +1,10 @@ package service import ( - "cidservice/dao" - "cidservice/model/dto" - "cidservice/model/entity" - "cidservice/model/types" + "cid/dao" + "cid/model/dto" + "cid/model/entity" + "cid/model/types" "context" "encoding/json" "fmt" @@ -19,10 +19,10 @@ import ( ) var ( - CID = cidService{} + CID = cid{} ) -type cidService struct{} +type cid struct{} // AdMatchingStrategy 广告匹配策略 type AdMatchingStrategy struct { @@ -34,7 +34,7 @@ type AdMatchingStrategy struct { } // getMatchingStrategy 获取匹配策略 -func (s *cidService) getMatchingStrategy(ctx context.Context, tenantLevel string) (*AdMatchingStrategy, error) { +func (s *cid) getMatchingStrategy(ctx context.Context, tenantLevel string) (*AdMatchingStrategy, error) { // 从数据库获取策略 strategyEntity, err := Strategy.GetStrategyByTenantLevel(ctx, tenantLevel) if err != nil { @@ -72,7 +72,7 @@ func (s *cidService) getMatchingStrategy(ctx context.Context, tenantLevel string } // GenerateCID 生成CID广告 -func (s *cidService) GenerateCID(ctx context.Context, req *dto.GenerateCIDReq) (res *dto.GenerateCIDRes, err error) { +func (s *cid) GenerateCID(ctx context.Context, req *dto.GenerateCIDReq) (res *dto.GenerateCIDRes, err error) { // 获取当前用户信息 userInfo, err := utils.GetUserInfo(ctx) if err != nil { @@ -123,7 +123,7 @@ func (s *cidService) GenerateCID(ctx context.Context, req *dto.GenerateCIDReq) ( } // getTenantByUser 根据用户获取租户信息 -func (s *cidService) getTenantByUser(ctx context.Context, userId int64) (*types.Tenant, error) { +func (s *cid) getTenantByUser(ctx context.Context, userId int64) (*types.Tenant, error) { // 通过common模块获取用户信息,包含租户ID userInfo, err := utils.GetUserInfo(ctx) if err != nil { @@ -164,7 +164,7 @@ func (s *cidService) getTenantByUser(ctx context.Context, userId int64) (*types. } // matchAds 根据策略匹配广告 -func (s *cidService) matchAds(ctx context.Context, req *dto.GenerateCIDReq, strategy *AdMatchingStrategy) ([]*dto.AdInfo, error) { +func (s *cid) matchAds(ctx context.Context, req *dto.GenerateCIDReq, strategy *AdMatchingStrategy) ([]*dto.AdInfo, error) { var matchedAds []*dto.AdInfo // 根据策略权重从不同源获取广告 @@ -202,7 +202,7 @@ func (s *cidService) matchAds(ctx context.Context, req *dto.GenerateCIDReq, stra } // getAdsFromSource 从指定广告源获取广告 -func (s *cidService) getAdsFromSource(ctx context.Context, source string, req *dto.GenerateCIDReq, strategy *AdMatchingStrategy, weight int) ([]*dto.AdInfo, error) { +func (s *cid) getAdsFromSource(ctx context.Context, source string, req *dto.GenerateCIDReq, strategy *AdMatchingStrategy, weight int) ([]*dto.AdInfo, error) { switch source { case "self": return s.getSelfServiceAds(ctx, req, weight) @@ -216,7 +216,7 @@ func (s *cidService) getAdsFromSource(ctx context.Context, source string, req *d } // getSelfServiceAds 获取自营广告 -func (s *cidService) getSelfServiceAds(ctx context.Context, req *dto.GenerateCIDReq, count int) ([]*dto.AdInfo, error) { +func (s *cid) getSelfServiceAds(ctx context.Context, req *dto.GenerateCIDReq, count int) ([]*dto.AdInfo, error) { // 这里应该从数据库查询自营广告 // 暂时返回模拟数据 ads := make([]*dto.AdInfo, 0) @@ -236,7 +236,7 @@ func (s *cidService) getSelfServiceAds(ctx context.Context, req *dto.GenerateCID } // getGoogleAds 获取Google广告 -func (s *cidService) getGoogleAds(ctx context.Context, req *dto.GenerateCIDReq, count int) ([]*dto.AdInfo, error) { +func (s *cid) getGoogleAds(ctx context.Context, req *dto.GenerateCIDReq, count int) ([]*dto.AdInfo, error) { // 这里应该调用Google Ads API // 暂时返回模拟数据 ads := make([]*dto.AdInfo, 0) @@ -256,7 +256,7 @@ func (s *cidService) getGoogleAds(ctx context.Context, req *dto.GenerateCIDReq, } // getFacebookAds 获取Facebook广告 -func (s *cidService) getFacebookAds(ctx context.Context, req *dto.GenerateCIDReq, count int) ([]*dto.AdInfo, error) { +func (s *cid) getFacebookAds(ctx context.Context, req *dto.GenerateCIDReq, count int) ([]*dto.AdInfo, error) { // 这里应该调用Facebook Ads API // 暂时返回模拟数据 ads := make([]*dto.AdInfo, 0) @@ -276,14 +276,14 @@ func (s *cidService) getFacebookAds(ctx context.Context, req *dto.GenerateCIDReq } // generateUniqueCID 生成唯一CID -func (s *cidService) generateUniqueCID() string { +func (s *cid) generateUniqueCID() string { timestamp := time.Now().Unix() random := rand.Intn(8999) + 1000 return fmt.Sprintf("CID_%d_%d", timestamp, random) } // recordCIDRequest 记录CID请求 -func (s *cidService) recordCIDRequest(ctx context.Context, req *dto.GenerateCIDReq, tenant *types.Tenant, ads []*dto.AdInfo) { +func (s *cid) recordCIDRequest(ctx context.Context, req *dto.GenerateCIDReq, tenant *types.Tenant, ads []*dto.AdInfo) { // 转换dto.AdInfo到entity.Ad var entityAds []entity.Ad for _, ad := range ads { @@ -312,7 +312,7 @@ func (s *cidService) recordCIDRequest(ctx context.Context, req *dto.GenerateCIDR } // GetCIDHistory 获取CID请求历史 -func (s *cidService) GetCIDHistory(ctx context.Context, userId int64, page, size int) (res *dto.GetCIDHistoryRes, err error) { +func (s *cid) GetCIDHistory(ctx context.Context, userId int64, page, size int) (res *dto.GetCIDHistoryRes, err error) { history, total, err := dao.CIDRequest.GetHistory(ctx, userId, page, size) if err != nil { return nil, err diff --git a/service/rate_limit_service.go b/service/rate_limit_service.go index 0ed4c22..0339a80 100644 --- a/service/rate_limit_service.go +++ b/service/rate_limit_service.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "cidservice/consts" + "cid/consts" "github.com/gogf/gf/v2/frame/g" ) diff --git a/service/stat_report_scheduler.go b/service/stat_report_scheduler.go index bf78d5b..9ef96a2 100644 --- a/service/stat_report_scheduler.go +++ b/service/stat_report_scheduler.go @@ -6,8 +6,8 @@ import ( "sync" "time" - "cidservice/dao" - "cidservice/model/entity" + "cid/dao" + "cid/model/entity" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/util/gconv" diff --git a/service/stat_report_service.go b/service/stat_report_service.go index c7592e3..065f8f3 100644 --- a/service/stat_report_service.go +++ b/service/stat_report_service.go @@ -5,9 +5,9 @@ import ( "fmt" "time" - "cidservice/dao" - "cidservice/model/dto" - "cidservice/model/entity" + "cid/dao" + "cid/model/dto" + "cid/model/entity" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/util/gconv" diff --git a/service/strategy_service.go b/service/strategy_service.go index 5edebe3..a58675c 100644 --- a/service/strategy_service.go +++ b/service/strategy_service.go @@ -1,9 +1,9 @@ package service import ( - "cidservice/dao" - "cidservice/model/dto" - "cidservice/model/entity" + "cid/dao" + "cid/model/dto" + "cid/model/entity" "context" "encoding/json" "strconv"