Browse Source

三级页数据

renjiaojiao 1 năm trước cách đây
mục cha
commit
e2644fab5d

+ 2 - 1
internal/controller/detail.go

@@ -8,13 +8,14 @@ import (
 )
 )
 
 
 func BiddingDetail(r *ghttp.Request) {
 func BiddingDetail(r *ghttp.Request) {
+	//classNode := service.JyBxSeoClassRoot.GetNodeByCode(code)
 	isLogin := utility.JySessionLoginEd(r)
 	isLogin := utility.JySessionLoginEd(r)
 	seoId := r.Get("seoId").String()
 	seoId := r.Get("seoId").String()
 	if seoId == "" {
 	if seoId == "" {
 		utility.HtmlRender.NotFound(r)
 		utility.HtmlRender.NotFound(r)
 		return
 		return
 	}
 	}
-	detail := service.JyBxSeoDetailRoot.GetDetail(seoId, isLogin)
+	detail := service.JyBxSeoDetailRoot.GetDetail(r.Context(), seoId, isLogin)
 	utility.HtmlRender.Render(r, utility.GetCommonRenderPatch(r.Request.UserAgent(), "detail.html"),
 	utility.HtmlRender.Render(r, utility.GetCommonRenderPatch(r.Request.UserAgent(), "detail.html"),
 		g.Map{
 		g.Map{
 			"detail": detail,
 			"detail": detail,

+ 33 - 41
internal/service/detailStruct.go

@@ -14,29 +14,11 @@ import (
 var (
 var (
 	JyBxSeoDetailRoot    *DetailRoot = &DetailRoot{}
 	JyBxSeoDetailRoot    *DetailRoot = &DetailRoot{}
 	DetailNeedMosaic     map[string]interface{}
 	DetailNeedMosaic     map[string]interface{}
-	PreviewClassTemplate = map[int]string{
-		1: "%s于%s委托%s发布了一条%s信息:%s,请有意向开展业务合作的企业尽快与采购联系人接洽,提前介入,及时跟踪项目进展。本条项目信息由剑鱼标讯%s为您提供。",
-		2: "%s,%s在网上公示了一条招标预告信息:%s,请有意向参与竞标的企业单位,尽快与项目负责人进行业务对接,不要错过投标机会。",
-		3: "%s,%s新增了一项%s信息,项目名称为:%s。项目已具备招标条件,特邀请有意向的潜在投标人积极参与。",
-	}
-	BidTemplate = map[int]string{
-		1: "%s,%s受招标人%s委托对下列产品及服务进行%s。采购的标的信息为:%s、%s等,请有意向参与竞标的企业单位及时联系招标机构,咨询具体招标要求,妥善准备投标事项。本条项目信息由剑鱼标讯%s为您提供。",
-		2: "本招标项目为%s,项目地点位于%s,项目总投资金额%s元。招标人要求投标单位具备相应的资质和经验,并能够按照招标文件的要求提供详细的技术方案和报价。投标截止日期为%s,中标单位将获得与招标人签订正式合同的机会。有意参与本次招标的单位请在规定时间内提交相关材料。",
-		3: "%s于%s在发布了新的招标公告信息:%s,剑鱼标讯%s为您提供该项目的详细信息。请有意向参与投标的企业尽快联系项目负责人,提前接洽项目具体要求,以免错失投标机会。",
-		4: "%s,%s新增了一项招标公告信息,项目名称为:%s,本条项目信息由剑鱼标讯%s为您提供。",
-	}
-	WinBidTemplate = map[int]string{
-		1: "剑鱼标讯%s获悉,%s,%s中标结果公布,中标供应商为%s。投标人或者其他利害关系人如果认为该中标结果公告存在违法违规行为的,可以依法向有关行政监督部门投诉。",
-		2: "%s,由%s发起的%s的招标需求,收到多家参与竞标企业的有效投标文件。在经过评标专家委员会的严格评审之后,最终确定了%s作为本次招标项目的中标供应商。",
-		3: "%s 受业主单位%s委托采购的%s评审工作已于%s前完成,中标单位为%s,剑鱼标讯%s为您提供详细的%s公告信息,现将成交供应商名单进行公示。",
-		4: "%s,%s新增了一项%s公告信息,项目名称为:%s。本条项目信息由剑鱼标讯%s为您提供。",
-	}
-	CreditBidTemplate = map[int]string{
-		1: "%s,%s负责采购的%s发布%s公告,供应商(乙方)为:%s。本项目由剑鱼标讯%s为您提供,查看详情请登录/注册。",
-		2: "%s,%s新增了一条%s公告信息,项目名称为:%s,该项目被%s成功中标。",
-		3: "%s,相关监督管理机构新增一则违规公告信息:%s,违规内容详情请注册/登录后查看。",
-	}
-	Field = ""
+	PreviewClassTemplate = map[string]string{}
+	BidTemplate          = map[string]string{}
+	WinBidTemplate       = map[string]string{}
+	CreditBidTemplate    = map[string]string{}
+	BottomDescribe       string
 )
 )
 
 
 type (
 type (
@@ -46,17 +28,22 @@ type (
 // GetDetail 根据seoId查询标讯详情
 // GetDetail 根据seoId查询标讯详情
 // seoId 标讯seoId标识
 // seoId 标讯seoId标识
 // isLogin 是否登录,未登录内容加密
 // isLogin 是否登录,未登录内容加密
-func (dRoot *DetailRoot) GetDetail(seoId string, isLogin bool) map[string]interface{} {
-	aobj, ok := utility.BiddingMgo.FindById("bidding", seoId, nil)
-	if ok && aobj != nil && len(*aobj) > 0 {
-		obj := *aobj
+func (dRoot *DetailRoot) GetDetail(ctx context.Context, seoId string, isLogin bool) map[string]interface{} {
+	res, err := g.DB().GetOne(ctx, fmt.Sprintf(`SELECT col.bid_id FROM jyseo.column_bidList col   WHERE col.seo_id = '%s'`, seoId))
+	if err != nil || res.IsEmpty() {
+		return nil
+	}
+	data, ok := utility.BiddingMgo.FindById("bidding", gconv.String(res["bid_id"]), nil)
+	if ok && data != nil && len(*data) > 0 {
+		obj := *data
 		if !isLogin {
 		if !isLogin {
 			obj = Filter(obj)
 			obj = Filter(obj)
 		}
 		}
 		obj["abstract"] = GetAbstractInfo(obj)
 		obj["abstract"] = GetAbstractInfo(obj)
+		obj["time"] = time.Unix(gconv.Int64(obj["publishtime"]), 0).Format(time.DateTime)
+		obj["bottomAbstract"] = fmt.Sprintf(g.Cfg("global").MustGet(context.Background(), "bottomDescribe").String(), "子站名称")
 		return obj
 		return obj
 	}
 	}
-
 	return nil
 	return nil
 }
 }
 
 
@@ -127,10 +114,11 @@ func GetAbstractInfo(obj map[string]interface{}) string {
 	topType := gconv.String(obj["toptype"])
 	topType := gconv.String(obj["toptype"])
 	switch topType {
 	switch topType {
 	case "招标":
 	case "招标":
+		BidTemplate = g.Cfg("global").MustGet(context.Background(), "bidTemplate").MapStrStr()
 		subType := gconv.String(obj["subType"])
 		subType := gconv.String(obj["subType"])
 		if subType == "变更" || subType == "单一" || subType == "邀标" {
 		if subType == "变更" || subType == "单一" || subType == "邀标" {
 			if gconv.String(obj["buyer"]) != "" && gconv.String(obj["title"]) != "" {
 			if gconv.String(obj["buyer"]) != "" && gconv.String(obj["title"]) != "" {
-				abs = fmt.Sprintf(BidTemplate[4], date, gconv.String(obj["buyer"]), gconv.String(obj["title"]), "分站名称")
+				abs = fmt.Sprintf(BidTemplate["tmp4"], date, gconv.String(obj["buyer"]), gconv.String(obj["title"]), "分站名称")
 			}
 			}
 		}
 		}
 		if subType != "变更" && subType != "单一" && subType != "邀标" && gconv.String(obj["agency"]) != "" {
 		if subType != "变更" && subType != "单一" && subType != "邀标" && gconv.String(obj["agency"]) != "" {
@@ -138,18 +126,19 @@ func GetAbstractInfo(obj map[string]interface{}) string {
 				r := rand.New(rand.NewSource(time.Now().UnixNano()))
 				r := rand.New(rand.NewSource(time.Now().UnixNano()))
 				number := r.Intn(2) + 2
 				number := r.Intn(2) + 2
 				if number == 2 {
 				if number == 2 {
-					abs = fmt.Sprintf(BidTemplate[2], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["title"]))
+					abs = fmt.Sprintf(BidTemplate["tmp2"], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["title"]))
 				} else {
 				} else {
-					abs = fmt.Sprintf(BidTemplate[3], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["subtype"]), gconv.String(obj["title"]))
+					abs = fmt.Sprintf(BidTemplate["tmp3"], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["subtype"]), gconv.String(obj["title"]))
 				}
 				}
 			}
 			}
 		}
 		}
 	case "结果":
 	case "结果":
+		WinBidTemplate = g.Cfg("global").MustGet(context.Background(), "winBidTemplate").MapStrStr()
 		subType := gconv.String(obj["subtype"])
 		subType := gconv.String(obj["subtype"])
 		if subType == "中标" || subType == "成交" {
 		if subType == "中标" || subType == "成交" {
 			if gconv.String(obj["agency"]) != "" {
 			if gconv.String(obj["agency"]) != "" {
 				if gconv.String(obj["title"]) != "" && gconv.String(obj["winner"]) != "" {
 				if gconv.String(obj["title"]) != "" && gconv.String(obj["winner"]) != "" {
-					abs = fmt.Sprintf(WinBidTemplate[3], gconv.String(obj["agency"]), gconv.String(obj["buyer"]), gconv.String(obj["title"]), dateStr, gconv.String(obj["s_winner"]), "分站名称", gconv.String(obj["subtype"]))
+					abs = fmt.Sprintf(WinBidTemplate["tmp3"], gconv.String(obj["agency"]), gconv.String(obj["buyer"]), gconv.String(obj["title"]), dateStr, gconv.String(obj["s_winner"]), "分站名称", gconv.String(obj["subtype"]))
 				}
 				}
 			} else {
 			} else {
 				if gconv.String(obj["buyer"]) != "" && gconv.String(obj["title"]) != "" && gconv.String(obj["s_winner"]) != "" {
 				if gconv.String(obj["buyer"]) != "" && gconv.String(obj["title"]) != "" && gconv.String(obj["s_winner"]) != "" {
@@ -157,46 +146,49 @@ func GetAbstractInfo(obj map[string]interface{}) string {
 					number := r.Intn(2) + 1
 					number := r.Intn(2) + 1
 					if number == 1 {
 					if number == 1 {
 						winner := strings.Join(strings.Split(gconv.String(obj["s_winner"]), ","), "、")
 						winner := strings.Join(strings.Split(gconv.String(obj["s_winner"]), ","), "、")
-						abs = fmt.Sprintf(WinBidTemplate[1], "分站名称", dateStr, gconv.String(obj["title"]), winner)
+						abs = fmt.Sprintf(WinBidTemplate["tmp1"], "分站名称", dateStr, gconv.String(obj["title"]), winner)
 					} else {
 					} else {
-						abs = fmt.Sprintf(WinBidTemplate[2], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["title"]), gconv.String(obj["s_winner"]))
+						abs = fmt.Sprintf(WinBidTemplate["tmp2"], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["title"]), gconv.String(obj["s_winner"]))
 					}
 					}
 				}
 				}
 			}
 			}
 		}
 		}
 		if subType == "流标" || subType == "废标" || subType == "结果变更" {
 		if subType == "流标" || subType == "废标" || subType == "结果变更" {
-			abs = fmt.Sprintf(WinBidTemplate[4], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["subtype"]), gconv.String(obj["title"]), "分站名称")
+			abs = fmt.Sprintf(gconv.String(WinBidTemplate["tmp4"]), dateStr, gconv.String(obj["buyer"]), gconv.String(obj["subtype"]), gconv.String(obj["title"]), "分站名称")
 		}
 		}
 	case "预告":
 	case "预告":
+
+		PreviewClassTemplate = g.Cfg("global").MustGet(context.Background(), "previewClassTemplate").MapStrStr()
 		if gconv.String(obj["agency"]) != "" {
 		if gconv.String(obj["agency"]) != "" {
 			if gconv.String(obj["buyer"]) != "" && gconv.String(obj["subtype"]) != "" && gconv.String(obj["title"]) != "" {
 			if gconv.String(obj["buyer"]) != "" && gconv.String(obj["subtype"]) != "" && gconv.String(obj["title"]) != "" {
-				abs = fmt.Sprintf(PreviewClassTemplate[1], gconv.String(obj["buyer"]), dateStr, gconv.String(obj["agency"]), gconv.String(obj["subtype"]), gconv.String(obj["title"]), "分站名称")
+				abs = fmt.Sprintf(PreviewClassTemplate["tmp1"], gconv.String(obj["buyer"]), dateStr, gconv.String(obj["agency"]), gconv.String(obj["subtype"]), gconv.String(obj["title"]), "分站名称")
 			}
 			}
 		} else {
 		} else {
 			if gconv.String(obj["buyer"]) != "" && gconv.String(obj["subtype"]) != "" && gconv.String(obj["title"]) != "" {
 			if gconv.String(obj["buyer"]) != "" && gconv.String(obj["subtype"]) != "" && gconv.String(obj["title"]) != "" {
 				r := rand.New(rand.NewSource(time.Now().UnixNano()))
 				r := rand.New(rand.NewSource(time.Now().UnixNano()))
 				number := r.Intn(2) + 2
 				number := r.Intn(2) + 2
 				if number == 2 {
 				if number == 2 {
-					abs = fmt.Sprintf(PreviewClassTemplate[2], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["title"]))
+					abs = fmt.Sprintf(PreviewClassTemplate["tmp2"], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["title"]))
 				} else {
 				} else {
-					abs = fmt.Sprintf(PreviewClassTemplate[3], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["subtype"]), gconv.String(obj["title"]))
+					abs = fmt.Sprintf(PreviewClassTemplate["tmp3"], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["subtype"]), gconv.String(obj["title"]))
 				}
 				}
 			}
 			}
 		}
 		}
 	case "其他":
 	case "其他":
+		CreditBidTemplate = g.Cfg("global").MustGet(context.Background(), "creditBidTemplate").MapStrStr()
 		subType := gconv.String(obj["subtype"])
 		subType := gconv.String(obj["subtype"])
 		if subType == "合同" || subType == "验收" {
 		if subType == "合同" || subType == "验收" {
 			if gconv.String(obj["buyer"]) != "" && gconv.String(obj["title"]) != "" && gconv.String(obj["subtype"]) != "" && gconv.String(obj["s_winner"]) != "" {
 			if gconv.String(obj["buyer"]) != "" && gconv.String(obj["title"]) != "" && gconv.String(obj["subtype"]) != "" && gconv.String(obj["s_winner"]) != "" {
 				r := rand.New(rand.NewSource(time.Now().UnixNano()))
 				r := rand.New(rand.NewSource(time.Now().UnixNano()))
 				number := r.Intn(2) + 1
 				number := r.Intn(2) + 1
 				if number == 1 {
 				if number == 1 {
-					abs = fmt.Sprintf(CreditBidTemplate[1], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["title"]), gconv.String(obj["subtype"]), gconv.String(obj["s_winner"]), "分站名称")
+					abs = fmt.Sprintf(CreditBidTemplate["tmp1"], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["title"]), gconv.String(obj["subtype"]), gconv.String(obj["s_winner"]), "分站名称")
 				} else {
 				} else {
-					abs = fmt.Sprintf(CreditBidTemplate[2], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["subtype"]), gconv.String(obj["title"]), gconv.String(obj["s_winner"]))
+					abs = fmt.Sprintf(CreditBidTemplate["tmp2"], dateStr, gconv.String(obj["buyer"]), gconv.String(obj["subtype"]), gconv.String(obj["title"]), gconv.String(obj["s_winner"]))
 				}
 				}
 			}
 			}
 		} else if subType == "违规" {
 		} else if subType == "违规" {
-			abs = fmt.Sprintf(CreditBidTemplate[2], dateStr, gconv.String(obj["title"]))
+			abs = fmt.Sprintf(CreditBidTemplate["tmp2"], dateStr, gconv.String(obj["title"]))
 		}
 		}
 	}
 	}
 	return abs
 	return abs

