zhangxinlei1996 4 years ago
parent
commit
4a2c7cc8f5
1 changed files with 107 additions and 72 deletions
  1. 107 72
      src/jfw/front/pcIndex.go

+ 107 - 72
src/jfw/front/pcIndex.go

@@ -24,8 +24,6 @@ type PcIndex struct {
 	*xweb.Action
 	newSordfish  xweb.Mapper `xweb:"/"`                        //剑鱼标讯pc首页
 	newSordfishC xweb.Mapper `xweb:"/pcindex.html"`            //剑鱼标讯pc首页-统计
-	newBlog      xweb.Mapper `xweb:"/newBlog"`                 //最新资讯
-	newArticle   xweb.Mapper `xweb:"/newArticle"`              //最新公告信息
 	searchResult xweb.Mapper `xweb:"/list/(\\w+)/(\\w+).html"` //剑鱼标讯分类 地区结果列表
 	labelUrl     xweb.Mapper `xweb:"/index/labelUrl"`          //首页链接跳转地址
 }
@@ -55,16 +53,25 @@ func (m *PcIndex) NewSordfish() error {
 		m.T["avatar"] = util.ObjToString(m.GetSession("s_avatar"))
 		return m.Render("/pc/mobileindex.html", &m.T)
 	} else {
-		if ret := redis.Get("other", "jypcindex"); ret != nil {
-			return m.SetBody([]byte(ret.(string)))
-		} else {
-			m.T["live_Preheat_Start"] = config.ActiveConfig.Live_Preheat_Start
-			m.T["live_Active_End"] = config.ActiveConfig.Live_Active_End
-			content, _ := m.Render4Cache("/pc/index.html", &m.T)
-			// content, _ := m.Render4Cache("/frontRouter/pc/squeeze/sess/test.html", &m.T)
-			redis.Put("other", "jypcindex", string(content), 60*60*2)
-			return m.SetBody(content)
+		// if ret := redis.Get("other", "jypcindex"); ret != nil {
+		// 	return m.SetBody([]byte(ret.(string)))
+		// } else {
+		m.T["live_Preheat_Start"] = config.ActiveConfig.Live_Preheat_Start
+		m.T["live_Active_End"] = config.ActiveConfig.Live_Active_End
+		//最新资讯
+		m.T["blog"] = GetNewBlog()
+		//最新公告信息
+		for _, v := range []int{1, 2, 3, 4} { //1拟建 2招标预告 3招标公告 4招标结果
+			m.T[fmt.Sprintf("newArticle_%d", v)] = GetNewArticle(v)
+		}
+		//前端需要跳转的路由
+		for _, v := range []int{1, 2, 3} {
+			m.T[fmt.Sprintf("labUrl_%d", v)] = GetLabUrl(v) //1地域 2信息类型 3热门招标
 		}
+		content, _ := m.Render4Cache("/pc/index.html", &m.T)
+		//redis.Put("other", "jypcindex", string(content), 60*60*2)
+		return m.SetBody(content)
+		// }
 	}
 	return m.Render("/pc/index.html", &m.T)
 }
@@ -89,76 +96,104 @@ func (m *PcIndex) NewSordfishC() error {
 	}
 }
 
