Browse Source

新增隆众数据获取

rdluck 4 years ago
parent
commit
1a3221b37d
2 changed files with 42 additions and 27 deletions
  1. 26 21
      services/data_source_longzhong.go
  2. 16 6
      services/task.go

+ 26 - 21
services/data_source_longzhong.go

@@ -21,6 +21,7 @@ func GetLongZhongTargetInfoByExcel() {
 	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)
 			return
 		}
 	}()
@@ -87,11 +88,11 @@ func GetLongZhongTargetInfoByExcel() {
 	}
 }
 
-func GetLzProductList() {
-	var err error
+func GetLzProductList()(err error) {
 	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)
 		}
 	}()
 	postUrl := `http://info.oilchem.net/cust/interfacenew/getProductUnitListNew`
@@ -138,7 +139,7 @@ func GetLzProductList() {
 		classify, err := models.GetEdbdataClassifyByClassifyName(v.ProName)
 		if err != nil && err.Error() != utils.ErrNoRow() {
 			fmt.Println("获取分类失败,Err:" + err.Error())
-			return
+			return err
 		}
 		if classify == nil || (err != nil && err.Error() == utils.ErrNoRow()) {
 			classifyItem := new(models.EdbdataClassify)
@@ -148,7 +149,7 @@ func GetLzProductList() {
 			newId, err := models.AddEdbdataClassify(classifyItem)
 			if err != nil {
 				fmt.Println("新增分类失败,Err:" + err.Error())
-				return
+				return err
 			}
 			classifyId = int(newId)
 			classifyName = v.ProName
@@ -159,7 +160,7 @@ func GetLzProductList() {
 		count, err := models.GetLongzhonginfoCount(classifyId, v.Unitid)
 		if err != nil {
 			fmt.Println("判断指标是否存在失败,Err:" + err.Error())
-			return
+			return err
 		}
 		if count > 0 { //修改
 			lzProduct := new(models.Longzhonginfo)
@@ -181,12 +182,13 @@ func GetLzProductList() {
 			err = models.ModifyLongzhonginfo(lzProduct)
 			if err != nil {
 				fmt.Println("修改失败,Err:" + err.Error())
+				return err
 			}
 		} else { //新增
 			maxId, err := models.GetLongzhonginfoMaxId()
 			if err != nil {
 				fmt.Println("获取编码失败,err:" + err.Error())
-				return
+				return err
 			}
 			tradeCode := fmt.Sprintf("L%06d", maxId+1)
 			lzProduct := new(models.Longzhonginfo)
@@ -209,33 +211,35 @@ func GetLzProductList() {
 			_, err = models.AddLongzhonginfo(lzProduct)
 			if err != nil {
 				fmt.Println("新增指标信息失败")
-				return
+				return err
 			}
 		}
 	}
+	return
 }
 
-func GetLzProductDetail() {
-	var err error
+func GetLzProductDetail()(err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println("Err:" + err.Error())
 		}
 	}()
 
-	startDate := time.Now().AddDate(0, 0, -20).Format(utils.FormatDate)
-	endDate := time.Now().AddDate(0, 0, -10).Format(utils.FormatDate)
+	startDate := time.Now().AddDate(0, 0, -2).Format(utils.FormatDate)
+	endDate := time.Now().AddDate(0, 0, 0).Format(utils.FormatDate)
+	time.Sleep(5 * time.Second)
 	pageSize := 30
 
 	postUrl := `http://info.oilchem.net/cust/interfacenew/getProductUnitDetailNew`
 	username := "hzmd"
 	password := "HZMD2020"
-	timestamp := fmt.Sprintf("%d", time.Now().Unix())
-	token := utils.MD5(username + timestamp + utils.MD5(password))
 
 	totalPage := 10
 	for i := 1; i <= totalPage; i++ {
 		fmt.Println("page:", i)
+		timestamp := fmt.Sprintf("%d", time.Now().Unix())
+		token := utils.MD5(username + timestamp + utils.MD5(password))
+
 		param := url.Values{}
 		param.Add("username", username)
 		param.Add("password", password)
@@ -250,19 +254,19 @@ func GetLzProductDetail() {
 		body, err := http.Post(postUrl, param.Encode())
 		if err != nil {
 			fmt.Println("err:", err.Error())
-			return
+			return err
 		}
 		utils.FileLog.Info("%s", string(body))
 		resp := new(models.LzProductInfoDetailResp)
 		err = json.Unmarshal(body, &resp)
 		if err != nil {
 			fmt.Println("Unmarshal Err:" + err.Error())
-			return
+			return err
 		}
 		if resp.Code != "1" {
 			fmt.Println("获取信息失败")
 			err = errors.New("Code:" + resp.Code + ";Msg:" + resp.Msg)
-			return
+			return err
 		}
 		if i == totalPage && resp.Pagesize >= pageSize {
 			totalPage = totalPage + 5
@@ -276,7 +280,7 @@ func GetLzProductDetail() {
 					continue
 				}
 				fmt.Println("err:" + err.Error())
-				return
+				return err
 			}
 			if target == nil {
 				fmt.Println("target is empty:"+v.ProCnName, v.UnitId)
@@ -286,7 +290,7 @@ func GetLzProductDetail() {
 			count, err := models.GetLongzhongdataCount(target.LongzhonginfoId, v.DataTime)
 			if err != nil {
 				fmt.Println("GetLongzhongdataCount Err:" + err.Error())
-				return
+				return err
 			}
 			if count > 0 {
 				lzdetail := new(models.Longzhongdata)
@@ -301,7 +305,7 @@ func GetLzProductDetail() {
 				err = models.ModifyLongzhongdata(lzdetail)
 				if err != nil {
 					fmt.Println("ModifyLongzhongdata Err:" + err.Error())
-					return
+					return err
 				}
 			} else {
 				lzdetail := new(models.Longzhongdata)
@@ -316,15 +320,16 @@ func GetLzProductDetail() {
 				err = models.AddLongzhongdata(lzdetail)
 				if err != nil {
 					fmt.Println("AddLongzhongdata Err:" + err.Error())
-					return
+					return err
 				}
 			}
 		}
 		if resp.Pagesize < pageSize || len(resp.Data) == 0 {
-			return
+			return err
 		}
 		time.Sleep(2 * time.Second)
 	}
+	return
 }
 
 func GetLzPrice() {

+ 16 - 6
services/task.go

@@ -2,22 +2,32 @@ package services
 
 import (
 	"fmt"
+	"github.com/astaxie/beego/toolbox"
 )
 
 func Task() {
 	fmt.Println("task start")
 	//发送邮件
-	//sendEmail := toolbox.NewTask("sendEmail", "0 0 12 * * 0 ", SendEmail)
-	//toolbox.AddTask("sendEmail", sendEmail)
+	sendEmail := toolbox.NewTask("sendEmail", "0 0 12 * * 0 ", SendEmail)
+	toolbox.AddTask("sendEmail", sendEmail)
 
-	//oneMinute := toolbox.NewTask("oneMinute", "0 */1 * * * * ", OneMinute)
-	//toolbox.AddTask("oneMinute", oneMinute)
-	//toolbox.StartTask()
+	oneMinute := toolbox.NewTask("oneMinute", "0 */1 * * * * ", OneMinute)
+	toolbox.AddTask("oneMinute", oneMinute)
+
+	//隆众指标获取
+	getLzProductList := toolbox.NewTask("getLzProductList", "0 30 15 * * * ", GetLzProductList)
+	toolbox.AddTask("getLzProductList", getLzProductList)
+	//隆众指标数据获取
+	getLzProductDetail := toolbox.NewTask("getLzProductDetail", "0 1 16 * * * ", GetLzProductDetail)
+	toolbox.AddTask("getLzProductDetail", getLzProductDetail)
+
+	toolbox.StartTask()
 
 	//GetLzProductDetail()
 	//GetLzPrice()
 	//GetLzProductDetail()
-	LzExportExcel()
+	//LzExportExcel()
+	//GetLzProductList()
 	fmt.Println("task end")
 }