浏览代码

Merge remote-tracking branch 'origin/feature/v4.10.9' into dev_v4.10.9_wh

WH01243 4 月之前
父节点
当前提交
22f3a3889a
共有 40 个文件被更改,包括 1013 次插入64 次删除
  1. 6 5
      src/jfw/front/front.go
  2. 1 1
      src/jfw/front/frontRouter.go
  3. 6 0
      src/jfw/modules/app/src/web/staticres/jyapp/commonPay/css/public.css
  4. 122 0
      src/jfw/modules/app/src/web/templates/commonPay/bidCreditReport/orderDetail.html
  5. 40 0
      src/jfw/modules/app/src/web/templates/commonPay/paySuccess.html
  6. 12 6
      src/jfw/modules/distribution/src/timetask/timetask.go
  7. 1 1
      src/jfw/modules/publicapply/src/config.yaml
  8. 2 0
      src/jfw/modules/subscribepay/src/a/init.go
  9. 1 1
      src/jfw/modules/subscribepay/src/config.json
  10. 6 3
      src/jfw/modules/subscribepay/src/config.yaml
  11. 31 12
      src/jfw/modules/subscribepay/src/entity/bidCreditReport/bidCreditReport.go
  12. 10 3
      src/jfw/modules/subscribepay/src/entity/bidCreditReport/bidCreditReport_test.go
  13. 1 4
      src/jfw/modules/subscribepay/src/entity/bidCreditReport/payCallBack.go
  14. 14 0
      src/jfw/modules/subscribepay/src/entity/commodity.go
  15. 26 6
      src/jfw/modules/subscribepay/src/entity/order.go
  16. 6 0
      src/jfw/modules/subscribepay/src/entity/pdfExportPack.go
  17. 2 1
      src/jfw/modules/subscribepay/src/filter/sessionfilter.go
  18. 2 2
      src/jfw/modules/subscribepay/src/pay/aliPay.go
  19. 6 6
      src/jfw/modules/subscribepay/src/pay/wxPay.go
  20. 2 2
      src/jfw/modules/subscribepay/src/service/bidCreditReport.go
  21. 19 0
      src/jfw/modules/subscribepay/src/service/config.go
  22. 1 1
      src/jfw/modules/subscribepay/src/service/payCallback.go
  23. 10 0
      src/jfw/modules/subscribepay/src/service/userAccountInfo.go
  24. 0 0
      src/web/staticres/common-module/login-js/jy-login-mini.mjs
  25. 0 0
      src/web/staticres/common-module/login-js/jy-login-mini.umd.js
  26. 0 0
      src/web/staticres/common-module/login-js/jy-login.mjs
  27. 0 0
      src/web/staticres/common-module/login-js/jy-login.umd.js
  28. 二进制
      src/web/staticres/common-module/order-list/image/bidCreditReport.png
  29. 二进制
      src/web/staticres/common-module/order-list/image/creditReport.png
  30. 27 3
      src/web/staticres/common-module/order-list/js/order-list-config.js
  31. 39 0
      src/web/staticres/common-module/order-list/js/order-list.js
  32. 8 1
      src/web/staticres/js/login.js
  33. 36 0
      src/web/staticres/order/css/pay_success.css
  34. 6 0
      src/web/staticres/wxCommonPay/css/public.css
  35. 340 0
      src/web/templates/order/pc/creditReport/detail.html
  36. 40 0
      src/web/templates/order/pc/paySuccess.html
  37. 19 3
      src/web/templates/pc/myOrder.html
  38. 3 3
      src/web/templates/structuredata/mobile/marketing_wx.html
  39. 128 0
      src/web/templates/weixin/commonPay/bidCreditReport/orderDetail.html
  40. 40 0
      src/web/templates/weixin/commonPay/paySuccess.html

+ 6 - 5
src/jfw/front/front.go

@@ -1224,6 +1224,7 @@ func (f *Front) Transfer() error {
 	return f.Redirect(f.GetString("url"))
 	return f.Redirect(f.GetString("url"))
 }
 }
 func (f *Front) SubscribeTransfer() error {
 func (f *Front) SubscribeTransfer() error {
+	pushtime := f.GetString("pushtime")
 	vt := f.GetString("t")
 	vt := f.GetString("t")
 	switch vt {
 	switch vt {
 	case "member":
 	case "member":
@@ -1236,25 +1237,25 @@ func (f *Front) SubscribeTransfer() error {
 		vt = "s"
 		vt = "s"
 	}
 	}
 	if vt != "" {
 	if vt != "" {
-		return f.Redirect(fmt.Sprintf("/page_workDesktop/work-bench/app/big/big_subscribe?vt=%s", vt))
+		return f.Redirect(fmt.Sprintf("/page_workDesktop/work-bench/app/big/big_subscribe?vt=%s&pushtime=%s", vt, pushtime))
 	}
 	}
 	//查询用户状态
 	//查询用户状态
 	bigPower := jy.GetBigVipUserBaseMsg(f.Session(), *config.Middleground)
 	bigPower := jy.GetBigVipUserBaseMsg(f.Session(), *config.Middleground)
 	if bigPower.Status > 0 {
 	if bigPower.Status > 0 {
 		//大会员用户
 		//大会员用户
-		return f.Redirect(fmt.Sprintf("/page_workDesktop/work-bench/app/big/big_subscribe?vt=m"))
+		return f.Redirect(fmt.Sprintf("/page_workDesktop/work-bench/app/big/big_subscribe?vt=m&pushtime=%s", pushtime))
 	}
 	}
 	IsEntPower := bigPower.Data.Entniche.IsEntPower
 	IsEntPower := bigPower.Data.Entniche.IsEntPower
 	if bigPower.EntnicheStatus == 1 && IsEntPower > 0 {
 	if bigPower.EntnicheStatus == 1 && IsEntPower > 0 {
 		//商机管理
 		//商机管理
-		return f.Redirect(fmt.Sprintf("/page_workDesktop/work-bench/app/big/big_subscribe?vt=s"))
+		return f.Redirect(fmt.Sprintf("/page_workDesktop/work-bench/app/big/big_subscribe?vt=s&pushtime=%s", pushtime))
 	}
 	}
 	if bigPower.VipStatus > 0 {
 	if bigPower.VipStatus > 0 {
 		//超级订阅
 		//超级订阅
-		return f.Redirect(fmt.Sprintf("/page_workDesktop/work-bench/app/big/big_subscribe?vt=v"))
+		return f.Redirect(fmt.Sprintf("/page_workDesktop/work-bench/app/big/big_subscribe?vt=v&pushtime=%s", pushtime))
 	}
 	}
 	//免费用户
 	//免费用户
-	return f.Redirect(fmt.Sprintf("/page_workDesktop/work-bench/app/big/big_subscribe?vt=f"))
+	return f.Redirect(fmt.Sprintf("/page_workDesktop/work-bench/app/big/big_subscribe?vt=f&pushtime=%s", pushtime))
 }
 }
 
 
 // 关于我们
 // 关于我们

+ 1 - 1
src/jfw/front/frontRouter.go

@@ -233,7 +233,7 @@ func (this *CommonRouter) doPcBigPage(pageSign, types string) error {
 	if !strings.Contains(pageSign, "nzj") && !strings.Contains(pageSign, "supply") &&
 	if !strings.Contains(pageSign, "nzj") && !strings.Contains(pageSign, "supply") &&
 		!strings.Contains(pageSign, "unit_portrayal") && !strings.Contains(pageSign, "ent_portrait") &&
 		!strings.Contains(pageSign, "unit_portrayal") && !strings.Contains(pageSign, "ent_portrait") &&
 		!strings.Contains(pageSign, "ent_ser_portrait") && !strings.Contains(pageSign, "search/sun") &&
 		!strings.Contains(pageSign, "ent_ser_portrait") && !strings.Contains(pageSign, "search/sun") &&
-		!strings.Contains(pageSign, "doc/api") &&
+		!strings.Contains(pageSign, "doc/api") && pageSign != "free/report/preview" &&
 		userid == "" {
 		userid == "" {
 		return this.Redirect("/notin/page")
 		return this.Redirect("/notin/page")
 	}
 	}

+ 6 - 0
src/jfw/modules/app/src/web/staticres/jyapp/commonPay/css/public.css

@@ -451,6 +451,12 @@ button[disabled] {
   color: #fb483d;
   color: #fb483d;
 }
 }
 
 
+.weui-dialog__hd {
+  padding: 0.4rem 0.4rem 0;
+  font-size: .32rem;
+  color: #171826;
+}
+
 .weui-skin_android .weui-dialog__bd,
 .weui-skin_android .weui-dialog__bd,
 .weui-dialog__bd {
 .weui-dialog__bd {
   margin: 0.44rem 0.4rem 0.44rem;
   margin: 0.44rem 0.4rem 0.44rem;

+ 122 - 0
src/jfw/modules/app/src/web/templates/commonPay/bidCreditReport/orderDetail.html

@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+<head>
+    <!--引入公共资源头部-->
+    {{include "/big-member/meta.html"}}
+    <title>订单详情</title>
+    <!--S-当前页面的css资源-->
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/j-icons.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/order-list/css/order-detail.css?v={{Msg "seo" "version"}}' />
+</head>
+
+<body>
+    <div class="j-container transparent-header">
+        <div class="j-header jy-app-header border-line-b transparent-header">
+            <span class="header-left">
+                <span class="van-icon van-icon-arrow-left"></span>
+            </span>
+            <span class="header-title title-left">订单详情</span>
+            <span class="header-right"></span>
+        </div>
+        <div class="j-main order-detail" id="app" v-cloak>
+            <div class="j-container">
+                <div class="j-main no-scrollbar">
+                    <div class="wrapper">
+                        <div class="header-pic arc-container" :class="orderStateMap[orderInfo.state].bgcClassName">
+                            <div class="order-state">${ orderStateMap[orderInfo.state].text }</div>
+                            <div class="surplus-time" v-if="orderStateMap[orderInfo.state].surplusTimeShow && orderInfo.surplusTime > 0">
+                                <span>剩余支付时间:</span>
+                                <van-count-down @finish="onCountdownFinish" :time="orderInfo.surplusTime"></van-count-down>
+                            </div>
+                        </div>
+                        <div class="card-list">
+                            <div class="j-card report-p">
+                                <span class="rp-left" :class="'badge-' + (orderInfoFilter.badge || '')">
+                                    <img class="card-l-pic" :src="orderInfo.headerImg">
+                                </span>
+                                <span class="rp-right">
+                                    <span class="product-type">${ orderInfo.productType }</span>
+                                    <span class="pay-money">&yen; ${ orderInfo.payMoney }</span>
+                                    <span v-if="orderInfo.refund_status && orderInfo.refund_status > 0" class="refund-success-tip">退款成功</span>
+                                </span>
+                            </div>
+                            <div class="j-card product-info" v-if="orderInfo.productInfoList.length">
+                                <div class="j-card-title">购买信息</div>
+                                <div class="j-card-items">
+                                    <div
+                                        class="j-card-item"
+                                        :class="item.className"
+                                        v-for="(item, index) in orderInfo.productInfoList"
+                                        :key="index"
+                                        v-show="item.text"
+                                    >
+                                        <span class="card-item-l">${ item.label + item.split }</span>
+                                        <span class="card-item-r" v-html="item.text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="j-card report-info">
+                                <div class="j-card-title">订单信息</div>
+                                <div class="j-card-items">
+                                    <div
+                                        class="j-card-item"
+                                        :class="item.className"
+                                        v-for="(item, index) in orderInfo.orderInfoList"
+                                        :key="index"
+                                        v-show="item.text"
+                                    >
+                                        <span class="card-item-l">${ item.label + item.split }</span>
+                                        <span class="card-item-r" v-html="item.text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="j-button-group j-footer" v-show="buttonGroupShow">
+                    <button
+                        class="j-button-confirm pay"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.pay"
+                        @click="onConfirmPay">立即支付</button>
+                    <button
+                        class="j-button-cancel invoke"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.invoke && !orderInfo.refund_status"
+                        @click="lookInvoke">${ invokeButtonText }</button>
+                        <button
+                        class="j-button-cancel invoke"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.lookInvoice && !orderInfo.refund_status"
+                        @click="lookInvoke('look')">查看发票</button>
+                    <button
+                        class="j-button-confirm buy-again"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.buyAgain"
+                        @click="buyAgain">再次购买</button>
+                    <!-- <button
+                            class="j-button-confirm renew"
+                            v-if="orderStateMap[orderInfo.state].bottomButtonShow.renew"
+                            @click="renew">续费</button> -->
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--S-当前页面的资源-->
+    <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/zepto/1.2.0/zepto.min.js></script>
+    {{include "/big-member/commonjs.html"}}
+    <script>
+        var pageInfo = {
+            platform: 'app',
+            version: {{Msg "seo" "version"}},
+        }
+    </script>
+    <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/order-list/js/order-list-config.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/order-list/js/order-detail.js?v={{Msg "seo" "version"}}'></script>
+    <!--E-当前页面的资源-->
+    {{include "/common/baiducc.html"}}
+</body>
+
+</html>

+ 40 - 0
src/jfw/modules/app/src/web/templates/commonPay/paySuccess.html

@@ -204,6 +204,21 @@
     {{end}}
     {{end}}
         
         
     </div>
     </div>
+    <div class="weui-mask" id="weuiMask" style="display: none;"></div>
+    <div class="weui-dialog" id="weuiDialog" style="display: none;">
+        <div class="weui-dialog__hd">
+          报告下载成功
+        </div>
+        <div class="weui-dialog__bd">
+            <p id="weuiDialogContent">
+              报告将于<span class="time"></span>分钟内发送至您的邮箱,您也可前往“资产-报告下载记录”查看详情。
+            </p>
+        </div>
+        <div class="weui-dialog__ft">
+            <a href="javascript:;" id="weuiDialogCancel" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
+            <a href="/jy_mobile/reportanalysis/reportDownload?inside-jumps=1" id="weuiDialogConfirm" class="weui-dialog__btn weui-dialog__btn_primary">查看下载记录</a>
+        </div>
+    </div>
 </div>
 </div>
 </body>
 </body>
 <script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
 <script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
@@ -359,6 +374,13 @@
                           $('.header-title').text(document.title)
                           $('.header-title').text(document.title)
                           break
                           break
                         }
                         }
+                        case '投标企业信用报告': {
+                          // var tempNode = $('.info-box.info-item[name="投标企业信用报告"]')
+                          // var tempInfo = JSON.parse(res.data.order.filter)
+                          // tempNode.find('span[name="file-num"]').text('+' + tempInfo.num)
+                          $('#weuiMask').show()
+                          $('#weuiDialog').show()
+                        }
                     }
                     }
                 } catch (e) {
                 } catch (e) {
                     console.warn(e)
                     console.warn(e)
@@ -366,6 +388,24 @@
             }
             }
         }
         }
     })
     })
