client.go 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947
  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. KeyValues: req.KeyValues,
  170. UserID: req.UserID,
  171. })
  172. if err != nil {
  173. return "", err
  174. }
  175. return reply.Statement, nil
  176. }
  177. func (c *Client) DeleteWhere(req *client.DeleteWhereRequest) (string, error) {
  178. if req.Where == nil {
  179. return "", errors.New("没有传递Where条件")
  180. }
  181. whereJsonBytes, err := req.Where.ToJson()
  182. if err != nil {
  183. return "", err
  184. }
  185. reply, err := c.commandServiceClient.DeleteWhere(context.Background(), &request.DeleteWhereRequest{
  186. DatabaseID: c.databaseID,
  187. TablePrefixWithSchema: req.TablePrefixWithSchema,
  188. Version: req.Version,
  189. KeyColumns: req.KeyColumns,
  190. Where: whereJsonBytes,
  191. UserID: req.UserID,
  192. })
  193. if err != nil {
  194. return "", err
  195. }
  196. return reply.Statement, nil
  197. }
  198. func (c *Client) DeleteBatch(req *client.DeleteBatchRequest) (string, error) {
  199. tableRowItems := make([]*request.DeleteTableRowItem, 0)
  200. for _, reqTableItem := range req.Items {
  201. items := make([]*request.DeleteItem, 0)
  202. for _, reqKeyValues := range reqTableItem.KeyValues {
  203. items = append(items, &request.DeleteItem{
  204. KeyValues: reqKeyValues,
  205. })
  206. }
  207. tableRowItems = append(tableRowItems, &request.DeleteTableRowItem{
  208. TablePrefixWithSchema: reqTableItem.TablePrefixWithSchema,
  209. Version: reqTableItem.Version,
  210. Items: items,
  211. })
  212. }
  213. reply, err := c.commandServiceClient.DeleteBatch(context.Background(), &request.DeleteBatchRequest{
  214. DatabaseID: c.databaseID,
  215. Items: tableRowItems,
  216. UserID: req.UserID,
  217. })
  218. if err != nil {
  219. return "", err
  220. }
  221. return reply.Statement, nil
  222. }
  223. func (c *Client) Update(req *client.UpdateRequest) (string, error) {
  224. if req.NewTableRow == nil {
  225. return "", nil
  226. }
  227. newTableRow, err := req.NewTableRow.ToDPSTableRow()
  228. if err != nil {
  229. return "", err
  230. }
  231. reply, err := c.commandServiceClient.Update(context.Background(), &request.UpdateRequest{
  232. DatabaseID: c.databaseID,
  233. TablePrefixWithSchema: req.TablePrefixWithSchema,
  234. Version: req.Version,
  235. KeyValues: req.KeyValues,
  236. NewTableRow: newTableRow,
  237. UserID: req.UserID,
  238. })
  239. if err != nil {
  240. return "", err
  241. }
  242. return reply.Statement, nil
  243. }
  244. func (c *Client) Replay(req *client.ReplayRequest) (string, error) {
  245. reply, err := c.commandServiceClient.Replay(context.Background(), &request.ReplayRequest{
  246. DatabaseID: c.databaseID,
  247. TablePrefixWithSchema: req.TablePrefixWithSchema,
  248. Version: req.Version,
  249. KeyValues: req.KeyValues,
  250. UserID: req.UserID,
  251. })
  252. if err != nil {
  253. return "", err
  254. }
  255. return reply.Statement, nil
  256. }
  257. func (c *Client) QueryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (string, []client.TableRow, int64, error) {
  258. var selectJsonBytes []byte
  259. if req.Select != nil {
  260. innerJsonBytes, err := req.Select.ToJson()
  261. if err != nil {
  262. return "", nil, 0, err
  263. }
  264. selectJsonBytes = innerJsonBytes
  265. }
  266. var whereJsonBytes []byte
  267. if req.Where != nil {
  268. innerJsonBytes, err := req.Where.ToJson()
  269. if err != nil {
  270. return "", nil, 0, err
  271. }
  272. whereJsonBytes = innerJsonBytes
  273. }
  274. reply, err := c.queryServiceClient.QueryByWhereAndOrderBy(context.Background(), &request.QueryByWhereAndOrderByRequest{
  275. DatabaseID: c.databaseID,
  276. TablePrefixWithSchema: req.TablePrefixWithSchema,
  277. Version: req.Version,
  278. Select: selectJsonBytes,
  279. Where: whereJsonBytes,
  280. OrderBy: req.OrderBy,
  281. PageNo: int32(req.PageNo),
  282. PageSize: int32(req.PageSize),
  283. })
  284. if err != nil {
  285. return "", nil, 0, err
  286. }
  287. tableRows, err := client.FromDSPInfosData(reply.Infos)
  288. if err != nil {
  289. return "", nil, 0, err
  290. }
  291. return reply.Statement, tableRows, reply.TotalCount, nil
  292. }
  293. func (c *Client) CommonQuery(req *client.CommonQueryRequest) (string, []client.TableRow, int64, error) {
  294. var selectJsonBytes []byte
  295. if req.Select != nil {
  296. innerJsonBytes, err := req.Select.ToJson()
  297. if err != nil {
  298. return "", nil, 0, err
  299. }
  300. selectJsonBytes = innerJsonBytes
  301. }
  302. var whereJsonBytes []byte
  303. if req.Where != nil {
  304. innerJsonBytes, err := req.Where.ToJson()
  305. if err != nil {
  306. return "", nil, 0, err
  307. }
  308. whereJsonBytes = innerJsonBytes
  309. }
  310. var orJsonBytes []byte
  311. if req.Or != nil {
  312. innerJsonBytes, err := req.Or.ToJson()
  313. if err != nil {
  314. return "", nil, 0, err
  315. }
  316. orJsonBytes = innerJsonBytes
  317. }
  318. var joinsJsonBytes []byte
  319. if req.Joins != nil {
  320. innerJsonBytes, err := req.Joins.ToJson()
  321. if err != nil {
  322. return "", nil, 0, err
  323. }
  324. joinsJsonBytes = innerJsonBytes
  325. }
  326. var havingJsonBytes []byte
  327. if req.Having != nil {
  328. innerJsonBytes, err := req.Having.ToJson()
  329. if err != nil {
  330. return "", nil, 0, err
  331. }
  332. havingJsonBytes = innerJsonBytes
  333. }
  334. reply, err := c.queryServiceClient.CommonQuery(context.Background(), &request.CommonQueryRequest{
  335. DatabaseID: c.databaseID,
  336. TablePrefixWithSchema: req.TablePrefixWithSchema,
  337. Version: req.Version,
  338. Select: selectJsonBytes,
  339. Where: whereJsonBytes,
  340. OrderBy: req.OrderBy,
  341. Or: orJsonBytes,
  342. GroupBy: req.GroupBy,
  343. Joins: joinsJsonBytes,
  344. Having: havingJsonBytes,
  345. PageNo: int32(req.PageNo),
  346. PageSize: int32(req.PageSize),
  347. })
  348. if err != nil {
  349. return "", nil, 0, err
  350. }
  351. tableRows, err := client.FromDSPInfosData(reply.Infos)
  352. if err != nil {
  353. return "", nil, 0, err
  354. }
  355. return reply.Statement, tableRows, reply.TotalCount, nil
  356. }
  357. func (c *Client) QueryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (string, []client.TableRow, error) {
  358. var selectJsonBytes []byte
  359. if req.Select != nil {
  360. innerJsonBytes, err := req.Select.ToJson()
  361. if err != nil {
  362. return "", nil, err
  363. }
  364. selectJsonBytes = innerJsonBytes
  365. }
  366. var whereJsonBytes []byte
  367. if req.Where != nil {
  368. innerJsonBytes, err := req.Where.ToJson()
  369. if err != nil {
  370. return "", nil, err
  371. }
  372. whereJsonBytes = innerJsonBytes
  373. }
  374. reply, err := c.queryServiceClient.QueryOnlyByWhereAndOrderBy(context.Background(), &request.QueryByWhereAndOrderByRequest{
  375. DatabaseID: c.databaseID,
  376. TablePrefixWithSchema: req.TablePrefixWithSchema,
  377. Version: req.Version,
  378. Select: selectJsonBytes,
  379. Where: whereJsonBytes,
  380. OrderBy: req.OrderBy,
  381. PageNo: int32(req.PageNo),
  382. PageSize: int32(req.PageSize),
  383. })
  384. if err != nil {
  385. return "", nil, err
  386. }
  387. tableRows, err := client.FromDSPInfosData(reply.Infos)
  388. if err != nil {
  389. return "", nil, err
  390. }
  391. return reply.Statement, tableRows, nil
  392. }
  393. func (c *Client) CommonQueryOnly(req *client.CommonQueryRequest) (string, []client.TableRow, error) {
  394. var selectJsonBytes []byte
  395. if req.Select != nil {
  396. innerJsonBytes, err := req.Select.ToJson()
  397. if err != nil {
  398. return "", nil, err
  399. }
  400. selectJsonBytes = innerJsonBytes
  401. }
  402. var whereJsonBytes []byte
  403. if req.Where != nil {
  404. innerJsonBytes, err := req.Where.ToJson()
  405. if err != nil {
  406. return "", nil, err
  407. }
  408. whereJsonBytes = innerJsonBytes
  409. }
  410. var orJsonBytes []byte
  411. if req.Or != nil {
  412. innerJsonBytes, err := req.Or.ToJson()
  413. if err != nil {
  414. return "", nil, err
  415. }
  416. orJsonBytes = innerJsonBytes
  417. }
  418. var joinsJsonBytes []byte
  419. if req.Joins != nil {
  420. innerJsonBytes, err := req.Joins.ToJson()
  421. if err != nil {
  422. return "", nil, err
  423. }
  424. joinsJsonBytes = innerJsonBytes
  425. }
  426. var havingJsonBytes []byte
  427. if req.Having != nil {
  428. innerJsonBytes, err := req.Having.ToJson()
  429. if err != nil {
  430. return "", nil, err
  431. }
  432. havingJsonBytes = innerJsonBytes
  433. }
  434. reply, err := c.queryServiceClient.CommonQueryOnly(context.Background(), &request.CommonQueryRequest{
  435. DatabaseID: c.databaseID,
  436. TablePrefixWithSchema: req.TablePrefixWithSchema,
  437. Version: req.Version,
  438. Select: selectJsonBytes,
  439. Where: whereJsonBytes,
  440. OrderBy: req.OrderBy,
  441. Or: orJsonBytes,
  442. GroupBy: req.GroupBy,
  443. Joins: joinsJsonBytes,
  444. Having: havingJsonBytes,
  445. PageNo: int32(req.PageNo),
  446. PageSize: int32(req.PageSize),
  447. })
  448. if err != nil {
  449. return "", nil, err
  450. }
  451. tableRows, err := client.FromDSPInfosData(reply.Infos)
  452. if err != nil {
  453. return "", nil, err
  454. }
  455. return reply.Statement, tableRows, nil
  456. }
  457. func (c *Client) QueryByKeys(req *client.QueryByKeysRequest) (string, *client.TableRow, error) {
  458. var selectJsonBytes []byte
  459. if req.Select != nil {
  460. innerJsonBytes, err := req.Select.ToJson()
  461. if err != nil {
  462. return "", nil, err
  463. }
  464. selectJsonBytes = innerJsonBytes
  465. }
  466. reply, err := c.queryServiceClient.QueryByKeys(context.Background(), &request.QueryByKeysRequest{
  467. DatabaseID: c.databaseID,
  468. TablePrefixWithSchema: req.TablePrefixWithSchema,
  469. Version: req.Version,
  470. Select: selectJsonBytes,
  471. KeyValues: req.KeyValues,
  472. })
  473. if err != nil {
  474. return "", nil, err
  475. }
  476. tableRow := client.NewTableRow()
  477. err = tableRow.FromDSPInfoData(reply.Info)
  478. if err != nil {
  479. return "", nil, err
  480. }
  481. return reply.Statement, tableRow, nil
  482. }
  483. func (c *Client) CountWhere(req *client.CountWhereRequest) (string, int64, error) {
  484. var whereJsonBytes []byte
  485. if req.Where != nil {
  486. innerJsonBytes, err := req.Where.ToJson()
  487. if err != nil {
  488. return "", 0, err
  489. }
  490. whereJsonBytes = innerJsonBytes
  491. }
  492. reply, err := c.queryServiceClient.CountWhere(context.Background(), &request.CountWhereRequest{
  493. DatabaseID: c.databaseID,
  494. TablePrefixWithSchema: req.TablePrefixWithSchema,
  495. Version: req.Version,
  496. Where: whereJsonBytes,
  497. })
  498. if err != nil {
  499. return "", 0, err
  500. }
  501. return reply.Statement, reply.Count, nil
  502. }
  503. func (c *Client) CommonCount(req *client.CommonCountRequest) (string, int64, error) {
  504. var whereJsonBytes []byte
  505. if req.Where != nil {
  506. innerJsonBytes, err := req.Where.ToJson()
  507. if err != nil {
  508. return "", 0, err
  509. }
  510. whereJsonBytes = innerJsonBytes
  511. }
  512. var orJsonBytes []byte
  513. if req.Or != nil {
  514. innerJsonBytes, err := req.Or.ToJson()
  515. if err != nil {
  516. return "", 0, err
  517. }
  518. orJsonBytes = innerJsonBytes
  519. }
  520. var joinsJsonBytes []byte
  521. if req.Joins != nil {
  522. innerJsonBytes, err := req.Joins.ToJson()
  523. if err != nil {
  524. return "", 0, err
  525. }
  526. joinsJsonBytes = innerJsonBytes
  527. }
  528. var havingJsonBytes []byte
  529. if req.Having != nil {
  530. innerJsonBytes, err := req.Having.ToJson()
  531. if err != nil {
  532. return "", 0, err
  533. }
  534. havingJsonBytes = innerJsonBytes
  535. }
  536. reply, err := c.queryServiceClient.CommonCount(context.Background(), &request.CommonCountRequest{
  537. DatabaseID: c.databaseID,
  538. TablePrefixWithSchema: req.TablePrefixWithSchema,
  539. Version: req.Version,
  540. Where: whereJsonBytes,
  541. Or: orJsonBytes,
  542. GroupBy: req.GroupBy,
  543. Joins: joinsJsonBytes,
  544. Having: havingJsonBytes,
  545. })
  546. if err != nil {
  547. return "", 0, err
  548. }
  549. return reply.Statement, reply.Count, nil
  550. }
  551. func (c *Client) EventQueryByKeys(req *client.EventQueryByKeysRequest) (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.EventQueryByKeys(context.Background(), &request.EventQueryByKeysRequest{
  561. DatabaseID: c.databaseID,
  562. TablePrefixWithSchema: req.TablePrefixWithSchema,
  563. Select: selectJsonBytes,
  564. KeyValues: req.KeyValues,
  565. PageNo: int32(req.PageNo),
  566. PageSize: int32(req.PageSize),
  567. })
  568. if err != nil {
  569. return "", nil, 0, err
  570. }
  571. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  572. }
  573. func (c *Client) CommonEventQuery(req *client.CommonEventQueryRequest) (string, []client.EventInfo, int64, error) {
  574. var selectJsonBytes []byte
  575. if req.Select != nil {
  576. innerJsonBytes, err := req.Select.ToJson()
  577. if err != nil {
  578. return "", nil, 0, err
  579. }
  580. selectJsonBytes = innerJsonBytes
  581. }
  582. reply, err := c.eventQueryServiceClient.CommonEventQuery(context.Background(), &request.CommonEventQueryRequest{
  583. DatabaseID: c.databaseID,
  584. TablePrefixWithSchema: req.TablePrefixWithSchema,
  585. Select: selectJsonBytes,
  586. KeyValues: req.KeyValues,
  587. Version: req.Version,
  588. Operation: req.Operation,
  589. CreatorID: req.CreatorID,
  590. StartCreatedTime: req.StartCreatedTime,
  591. EndCreatedTime: req.EndCreatedTime,
  592. PageNo: int32(req.PageNo),
  593. PageSize: int32(req.PageSize),
  594. })
  595. if err != nil {
  596. return "", nil, 0, err
  597. }
  598. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  599. }
  600. func (c *Client) EventQueryOnlyByKeys(req *client.EventQueryByKeysRequest) (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.EventQueryOnlyByKeys(context.Background(), &request.EventQueryByKeysRequest{
  610. DatabaseID: c.databaseID,
  611. TablePrefixWithSchema: req.TablePrefixWithSchema,
  612. Select: selectJsonBytes,
  613. KeyValues: req.KeyValues,
  614. PageNo: int32(req.PageNo),
  615. PageSize: int32(req.PageSize),
  616. })
  617. if err != nil {
  618. return "", nil, err
  619. }
  620. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  621. }
  622. func (c *Client) CommonEventQueryOnly(req *client.CommonEventQueryRequest) (string, []client.EventInfo, error) {
  623. var selectJsonBytes []byte
  624. if req.Select != nil {
  625. innerJsonBytes, err := req.Select.ToJson()
  626. if err != nil {
  627. return "", nil, err
  628. }
  629. selectJsonBytes = innerJsonBytes
  630. }
  631. reply, err := c.eventQueryServiceClient.CommonEventQueryOnly(context.Background(), &request.CommonEventQueryRequest{
  632. DatabaseID: c.databaseID,
  633. TablePrefixWithSchema: req.TablePrefixWithSchema,
  634. Select: selectJsonBytes,
  635. KeyValues: req.KeyValues,
  636. Version: req.Version,
  637. Operation: req.Operation,
  638. CreatorID: req.CreatorID,
  639. StartCreatedTime: req.StartCreatedTime,
  640. EndCreatedTime: req.EndCreatedTime,
  641. PageNo: int32(req.PageNo),
  642. PageSize: int32(req.PageSize),
  643. })
  644. if err != nil {
  645. return "", nil, err
  646. }
  647. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  648. }
  649. func (c *Client) CountEventByKeys(req *client.CountEventByKeysRequest) (string, int64, error) {
  650. reply, err := c.eventQueryServiceClient.CountEventByKeys(context.Background(), &request.CountEventByKeysRequest{
  651. DatabaseID: c.databaseID,
  652. TablePrefixWithSchema: req.TablePrefixWithSchema,
  653. KeyValues: req.KeyValues,
  654. })
  655. if err != nil {
  656. return "", 0, err
  657. }
  658. return reply.Statement, reply.Count, nil
  659. }
  660. func (c *Client) CommonCountEvent(req *client.CommonCountEventRequest) (string, int64, error) {
  661. reply, err := c.eventQueryServiceClient.CommonCountEvent(context.Background(), &request.CommonCountEventRequest{
  662. DatabaseID: c.databaseID,
  663. TablePrefixWithSchema: req.TablePrefixWithSchema,
  664. KeyValues: req.KeyValues,
  665. Version: req.Version,
  666. Operation: req.Operation,
  667. CreatorID: req.CreatorID,
  668. StartCreatedTime: req.StartCreatedTime,
  669. EndCreatedTime: req.EndCreatedTime,
  670. })
  671. if err != nil {
  672. return "", 0, err
  673. }
  674. return reply.Statement, reply.Count, nil
  675. }
  676. func (c *Client) EventHistoryQueryByKeys(req *client.EventQueryByKeysRequest) (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.EventHistoryQueryByKeys(context.Background(), &request.EventQueryByKeysRequest{
  686. DatabaseID: c.databaseID,
  687. TablePrefixWithSchema: req.TablePrefixWithSchema,
  688. Select: selectJsonBytes,
  689. KeyValues: req.KeyValues,
  690. PageNo: int32(req.PageNo),
  691. PageSize: int32(req.PageSize),
  692. })
  693. if err != nil {
  694. return "", nil, 0, err
  695. }
  696. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  697. }
  698. func (c *Client) CommonEventHistoryQuery(req *client.CommonEventQueryRequest) (string, []client.EventInfo, int64, error) {
  699. var selectJsonBytes []byte
  700. if req.Select != nil {
  701. innerJsonBytes, err := req.Select.ToJson()
  702. if err != nil {
  703. return "", nil, 0, err
  704. }
  705. selectJsonBytes = innerJsonBytes
  706. }
  707. reply, err := c.eventQueryServiceClient.CommonEventHistoryQuery(context.Background(), &request.CommonEventQueryRequest{
  708. DatabaseID: c.databaseID,
  709. TablePrefixWithSchema: req.TablePrefixWithSchema,
  710. Select: selectJsonBytes,
  711. KeyValues: req.KeyValues,
  712. Version: req.Version,
  713. Operation: req.Operation,
  714. CreatorID: req.CreatorID,
  715. StartCreatedTime: req.StartCreatedTime,
  716. EndCreatedTime: req.EndCreatedTime,
  717. PageNo: int32(req.PageNo),
  718. PageSize: int32(req.PageSize),
  719. })
  720. if err != nil {
  721. return "", nil, 0, err
  722. }
  723. return reply.Statement, client.FormEventInfoBatch(reply.Infos), reply.TotalCount, nil
  724. }
  725. func (c *Client) EventHistoryQueryOnlyByKeys(req *client.EventQueryByKeysRequest) (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.EventHistoryQueryOnlyByKeys(context.Background(), &request.EventQueryByKeysRequest{
  735. DatabaseID: c.databaseID,
  736. TablePrefixWithSchema: req.TablePrefixWithSchema,
  737. Select: selectJsonBytes,
  738. KeyValues: req.KeyValues,
  739. PageNo: int32(req.PageNo),
  740. PageSize: int32(req.PageSize),
  741. })
  742. if err != nil {
  743. return "", nil, err
  744. }
  745. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  746. }
  747. func (c *Client) CommonEventHistoryQueryOnly(req *client.CommonEventQueryRequest) (string, []client.EventInfo, error) {
  748. var selectJsonBytes []byte
  749. if req.Select != nil {
  750. innerJsonBytes, err := req.Select.ToJson()
  751. if err != nil {
  752. return "", nil, err
  753. }
  754. selectJsonBytes = innerJsonBytes
  755. }
  756. reply, err := c.eventQueryServiceClient.CommonEventHistoryQueryOnly(context.Background(), &request.CommonEventQueryRequest{
  757. DatabaseID: c.databaseID,
  758. TablePrefixWithSchema: req.TablePrefixWithSchema,
  759. Select: selectJsonBytes,
  760. KeyValues: req.KeyValues,
  761. Version: req.Version,
  762. Operation: req.Operation,
  763. CreatorID: req.CreatorID,
  764. StartCreatedTime: req.StartCreatedTime,
  765. EndCreatedTime: req.EndCreatedTime,
  766. PageNo: int32(req.PageNo),
  767. PageSize: int32(req.PageSize),
  768. })
  769. if err != nil {
  770. return "", nil, err
  771. }
  772. return reply.Statement, client.FormEventInfoBatch(reply.Infos), nil
  773. }
  774. func (c *Client) CountEventHistoryByKeys(req *client.CountEventByKeysRequest) (string, int64, error) {
  775. reply, err := c.eventQueryServiceClient.CountEventHistoryByKeys(context.Background(), &request.CountEventByKeysRequest{
  776. DatabaseID: c.databaseID,
  777. TablePrefixWithSchema: req.TablePrefixWithSchema,
  778. KeyValues: req.KeyValues,
  779. })
  780. if err != nil {
  781. return "", 0, err
  782. }
  783. return reply.Statement, reply.Count, nil
  784. }
  785. func (c *Client) CommonCountEventHistory(req *client.CommonCountEventRequest) (string, int64, error) {
  786. reply, err := c.eventQueryServiceClient.CommonCountEventHistory(context.Background(), &request.CommonCountEventRequest{
  787. DatabaseID: c.databaseID,
  788. TablePrefixWithSchema: req.TablePrefixWithSchema,
  789. KeyValues: req.KeyValues,
  790. Version: req.Version,
  791. Operation: req.Operation,
  792. CreatorID: req.CreatorID,
  793. StartCreatedTime: req.StartCreatedTime,
  794. EndCreatedTime: req.EndCreatedTime,
  795. })
  796. if err != nil {
  797. return "", 0, err
  798. }
  799. return reply.Statement, reply.Count, nil
  800. }