|
@@ -1,6 +1,7 @@
|
|
|
package services
|
|
|
|
|
|
import (
|
|
|
+ "context"
|
|
|
"encoding/json"
|
|
|
"errors"
|
|
|
"fmt"
|
|
@@ -13,7 +14,6 @@ import (
|
|
|
"rdluck_tools/http"
|
|
|
"strconv"
|
|
|
"time"
|
|
|
- "context"
|
|
|
)
|
|
|
|
|
|
//获取隆众信息表中指标
|
|
@@ -223,7 +223,7 @@ func GetLzProductDetail(cont context.Context) (err error) {
|
|
|
utils.LzFileLog.Info("start GetLzProductDetail")
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
- utils.LzFileLog.Info("Err:"+err.Error())
|
|
|
+ utils.LzFileLog.Info("Err:" + err.Error())
|
|
|
go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"GetLzProductDetail:失败提醒", "ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
}
|
|
|
}()
|
|
@@ -250,7 +250,7 @@ func GetLzProductDetail(cont context.Context) (err error) {
|
|
|
}
|
|
|
|
|
|
fmt.Println("page:", i, totalPage)
|
|
|
- utils.LzFileLog.Info("Page:%s",strconv.Itoa(i))
|
|
|
+ utils.LzFileLog.Info("Page:%s", strconv.Itoa(i))
|
|
|
timestamp := fmt.Sprintf("%d", time.Now().Unix())
|
|
|
token := utils.MD5(username + timestamp + utils.MD5(password))
|
|
|
|
|
@@ -268,14 +268,14 @@ func GetLzProductDetail(cont context.Context) (err error) {
|
|
|
body, err := http.Post(postUrl, param.Encode())
|
|
|
|
|
|
if err != nil {
|
|
|
- utils.LzFileLog.Info("Post Err:%s",err.Error())
|
|
|
+ utils.LzFileLog.Info("Post Err:%s", err.Error())
|
|
|
return err
|
|
|
}
|
|
|
- utils.LzFileLog.Info("GetLzProductDetail Result: %s",string(body))
|
|
|
+ utils.LzFileLog.Info("GetLzProductDetail Result: %s", string(body))
|
|
|
resp := new(models.LzProductInfoDetailResp)
|
|
|
err = json.Unmarshal(body, &resp)
|
|
|
if err != nil {
|
|
|
- utils.LzFileLog.Info("Unmarshal Err:%s",err.Error())
|
|
|
+ utils.LzFileLog.Info("Unmarshal Err:%s", err.Error())
|
|
|
return err
|
|
|
}
|
|
|
if resp.Code != "1" {
|
|
@@ -942,3 +942,232 @@ func LzPriceExportExcel() {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+//隆众-调研指标
|
|
|
+func GetLzSurveyProduct(cont context.Context) (err error) {
|
|
|
+ var msg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Err:" + err.Error())
|
|
|
+ go utils.SendEmail("获取隆众调研指标失败"+time.Now().Format("2006-01-02 15:04:05"), ";Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ if msg != "" {
|
|
|
+ fmt.Println("msg:", msg)
|
|
|
+ go utils.SendEmail("获取隆众调研指标失败"+time.Now().Format("2006-01-02 15:04:05"), ";msg:"+msg, utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ username := "hzmd"
|
|
|
+ password := "HZMD2020"
|
|
|
+
|
|
|
+ pageIndex := 0
|
|
|
+ for {
|
|
|
+ pageIndex++
|
|
|
+ getUrl := `https://openapi.oilchem.net/research/getProduct?passWord=` + password + `&userName=` + username + `&pageSize=100&pageNum=` + strconv.Itoa(pageIndex)
|
|
|
+ body, err := http.Get(getUrl)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取隆众调研指标失败:Err" + err.Error()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ utils.FileLog.Info("%s", string(body))
|
|
|
+ infoItem := new(models.SurveyProduct)
|
|
|
+ err = json.Unmarshal(body, &infoItem)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取隆众调研指标失败:Unmarshal Err " + err.Error() + " ;body:" + string(body)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if infoItem.Status != "200" {
|
|
|
+ msg = "获取隆众调研指标失败:body " + string(body)
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ for _, n := range infoItem.Response.List {
|
|
|
+ count, err := models.GetLongzhongSurveyProductCount(n.QuotaSampleID)
|
|
|
+ if err != nil {
|
|
|
+ msg = "判断隆众调研指标是否存在失败:err " + err.Error()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ item := new(models.LongzhongSurveyProduct)
|
|
|
+ item.ProjectQuotaId = n.ProjectQuotaID
|
|
|
+ item.BreedId = n.BreedID
|
|
|
+ item.BreedName = n.BreedName
|
|
|
+ item.QuotaId = n.QuotaID
|
|
|
+ item.QuotaName = n.QuotaName
|
|
|
+ item.UnitId = n.UnitID
|
|
|
+ item.UnitName = n.UnitName
|
|
|
+ item.SampleType = n.SampleType
|
|
|
+ item.SampleId = n.SampleID
|
|
|
+ item.SampleName = n.SampleName
|
|
|
+ item.DeviceId = n.DeviceID
|
|
|
+ item.Device = n.Device
|
|
|
+ item.ProductCraftId = n.ProductCraftID
|
|
|
+ item.ProductCraft = n.ProductCraft
|
|
|
+ item.ProductLine = n.ProductLine
|
|
|
+ item.InputMode = n.InputMode
|
|
|
+ item.Frequency = n.Frequency
|
|
|
+ item.CustomId = n.CustomID
|
|
|
+ item.CustomType = n.CustomType
|
|
|
+ item.Custom = n.Custom
|
|
|
+ item.QuotaSampleId = n.QuotaSampleID
|
|
|
+ if count > 0 {
|
|
|
+ fmt.Println("存在", n.QuotaName, n.QuotaSampleID)
|
|
|
+ //修改
|
|
|
+ err = models.ModifLongzhongSurveyProduct(item)
|
|
|
+ if err != nil {
|
|
|
+ msg = "修改隆众价格指标失败:err " + err.Error()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ err = models.AddLongzhongSurveyProduct(item)
|
|
|
+ if err != nil {
|
|
|
+ msg = "新增隆众价格指标失败:err " + err.Error()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pageIndex = pageIndex + 1
|
|
|
+ totalPage := utils.PageCount(int(infoItem.Response.Total), 100)
|
|
|
+ if pageIndex > totalPage {
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//隆众-调研指标数据
|
|
|
+func GetLzSurveyProductData(cont context.Context) (err error) {
|
|
|
+ var msg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Err:" + err.Error())
|
|
|
+ go utils.SendEmail("获取隆众调研指标数据失败"+time.Now().Format("2006-01-02 15:04:05"), ";Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+ if msg != "" {
|
|
|
+ fmt.Println("msg:", msg)
|
|
|
+ go utils.SendEmail("获取隆众调研指标数据失败"+time.Now().Format("2006-01-02 15:04:05"), ";msg:"+msg, utils.EmailSendToUsers)
|
|
|
+ utils.FileLog.Info("%s", msg)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ priceInfoList, err := models.GetLongzhongSurveyList()
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取隆众调研指标数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ username := "hzmd"
|
|
|
+ password := "HZMD2020"
|
|
|
+
|
|
|
+ paramMap := make(map[string]interface{})
|
|
|
+ paramMap["userName"] = username
|
|
|
+ paramMap["passWord"] = password
|
|
|
+ paramMap["pageSize"] = 100
|
|
|
+
|
|
|
+ startDate := time.Now().AddDate(-4, 0, 0).UnixNano() / 1e6
|
|
|
+ endDate := time.Now().UnixNano() / 1e6
|
|
|
+
|
|
|
+ for k, v := range priceInfoList {
|
|
|
+ pageIndex := 1
|
|
|
+ if v.EndDate != "" {
|
|
|
+ endDateTime, _ := time.Parse(utils.FormatDate, v.EndDate)
|
|
|
+ startDate = endDateTime.UnixNano() / 1e6
|
|
|
+ }
|
|
|
+ for {
|
|
|
+ paramMap["pageNum"] = pageIndex
|
|
|
+ paramMap["projectQuotaId"] = v.ProjectQuotaId
|
|
|
+ paramMap["quotaSampleId"] = v.QuotaSampleId
|
|
|
+ paramMap["researchStartDateTime"] = startDate
|
|
|
+ paramMap["researchEndDateTime"] = endDate
|
|
|
+
|
|
|
+ fmt.Println(k, v)
|
|
|
+ getUrl := `https://openapi.oilchem.net/research/productPage`
|
|
|
+ postData, err := json.Marshal(paramMap)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("postData Err:", err.Error())
|
|
|
+ }
|
|
|
+ body, err := http.Post(getUrl, string(postData), "application/json")
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取隆众调研指标数据失败:Err" + err.Error()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ utils.FileLog.Info(string(body))
|
|
|
+ dataList := new(models.LzSurveyData)
|
|
|
+ err = json.Unmarshal(body, &dataList)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取隆众调研指标数据失败:Unmarshal Err " + err.Error() + " ;body:" + string(body)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if dataList.Status != "200" {
|
|
|
+ msg = "获取隆众调研指标数据失败:body " + string(body)
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ for _, n := range dataList.Response.List {
|
|
|
+ //dateTime := time.Unix(n.TaskActualFinishTime/1000, 0)
|
|
|
+ //dateTimeStr := dateTime.Format(utils.FormatDate)
|
|
|
+
|
|
|
+ shouldDateTime := time.Unix(n.TaskShouldFinishTime/1000, 0)
|
|
|
+ shouldDateTimeStr := shouldDateTime.Format(utils.FormatDate)
|
|
|
+
|
|
|
+ //fmt.Println("QuotaSampleID:", n.QuotaSampleID, "taskActualFinishTime:", dateTimeStr, "taskShouldFinishTime:", shouldDateTimeStr)
|
|
|
+ count, err := models.GetLzSurveyDataCount(v.SurveyProductId, int(v.QuotaSampleId), shouldDateTimeStr)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取隆众调研指标数据失败:err " + err.Error()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if count <= 0 {
|
|
|
+ item := new(models.LongzhongSurveyData)
|
|
|
+ item.SurveyProductId = v.SurveyProductId
|
|
|
+ item.ProjectQuotaId = n.ProjectQuotaID
|
|
|
+ item.BreedId = n.BreedID
|
|
|
+ item.BreedName = n.BreedName
|
|
|
+ item.QuotaId = n.QuotaID
|
|
|
+ item.QuotaName = n.QuotaName
|
|
|
+ item.UnitId = n.UnitID
|
|
|
+ item.UnitName = n.UnitName
|
|
|
+ item.SampleType = n.SampleType
|
|
|
+ item.SampleId = n.SampleID
|
|
|
+ item.SampleName = n.SampleName
|
|
|
+ item.DeviceId = n.DeviceID
|
|
|
+ item.Device = n.Device
|
|
|
+ item.ProductCraftId = n.ProductCraftID
|
|
|
+ item.ProductCraft = n.ProductCraft
|
|
|
+ item.ProductLine = n.ProductLine
|
|
|
+ item.InputMode = n.InputMode
|
|
|
+ item.Frequency = n.Frequency
|
|
|
+ item.InputValue = n.InputValue
|
|
|
+ item.TaskShouldFinishTime = n.TaskShouldFinishTime
|
|
|
+ item.CustomId = n.CustomID
|
|
|
+ item.CustomType = n.CustomType
|
|
|
+ item.Custom = n.Custom
|
|
|
+ item.QuotaSampleId = n.QuotaSampleID
|
|
|
+ item.TaskActualFinishTime = n.TaskActualFinishTime
|
|
|
+ //item.AreaName = n.AreaName.(string)
|
|
|
+ //item.ProvinceName = n.ProvinceName.(string)
|
|
|
+ item.ResearchStartData = n.ResearchStartDate
|
|
|
+ item.ResearchStopData = n.ResearchStopDate
|
|
|
+ item.DataTime = shouldDateTimeStr
|
|
|
+ err = models.AddLongzhongSurveyData(item)
|
|
|
+ if err != nil {
|
|
|
+ msg = "新增调研指标数据失败:err " + err.Error()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pageIndex = pageIndex + 1
|
|
|
+ totalPage := utils.PageCount(int(dataList.Response.Total), 100)
|
|
|
+ if pageIndex > totalPage {
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ item, err := models.GetLzSurveyMaxAndMinInfo(v.SurveyProductId, int(v.QuotaSampleId))
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if item != nil && item.MaxDate != "" && item.MinDate != "" {
|
|
|
+ err = models.ModifyLzSurveyMaxAndMinInfo(item, v.SurveyProductId)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|