+ 10 - 9
manifest/config/config.yaml

@@ -26,22 +26,23 @@ mongodb:
     dbName: "qfw"
     dbName: "qfw"
     replSet: ""
     replSet: ""
   bidding:
   bidding:
-    address: "192.168.3.206:27080"
+    address: "192.168.3.206:27002"
     size: 5
     size: 5
-    dbName: "qfw"
+    dbName: "qfw_data"
     replSet: ""
     replSet: ""
-
+    userName: "jyDevGroup"
+    password: "jy@DevGroup"
 
 
 redis:
 redis:
   default: # 配置seo的redis
   default: # 配置seo的redis
-    address: 127.0.0.1:6379
-    #address: 192.168.3.149:1712
+    #address: 127.0.0.1:6379
+    address: 192.168.3.149:1712
   other: # 广告位
   other: # 广告位
-    #address: 192.168.3.149:1712
-    address: 127.0.0.1:6379
+    address: 192.168.3.149:1712
+    #address: 127.0.0.1:6379
   session: # session
   session: # session
-    #address: 192.168.3.149:1712
-    address: 127.0.0.1:6379
+    address: 192.168.3.149:1712
+    #address: 127.0.0.1:6379
 
 
 listPageSetting:
 listPageSetting:
   pageSize: 20 #每页20条
   pageSize: 20 #每页20条

