diff --git a/api/v1/cmb_cpn.proto b/api/v1/cmb_cpn.proto index b92b7a5..75d2637 100644 --- a/api/v1/cmb_cpn.proto +++ b/api/v1/cmb_cpn.proto @@ -56,14 +56,23 @@ service Cmb { }; } - rpc Test (Empty) returns (Empty) { + rpc BatchQuery (BatchQueryRequest) returns (Empty) { option (google.api.http) = { post: "/voucher/cmb/v1/test", body: "*" }; } + } + +message BatchQueryRequest { + repeated string order_ids = 5 [json_name = "order_ids"]; + string begin_time = 6 [json_name = "begin_time"]; + string end_time = 7 [json_name = "end_time"]; +} + + message CmbRequest { // 请求公共参数 // 合作方唯一ID,32位定长 diff --git a/internal/biz/cron_notice.go b/internal/biz/cron_notice.go index 3a67d70..b7539bf 100644 --- a/internal/biz/cron_notice.go +++ b/internal/biz/cron_notice.go @@ -19,11 +19,6 @@ func (v *VoucherBiz) Notice(ctx context.Context) error { return err } - return v.ExecuteNotice(ctx) -} - -func (v *VoucherBiz) ExecuteNotice(ctx context.Context) error { - now := time.Now() // 获取七天前的日期 @@ -41,6 +36,11 @@ func (v *VoucherBiz) ExecuteNotice(ctx context.Context) error { EndTime: &endTime, } + return v.ExecuteNotice(ctx, req) +} + +func (v *VoucherBiz) ExecuteNotice(ctx context.Context, req *bo.FindInBatchesUseBo) error { + return v.OrderRepo.FindInBatches(ctx, req, func(ctx context.Context, rows []*bo.OrderBo) error { for _, order := range rows { diff --git a/internal/service/mock.go b/internal/service/mock.go index 549e4e0..4b71eaa 100644 --- a/internal/service/mock.go +++ b/internal/service/mock.go @@ -62,12 +62,3 @@ func (s *CmbService) DecryptBody(ctx context.Context, request *v1.EncryptBodyReq DecryptBody: decryptBody, }, nil } - -func (s *CmbService) Test(ctx context.Context, request *v1.Empty) (*v1.Empty, error) { - - if err := s.VoucherBiz.ExecuteNotice(ctx); err != nil { - return nil, err - } - - return nil, nil -} diff --git a/internal/service/notice.go b/internal/service/notice.go new file mode 100644 index 0000000..944ae76 --- /dev/null +++ b/internal/service/notice.go @@ -0,0 +1,39 @@ +package service + +import ( + "context" + "fmt" + v1 "voucher/api/v1" + "voucher/internal/biz/bo" + "voucher/internal/biz/vo" + "voucher/internal/pkg/helper" +) + +func (s *CmbService) BatchQuery(ctx context.Context, request *v1.BatchQueryRequest) (*v1.Empty, error) { + + req := &bo.FindInBatchesUseBo{ + Type: vo.OrderTypeCmb, + } + + if len(request.BeginTime) > 0 { + beginTime, err := helper.Parse(request.BeginTime) + if err != nil { + return nil, err + } + req.StartTime = &beginTime + } + + if len(request.EndTime) > 0 { + endTime, err := helper.Parse(request.EndTime) + if err != nil { + return nil, err + } + req.EndTime = &endTime + } + + if req.StartTime == nil || req.EndTime == nil { + return nil, fmt.Errorf("时间范围错误") + } + + return nil, s.VoucherBiz.ExecuteNotice(ctx, req) +} diff --git a/third_party/swagger_ui/openapi.yaml b/third_party/swagger_ui/openapi.yaml index eb8440b..360dcdc 100644 --- a/third_party/swagger_ui/openapi.yaml +++ b/third_party/swagger_ui/openapi.yaml @@ -136,12 +136,12 @@ paths: post: tags: - Cmb - operationId: Cmb_Test + operationId: Cmb_BatchQuery requestBody: content: application/json: schema: - $ref: '#/components/schemas/api.v1.Empty' + $ref: '#/components/schemas/api.v1.BatchQueryRequest' required: true responses: "200": @@ -152,6 +152,17 @@ paths: $ref: '#/components/schemas/api.v1.Empty' components: schemas: + api.v1.BatchQueryRequest: + type: object + properties: + order_ids: + type: array + items: + type: string + begin_time: + type: string + end_time: + type: string api.v1.CmbOrderRequest: type: object properties: