Browse Source

添加事件查询接口

yjp 1 year ago
parent
commit
f16affd428
4 changed files with 244 additions and 14 deletions
  1. 148 10
      dpsv1/client.go
  2. 8 0
      ports/client.go
  3. 44 4
      ports/client_query_request.go
  4. 44 0
      ports/client_query_response.go

+ 148 - 10
dpsv1/client.go

@@ -15,9 +15,10 @@ import (
 )
 
 type Client struct {
-	conn                 *grpc.ClientConn
-	commandServiceClient v1.CommandServiceClient
-	queryServiceClient   v1.QueryServiceClient
+	conn                    *grpc.ClientConn
+	commandServiceClient    v1.CommandServiceClient
+	queryServiceClient      v1.QueryServiceClient
+	eventQueryServiceClient v1.EventQueryServiceClient
 }
 
 func NewClient(address string) (*Client, error) {
@@ -28,9 +29,10 @@ func NewClient(address string) (*Client, error) {
 	}
 
 	return &Client{
-		conn:                 conn,
-		commandServiceClient: v1.NewCommandServiceClient(conn),
-		queryServiceClient:   v1.NewQueryServiceClient(conn),
+		conn:                    conn,
+		commandServiceClient:    v1.NewCommandServiceClient(conn),
+		queryServiceClient:      v1.NewQueryServiceClient(conn),
+		eventQueryServiceClient: v1.NewEventQueryServiceClient(conn),
 	}, nil
 }
 