+ 31 - 1
manifest/config/global.yaml

@@ -1166,5 +1166,35 @@ detailNeedMosaic:
   agencytel: true
   agencytel: true
   budget: true
   budget: true
   bidamount: true
   bidamount: true
-  detailMosaic: "*"
+
+detailMosaic: "*"
+
+testStr: 1234
+
+previewClassTemplate:
+  tmp1: "%s于%s委托%s发布了一条%s信息:%s,请有意向开展业务合作的企业尽快与采购联系人接洽,提前介入,及时跟踪项目进展。本条项目信息由剑鱼标讯%s为您提供。"
+  tmp2: "%s,%s在网上公示了一条招标预告信息:%s,请有意向参与竞标的企业单位,尽快与项目负责人进行业务对接,不要错过投标机会。"
+  tmp3: "%s,%s新增了一项%s信息,项目名称为:%s。项目已具备招标条件,特邀请有意向的潜在投标人积极参与。"
+
+bidTemplate:
+  tmp1: "%s,%s受招标人%s委托对下列产品及服务进行%s。采购的标的信息为:%s、%s等,请有意向参与竞标的企业单位及时联系招标机构,咨询具体招标要求,妥善准备投标事项。本条项目信息由剑鱼标讯%s为您提供。"
+  tmp2: "本招标项目为%s,项目地点位于%s,项目总投资金额%s元。招标人要求投标单位具备相应的资质和经验,并能够按照招标文件的要求提供详细的技术方案和报价。投标截止日期为%s,中标单位将获得与招标人签订正式合同的机会。有意参与本次招标的单位请在规定时间内提交相关材料。"
+  tmp3: "%s于%s在发布了新的招标公告信息:%s,剑鱼标讯%s为您提供该项目的详细信息。请有意向参与投标的企业尽快联系项目负责人,提前接洽项目具体要求,以免错失投标机会。"
+  tmp4: "%s,%s新增了一项招标公告信息,项目名称为:%s,本条项目信息由剑鱼标讯%s为您提供。"
+
+winBidTemplate:
+  tmp1: "剑鱼标讯%s获悉,%s,%s中标结果公布,中标供应商为%s。投标人或者其他利害关系人如果认为该中标结果公告存在违法违规行为的,可以依法向有关行政监督部门投诉。"
+  tmp2: "%s,由%s发起的%s的招标需求,收到多家参与竞标企业的有效投标文件。在经过评标专家委员会的严格评审之后,最终确定了%s作为本次招标项目的中标供应商。"
+  tmp3: "%s 受业主单位%s委托采购的%s评审工作已于%s前完成,中标单位为%s,剑鱼标讯%s为您提供详细的%s公告信息,现将成交供应商名单进行公示。"
+  tmp4: "%s,%s新增了一项%s公告信息,项目名称为:%s。本条项目信息由剑鱼标讯%s为您提供。"
+
+creditBidTemplate:
+  tmp1: "%s,%s负责采购的%s发布%s公告,供应商(乙方)为:%s。本项目由剑鱼标讯%s为您提供,查看详情请登录/注册。"
+  tmp2: "%s,%s新增了一条%s公告信息,项目名称为:%s,该项目被%s成功中标。"
+  tmp3: "%s,相关监督管理机构新增一则违规公告信息:%s,违规内容详情请注册/登录后查看。"
+
+bottomDescribe: "剑鱼标讯%s提醒:**部分为隐藏内容,登录即可查看详细信息!\n更享诸多权益:按行业和地区分类对标讯进行精准搜索;不遮挡不限次免费查看标讯;帮您快速获得采购单位、招标代理机构和政府采购平台发布的招标信息;还可以免费使用标讯订阅服务,根据订阅的关键词匹配相关项目,轻松接收项目信息;\n"
+
+
+
 
 

