Selaa lähdekoodia

Merge branch 'dev2.0' of http://192.168.3.17/gitlab/qmx/jy into dev2.0

wangshan 8 vuotta sitten
vanhempi
commit
c5357f507c
45 muutettua tiedostoa jossa 717 lisäystä ja 74 poistoa
  1. 8 0
      src/jfw/front/front.go
  2. 3 2
      src/jfw/modules/entsesearch/src/config.json
  3. 4 1
      src/jfw/modules/entsesearch/src/main.go
  4. 16 10
      src/jfw/modules/entsesearch/src/search/entsesearch.go
  5. 80 0
      src/jfw/modules/entsesearch/src/search/search.go
  6. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/css/bootstrap.min.css
  7. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/css/bootswatch.min.css
  8. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/css/common.css
  9. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/css/jy.css
  10. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/css/reset.css
  11. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/favicon.ico
  12. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/images/wx/jyqingchu.png
  13. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/images/wx/jywxjs.png
  14. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/images/wx/sys-jt-bottom.png
  15. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/images/wx/sys-jt-bottom2.png
  16. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/bootstrap.min.js
  17. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/common.js
  18. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/jquery.cookie.js
  19. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/jquery.js
  20. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/jy.js
  21. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/login.js
  22. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/rem.js
  23. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/mobiscroll/mobiscroll.min.css
  24. 0 0
      src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/mobiscroll/mobiscroll.min.js
  25. 38 20
      src/jfw/modules/entsesearch/src/web/templates/weixin/entseSearch.html
  26. 96 22
      src/jfw/modules/followent/src/followent/followent.go
  27. 6 0
      src/jfw/modules/followent/src/followent/myfwent.go
  28. 19 6
      src/jfw/modules/followent/src/web/staticres/jylab/followent/css/follow.css
  29. 4 3
      src/jfw/modules/followent/src/web/templates/weixin/list.html
  30. 79 10
      src/jfw/modules/followent/src/web/templates/weixin/set.html
  31. BIN
      src/web/staticres/images/contactway.jpg
  32. BIN
      src/web/staticres/images/coopbanner1.jpg
  33. BIN
      src/web/staticres/images/datacooperation.jpg
  34. BIN
      src/web/staticres/images/fenge.jpg
  35. BIN
      src/web/staticres/images/fenge.png
  36. BIN
      src/web/staticres/images/othercooperation.jpg
  37. BIN
      src/web/staticres/images/pc-envelope.png
  38. BIN
      src/web/staticres/images/wx/contactway.jpg
  39. BIN
      src/web/staticres/images/wx/dataCooperation.png
  40. BIN
      src/web/staticres/images/wx/envelope.png
  41. BIN
      src/web/staticres/images/wx/otherCooperation.png
  42. BIN
      src/web/staticres/images/wx/serviceCooperation.png
  43. BIN
      src/web/staticres/images/zengzhihezuo.png
  44. 214 0
      src/web/templates/pc/businesscooperation.html
  45. 150 0
      src/web/templates/weixin/about.html

+ 8 - 0
src/jfw/front/front.go

@@ -87,6 +87,7 @@ type Front struct {
 	historypush       xweb.Mapper `xweb:"/swordfish/historypush"`        //历时推送记录
 	historypushPaging xweb.Mapper `xweb:"/swordfish/historypush/paging"` //历时推送记录--分页
 	aboutus           xweb.Mapper `xweb:"/front/aboutus.html"`           //关于我们
+	busicooperation	  xweb.Mapper `xweb:"/front/busicooperation.html"`   //商务合作
 
 	/********************wxkeyset:v1.8**************************/
 	wxrssset        xweb.Mapper `xweb:"/swordfish/page"`
@@ -847,6 +848,13 @@ func (f *Front) Aboutus() error {
 	}
 }
 
+//商务合作
+func (f *Front) Busicooperation() error {
+
+	content, _ := f.Render4Cache("/pc/businesscooperation.html", &f.T)
+	return f.SetBody(content)
+}
+
 func (f *Front) Gethotkey() error {
 	keys := []interface{}{}
 	tmp := redis.Get("sso", "jy_hotkeys")

+ 3 - 2
src/jfw/modules/entsesearch/src/config.json

@@ -6,11 +6,12 @@
     "influxdb": "jy_logs",
     "elasticsearch": "http://192.168.3.18:9800",
     "elasticPoolSize": 30,
-    "redisaddrs": "other=192.168.3.14:3379,push=192.168.3.14:3379,sso=192.168.3.14:3379",
+    "redisaddrs": "other=192.168.3.14:3379,push=192.168.3.14:3379,sso=192.168.3.14:3379,session=192.168.3.14:3379",
     "webport": "8090",
     "webrpcport": "84",
     "weixinrpc": "127.0.0.1:83",
     "cacheflag": false,
-    "agreement": "http"
+    "agreement": "http",
+    "recommendEntLimit":"50"
 
 }

+ 4 - 1
src/jfw/modules/entsesearch/src/main.go

@@ -5,10 +5,11 @@ import (
 	"qfw/util"
 	"qfw/util/elastic"
 	"qfw/util/redis"
+	_ "search"
 	"tag"
 	"time"
-	_"search"
 
+	"github.com/go-xweb/httpsession"
 	"github.com/go-xweb/xweb"
 )
 
