client.go 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785
  1. package dpsv1
  2. import (
  3. "context"
  4. "encoding/json"
  5. "git.sxidc.com/service-supports/dps-sdk/client"
  6. "git.sxidc.com/service-supports/dps-sdk/pb/v1"
  7. "git.sxidc.com/service-supports/dps-sdk/pb/v1/request"
  8. "google.golang.org/grpc"
  9. "google.golang.org/grpc/credentials/insecure"
  10. "io"
  11. "sync"
  12. )
  13. type Client struct {
  14. databaseID string
  15. conn *grpc.ClientConn
  16. commandServiceClient v1.CommandServiceClient
  17. queryServiceClient v1.QueryServiceClient
  18. eventQueryServiceClient v1.EventQueryServiceClient
  19. transactionMutex sync.Mutex
  20. }
  21. func NewClient(address string, databaseID string) (*Client, error) {
  22. conn, err := grpc.DialContext(context.Background(), address,
  23. grpc.WithTransportCredentials(insecure.NewCredentials()))
  24. if err != nil {
  25. return nil, err
  26. }
  27. return &Client{
  28. databaseID: databaseID,
  29. conn: conn,
  30. commandServiceClient: v1.NewCommandServiceClient(conn),
  31. queryServiceClient: v1.NewQueryServiceClient(conn),
  32. eventQueryServiceClient: v1.NewEventQueryServiceClient(conn),
  33. }, nil
  34. }
  35. func DestroyClient(client *Client) error {
  36. if client == nil {
  37. return nil
  38. }
  39. client.transactionMutex.Lock()
  40. defer client.transactionMutex.Unlock()
  41. err := client.conn.Close()
  42. if err != nil {
  43. return err
  44. }
  45. client.databaseID = ""
  46. client.conn = nil
  47. client.commandServiceClient = nil
  48. client.queryServiceClient = nil
  49. return nil
  50. }
  51. func (c *Client) AutoMigrate(req *client.AutoMigrateRequest) error {
  52. items := make([]*request.AutoMigrateItem, 0)
  53. for _, reqItem := range req.Items {
  54. tableModelDescribeJsonBytes, err := json.Marshal(reqItem.TableModelDescribe)
  55. if err != nil {
  56. return err
  57. }
  58. items = append(items, &request.AutoMigrateItem{
  59. TablePrefixWithSchema: reqItem.TablePrefixWithSchema,
  60. Version: reqItem.Version,
  61. TableModelDescribe: tableModelDescribeJsonBytes,
  62. })
  63. }
  64. _, err := c.commandServiceClient.AutoMigrate(context.Background(), &request.AutoMigrateRequest{
  65. DatabaseID: c.databaseID,
  66. Items: items,
  67. })
  68. if err != nil {
  69. return err
  70. }
  71. return nil
  72. }
  73. func (c *Client) Transaction(txFunc client.TransactionFunc) error {
  74. stream, err := c.commandServiceClient.Transaction(context.Background())
  75. if err != nil {
  76. return err
  77. }
  78. defer func() {
  79. innerErr := stream.CloseSend()
  80. if innerErr != nil {
  81. panic(innerErr)
  82. }
  83. }()
  84. err = stream.Send(&request.TransactionOperation{
  85. Request: &request.TransactionOperation_TransactionBeginRequest{
  86. TransactionBeginRequest: &request.TransactionBeginRequest{DatabaseID: c.databaseID},
  87. }})
  88. if err != nil {
  89. return err
  90. }
  91. err = txFunc(&Transaction{
  92. stream: stream,
  93. client: c,
  94. })
  95. if err != nil {
  96. return err
  97. }
  98. err = stream.Send(&request.TransactionOperation{
  99. Request: &request.TransactionOperation_TransactionEndRequest{
  100. TransactionEndRequest: &request.TransactionEndRequest{},
  101. }})
  102. if err != nil {
  103. return err
  104. }
  105. _, err = stream.Recv()
  106. if err != nil && err != io.EOF {
  107. return err
  108. }
  109. return nil
  110. }
  111. func (c *Client) Insert(req *client.InsertRequest) (string, error) {
  112. if req.TableRow == nil {
  113. return "", nil
  114. }
  115. tableRow, err := req.TableRow.ToDPSTableRow()
  116. if err != nil {
  117. return "", err
  118. }
  119. reply, err := c.commandServiceClient.Insert(context.Background(), &request.InsertRequest{
  120. DatabaseID: c.databaseID,
  121. TablePrefixWithSchema: req.TablePrefixWithSchema,
  122. Version: req.Version,
  123. KeyColumns: req.KeyColumns,
  124. TableRow: tableRow,
  125. UserID: req.UserID,
  126. })
  127. if err != nil {
  128. return "", err
  129. }
  130. return reply.Statement, nil
  131. }
  132. func (c *Client) InsertBatch(req *client.InsertBatchRequest) (string, error) {
  133. tableRowItems := make([]*request.InsertTableRowItem, 0)
  134. for _, reqTableItem := range req.Items {
  135. tableRows := make([]*request.TableRow, 0)
  136. for _, reqTableRow := range reqTableItem.TableRows {
  137. if reqTableRow == nil {
  138. continue
  139. }
  140. tableRow, err := reqTableRow.ToDPSTableRow()
  141. if err != nil {
  142. return "", err
  143. }
  144. tableRows = append(tableRows, tableRow)
  145. }
  146. tableRowItems = append(tableRowItems, &request.InsertTableRowItem{
  147. TablePrefixWithSchema: reqTableItem.TablePrefixWithSchema,
  148. Version: reqTableItem.Version,
  149. KeyColumns: reqTableItem.KeyColumns,
  150. TableRows: tableRows,
  151. })
  152. }
  153. reply, err := c.commandServiceClient.InsertBatch(context.Background(), &request.InsertBatchRequest{
  154. DatabaseID: c.databaseID,
  155. Items: tableRowItems,
  156. UserID: req.UserID,
  157. })
  158. if err != nil {
  159. return "", err
  160. }
  161. return reply.Statement, nil
  162. }
  163. func (c *Client) Delete(req *client.DeleteRequest) (string, error) {
  164. reply, err := c.commandServiceClient.Delete(context.Background(), &request.DeleteRequest{
  165. DatabaseID: c.databaseID,
  166. TablePrefixWithSchema: req.TablePrefixWithSchema,
  167. Version: req.Version,
  168. KeyValues: req.KeyValues,
  169. UserID: req.UserID,
  170. })
  171. if err != nil {
  172. return "", err
  173. }
  174. return reply.Statement, nil
  175. }
  176. func (c *Client) DeleteBatch(req *client.DeleteBatchRequest) (string, error) {
  177. tableRowItems := make([]*request.DeleteTableRowItem, 0)
  178. for _, reqTableItem := range req.Items {
  179. items := make([]*request.DeleteItem, 0)
  180. for _, reqKeyValues := range reqTableItem.KeyValues {
  181. items = append(items, &request.DeleteItem{
  182. KeyValues: reqKeyValues,
  183. })
  184. }
  185. tableRowItems = append(tableRowItems, &request.DeleteTableRowItem{
  186. TablePrefixWithSchema: reqTableItem.TablePrefixWithSchema,
  187. Version: reqTableItem.Version,
  188. Items: items,
  189. })
  190. }
  191. reply, err := c.commandServiceClient.DeleteBatch(context.Background(), &request.DeleteBatchRequest{
  192. DatabaseID: c.databaseID,
  193. Items: tableRowItems,
  194. UserID: req.UserID,
  195. })
  196. if err != nil {
  197. return "", err
  198. }
  199. return reply.Statement, nil
  200. }
  201. func (c *Client) Update(req *client.UpdateRequest) (string, error) {
  202. if req.NewTableRow == nil {
  203. return "", nil
  204. }
  205. newTableRow, err := req.NewTableRow.ToDPSTableRow()
  206. if err != nil {
  207. return "", err
  208. }
  209. reply, err := c.commandServiceClient.Update(context.Background(), &request.UpdateRequest{
  210. DatabaseID: c.databaseID,
  211. TablePrefixWithSchema: req.TablePrefixWithSchema,
  212. Version: req.Version,
  213. KeyValues: req.KeyValues,
  214. NewTableRow: newTableRow,
  215. UserID: req.UserID,
  216. })
  217. if err != nil {
  218. return "", err
  219. }
  220. return reply.Statement, nil
  221. }
  222. func (c *Client) Replay(req *client.ReplayRequest) (string, error) {
  223. reply, err := c.commandServiceClient.Replay(context.Background(), &request.ReplayRequest{
  224. DatabaseID: c.databaseID,
  225. TablePrefixWithSchema: req.TablePrefixWithSchema,
  226. Version: req.Version,
  227. KeyValues: req.KeyValues,
  228. UserID: req.UserID,
  229. })
  230. if err != nil {
  231. return "", err
  232. }
  233. return reply.Statement, nil
  234. }
  235. func (c *Client) QueryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (string, *client.TableRows, int64, error) {
  236. selectJsonBytes, err := json.Marshal(req.Select)
  237. if err != nil {
  238. return "", nil, 0, err
  239. }
  240. whereJsonBytes, err := json.Marshal(req.Where)
  241. if err != nil {
  242. return "", nil, 0, err
  243. }
  244. reply, err := c.queryServiceClient.QueryByWhereAndOrderBy(context.Background(), &request.QueryByWhereAndOrderByRequest{
  245. DatabaseID: c.databaseID,
  246. TablePrefixWithSchema: req.TablePrefixWithSchema,
  247. Version: req.Version,
  248. Select: selectJsonBytes,
  249. Where: whereJsonBytes,
  250. OrderBy: req.OrderBy,
  251. PageNo: int32(req.PageNo),
  252. PageSize: int32(req.PageSize),
  253. })
  254. if err != nil {
  255. return "", nil, 0, err
  256. }
  257. tableRows := new(client.TableRows)
  258. err = tableRows.FromDSPInfosData(reply.Infos)
  259. if err != nil {
  260. return "", nil, 0, err
  261. }
  262. return reply.Statement, tableRows, reply.TotalCount, nil
  263. }
  264. func (c *Client) CommonQuery(req *client.CommonQueryRequest) (string, *client.TableRows, int64, error) {
  265. selectJsonBytes, err := json.Marshal(req.Select)
  266. if err != nil {
  267. return "", nil, 0, err
  268. }
  269. whereJsonBytes, err := json.Marshal(req.Where)
  270. if err != nil {
  271. return "", nil, 0, err
  272. }
  273. orJsonBytes, err := json.Marshal(req.Or)
  274. if err != nil {
  275. return "", nil, 0, err
  276. }
  277. joinsJsonBytes, err := json.Marshal(req.Joins)
  278. if err != nil {
  279. return "", nil, 0, err
  280. }
  281. havingJsonBytes, err := json.Marshal(req.Having)
  282. if err != nil {
  283. return "", nil, 0, err
  284. }
  285. reply, err := c.queryServiceClient.CommonQuery(context.Background(), &request.CommonQueryRequest{
  286. DatabaseID: c.databaseID,
  287. TablePrefixWithSchema: req.TablePrefixWithSchema,
  288. Version: req.Version,
  289. Select: selectJsonBytes,
  290. Where: whereJsonBytes,
  291. OrderBy: req.OrderBy,
  292. Or: orJsonBytes,
  293. GroupBy: req.GroupBy,
  294. Joins: joinsJsonBytes,
  295. Having: havingJsonBytes,
  296. PageNo: int32(req.PageNo),
  297. PageSize: int32(req.PageSize),
  298. })
  299. if err != nil {
  300. return "", nil, 0, err
  301. }
  302. tableRows := new(client.TableRows)
  303. err = tableRows.FromDSPInfosData(reply.Infos)
  304. if err != nil {
  305. return "", nil, 0, err
  306. }
  307. return reply.Statement, tableRows, reply.TotalCount, nil
  308. }
  309. func (c *Client) QueryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (string, *client.TableRows, error) {
  310. selectJsonBytes, err := json.Marshal(req.Select)
  311. if err != nil {
  312. return "", nil, err
  313. }
  314. whereJsonBytes, err := json.Marshal(req.Where)
  315. if err != nil {
  316. return "", nil, err
  317. }
  318. reply, err := c.queryServiceClient.QueryOnlyByWhereAndOrderBy(context.Background(), &request.QueryByWhereAndOrderByRequest{
  319. DatabaseID: c.databaseID,
  320. TablePrefixWithSchema: req.TablePrefixWithSchema,
  321. Version: req.Version,
  322. Select: selectJsonBytes,
  323. Where: whereJsonBytes,
  324. OrderBy: req.OrderBy,
  325. PageNo: int32(req.PageNo),
  326. PageSize: int32(req.PageSize),
  327. })
  328. if err != nil {
  329. return "", nil, err
  330. }
  331. tableRows := new(client.TableRows)
  332. err = tableRows.FromDSPInfosData(reply.Infos)
  333. if err != nil {
  334. return "", nil, err
  335. }
  336. return reply.Statement, tableRows, nil
  337. }
  338. func (c *Client) CommonQueryOnly(req *client.CommonQueryRequest) (string, *client.TableRows, error) {
  339. selectJsonBytes, err := json.Marshal(req.Select)
  340. if err != nil {
  341. return "", nil, err
  342. }
  343. whereJsonBytes, err := json.Marshal(req.Where)
  344. if err != nil {
  345. return "", nil, err
  346. }
  347. orJsonBytes, err := json.Marshal(req.Or)
  348. if err != nil {
  349. return "", nil, err
  350. }
  351. joinsJsonBytes, err := json.Marshal(req.Joins)
  352. if err != nil {
  353. return "", nil, err
  354. }
  355. havingJsonBytes, err := json.Marshal(req.Having)
  356. if err != nil {
  357. return "", nil, err
  358. }
  359. reply, err := c.queryServiceClient.CommonQueryOnly(context.Background(), &request.CommonQueryRequest{
  360. DatabaseID: c.databaseID,
  361. TablePrefixWithSchema: req.TablePrefixWithSchema,
  362. Version: req.Version,
  363. Select: selectJsonBytes,
  364. Where: whereJsonBytes,
  365. OrderBy: req.OrderBy,
  366. Or: orJsonBytes,
  367. GroupBy: req.GroupBy,
  368. Joins: joinsJsonBytes,
  369. Having: havingJsonBytes,
  370. PageNo: int32(req.PageNo),
  371. PageSize: int32(req.PageSize),
  372. })
  373. if err != nil {
  374. return "", nil, err
  375. }
  376. tableRows := new(client.TableRows)
  377. err = tableRows.FromDSPInfosData(reply.Infos)
  378. if err != nil {
  379. return "", nil, err
  380. }
  381. return reply.Statement, tableRows, nil
  382. }
  383. func (c *Client) QueryByKeys(req *client.QueryByKeysRequest) (string, *client.TableRow, error) {
  384. selectJsonBytes, err := json.Marshal(req.Select)
  385. if err != nil {
  386. return "", nil, err
  387. }
  388. reply, err := c.queryServiceClient.QueryByKeys(context.Background(), &request.QueryByKeysRequest{
  389. DatabaseID: c.databaseID,
  390. TablePrefixWithSchema: req.TablePrefixWithSchema,
  391. Version: req.Version,
  392. Select: selectJsonBytes,
  393. KeyValues: req.KeyValues,
  394. })
  395. if err != nil {
  396. return "", nil, err
  397. }
  398. tableRow := client.NewTableRow()
  399. err = tableRow.FromDSPInfoData(reply.Info)
  400. if err != nil {
  401. return "", nil, err
  402. }
  403. return reply.Statement, tableRow, nil
  404. }
  405. func (c *Client) CountWhere(req *client.CountWhereRequest) (string, int64, error) {
  406. whereJsonBytes, err := json.Marshal(req.Where)
  407. if err != nil {
  408. return "", 0, err
  409. }
  410. reply, err := c.queryServiceClient.CountWhere(context.Background(), &request.CountWhereRequest{
  411. DatabaseID: c.databaseID,
  412. TablePrefixWithSchema: req.TablePrefixWithSchema,
  413. Version: req.Version,
  414. Where: whereJsonBytes,
  415. })
  416. if err != nil {
  417. return "", 0, err
  418. }
  419. return reply.Statement, reply.Count, nil
  420. }
  421. func (c *Client) CommonCount(req *client.CommonCountRequest) (string, int64, error) {
  422. whereJsonBytes, err := json.Marshal(req.Where)
  423. if err != nil {
  424. return "", 0, err
  425. }
  426. orJsonBytes, err := json.Marshal(req.Or)
  427. if err != nil {
  428. return "", 0, err
  429. }
  430. joinsJsonBytes, err := json.Marshal(req.Joins)
  431. if err != nil {
  432. return "", 0, err
  433. }
  434. havingJsonBytes, err := json.Marshal(req.Having)
  435. if err != nil {
  436. return "", 0, err
  437. }
  438. reply, err := c.queryServiceClient.CommonCount(context.Background(), &request.CommonCountRequest{
  439. DatabaseID: c.databaseID,
  440. TablePrefixWithSchema: req.TablePrefixWithSchema,
  441. Version: req.Version,
  442. Where: whereJsonBytes,
  443. Or: orJsonBytes,
  444. GroupBy: req.GroupBy,
  445. Joins: joinsJsonBytes,
  446. Having: havingJsonBytes,
  447. })
  448. if err != nil {
  449. return "", 0, err
  450. }
  451. return reply.Statement, reply.Count, nil
  452. }
  453. func (c *Client) EventQueryByKeys(req *client.EventQueryByKeysRequest) (string, []client.EventInfo, int64, error) {
  454. selectJsonBytes, err := json.Marshal(req.Select)
  455. if err != nil {
  456. return "", nil, 0, err
  457. }
  458. reply, err := c.eventQueryServiceClient.EventQueryByKeys(context.Background(), &request.EventQueryByKeysRequest{
  459. DatabaseID: c.databaseID,
  460. TablePrefixWithSchema: req.TablePrefixWithSchema,
  461. Select: selectJsonBytes,
  462. KeyValues: req.KeyValues,
  463. PageNo: int32(req.PageNo),
  464. PageSize: int32(req.PageSize),
  465. })
  466. if err != nil {
  467. return "", nil, 0, err
  468. }
  469. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  470. }
  471. func (c *Client) CommonEventQuery(req *client.CommonEventQueryRequest) (string, []client.EventInfo, int64, error) {
  472. selectJsonBytes, err := json.Marshal(req.Select)
  473. if err != nil {
  474. return "", nil, 0, err
  475. }
  476. reply, err := c.eventQueryServiceClient.CommonEventQuery(context.Background(), &request.CommonEventQueryRequest{
  477. DatabaseID: c.databaseID,
  478. TablePrefixWithSchema: req.TablePrefixWithSchema,
  479. Select: selectJsonBytes,
  480. KeyValues: req.KeyValues,
  481. Version: req.Version,
  482. Operation: req.Operation,
  483. CreatorID: req.CreatorID,
  484. StartCreatedTime: req.StartCreatedTime,
  485. EndCreatedTime: req.EndCreatedTime,
  486. PageNo: int32(req.PageNo),
  487. PageSize: int32(req.PageSize),
  488. })
  489. if err != nil {
  490. return "", nil, 0, err
  491. }
  492. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  493. }
  494. func (c *Client) EventQueryOnlyByKeys(req *client.EventQueryByKeysRequest) (string, []client.EventInfo, error) {
  495. selectJsonBytes, err := json.Marshal(req.Select)
  496. if err != nil {
  497. return "", nil, err
  498. }
  499. reply, err := c.eventQueryServiceClient.EventQueryOnlyByKeys(context.Background(), &request.EventQueryByKeysRequest{
  500. DatabaseID: c.databaseID,
  501. TablePrefixWithSchema: req.TablePrefixWithSchema,
  502. Select: selectJsonBytes,
  503. KeyValues: req.KeyValues,
  504. PageNo: int32(req.PageNo),
  505. PageSize: int32(req.PageSize),
  506. })
  507. if err != nil {
  508. return "", nil, err
  509. }
  510. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  511. }
  512. func (c *Client) CommonEventQueryOnly(req *client.CommonEventQueryRequest) (string, []client.EventInfo, error) {
  513. selectJsonBytes, err := json.Marshal(req.Select)
  514. if err != nil {
  515. return "", nil, err
  516. }
  517. reply, err := c.eventQueryServiceClient.CommonEventQueryOnly(context.Background(), &request.CommonEventQueryRequest{
  518. DatabaseID: c.databaseID,
  519. TablePrefixWithSchema: req.TablePrefixWithSchema,
  520. Select: selectJsonBytes,
  521. KeyValues: req.KeyValues,
  522. Version: req.Version,
  523. Operation: req.Operation,
  524. CreatorID: req.CreatorID,
  525. StartCreatedTime: req.StartCreatedTime,
  526. EndCreatedTime: req.EndCreatedTime,
  527. PageNo: int32(req.PageNo),
  528. PageSize: int32(req.PageSize),
  529. })
  530. if err != nil {
  531. return "", nil, err
  532. }
  533. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  534. }
  535. func (c *Client) CountEventByKeys(req *client.CountEventByKeysRequest) (string, int64, error) {
  536. reply, err := c.eventQueryServiceClient.CountEventByKeys(context.Background(), &request.CountEventByKeysRequest{
  537. DatabaseID: c.databaseID,
  538. TablePrefixWithSchema: req.TablePrefixWithSchema,
  539. KeyValues: req.KeyValues,
  540. })
  541. if err != nil {
  542. return "", 0, err
  543. }
  544. return reply.Statement, reply.Count, nil
  545. }
  546. func (c *Client) CommonCountEvent(req *client.CommonCountEventRequest) (string, int64, error) {
  547. reply, err := c.eventQueryServiceClient.CommonCountEvent(context.Background(), &request.CommonCountEventRequest{
  548. DatabaseID: c.databaseID,
  549. TablePrefixWithSchema: req.TablePrefixWithSchema,
  550. KeyValues: req.KeyValues,
  551. Version: req.Version,
  552. Operation: req.Operation,
  553. CreatorID: req.CreatorID,
  554. StartCreatedTime: req.StartCreatedTime,
  555. EndCreatedTime: req.EndCreatedTime,
  556. })
  557. if err != nil {
  558. return "", 0, err
  559. }
  560. return reply.Statement, reply.Count, nil
  561. }
  562. func (c *Client) EventHistoryQueryByKeys(req *client.EventQueryByKeysRequest) (string, []client.EventInfo, int64, error) {
  563. selectJsonBytes, err := json.Marshal(req.Select)
  564. if err != nil {
  565. return "", nil, 0, err
  566. }
  567. reply, err := c.eventQueryServiceClient.EventHistoryQueryByKeys(context.Background(), &request.EventQueryByKeysRequest{
  568. DatabaseID: c.databaseID,
  569. TablePrefixWithSchema: req.TablePrefixWithSchema,
  570. Select: selectJsonBytes,
  571. KeyValues: req.KeyValues,
  572. PageNo: int32(req.PageNo),
  573. PageSize: int32(req.PageSize),
  574. })
  575. if err != nil {
  576. return "", nil, 0, err
  577. }
  578. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  579. }
  580. func (c *Client) CommonEventHistoryQuery(req *client.CommonEventQueryRequest) (string, []client.EventInfo, int64, error) {
  581. selectJsonBytes, err := json.Marshal(req.Select)
  582. if err != nil {
  583. return "", nil, 0, err
  584. }
  585. reply, err := c.eventQueryServiceClient.CommonEventHistoryQuery(context.Background(), &request.CommonEventQueryRequest{
  586. DatabaseID: c.databaseID,
  587. TablePrefixWithSchema: req.TablePrefixWithSchema,
  588. Select: selectJsonBytes,
  589. KeyValues: req.KeyValues,
  590. Version: req.Version,
  591. Operation: req.Operation,
  592. CreatorID: req.CreatorID,
  593. StartCreatedTime: req.StartCreatedTime,
  594. EndCreatedTime: req.EndCreatedTime,
  595. PageNo: int32(req.PageNo),
  596. PageSize: int32(req.PageSize),
  597. })
  598. if err != nil {
  599. return "", nil, 0, err
  600. }
  601. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  602. }
  603. func (c *Client) EventHistoryQueryOnlyByKeys(req *client.EventQueryByKeysRequest) (string, []client.EventInfo, error) {
  604. selectJsonBytes, err := json.Marshal(req.Select)
  605. if err != nil {
  606. return "", nil, err
  607. }
  608. reply, err := c.eventQueryServiceClient.EventHistoryQueryOnlyByKeys(context.Background(), &request.EventQueryByKeysRequest{
  609. DatabaseID: c.databaseID,
  610. TablePrefixWithSchema: req.TablePrefixWithSchema,
  611. Select: selectJsonBytes,
  612. KeyValues: req.KeyValues,
  613. PageNo: int32(req.PageNo),
  614. PageSize: int32(req.PageSize),
  615. })
  616. if err != nil {
  617. return "", nil, err
  618. }
  619. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  620. }
  621. func (c *Client) CommonEventHistoryQueryOnly(req *client.CommonEventQueryRequest) (string, []client.EventInfo, error) {
  622. selectJsonBytes, err := json.Marshal(req.Select)
  623. if err != nil {
  624. return "", nil, err
  625. }
  626. reply, err := c.eventQueryServiceClient.CommonEventHistoryQueryOnly(context.Background(), &request.CommonEventQueryRequest{
  627. DatabaseID: c.databaseID,
  628. TablePrefixWithSchema: req.TablePrefixWithSchema,
  629. Select: selectJsonBytes,
  630. KeyValues: req.KeyValues,
  631. Version: req.Version,
  632. Operation: req.Operation,
  633. CreatorID: req.CreatorID,
  634. StartCreatedTime: req.StartCreatedTime,
  635. EndCreatedTime: req.EndCreatedTime,
  636. PageNo: int32(req.PageNo),
  637. PageSize: int32(req.PageSize),
  638. })
  639. if err != nil {
  640. return "", nil, err
  641. }
  642. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  643. }
  644. func (c *Client) CountEventHistoryByKeys(req *client.CountEventByKeysRequest) (string, int64, error) {
  645. reply, err := c.eventQueryServiceClient.CountEventHistoryByKeys(context.Background(), &request.CountEventByKeysRequest{
  646. DatabaseID: c.databaseID,
  647. TablePrefixWithSchema: req.TablePrefixWithSchema,
  648. KeyValues: req.KeyValues,
  649. })
  650. if err != nil {
  651. return "", 0, err
  652. }
  653. return reply.Statement, reply.Count, nil
  654. }
  655. func (c *Client) CommonCountEventHistory(req *client.CommonCountEventRequest) (string, int64, error) {
  656. reply, err := c.eventQueryServiceClient.CommonCountEventHistory(context.Background(), &request.CommonCountEventRequest{
  657. DatabaseID: c.databaseID,
  658. TablePrefixWithSchema: req.TablePrefixWithSchema,
  659. KeyValues: req.KeyValues,
  660. Version: req.Version,
  661. Operation: req.Operation,
  662. CreatorID: req.CreatorID,
  663. StartCreatedTime: req.StartCreatedTime,
  664. EndCreatedTime: req.EndCreatedTime,
  665. })
  666. if err != nil {
  667. return "", 0, err
  668. }
  669. return reply.Statement, reply.Count, nil
  670. }