| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- package test
-
- import (
- "fmt"
- "log"
- "testing"
-
- "git.x2erp.com/qdy/go-base/types"
- "git.x2erp.com/qdy/go-db/factory/http"
- )
-
- // 函数名改为 TestAgentToDorisDirect 以符合 Go 测试约定
- func TestAgentToDorisDirect(t *testing.T) {
- err := agentToDorisDirect(t)
- if err != nil {
- t.Errorf("测试失败: %v", err)
- }
- }
-
- func agentToDorisDirect(t *testing.T) error {
- startRow := 0
- endRow := 5000
- // 生成查询SQL(使用参数模式)
- querySQL, queryParams := getSQLWithPagination(startRow, endRow)
-
- // 准备查询请求
- queryRequest := types.QueryRequest{
- SQL: querySQL,
- PositionalParams: queryParams,
- WriterHeader: false,
- AgentUrl: "http://localhost:8080/api/query/csv/param",
- AgentToken: "123",
- DorisDatabase: "X6_STOCK_DEV",
- DorisTable: "A3_CLOTHING",
- }
-
- // 1. 获取HTTP工厂实例
- httpFactory, err := http.GetHTTPFactory()
- if err != nil {
- log.Printf("Failed to get HTTP factory: %v", err)
- return fmt.Errorf("Failed to get HTTP factory: %v", err)
- }
- fmt.Println("HTTP factory created successfully")
-
- log.Printf("queryRequest:\n%s", "queryRequest")
-
- // 发送POST请求到 /api/query/csv 获取CSV格式数据
- httpClient := httpFactory.CreateClient()
- resp, err := httpClient.PostWithAuth(
- "http://localhost:9090/api/data/agent/to/doris",
- queryRequest,
- "123", // Bearer Token
- nil,
- )
-
- if err != nil {
- errMsg := fmt.Sprintf("请求失败: %v", err)
- t.Error(errMsg)
- return nil
- }
- log.Printf("查询结果:\n%s", resp)
-
- //t.Logf("查询成功,响应数据长度: %d", resp)
-
- return nil
- }
-
- // getSQLWithPagination 生成带分页的SQL语句(参数模式)
- // 返回SQL语句和参数映射
- func getSQLWithPagination(startRow, endRow int) (string, []interface{}) {
- sql := `SELECT
- CLOTHING_ID,
- CLOTHING_YEAR,
- CLOTHING_NAME,
- STYLECOLOR_ID,
- STYLE_ID,
- COLOR_ID,
- SIZE_ID,
- CREATE_DATE,
- STYLE_GROUP,
- J_PRICE,
- X_PRICE,
- V_PRICE,
- CLERK_ROYALTYRATE,
- CLERK_ROYALTYPRICE,
- BRAND_CODE,
- STYLEVER_ID,
- J_COST,
- CLOTHING_IMG,
- STYLE_UNIT_CODE,
- STYLE_SEX_CODE,
- STYLE_KIND_CODE,
- STYLE_CLASS_CODE,
- STYLE_SUBCLASS_CODE,
- STYLE_DESIGNER_CODE,
- STYLE_PLATER_CODE,
- STYLE_STYLES_CODE,
- STYLE_LOCATE_CODE,
- STYLE_SALETYPE_CODE,
- STYLE_COLORSYSTEM_CODE,
- STYLE_THEME_CODE,
- STYLE_INDENTTYPE_CODE,
- STYLE_PRICEBAND_CODE,
- STYLE_MONTH_CODE,
- STYLE_COMPOSITION_CODE,
- STYLE_SUPPLIER_CODE,
- STYLE_SPARE1_CODE,
- STYLE_SPARE2_CODE,
- STYLE_SPARE4_CODE,
- STYLE_SPARE5_CODE,
- CATEGORY_CODE,
- BRAND_ID,
- STYCOLVER_ID,
- STYLE_SAME,
- CLOTHING_BARCODE,
- CLOTHING_HELPID,
- CLOTHING_GBCODE,
- CLOTHING_RFID,
- STYLE_SUBJECT_ID,
- SIZEGRP_ID,
- STYLE_HELPID,
- CLOTHING_GBCODE1,
- COLOR_NAME,
- STYLEVER_NAME,
- SIZE_NAME,
- STYLE_UNIT,
- STYLE_SEX,
- STYLE_KIND,
- STYLE_CLASS,
- STYLE_SUBCLASS,
- STYLE_DESIGNER,
- STYLE_PLATER,
- STYLE_BAND,
- STYLE_STYLES,
- STYLE_LOCATE,
- STYLE_SALETYPE,
- STYLE_COLORSYSTEM,
- STYLE_THEME,
- STYLE_INDENTTYPE,
- STYLE_PRICEBAND,
- STYLE_MONTH,
- STYLE_COMPOSITION,
- STYLE_SUPPLIER,
- STYLE_SPARE1,
- STYLE_SPARE2,
- STYLE_SPARE3,
- STYLE_SPARE4,
- STYLE_SPARE5,
- CATEGORY_NAME,
- BRAND_NAME,
- STYLE_YEAR_NAME,
- STYLE_SEARCH_KEY,
- STYLE_SUBJECT_NAME,
- CLOTHING_REMARK,
- STYLE_SPARE3_CODE,
- COST,
- BRAND_GROUPCODE,
- CLASS_GROUPCODE,
- MONTH_GROUPCODE,
- RETURNSUBJECT_ID,
- PRODUCT_SORT,
- CLOTHING_PARTITION
- FROM (
- SELECT a.*, ROWNUM as rn
- FROM (
- SELECT *
- FROM X6_STOCK_DEV.A3_CLOTHING
-
- ORDER BY CLOTHING_ID
- ) a
- WHERE ROWNUM <= :1
- )
- WHERE rn > :2`
-
- // 创建参数映射
- params := []interface{}{
- endRow,
- startRow, // WHERE rn > :start_row 所以是startRow-1
- }
-
- return sql, params
- }
|