package l_export_async import ( "context" "fmt" "os" "strings" "testing" "time" "github.com/redis/go-redis/v9" ) func Test_Merge(t *testing.T) { path := "/tmp/f63b2047-dd7b-11f0-b1a8-00155d5ef0f92960656377/csv/" outputDir := "/tmp/f63b2047-dd7b-11f0-b1a8-00155d5ef0f92960656377/xlsx/aaa.xlsx" csvFiles, err := listFiles(path) if err != nil { panic(err) } m := NewMerge( Reader{Files: csvFiles, Index: len(csvFiles) - 1}, Writer{File: outputDir, Limit: 30000, BufferSize: 3000}, NewLogPrint(nil), ) err = m.Merge() t.Log(err) } func Test_Tsk(t *testing.T) { taskId := "c1f316c5-defa-11f0-bcc5-00155d5ef0f9" t.Log(NewTask(NewRedisTaskStore(dat())).GetTaskInfo(context.Background(), taskId)) } func Test_Upload(t *testing.T) { task_id := "c0abe2b3-dede-11f0-9178-00155d5ef0f92369485728" filename := "供应商结算交易流水20251222100502" file := "/tmp/" + task_id + "/zip/" + filename + ".zip" //file := "/tmp/a03f82a8-deda-11f0-9c0b-00155d5ef0f9796292421/zip/供应商结算交易流水20251222100502.zip" host := "http://192.168.6.194:8004" sys := "crmApi" business := "download" fieldFormName := "file" resp, err := Upload(host, file, sys, business, fieldFormName) if err != nil { t.Log(err) } url := GeneratePreviewPrivateUrl(host, "", resp.Url, "", strings.TrimSuffix("供应商结算交易流水20251222100502", ".zip"), time.Now().Unix()+300) t.Log(url, err) } func listFiles(dirPath string) ([]string, error) { entries, err := os.ReadDir(dirPath) if err != nil { return nil, fmt.Errorf("failed to read directory: %w", err) } var files []string for _, entry := range entries { if !entry.IsDir() { // 只添加文件(排除子目录) files = append(files, dirPath+entry.Name()) } } return files, nil } var ( Name = "test" Version string id, _ = os.Hostname() ) func dat() *redis.Client { return buildRdb() } func buildRdb() *redis.Client { rdb := redis.NewClient(&redis.Options{ Addr: Redis.Addr, Password: Redis.Password, ReadTimeout: Redis.ReadTimeout.AsDuration(), WriteTimeout: Redis.WriteTimeout.AsDuration(), PoolSize: int(Redis.PoolSize), MinIdleConns: int(Redis.MinIdleConns), ConnMaxIdleTime: Redis.ConnMaxIdleTime.AsDuration(), DB: int(GetRedis().GetDb()), }) // 此时并没有发起连接,在使用时才会 return rdb }