common.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package util
  2. import (
  3. "fmt"
  4. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  5. "io/ioutil"
  6. "os"
  7. qu "qfw/util"
  8. )
  9. type Task struct {
  10. UserId string
  11. UserName string
  12. GiveNum int
  13. }
  14. type Data struct {
  15. ID string
  16. Info map[string]interface{}
  17. }
  18. //oss
  19. var (
  20. ossEndpoint = "oss-cn-beijing-internal.aliyuncs.com" //正式环境用:oss-cn-beijing-internal.aliyuncs.com 测试:oss-cn-beijing.aliyuncs.com
  21. ossAccessKeyId = "LTAI4G5x9aoZx8dDamQ7vfZi"
  22. ossAccessKeySecret = "Bk98FsbPYXcJe72n1bG3Ssf73acuNh"
  23. ossBucketName = "topjy"
  24. ossclient *oss.Client
  25. )
  26. func InitOss() {
  27. client, err := oss.New(ossEndpoint, ossAccessKeyId, ossAccessKeySecret)
  28. if err != nil {
  29. fmt.Println("Error:", err)
  30. os.Exit(-1)
  31. }
  32. ossclient = client
  33. }
  34. func OssGetObject(objectName string) string {
  35. defer qu.Catch()
  36. // 获取存储空间。
  37. bucket, err := ossclient.Bucket(ossBucketName)
  38. if err != nil {
  39. fmt.Println("Error:", err)
  40. return ""
  41. }
  42. // 下载文件到流。
  43. body, err := bucket.GetObject(objectName)
  44. if err != nil {
  45. fmt.Println("Error:", err)
  46. return ""
  47. }
  48. defer body.Close()
  49. data, err := ioutil.ReadAll(body)
  50. if err != nil {
  51. fmt.Println("Error:", err)
  52. return ""
  53. }
  54. return string(data)
  55. }
  56. func GetFileText(tmp map[string]interface{}) (filetext string) {
  57. fn_url := map[string]string{}
  58. if projectinfo, ok := tmp["projectinfo"].(map[string]interface{}); ok && projectinfo != nil {
  59. if attachments, ok := projectinfo["attachments"].(map[string]interface{}); ok && attachments != nil {
  60. for _, info := range attachments {
  61. if infoMap, ok := info.(map[string]interface{}); ok && infoMap != nil {
  62. filename := qu.ObjToString(infoMap["filename"])
  63. org_url := qu.ObjToString(infoMap["org_url"])
  64. fn_url[filename] = org_url
  65. }
  66. }
  67. }
  68. }
  69. if len(fn_url) > 0 {
  70. index := 1
  71. if attchMap, ok := tmp["attach_text"].(map[string]interface{}); attchMap != nil && ok {
  72. for fn, url := range fn_url {
  73. href := fmt.Sprint(index) + ".<a href=" + url + " target='_blank'>" + fn + "</a>\n<br/>"
  74. onetext := ""
  75. for _, tmpData1 := range attchMap {
  76. if tmpData2, ok := tmpData1.(map[string]interface{}); tmpData2 != nil && ok {
  77. for _, result := range tmpData2 {
  78. if resultMap, ok := result.(map[string]interface{}); resultMap != nil && ok {
  79. file_name := qu.ObjToString(resultMap["file_name"])
  80. if fn == file_name { //找到对应的附件
  81. if attach_url := qu.ObjToString(resultMap["attach_url"]); attach_url != "" {
  82. onetext = OssGetObject(attach_url) + "\n<br/>" //oss读数据
  83. goto L
  84. }
  85. }
  86. }
  87. }
  88. }
  89. }
  90. L:
  91. filetext += href + onetext
  92. index++
  93. }
  94. }
  95. }
  96. /**
  97. if attchMap, ok := tmp["attach_text"].(map[string]interface{}); attchMap != nil && ok {
  98. for _, tmpData1 := range attchMap {
  99. if tmpData2, ok := tmpData1.(map[string]interface{}); tmpData2 != nil && ok {
  100. for _, result := range tmpData2 {
  101. if resultMap, ok := result.(map[string]interface{}); resultMap != nil && ok {
  102. if attach_url := util.ObjToString(resultMap["attach_url"]); attach_url != "" {
  103. bs := OssGetObject(attach_url) //oss读数据
  104. if utf8.RuneCountInString(filetext+bs) < 50000 {
  105. filetext += bs + "\n"
  106. } else {
  107. break
  108. }
  109. }
  110. }
  111. }
  112. }
  113. }
  114. }
  115. */
  116. return
  117. }