@@ -19,6 +20,7 @@ func init() {
 }
 
 func main() {
+
 	go func() {
 		xweb.Run(":" + config.Sysconfig["webport"].(string))
 	}()
@@ -27,6 +29,7 @@ func main() {
 }
 
 func initXweb() {
+	httpsession.IsRedisSessionStore = true
 	xweb.Config.Profiler = true
 	xweb.RootApp().AppConfig.TemplateDir = "web/templates"
 	xweb.RootApp().AppConfig.StaticDir = "web/staticres"

+ 16 - 10
src/jfw/modules/entsesearch/src/search/entsesearch.go

@@ -2,15 +2,17 @@ package search
 
 import (
 	"fmt"
-	"strconv"
 	"github.com/go-xweb/xweb"
+	"qfw/util/elastic"
+	"config"
+	"strconv"
 )
 
 type EntSeSearch struct {
 	*xweb.Action
-	toSearch  xweb.Mapper `xweb:"/entSeSearch/search"`  //跳转到中标企业查询页面
-	recList   xweb.Mapper `xweb:"/entSeSearch/recList"` //获取推荐企业列表
-	proList   xweb.Mapper `xweb:"/entSeSearch/proList"` //获取企业中标项目
+	toSearch  xweb.Mapper `xweb:"/jylab/entsesearch/search"`  //跳转到中标企业查询页面
+	recList   xweb.Mapper `xweb:"/jylab/entsesearch/recList"` //获取推荐企业列表
+	proList   xweb.Mapper `xweb:"/jylab/entsesearch/proList"` //获取企业中标项目列表
 
 }
 
@@ -24,13 +26,17 @@ func (e *EntSeSearch) ToSearch() error{
 
 func (e *EntSeSearch) RecList() {
 	fmt.Println("entName", e.GetString("entName"))
-	var recArr [10]string
-	for i := 0; i < len(recArr); i++ {
-		recArr[i] = "河南省凯陆电子科技有限公司" + strconv.Itoa(i+1)
+	var entName = e.GetString("entName")
+	if entName!=""{
+		limit,_ := strconv.Atoi(config.Sysconfig["recommendEntLimit"].(string))
+		r := elastic.GetPage("winner", "winner", `{"winner":"`+entName+`"}`, ``, `"_id","winner"`, 0, limit)
+		if r!=nil && len(*r) != 0{
+			fmt.Println("RecList",r)
+			e.ServeJson(map[string]interface{}{
+				"recList": r,
+			})
+		}
 	}
-	e.ServeJson(map[string]interface{}{
-		"recList": recArr,
-	})
 }
 
 func (e *EntSeSearch) ProList() {

+ 80 - 0
src/jfw/modules/entsesearch/src/search/search.go

@@ -0,0 +1,80 @@
+// search
+package search
+
+import (
+	"fmt"
+	"qfw/util/elastic"
+	"strings"
+)
+
+/**即时获取企业名称列表
+name  名称
+limit 取几条
+*/
+func GetEenNameImmediate(name string, limit int) []map[string]interface{} {
+	//query := `{"term":{"winner":"` + name + `"}}`
+	list := *elastic.GetByNgram(
+		"winner", "winner",
+		name, ``,
+		`"winner"`,
+		``,
+		`"winner"`,
+		0, limit)
+	return list
+}
+
+/*根据企业名称、地区、中标价获取项目列表
+entname 企业名称
+area	区域多值","号隔开
+lower	下限单位万
+upper	上限单位万
+pagenum	页码
+pagesize每页数量
+*/
+func GetProjectByEntName(entname string, area string, lower, upper, pagenum, pagesize int) []map[string]interface{} {
+	if pagenum < 1 {
+		pagenum = 1
+	}
+	mastquery := getSearchQuery(area, lower, upper)
+	list := *elastic.GetByNgram(
+		"projectset", "projectset",
+		entname, mastquery,
+		`"winner"`,
+		`{"createtime":-1}`, ``, (pagenum-1)*pagesize, pagesize,
+	)
+	return list
+}
+
+func getSearchQuery(area string, lower, upper int) string {
+	query := ``
+	if area != "" {
+		query += `{"terms":{"area":[`
+		for k, v := range strings.Split(area, ",") {
+			if k > 0 {
+				query += `,`
+			}
+			query += `"` + v + `"`
+		}
+		query += `]}}`
+	}
+	if lower > 0 && upper > 0 {
+		if len(query) > 0 {
+			query += ","
+		}
+		query += `{"range":{"bidamount":{"gte":` + fmt.Sprint(lower*10000) + `,"lte":` + fmt.Sprint(upper*10000) + `}}}`
+	} else {
+		if lower > 0 {
+			if len(query) > 0 {
+				query += ","
+			}
+			query += `{"range":{"bidamount":{"gte":` + fmt.Sprint(lower*10000) + `}}}`
+		}
+		if upper > 0 {
+			if len(query) > 0 {
+				query += ","
+			}
+			query += `{"range":{"bidamount":{"lte":` + fmt.Sprint(upper*10000) + `}}}`
+		}
+	}
+	return query
+}

+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/css/bootstrap.min.css → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/css/bootstrap.min.css


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/css/bootswatch.min.css → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/css/bootswatch.min.css


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/css/common.css → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/css/common.css


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/css/jy.css → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/css/jy.css


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/css/reset.css → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/css/reset.css


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/favicon.ico → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/favicon.ico


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/images/wx/jyqingchu.png → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/images/wx/jyqingchu.png


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/images/wx/jywxjs.png → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/images/wx/jywxjs.png


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/images/wx/sys-jt-bottom.png → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/images/wx/sys-jt-bottom.png


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/images/wx/sys-jt-bottom2.png → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/images/wx/sys-jt-bottom2.png


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/js/bootstrap.min.js → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/bootstrap.min.js


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/js/common.js → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/common.js


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/js/jquery.cookie.js → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/jquery.cookie.js


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/js/jquery.js → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/jquery.js


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/js/jy.js → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/jy.js


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/js/login.js → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/login.js


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/js/rem.js → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/js/rem.js


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/mobiscroll/mobiscroll.min.css → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/mobiscroll/mobiscroll.min.css


+ 0 - 0
src/jfw/modules/entsesearch/src/web/staticres/mobiscroll/mobiscroll.min.js → src/jfw/modules/entsesearch/src/web/staticres/jylab/entsesearch/mobiscroll/mobiscroll.min.js


+ 38 - 20
src/jfw/modules/entsesearch/src/web/templates/weixin/entseSearch.html

@@ -7,9 +7,9 @@
 <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,initial-scale=1.0" user-scalable="no" />
 <meta name="renderer" content="webkit">
 {{include "/common/pnc.html"}}
-<script src="/js/jquery.js"></script>
-<script src="/js/rem.js"></script>
-<link rel="stylesheet" href="/css/reset.css" />
+<script src="/jylab/entsesearch/js/jquery.js"></script>
+<script src="/jylab/entsesearch/js/rem.js"></script>
+<link rel="stylesheet" href="/jylab/entsesearch/css/reset.css" />
 <style>
 #searchDiv .searchform{
 	width:79%;
@@ -216,6 +216,19 @@
 	color: #2cb7ca;
 }
 
+.tip{
+	font-size: 14px;
+	padding: 0 .3rem;
+	margin-bottom:70px;
+	line-height: 20px;
+}
+#recList{
+	z-index: 1;
+	position: absolute;
+	background: rgb(255, 255, 255);
+	width: 79%;
+}
+
 </style>
 </head>
 <body>
@@ -225,8 +238,8 @@
 	<div class="wxhead">
 	<input class="form-control searchname" id="searchname" name="searchname" maxlength ="50" value="{{if .T.shname}}{{.T.shname}}{{end}}" placeholder="中标企业名称"/>
 	<div id="recList" style="display: none"></div>
-	<span class="tubiao"><img src="/images/wx/jywxjs.png"/></span>
-	<span class="qc"><img src="/images/wx/jyqingchu.png"/></span>
+	<span class="tubiao"><img src="/jylab/entsesearch/images/wx/jywxjs.png"/></span>
+	<span class="qc"><img src="/jylab/entsesearch/images/wx/jyqingchu.png"/></span>
 	<span class="shaixuan">筛选</span>
 	</div>
 	</form>
@@ -235,9 +248,9 @@
 <div id="set_search" class="hidden">
 	<div class="select">
 		<ul>
-			<li>金额<img src="/images/wx/sys-jt-bottom.png"></li>
+			<li>金额<img src="/jylab/entsesearch/images/wx/sys-jt-bottom.png"></li>
 			<li class="shuxian"></li>
-			<li>项目地区<img src="/images/wx/sys-jt-bottom.png"></li>
+			<li>项目地区<img src="/jylab/entsesearch/images/wx/sys-jt-bottom.png"></li>
 		</ul>
 	</div>
 	<div>
@@ -335,29 +348,28 @@
 				<td>序号</td>
 				<td>中标日期</td>
 				<td>项目名称</td>
-				<td>中标金额
-					(万元)</td>
+				<td>中标金额(万元)</td>
 			</tr>
 			</thead>
 			<tbody>
 			<tr>
 				<td>1</td>
 				<td>2017 0721</td>
-				<td><span class="higHlight">五峰土家族自治县</span>LED单色
-					户外电子屏采购项目</td>
+				<td><span>五峰土家族自治县</span>LED单色户外电子屏采购项目</td>
 				<td>1.30</td>
 			</tr>
 			<tr>
 				<td>2</td>
 				<td>2017 0721</td>
-				<td>G320下司至麻江良田公路
-					改扩建项目</td>
+				<td>G320下司至麻江良田公路改扩建项目</td>
 				<td>31</td>
 			</tr>
 			</tbody>
 		</table>
 	</section>
 </div>
+<!--tip-->
+<div class="tip">提示:为了获得更佳的体验,推荐使用电脑浏览器访问剑鱼网站jianyu360.com查看数据表格。</div>
 </body>
 </html>
 <script>
@@ -386,12 +398,12 @@
 
         function getRecList(entName) {
             $("#recList").html("");
-            $.post("/entSeSearch/recList",{entName:entName},function(r){
+            $.post("/jylab/entsesearch/recList",{entName:entName},function(r){
                 if(r){
                     if(typeof (r.recList)!="undefined"){
                         var recList = r.recList;
-                        for(var i=0;i<10;i++){
-                            var entName = recList[i];
+                        for(var i=0;i<recList.length;i++){
+                            var entName = recList[i].winner;
                             if(entName!="" && entName.length>20){
                                 entName = entName.substr(0,20)+"...";
                             }
@@ -412,12 +424,18 @@
                 });
             });
         }
+
+        $("body").click(function () {
+            $("#recList").hide();
+        });
     });
 
 	//显示筛选过滤选择
 	$(".shaixuan").click(function(){
 		if($("#set_search").attr("class")=="hidden"){
 			$("#set_search").removeClass("hidden");
+			$("#searchList").addClass("hidden");
+			$(".tip").addClass("hidden");
 		}else{
 			$("#set_search").addClass("hidden");
 		}
@@ -427,16 +445,16 @@
 	$("#set_search .select ul li:eq(0)").click(function(){
 		$(this).css("color","#2cb7ca");
 		$("#set_search .select ul li:eq(2)").css("color","#888");
-		$("#set_search .select ul li:eq(0) img").attr("src","/images/wx/sys-jt-bottom2.png");
-		$("#set_search .select ul li:eq(2) img").attr("src","/images/wx/sys-jt-bottom.png");
+		$("#set_search .select ul li:eq(0) img").attr("src","/jylab/entsesearch/images/wx/sys-jt-bottom2.png");
+		$("#set_search .select ul li:eq(2) img").attr("src","/jylab/entsesearch/images/wx/sys-jt-bottom.png");
 		$(".money").removeClass("hidden");
 		$(".area").addClass("hidden");
 	})
 	$("#set_search .select ul li:eq(2)").click(function(){
 		$(this).css("color","#2cb7ca");
 		$("#set_search .select ul li:eq(0)").css("color","#888");
-		$("#set_search .select ul li:eq(0) img").attr("src","/images/wx/sys-jt-bottom.png");
-		$("#set_search .select ul li:eq(2) img").attr("src","/images/wx/sys-jt-bottom2.png");
+		$("#set_search .select ul li:eq(0) img").attr("src","/jylab/entsesearch/images/wx/sys-jt-bottom.png");
+		$("#set_search .select ul li:eq(2) img").attr("src","/jylab/entsesearch/images/wx/sys-jt-bottom2.png");
 		$(".money").addClass("hidden");
 		$(".area").removeClass("hidden");
 	})

+ 96 - 22
src/jfw/modules/followent/src/followent/followent.go

@@ -1,26 +1,32 @@
 package followent
 
 import (
+	"config"
 	"fmt"
 	"log"
 	"qfw/util"
+	"qfw/util/elastic"
 	"qfw/util/redis"
+	"strconv"
+	"time"
 	"tools"
+
 	"github.com/go-xweb/xweb"
-	"qfw/util/elastic"
-	"config"
-	"strconv"
 )
 
 var mongodb = tools.MQFW
 
 type FollowEnt struct {
 	*xweb.Action
-	entList xweb.Mapper `xweb:"/jylab/followent/entList"` //获取关注企业列表
-	addEnt  xweb.Mapper `xweb:"/jylab/followent/addEnt"`  //添加关注企业页面
-	newInfo xweb.Mapper `xweb:"/jylab/followent/newInfo/(.*)/(.*)"` //企业最新信息
-	recList xweb.Mapper `xweb:"/jylab/followent/recList"` //获取推荐企业列表
-	saveEnt xweb.Mapper `xweb:"/jylab/followent/saveEnt"` //保存关注企业
+
+	entList    xweb.Mapper `xweb:"/jylab/followent/entList"`           //获取关注企业列表
+	addEnt     xweb.Mapper `xweb:"/jylab/followent/addEnt"`            //添加关注企业页面
+	newInfo    xweb.Mapper `xweb:"/jylab/followent/newInfo/(.*)/(.*)"` //企业最新信息
+	recList    xweb.Mapper `xweb:"/jylab/followent/recList"`           //获取推荐企业列表
+	saveEnt    xweb.Mapper `xweb:"/jylab/followent/saveEnt"`           //保存关注企业
+	followYorN xweb.Mapper `xweb:"/jylab/followent/followYorN"`        //查询用户是否关注企业
+	qgFollow   xweb.Mapper `xweb:"/jylab/followent/qgFollow"`          //取消关注
+
 }
 
 func init() {
@@ -41,9 +47,9 @@ func (f *FollowEnt) EntList() error {
 	datas, ok := mongodb.Find("jylab_followent", `{"s_userid":"`+f.GetSession("userId").(string)+`"}`, `{"l_createtime":-1}`, `{"_id":1,"winner":1,"s_userid":1,"s_openid":1,"l_createtime":1,"s_id":1}`, false, 0, 10)
 	f.T["flag"] = false
 	if ok && datas != nil && len(*datas) > 0 {
-		for k, v := range *datas {
+		for _, v := range *datas {
 			v["_id"] = util.EncodeArticleId2ByCheck(util.BsonIdToSId(v["_id"]))
-			log.Println(k, ":", v["l_createtime"])
+			v["s_id"] = util.EncodeArticleId2ByCheck(util.BsonIdToSId(v["s_id"]))
 		}
 		f.T["datas"] = datas
 	}
@@ -57,12 +63,12 @@ func (f *FollowEnt) AddEnt() error {
 func (f *FollowEnt) RecList() {
 	fmt.Println("entName", f.GetString("entName"))
 	var entName = f.GetString("entName")
-	if entName!=""{
-		limit,_ := strconv.Atoi(config.Sysconfig["recommendEntLimit"].(string))
+	if entName != "" {
+		limit, _ := strconv.Atoi(config.Sysconfig["recommendEntLimit"].(string))
 		r := elastic.GetPage("winner", "winner", `{"winner":"`+entName+`"}`, ``, `"_id","winner"`, 0, limit)
-		if r!=nil && len(*r) != 0{
-			fmt.Println("RecList",r)
-			for _,v := range *r{
+		if r != nil && len(*r) != 0 {
+			fmt.Println("RecList", r)
+			for _, v := range *r {
 				v["_id"] = util.EncodeArticleId2ByCheck(v["_id"].(string))
 			}
 			f.ServeJson(map[string]interface{}{
@@ -81,22 +87,70 @@ func (f *FollowEnt) SaveEnt() {
 }
 
 //企业最新信息
-func (f *FollowEnt) NewInfo(winner,id string) error {
+func (f *FollowEnt) NewInfo(winner, id string) error {
 	defer util.Catch()
-	////var winner = "天津超林时代科技发展有限公司"
-	fields := `{"projectname":1,"projectcode":1,"bidamount":1,"title":1,"publishtime":1,"subtype":1}`
+	id = util.EncodeArticleId2ByCheck(id)
+	fmt.Println(id)
+	fields := `{"projectname":1,"projectcode":1,"bidamount":1,"title":1,"publishtime":1,"subtype":1,"href":1}`
 	data, ok := mongodb.Find("bidding", `{"winner":"`+winner+`"}`, nil, fields, false, -1, -1)
-	if !ok || data == nil || len(*data) == 0 {
-		return f.Render("_error.html")
-	}
+	//if !ok || data == nil || len(*data) == 0 {
+	//	return f.Render("_error.html")
+	//}
 	if ok && data != nil && *data != nil && len(*data) != 0 {
 		f.T["data"] = data
-		fmt.Println(f.T["data"])
 	}
 	f.T["winner"] = winner
+	f.T["id"] = id
 	return f.Render("/weixin/set.html", &f.T)
 }
 
+//用户是否已关注企业判断
+func (f *FollowEnt) FollowYorN() error {
+	defer util.Catch()
+	s_id := ""
+	userId := f.GetSession("userId").(string)
+	id := f.GetString("id")
+	winner := f.GetString("winner")
+	fmt.Println("===========", userId, id, winner)
+	if id == "" {
+		s_id = createId(winner)
+		fmt.Println("空")
+	} else {
+		fmt.Println("不为空")
+		s_id = util.DecodeArticleId2ByCheck(f.GetString("id"))[0]
+		fmt.Println("1111111111", s_id)
+	}
+	var follow = "n"
+	if mongodb.Count("jylab_followent", `{"s_userid":"`+userId+`","s_id":"`+s_id+`"}`) > 0 {
+		follow = "y" //已经关注此企业
+		fmt.Println("已关注")
+	}
+	f.ServeJson(map[string]interface{}{
+		"follow": follow,
+		"s_id":   util.EncodeArticleId2ByCheck(s_id),
+	})
+	return nil
+}
+
+//取消企业关注
+func (f *FollowEnt) QgFollow() error {
+	defer util.Catch()
+	status := "n"
+	userId := f.GetSession("userId").(string)
+	id := f.GetString("id")
+	fmt.Println("取关时id=======", id)
+	s_id := util.DecodeArticleId2ByCheck(id)[0]
+	fmt.Println("解密后的id=======", s_id)
+	ok := mongodb.Del("jylab_followent", `{"s_userid":"`+userId+`","s_id":"`+s_id+`"}`)
+	if ok {
+		status = "y"
+	}
+	f.ServeJson(map[string]interface{}{
+		"status": status,
+	})
+	return nil
+}
+
 //
 func (f *FollowEnt) Followent() error {
 	//data := mongodb.FindById("user", "597ec30861fd00271cff7154", nil)
@@ -105,3 +159,23 @@ func (f *FollowEnt) Followent() error {
 	log.Println("data:", redis.Get("sso", "followent"))
 	return f.Render("/weixin/index.html")
 }
+
+//没有企业id创建企业id
+func createId(winner string) string {
+	defer util.Catch()
+	tem, ok := mongodb.FindOneByField("winner", `{"winner":"`+winner+`"}`, `{"_id":1}`)
+	winnerid := ""
+	if ok && len(*tem) == 0 {
+		data := map[string]interface{}{}
+		data["winner"] = winner
+		data["winnersign"] = 1
+		data["l_createtime"] = time.Now().Unix()
+		winnerid = mongodb.Save("winner", data)
+		data["_id"] = winnerid
+		flag := elastic.Save("winner", "winner", data)
+		if !flag {
+			log.Println("企业保存elastic出错!")
+		}
+	}
+	return winnerid
+}

+ 6 - 0
src/jfw/modules/followent/src/followent/myfwent.go

@@ -29,8 +29,10 @@ func (m *Myfwent) Addfwent() error {
 	followId := ""
 	s_id := ""
 	entname := m.GetString("winner")
+	log.Println("id:", m.GetString("id"))
 	if m.GetString("id") == "" {
 		s_id = Findent(entname)
+		log.Println("s_id:", s_id)
 	} else {
 		s_id = util.DecodeArticleId2ByCheck(m.GetString("id"))[0]
 	}
@@ -64,6 +66,7 @@ func Findent(entname string) string {
 	defer util.Catch()
 	tem, ok := mongodb.FindOneByField("winner", `{"winner":"`+entname+`"}`, `{"_id":1}`)
 	winnerid := ""
+	log.Println(len(*tem), "---------------")
 	if ok && len(*tem) == 0 {
 		data := map[string]interface{}{}
 		data["winner"] = entname
@@ -75,6 +78,9 @@ func Findent(entname string) string {
 		if !flag {
 			log.Println("企业保存elastic出错!")
 		}
+	} else {
+		log.Println(*tem, "---------", util.BsonIdToSId((*tem)["_id"]))
+		winnerid = util.ObjToString(util.BsonIdToSId((*tem)["_id"]))
 	}
 	return winnerid
 }

+ 19 - 6
src/jfw/modules/followent/src/web/staticres/jylab/followent/css/follow.css

@@ -351,6 +351,7 @@
 	display: block;
 	margin-bottom: 5px;
 	font-size: 14px;
+	color: #686868;
 }
 .jynoticelist>div:first-of-type>.type{
 	margin: 0px;
@@ -417,17 +418,17 @@
 }
 .jynoticelist .priceStyle{
 	position: absolute;
-    top: 47px;
-    font-size: 13px;
+    bottom: 10px;
+    font-size: 14px;
     right: 7px;
-    color: #a0a0a0;
+    color: #686868;
 }
 .qy-followcancel{
 	background-color: #FE737A;
     color: #FFFFFF;
-    line-height: 50px;
-    margin-left: 20px;
-    margin-right: 20px;
+    line-height: 45px;
+    margin-left: 15px;
+    margin-right: 15px;
     border-radius: 3px;
     font-size: 18px;
     margin-top: 20px;
@@ -435,6 +436,18 @@
 	margin-bottom: 20px;
 
 }
+.gz-followcancel{
+	background-color: #2cb7ca;
+    color: #FFFFFF;
+    line-height: 45px;
+    margin-left: 15px;
+    margin-right: 15px;
+    border-radius: 3px;
+    font-size: 18px;
+    margin-top: 20px;
+    text-align: center;
+	margin-bottom: 20px;
+}
 .setpage .noticehead{
 	background-color: #F8F8F8;	
 	border-bottom: 1px solid #ddd;

+ 4 - 3
src/jfw/modules/followent/src/web/templates/weixin/list.html

@@ -17,6 +17,7 @@ if(sessionStorage){
 <script src="/jylab/followent/js/common.js?v={{Msg "seo" "version"}}"></script>
 <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
 <script src="/jylab/followent/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>
+
 <script type="text/javascript">
 	$(function () {
         {{if .T.datas}}
@@ -39,9 +40,9 @@ if(sessionStorage){
             }
 
             var listno = parseInt(i)+parseInt(1);
-            allHtml +="<li data-id='"+data[i]["_id"]+"' data-winner='"+data[i]["winner"]+"' Sort='"+l_createtime+"'>"
+            allHtml +="<li data-id='"+data[i]["s_id"]+"' data-winner='"+data[i]["winner"]+"' Sort='"+l_createtime+"'>"
                 +"<div class='jyfwlistno'>"+listno+".</div>"
-                +"<div class='jyfwlisttitle'>"+(data[i]["winner"]?data[i]["winner"]:data[i]["winner"])+"</div>"
+                +"<div class='jyfwlisttitle' style='width:88%;'>"+(data[i]["winner"]?data[i]["winner"]:data[i]["winner"])+"</div>"
                 +"<div style='clear:both;'></div>"+rem
                 +"<img src='/images/wx/d.png' class='arrow-right'>"
                 +"<div class='jytimest'>"
@@ -71,7 +72,7 @@ if(sessionStorage){
 	<ul>
 	</ul>
 	<div class="divbtn"{{if .T.datas}}{{if eq (len .T.datas) 10}} disabled="disabled"{{end}}{{end}}>
-		<div id="addDiv" style="background-color: #2cb7ca;color: #FFFFFF;line-height:50px;margin-left: 20px;margin-right: 20px;border-radius: 3px;font-size: 18px;">+ 添加关注的企业</div>
+		<div id="addDiv" style="background-color: #2cb7ca;color: #FFFFFF;line-height:45px;margin-left: 15px;margin-right: 15px;border-radius: 3px;font-size: 18px;">+ 添加关注的企业</div>
 	</div>
 	<div class="tip" style="margin-top: 10px;display: none">
 		<img src="/images/wx/jyprompt.png">剑鱼提示:<front>可关注{{.T.followLimit}}个企业</front>

+ 79 - 10
src/jfw/modules/followent/src/web/templates/weixin/set.html

@@ -15,18 +15,35 @@
 <script src="/jylab/followent/js/jy.js?v={{Msg "seo" "version"}}"></script>
 <script type="text/javascript">
 	var data = {{.T.data}};
-	var winner = {{.T.winner}};
-	
+	var winner = {{.T.winner}}; //企业名称
+	var id = {{.T.id}}; //企业id        
 	$(function(){
+		//查询用户是否关注此企业
+		$.post(
+			"/jylab/followent/followYorN",
+			{"id":id,"winner":winner},
+			function(data){
+				if(data["follow"] == "n"){
+					$(".gz-followcancel").removeClass("hidden");
+				}else{
+					$(".qy-followcancel").removeClass("hidden");
+				}
+				id = data["s_id"]
+				console.log("111111111"+id)
+				
+			}
+		)
+		console.log("222222222"+id)
 		var easyPopup = new EasyPopup("easypopup");
 		$(".noticehead").html(winner)
 		
 		for(var i = 0; i < data.length; i++){
 			var noticetime = '';
 			var type = '';
+			var amountHtml = '';
 			var listhtml = '';
 			var title = data[i]["title"];
-			var amount = parseInt(data[i]["bidamount"])/10000
+			var amount = data[i]["bidamount"];
 
 			if(data[i]["publishtime"]){
 				noticetime = new Date(Number(data[i]["publishtime"]+"000")).Format("MM-dd");	
@@ -34,6 +51,10 @@
 			if(typeof(data[i]["subtype"]) != "undefined" && data[i]["subtype"] != "" && data[i]["subtype"] !=null){
 				type = data[i]["subtype"];
 			}
+			if(typeof(amount) != "undefined" && amount != null && amount != ""){
+				amount = parseInt(amount)/1000;
+				amountHtml = '<span class="priceStyle">'+amount+'万元中标</span>';
+			}
 			listhtml = '<div class="jynoticelist">'
 			   	 			+'<div>'
 			        			+'<span class="noticetime">'+noticetime+'</span>'
@@ -44,26 +65,70 @@
 			    	 		+'</div>'
 			       			+'<div>'
 								+title
-								+'<span class="priceStyle">'+amount+'万元中标</span>'
+								+amountHtml
 			       			+'</div>'
 			    		+'</div>'
 			$(".jynotice").append(listhtml)			
 		}
+		//取消企业关注
 		$(".qy-followcancel").click(function(){
 			easyPopup.show();
 		})
 		//确定
 		$("#sure").click(function(){
 			easyPopup.hide();
-			EasyAlert.show("已取消关注");
-			setTimeout(function(){
-				window.location.href = "/followEnt/entList";
-			},500);
+			console.log(id)
+			if(id == ""){
+				EasyAlert.show("取消失败!");
+			}
+			//发送Ajax请求,取消关注
+			$.post(
+				"/jylab/followent/qgFollow",
+				{"id":id},
+				function(r){
+					if(r.status == "y"){
+						console.log("取消")
+						EasyAlert.show("已取消关注")
+						setTimeout(function(){
+							window.location.href = "/jylab/followent/entList";
+						},1000)
+					}
+				}				
+			)			
 		});
 		//取消
 		$("#cancel").click(function(){
 			easyPopup.hide();
 		});
+		
+		//关注企业
+		$(".gz-followcancel").click(function(){
+			$.post(
+				"/jylab/followent/addfwent",
+				{"id":id,"winner":winner},
+				function(r){
+					console.log(r);
+					if(r.status == "y" || r.status == "e"){
+                   		if(sessionStorage){
+                        sessionStorage.version="0";
+                   		}
+                  		//window.location.href = "/followeEnt/set/add/"+r.id;
+                  		EasyAlert.show('已关注"'+winner+'"')
+						setTimeout(function(){
+							window.location.href = "/jylab/followent/entList";
+						},1000)
+						
+               		}else if(r.status == "m"){
+                    	EasyAlert.show("最多可关注10个企业!");
+               		}else{
+                   		EasyAlert.show("数据提交失败!");
+                	}
+				}
+			)
+		})
+		
+		
+		
 	})
 	
 </script>
@@ -75,14 +140,18 @@
 		<li class="jynotice">	
 		</li>
 	</ul>
-	<div class="qy-followcancel">
+	<div class="qy-followcancel hidden">
 		取消企业关注
 	</div>
+	<div class="gz-followcancel hidden">
+		关注此企业
+	</div>
+	
 	<div class="easypopup" id="easypopup">
 		<div class="easypopup-main" style="margin-top: -77.5px;">
 			<div class="easypopup-header">提示信息</div>
 			<div class="easypopup-content" style="text-align:center;">
-				取消对"万达集团股份有限公司"关注?
+				取消对"{{.T.winner}}"关注?
 			</div>
 			<div class="easypopup-footer">
 				<button class="btn" id="sure">确定</button>

BIN
src/web/staticres/images/contactway.jpg


BIN
src/web/staticres/images/coopbanner1.jpg


BIN
src/web/staticres/images/datacooperation.jpg


BIN
src/web/staticres/images/fenge.jpg


BIN
src/web/staticres/images/fenge.png


BIN
src/web/staticres/images/othercooperation.jpg


BIN
src/web/staticres/images/pc-envelope.png


BIN
src/web/staticres/images/wx/contactway.jpg


BIN
src/web/staticres/images/wx/dataCooperation.png


BIN
src/web/staticres/images/wx/envelope.png


BIN
src/web/staticres/images/wx/otherCooperation.png


BIN
src/web/staticres/images/wx/serviceCooperation.png


BIN
src/web/staticres/images/zengzhihezuo.png


+ 214 - 0
src/web/templates/pc/businesscooperation.html

@@ -0,0 +1,214 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <title>商务合作</title>
+    {{include "/common/pnc.html"}}
+    <link href="/css/pc.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+    <style>
+        .coopbanner1{
+            background: url(../images/coopbanner1.jpg) center center no-repeat;
+            background-size: cover;
+            height: 500px;
+        }
+        .coopbanner2{
+            position: relative;
+            background: url(../images/datacooperation.jpg) center center no-repeat;
+            background-size: cover;
+            height: 650px;
+        }
+        .coopbanner2 .title{
+            position: absolute;
+            width: 100%;
+            top: 70px;
+            font-size: 30px;
+            text-align: center;
+            color: #1d1d1d;
+        }
+        .coopbanner2 .content1{
+            position: absolute;
+            width: 42%;
+            left: 50%;
+            top: 174px;
+            margin-left: -266px;
+            font-size: 18px;
+            /*text-align: center;*/
+            color: #252627;
+        }
+        .coopbanner2 .content2{
+            position: absolute;
+            width: 44%;
+            left: 50%;
+            top: 205px;
+            margin-left: -266px;
+            font-size: 18px;
+            /*text-align: center;*/
+            color: #252627;
+        }
+        .coopbanner3{
+            position: relative;
+            background: -webkit-linear-gradient(left, rgba(16,73,167,1) , rgba(26,128,229,1));/* Safari 5.1 - 6.0 */
+            background: -o-linear-gradient(right, rgba(16,73,167,1), rgba(26,128,229,1));   /* Opera 11.1 - 12.0 */
+            background: -moz-linear-gradient(right, rgba(16,73,167,1), rgba(26,128,229,1)); /* Firefox 3.6 - 15 */
+            background: linear-gradient(to right, rgba(16,73,167,1) , rgba(26,128,229,1));  /* 标准语法ie9 */
+            FILTER:progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=rgba(16,73,167,1),endColorStr=rgba(26,128,229,1)); /*IE 6 7 8*/
+            height: 535px;
+        }
+        .coopbanner3 img{
+            position: absolute;
+            top: 116px;
+            left: 50%;
+            margin-left: -166px;
+        }
+        .coopbanner3 .title{
+            position: absolute;
+            width: 100%;
+            top: 70px;
+            font-size: 30px;
+            text-align: center;
+            color: #FFFFFF;
+        }
+        .coopbanner3 .content1{
+            position: absolute;
+            width: 38%;
+            left: 50%;
+            top: 252px;
+            margin-left: 85px;
+            font-size: 22px;
+            /*text-align: center;*/
+            color: #FFFFFF;
+        }
+        .coopbanner3 .content2{
+            position: absolute;
+            width: 38%;
+            left: 50%;
+            top: 290px;
+            margin-left: 85px;
+            font-size: 18px;
+            /*text-align: center;*/
+            color: #FFFFFF;
+        }
+        .coopbanner3 .content3{
+            position: absolute;
+            width: 38%;
+            left: 50%;
+            top: 320px;
+            margin-left: 85px;
+            font-size: 18px;
+            /*text-align: center;*/
+            color: #FFFFFF;
+        }
+        .coopbanner3 .zengzhiimg{
+            position: absolute;
+            width: 546px;
+            height: 328px;
+            top: 182px;
+            left: 50%;
+            margin-left: -566px;
+        }
+        .coopbanner4{
+            position: relative;
+            background: url(../images/othercooperation.jpg) center center no-repeat;
+            background-size: cover;
+            height: 300px;
+        }
+        .coopbanner4 .title{
+            position: absolute;
+            width: 100%;
+            top: 60px;
+            font-size: 30px;
+            text-align: center;
+            color: #0069d2;
+        }
+        .coopbanner4 .content{
+            position: absolute;
+            width: 534px;
+            left: 50%;
+            top: 174px;
+            margin-left: -267px;
+            font-size: 18px;
+            /*text-align: center;*/
+            color: #252627;
+        }
+        .coopbanner5{
+            position: relative;
+            background: url(../images/contactway.jpg) center center no-repeat;
+            background-size: cover;
+            height: 320px;
+        }
+        .coopbanner5 .title{
+            position: absolute;
+            width: 100%;
+            top: 60px;
+            font-size: 30px;
+            text-align: center;
+            color: #1d1d1d;
+        }
+        .coopbanner5 .content{
+            position: absolute;
+            width: 100%;
+            top: 73%;
+            text-align: center;
+            padding-left: 20px;
+            padding-right: 20px;
+            font-size: 14px;
+            color: #686868;
+        }
+        .coopbanner5 .emailbutton{
+            position: absolute;
+            /*margin: 0 auto;*/
+            top: 55%;
+            left: 50%;
+            margin-left: -112px;
+            width: 225px;
+            height: 40px;
+            border:2px solid rgba(0,167,190,1);
+        }
+        .coopbanner5 .emailbutton img{
+            width: 22px;
+            height: 16px;
+            margin-top: 11px;
+            margin-left: 20px;
+        }
+        .coopbanner5 .emailbutton div{
+            position: absolute;
+            left: 60px;
+            top: 5px;
+            color: rgba(0,167,190,1);
+            font-size: 18px;
+        }
+    </style>
+</head>
+<body class="indexpage">
+{{include "/common/pchead.html"}}
+<div class="coopbanner1"></div>
+<div class="coopbanner2">
+    <div class="title">数据合作</div>
+    <div class="content1">&nbsp&nbsp&nbsp&nbsp剑鱼招标订阅拥有千万级数量的招标、拟建和中标等项目信息,</div>
+    <div class="content2">覆盖全国全行业,可用于行业网站,CRM系统,企业级服务等方面。</div>
+</div>
+<div class="coopbanner3">
+    <img src="/images/fenge.png">
+    <div class="title">增值服务合作</div>
+    <div class="content1">合作商为剑鱼招标订阅用户提供商业增值服务,</div>
+    <div class="content2">要求合作商在招投标领域有丰富经验和行业样板客户,</div>
+    <div class="content3">能独立为用户提供招投标商业服务。</div>
+    <img class="zengzhiimg" src="/images/zengzhihezuo.png">
+</div>
+<div class="coopbanner4">
+    <div class="title">其他合作</div>
+    <div class="content">&nbsp&nbsp以上合作方式如不能满足您的需求,您可以直接与我们联系洽谈。</div>
+</div>
+<div class="coopbanner5">
+    <div class="title">联系方式</div>
+    <div class="emailbutton">
+        <img src="/images/pc-envelope.png">
+        <div>jy@topnet.net.cn</div>
+    </div>
+    <div class="content">(邮件内容应包含:公司名称、联系人、联系方式和合作需求等)</div>
+</div>
+
+{{include "/common/pcbottom.html"}}
+{{include "/common/baiducc.html"}}
+</body>
+</html>

+ 150 - 0
src/web/templates/weixin/about.html

@@ -101,6 +101,130 @@
 				    top: 161px;
 				    margin: auto
 			}
+
+			.cooperationchild1 {
+				position: relative;
+				width: 100%;
+			}
+			.cooperationchild1 img{
+				position: relative;
+				width: 100%;
+			}
+			.cooperationchild1 .childtitle{
+				position: absolute;
+				width: 100%;
+				text-align: center;
+				top: 8%;
+				font-size: 19px;
+			}
+			.cooperationchild1 .childcontent{
+				position: absolute;
+				width: 100%;
+				top: 23%;
+				text-align: center;
+				padding-left: 20px;
+				padding-right: 20px;
+				font-size: 15px;
+			}
+			.cooperationchild2 {
+				position: relative;
+				width: 100%;
+			}
+			.cooperationchild2 img{
+				position: relative;
+				width: 100%;
+			}
+			.cooperationchild2 .childtitle{
+				position: absolute;
+				width: 100%;
+				text-align: center;
+				top: 8%;
+				font-size: 19px;
+				color: #FFFFFF;
+			}
+			.cooperationchild2 .childcontent{
+				position: absolute;
+				width: 100%;
+				top: 23%;
+				text-align: center;
+				padding-left: 20px;
+				padding-right: 20px;
+				font-size: 15px;
+				color: #FFFFFF;
+			}
+			.cooperationchild3 {
+				position: relative;
+				width: 100%;
+			}
+			.cooperationchild3 img{
+				position: relative;
+				width: 100%;
+			}
+			.cooperationchild3 .childtitle{
+				position: absolute;
+				width: 100%;
+				text-align: center;
+				top: 17%;
+				font-size: 19px;
+				color: #0069d2;
+			}
+			.cooperationchild3 .childcontent{
+				position: absolute;
+				width: 100%;
+				top: 50%;
+				text-align: center;
+				padding-left: 50px;
+				padding-right: 50px;
+				font-size: 15px;
+			}
+			.cooperationchild4 {
+				position: relative;
+				width: 100%;
+			}
+			.cooperationchild4 img{
+				position: relative;
+				width: 100%;
+			}
+			.cooperationchild4 .childtitle{
+				position: absolute;
+				width: 100%;
+				text-align: center;
+				top: 16%;
+				font-size: 19px;
+			}
+			.cooperationchild4 .childcontent{
+				position: absolute;
+				width: 100%;
+				top: 68%;
+				text-align: center;
+				padding-left: 20px;
+				padding-right: 20px;
+				font-size: 12px;
+				color: #686868;
+			}
+			.cooperationchild4 .emailbutton{
+				position: absolute;
+				margin: 0 auto;
+				top: 47%;
+				left: 50%;
+				margin-left: -95px;
+				width: 190px;
+				height: 35px;
+				border:1px solid rgba(0,167,190,1);
+			}
+			.cooperationchild4 .emailbutton img{
+				width: 20px;
+				height: 15px;
+				margin-top: 10px;
+				margin-left: 20px;
+			}
+			.cooperationchild4 .emailbutton div{
+				position: absolute;
+				left: 50px;
+				top: 5px;
+				color: rgba(0,167,190,1);
+				font-size: 16px;
+			}
 		</style>
 	</head>
 <body class="jyabout">
@@ -261,6 +385,32 @@
 			</div>
 		</div>
 	</div>
+	<div class="cooperation">
+		<div class="cooperationchild1">
+			<img src="/images/wx/dataCooperation.png">
+			<div class="childtitle">数据合作</div>
+			<div class="childcontent">剑鱼招标订阅拥有千万级数量的招标、拟建和中标等项目信息,覆盖全国全行业,可用于行业网站,CRM系统,企业级服务等方面。</div>
+		</div>
+		<div class="cooperationchild2">
+			<img src="/images/wx/serviceCooperation.png">
+			<div class="childtitle">增值服务合作</div>
+			<div class="childcontent">合作商为剑鱼招标订阅用户提供商业增值服务,要求合作商在招投标领域有丰富经验和行业样板客户,能独立为用户提供招投标商业服务。</div>
+		</div>
+		<div class="cooperationchild3">
+			<img src="/images/wx/otherCooperation.png">
+			<div class="childtitle">其他合作</div>
+			<div class="childcontent">以上合作方式如不能满足您的需求,您可以直接与我们联系洽谈。</div>
+		</div>
+		<div class="cooperationchild4">
+			<img src="/images/wx/contactway.jpg">
+			<div class="childtitle">联系方式</div>
+			<div class="emailbutton">
+				<img src="/images/wx/envelope.png">
+				<div>jy@topnet.net.cn</div>
+			</div>
+			<div class="childcontent">(邮件内容应包含:公司名称、联系人、联系方式和合作需求等)</div>
+		</div>
+	</div>
 </div>
 
 <script src="/js/jquery.js"></script>