package common import ( "encoding/json" "fmt" "git.listensoft.net/tool/jspkit/logger" "github.com/go-rod/rod/lib/utils" "github.com/tidwall/gjson" "os" "path/filepath" "strings" "time" ) // GetCollectPDFPath 生成一个采集用的pdf路径 func GetCollectPDFPath(district, taxNo, taxTape string) (string, error) { var err error var path string path = "./data/collection/" + district + "/" if !PathExists(path) { err = os.MkdirAll(path, os.ModePerm) } path = path + taxNo + "_" + taxTape + ".pdf" return path, err } // name pdf文件名 // path 文件路径 func PostBankPdf(name, suffix, path string) string { var params = map[string]string{ "path": "/mnt/bank/banks/", "name": name + "." + suffix, } str, _ := PostFile("https://public.listensoft.net/api/uploadFile", map[string]string{ "upFile": path, }, params) return gjson.GetBytes(str, "data.url").String() } func GetBankPDFPath(bank, taxNo, taxTape string) (string, error) { var err error var path string path = "./data/bank/" + bank + "/" + taxNo + "/" if !PathExists(path) { err = os.MkdirAll(path, os.ModePerm) } path = path + "_" + taxTape + ".pdf" return path, err } // PDFtoStrArrayPython pdf转二维数组 python服务 func PDFtoStrArrayPython(path string) ([][]string, error) { var code [][]string files := map[string]string{ "file": path, } var bys []byte var err error pdfServers := []string{ `http://47.104.75.113:6000/pdfToText`, `http://47.104.75.113:6000/pdfToText`, } for _, uri := range pdfServers { bys, err = PostFile(uri, files, map[string]string{}) if err != nil { utils.Sleep(10) continue } break } if err != nil { return code, err } json.Unmarshal(bys, &code) return code, nil } // UploadPdfToStrArray java PDF转数组 func UploadPdfToStrArray(path string) ([]string, error) { f := 0 begin: url := "http://47.104.75.113:8080/api/uploadPdfToText" //灵信服务器 files := map[string]string{ "file": path, } resp, err := PostFile(url, files, map[string]string{}) arr := []string{} if err != nil { if f < 3 { f++ utils.Sleep(10) goto begin } return arr, err } type resut struct { Text string `json:"text"` } var Result resut if err := json.Unmarshal(resp, &Result); err != nil { return arr, err } arr = strings.Split(Result.Text, "\n") return arr, nil } // 生成验证码图片的路径 func GenerateFilePath(name, suffix string) string { os.MkdirAll("captcha", os.ModePerm) n := fmt.Sprintf("%s_%s.%s", name, GetTimestamp(13), suffix) return filepath.Join("captcha", n) } func GetCollectZipPath(district, taxNo, taxTape string) (string, error) { var err error var path string path = "./data/collection/" + district + "/" if !PathExists(path) { err = os.MkdirAll(path, os.ModePerm) } path = path + taxNo + "_" + taxTape + ".zip" return path, err } // 保存时长文件 地区 任务 开始/结束 func SaveDurationToFile(area string, task string, msg string) { path := "./data/duration/" if !PathExists(path) { os.MkdirAll(path, os.ModePerm) } path = path + "file.txt" data := area + "----" + task + "----" + time.Now().Format("2006-01-02 15:04:05") + "---用时---" + msg + "秒" // 创建或打开文件,文件名为test.txt,使用读写权限打开 file, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { logger.Info("打开文件失败") } defer file.Close() // 写入数据 //writeData := []byte(data) _, err = file.WriteString("\r" + data) if err != nil { logger.Info("写入文件失败") } }