Brak opisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

my_agent_to_doris_test.go 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package test
  2. import (
  3. "fmt"
  4. "log"
  5. "testing"
  6. "git.x2erp.com/qdy/go-base/types"
  7. "git.x2erp.com/qdy/go-db/factory/http"
  8. )
  9. // 函数名改为 TestAgentToDorisDirect 以符合 Go 测试约定
  10. func TestAgentToDorisDirect(t *testing.T) {
  11. err := agentToDorisDirect(t)
  12. if err != nil {
  13. t.Errorf("测试失败: %v", err)
  14. }
  15. }
  16. func agentToDorisDirect(t *testing.T) error {
  17. startRow := 0
  18. endRow := 100
  19. // 生成查询SQL(使用参数模式)
  20. querySQL, queryParams := getSQLWithPagination(startRow, endRow)
  21. // 准备查询请求
  22. queryRequest := types.QueryRequest{
  23. SQL: querySQL,
  24. PositionalParams: queryParams,
  25. WriterHeader: false,
  26. AgentUrl: "http://localhost:8080/api/query/csv/param",
  27. AgentToken: "123",
  28. DorisDatabase: "X6_STOCK_DEV",
  29. DorisTable: "A3_CLOTHING",
  30. }
  31. // 1. 获取HTTP工厂实例
  32. httpFactory, err := http.GetHTTPFactory()
  33. if err != nil {
  34. log.Printf("Failed to get HTTP factory: %v", err)
  35. return fmt.Errorf("Failed to get HTTP factory: %v", err)
  36. }
  37. fmt.Println("HTTP factory created successfully")
  38. log.Printf("queryRequest:\n%s", "queryRequest")
  39. // 发送POST请求到 /api/query/csv 获取CSV格式数据
  40. httpClient := httpFactory.CreateClient()
  41. resp, err := httpClient.PostWithAuth(
  42. "http://localhost:9090/api/data/agent/to/doris",
  43. queryRequest,
  44. "123", // Bearer Token
  45. nil,
  46. )
  47. if err != nil {
  48. errMsg := fmt.Sprintf("请求失败: %v", err)
  49. t.Error(errMsg)
  50. return nil
  51. }
  52. log.Printf("查询结果:\n%s", resp)
  53. //t.Logf("查询成功,响应数据长度: %d", resp)
  54. return nil
  55. }
  56. // getSQLWithPagination 生成带分页的SQL语句(参数模式)
  57. // 返回SQL语句和参数映射
  58. func getSQLWithPagination(startRow, endRow int) (string, []interface{}) {
  59. sql := `SELECT
  60. CLOTHING_ID,
  61. CLOTHING_YEAR,
  62. CLOTHING_NAME,
  63. STYLECOLOR_ID,
  64. STYLE_ID,
  65. COLOR_ID,
  66. SIZE_ID,
  67. CREATE_DATE,
  68. STYLE_GROUP,
  69. J_PRICE,
  70. X_PRICE,
  71. V_PRICE,
  72. CLERK_ROYALTYRATE,
  73. CLERK_ROYALTYPRICE,
  74. BRAND_CODE,
  75. STYLEVER_ID,
  76. J_COST,
  77. CLOTHING_IMG,
  78. STYLE_UNIT_CODE,
  79. STYLE_SEX_CODE,
  80. STYLE_KIND_CODE,
  81. STYLE_CLASS_CODE,
  82. STYLE_SUBCLASS_CODE,
  83. STYLE_DESIGNER_CODE,
  84. STYLE_PLATER_CODE,
  85. STYLE_STYLES_CODE,
  86. STYLE_LOCATE_CODE,
  87. STYLE_SALETYPE_CODE,
  88. STYLE_COLORSYSTEM_CODE,
  89. STYLE_THEME_CODE,
  90. STYLE_INDENTTYPE_CODE,
  91. STYLE_PRICEBAND_CODE,
  92. STYLE_MONTH_CODE,
  93. STYLE_COMPOSITION_CODE,
  94. STYLE_SUPPLIER_CODE,
  95. STYLE_SPARE1_CODE,
  96. STYLE_SPARE2_CODE,
  97. STYLE_SPARE4_CODE,
  98. STYLE_SPARE5_CODE,
  99. CATEGORY_CODE,
  100. BRAND_ID,
  101. STYCOLVER_ID,
  102. STYLE_SAME,
  103. CLOTHING_BARCODE,
  104. CLOTHING_HELPID,
  105. CLOTHING_GBCODE,
  106. CLOTHING_RFID,
  107. STYLE_SUBJECT_ID,
  108. SIZEGRP_ID,
  109. STYLE_HELPID,
  110. CLOTHING_GBCODE1,
  111. COLOR_NAME,
  112. STYLEVER_NAME,
  113. SIZE_NAME,
  114. STYLE_UNIT,
  115. STYLE_SEX,
  116. STYLE_KIND,
  117. STYLE_CLASS,
  118. STYLE_SUBCLASS,
  119. STYLE_DESIGNER,
  120. STYLE_PLATER,
  121. STYLE_BAND,
  122. STYLE_STYLES,
  123. STYLE_LOCATE,
  124. STYLE_SALETYPE,
  125. STYLE_COLORSYSTEM,
  126. STYLE_THEME,
  127. STYLE_INDENTTYPE,
  128. STYLE_PRICEBAND,
  129. STYLE_MONTH,
  130. STYLE_COMPOSITION,
  131. STYLE_SUPPLIER,
  132. STYLE_SPARE1,
  133. STYLE_SPARE2,
  134. STYLE_SPARE3,
  135. STYLE_SPARE4,
  136. STYLE_SPARE5,
  137. CATEGORY_NAME,
  138. BRAND_NAME,
  139. STYLE_YEAR_NAME,
  140. STYLE_SEARCH_KEY,
  141. STYLE_SUBJECT_NAME,
  142. CLOTHING_REMARK,
  143. STYLE_SPARE3_CODE,
  144. COST,
  145. BRAND_GROUPCODE,
  146. CLASS_GROUPCODE,
  147. MONTH_GROUPCODE,
  148. RETURNSUBJECT_ID,
  149. PRODUCT_SORT,
  150. CLOTHING_PARTITION
  151. FROM (
  152. SELECT a.*, ROWNUM as rn
  153. FROM (
  154. SELECT *
  155. FROM X6_STOCK_DEV.A3_CLOTHING
  156. ORDER BY CLOTHING_ID
  157. ) a
  158. WHERE ROWNUM <= :1
  159. )
  160. WHERE rn > :2`
  161. // 创建参数映射
  162. params := []interface{}{
  163. endRow,
  164. startRow, // WHERE rn > :start_row 所以是startRow-1
  165. }
  166. return sql, params
  167. }