+ 7 - 9
resource/template/pc/detail.html

@@ -2,6 +2,7 @@
 <html lang="en">
 <html lang="en">
 <head>
 <head>
   <meta charset="UTF-8">
   <meta charset="UTF-8">
+  {{$global:=.}}
   <title>详情页</title>
   <title>详情页</title>
   <meta name="Keywords" content=''/>
   <meta name="Keywords" content=''/>
   <meta name="Description" content=''/>
   <meta name="Description" content=''/>
@@ -31,19 +32,16 @@
       {{include "pc/components/tags-bid-nav.html" .}}
       {{include "pc/components/tags-bid-nav.html" .}}
       <section class="w page-main-container">
       <section class="w page-main-container">
         <section class="page-main-content">
         <section class="page-main-content">
-          <h2 class="detail-title">【中标公告】北京联合大学中央支持地方专项-科技创新服务能力建设-虚拟现实创新应用实验教学平台项目中标公告</h2>
+          <h2 class="detail-title">{{$global.detail.title}}</h2>
           <div class="detail-tags">
           <div class="detail-tags">
-            <span>所属地区:山东廊坊</span>
-            <span>发布日期:2023-06-06  23:52:03 </span>
+            <span>所属地区:{{$global.detail.area}}{{$global.detail.city}}</span>
+            <span>发布日期:{{$global.detail.time}} </span>
           </div>
           </div>