+    $.ajax({
+      type: 'POST',
+      url: '/subscribepay/config',
+      success: function (res) {
+        if (res && res.error_code === 0 && res.data) {
+          console.log(res.data)
+          $('#weuiDialogContent .time').html(res.data.bidCreditReport_makeTime)
+        }
+      }
+    })
+    $('#weuiDialogCancel').click(function () {
+      $('#weuiDialog').hide()
+      $('#weuiMask').hide()
+    })
+    $('#weuiMask').click(function () {
+      $('#weuiDialog').hide()
+      $('#weuiMask').hide()
+    })
     $(function () {
     $(function () {
         try {
         try {
             JyObj.hiddenBottom("0");
             JyObj.hiddenBottom("0");

+ 12 - 6
src/jfw/modules/distribution/src/timetask/timetask.go

@@ -1,6 +1,7 @@
 package timetask
 package timetask
 
 
 import (
 import (
+	. "app.yhyue.com/moapp/jybase/date"
 	"bytes"
 	"bytes"
 	"database/sql"
 	"database/sql"
 	"fmt"
 	"fmt"
@@ -13,7 +14,6 @@ import (
 	"time"
 	"time"
 
 
 	util "app.yhyue.com/moapp/jybase/common"
 	util "app.yhyue.com/moapp/jybase/common"
-	. "app.yhyue.com/moapp/jybase/date"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
 	"github.com/tealeg/xlsx"
 	"github.com/tealeg/xlsx"
 )
 )
@@ -87,7 +87,7 @@ func init() {
 	go util.SimpleCrontab(true, TimetaskConf.FlyerUserTime, Getshareinfo)
 	go util.SimpleCrontab(true, TimetaskConf.FlyerUserTime, Getshareinfo)
 }
 }
 
 
-//4号结算上个月的佣金
+// 4号结算上个月的佣金
 func settlement() {
 func settlement() {
 	var err error
 	var err error
 	fx, err = xlsx.OpenFile("./res/settlement/settlement.xlsx")
 	fx, err = xlsx.OpenFile("./res/settlement/settlement.xlsx")
@@ -294,7 +294,7 @@ func TaxPayable(commission float64) int64 {
 	return int64(util.RetainDecimal(tax_cash, 2) * 100)
 	return int64(util.RetainDecimal(tax_cash, 2) * 100)
 }
 }
 
 
-//虚拟分享次数
+// 虚拟分享次数
 func shareCount(product string, shareAutoIncs []*shareAutoInc) {
 func shareCount(product string, shareAutoIncs []*shareAutoInc) {
 	defer util.Catch()
 	defer util.Catch()
 	hour := time.Now().Hour()
 	hour := time.Now().Hour()
@@ -385,8 +385,14 @@ func Getshareinfo() {
 	ShareUser = []map[string]interface{}{}
 	ShareUser = []map[string]interface{}{}
 	data, ok := MQFW.Find("user", map[string]interface{}{
 	data, ok := MQFW.Find("user", map[string]interface{}{
 		"$or": []map[string]interface{}{
 		"$or": []map[string]interface{}{
-			map[string]interface{}{"s_headimageurl": map[string]interface{}{"$exists": true}},
-			map[string]interface{}{"s_headimage": map[string]interface{}{"$exists": true}},
+			{"s_headimageurl": map[string]interface{}{
+				"$exists": true,
+				"$ne":     "",
+			}},
+			{"s_headimage": map[string]interface{}{
+				"$exists": true,
+				"$ne":     "",
+			}},
 		},
 		},
 		"i_appid": 2,
 		"i_appid": 2,
 	}, `{"l_registedate":-1}`, `{"s_headimageurl":1,"s_headimage":1,"s_phone":1,"s_m_phone":1,"s_nickname":1}`, false, 0, 300)
 	}, `{"l_registedate":-1}`, `{"s_headimageurl":1,"s_headimage":1,"s_phone":1,"s_m_phone":1,"s_nickname":1}`, false, 0, 300)
@@ -538,7 +544,7 @@ func createSettlementFx(sFxs []*settlementFx) []byte {
 	return w.Byte.Bytes()
 	return w.Byte.Bytes()
 }
 }
 
 
-//20号把已结算的佣金转入可提现金额
+// 20号把已结算的佣金转入可提现金额
 func toCashOut() {
 func toCashOut() {
 	util.SimpleCrontab(false, TimetaskConf.ToCashout.Time, func() {
 	util.SimpleCrontab(false, TimetaskConf.ToCashout.Time, func() {
 		defer util.Catch()
 		defer util.Catch()

+ 1 - 1
src/jfw/modules/publicapply/src/config.yaml

@@ -1,6 +1,6 @@
 etcd:
 etcd:
   hosts:
   hosts:
-    - 172.31.31.204:2379
+  - 172.31.31.203:2379
 userCenterKey: "usercenter.rpc" #用户中台rpc
 userCenterKey: "usercenter.rpc" #用户中台rpc
 powerCheckCenterKey: "powercheck.rpc" #权益校验中台
 powerCheckCenterKey: "powercheck.rpc" #权益校验中台
 entManageApplication: "entmanageapplication.rpc" #企业管理中台
 entManageApplication: "entmanageapplication.rpc" #企业管理中台

+ 2 - 0
src/jfw/modules/subscribepay/src/a/init.go

@@ -92,4 +92,6 @@ func init() {
 	xweb.AddRouter("/subscribepay", &service.BidCreditReport{})
 	xweb.AddRouter("/subscribepay", &service.BidCreditReport{})
 	//超级订阅赠送
 	//超级订阅赠送
 	xweb.AddRouter("/subscribepay", &service.VipGift{})
 	xweb.AddRouter("/subscribepay", &service.VipGift{})
+	//获取配置项
+	xweb.AddRouter("/subscribepay", &service.Config{})
 }
 }

+ 1 - 1
src/jfw/modules/subscribepay/src/config.json

@@ -91,7 +91,7 @@
     "maxIdleConns": 2
     "maxIdleConns": 2
   },
   },
   "appPushServiceRpc": "127.0.0.1:5566",
   "appPushServiceRpc": "127.0.0.1:5566",
-  "webdomain": "https://jybx2-webtest.jydev.jianyu360.com",
+  "webdomain": "https://jybx-webtest.jydev.jianyu360.com",
   "appdomain": "http://web-zxl.jydev.jianyu360.com",
   "appdomain": "http://web-zxl.jydev.jianyu360.com",
   "wxdomain": "http://web-zxl.jydev.jianyu360.com",
   "wxdomain": "http://web-zxl.jydev.jianyu360.com",
   "mail": [
   "mail": [

+ 6 - 3
src/jfw/modules/subscribepay/src/config.yaml

@@ -41,6 +41,9 @@ pdfPackPrice:
   市场分析定制报告下载包:
   市场分析定制报告下载包:
     - num: 1
     - num: 1
       price: 199900
       price: 199900
+  投标企业信用报告下载包:
+    - num: 1
+      price: 9900
 
 
 
 
 miniprogram:
 miniprogram:
@@ -68,14 +71,13 @@ bidCreditReport:
   sendMailRetry: 10
   sendMailRetry: 10
   appendUserMail:
   appendUserMail:
   mailSubject: "投标企业信用报告(%s)"
   mailSubject: "投标企业信用报告(%s)"
-  mailContent: '<body style="background-color:#F5F5FB;padding:15px 0px 30px 0px;"><style> *,body,html{margin:0;padding:0;font-family:Microsoft YaHei;font-size:16px;color:#1d1d1d;text-decoration:none;}#all{border-radius:8px;padding:0px 40px;background-color: #fff;margin:0px auto;width:1200px;overflow:hidden;border-top:5px #2CB7CA solid;padding-bottom:150px;}a,a:hover{text-decoration:none !important;}.detail{border: 1px solid #E0E0E0;border-top: 2px solid #AAAAAA;font-size:14px;}.detail span,.detail a{display:block;}</style><div id="all"><div style="border-bottom: 1px solid #F6F6F6;"><IMG style="margin:auto;display:block;" width="150px" src="https://www.jianyu360.cn/images/swordfish/sf_01.png" /></div><div style="padding:30px 50px;"><div style="line-height: 25px;">尊敬的剑鱼标讯用户:<br>您好,感谢您购买剑鱼标讯投标企业信用报告,您的报告已发送到您的邮箱,请查收!如有问题,可拨打客服热线:400-108-6670。</div><a href="%s" style="display:inline-block;margin-top: 30px;padding: 5px 15px;color:#ffffff;background-color:#2ABED1;font-size:14px;border-radius: 5px;">投标企业信用报告下载</a><div style="height:1px;background-color:#F6F6F6;margin: 40px 0px;"></div><div class="detail"><div style="background-color: #F5F5FB;padding: 5px 25px;line-height:30px;"><span style="float:left;">报告详情</span><a href="%s/xxx?id=%s" style="float:right;color:#2ABED1;">在线查看报告</a><a style="clear:both;"></a></div><span style="padding: 30px 25px;line-height:30px;">投标企业名称:%s<br>招标单位名称:%s</span></div></div></div></body>'
+  mailContent: '<body style="background-color:#F5F5FB;padding:15px 0px 30px 0px;"><style> *,body,html{margin:0;padding:0;font-family:Microsoft YaHei;font-size:16px;color:#1d1d1d;text-decoration:none;}#all{border-radius:8px;padding:0px 40px;background-color: #fff;margin:0px auto;width:1200px;overflow:hidden;border-top:5px #2CB7CA solid;padding-bottom:150px;}a,a:hover{text-decoration:none !important;}.detail{border: 1px solid #E0E0E0;border-top: 2px solid #AAAAAA;font-size:14px;}.detail span,.detail a{display:block;}</style><div id="all"><div style="border-bottom: 1px solid #F6F6F6;"><IMG style="margin:auto;display:block;" width="150px" src="https://www.jianyu360.cn/images/swordfish/sf_01.png" /></div><div style="padding:30px 50px;"><div style="line-height: 25px;">尊敬的剑鱼标讯用户:<br>您好,感谢您购买剑鱼标讯投标企业信用报告,您的报告已发送到您的邮箱,请查收!如有问题,可拨打客服热线:400-108-6670。</div><a href="%s" style="display:inline-block;margin-top: 30px;padding: 5px 15px;color:#ffffff;background-color:#2ABED1;font-size:14px;border-radius: 5px;">投标企业信用报告下载</a><div style="height:1px;background-color:#F6F6F6;margin: 40px 0px;"></div><div class="detail"><div style="background-color: #F5F5FB;padding: 5px 25px;line-height:30px;"><span style="float:left;">报告详情</span><a href="%s" style="float:right;color:#2ABED1;">在线查看报告</a><a style="clear:both;"></a></div><span style="padding: 30px 25px;line-height:30px;">投标企业名称:%s<br>招标单位名称:%s</span></div></div></div></body>'
   warnMailSubject: "投标企业信用报告来新订单了"
   warnMailSubject: "投标企业信用报告来新订单了"
-  warnMailContent: '<body style="background-color:#F5F5FB;padding:15px 0px 30px 0px;"><style> *,body,html{margin:0;padding:0;font-family:Microsoft YaHei;font-size:16px;color:#1d1d1d;text-decoration:none;}#all{border-radius:8px;padding:0px 40px;background-color: #fff;margin:0px auto;width:1200px;overflow:hidden;border-top:5px #2CB7CA solid;padding-bottom:150px;}a,a:hover{text-decoration:none !important;}.detail{border: 1px solid #E0E0E0;border-top: 2px solid #AAAAAA;font-size:14px;}.detail span,.detail a{display:block;}</style><div id="all"><div style="border-bottom: 1px solid #F6F6F6;"><IMG style="margin:auto;display:block;" width="150px" src="https://www.jianyu360.cn/images/swordfish/sf_01.png" /></div><div style="padding:30px 50px;"><div style="line-height: 25px;">亲爱的剑鱼标讯运维工作人员:<br>这里有一个新的投标企业信用报告订单需要您处理,请点击下面链接去完善生成报告所需的内容。</div><a href="%s/xxx/xxx?id=%d" style="display:inline-block;margin-top: 30px;padding: 5px 15px;color:#ffffff;background-color:#2ABED1;font-size:14px;border-radius: 5px;">点击去完善</a><div style="height:1px;background-color:#F6F6F6;margin: 40px 0px;"></div><div class="detail"><div style="background-color: #F5F5FB;padding: 5px 25px;line-height:30px;"><span>报告详情</span></div><span style="padding: 30px 25px;line-height:30px;">订单编号:%s<br>投标企业名称:%s<br>招标单位名称:%s</span></div><div style="margin-top: 30px;font-weight: bold;color: red;font-size: 16px;">每一份努力都在为未来的成功积攒能量,你今天流下的每一滴汗水,都会在明天浇灌出最绚烂的花朵。继续加油,你的坚持定有回报!</div></div></div></body>'
+  warnMailContent: '<body style="background-color:#F5F5FB;padding:15px 0px 30px 0px;"><style> *,body,html{margin:0;padding:0;font-family:Microsoft YaHei;font-size:16px;color:#1d1d1d;text-decoration:none;}#all{border-radius:8px;padding:0px 40px;background-color: #fff;margin:0px auto;width:1200px;overflow:hidden;border-top:5px #2CB7CA solid;padding-bottom:150px;}a,a:hover{text-decoration:none !important;}.detail{border: 1px solid #E0E0E0;border-top: 2px solid #AAAAAA;font-size:14px;}.detail span,.detail a{display:block;}</style><div id="all"><div style="border-bottom: 1px solid #F6F6F6;"><IMG style="margin:auto;display:block;" width="150px" src="https://www.jianyu360.cn/images/swordfish/sf_01.png" /></div><div style="padding:30px 50px;"><div style="line-height: 25px;">亲爱的剑鱼标讯运维工作人员:<br>这里有一个新的投标企业信用报告订单需要您处理,请点击下面链接去完善生成报告所需的内容。</div><a href="%s/swordfish/page_big_pc/free/report/examine?id=%d" style="display:inline-block;margin-top: 30px;padding: 5px 15px;color:#ffffff;background-color:#2ABED1;font-size:14px;border-radius: 5px;">点击去完善</a><div style="height:1px;background-color:#F6F6F6;margin: 40px 0px;"></div><div class="detail"><div style="background-color: #F5F5FB;padding: 5px 25px;line-height:30px;"><span>报告详情</span></div><span style="padding: 30px 25px;line-height:30px;">订单编号:%s<br>投标企业名称:%s<br>招标单位名称:%s</span></div><div style="margin-top: 30px;font-weight: bold;color: red;font-size: 16px;">每一份努力都在为未来的成功积攒能量,你今天流下的每一滴汗水,都会在明天浇灌出最绚烂的花朵。继续加油,你的坚持定有回报!</div></div></div></body>'
   warnIntervalMinute: 15
   warnIntervalMinute: 15
   warnStart: "09:00"
   warnStart: "09:00"
   warnEnd: "21:00"
   warnEnd: "21:00"
   warnUserMail:
   warnUserMail:
-    - "wangchuanjin@topnet.net.cn"
   productEnv: false
   productEnv: false
   testIds:
   testIds:
     - "5d6378301c298a5aac7b5402"
     - "5d6378301c298a5aac7b5402"
@@ -83,3 +85,4 @@ bidCreditReport:
     - "5d6378301c298a5aac7b5402"
     - "5d6378301c298a5aac7b5402"
   performanceTime: 2018-01-01 00:00:00
   performanceTime: 2018-01-01 00:00:00
   performanceSize: 100
   performanceSize: 100
+  makeTime: 30分钟

+ 31 - 12
src/jfw/modules/subscribepay/src/entity/bidCreditReport/bidCreditReport.go

@@ -3,7 +3,9 @@ package bidCreditReport
 import (
 import (
 	"app.yhyue.com/moapp/jybase/encrypt"
 	"app.yhyue.com/moapp/jybase/encrypt"
 	"app.yhyue.com/moapp/jybase/es"
 	"app.yhyue.com/moapp/jybase/es"
+	. "app.yhyue.com/moapp/jybase/mongodb"
 	"bp.jydev.jianyu360.cn/BaseService/pushpkg/p"
 	"bp.jydev.jianyu360.cn/BaseService/pushpkg/p"
+	. "bp.jydev.jianyu360.cn/BaseService/userCenter/identity"
 	"encoding/csv"
 	"encoding/csv"
 	"errors"
 	"errors"
 	"fmt"
 	"fmt"
@@ -24,7 +26,7 @@ import (
 	"time"
 	"time"
 )
 )
 
 
-const esQuery = `{"query":{"bool":{"must":[{"term":{"s_winner":"%s"}},{"range":{"lasttime":{"gt":%d}}},{"exists":{"field":"projectname"}},{"exists":{"field":"buyer"}},{"exists":{"field":"lasttime"}}]}},"_source":["id","projectname","buyer","area","city","district","bidamount","lasttime","list.infoid","topscopeclass"],"sort":{"bidamount":"desc"},"size":%d}`
+const esQuery = `{"query":{"bool":{"must":[{"term":{"s_winner":"%s"}},{"range":{"lasttime":{"gt":%d}}},{"exists":{"field":"projectname"}},{"exists":{"field":"buyer"}},{"exists":{"field":"lasttime"}}]}},"_source":["id","projectname","buyer","area","city","district","sortprice","lasttime","list.infoid","topscopeclass"],"sort":{"sortprice":"desc"},"size":%d}`
 
 
 var BidCreditReport *bidCreditReport
 var BidCreditReport *bidCreditReport
 
 
@@ -103,12 +105,15 @@ func (b *bidCreditReport) EntHasRisk(userId, certNo string) bool {
 func (b *bidCreditReport) CallBack(from url.Values) bool {
 func (b *bidCreditReport) CallBack(from url.Values) bool {
 	log.Println("芝麻企业信用服务变化通知", from)
 	log.Println("芝麻企业信用服务变化通知", from)
 	verifySign := b.Client.VerifySign(from)
 	verifySign := b.Client.VerifySign(from)
-	go util.Mgo_log.Save("bidcredit_report_log", map[string]interface{}{
+	logData := map[string]interface{}{
 		"createTime": time.Now().Unix(),
 		"createTime": time.Now().Unix(),
 		"from":       from,
 		"from":       from,
 		"method":     "zhima.credit.ep.acceptance.notify",
 		"method":     "zhima.credit.ep.acceptance.notify",
-		"verifySign": verifySign,
-	})
+	}
+	if verifySign != nil {
+		logData["verifySign"] = verifySign.Error()
+	}
+	go util.Mgo_log.Save("bidcredit_report_log", logData)
 	if verifySign != nil {
 	if verifySign != nil {
 		log.Println(from, "芝麻企业信用服务变化通知验签失败", verifySign)
 		log.Println(from, "芝麻企业信用服务变化通知验签失败", verifySign)
 		return false
 		return false
@@ -134,6 +139,7 @@ func (b *bidCreditReport) ReportQuery(orderNo string) bool {
 	ctx := gctx.New()
 	ctx := gctx.New()
 	orderCode := gconv.String((*datas)[0]["order_code"])
 	orderCode := gconv.String((*datas)[0]["order_code"])
 	entName := gconv.String((*datas)[0]["ent_name"])
 	entName := gconv.String((*datas)[0]["ent_name"])
+	buyer := gconv.String((*datas)[0]["buyer"])
 	fileName := "/" + b.folderName(bcrId, orderCode, entName) + "/" + entName + ".pdf"
 	fileName := "/" + b.folderName(bcrId, orderCode, entName) + "/" + entName + ".pdf"
 	downloadUrl := g.Config().MustGet(ctx, "bidCreditReport.visitUrl").String() + fileName
 	downloadUrl := g.Config().MustGet(ctx, "bidCreditReport.visitUrl").String() + fileName
 	r1 := util.Mysql.UpdateOrDeleteBySql(`update jianyu.bid_credit_report set download_url=?,report_url=?,status=2,complete_time=? where id=?`, downloadUrl, reportUrl, gtime.Datetime(), bcrId)
 	r1 := util.Mysql.UpdateOrDeleteBySql(`update jianyu.bid_credit_report set download_url=?,report_url=?,status=2,complete_time=? where id=?`, downloadUrl, reportUrl, gtime.Datetime(), bcrId)
@@ -152,6 +158,8 @@ func (b *bidCreditReport) ReportQuery(orderNo string) bool {
 			"l_createTime": time.Now().Unix(),
 			"l_createTime": time.Now().Unix(),
 			"s_pdfUrl":     downloadUrl,
 			"s_pdfUrl":     downloadUrl,
 			"bcr_id":       bcrId,
 			"bcr_id":       bcrId,
+			"ent":          entName,
+			"buyer":        buyer,
 		},
 		},
 	}, true, false)
 	}, true, false)
 	downloadUrl = config.Config.WebDomain + downloadUrl
 	downloadUrl = config.Config.WebDomain + downloadUrl
@@ -179,7 +187,7 @@ func (b *bidCreditReport) ReportQuery(orderNo string) bool {
 	}
 	}
 	for _, v := range userMails {
 	for _, v := range userMails {
 		go func(vv string) {
 		go func(vv string) {
-			if b.sendMail(userId, v, entName, gconv.String((*datas)[0]["buyer"]), downloadUrl, orderCode) && userMail == vv {
+			if b.sendMail(userId, v, entName, buyer, downloadUrl, orderCode) && userMail == vv {
 				util.Mysql.UpdateOrDeleteBySql(`update jianyu.bid_credit_report set status=2,send_mail=1,send_mail_time=? where id=?`, gtime.Datetime(), bcrId)
 				util.Mysql.UpdateOrDeleteBySql(`update jianyu.bid_credit_report set status=2,send_mail=1,send_mail_time=? where id=?`, gtime.Datetime(), bcrId)
 			}
 			}
 		}(v)
 		}(v)
@@ -190,7 +198,8 @@ func (b *bidCreditReport) ReportQuery(orderNo string) bool {
 // 发邮件
 // 发邮件
 func (b *bidCreditReport) sendMail(userId, userMail, entName, buyer, downloadUrl, orderCode string) bool {
 func (b *bidCreditReport) sendMail(userId, userMail, entName, buyer, downloadUrl, orderCode string) bool {
 	ctx := gctx.New()
 	ctx := gctx.New()
-	content := fmt.Sprintf(g.Config().MustGet(ctx, "bidCreditReport.mailContent").String(), downloadUrl, config.Config.WebDomain, orderCode, entName, buyer)
+	previewUrl := fmt.Sprintf("%s/swordfish/page_big_pc/free/report/preview?url=%s", config.Config.WebDomain, url.QueryEscape(downloadUrl))
+	content := fmt.Sprintf(g.Config().MustGet(ctx, "bidCreditReport.mailContent").String(), downloadUrl, previewUrl, entName, buyer)
 	log.Println("开始给", userId, orderCode, userMail, "发送招投标企业信用报告邮件。。。")
 	log.Println("开始给", userId, orderCode, userMail, "发送招投标企业信用报告邮件。。。")
 	if util.SendRetryMail(g.Config().MustGet(ctx, "bidCreditReport.sendMailRetry").Int(), userMail, fmt.Sprintf(g.Config().MustGet(ctx, "bidCreditReport.mailSubject").String(), entName), content, "", nil, config.GmailAuth) {
 	if util.SendRetryMail(g.Config().MustGet(ctx, "bidCreditReport.sendMailRetry").Int(), userMail, fmt.Sprintf(g.Config().MustGet(ctx, "bidCreditReport.mailSubject").String(), entName), content, "", nil, config.GmailAuth) {
 		log.Println("给", userId, orderCode, userMail, "发送招投标企业信用报告邮件成功。。。")
 		log.Println("给", userId, orderCode, userMail, "发送招投标企业信用报告邮件成功。。。")
@@ -213,6 +222,16 @@ func (b *bidCreditReport) Create(id int64) error {
 	certNo := gconv.String((*datas)[0]["cert_no"])
 	certNo := gconv.String((*datas)[0]["cert_no"])
 	orderNo := gconv.String((*datas)[0]["order_no"])
 	orderNo := gconv.String((*datas)[0]["order_no"])
 	outBizNo := guid.S()
 	outBizNo := guid.S()
+	mgoUserId := userId
+	if !IsObjectIdHex(mgoUserId) {
+		identity := IdentityByPositionId(util.BaseMysql, gconv.Int64(userId))
+		if identity != nil && identity.UserId > 0 {
+			user, ok := util.MQFW.FindOneByField("user", map[string]interface{}{"base_user_id": identity.UserId}, `{"_id":1}`)
+			if ok && user != nil && len(*user) > 0 {
+				mgoUserId = BsonIdToSId((*user)["_id"])
+			}
+		}
+	}
 	if !g.Config().MustGet(ctx, "bidCreditReport.productEnv").Bool() || garray.NewStrArrayFrom(g.Config().MustGet(ctx, "bidCreditReport.testIds").Strings()).Contains(userId) {
 	if !g.Config().MustGet(ctx, "bidCreditReport.productEnv").Bool() || garray.NewStrArrayFrom(g.Config().MustGet(ctx, "bidCreditReport.testIds").Strings()).Contains(userId) {
 		outBizNo = "test_" + outBizNo
 		outBizNo = "test_" + outBizNo
 	}
 	}
@@ -327,15 +346,15 @@ func (b *bidCreditReport) Create(id int64) error {
 				} else if district != "" {
 				} else if district != "" {
 					city = district
 					city = district
 				}
 				}
-				bidamount := "-"
-				if !vv.GetVar("bidamount").IsNil() {
-					bidamount = vv.GetVar("bidamount").String()
+				sortprice := "-"
+				if !vv.GetVar("sortprice").IsNil() {
+					sortprice = vv.GetVar("sortprice").String()
 				}
 				}
 				infoUrl := ""
 				infoUrl := ""
 				if infos := vv.GetVar("list").Maps(); len(infos) > 0 {
 				if infos := vv.GetVar("list").Maps(); len(infos) > 0 {
-					infoUrl = config.Config.WebDomain + "/nologin/content/" + encrypt.CommonEncodeArticle("content", gmap.NewStrAnyMapFrom(infos[len(infos)-1]).GetVar("infoid").String()) + ".html"
+					infoUrl = config.Config.WebDomain + "/nologin/content/" + encrypt.CommonEncodeArticle("content", gmap.NewStrAnyMapFrom(infos[len(infos)-1]).GetVar("infoid").String()) + ".html?source=bidCreditReport"
 				}
 				}
-				records = append(records, []string{vv.GetVar("id").String(), projectName, buyer, gtime.New(vv.GetVar("lasttime").Int64()).Layout(time.DateTime), "-", bidamount, "-", area, city, "-", "-", infoUrl})
+				records = append(records, []string{vv.GetVar("id").String(), projectName, buyer, gtime.New(vv.GetVar("lasttime").Int64()).Layout(time.DateTime), "-", sortprice, "-", area, city, "-", "-", infoUrl})
 			}
 			}
 		}
 		}
 		if len(records) > 1 {
 		if len(records) > 1 {
@@ -362,7 +381,7 @@ func (b *bidCreditReport) Create(id int64) error {
 			"status_code": "SUCCESS",
 			"status_code": "SUCCESS",
 			"biz_type":    "BIDDING_RECORD_HIS",
 			"biz_type":    "BIDDING_RECORD_HIS",
 			//"biz_value":   config.Config.WebDomain + performance,
 			//"biz_value":   config.Config.WebDomain + performance,
-			"biz_value": "http://47.94.231.30" + performance,
+			"biz_value": "http://101.200.125.254" + performance,
 		})
 		})
 	} else {
 	} else {
 		log.Println(userId, id, "没有查询到业绩证明")
 		log.Println(userId, id, "没有查询到业绩证明")

+ 10 - 3
src/jfw/modules/subscribepay/src/entity/bidCreditReport/bidCreditReport_test.go

@@ -2,6 +2,7 @@ package bidCreditReport
 
 
 import (
 import (
 	"log"
 	"log"
+	"net/url"
 	"testing"
 	"testing"
 	"time"
 	"time"
 )
 )
@@ -16,18 +17,18 @@ func TestEntSearch(t *testing.T) {
 }
 }
 
 
 func TestEntRiskCheck(t *testing.T) {
 func TestEntRiskCheck(t *testing.T) {
-	BidCreditReport.EntHasRisk("", "91110105MA020L9F6R")
+	BidCreditReport.EntHasRisk("", "91310000132653687M")
 	time.Sleep(time.Minute)
 	time.Sleep(time.Minute)
 }
 }
 
 
 // ZMEP9999202504070099000000057403 test_19s2t86cc40d90atjcd09q0100yvbpml
 // ZMEP9999202504070099000000057403 test_19s2t86cc40d90atjcd09q0100yvbpml
 func TestReportQuery(t *testing.T) {
 func TestReportQuery(t *testing.T) {
-	BidCreditReport.ReportQuery("ZMEP9999202504070099000000057403")
+	BidCreditReport.ReportQuery("ZMEP9999202504090099000000057901")
 	time.Sleep(time.Minute)
 	time.Sleep(time.Minute)
 }
 }
 
 
 func TestSendMail(t *testing.T) {
 func TestSendMail(t *testing.T) {
-	BidCreditReport.sendMail("", "wangchuanjin@topnet.net.cn", "芝麻企业信用管理有限公司", "", "https://jybx2-webtest.jydev.jianyu360.com/bidCreditReportFile/%E5%8C%97%E4%BA%AC%E5%89%91%E9%B1%BC%E4%BF%A1%E6%81%AF%E6%8A%80%E6%9C%AF%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8.pdf", "abcdef")
+	BidCreditReport.sendMail("", "yangfeng@topnet.net.cn", "芝麻企业信用管理有限公司", "", "https://jybx2-webtest.jydev.jianyu360.com/bidCreditReportFile/%E5%8C%97%E4%BA%AC%E5%89%91%E9%B1%BC%E4%BF%A1%E6%81%AF%E6%8A%80%E6%9C%AF%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8.pdf", "abcdef")
 	time.Sleep(time.Minute)
 	time.Sleep(time.Minute)
 }
 }
 
 
@@ -39,3 +40,9 @@ func TestCreate(t *testing.T) {
 func TestNewOrderWarn(t *testing.T) {
 func TestNewOrderWarn(t *testing.T) {
 	BidCreditReport.NewOrderWarn()
 	BidCreditReport.NewOrderWarn()
 }
 }
+
+func TestCallBack(t *testing.T) {
+	from := make(url.Values)
+	log.Println(BidCreditReport.CallBack(from))
+	time.Sleep(time.Minute)
+}

+ 1 - 4
src/jfw/modules/subscribepay/src/entity/bidCreditReport/payCallBack.go

@@ -15,7 +15,7 @@ type bidCreditReportPay struct{}
 var BidCreditReportPay bidCreditReportPay
 var BidCreditReportPay bidCreditReportPay
 
 
 func (b *bidCreditReportPay) PayCallBack(param *entity.CallBackParam) bool {
 func (b *bidCreditReportPay) PayCallBack(param *entity.CallBackParam) bool {
-	orderdata := util.Mysql.FindOne("dataexport_order", param.GetPaySuccessOrderQuery(), "id,filter,order_code,order_status,user_id,product_type,discount_price,d_relation_id", "")
+	orderdata := util.Mysql.FindOne("dataexport_order", param.GetPaySuccessOrderQuery(), "id,filter,order_code,order_status,user_id,product_type,discount_price,d_relation_id,user_mail", "")
 	if orderdata == nil {
 	if orderdata == nil {
 		return false
 		return false
 	}
 	}
@@ -39,9 +39,6 @@ func (b *bidCreditReportPay) PayCallBack(param *entity.CallBackParam) bool {
 				"out_trade_no": param.OutTradeno,
 				"out_trade_no": param.OutTradeno,
 			})
 			})
 			if update {
 			if update {
-
-				//todo
-
 				util.Mysql.Insert("bid_credit_report", map[string]interface{}{
 				util.Mysql.Insert("bid_credit_report", map[string]interface{}{
 					"user_id":     userId,
 					"user_id":     userId,
 					"order_code":  order_code,
 					"order_code":  order_code,

+ 14 - 0
src/jfw/modules/subscribepay/src/entity/commodity.go

@@ -72,6 +72,9 @@ func (this *commodityStruct) Product(productId, orderType int64, userid string,
 		productInfoList, msg = docMemberProduct(productId, orderType, userid, spec, productType, types, sess)
 		productInfoList, msg = docMemberProduct(productId, orderType, userid, spec, productType, types, sess)
 	case PDFPACK_MARKET, PDFPACK_BUYER, PDFPACK_WINNER: //pdf下载包
 	case PDFPACK_MARKET, PDFPACK_BUYER, PDFPACK_WINNER: //pdf下载包
 		productInfoList, msg = pdfExportPackProduct(productId, userid, productType)
 		productInfoList, msg = pdfExportPackProduct(productId, userid, productType)
+	case "投标企业信用报告":
+		productInfoList, msg = pdfExportPackProduct(productId, userid, productType)
+
 	default:
 	default:
 		productInfoList, msg = nil, "产品类型有误"
 		productInfoList, msg = nil, "产品类型有误"
 	}
 	}
@@ -718,6 +721,17 @@ func dataReportProduct(productId int64, userid string, productType string, spec
 	return
 	return
 }
 }
 
 
+func bidReportProduct(productId int64, userid string, productType string) (productInfolist *[]ProductInfo, msg string) {
+	productInfolist = &[]ProductInfo{}
+	productInfo := &ProductInfo{}
+	productInfo.ProductTitle = "投标企业信用报告"
+	productInfo.ProductId = productId
+	productInfo.ProductDesc = ""
+
+	*productInfolist = append(*productInfolist, *productInfo)
+	return
+}
+
 // 根据产品id获取产品名称
 // 根据产品id获取产品名称
 func GetProductNameById(id interface{}) (name, unit string, num int) {
 func GetProductNameById(id interface{}) (name, unit string, num int) {
 	data := util.ActivityMysql.SelectBySql(`select a.productName,a.productCode,a.parentCode,a.describe,a.num,b.name from product a
 	data := util.ActivityMysql.SelectBySql(`select a.productName,a.productCode,a.parentCode,a.describe,a.num,b.name from product a

+ 26 - 6
src/jfw/modules/subscribepay/src/entity/order.go

@@ -73,7 +73,7 @@ type OrderInfo struct {
 	UnNeedPay         bool   `json:"un_needpay,omitempty"`
 	UnNeedPay         bool   `json:"un_needpay,omitempty"`
 	OutTradeNo        string `json:"out_trade_no,omitempty"`
 	OutTradeNo        string `json:"out_trade_no,omitempty"`
 	PayWay            string `json:"pay_way,omitempty"`
 	PayWay            string `json:"pay_way,omitempty"`
-	PrepayId          string `json:"prepay_id",omitempty`
+	PrepayId          string `json:"prepay_id,omitempty"`
 	CodeUrl           string `json:"code_url,omitempty"`
 	CodeUrl           string `json:"code_url,omitempty"`
 	ExpirationTime    string `json:"expiration_time,omitempty"` //倒计时时间,目前只有活动订单使用
 	ExpirationTime    string `json:"expiration_time,omitempty"` //倒计时时间,目前只有活动订单使用
 }
 }
@@ -83,6 +83,8 @@ func (this *commonOrderStruct) RequestCheck(product string, m map[string]interfa
 	switch product {
 	switch product {
 	case "历史数据":
 	case "历史数据":
 		errMsg = dataExportCheck(m, sess)
 		errMsg = dataExportCheck(m, sess)
+	case "投标企业信用报告":
+		errMsg = bidCreditReportCheck(m, sess)
 	}
 	}
 	return
 	return
 }
 }
@@ -130,7 +132,7 @@ func (this *commonOrderStruct) InserMap(product, productId, userid, lotteryId, d
 	case PDFPACK_MARKET, PDFPACK_BUYER, PDFPACK_WINNER: //pdf下载包
 	case PDFPACK_MARKET, PDFPACK_BUYER, PDFPACK_WINNER: //pdf下载包
 		orderinfo, msg = pdfExportPackOrder(m, userid, product, productId)
 		orderinfo, msg = pdfExportPackOrder(m, userid, product, productId)
 	case "投标企业信用报告":
 	case "投标企业信用报告":
-		orderinfo, msg = bidReportOrder(m, userid)
+		orderinfo, msg = bidReportOrder(m, userid, productId)
 	default:
 	default:
 		orderinfo, msg = nil, "产品类型有误"
 		orderinfo, msg = nil, "产品类型有误"
 	}
 	}
@@ -249,6 +251,20 @@ func dataExportCheck(m map[string]interface{}, sess *httpsession.Session) string
 	return ""
 	return ""
 }
 }
 
 
+func bidCreditReportCheck(m map[string]interface{}, sess *httpsession.Session) string {
+	email := qu.ObjToString(m["email"])
+	company := qu.ObjToString(m["company"])
+	certNo := qu.ObjToString(m["cert_no"])
+	buyer := qu.ObjToString(m["buyer"])
+	if !EmailReg.MatchString(email) {
+		return "邮箱验证未通过"
+	}
+	if company == "" || certNo == "" || buyer == "" {
+		return "企业信息不能为空"
+	}
+	return ""
+}
+
 // 历史数据
 // 历史数据
 func dataExportOrder(m map[string]interface{}, userId string) (*OrderInfo, string) {
 func dataExportOrder(m map[string]interface{}, userId string) (*OrderInfo, string) {
 	id := encrypt.SE.Decode4Hex(qu.ObjToString(m["id"]))
 	id := encrypt.SE.Decode4Hex(qu.ObjToString(m["id"]))
@@ -1364,11 +1380,11 @@ func newDataReportOrder(m map[string]interface{}, userId string) (*OrderInfo, st
 	}, ""
 	}, ""
 }
 }
 
 
-func bidReportOrder(m map[string]interface{}, userId string) (*OrderInfo, string) {
+func bidReportOrder(m map[string]interface{}, userId, productId string) (*OrderInfo, string) {
 	email := qu.ObjToString(m["email"])
 	email := qu.ObjToString(m["email"])
 	phone := qu.ObjToString(m["order_phone"])
 	phone := qu.ObjToString(m["order_phone"])
 	company := qu.ObjToString(m["company"])
 	company := qu.ObjToString(m["company"])
-	if !jy.IsPhone(phone) || !EmailReg.MatchString(email) || company == "" {
+	if !EmailReg.MatchString(email) || company == "" {
 		return nil, "数据校验不通过"
 		return nil, "数据校验不通过"
 	}
 	}
 	//生成订单号
 	//生成订单号
@@ -1383,15 +1399,19 @@ func bidReportOrder(m map[string]interface{}, userId string) (*OrderInfo, string
 		"phone":    order_phone,
 		"phone":    order_phone,
 	}
 	}
 	filterStr, _ := json.Marshal(report)
 	filterStr, _ := json.Marshal(report)
+	packDetail, err := JyPdfExportPack.GetPdfPackDetail(productId)
+	if err != nil {
+		return nil, err.Error()
+	}
 	return &OrderInfo{
 	return &OrderInfo{
-		OrderMoney:    qu.IntAll(m["i_price"]),
+		OrderMoney:    packDetail.Price,
 		OrderStatus:   0,
 		OrderStatus:   0,
 		ServiceStatus: 0,
 		ServiceStatus: 0,
 		UserPhone:     phone,
 		UserPhone:     phone,
 		OrderCode:     orderCode,
 		OrderCode:     orderCode,
 		ProductType:   "投标企业信用报告",
 		ProductType:   "投标企业信用报告",
 		CreateTime:    FormatDate(&now, Date_Full_Layout),
 		CreateTime:    FormatDate(&now, Date_Full_Layout),
-		OriginalPrice: qu.IntAll(m["i_price"]),
+		OriginalPrice: packDetail.Price,
 		Filter:        string(filterStr),
 		Filter:        string(filterStr),
 		UserId:        userId,
 		UserId:        userId,
 		UserMail:      email,
 		UserMail:      email,

+ 6 - 0
src/jfw/modules/subscribepay/src/entity/pdfExportPack.go

@@ -26,11 +26,13 @@ const (
 	PDFPACK_WINNER_CODE = iota + 1
 	PDFPACK_WINNER_CODE = iota + 1
 	PDFPACK_BUYER_CODE
 	PDFPACK_BUYER_CODE
 	PDFPACK_MARKET_CODE
 	PDFPACK_MARKET_CODE
+	PDFPACK_BIDREPORT_CODE
 
 
 	PDFPACK_SOURCENAME = "pdf下载包"
 	PDFPACK_SOURCENAME = "pdf下载包"
 	PDFPACK_WINNER     = "企业中标分析报告下载包"
 	PDFPACK_WINNER     = "企业中标分析报告下载包"
 	PDFPACK_BUYER      = "业主采购分析报告下载包"
 	PDFPACK_BUYER      = "业主采购分析报告下载包"
 	PDFPACK_MARKET     = "市场分析定制报告下载包"
 	PDFPACK_MARKET     = "市场分析定制报告下载包"
+	PDFPACK_BIDREPORT  = "投标企业信用报告下载包"
 
 
 	ParentResourceIdPrefix = "p_share_"
 	ParentResourceIdPrefix = "p_share_"
 )
 )
@@ -377,6 +379,8 @@ func (this *pdfExportPackStruct) GetNameByCode(resourceType int) (string, error)
 		resourceName = PDFPACK_BUYER
 		resourceName = PDFPACK_BUYER
 	case PDFPACK_MARKET_CODE:
 	case PDFPACK_MARKET_CODE:
 		resourceName = PDFPACK_MARKET
 		resourceName = PDFPACK_MARKET
+	case PDFPACK_BIDREPORT_CODE:
+		resourceName = PDFPACK_BIDREPORT
 	default:
 	default:
 		return "", fmt.Errorf("未知pdf下载包类型")
 		return "", fmt.Errorf("未知pdf下载包类型")
 	}
 	}
@@ -392,6 +396,8 @@ func (this *pdfExportPackStruct) GetCodeByName(resourceName string) (int, error)
 		resourceType = PDFPACK_BUYER_CODE
 		resourceType = PDFPACK_BUYER_CODE
 	case PDFPACK_MARKET:
 	case PDFPACK_MARKET:
 		resourceType = PDFPACK_MARKET_CODE
 		resourceType = PDFPACK_MARKET_CODE
+	case PDFPACK_BIDREPORT:
+		resourceType = PDFPACK_BIDREPORT_CODE
 	default:
 	default:
 		return -1, fmt.Errorf("未知pdf下载包类型")
 		return -1, fmt.Errorf("未知pdf下载包类型")
 	}
 	}

+ 2 - 1
src/jfw/modules/subscribepay/src/filter/sessionfilter.go

@@ -29,7 +29,8 @@ func (l *sessionfilter) Do() bool {
 		strings.HasPrefix(rqu, "/subscribepay/vip/gift/informInfo") || //vip赠送告知页面
 		strings.HasPrefix(rqu, "/subscribepay/vip/gift/informInfo") || //vip赠送告知页面
 		strings.HasPrefix(rqu, "/subscribepay/vip/gift/configuration") || //vip赠送配置页面
 		strings.HasPrefix(rqu, "/subscribepay/vip/gift/configuration") || //vip赠送配置页面
 		rqu == "/jypay/wx/getwxSdkSign" || rqu == "/jypay/user/company/association" ||
 		rqu == "/jypay/wx/getwxSdkSign" || rqu == "/jypay/user/company/association" ||
-		rqu == "/jypay/equityCode/submit" || rqu == "/jypay/equityCode/captcha" || rqu == "/jypay/getDomain" { //微信js调用参数
+		rqu == "/jypay/equityCode/submit" || rqu == "/jypay/equityCode/captcha" || rqu == "/jypay/getDomain" || //微信js调用参数
+		rqu == "/subscribepay/config" { //获取配置项
 		return true
 		return true
 	}
 	}
 	if l.GetSession["userId"] == nil {
 	if l.GetSession["userId"] == nil {

+ 2 - 2
src/jfw/modules/subscribepay/src/pay/aliPay.go

@@ -132,8 +132,8 @@ const (
 	ALI_PDFEXPORT_APP    = "ALIE" // 剑鱼pdf导出包-app支付
 	ALI_PDFEXPORT_APP    = "ALIE" // 剑鱼pdf导出包-app支付
 	ALI_PDFEXPORT_NATIVE = "alie" //剑鱼pdf导出包 -pc支付
 	ALI_PDFEXPORT_NATIVE = "alie" //剑鱼pdf导出包 -pc支付
 
 
-	ALI_BIDREPORT_APP    = "ALIP" // 投标企业信用报告-app支付
-	ALI_BIDREPORT_NATIVE = "alip" // 投标企业信用报告-pc支付
+	ALI_BIDREPORT_APP    = "ALIBP" // 投标企业信用报告-app支付
+	ALI_BIDREPORT_NATIVE = "aliBP" // 投标企业信用报告-pc支付
 )
 )
 
 
 func (w *aliPayStruct) GetTradeno(tradenoSign string, productType ...string) (string, string) {
 func (w *aliPayStruct) GetTradeno(tradenoSign string, productType ...string) (string, string) {

+ 6 - 6
src/jfw/modules/subscribepay/src/pay/wxPay.go

@@ -75,9 +75,9 @@ const (
 	WX_PDFEXPORT_APP    = "WEA"
 	WX_PDFEXPORT_APP    = "WEA"
 	WX_PDFEXPORT_NATIVE = "WEN"
 	WX_PDFEXPORT_NATIVE = "WEN"
 
 
-	WX_BIDREPORT_JSAPI  = "WPJ" // 投标企业信用报告-js支付
-	WX_BIDREPORT_APP    = "WPA" // 投标企业信用报告-app支付
-	WX_BIDREPORT_NATIVE = "WPN" // 投标企业信用报告-pc支付
+	WX_BIDREPORT_JSAPI  = "WBPJ" // 投标企业信用报告-js支付
+	WX_BIDREPORT_APP    = "WBPA" // 投标企业信用报告-app支付
+	WX_BIDREPORT_NATIVE = "WBPN" // 投标企业信用报告-pc支付
 )
 )
 
 
 var WxStruct *WeixinStruct
 var WxStruct *WeixinStruct
@@ -161,12 +161,12 @@ func (w *WeixinStruct) CreatePrepayOrder(tradeno, ip, openid, appid, detailmsg s
 	attachmsg, bodymsg, detailmsg = w.getPayShwoMsg(tradeno, detailmsg)
 	attachmsg, bodymsg, detailmsg = w.getPayShwoMsg(tradeno, detailmsg)
 	//支付类型分类
 	//支付类型分类
 	tradeType := ""
 	tradeType := ""
-	if tradeno == WX_REWARD_JSAPI || tradeno == WX_DATAEXPORT_JSAPI || tradeno == WX_DATAREPORT_JSAPI || tradeno == WX_SUBVIP_JSAPI || tradeno == WX_COURSE_JSAPI || tradeno == WX_COURSEONLINE_JSAPI || tradeno == WX_MEMBER_JSAPI || tradeno == WX_AIFORECASTPACK_JSAPI || tradeno == WX_BIDFILE_JSAPI || tradeno == WX_INTEGRAL_JSAPI || tradeno == WX_DATAPACK_JSAIP || tradeno == WX_AREAPACK_JSAPI || tradeno == WX_FILEPACK_JSAPI || tradeno == WX_BUYERPORTRAITPACK_JSAPI || tradeno == WX_DOCMEMBER_JSAPI || tradeno == WX_DENRISPRODUCT || tradeno == WX_PDFEXPORT_JSAPI || tradeno == WX_RETURN_NATIVE { //微信js支付
+	if tradeno == WX_REWARD_JSAPI || tradeno == WX_DATAEXPORT_JSAPI || tradeno == WX_DATAREPORT_JSAPI || tradeno == WX_SUBVIP_JSAPI || tradeno == WX_COURSE_JSAPI || tradeno == WX_COURSEONLINE_JSAPI || tradeno == WX_MEMBER_JSAPI || tradeno == WX_AIFORECASTPACK_JSAPI || tradeno == WX_BIDFILE_JSAPI || tradeno == WX_INTEGRAL_JSAPI || tradeno == WX_DATAPACK_JSAIP || tradeno == WX_AREAPACK_JSAPI || tradeno == WX_FILEPACK_JSAPI || tradeno == WX_BUYERPORTRAITPACK_JSAPI || tradeno == WX_DOCMEMBER_JSAPI || tradeno == WX_DENRISPRODUCT || tradeno == WX_PDFEXPORT_JSAPI || tradeno == WX_RETURN_NATIVE || tradeno == WX_BIDREPORT_JSAPI { //微信js支付
 		tradeType = "JSAPI"
 		tradeType = "JSAPI"
-	} else if tradeno == WX_DATAEXPORT_APP || tradeno == WX_DATAREPORT_APP || tradeno == WX_SUBVIP_APP || tradeno == WX_COURSE_APP || tradeno == WX_ENTNICHE_APP || tradeno == WX_COURSEONLINE_APP || tradeno == WX_MEMBER_APP || tradeno == WX_AIFORECASTPACK_APP || tradeno == WX_BIDFILE_APP || tradeno == WX_INTEGRAL_APP || tradeno == WX_DATAPACK_APP || tradeno == WX_AREAPACK_APP || tradeno == WX_FILEPACK_APP || tradeno == WX_BUYERPORTRAITPACK_APP || tradeno == WX_DOCMEMBER_APP || tradeno == WX_PDFEXPORT_APP { //app支付
+	} else if tradeno == WX_DATAEXPORT_APP || tradeno == WX_DATAREPORT_APP || tradeno == WX_SUBVIP_APP || tradeno == WX_COURSE_APP || tradeno == WX_ENTNICHE_APP || tradeno == WX_COURSEONLINE_APP || tradeno == WX_MEMBER_APP || tradeno == WX_AIFORECASTPACK_APP || tradeno == WX_BIDFILE_APP || tradeno == WX_INTEGRAL_APP || tradeno == WX_DATAPACK_APP || tradeno == WX_AREAPACK_APP || tradeno == WX_FILEPACK_APP || tradeno == WX_BUYERPORTRAITPACK_APP || tradeno == WX_DOCMEMBER_APP || tradeno == WX_PDFEXPORT_APP || tradeno == WX_BIDREPORT_APP { //app支付
 		tradeType = "APP"
 		tradeType = "APP"
 		appid = w.Appid_app
 		appid = w.Appid_app
-	} else if tradeno == WX_DATAEXPORT_NATIVE || tradeno == WX_COURSE_NATIVE || tradeno == WX_COURSEONLINE_NATIVE || tradeno == WX_DATAREPORT_NATIVE || tradeno == WX_ENTNICHE_NATIVE || tradeno == WX_SUBVIP_NATIVE || tradeno == WX_MEMBER_NATIVE || tradeno == WX_AIFORECASTPACK_NATIVE || tradeno == WX_BIDFILE_NATIVE || tradeno == WX_INTEGRAL_NATIVE || tradeno == WX_DATAPACK_NATIVE || tradeno == WX_AREAPACK_NATIVE || tradeno == WX_FILEPACK_NATIVE || tradeno == WX_BUYERPORTRAITPACK_NATIVE || tradeno == WX_DOCMBER_NATIVE || tradeno == WX_PDFEXPORT_NATIVE { //扫码支付
+	} else if tradeno == WX_DATAEXPORT_NATIVE || tradeno == WX_COURSE_NATIVE || tradeno == WX_COURSEONLINE_NATIVE || tradeno == WX_DATAREPORT_NATIVE || tradeno == WX_ENTNICHE_NATIVE || tradeno == WX_SUBVIP_NATIVE || tradeno == WX_MEMBER_NATIVE || tradeno == WX_AIFORECASTPACK_NATIVE || tradeno == WX_BIDFILE_NATIVE || tradeno == WX_INTEGRAL_NATIVE || tradeno == WX_DATAPACK_NATIVE || tradeno == WX_AREAPACK_NATIVE || tradeno == WX_FILEPACK_NATIVE || tradeno == WX_BUYERPORTRAITPACK_NATIVE || tradeno == WX_DOCMBER_NATIVE || tradeno == WX_PDFEXPORT_NATIVE || tradeno == WX_BIDREPORT_NATIVE { //扫码支付
 		tradeType = "NATIVE"
 		tradeType = "NATIVE"
 	}
 	}
 
 

+ 2 - 2
src/jfw/modules/subscribepay/src/service/bidCreditReport.go

@@ -48,7 +48,7 @@ func (this *BidCreditReport) EntSearch() {
 func (this *BidCreditReport) GetReport() {
 func (this *BidCreditReport) GetReport() {
 	adminIdArr := g.Cfg().MustGet(context.TODO(), "bidCreditReport.adminIds").Strings()
 	adminIdArr := g.Cfg().MustGet(context.TODO(), "bidCreditReport.adminIds").Strings()
 	fool := true
 	fool := true
-	userId, _ := this.GetSession("userId").(string)
+	userId, _ := this.GetSession("mgoUserId").(string)
 	for _, adminId := range adminIdArr {
 	for _, adminId := range adminIdArr {
 		if userId == adminId {
 		if userId == adminId {
 			fool = false
 			fool = false
@@ -82,7 +82,7 @@ func (this *BidCreditReport) GetReport() {
 func (this *BidCreditReport) UpdateReport() {
 func (this *BidCreditReport) UpdateReport() {
 	adminIdArr := g.Cfg().MustGet(context.TODO(), "bidCreditReport.adminIds").Strings()
 	adminIdArr := g.Cfg().MustGet(context.TODO(), "bidCreditReport.adminIds").Strings()
 	fool := true
 	fool := true
-	userId, _ := this.GetSession("userId").(string)
+	userId, _ := this.GetSession("mgoUserId").(string)
 	for _, adminId := range adminIdArr {
 	for _, adminId := range adminIdArr {
 		if userId == adminId {
 		if userId == adminId {
 			fool = false
 			fool = false

+ 19 - 0
src/jfw/modules/subscribepay/src/service/config.go

@@ -0,0 +1,19 @@
+package service
+
+import (
+	"app.yhyue.com/moapp/jybase/api"
+	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
+	"github.com/gogf/gf/v2/frame/g"
+	"github.com/gogf/gf/v2/os/gctx"
+)
+
+type Config struct {
+	*xweb.Action
+	config xweb.Mapper `xweb:"/config"`
+}
+
+func (c *Config) Config() {
+	c.ServeJson(api.Result{Data: api.M{
+		"bidCreditReport_makeTime": g.Config().MustGet(gctx.New(), "bidCreditReport.makeTime").String(),
+	}})
+}

+ 1 - 1
src/jfw/modules/subscribepay/src/service/payCallback.go

@@ -444,7 +444,7 @@ func (p *PayCallBackAction) WxPayCallback() {
 			if update = entity.JyPdfExportPack.PayCallBack(thisParam); !update {
 			if update = entity.JyPdfExportPack.PayCallBack(thisParam); !update {
 				log.Printf("微信下载包支付回调更新执行出错 %+v\n", thisParam)
 				log.Printf("微信下载包支付回调更新执行出错 %+v\n", thisParam)
 			}
 			}
-		} else if strings.HasPrefix(outTradeno, pay.WX_PDFEXPORT_NATIVE) || strings.HasPrefix(outTradeno, pay.WX_PDFEXPORT_APP) || strings.HasPrefix(outTradeno, pay.WX_PDFEXPORT_JSAPI) { //pdf下载包回调
+		} else if strings.HasPrefix(outTradeno, pay.WX_BIDREPORT_JSAPI) || strings.HasPrefix(outTradeno, pay.WX_BIDREPORT_APP) || strings.HasPrefix(outTradeno, pay.WX_BIDREPORT_NATIVE) {
 			if update = bidCreditReport.BidCreditReportPay.PayCallBack(thisParam); !update {
 			if update = bidCreditReport.BidCreditReportPay.PayCallBack(thisParam); !update {
 				log.Printf("微信投标企业信用报告回调更新执行出错 %+v\n", thisParam)
 				log.Printf("微信投标企业信用报告回调更新执行出错 %+v\n", thisParam)
 			}
 			}

+ 10 - 0
src/jfw/modules/subscribepay/src/service/userAccountInfo.go

@@ -339,6 +339,15 @@ func (this *UserAccount) GetAccountInfo() {
 				otherMail = qutil.ObjToString((*userMsg)["s_myemail"])
 				otherMail = qutil.ObjToString((*userMsg)["s_myemail"])
 			}
 			}
 		}
 		}
+		reportMail := ""
+		orders1 := util.Mysql.SelectBySql(`SELECT user_mail from dataexport_order where user_id=? and order_status=1 and (product_type='投标企业信用报告' or product_type='企业中标分析报告下载包' or product_type='业主采购分析报告下载包' or
+                product_type = '市场分析定制报告下载包') order by create_time desc limit 1`, userId)
+		if orders != nil && len(*orders1) == 1 {
+			reportMail = qutil.ObjToString((*orders1)[0]["user_mail"])
+		}
+		if reportMail == "" {
+			reportMail = qutil.ObjToString((*userMsg)["s_myemail"])
+		}
 		return map[string]interface{}{
 		return map[string]interface{}{
 			"userId":        encrypt.EncodeArticleId(userId),
 			"userId":        encrypt.EncodeArticleId(userId),
 			"email":         qutil.ObjToString((*userMsg)["s_myemail"]),
 			"email":         qutil.ObjToString((*userMsg)["s_myemail"]),
@@ -354,6 +363,7 @@ func (this *UserAccount) GetAccountInfo() {
 			"breakRenewTip": breakRenewTip,
 			"breakRenewTip": breakRenewTip,
 			"otherMail":     otherMail, //从数据导出填写的邮箱或者从数据定制服务这里获取的邮箱
 			"otherMail":     otherMail, //从数据导出填写的邮箱或者从数据定制服务这里获取的邮箱
 			"expBinding":    qutil.IntAll((*userMsg)["experience_binding"]),
 			"expBinding":    qutil.IntAll((*userMsg)["experience_binding"]),
+			"reportMail":    reportMail,
 		}, nil
 		}, nil
 	}()
 	}()
 	this.ServeJson(NewResult(rData, errMsg))
 	this.ServeJson(NewResult(rData, errMsg))

文件差异内容过多而无法显示
+ 0 - 0
src/web/staticres/common-module/login-js/jy-login-mini.mjs


文件差异内容过多而无法显示
+ 0 - 0
src/web/staticres/common-module/login-js/jy-login-mini.umd.js


文件差异内容过多而无法显示
+ 0 - 0
src/web/staticres/common-module/login-js/jy-login.mjs


文件差异内容过多而无法显示
+ 0 - 0
src/web/staticres/common-module/login-js/jy-login.umd.js


二进制
src/web/staticres/common-module/order-list/image/bidCreditReport.png


二进制
src/web/staticres/common-module/order-list/image/creditReport.png


+ 27 - 3
src/web/staticres/common-module/order-list/js/order-list-config.js

@@ -14,7 +14,8 @@ var assetsConf = {
     '剑鱼文库会员': 'docMemberLink',
     '剑鱼文库会员': 'docMemberLink',
     '市场分析定制报告下载包':'marketAnalysisLink',
     '市场分析定制报告下载包':'marketAnalysisLink',
     '企业中标分析报告下载包':'enterpriseAnalysisLink',
     '企业中标分析报告下载包':'enterpriseAnalysisLink',
-    '业主采购分析报告下载包':'ownerAnalysisLink'
+    '业主采购分析报告下载包':'ownerAnalysisLink',
+    '投标企业信用报告':'bidCreditReportLink'
   },
   },
   // 产品集合
   // 产品集合
   productionTypeList: [
   productionTypeList: [
@@ -39,7 +40,8 @@ var assetsConf = {
     '剑鱼文库会员',
     '剑鱼文库会员',
     '市场分析定制报告下载包',
     '市场分析定制报告下载包',
     '企业中标分析报告下载包',
     '企业中标分析报告下载包',
-    '业主采购分析报告下载包'
+    '业主采购分析报告下载包',
+    '投标企业信息报告'
   ],
   ],
   // 支持再次购买的产品集合
   // 支持再次购买的产品集合
   canBuyAgainProductions: [
   canBuyAgainProductions: [
@@ -69,7 +71,8 @@ var assetsConf = {
     '剑鱼文库会员',
     '剑鱼文库会员',
     '市场分析定制报告下载包',
     '市场分析定制报告下载包',
     '企业中标分析报告下载包',
     '企业中标分析报告下载包',
-    '业主采购分析报告下载包'
+    '业主采购分析报告下载包',
+    '投标企业信用报告'
   ],
   ],
   init: function () {
   init: function () {
     // this.getPlatform()
     // this.getPlatform()
@@ -565,7 +568,28 @@ var assetsConf = {
           app: '/common-module/order-list/image/ownerAnalysis.png'
           app: '/common-module/order-list/image/ownerAnalysis.png'
         }
         }
       }
       }
+    },
+    // 投标企业信用报告
+  bidCreditReportLink: {
+    pay: {
+      wx: '/weixin/pay/checkout_bidcreditreport',
+      app: '/jyapp/pay/checkout_bidcreditreport'
+    },
+    // buyAgain: {
+    //   wx: '/jy_mobile/order/create/bidcreditreport',
+    //   app: '/jy_mobile/order/create/bidcreditreport'
+    // },
+    orderDetail: {
+      wx: '/weixin/common/bidCreditReport/orderDetail',
+      app: '/jyapp/common/bidCreditReport/orderDetail'
+    },
+    imgMap: {
+      headerImg: {
+        wx: '/common-module/order-list/image/bidCreditReport.png',
+        app: '/common-module/order-list/image/bidCreditReport.png'
+      }
     }
     }
+  }
 }
 }
 
 
 
 

+ 39 - 0
src/web/staticres/common-module/order-list/js/order-list.js

@@ -666,6 +666,16 @@ var vm = new Vue({
           }
           }
           break
           break
         }
         }
+        case '投标企业信用报告': {
+          try {
+            info.contentImgUrl = assetsConf.bidCreditReportLink.imgMap.headerImg[platform]
+            info.contentList = this.getBidCreditReportInfo(order)
+          } catch (error) {
+            info.contentList = []
+            console.log(error)
+          }
+          break
+        }
         case '大会员': {
         case '大会员': {
           var filterInfo = JSON.parse(order.filter)
           var filterInfo = JSON.parse(order.filter)
           var level = filterInfo.level
           var level = filterInfo.level
@@ -1337,6 +1347,12 @@ var vm = new Vue({
           }
           }
           break
           break
         }
         }
+        case '投标企业信用报告': {
+          var href = assetsConf.bidCreditReportLink.pay[platform]
+          if (href) {
+            this.goToLink(`${href}?orderCode=${orderCode}`)
+          }
+        }
         default: {
         default: {
           break
           break
         }
         }
@@ -1660,6 +1676,13 @@ var vm = new Vue({
           }
           }
           break
           break
         }
         }
+        case '投标企业信用报告': {
+          var href = assetsConf.bidCreditReportLink.orderDetail[platform]
+          if (href) {
+            goToFn(`${href}?order_code=${orderCode}`)
+          }
+          break
+        }
         default: {
         default: {
           break
           break
         }
         }
@@ -2586,6 +2609,22 @@ var vm = new Vue({
 
 
       return [entName, teamCount, userDate]
       return [entName, teamCount, userDate]
     },
     },
+    // 投标企业信用报告
+    getBidCreditReportInfo: function (order) {
+
+      var entName = {
+        label: '产品类型',
+        split: ':',
+        text: order.product_type
+      }
+      var teamCount = {
+        label: '报告下载份数',
+        split: ':',
+        text: '1份'
+      }
+
+      return [entName, teamCount]
+    },
     // 大会员订单卡片信息整理
     // 大会员订单卡片信息整理
     getBigMemberInfo: function (order) {
     getBigMemberInfo: function (order) {
       var filterInfo = JSON.parse(order.filter)
       var filterInfo = JSON.parse(order.filter)

+ 8 - 1
src/web/staticres/js/login.js

@@ -235,6 +235,13 @@ var SendMsg = function(){
 }
 }
 //生成页面二维码,不同页面处理逻辑
 //生成页面二维码,不同页面处理逻辑
 var getNewShareId = function(num,isFirst){
 var getNewShareId = function(num,isFirst){
+  var source = getParam("source")
+  var addCodeImgSource = ''
+  if (source && source !== 'undefined' && source!== 'null') {
+    addCodeImgSource = '?source=' + source
+  } else {
+    addCodeImgSource = ''
+  }
 	mynum = num;
 	mynum = num;
 	pageType = "T"
 	pageType = "T"
 	var rref = document.referrer;
 	var rref = document.referrer;
@@ -265,7 +272,7 @@ var getNewShareId = function(num,isFirst){
 			$(".jyhead_qr img").attr("src","/front/share/"+pageshareid);
 			$(".jyhead_qr img").attr("src","/front/share/"+pageshareid);
 			$("#bottomimg").attr("src","/front/share/"+pageshareid);
 			$("#bottomimg").attr("src","/front/share/"+pageshareid);
 			$("*[data-share-img]").attr("src","/front/share/"+pageshareid);
 			$("*[data-share-img]").attr("src","/front/share/"+pageshareid);
-			$("#layerImg-login").attr("src","/front/share/"+pageshareid);
+			$("#layerImg-login").attr("src","/front/share/"+pageshareid + addCodeImgSource);
 			$("#layerImg-zbsq").attr("src","/front/share/"+pageshareid);
 			$("#layerImg-zbsq").attr("src","/front/share/"+pageshareid);
 			switch(num){
 			switch(num){
 				case "10"://首页
 				case "10"://首页

+ 36 - 0
src/web/staticres/order/css/pay_success.css

@@ -242,3 +242,39 @@
 	margin-left: -17px;
 	margin-left: -17px;
 	display: inline-block;
 	display: inline-block;
 }
 }
+.credit-report-dialog{
+  margin: 0 auto !important;
+  position: absolute!important;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  padding: 32px!important;
+  border-radius: 8px!important;
+}
+.credit-report-dialog .el-dialog__header{
+  padding: 0!important;
+}
+.credit-report-dialog .el-dialog__body{
+  padding: 20px 0 32px!important;
+}
+.credit-report-dialog .el-dialog__footer{
+  padding: 0!important;
+}
+.credit-report-dialog .dialog-content{
+  font-size: 14px;
+  line-height: 22px;
+  color: #686868;
+  text-align: center;
+}
+.credit-report-dialog .dialog-footer{
+  display: flex;
+  justify-content: space-between;
+}
+.credit-report-dialog .el-button{
+  width: 132px;
+  height: 36px;
+  padding: 0;
+  line-height: 36px;
+  border-radius: 6px;
+  font-size: 16px;
+}

+ 6 - 0
src/web/staticres/wxCommonPay/css/public.css

@@ -451,6 +451,12 @@ button[disabled] {
   color: #fb483d;
   color: #fb483d;
 }
 }
 
 
+.weui-dialog__hd {
+  padding: 0.4rem 0.4rem 0;
+  font-size: .32rem;
+  color: #171826;
+}
+
 .weui-skin_android .weui-dialog__bd,
 .weui-skin_android .weui-dialog__bd,
 .weui-dialog__bd {
 .weui-dialog__bd {
   margin: 0.44rem 0.4rem 0.44rem;
   margin: 0.44rem 0.4rem 0.44rem;

+ 340 - 0
src/web/templates/order/pc/creditReport/detail.html

@@ -0,0 +1,340 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>订单详情</title>
+    <meta content="增值服务" theme="light" name="enable-header"/>
+    <script>
+      var myPageNavIsNormal = true;
+    </script>
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/course/css/bootstrap.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/course/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/course/css/reset_pc.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/course/css/order_detail.css?v={{Msg "seo" "version"}}">
+    {{include "/common/pnc.html"}}
+    <link href="{{Msg "seo" "cdn"}}/css/pc.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+    <link href="{{Msg "seo" "cdn"}}/css/dev2/reset_pc.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+    <link rel="stylesheet" type="text/css"
+          href="{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}"/>
+    <script type="text/javascript" src="{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}3"></script>
+    <!--[if lt IE 9]>
+    <script src="https://cdn-common.jianyu360.com/cdn/lib/html5shiv/3.7.3/html5shiv.min.js"></script>
+    <script src="https://cdn-common.jianyu360.com/cdn/lib/respond-js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+    <style>
+        .filter_data p {
+            font-size: 14px;
+            margin-bottom: 10px;
+        }
+
+        #order_detail {
+            line-height: 1;
+            padding-bottom: 0px !important;
+            background-color: #fff;
+        }
+
+        .qxBg {
+            border-top: 2px solid #999999;
+            background-color: #ececec;
+        }
+
+        .qxBgFont {
+            color: #686868;
+        }
+        .date-row{
+            display: none;
+        }
+    </style>
+</head>
+<body>
+{{include "/common/pchead.html"}}
+<!-- header -->
+<!-- main  START -->
+<div class="order_detail" id="order_detail">
+    <div class="w order_crumb">
+        <a href="#" onclick="window.location.href='/front/swordfish/toMyOrder'">我的订单</a><em> > </em>
+        <a href="#" class="active">订单详情</a>
+    </div>
+    <div class="w order_main">
+        <!-- greenBg 为绿色背景及边框 redBg为红色背景及边框 -->
+        <div id="bg" class="o_m_thead greenBg">
+            <p class="order_id"></p>
+            <p class="clearfix order_state">
+                <!--greenFont为绿色字体 redFont为红色字体 -->
+                <span class="greenFont hide" id="status_success">已完成</span>
+                <span class="redFont hide" id="status_wait_pay">待付款</span>
+                <span class="qxBgFont hide" id="status_cancelled">已取消</span>
+
+                <a class="go_pay payOrder" style="display: none;">去支付</a>
+
+                <!-- 当状态为已完成时显示开发票 或 查看发票 -->
+                <a class="openinvoice go_pay" style="display: none;">开发票</a>
+                <a class="lookinvoice go_pay" style="display: none;">查看发票</a>
+            </p>
+        </div>
+
+        <div class="o_m_tbody">
+            <div class="b_list">
+                <div class="list_thead">
+                    <span class="fl">购买信息</span>
+                </div>
+                <div class="clearfix list_tbody">
+                    <div class="filter_data">
+                        <p><span class="pt_text">产品类型</span>:<span class="product_type"></span></p>
+                        <p><span class="hy_text">报告下载份数</span>:<span class="hysl"></span>份<span class="give_num"  style="color:#2CB7CA"></span></p>
+                        <!-- <p><span class="year_Text">使用有效期</span>: <span class="year"></span>年</p>
+                        <p class="date-row"><span class="zq_text">有效期至</span>:<span class="dyzq"></span></p> -->
+                        <p style="display: none;"><span>投标企业名称:</span><span class="bidding-name"></span></p>
+                        <p style="display: none;"><span>招标单位名称:</span><span class="buyer-name"></span></p>
+                        <p style="display: none;"><span>邮箱:</span><span class="email"></span></p>
+                    </div>
+                </div>
+            </div>
+            <div class="b_list">
+                <div class="list_thead">
+                    <span class="fl">订单信息</span>
+                </div>
+                <div class="clearfix list_tbody">
+                    <div class="filter_data">
+                        <p>订单编号:<span class="order_code"></span></p>
+                        <p>下单时间:<span class="order_time"></span></p>
+                        <p class="pay_time_p" style="display: none;">支付时间:<span class="pay_time"></span></p>
+                        <p class="pay_way_p" style="display:none">支付方式:<span class="pay_way"></span></p>
+                        <p class="pay_num_p" style="display:none">支付单号:<span class="pay_num"></span></p>
+                        <p class="price_p" data-need-before-money>商品总价:<span class="price"></span> &nbsp; <span class="valuationList"
+                                                                                                                style="color:#2CB7CA;display:none;cursor:pointer">计费清单</span>
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+    </div>
+    <div style="margin-top: 20px;"></div>
+    <!-- main END -->
+    {{include "/common/pcbottom.html"}}
+    {{include "/common/baiducc.html"}}
+    <script src="{{Msg "seo" "cdn"}}/course/js/jquery-2.1.4.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/course/js/bootstrap.min.js?v={{Msg "seo" "version"}}"></script>
+    <!-- footer -->
+    <script>
+      $(function () {
+        $("#public-nav").css("background", "#fff");
+        $(".public-nav").css("border-bottom", "1px solid #e0e0e0");
+        haslogin({{.T.logid}});
+
+        var orderCode = {{.T.orderId}};
+        $(".order_id").text("订单编号:" + orderCode);
+        $.post("/subscribepay/orderListDetails/getOrderPayAllMsg", {"orderCode": orderCode}, function (r) {
+          if (r == '{"error":"需要登录!"}') {
+            location.href = '/';
+          }
+          if (r.success) {
+            //订单信息
+            $(".order_code").text(orderCode);
+            var filterObj = JSON.parse(r.data.order.filter);
+            if (r.data.order.create_time) {
+              $(".order_time").text(r.data.order.create_time.replace(/-/g, "."));
+            }
+            // 产品名称
+            $('.product_type').text(r.data.order.product_type)
+
+            /*---S-优惠券---*/
+            function insetMoneyItem () {
+              // 商品总价=订单金额(order_money)+优惠金额(order.discount_price)
+              var order_money = (r.data.order.order_money / 100)
+              var getPayMoney = (r.data.order.pay_money / 100)
+              var getCouponMoney = (r.data.order.discount_price / 100) || 0
+              var prodMoney = (order_money * 100) + (getCouponMoney * 100)
+              var insetDom = $('*[data-need-before-money]')
+
+              $(".price").text("¥ " + formatMoney(prodMoney / 100) + "元");
+              // 只有已完成的订单展示有效期至
+              if(r.data.order.order_status === 1) {
+                $('.date-row').show()
+              }
+              // 已取消和已退款订单不显示优惠信息
+              if (r.data.order.order_status != -2 && r.data.order.order_status != -3) {
+                if (getPayMoney) {
+                  // const dom = `<span style="color: #FF3A20;font-size:14px">退款成功</span>`
+                  // insetDom.after('<p>实付金额:¥' + formatMoney(getPayMoney) +'元'+ dom + '</p>')
+                  if(!r.data.order.refund_status) {
+                    insetDom.after('<p>实付金额:¥' + formatMoney(getPayMoney) +'元</p>')
+                  } else {
+                    const dom = `<span style="margin-left: 20px;color: #FF3A20;font-size:14px">退款成功</span>`
+                    insetDom.after('<p>实付金额:¥' + formatMoney(getPayMoney) +'元'+ dom + '</p>')
+                  }
+                }
+                if (getCouponMoney) {
+                  insetDom.after('<p>优惠金额:-¥' + formatMoney(getCouponMoney) +'元</p>')
+                }
+              }
+
+            }
+            insetMoneyItem()
+            /*---E-优惠券---*/
+
+            //优惠码
+            if (r.data.order.isUsedActiveCode) {
+              $(".discount-container").removeClass("hide");
+              $(".highlight-text").text("赠送30天");
+            }
+            var give_cycle=filterObj.give_cycle;
+            if (give_cycle!=undefined){
+              give_cycle = give_cycle < 12 ? (give_cycle + '个月') : ('1年');
+            }
+            if (give_cycle) {
+              $(".discount-container").removeClass("hide");
+              $(".highlight-text").text("赠送"+give_cycle);
+            }
+            if (r.data.order.order_status == 1) {
+              $("#status_success").removeClass("hide");
+              if (r.data.order.pay_time){
+                $(".pay_time_p").css("display", "");
+                $(".pay_time").text(r.data.order.pay_time.replace("-", ".").replace("-", "."));
+              }
+              //支付方式
+              if (r.data.order.pay_way && r.data.order.pay_way.indexOf("wx") > -1) {
+                $(".pay_way_p").css("display", "");
+                $(".pay_way").text("微信支付");
+              } else if (r.data.order.pay_way && r.data.order.pay_way.indexOf("ali") > -1) {
+                $(".pay_way").text("支付宝支付");
+                $(".pay_way_p").css("display", "");
+              }
+              if (r.data.order.original_price == 0) {
+                $(".pay_time_p").css("display", "none");
+                $(".vip_type").text("(试用)");
+              } else if (r.data.order.pay_money > 0){
+                $(".pay_num_p").css("display", "");
+                if (r.data.transaction_id) $(".pay_num").text(r.data.transaction_id);
+                //发票
+                if (r.data.order.is_can_invoice && r.data.order.refund_status) {
+                  $(".openinvoice").css("display", "");
+                }
+                if (r.data.invoice_show) {
+                  $(".lookinvoice").css("display", "").on("click", function () {
+                    checkinvoice(r.data.applybill_status, orderCode)//查看发票
+                  })
+                }
+              }
+            }
+            if (r.data.order.order_status == -2 || r.data.order.order_status == -3) {
+              $("#status_cancelled").removeClass("hide");
+              $("#bg").addClass("qxBg").removeClass("greenBg");
+            }
+            if (r.data.order.order_status == 0) {
+              $("#status_wait_pay").removeClass("hide");
+              $("#bg").addClass("redBg").removeClass("greenBg");
+              $(".payOrder").show();
+            }
+            // 展示字段
+            $('.filter_data .dyzq').text(filterObj.endTime)
+            $('.filter_data .hysl').text(filterObj.pNum || 1)
+            $('.filter_data .year').text(filterObj.validYear)
+            $('.filter_data .give_num').text((filterObj.give_cycle > 0 ? ' 赠'+filterObj.give_cycle + '份' : ''))
+            $('.filter_data .bidding-name').text(filterObj.ent_name)
+            $('.filter_data .buyer-name').text(filterObj.buyer)
+            $('.filter_data .email').text(filterObj.email)
+            $(".payOrder").on("click", function () {
+              location.href = "/front/creditReport/orderPay/" + orderCode;
+            })
+
+            //计价清单
+            var filterObj = JSON.parse(r.data.order.filter);
+            var upgradeSubtotail = filterObj.upgradeSubtotail;
+            if (upgradeSubtotail) {	//有则显示
+              $(".valuationList").css("display", "");
+              $(".valuationList").on("click", function () {
+                window.location.href = "/front/order/valuationList/" + orderCode;
+              })
+            }
+          }
+        })
+
+
+        $(".openinvoice").on("click", function () {
+          window.open("/front/order/invoice/" + orderCode, '_self');
+        })
+      })
+
+      // 格式化金钱的函数
+      // s: 金额(number) 必传
+      // n: 保留小数的位数(int:0-100)
+      function formatMoney(s, n) {
+        if (n === undefined) {
+          n = -1
+        } else {
+          n = n > 0 && n <= 20 ? n : 2;
+        }
+        var intS = parseInt(s)
+        var point = '.'
+        var left;
+        var right;
+        s = parseFloat((s + '').replace(/[^\d\.-]/g, ''))
+        // 没传n,默认(如果为整数,则不保留小数。如果为浮点数,则保留两位小数)
+        if (n === -1) {
+          if (s === intS) {
+            n = 0
+            right = ''
+            point = ''
+          } else {
+            n = 2
+            s = s.toFixed(n);
+            right = s.split('.')[1];
+          }
+          s = s + ''
+          left = s.split('.')[0].split("").reverse();
+        } else {
+          s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
+          left = s.split('.')[0].split('').reverse();
+          right = s.split('.')[1];
+        }
+
+        t = "";
+        for (i = 0; i < left.length; i++) {
+          t += left[i] + ((i + 1) % 3 == 0 && (i + 1) != left.length ? ',' : '');
+        }
+
+        var money = t.split('').reverse().join('') + point + right;
+        return money;
+      }
+
+
+      /******* 获取url参数(正则)********/
+      function getParam(name) {
+        var search = document.location.search;
+        // alert(search);
+        var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
+        var matcher = pattern.exec(search);
+        var items = null;
+        if (null != matcher) {
+          try {
+            items = decodeURIComponent(decodeURIComponent(matcher[1]));
+          } catch (e) {
+            try {
+              items = decodeURIComponent(matcher[1]);
+            } catch (e) {
+              items = matcher[1];
+            }
+          }
+        }
+        return items;
+      };
+      //查看发票
+      function checkinvoice(flag, orderCode) {
+        // if (flag === 2) {
+        //     var showHtml = '<div style="width: 100%;height: 100%;z-index: 999; position: absolute;top: 0;background: rgba(0, 0, 0, 0.65);">   <div style="position: fixed;z-index: 9999;width: 540px;height: 262px;left: 50%;top: 30%;margin-left: -270px;background-color: #fff;border-radius: 6px;padding: 32px;display: flex;flex-direction: column;justify-items: center;align-items: center;">       <div class="invoice_title" style="color: #1D1D1D;font-size: 18px;line-height: 28px;">提示</div>       <div class="invoice_body"            style="height: 78px;margin: 20px 0px;font-size: 14px;line-height: 24px;text-align: center;">           您已开具发票<br>           如有问题请联系客服<br>           400-108-6670       </div>       <div class="invoice_control"            style="width: 132px;height: 36px;text-align: center;background: #2CB7CA;border-radius: 6px;font-size: 16px;line-height: 36px;color: #FFFFFF;cursor: pointer;"            onclick="document.querySelector(\'#invoice_tip\').remove()"       >           我知道了       </div>   </div>\n</div>'
+        //     var div_invoice_tip = document.createElement('div');
+        //     div_invoice_tip.innerHTML = showHtml;
+        //     div_invoice_tip.id = "invoice_tip"
+        //     document.body.appendChild(div_invoice_tip)
+        //     return
+        // }
+        window.open("/front/order/check_invoice/" + orderCode, '_self');
+      }
+    </script>
+</body>
+</html>

+ 40 - 0
src/web/templates/order/pc/paySuccess.html

@@ -189,6 +189,9 @@
             {{else if eq .T.orderType "propPack"}}
             {{else if eq .T.orderType "propPack"}}
                 <a class="check_order sm-size default" href="/front/downloadPack/packDetail?order_code={{.T.orderCode}}">查看订单</a>
                 <a class="check_order sm-size default" href="/front/downloadPack/packDetail?order_code={{.T.orderCode}}">查看订单</a>
                 <span style="margin-left:16px;cursor:pointer;" class="check_order" onclick="getAnalysisJumpUrl('prop')" >下载报告</span>
                 <span style="margin-left:16px;cursor:pointer;" class="check_order" onclick="getAnalysisJumpUrl('prop')" >下载报告</span>
+            {{else if eq .T.orderType "creditReport"}}
+                <a class="check_order sm-size default" href="/front/creditReport/orderDetail?order_code={{.T.orderCode}}">查看订单</a>
+                <!-- <span style="margin-left:16px;cursor:pointer;" class="check_order" onclick="getAnalysisJumpUrl('creditReport')" >下载报告</span> -->
             {{end}}
             {{end}}
 
 
             </div>
             </div>
@@ -200,6 +203,22 @@
           </div>
           </div>
         </div>
         </div>
     </div>
     </div>
+    {{if eq .T.orderType "creditReport"}}
+    <el-dialog
+      center
+      title="报告下载成功"
+      :visible.sync="dialogVisible"
+      width="380px"
+      :show-close="false"
+      custom-class="credit-report-dialog"
+    >
+      <div class="dialog-content">报告将于${bidCreditReport_makeTime}内发送至您的邮箱,您也可前往“资产-报告下载记录”查看详情。</div>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="goDownloadRecord">查看下载记录</el-button>
+        <el-button @click="dialogVisible = false">取 消</el-button>
+      </span>
+    </el-dialog>
+    {{end}}
 </div>
 </div>
 {{include "/common/pcbottom.html"}}
 {{include "/common/pcbottom.html"}}
 
 
@@ -474,10 +493,15 @@
         data () {
         data () {
           return {
           return {
             isShowGift: false,
             isShowGift: false,
+            dialogVisible: true,
+            bidCreditReport_makeTime: '', // 报告生成时间
           }
           }
         },
         },
         created() {
         created() {
           this.fetchConfigTime()
           this.fetchConfigTime()
+          if (orderType === 'creditReport') {
+            this.getTimeConfig()
+          }
         },
         },
 
 
         methods: {
         methods: {
@@ -513,6 +537,22 @@
             }
             }
            
            
           },
           },
+          getTimeConfig: function() {
+            var _this = this
+            $.ajax({
+              url: '/subscribepay/config',
+              type: 'post',
+              success: function(res) {
+                console.log(res);
+                if (res && res.data) {
+                  _this.bidCreditReport_makeTime = res.data.bidCreditReport_makeTime || ''
+                }
+              }
+            })
+          },
+          goDownloadRecord: function() {
+            window.location.href = '/page_workDesktop/work-bench/app/big/report/download_record'
+          }
         }
         }
    })
    })
 
 

+ 19 - 3
src/web/templates/pc/myOrder.html

@@ -460,7 +460,12 @@
                             item.filter.give_cycle +'份': ''#@</span></p>
                             item.filter.give_cycle +'份': ''#@</span></p>
                     <p>使用有效期:@# item.filter.validYear#@年</p>
                     <p>使用有效期:@# item.filter.validYear#@年</p>
                     <p v-if="item.order_status === 1">有效期至:@#item.filter.endTime#@</p>
                     <p v-if="item.order_status === 1">有效期至:@#item.filter.endTime#@</p>
-                 </div>
+                  </div>
+                  <div class="fl shop_main" v-if="item.product_type === '投标企业信用报告'">
+                    <p>产品类型: @#item.product_type#@</p>
+                    <!-- 后端说只有一份,可以写死,没必要存 -->
+                    <p>报告下载份数:1份</p>
+                  </div>
                 </div>
                 </div>
 
 
                 <!-- 商品金额 -->
                 <!-- 商品金额 -->
@@ -784,7 +789,7 @@
       delimiters: ['@#', '#@'],
       delimiters: ['@#', '#@'],
       data: function () {
       data: function () {
         return {
         return {
-          typeEnum: ["医械通", "VIP订阅", "中标必听课", "企业商机管理", "剑鱼币", "历史数据", "大会员", "大会员-AI中标预测包", "大会员-子账号", "大会员-招标文件解读", "大会员-补充包", "招标文件解读", "数据报告", '数据流量包', '省份订阅包', '附件下载包', '采购单位画像包', '数据文件', '剑鱼文库会员', '市场分析定制报告下载包', '企业中标分析报告下载包', '业主采购分析报告下载包'],
+          typeEnum: ["医械通", "VIP订阅", "中标必听课", "企业商机管理", "剑鱼币", "历史数据", "大会员", "大会员-AI中标预测包", "大会员-子账号", "大会员-招标文件解读", "大会员-补充包", "招标文件解读", "数据报告", '数据流量包', '省份订阅包', '附件下载包', '采购单位画像包', '数据文件', '剑鱼文库会员', '市场分析定制报告下载包', '企业中标分析报告下载包', '业主采购分析报告下载包', '投标企业信用报告'],
           imgMap: {
           imgMap: {
             '医械通': {
             '医械通': {
               icon: '/electronic_invoice/image/med_aratus.png?v=1001'
               icon: '/electronic_invoice/image/med_aratus.png?v=1001'
@@ -892,7 +897,10 @@
             },
             },
             '业主采购分析报告下载包': {
             '业主采购分析报告下载包': {
               icon: '/order/image/yzcgfxbg.png'
               icon: '/order/image/yzcgfxbg.png'
-            }
+            },
+            '投标企业信用报告': {
+              icon: '/common-module/order-list/image/creditReport.png'
+            },
           },
           },
           bigIndexMap: {
           bigIndexMap: {
             1: '专家版',
             1: '专家版',
@@ -1369,6 +1377,10 @@
               href = '/front/entPack/orderPay/' + item.order_code
               href = '/front/entPack/orderPay/' + item.order_code
               break
               break
             }
             }
+            case '投标企业信用报告': {
+              href = '/front/creditReport/orderPay/' + item.order_code
+              break
+            }
           }
           }
           // 添加市场分析报告
           // 添加市场分析报告
           if (goTemplateData.inIframe) {
           if (goTemplateData.inIframe) {
@@ -1600,6 +1612,10 @@
               href = '/front/downloadPack/packDetail?order_code=' + item.order_code
               href = '/front/downloadPack/packDetail?order_code=' + item.order_code
               break
               break
             }
             }
+            case '投标企业信用报告': {
+              href = '/front/creditReport/jyOrderDetail/' + item.order_code
+              break
+            }
           }
           }
           window.open(href)
           window.open(href)
         },
         },

+ 3 - 3
src/web/templates/structuredata/mobile/marketing_wx.html

@@ -69,11 +69,11 @@
 			</div>
 			</div>
 		</div>
 		</div>
 		<div class="j-button-group">
 		<div class="j-button-group">
-			<a ="bindPhoneCustomer()" class="j-button-cancel" id="j_cancel">
+			<a v-bound-phone="bindPhoneCustomer()" class="j-button-cancel" id="j_cancel">
 				<!-- <span class="phone_icon"></span> -->
 				<!-- <span class="phone_icon"></span> -->
 				<span>咨询客服</span>
 				<span>咨询客服</span>
 			</a>
 			</a>
-            <button ="bindPhoneLearnMore()" class="j-button-confirm" id="j_confirm">获取数据样例</button>
+            <button v-bound-phone="bindPhoneLearnMore()" class="j-button-confirm" id="j_confirm">获取数据样例</button>
 		</div>
 		</div>
 	</div>
 	</div>
 	{{include "/common/baiducc.html"}}
 	{{include "/common/baiducc.html"}}
@@ -169,7 +169,7 @@
           },
           },
           next: function () {
           next: function () {
             window.location.href= href
             window.location.href= href
-          }	
+          }
         }
         }
       },
       },
       bindPhoneCustomer: function() {
       bindPhoneCustomer: function() {

+ 128 - 0
src/web/templates/weixin/commonPay/bidCreditReport/orderDetail.html

@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+<head>
+  <meta charset="utf-8">
+  <meta name="keywords" content="剑鱼标讯">
+  <meta name="description" content="剑鱼标讯">
+  <meta name="author" content="剑鱼标讯">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
+  <meta name="browsermode" content="application">
+  <meta name="x5-orientation" content="portrait">
+  <meta name="screen-orientation" content="portrait">
+  <meta name="x5-page-mode" content="app">
+  <meta name="apple-mobile-web-app-capable" content="yes">
+  <meta name="apple-mobile-web-app-status-bar-style" content="black">
+  <meta name="format-detection" content="telephone=no">
+  <title>订单详情</title>
+  <!--S-当前页面的css资源-->
+  <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
+  <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+  <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+  <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/big-member/css/j-icons.css?v={{Msg "seo" "version"}}'>
+  <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/big-member/css/public.css?v={{Msg "seo" "version"}}'>
+  <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/order-list/css/order-detail.css?v={{Msg "seo" "version"}}' />
+</head>
+
+<body>
+    <div class="j-container transparent-header">
+        <div class="j-main order-detail" id="app" v-cloak>
+            <div class="j-container">
+                <div class="j-main no-scrollbar">
+                    <div class="wrapper">
+                        <div class="header-pic arc-container" :class="orderStateMap[orderInfo.state].bgcClassName">
+                            <div class="order-state">${ orderStateMap[orderInfo.state].text }</div>
+                            <div class="surplus-time" v-if="orderStateMap[orderInfo.state].surplusTimeShow && orderInfo.surplusTime > 0">
+                                <span>剩余支付时间:</span>
+                                <van-count-down @finish="onCountdownFinish" :time="orderInfo.surplusTime"></van-count-down>
+                            </div>
+                        </div>
+                        <div class="card-list">
+                            <div class="j-card report-p">
+                                <span class="rp-left" :class="'badge-' + (orderInfoFilter.badge || '')">
+                                    <img class="card-l-pic" :src="orderInfo.headerImg">
+                                </span>
+                                <span class="rp-right">
+                                    <span class="product-type">${ orderInfo.productType }</span>
+                                    <span class="pay-money">&yen; ${ orderInfo.payMoney }</span>
+                                    <span v-if="orderInfo.refund_status && orderInfo.refund_status > 0" class="refund-success-tip">退款成功</span>
+                                </span>
+                            </div>
+                            <div class="j-card product-info" v-if="orderInfo.productInfoList.length">
+                                <div class="j-card-title">购买信息</div>
+                                <div class="j-card-items">
+                                    <div
+                                        class="j-card-item"
+                                        :class="item.className"
+                                        v-for="(item, index) in orderInfo.productInfoList"
+                                        :key="index"
+                                        v-show="item.text"
+                                    >
+                                        <span class="card-item-l">${ item.label + item.split }</span>
+                                        <span class="card-item-r" v-html="item.text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="j-card report-info">
+                                <div class="j-card-title">订单信息</div>
+                                <div class="j-card-items">
+                                    <div
+                                        class="j-card-item"
+                                        :class="item.className"
+                                        v-for="(item, index) in orderInfo.orderInfoList"
+                                        :key="index"
+                                        v-show="item.text"
+                                    >
+                                        <span class="card-item-l">${ item.label + item.split }</span>
+                                        <span class="card-item-r" v-html="item.text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="j-button-group j-footer" v-show="buttonGroupShow">
+                    <button
+                        class="j-button-confirm pay"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.pay"
+                        @click="onConfirmPay">立即支付</button>
+                    <button
+                        class="j-button-cancel invoke"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.invoke && !orderInfo.refund_status"
+                        @click="lookInvoke">${ invokeButtonText }</button>
+                        <button
+                        class="j-button-cancel invoke"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.lookInvoice && !orderInfo.refund_status"
+                        @click="lookInvoke('look')">查看发票</button>
+                    <button
+                        class="j-button-confirm buy-again"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.buyAgain"
+                        @click="buyAgain">再次购买</button>
+                    <!-- <button
+                            class="j-button-confirm renew"
+                            v-if="orderStateMap[orderInfo.state].bottomButtonShow.renew"
+                            @click="renew">续费</button> -->
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--S-当前页面的资源-->
+    <script src="/big-member/js/rem.js"></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js></script>
+    <!--E-当前页面的资源-->
+    <script>
+        var pageInfo = {
+            platform: 'wx',
+            version: {{Msg "seo" "version"}},
+        }
+    </script>
+    <script src='{{Msg "seo" "cdn"}}/big-member/js/utils.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/common-module/order-list/js/order-list-config.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/common-module/order-list/js/order-detail.js?v={{Msg "seo" "version"}}'></script>
+    {{include "/common/baiducc.html"}}
+</body>
+
+</html>

+ 40 - 0
src/web/templates/weixin/commonPay/paySuccess.html

@@ -189,6 +189,21 @@
   </button>
   </button>
 </div>
 </div>
 {{end}}
 {{end}}
+  <div class="weui-mask" id="weuiMask" style="display: none;"></div>
+  <div class="weui-dialog" id="weuiDialog" style="display: none;">
+      <div class="weui-dialog__hd">
+        报告下载成功
+      </div>
+      <div class="weui-dialog__bd">
+          <p id="weuiDialogContent">
+            报告将于<span class="time"></span>分钟内发送至您的邮箱,您也可前往“资产-报告下载记录”查看详情。
+          </p>
+      </div>
+      <div class="weui-dialog__ft">
+          <a href="javascript:;" id="weuiDialogCancel" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
+          <a href="/jy_mobile/reportanalysis/reportDownload?inside-jumps=1" id="weuiDialogConfirm" class="weui-dialog__btn weui-dialog__btn_primary">查看下载记录</a>
+      </div>
+  </div>
 </div>
 </div>
 </body>
 </body>
 <script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
 <script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
@@ -316,6 +331,13 @@
                         setAreaPackInfo(JSON.parse(res.data.order.filter))
                         setAreaPackInfo(JSON.parse(res.data.order.filter))
                         break
                         break
                       }
                       }
+                      case '投标企业信用报告': {
+                        // var tempNode = $('.info-box.info-item[name="投标企业信用报告"]')
+                        // var tempInfo = JSON.parse(res.data.order.filter)
+                        // tempNode.find('span[name="file-num"]').text('+' + tempInfo.num)
+                        $('#weuiMask').show()
+                        $('#weuiDialog').show()
+                      }
                     }
                     }
                 } catch (e) {
                 } catch (e) {
                     console.warn(e)
                     console.warn(e)
@@ -323,6 +345,24 @@
             }
             }
         }
         }
     })
     })
+    $.ajax({
+      type: 'POST',
+      url: '/subscribepay/config',
+      success: function (res) {
+        if (res && res.error_code === 0 && res.data) {
+          console.log(res.data)
+          $('#weuiDialogContent .time').html(res.data.bidCreditReport_makeTime)
+        }
+      }
+    })
+    $('#weuiDialogCancel').click(function () {
+      $('#weuiDialog').hide()
+      $('#weuiMask').hide()
+    })
+    $('#weuiMask').click(function () {
+      $('#weuiDialog').hide()
+      $('#weuiMask').hide()
+    })
     $(function () {
     $(function () {
         var payTime = {{.T.payTime}}
         var payTime = {{.T.payTime}}
         var price ={{.T.price}}
         var price ={{.T.price}}

部分文件因为文件数量过多而无法显示