-//首页资讯(博客)
-func (p *PcIndex) NewBlog() {
-	d := func() (r *[]map[string]interface{}) {
-		rediskey := "pcindex_blog"
-		if data, ok := redis.Get("other", rediskey).(*[]map[string]interface{}); ok && data != nil && len(*data) > 0 {
-			r = data
-		} else {
-			r, _ = SearhWebContentblog(map[string]string{
-				"contentType": "jybk",
-			})
-			if r != nil && len(*r) > 4 {
-				*r = (*r)[0:5]
-				for _, v := range *r {
-					delete(v, "praise")
-					delete(v, "s_contenttype")
-					delete(v, "s_source")
-				}
+//首页资讯
+func GetNewBlog() (r *[]map[string]interface{}) {
+	rediskey := "pcindex_blog"
+	if data, ok := redis.Get("other", rediskey).(*[]map[string]interface{}); ok && data != nil && len(*data) > 0 {
+		r = data
+	} else {
+		r, _ = SearhWebContentblog(map[string]string{
+			"contentType": "jybk",
+		})
+		if r != nil && len(*r) > 4 {
+			*r = (*r)[0:5]
+			for _, v := range *r {
+				delete(v, "praise")
+				delete(v, "s_contenttype")
+				delete(v, "s_source")
 			}
-			redis.Put("other", rediskey, r, 24*60*60)
 		}
-		return r
-	}()
-	p.ServeJson(map[string]interface{}{
-		"data": d,
-	})
+		redis.Put("other", rediskey, r, 24*60*60)
+	}
+	return r
 }
 
 //最新公告信息
-func (p *PcIndex) NewArticle() {
-	data := func() (list []map[string]interface{}) {
-		typ, _ := p.GetInteger("typ")
-		if typ == 0 {
-			typ = 1
+func GetNewArticle(typ int) (list []map[string]interface{}) {
+	if typ == 0 {
+		typ = 1
+	}
+	rediskey := fmt.Sprintf("pcindex_newArticle_%d", typ)
+	subtype := ""
+	switch typ {
+	case 1:
+		//拟建
+		subtype = "拟建"
+	case 2:
+		//招标预告
+		subtype = "预告"
+	case 3:
+		//招标公告
+		subtype = "招标,邀标,询价,竞谈,单一,竞价,变更,其他"
+	case 4:
+		//招标结果
+		subtype = "中标,成交,废标,流标"
+	}
+	if l, ok := redis.Get("other", rediskey).([]interface{}); ok && l != nil && len(l) > 0 {
+		list = util.ObjArrToMapArr(l)
+	} else {
+		_, _, lists := getBidSearchData("", "", "", subtype, "", "", "", 1, false, "", "")
+		if lists != nil && len(*lists) > 5 {
+			*lists = (*lists)[0:6]
+			for _, v := range *lists {
+				v["_id"] = util.EncodeArticleId2ByCheck(v["_id"].(string))
+				delete(v, "toptype")
+				delete(v, "s_subscopeclass")
+			}
+			list = *lists
+			redis.Put("other", rediskey, list, 2*60*60)
 		}
-		rediskey := fmt.Sprintf("pcindex_newArticle_%d", typ)
-		subtype := ""
-		switch typ {
-		case 1:
-			//拟建
-			subtype = "拟建"
-		case 2:
-			//招标预告
-			subtype = "预告"
-		case 3:
-			//招标公告
-			subtype = "招标,邀标,询价,竞谈,单一,竞价,变更,其他"
-		case 4:
-			//招标结果
-			subtype = "中标,成交,废标,流标"
+	}
+	return list
+}
+
+//前端跳转地址
+func GetLabUrl(typ int) interface{} {
+	if typ == 1 { //地区
+		m := map[string][]map[string]interface{}{}
+		cityMap := getCityMap()
+		r := public.PushMysql.SelectBySql(`select a.name province,b.name city from
+(select name,cid from province where level =1) a left join province b on a.cid =b.pid`)
+		if r != nil && len(*r) > 0 {
+			for _, v := range *r {
+				province := util.ObjToString(v["province"])
+				city := util.ObjToString(v["city"])
+				m[province] = append(m[province], map[string]interface{}{
+					"city": city,
+				})
+			}
 		}
-		if l, ok := redis.Get("other", rediskey).([]interface{}); ok && l != nil && len(l) > 0 {
-			list = util.ObjArrToMapArr(l)
-		} else {
-			_, _, lists := getBidSearchData("", "", "", subtype, "", "", "", 1, false, "", "")
-			if lists != nil && len(*lists) > 5 {
-				*lists = (*lists)[0:6]
-				for _, v := range *lists {
-					v["_id"] = util.EncodeArticleId2ByCheck(v["_id"].(string))
-					delete(v, "toptype")
-					delete(v, "s_subscopeclass")
-				}
-				list = *lists
-				redis.Put("other", rediskey, list, 2*60*60)
+		for _, vv := range m {
+			for _, vvv := range vv {
+				city := util.ObjToString(vvv["city"])
+				vvv["url"] = fmt.Sprintf("/list/city/%s.html", cityMap[city])
 			}
 		}
-		return list
-	}()
-	p.ServeJson(map[string]interface{}{
-		"list": data,
-	})
+		return m
+	} else if typ == 2 { //信息类型
+		stypeMap := getstypeMap()
+		for _, v := range stypeMap {
+			// stypeMap[k] = fmt.Sprintf("/list/stype/%s.html", v)
+			for _, vv := range v {
+				vv["url"] = fmt.Sprintf("/list/stype/%s.html", vv["url"])
+			}
+		}
+		return stypeMap
+	} else if typ == 3 { //热门招标
+		keysMap := getkeysMap()
+		return keysMap
+	}
+	return nil
 }
 
 //标签查询