-          <p class="detail-summary">工程造价包括工程预算,预算是按照施工图所作的工程预算造价,其价格是用的定额中材料预算价格,和实际的市场价格是有差别的。工程造价包括工程预算,预算是按照施工图所作的工程预算造价。</p>
+          <p class="detail-summary">{{$global.detail.abstract}}</p>
           <main class="detail-content">
           <main class="detail-content">
-            工程造价包括工程预算,预算是按照施工图所作的工程预算造价,其价格是用的定额中材料预算价格,和实际的市场价格是有差别的。工程造价包括工程预算,预算是按照施工图所作的工程预算造价。
-            工程造价包括工程预算,预算是按照施工图所作的工程预算造价,其价格是用的定额中材料预算价格,和实际的市场价格是有差别的。工程造价包括工程预算,预算是按照施工图所作的工程预算造价。
-            工程造价包括工程预算,预算是按照施工图所作的工程预算造价,其价格是用的定额中材料预算价格,和实际的市场价格是有差别的。工程造价包括工程预算,预算是按照施工图所作的工程预算造价。
-            工程造价包括工程预算,预算是按照施工图所作的工程预算造价,其价格是用的定额中材料预算价格,和实际的市场价格是有差别的。工程造价包括工程预算,预算是按照施工图所作的工程预算造价。
+            {{$global.detail.detail}}
           </main>
           </main>
