client.go 25 KB

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