|
@@ -4,10 +4,13 @@ import (
|
|
|
"context"
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
+ "github.com/tealeg/xlsx"
|
|
|
"hongze/hongze_cygx/models"
|
|
|
"hongze/hongze_cygx/utils"
|
|
|
"io/ioutil"
|
|
|
"net/http"
|
|
|
+ "os"
|
|
|
+ "path/filepath"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
@@ -289,3 +292,101 @@ func DotongbuShangHai(cont context.Context) (err error) {
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func DotongbuShangHaiSendEmail(cont context.Context) (err error) {
|
|
|
+ var msg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail("发送邮件同步策略平台获取数据信息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToExpert)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ list, err := models.GetCygxShanghaiCompanyLog()
|
|
|
+ if err != nil {
|
|
|
+ msg = "GetCygxShanghaiCompanyLog Err:" + err.Error()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ mapErrMsg := make(map[string]string)
|
|
|
+ for _, v := range list {
|
|
|
+ data := new(GetShangHaiTokenResultApiComPany)
|
|
|
+ err := json.Unmarshal([]byte(v.Result), &data)
|
|
|
+ if err != nil {
|
|
|
+ msg = "GetShangHaiTokenResultApiComPany Err:" + err.Error()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if len(data.Data.FailInfo) > 0 {
|
|
|
+ for _, vCompany := range data.Data.FailInfo {
|
|
|
+ mapErrMsg[vCompany.ErrVal] = vCompany.ErrMsg
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //创建excel
|
|
|
+ dir, err := os.Executable()
|
|
|
+ exPath := filepath.Dir(dir)
|
|
|
+ downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + utils.GetRandDigit(5) + ".xlsx"
|
|
|
+ xlsxFile := xlsx.NewFile()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ style := xlsx.NewStyle()
|
|
|
+ alignment := xlsx.Alignment{
|
|
|
+ Horizontal: "center",
|
|
|
+ Vertical: "center",
|
|
|
+ WrapText: true,
|
|
|
+ }
|
|
|
+ style.Alignment = alignment
|
|
|
+ style.ApplyAlignment = true
|
|
|
+ sheet, err := xlsxFile.AddSheet("上海策略品台同步名单")
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //设置宽度
|
|
|
+ _ = sheet.SetColWidth(0, 1, 30)
|
|
|
+ _ = sheet.SetColWidth(2, 2, 10)
|
|
|
+ _ = sheet.SetColWidth(3, 3, 30)
|
|
|
+
|
|
|
+ //标头
|
|
|
+ rowTitle := sheet.AddRow()
|
|
|
+ cellA := rowTitle.AddCell()
|
|
|
+ cellA.Value = "客户名称"
|
|
|
+ cellB := rowTitle.AddCell()
|
|
|
+ cellB.Value = "社会信用码"
|
|
|
+ cellC := rowTitle.AddCell()
|
|
|
+ cellC.Value = "客户类型"
|
|
|
+ cellD := rowTitle.AddCell()
|
|
|
+ cellD.Value = "错误消息"
|
|
|
+ for _, v := range list {
|
|
|
+ data := new(models.CompanyUnJsonList)
|
|
|
+ err := json.Unmarshal([]byte(v.Body), &data)
|
|
|
+ if err != nil {
|
|
|
+ msg = "CompanyUnJsonList Err:" + err.Error()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if len(data.SyncData) > 0 {
|
|
|
+ for _, item := range data.SyncData {
|
|
|
+ row := sheet.AddRow()
|
|
|
+ cellA := row.AddCell()
|
|
|
+ cellA.Value = item.CompanyName
|
|
|
+ cellB := row.AddCell()
|
|
|
+ cellB.Value = item.CreditCode
|
|
|
+ cellC := row.AddCell()
|
|
|
+ cellC.Value = item.Fe
|
|
|
+ if mapErrMsg[item.CreditCode] != "" {
|
|
|
+ cellD := row.AddCell()
|
|
|
+ cellD.Value = mapErrMsg[item.CreditCode]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ title := time.Now().Format(utils.FormatDate) + "上海策略品台同步名单"
|
|
|
+ content := time.Now().Format(utils.FormatDate) + "上海策略品台同步名单"
|
|
|
+ fileName := downLoadnFilePath
|
|
|
+ err = xlsxFile.Save(downLoadnFilePath)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(list) > 0 {
|
|
|
+ utils.SendEmailByHongze(title, content, "cxzhang@hzinsights.com;tshen@hzinsights.com", fileName, title+".xlsx")
|
|
|
+ }
|
|
|
+ os.Remove(downLoadnFilePath)
|
|
|
+ return
|
|
|
+}
|