client.go 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921
  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.TableRow, int64, error) {
  236. var selectJsonBytes []byte
  237. if req.Select != nil {
  238. innerJsonBytes, err := req.Select.ToJson()
  239. if err != nil {
  240. return "", nil, 0, err
  241. }
  242. selectJsonBytes = innerJsonBytes
  243. }
  244. var whereJsonBytes []byte
  245. if req.Where != nil {
  246. innerJsonBytes, err := req.Where.ToJson()
  247. if err != nil {
  248. return "", nil, 0, err
  249. }
  250. whereJsonBytes = innerJsonBytes
  251. }
  252. reply, err := c.queryServiceClient.QueryByWhereAndOrderBy(context.Background(), &request.QueryByWhereAndOrderByRequest{
  253. DatabaseID: c.databaseID,
  254. TablePrefixWithSchema: req.TablePrefixWithSchema,
  255. Version: req.Version,
  256. Select: selectJsonBytes,
  257. Where: whereJsonBytes,
  258. OrderBy: req.OrderBy,
  259. PageNo: int32(req.PageNo),
  260. PageSize: int32(req.PageSize),
  261. })
  262. if err != nil {
  263. return "", nil, 0, err
  264. }
  265. tableRows, err := client.FromDSPInfosData(reply.Infos)
  266. if err != nil {
  267. return "", nil, 0, err
  268. }
  269. return reply.Statement, tableRows, reply.TotalCount, nil
  270. }
  271. func (c *Client) CommonQuery(req *client.CommonQueryRequest) (string, []client.TableRow, int64, error) {
  272. var selectJsonBytes []byte
  273. if req.Select != nil {
  274. innerJsonBytes, err := req.Select.ToJson()
  275. if err != nil {
  276. return "", nil, 0, err
  277. }
  278. selectJsonBytes = innerJsonBytes
  279. }
  280. var whereJsonBytes []byte
  281. if req.Where != nil {
  282. innerJsonBytes, err := req.Where.ToJson()
  283. if err != nil {
  284. return "", nil, 0, err
  285. }
  286. whereJsonBytes = innerJsonBytes
  287. }
  288. var orJsonBytes []byte
  289. if req.Or != nil {
  290. innerJsonBytes, err := req.Or.ToJson()
  291. if err != nil {
  292. return "", nil, 0, err
  293. }
  294. orJsonBytes = innerJsonBytes
  295. }
  296. var joinsJsonBytes []byte
  297. if req.Joins != nil {
  298. innerJsonBytes, err := req.Joins.ToJson()
  299. if err != nil {
  300. return "", nil, 0, err
  301. }
  302. joinsJsonBytes = innerJsonBytes
  303. }
  304. var havingJsonBytes []byte
  305. if req.Having != nil {
  306. innerJsonBytes, err := req.Having.ToJson()
  307. if err != nil {
  308. return "", nil, 0, err
  309. }
  310. havingJsonBytes = innerJsonBytes
  311. }
  312. reply, err := c.queryServiceClient.CommonQuery(context.Background(), &request.CommonQueryRequest{
  313. DatabaseID: c.databaseID,
  314. TablePrefixWithSchema: req.TablePrefixWithSchema,
  315. Version: req.Version,
  316. Select: selectJsonBytes,
  317. Where: whereJsonBytes,
  318. OrderBy: req.OrderBy,
  319. Or: orJsonBytes,
  320. GroupBy: req.GroupBy,
  321. Joins: joinsJsonBytes,
  322. Having: havingJsonBytes,
  323. PageNo: int32(req.PageNo),
  324. PageSize: int32(req.PageSize),
  325. })
  326. if err != nil {
  327. return "", nil, 0, err
  328. }
  329. tableRows, err := client.FromDSPInfosData(reply.Infos)
  330. if err != nil {
  331. return "", nil, 0, err
  332. }
  333. return reply.Statement, tableRows, reply.TotalCount, nil
  334. }
  335. func (c *Client) QueryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (string, []client.TableRow, error) {
  336. var selectJsonBytes []byte
  337. if req.Select != nil {
  338. innerJsonBytes, err := req.Select.ToJson()
  339. if err != nil {
  340. return "", nil, err
  341. }
  342. selectJsonBytes = innerJsonBytes
  343. }
  344. var whereJsonBytes []byte
  345. if req.Where != nil {
  346. innerJsonBytes, err := req.Where.ToJson()
  347. if err != nil {
  348. return "", nil, err
  349. }
  350. whereJsonBytes = innerJsonBytes
  351. }
  352. reply, err := c.queryServiceClient.QueryOnlyByWhereAndOrderBy(context.Background(), &request.QueryByWhereAndOrderByRequest{
  353. DatabaseID: c.databaseID,
  354. TablePrefixWithSchema: req.TablePrefixWithSchema,
  355. Version: req.Version,
  356. Select: selectJsonBytes,
  357. Where: whereJsonBytes,
  358. OrderBy: req.OrderBy,
  359. PageNo: int32(req.PageNo),
  360. PageSize: int32(req.PageSize),
  361. })
  362. if err != nil {
  363. return "", nil, err
  364. }
  365. tableRows, err := client.FromDSPInfosData(reply.Infos)
  366. if err != nil {
  367. return "", nil, err
  368. }
  369. return reply.Statement, tableRows, nil
  370. }
  371. func (c *Client) CommonQueryOnly(req *client.CommonQueryRequest) (string, []client.TableRow, error) {
  372. var selectJsonBytes []byte
  373. if req.Select != nil {
  374. innerJsonBytes, err := req.Select.ToJson()
  375. if err != nil {
  376. return "", nil, err
  377. }
  378. selectJsonBytes = innerJsonBytes
  379. }
  380. var whereJsonBytes []byte
  381. if req.Where != nil {
  382. innerJsonBytes, err := req.Where.ToJson()
  383. if err != nil {
  384. return "", nil, err
  385. }
  386. whereJsonBytes = innerJsonBytes
  387. }
  388. var orJsonBytes []byte
  389. if req.Or != nil {
  390. innerJsonBytes, err := req.Or.ToJson()
  391. if err != nil {
  392. return "", nil, err
  393. }
  394. orJsonBytes = innerJsonBytes
  395. }
  396. var joinsJsonBytes []byte
  397. if req.Joins != nil {
  398. innerJsonBytes, err := req.Joins.ToJson()
  399. if err != nil {
  400. return "", nil, err
  401. }
  402. joinsJsonBytes = innerJsonBytes
  403. }
  404. var havingJsonBytes []byte
  405. if req.Having != nil {
  406. innerJsonBytes, err := req.Having.ToJson()
  407. if err != nil {
  408. return "", nil, err
  409. }
  410. havingJsonBytes = innerJsonBytes
  411. }
  412. reply, err := c.queryServiceClient.CommonQueryOnly(context.Background(), &request.CommonQueryRequest{
  413. DatabaseID: c.databaseID,
  414. TablePrefixWithSchema: req.TablePrefixWithSchema,
  415. Version: req.Version,
  416. Select: selectJsonBytes,
  417. Where: whereJsonBytes,
  418. OrderBy: req.OrderBy,
  419. Or: orJsonBytes,
  420. GroupBy: req.GroupBy,
  421. Joins: joinsJsonBytes,
  422. Having: havingJsonBytes,
  423. PageNo: int32(req.PageNo),
  424. PageSize: int32(req.PageSize),
  425. })
  426. if err != nil {
  427. return "", nil, err
  428. }
  429. tableRows, err := client.FromDSPInfosData(reply.Infos)
  430. if err != nil {
  431. return "", nil, err
  432. }
  433. return reply.Statement, tableRows, nil
  434. }
  435. func (c *Client) QueryByKeys(req *client.QueryByKeysRequest) (string, *client.TableRow, error) {
  436. var selectJsonBytes []byte
  437. if req.Select != nil {
  438. innerJsonBytes, err := req.Select.ToJson()
  439. if err != nil {
  440. return "", nil, err
  441. }
  442. selectJsonBytes = innerJsonBytes
  443. }
  444. reply, err := c.queryServiceClient.QueryByKeys(context.Background(), &request.QueryByKeysRequest{
  445. DatabaseID: c.databaseID,
  446. TablePrefixWithSchema: req.TablePrefixWithSchema,
  447. Version: req.Version,
  448. Select: selectJsonBytes,
  449. KeyValues: req.KeyValues,
  450. })
  451. if err != nil {
  452. return "", nil, err
  453. }
  454. tableRow := client.NewTableRow()
  455. err = tableRow.FromDSPInfoData(reply.Info)
  456. if err != nil {
  457. return "", nil, err
  458. }
  459. return reply.Statement, tableRow, nil
  460. }
  461. func (c *Client) CountWhere(req *client.CountWhereRequest) (string, int64, error) {
  462. var whereJsonBytes []byte
  463. if req.Where != nil {
  464. innerJsonBytes, err := req.Where.ToJson()
  465. if err != nil {
  466. return "", 0, err
  467. }
  468. whereJsonBytes = innerJsonBytes
  469. }
  470. reply, err := c.queryServiceClient.CountWhere(context.Background(), &request.CountWhereRequest{
  471. DatabaseID: c.databaseID,
  472. TablePrefixWithSchema: req.TablePrefixWithSchema,
  473. Version: req.Version,
  474. Where: whereJsonBytes,
  475. })
  476. if err != nil {
  477. return "", 0, err
  478. }
  479. return reply.Statement, reply.Count, nil
  480. }
  481. func (c *Client) CommonCount(req *client.CommonCountRequest) (string, int64, error) {
  482. var whereJsonBytes []byte
  483. if req.Where != nil {
  484. innerJsonBytes, err := req.Where.ToJson()
  485. if err != nil {
  486. return "", 0, err
  487. }
  488. whereJsonBytes = innerJsonBytes
  489. }
  490. var orJsonBytes []byte
  491. if req.Or != nil {
  492. innerJsonBytes, err := req.Or.ToJson()
  493. if err != nil {
  494. return "", 0, err
  495. }
  496. orJsonBytes = innerJsonBytes
  497. }
  498. var joinsJsonBytes []byte
  499. if req.Joins != nil {
  500. innerJsonBytes, err := req.Joins.ToJson()
  501. if err != nil {
  502. return "", 0, err
  503. }
  504. joinsJsonBytes = innerJsonBytes
  505. }
  506. var havingJsonBytes []byte
  507. if req.Having != nil {
  508. innerJsonBytes, err := req.Having.ToJson()
  509. if err != nil {
  510. return "", 0, err
  511. }
  512. havingJsonBytes = innerJsonBytes
  513. }
  514. reply, err := c.queryServiceClient.CommonCount(context.Background(), &request.CommonCountRequest{
  515. DatabaseID: c.databaseID,
  516. TablePrefixWithSchema: req.TablePrefixWithSchema,
  517. Version: req.Version,
  518. Where: whereJsonBytes,
  519. Or: orJsonBytes,
  520. GroupBy: req.GroupBy,
  521. Joins: joinsJsonBytes,
  522. Having: havingJsonBytes,
  523. })
  524. if err != nil {
  525. return "", 0, err
  526. }
  527. return reply.Statement, reply.Count, nil
  528. }
  529. func (c *Client) EventQueryByKeys(req *client.EventQueryByKeysRequest) (string, []client.EventInfo, int64, error) {
  530. var selectJsonBytes []byte
  531. if req.Select != nil {
  532. innerJsonBytes, err := req.Select.ToJson()
  533. if err != nil {
  534. return "", nil, 0, err
  535. }
  536. selectJsonBytes = innerJsonBytes
  537. }
  538. reply, err := c.eventQueryServiceClient.EventQueryByKeys(context.Background(), &request.EventQueryByKeysRequest{
  539. DatabaseID: c.databaseID,
  540. TablePrefixWithSchema: req.TablePrefixWithSchema,
  541. Select: selectJsonBytes,
  542. KeyValues: req.KeyValues,
  543. PageNo: int32(req.PageNo),
  544. PageSize: int32(req.PageSize),
  545. })
  546. if err != nil {
  547. return "", nil, 0, err
  548. }
  549. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  550. }
  551. func (c *Client) CommonEventQuery(req *client.CommonEventQueryRequest) (string, []client.EventInfo, int64, error) {
  552. var selectJsonBytes []byte
  553. if req.Select != nil {
  554. innerJsonBytes, err := req.Select.ToJson()
  555. if err != nil {
  556. return "", nil, 0, err
  557. }
  558. selectJsonBytes = innerJsonBytes
  559. }
  560. reply, err := c.eventQueryServiceClient.CommonEventQuery(context.Background(), &request.CommonEventQueryRequest{
  561. DatabaseID: c.databaseID,
  562. TablePrefixWithSchema: req.TablePrefixWithSchema,
  563. Select: selectJsonBytes,
  564. KeyValues: req.KeyValues,
  565. Version: req.Version,
  566. Operation: req.Operation,
  567. CreatorID: req.CreatorID,
  568. StartCreatedTime: req.StartCreatedTime,
  569. EndCreatedTime: req.EndCreatedTime,
  570. PageNo: int32(req.PageNo),
  571. PageSize: int32(req.PageSize),
  572. })
  573. if err != nil {
  574. return "", nil, 0, err
  575. }
  576. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  577. }
  578. func (c *Client) EventQueryOnlyByKeys(req *client.EventQueryByKeysRequest) (string, []client.EventInfo, error) {
  579. var selectJsonBytes []byte
  580. if req.Select != nil {
  581. innerJsonBytes, err := req.Select.ToJson()
  582. if err != nil {
  583. return "", nil, err
  584. }
  585. selectJsonBytes = innerJsonBytes
  586. }
  587. reply, err := c.eventQueryServiceClient.EventQueryOnlyByKeys(context.Background(), &request.EventQueryByKeysRequest{
  588. DatabaseID: c.databaseID,
  589. TablePrefixWithSchema: req.TablePrefixWithSchema,
  590. Select: selectJsonBytes,
  591. KeyValues: req.KeyValues,
  592. PageNo: int32(req.PageNo),
  593. PageSize: int32(req.PageSize),
  594. })
  595. if err != nil {
  596. return "", nil, err
  597. }
  598. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  599. }
  600. func (c *Client) CommonEventQueryOnly(req *client.CommonEventQueryRequest) (string, []client.EventInfo, error) {
  601. var selectJsonBytes []byte
  602. if req.Select != nil {
  603. innerJsonBytes, err := req.Select.ToJson()
  604. if err != nil {
  605. return "", nil, err
  606. }
  607. selectJsonBytes = innerJsonBytes
  608. }
  609. reply, err := c.eventQueryServiceClient.CommonEventQueryOnly(context.Background(), &request.CommonEventQueryRequest{
  610. DatabaseID: c.databaseID,
  611. TablePrefixWithSchema: req.TablePrefixWithSchema,
  612. Select: selectJsonBytes,
  613. KeyValues: req.KeyValues,
  614. Version: req.Version,
  615. Operation: req.Operation,
  616. CreatorID: req.CreatorID,
  617. StartCreatedTime: req.StartCreatedTime,
  618. EndCreatedTime: req.EndCreatedTime,
  619. PageNo: int32(req.PageNo),
  620. PageSize: int32(req.PageSize),
  621. })
  622. if err != nil {
  623. return "", nil, err
  624. }
  625. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  626. }
  627. func (c *Client) CountEventByKeys(req *client.CountEventByKeysRequest) (string, int64, error) {
  628. reply, err := c.eventQueryServiceClient.CountEventByKeys(context.Background(), &request.CountEventByKeysRequest{
  629. DatabaseID: c.databaseID,
  630. TablePrefixWithSchema: req.TablePrefixWithSchema,
  631. KeyValues: req.KeyValues,
  632. })
  633. if err != nil {
  634. return "", 0, err
  635. }
  636. return reply.Statement, reply.Count, nil
  637. }
  638. func (c *Client) CommonCountEvent(req *client.CommonCountEventRequest) (string, int64, error) {
  639. reply, err := c.eventQueryServiceClient.CommonCountEvent(context.Background(), &request.CommonCountEventRequest{
  640. DatabaseID: c.databaseID,
  641. TablePrefixWithSchema: req.TablePrefixWithSchema,
  642. KeyValues: req.KeyValues,
  643. Version: req.Version,
  644. Operation: req.Operation,
  645. CreatorID: req.CreatorID,
  646. StartCreatedTime: req.StartCreatedTime,
  647. EndCreatedTime: req.EndCreatedTime,
  648. })
  649. if err != nil {
  650. return "", 0, err
  651. }
  652. return reply.Statement, reply.Count, nil
  653. }
  654. func (c *Client) EventHistoryQueryByKeys(req *client.EventQueryByKeysRequest) (string, []client.EventInfo, int64, error) {
  655. var selectJsonBytes []byte
  656. if req.Select != nil {
  657. innerJsonBytes, err := req.Select.ToJson()
  658. if err != nil {
  659. return "", nil, 0, err
  660. }
  661. selectJsonBytes = innerJsonBytes
  662. }
  663. reply, err := c.eventQueryServiceClient.EventHistoryQueryByKeys(context.Background(), &request.EventQueryByKeysRequest{
  664. DatabaseID: c.databaseID,
  665. TablePrefixWithSchema: req.TablePrefixWithSchema,
  666. Select: selectJsonBytes,
  667. KeyValues: req.KeyValues,
  668. PageNo: int32(req.PageNo),
  669. PageSize: int32(req.PageSize),
  670. })
  671. if err != nil {
  672. return "", nil, 0, err
  673. }
  674. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  675. }
  676. func (c *Client) CommonEventHistoryQuery(req *client.CommonEventQueryRequest) (string, []client.EventInfo, int64, error) {
  677. var selectJsonBytes []byte
  678. if req.Select != nil {
  679. innerJsonBytes, err := req.Select.ToJson()
  680. if err != nil {
  681. return "", nil, 0, err
  682. }
  683. selectJsonBytes = innerJsonBytes
  684. }
  685. reply, err := c.eventQueryServiceClient.CommonEventHistoryQuery(context.Background(), &request.CommonEventQueryRequest{
  686. DatabaseID: c.databaseID,
  687. TablePrefixWithSchema: req.TablePrefixWithSchema,
  688. Select: selectJsonBytes,
  689. KeyValues: req.KeyValues,
  690. Version: req.Version,
  691. Operation: req.Operation,
  692. CreatorID: req.CreatorID,
  693. StartCreatedTime: req.StartCreatedTime,
  694. EndCreatedTime: req.EndCreatedTime,
  695. PageNo: int32(req.PageNo),
  696. PageSize: int32(req.PageSize),
  697. })
  698. if err != nil {
  699. return "", nil, 0, err
  700. }
  701. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  702. }
  703. func (c *Client) EventHistoryQueryOnlyByKeys(req *client.EventQueryByKeysRequest) (string, []client.EventInfo, error) {
  704. var selectJsonBytes []byte
  705. if req.Select != nil {
  706. innerJsonBytes, err := req.Select.ToJson()
  707. if err != nil {
  708. return "", nil, err
  709. }
  710. selectJsonBytes = innerJsonBytes
  711. }
  712. reply, err := c.eventQueryServiceClient.EventHistoryQueryOnlyByKeys(context.Background(), &request.EventQueryByKeysRequest{
  713. DatabaseID: c.databaseID,
  714. TablePrefixWithSchema: req.TablePrefixWithSchema,
  715. Select: selectJsonBytes,
  716. KeyValues: req.KeyValues,
  717. PageNo: int32(req.PageNo),
  718. PageSize: int32(req.PageSize),
  719. })
  720. if err != nil {
  721. return "", nil, err
  722. }
  723. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  724. }
  725. func (c *Client) CommonEventHistoryQueryOnly(req *client.CommonEventQueryRequest) (string, []client.EventInfo, error) {
  726. var selectJsonBytes []byte
  727. if req.Select != nil {
  728. innerJsonBytes, err := req.Select.ToJson()
  729. if err != nil {
  730. return "", nil, err
  731. }
  732. selectJsonBytes = innerJsonBytes
  733. }
  734. reply, err := c.eventQueryServiceClient.CommonEventHistoryQueryOnly(context.Background(), &request.CommonEventQueryRequest{
  735. DatabaseID: c.databaseID,
  736. TablePrefixWithSchema: req.TablePrefixWithSchema,
  737. Select: selectJsonBytes,
  738. KeyValues: req.KeyValues,
  739. Version: req.Version,
  740. Operation: req.Operation,
  741. CreatorID: req.CreatorID,
  742. StartCreatedTime: req.StartCreatedTime,
  743. EndCreatedTime: req.EndCreatedTime,
  744. PageNo: int32(req.PageNo),
  745. PageSize: int32(req.PageSize),
  746. })
  747. if err != nil {
  748. return "", nil, err
  749. }
  750. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  751. }
  752. func (c *Client) CountEventHistoryByKeys(req *client.CountEventByKeysRequest) (string, int64, error) {
  753. reply, err := c.eventQueryServiceClient.CountEventHistoryByKeys(context.Background(), &request.CountEventByKeysRequest{
  754. DatabaseID: c.databaseID,
  755. TablePrefixWithSchema: req.TablePrefixWithSchema,
  756. KeyValues: req.KeyValues,
  757. })
  758. if err != nil {
  759. return "", 0, err
  760. }
  761. return reply.Statement, reply.Count, nil
  762. }
  763. func (c *Client) CommonCountEventHistory(req *client.CommonCountEventRequest) (string, int64, error) {
  764. reply, err := c.eventQueryServiceClient.CommonCountEventHistory(context.Background(), &request.CommonCountEventRequest{
  765. DatabaseID: c.databaseID,
  766. TablePrefixWithSchema: req.TablePrefixWithSchema,
  767. KeyValues: req.KeyValues,
  768. Version: req.Version,
  769. Operation: req.Operation,
  770. CreatorID: req.CreatorID,
  771. StartCreatedTime: req.StartCreatedTime,
  772. EndCreatedTime: req.EndCreatedTime,
  773. })
  774. if err != nil {
  775. return "", 0, err
  776. }
  777. return reply.Statement, reply.Count, nil
  778. }