12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package services
- import (
- "eta/eta_mini_crm_ht/models"
- "eta/eta_mini_crm_ht/utils"
- "eta/eta_mini_crm_ht/utils/oss"
- "fmt"
- "os"
- "sync"
- "time"
- )
- func RepairImageData() {
- sql := ` and (head_origin_img_url ='' or head_origin_img_url is null) `
- count, err := models.GetAnalystCount(sql)
- if err != nil {
- fmt.Println("修复研究员头像数据失败")
- return
- }
- list, err := models.GetAnalystList(sql, 0, count)
- if err != nil {
- fmt.Println("修复研究员头像数据失败")
- return
- }
- ossClient := oss.NewOssClient()
- if ossClient == nil {
- fmt.Println("初始化OSS服务失败")
- return
- }
- var wg sync.WaitGroup
- wg.Add(len(list))
- for _, v := range list {
- go func(analyst *models.CrmFinancialAnalyst) {
- defer wg.Done()
- if analyst.HeadImgUrl == "" {
- return
- }
- analyst.HeadOriginImgUrl = analyst.HeadImgUrl
- dateDir := time.Now().Format(time.DateOnly)
- downloadDir := utils.STATIC_DIR + "ht/analyst/repair/" + dateDir
- if info, existErr := os.Stat(downloadDir); existErr != nil || !info.IsDir() {
- err = os.MkdirAll(downloadDir, utils.DIR_MOD)
- if err != nil {
- fmt.Println("存储目录创建失败")
- return
- }
- }
- fileName := analyst.Name + "-头像"
- savePath := downloadDir + "/" + fileName
- savePath, err = ossClient.GetFile(analyst.HeadImgUrl, savePath)
- if err != nil {
- fmt.Printf("下载图片失败: %s,src:%s\n", err, analyst.HeadImgUrl)
- return
- }
- var thumbnailPath string
- thumbnailPath, err = utils.ImageResize(savePath, 400)
- if err != nil {
- fmt.Printf("图片压缩失败: %s,src:%s\n", err, analyst.HeadImgUrl)
- }
- if thumbnailPath != "" {
- ossUploadDir := utils.RESOURCE_DIR + "analyst/"
- saveOssPath := ossUploadDir + time.Now().Format("200601/20060102/")
- imgName := utils.GetRandStringNoSpecialChar(28)
- saveOssPath += imgName
- var url string
- url, err = ossClient.UploadFile("", thumbnailPath, saveOssPath)
- if err != nil {
- fmt.Printf("图片上传失败: %s,src:%s\n", err, analyst.HeadImgUrl)
- return
- }
- analyst.HeadImgUrl = url
- err = analyst.Update([]string{"head_img_url", "head_origin_img_url"})
- if err != nil {
- return
- }
- }
- defer func() {
- _ = os.Remove(savePath)
- _ = os.Remove(thumbnailPath)
- }()
- }(v)
- }
- wg.Wait()
- fmt.Println("修复研究员头像数据完成")
- }
|