Преглед изворни кода

将物流信息存入cache

abiao пре 5 година
родитељ
комит
b3db252aa7

+ 20 - 16
go/gopath/src/fohow.com/apps/controllers/tool_controller/express_controller.go

@@ -7,10 +7,12 @@ import (
 	"fmt"
 	"fohow.com/apps"
 	"fohow.com/apps/models/express_model"
+	"fohow.com/cache"
 	"io/ioutil"
 	"net/http"
 	"net/url"
 	"strings"
+	"time"
 )
 
 func (self *ToolController) GetExpressCompany() {
@@ -61,7 +63,9 @@ func (self *ToolController) GetExpressCompany() {
 
 //获取物流信息
 func (self *ToolController) GetExpressInfo() {
-
+	type Ret struct {
+		Resp map[string]interface{} `json:"resp"`
+	}
 	expressNo := self.GetString("express_no")
 	expressCode := self.GetString("express_code")
 	sign := self.GetString("sign")
@@ -87,22 +91,22 @@ func (self *ToolController) GetExpressInfo() {
 	param.Set("key", express_model.JUHE_KEY) //应用APPKEY(应用详细页查询)
 	param.Set("dtype", "json")               //返回数据的格式,xml或json,默认json
 	var netReturn map[string]interface{}
-
-	//发送请求
-	data, err := Get(juheURL, param)
-	if err != nil {
-		fmt.Errorf("请求失败,错误信息:\r\n%v", err)
-	} else {
-		json.Unmarshal(data, &netReturn)
-		/*	if netReturn["error_code"].(float64) == 0 {
-			//fmt.Printf("接口返回result字段是:\r\n%v", netReturn["result"])
-		}*/
-	}
-	type Ret struct {
-		Ret map[string]interface{} `json:"resp"`
+	//将数据存入cache
+	k := fmt.Sprintf("express.GetExpressInfo(%s)", expressNo)
+	ret, ok := cache.Cache.Get(k).(*Ret)
+	if !ok {
+		ret = &Ret{}
+		//发送请求
+		data, err := Get(juheURL, param)
+		if err != nil {
+			fmt.Errorf("请求失败,错误信息:\r\n%v", err)
+		} else {
+			json.Unmarshal(data, &netReturn)
+		}
+		ret.Resp = netReturn
+		cache.Cache.Put(k, ret, 10*time.Minute)
 	}
-
-	self.Data["json"] = &Ret{Ret: netReturn}
+	self.Data["json"] = ret
 	self.ServeJSON()
 }