-          <p class="detail-reminder">工程造价包括工程预算,预算是按照施工图所作的工程预算造价,其价格是用的定额中材料预算价格,和实际的市场价格是有差别的。工程造价包括工程预算,预算是按照施工图所作的工程预算造价。<a class="highlight-text cms-link" href="/notin/page?backTo=">登录/注册</a></p>
+          <p class="detail-reminder">{{$global.detail.bottomAbstract}}<a class="highlight-text cms-link" href="/notin/page?backTo=">登录/注册</a></p>
         </section>
         </section>
         <section class="page-main-aside">
         <section class="page-main-aside">
           <div class="tags-aside-ad">
           <div class="tags-aside-ad">

+ 2 - 0
utility/db.go

@@ -3,6 +3,7 @@ package utility
 import (
 import (
 	m "app.yhyue.com/moapp/jybase/mongodb"
 	m "app.yhyue.com/moapp/jybase/mongodb"
 	"context"
 	"context"
+	"fmt"
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/os/gctx"
 	"github.com/gogf/gf/v2/os/gctx"
 )
 )
@@ -45,6 +46,7 @@ func init() {
 	}
 	}
 	Mgo.InitPool()
 	Mgo.InitPool()
 
 
+	fmt.Println("mongdbConf.Bidding.Address", mongdbConf.Bidding.UserName, mongdbConf.Bidding.Password)
 	BiddingMgo = m.MongodbSim{
 	BiddingMgo = m.MongodbSim{
 		MongodbAddr: mongdbConf.Bidding.Address,
 		MongodbAddr: mongdbConf.Bidding.Address,
 		Size:        mongdbConf.Bidding.Size,
 		Size:        mongdbConf.Bidding.Size,