file.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package common
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/go-rod/rod/lib/utils"
  6. "github.com/tidwall/gjson"
  7. "os"
  8. "path/filepath"
  9. "strings"
  10. )
  11. // GetCollectPDFPath 生成一个采集用的pdf路径
  12. func GetCollectPDFPath(district, taxNo, taxTape string) (string, error) {
  13. var err error
  14. var path string
  15. path = "./data/collection/" + district + "/"
  16. if !PathExists(path) {
  17. err = os.MkdirAll(path, os.ModePerm)
  18. }
  19. path = path + taxNo + "_" + taxTape + ".pdf"
  20. return path, err
  21. }
  22. // name pdf文件名
  23. // path 文件路径
  24. func PostBankPdf(name, suffix, path string) string {
  25. var params = map[string]string{
  26. "path": "/mnt/bank/banks/",
  27. "name": name + "." + suffix,
  28. }
  29. str, _ := PostFile("https://public.listensoft.net/api/uploadFile", map[string]string{
  30. "upFile": path,
  31. }, params)
  32. return gjson.GetBytes(str, "data.url").String()
  33. }
  34. func GetBankPDFPath(bank, taxNo, taxTape string) (string, error) {
  35. var err error
  36. var path string
  37. path = "./data/bank/" + bank + "/" + taxNo + "/"
  38. if !PathExists(path) {
  39. err = os.MkdirAll(path, os.ModePerm)
  40. }
  41. path = path + "_" + taxTape + ".pdf"
  42. return path, err
  43. }
  44. // PDFtoStrArrayPython pdf转二维数组 python服务
  45. func PDFtoStrArrayPython(path string) ([][]string, error) {
  46. var code [][]string
  47. files := map[string]string{
  48. "file": path,
  49. }
  50. var bys []byte
  51. var err error
  52. pdfServers := []string{
  53. `http://47.104.75.113:6000/pdfToText`,
  54. `http://47.104.75.113:6000/pdfToText`,
  55. }
  56. for _, uri := range pdfServers {
  57. bys, err = PostFile(uri, files, map[string]string{})
  58. if err != nil {
  59. utils.Sleep(10)
  60. continue
  61. }
  62. break
  63. }
  64. if err != nil {
  65. return code, err
  66. }
  67. json.Unmarshal(bys, &code)
  68. return code, nil
  69. }
  70. // UploadPdfToStrArray java PDF转数组
  71. func UploadPdfToStrArray(path string) ([]string, error) {
  72. f := 0
  73. begin:
  74. url := "http://47.104.75.113:8080/api/uploadPdfToText" //灵信服务器
  75. files := map[string]string{
  76. "file": path,
  77. }
  78. resp, err := PostFile(url, files, map[string]string{})
  79. arr := []string{}
  80. if err != nil {
  81. if f < 3 {
  82. f++
  83. utils.Sleep(10)
  84. goto begin
  85. }
  86. return arr, err
  87. }
  88. type resut struct {
  89. Text string `json:"text"`
  90. }
  91. var Result resut
  92. if err := json.Unmarshal(resp, &Result); err != nil {
  93. return arr, err
  94. }
  95. arr = strings.Split(Result.Text, "\n")
  96. return arr, nil
  97. }
  98. // 生成验证码图片的路径
  99. func GenerateFilePath(name, suffix string) string {
  100. os.MkdirAll("captcha", os.ModePerm)
  101. n := fmt.Sprintf("%s_%s.%s", name, GetTimestamp(13), suffix)
  102. return filepath.Join("captcha", n)
  103. }
  104. func GetCollectZipPath(district, taxNo, taxTape string) (string, error) {
  105. var err error
  106. var path string
  107. path = "./data/collection/" + district + "/"
  108. if !PathExists(path) {
  109. err = os.MkdirAll(path, os.ModePerm)
  110. }
  111. path = path + taxNo + "_" + taxTape + ".zip"
  112. return path, err
  113. }