|
@@ -0,0 +1,50 @@
|
|
|
+package service
|
|
|
+
|
|
|
+import (
|
|
|
+ "ad/entity"
|
|
|
+ . "api"
|
|
|
+ "db"
|
|
|
+ "encoding/json"
|
|
|
+ "github.com/go-xweb/xweb"
|
|
|
+ "log"
|
|
|
+ "qfw/util/redis"
|
|
|
+)
|
|
|
+
|
|
|
+//JyAdvertisement 剑鱼广告位
|
|
|
+type JyAdvertisement struct {
|
|
|
+ *xweb.Action
|
|
|
+ getJyAdList xweb.Mapper `xweb:"/free/getJyAdList"` //获取剑鱼广告位
|
|
|
+}
|
|
|
+
|
|
|
+type AdRequestMsg struct {
|
|
|
+ AdCode []string `json:"codes"` //广告位code
|
|
|
+}
|
|
|
+
|
|
|
+func (a *JyAdvertisement) GetJyAdList() {
|
|
|
+ rData, errMsg := func() (interface{}, error) {
|
|
|
+ adReqMsg := new(AdRequestMsg)
|
|
|
+ returnData := map[string]interface{}{}
|
|
|
+ if json.Unmarshal(a.Body(), &adReqMsg) == nil && len(adReqMsg.AdCode) > 0 {
|
|
|
+ for _, sCode := range adReqMsg.AdCode {
|
|
|
+ var adInfo []entity.AdInfo
|
|
|
+ obj := redis.Get("other", "ad_"+sCode)
|
|
|
+ if obj != nil {
|
|
|
+ adInfo = entity.Handle(obj.([]interface{}))
|
|
|
+ } else {
|
|
|
+ res, ok := db.Mgo.FindOneByField("ad", `{"s_code":"`+sCode+`"}`, `{"a_son":1}`)
|
|
|
+ if ok && res != nil && (*res)["a_son"] != nil {
|
|
|
+ son := (*res)["a_son"].([]interface{})
|
|
|
+ adInfo = entity.Handle(son)
|
|
|
+ redis.PutCKV("other", "ad_"+sCode, adInfo)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ returnData[sCode] = adInfo
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return returnData, nil
|
|
|
+ }()
|
|
|
+ if errMsg != nil {
|
|
|
+ log.Printf("Ad err:%s\n", errMsg.Error())
|
|
|
+ }
|
|
|
+ a.ServeJson(NewResult(rData, errMsg))
|
|
|
+}
|