@@ -273,8 +275,8 @@ func (c *Client) QueryByWhereAndOrderBy(req *ports.QueryByWhereAndOrderByRequest
 		Select:                req.Select,
 		Where:                 whereJsonBytes,
 		OrderBy:               req.OrderBy,
-		PageNo:                req.PageNo,
-		PageSize:              req.PageSize,
+		PageNo:                int32(req.PageNo),
+		PageSize:              int32(req.PageSize),
 	})
 	if err != nil {
 		return "", nil, 0, err
@@ -315,8 +317,8 @@ func (c *Client) CommonQuery(req *ports.CommonQueryRequest) (string, []map[strin
 		GroupBy:               req.GroupBy,
 		Join:                  req.Join,
 		Having:                havingJsonBytes,
-		PageNo:                req.PageNo,
-		PageSize:              req.PageSize,
+		PageNo:                int32(req.PageNo),
+		PageSize:              int32(req.PageSize),
 	})
 	if err != nil {
 		return "", nil, 0, err
@@ -402,6 +404,142 @@ func (c *Client) CommonCount(req *ports.CommonCountRequest) (string, int64, erro
 	return reply.Statement, reply.Count, nil
 }
 
+func (c *Client) EventQueryByKeys(req *ports.EventQueryByKeysRequest) (string, []ports.EventInfo, int64, error) {
+	reply, err := c.eventQueryServiceClient.EventQueryByKeys(context.Background(), &request.EventQueryByKeysRequest{
+		DatabaseID:            req.DatabaseID,
+		TablePrefixWithSchema: req.TablePrefixWithSchema,
+		Select:                req.Select,
+		KeyValues:             req.KeyValues,
+		PageNo:                int32(req.PageNo),
+		PageSize:              int32(req.PageSize),
+	})
+	if err != nil {
+		return "", nil, 0, err
+	}
+
+	return reply.Statement, ports.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
+}
+
+func (c *Client) CommonEventQuery(req *ports.CommonEventQueryRequest) (string, []ports.EventInfo, int64, error) {
+	reply, err := c.eventQueryServiceClient.CommonEventQuery(context.Background(), &request.CommonEventQueryRequest{
+		DatabaseID:            req.DatabaseID,
+		TablePrefixWithSchema: req.TablePrefixWithSchema,
+		Select:                req.Select,
+		KeyValues:             req.KeyValues,
+		Version:               req.Version,
+		Operation:             req.Operation,
+		CreatorID:             req.CreatorID,
+		StartCreatedTime:      req.StartCreatedTime,
+		EndCreatedTime:        req.EndCreatedTime,
+		PageNo:                int32(req.PageNo),
+		PageSize:              int32(req.PageSize),
+	})
+	if err != nil {
+		return "", nil, 0, err
+	}
+
+	return reply.Statement, ports.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
+}
+
+func (c *Client) CountEventByKeys(req *ports.CountEventByKeysRequest) (string, int64, error) {
+	reply, err := c.eventQueryServiceClient.CountEventByKeys(context.Background(), &request.CountEventByKeysRequest{
+		DatabaseID:            req.DatabaseID,
+		TablePrefixWithSchema: req.TablePrefixWithSchema,
+		KeyValues:             req.KeyValues,
+	})
+	if err != nil {
+		return "", 0, err
+	}
+
+	return reply.Statement, reply.Count, nil
+}
+
+func (c *Client) CommonCountEvent(req *ports.CommonCountEventRequest) (string, int64, error) {
+	reply, err := c.eventQueryServiceClient.CommonCountEvent(context.Background(), &request.CommonCountEventRequest{
+		DatabaseID:            req.DatabaseID,
+		TablePrefixWithSchema: req.TablePrefixWithSchema,
+		KeyValues:             req.KeyValues,
+		Version:               req.Version,
+		Operation:             req.Operation,
+		CreatorID:             req.CreatorID,
+		StartCreatedTime:      req.StartCreatedTime,
+		EndCreatedTime:        req.EndCreatedTime,
+	})
+	if err != nil {
+		return "", 0, err
+	}
+
+	return reply.Statement, reply.Count, nil
+}
+
+func (c *Client) EventHistoryQueryByKeys(req *ports.EventQueryByKeysRequest) (string, []ports.EventInfo, int64, error) {
+	reply, err := c.eventQueryServiceClient.EventHistoryQueryByKeys(context.Background(), &request.EventQueryByKeysRequest{
+		DatabaseID:            req.DatabaseID,
+		TablePrefixWithSchema: req.TablePrefixWithSchema,
+		Select:                req.Select,
+		KeyValues:             req.KeyValues,
+		PageNo:                int32(req.PageNo),
+		PageSize:              int32(req.PageSize),
+	})
+	if err != nil {
+		return "", nil, 0, err
+	}
+
+	return reply.Statement, ports.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
+}
+
+func (c *Client) CommonEventHistoryQuery(req *ports.CommonEventQueryRequest) (string, []ports.EventInfo, int64, error) {
+	reply, err := c.eventQueryServiceClient.CommonEventHistoryQuery(context.Background(), &request.CommonEventQueryRequest{
+		DatabaseID:            req.DatabaseID,
+		TablePrefixWithSchema: req.TablePrefixWithSchema,
+		Select:                req.Select,
+		KeyValues:             req.KeyValues,
+		Version:               req.Version,
+		Operation:             req.Operation,
+		CreatorID:             req.CreatorID,
+		StartCreatedTime:      req.StartCreatedTime,
+		EndCreatedTime:        req.EndCreatedTime,
+		PageNo:                int32(req.PageNo),
+		PageSize:              int32(req.PageSize),
+	})
+	if err != nil {
+		return "", nil, 0, err
+	}
+
+	return reply.Statement, ports.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
+}
+
+func (c *Client) CountEventHistoryByKeys(req *ports.CountEventByKeysRequest) (string, int64, error) {
+	reply, err := c.eventQueryServiceClient.CountEventHistoryByKeys(context.Background(), &request.CountEventByKeysRequest{
+		DatabaseID:            req.DatabaseID,
+		TablePrefixWithSchema: req.TablePrefixWithSchema,
+		KeyValues:             req.KeyValues,
+	})
+	if err != nil {
+		return "", 0, err
+	}
+
+	return reply.Statement, reply.Count, nil
+}
+
+func (c *Client) CommonCountEventHistory(req *ports.CommonCountEventRequest) (string, int64, error) {
+	reply, err := c.eventQueryServiceClient.CommonCountEventHistory(context.Background(), &request.CommonCountEventRequest{
+		DatabaseID:            req.DatabaseID,
+		TablePrefixWithSchema: req.TablePrefixWithSchema,
+		KeyValues:             req.KeyValues,
+		Version:               req.Version,
+		Operation:             req.Operation,
+		CreatorID:             req.CreatorID,
+		StartCreatedTime:      req.StartCreatedTime,
+		EndCreatedTime:        req.EndCreatedTime,
+	})
+	if err != nil {
+		return "", 0, err
+	}
+
+	return reply.Statement, reply.Count, nil
+}
+
 func (c *Client) formTableRow(tableRow map[string]any) (*request.TableRow, error) {
 	if tableRow == nil || len(tableRow) == 0 {
 		return &request.TableRow{Columns: make([]*request.Column, 0)}, nil

+ 8 - 0
ports/client.go

@@ -27,4 +27,12 @@ type Client interface {
 	QueryByKeys(request *QueryByKeysRequest) (string, map[string]any, error)
 	CountWhere(request *CountWhereRequest) (string, int64, error)
 	CommonCount(request *CommonCountRequest) (string, int64, error)
+	EventQueryByKeys(request *EventQueryByKeysRequest) (string, []EventInfo, int64, error)
+	CommonEventQuery(request *CommonEventQueryRequest) (string, []EventInfo, int64, error)
+	CountEventByKeys(request *CountEventByKeysRequest) (string, int64, error)
+	CommonCountEvent(request *CommonCountEventRequest) (string, int64, error)
+	EventHistoryQueryByKeys(request *EventQueryByKeysRequest) (string, []EventInfo, int64, error)
+	CommonEventHistoryQuery(request *CommonEventQueryRequest) (string, []EventInfo, int64, error)
+	CountEventHistoryByKeys(request *CountEventByKeysRequest) (string, int64, error)
+	CommonCountEventHistory(request *CommonCountEventRequest) (string, int64, error)
 }

+ 44 - 4
ports/client_query_request.go

@@ -7,8 +7,8 @@ type QueryByWhereAndOrderByRequest struct {
 	Select                string
 	Where                 []ColumnCompare
 	OrderBy               []string
-	PageNo                int32
-	PageSize              int32
+	PageNo                int
+	PageSize              int
 }
 
 type CommonQueryRequest struct {
@@ -22,8 +22,8 @@ type CommonQueryRequest struct {
 	GroupBy               []string
 	Join                  string
 	Having                []ColumnCompare
-	PageNo                int32
-	PageSize              int32
+	PageNo                int
+	PageSize              int
 }
 
 type QueryByKeysRequest struct {
@@ -51,3 +51,43 @@ type CommonCountRequest struct {
 	Join                  string
 	Having                []ColumnCompare
 }
+
+type EventQueryByKeysRequest struct {
+	DatabaseID            string
+	TablePrefixWithSchema string
+	Select                string
+	KeyValues             []string
+	PageNo                int
+	PageSize              int
+}
+
+type CommonEventQueryRequest struct {
+	DatabaseID            string
+	TablePrefixWithSchema string
+	Select                string
+	KeyValues             []string
+	Version               string
+	Operation             string
+	CreatorID             string
+	StartCreatedTime      string
+	EndCreatedTime        string
+	PageNo                int
+	PageSize              int
+}
+
+type CountEventByKeysRequest struct {
+	DatabaseID            string
+	TablePrefixWithSchema string
+	KeyValues             []string
+}
+
+type CommonCountEventRequest struct {
+	DatabaseID            string
+	TablePrefixWithSchema string
+	KeyValues             []string
+	Version               string
+	Operation             string
+	CreatorID             string
+	StartCreatedTime      string
+	EndCreatedTime        string
+}

+ 44 - 0
ports/client_query_response.go

@@ -0,0 +1,44 @@
+package ports
+
+import (
+	"git.sxidc.com/service-supports/dps-sdk/pb/v1/response"
+	"time"
+)
+
+type EventInfo struct {
+	Key        string
+	Version    string
+	Operation  string
+	Value      string
+	CreatorID  string
+	CreateTime time.Time
+}
+
+func FormEventInfo(info *response.EventInfo) *EventInfo {
+	if info == nil {
+		return &EventInfo{}
+	}
+
+	return &EventInfo{
+		Key:        info.Key,
+		Version:    info.Version,
+		Operation:  info.Operation,
+		Value:      info.Value,
+		CreatorID:  info.CreatorID,
+		CreateTime: time.Unix(0, info.CreateTimeUnixNano).Local(),
+	}
+}
+
+func FormEventInfoBatch(infos []*response.EventInfo) []EventInfo {
+	retInfos := make([]EventInfo, 0)
+
+	if infos == nil || len(infos) == 0 {
+		return retInfos
+	}
+
+	for _, info := range infos {
+		retInfos = append(retInfos, *FormEventInfo(info))
+	}
+
+	return retInfos
+}