Explorar el Código

Merge branch 'master' into feature/v4.9.43

lianbingjie hace 11 meses
padre
commit
02dede2562
Se han modificado 50 ficheros con 1199 adiciones y 141 borrados
  1. 4 4
      src/config.yaml
  2. 1 0
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_index_new.js
  3. 51 4
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_order_detail.js
  4. 12 4
      src/jfw/modules/app/src/web/templates/big-member/page_orderdetail_member.html
  5. 28 1
      src/jfw/modules/app/src/web/templates/commonPay/checkout.html
  6. 6 0
      src/jfw/modules/app/src/web/templates/commonPay/transferAccountsResult.html
  7. 24 6
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_order_detail.html
  8. 5 1
      src/jfw/modules/subscribepay/src/config.json
  9. 2 1
      src/jfw/modules/subscribepay/src/config/config.go
  10. 10 0
      src/jfw/modules/subscribepay/src/entity/order.go
  11. 1 1
      src/jfw/modules/subscribepay/src/go.mod
  12. 2 2
      src/jfw/modules/subscribepay/src/go.sum
  13. 4 4
      src/jfw/modules/subscribepay/src/rpcfollow/payCallBackRpc.go
  14. 9 7
      src/jfw/modules/subscribepay/src/service/commonAction.go
  15. 1 1
      src/jfw/modules/subscribepay/src/service/orderListDetails.go
  16. 162 22
      src/jfw/modules/subscribepay/src/service/userAccountInfo.go
  17. 5 0
      src/jfw/modules/subscribepay/src/timetask/timetask.go
  18. 31 0
      src/jfw/modules/subscribepay/src/util/sendMail.go
  19. 38 0
      src/web/staticres/big-member/js/utils.js
  20. 84 0
      src/web/staticres/common-module/appPay/css/popup.css
  21. BIN
      src/web/staticres/common-module/appPay/img/box-yellow.png
  22. BIN
      src/web/staticres/common-module/appPay/img/popup-bg.png
  23. 58 0
      src/web/staticres/common-module/appPay/js/appPay.js
  24. 66 0
      src/web/staticres/common-module/appPay/js/popup.js
  25. 5 2
      src/web/staticres/common-module/order-list/js/order-list.js
  26. 26 5
      src/web/staticres/common-module/perfect-info/js/perfect-info.js
  27. 14 3
      src/web/staticres/common-module/vipsubscribe/js/vip-subscribe-set-template.js
  28. 1 1
      src/web/staticres/css/ele-reset.css
  29. 6 0
      src/web/staticres/frontRouter/pc/my_data_packet/js/index-pc.js
  30. BIN
      src/web/staticres/images/index/limit-time-icon.png
  31. BIN
      src/web/staticres/images/index/more_icon_gold.png
  32. BIN
      src/web/staticres/images/index/more_icon_gold2.png
  33. BIN
      src/web/staticres/images/index/more_icon_gray.png
  34. BIN
      src/web/staticres/images/userTypeIcon/bigmember.png
  35. BIN
      src/web/staticres/images/userTypeIcon/vip.png
  36. 2 14
      src/web/staticres/js/index/index_2023.12.js
  37. 121 10
      src/web/staticres/pccss/index_pc.css
  38. 47 2
      src/web/staticres/serviceSystem/js/serviceSystem.js
  39. 1 0
      src/web/staticres/vipsubscribe/js/vip_index_new.js
  40. 3 3
      src/web/templates/frontRouter/pc/serviceSystem/free/index.html
  41. 6 1
      src/web/templates/order/pc/orderPay.html
  42. 4 1
      src/web/templates/pc/dataPack/index.html
  43. 9 3
      src/web/templates/pc/member_orderDetail.html
  44. 14 5
      src/web/templates/pc/myOrder.html
  45. 153 10
      src/web/templates/pc/template/index/user-info-card.html
  46. 68 11
      src/web/templates/pc/vip_orderDetail.html
  47. 26 2
      src/web/templates/weixin/commonPay/checkout.html
  48. 6 0
      src/web/templates/weixin/commonPay/transferAccountsResult.html
  49. 10 3
      src/web/templates/weixin/member/memberdetail.html
  50. 73 7
      src/web/templates/weixin/vipsubscribe/vip_order_detail.html

+ 4 - 4
src/config.yaml

@@ -1,8 +1,8 @@
 etcd:
   hosts:
-  - 192.168.3.207:2379
-  - 192.168.3.165:2379
-  - 192.168.3.204:2379
+    - 192.168.3.207:2379
+    - 192.168.3.165:2379
+    - 192.168.3.204:2379
 userCenterKey: "usercenter.rpc" #用户中台rpc
 powerCheckCenterKey: "powercheck.rpc" #权益校验中台
 resourceCenterKey: "resource.rpc" #资源中台
@@ -13,5 +13,5 @@ publicserviceKey: "publicservice.rpc"
 
 database:
   default:
-    link: "clickhouse:jianyu_appl:Cli3#fkh4ouSe@tcp(172.17.16.40:4012)/jyseo_test?dial_timeout=2000ms&max_execution_time=60"
+    link: "clickhouse:jytop:pwdTopJy123@tcp(192.168.3.207:19000)/jyseo_test?dial_timeout=2000ms&max_execution_time=60"
     debug: true

+ 1 - 0
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_index_new.js

@@ -169,6 +169,7 @@ var subNode = new Vue({
           }
           _this.memberStatus = res.data.memberStatus
           sessionStorage.setItem('big_member_status', res.data.memberStatus)
+          window.$infoRoot_add = res.data || {}
         }
       })
     },

+ 51 - 4
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_order_detail.js

@@ -342,6 +342,27 @@ $(function () {
                 //未支付
                 $("#card-header-bg").addClass("bg nopay-bg")
                 $("#pageTitle").addClass("status")
+                if (r.data.order.pay_way === "transferAccounts") {
+                    if (r.data.order.course_status === 2) {
+                        $("#pageTitle").text("转账审核中");
+                    } else if (r.data.order.course_status === 3) {
+                        $("#pageTitle").text("未收到转账");
+                        $(".remaining").show().text("客服电话:400-108-6670")
+
+                        $(".j-footer").show().html("<button class='j-button-confirm' style='width: 100%!important;height: 0.92rem!important;' >再次支付</button>").on("click", function () {
+                            window.location.href = "/jyapp/pay/checkout_subvip?orderCode=" + orderCode + "&t=3";
+                        })
+                    }
+                    if (filterObj.transferV) {
+                        initImgView(filterObj.transferV)
+                        $(".payWay").html("公对公转账<span style='color: #2ABED1' onclick='showImg()'>&nbsp;查看凭证</span>");
+                    }
+                    $(".line_payway").css("display", "");
+
+                    $(".l-item.paymoney").css("display", "");
+                    $(".paymoney .price").text("-");
+                    
+                }else{
                 $("#pageTitle").text("待付款");
                 $(".remaining").show()
                 var order_create_time = r.data.order.create_time
@@ -385,9 +406,10 @@ $(function () {
                         $(".remaining").text("剩余支付时间:" + hour + ":" + minute + ":" + seconds)
                     }
                 }, 1000)
-                $(".invoice").hide();//隐藏开发票
                 var pay_now = "<button class=\"j-button-confirm\" style='width: 100%!important;' onclick=choosePayWay()>去支付</button>"
                 $(".j-footer").show().html(pay_now)
+              }
+            $(".invoice").hide();//隐藏开发票
             } else if (r.data.order.order_status == 1) {
                 if (r.data.order.discount_price&&r.data.order.discount_price>0){
                   discount_price = r.data.order.discount_price;
@@ -439,7 +461,12 @@ $(function () {
                         $(".line_payway").css("display", "");
                         pay_way = "ali_app"
                     } else if(r.data.order.pay_way === "transferAccounts"&&(r.data.order.is_backstage_order===1&&r.data.order.return_status>0||r.data.order.is_backstage_order===0)){
+                        window.isTransferPay = r.data.applybill_status === 0
                         $(".payWay").text("公对公转账");
+                        if (filterObj.transferV) {
+                            initImgView(filterObj.transferV)
+                            $(".payWay").html("公对公转账<span style='color: #2ABED1' onclick='showImg()'>&nbsp;查看凭证</span>");
+                        }
                         $(".line_payway").css("display", "");
                     } else {//试用用户
                         $(".invoice").css("display", "none");
@@ -496,9 +523,16 @@ $(function () {
                        $(".j-footer").show().html(pay_again)     
                 
             } else if (r.data.order.order_status == -2 || r.data.order.order_status == -3) {
-                $("#card-header-bg").addClass("bg cancel-bg")
-                $("#pageTitle").addClass("status")
-                $("#pageTitle").text("已取消");
+                if( r.data.order.pay_way === "transferAccounts" && r.data.order.course_status === 3){
+                    $("#card-header-bg").addClass("bg nopay-bg")
+                    $("#pageTitle").addClass("status")
+                    $("#pageTitle").text("未收到转账");
+                    $(".remaining").show().text("客服电话:400-108-6670")
+                }else{
+                    $("#card-header-bg").addClass("bg cancel-bg")
+                    $("#pageTitle").addClass("status")
+                    $("#pageTitle").text("已取消");
+                }
                 $(".invoice").css("display", "none");//隐藏开发票
                 $(".payPrice").parent().hide();
                 $(".discountPrice").parent().hide();
@@ -752,6 +786,9 @@ $(function () {
 
     // 移除检查客户端检查tab的定时器
     clearInterval(window.checkTabTimerId)
+    $(".page.pinch-zoom-parent").on("click", function () {
+        $(this).css("display", "none");
+    })
 })
 var orderCode_ = decodeURIComponent(getParam("orderCode"));
 
@@ -801,7 +838,17 @@ function invoiceAdd() {
         
     })
 }
+function initImgView(imgSrc) {
+    if (imgSrc) {
+        $(".pinch-zoom").html(' <img src="' + imgSrc + '"/>')
+        var el = document.querySelector('div.pinch-zoom');
+        new PinchZoom.default(el, {});
+    }
+}
 
+function showImg() {
+    $(".page.pinch-zoom-parent").css("display", "").css("z-index", "999")
+}
 //苹果端  刷新js
 $(function () {
     var isPageHide = false;

+ 12 - 4
src/jfw/modules/app/src/web/templates/big-member/page_orderdetail_member.html

@@ -8,7 +8,7 @@
     <meta name="viewport"
           content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
     <meta name="apple-mobile-web-app-status-bar-style" content="black">
-    <title>我的订单</title>
+    <title>订单详情</title>
     <meta name="apple-mobile-web-app-capable" content="yes">
     <meta name="apple-mobile-web-app-status-bar-style" content="black">
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/rem.js"></script>
@@ -594,9 +594,17 @@
                 })
             }
             if (r.data.order_status == -2 || r.data.order_status == -3) {
-                $("#card-header-bg").addClass("bg cancel-bg")
-                $("#pageTitle").addClass("status")
-                $("#pageTitle").text("已取消");
+                if( r.data.pay_way === "transferAccounts" && r.data.course_status === 3){
+                    $("#card-header-bg").addClass("bg nopay-bg")
+                    $("#pageTitle").addClass("status")
+                    $("#pageTitle").text("未收到转账");
+                    $(".remaining").show().text("客服电话:400-108-6670")
+                }else{
+                    $("#card-header-bg").addClass("bg cancel-bg")
+                    $("#pageTitle").addClass("status")
+                    $("#pageTitle").text("已取消");
+                }
+
                 $(".invoice").css("display", "none");//隐藏开发票
             }
         })

+ 28 - 1
src/jfw/modules/app/src/web/templates/commonPay/checkout.html

@@ -10,6 +10,9 @@
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <title>{{.T.title}}</title>
     <script src="/js/rem.js"></script>
+    <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/commonPay/css/weui.min.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet"
@@ -18,6 +21,7 @@
           href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/commonPay/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet"
           href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/commonPay/css/public.css?v={{Msg "seo" "version"}}">
+        <link rel="stylesheet" type="text/css" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/appPay/css/popup.css?v={{Msg "seo" "version"}}'/>
     <style>
         .j-body .need-pay {
             display: flex;
@@ -111,15 +115,37 @@
                     </div>
                 </div>
             {{end}}
-        </div>
+            {{if eq .T.doType "subvip"}}
+            <div class="j-cell" data-pay-mode="transferAccounts">
+                <div class="j-cell_left" style="padding-left: 0.04rem;">
+                    <span class="icon-gongduigongzhuanzhang"></span>
+                </div>
+                <div class="j-cell_right">
+                    <div class="j-cell_rl">公对公转账</div>
+                    <div class="j-cell_rr iconfont icon-shezhichenggong"></div>
+                </div>
+            </div>
+        {{end}}
+        </div> 
     </div>
     <div class="j-footer j-button-group">
         <button class="j-button-confirm">去支付</button>
     </div>
+    <div id="vuePay">
+        <vippopup v-if="doType == 'subvip'"       
+        v-model="popup.tip"
+        @onconfirm="ontipconfirm"
+        @oncancel="ontipcancel"></vippopup>
+    </div>
 </div>
+<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="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/commonPay/js/common.js?v={{Msg "seo" "version"}}"></script>
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}"></script>
+<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}"></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/appPay/js/popup.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/appPay/js/appPay.js?v={{Msg "seo" "version"}}'></script>
 <script>
     $(function () {
         var checkout = {
@@ -391,6 +417,7 @@
         }
         checkout.init()
         window.checkout = checkout
+        vuePay.doType = {{.T.doType}}     
     })
 </script>
 {{include "/common/baiducc.html"}}

+ 6 - 0
src/jfw/modules/app/src/web/templates/commonPay/transferAccountsResult.html

@@ -57,6 +57,12 @@
                     onclick="window.location.href='/jyapp/big/page/orderdetail_member?order_code={{.T.orderCode}}'">查看订单
             </button>
         {{end}}
+
+        {{if eq .T.doType "subvip"}}
+        <button class="j-button-confirm"
+                onclick="window.location.href='/jyapp/vipsubscribe/toOrderDetailPage?orderCode={{.T.orderCode}}'">查看订单
+        </button>
+    {{end}}
     </div>
 </div>
 <script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>

+ 24 - 6
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_order_detail.html

@@ -5,7 +5,7 @@
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
-    <title>我的订单</title>
+    <title>订单详情</title>
     <meta name="apple-mobile-web-app-capable" content="yes">
     <meta name="apple-mobile-web-app-status-bar-style" content="black">
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/rem.js"></script>
@@ -34,6 +34,18 @@
       font-size: .2rem !important;
       margin-right: -1.8rem
   }
+	.page.pinch-zoom-parent {
+        padding: 20px;
+        height: 100vh;
+        width: 100vw;
+        position: absolute;
+        top: 0;
+        background: rgba(0, 0, 0, 44%);
+    }
+
+    .page.pinch-zoom-parent .pinch-zoom-container {
+        height: 100% !important;
+    }
 </style>
 <body style="visibility:hidden">
     <div class="j-container" id="order_detail">
@@ -83,9 +95,9 @@
 											<span class="item-list-parents industryNum value"></span>
 										</p>
 										<p class="l-item">
-                                            <span class="subscribe_cycle">
-                                                <span class="dyzq">订阅周期:</span><span class="item-list-parents cyclecount value"></span>
-                                            </span>
+                      <span class="subscribe_cycle">
+                        <span class="dyzq">订阅周期:</span><span class="item-list-parents cyclecount value"></span>
+                      </span>
 											<span class="discount-container hide">
 											    <span>&nbsp;+&nbsp;</span>
 											    <span class="highlight-text">赠送30天</span>
@@ -120,9 +132,9 @@
                         <span class="label">优惠金额:</span>
                         <span class="discountPrice value" style="color: #FB483D;">-</span>
                     </p>
-										<p class="l-item">
+										<p class="l-item paymoney">
 											<span class="label" id="price">实付金额:</span>
-											<span class="payPrice value"></span><em class="qingdan valuationList" style="display:none">计费清单</em>
+											<span class="payPrice value price"></span><em class="qingdan valuationList" style="display:none">计费清单</em>
 										</p>
 										<!-- 订单状态为已完成时显示支付时间、支付方式和订单号,状态为待付款时不显示 -->
 										<p class="l-item line_paytime" style="display:none">
@@ -182,9 +194,15 @@
 			</div>
 		</div>
 	</div>
+	<div class="page pinch-zoom-parent" style="z-index: -1">
+    <div class="pinch-zoom">
+        <img src="/courseFile/2020/10/28/20201028163700010351920Sv.jpg"/>
+    </div>
+</div>
 </body>
 <script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
+<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/pinch-zoom.js?v={{Msg "seo" "version"}}"></script>
 <!--<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/fastclick.min.js"></script>-->
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.js"></script>
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}"></script>

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

@@ -242,5 +242,9 @@
   },
   "newOrderTime": 1709827200,
   "signing_Subject":"北京剑鱼信息技术有限公司",
-  "orderTime":1704038400
+  "orderTime":1704038400,
+  "orderEmailReminder": {
+    "qmx": "duxin@topnet.net.cn",
+    "jianyu": "duxin@topnet.net.cn"
+  }
 }

+ 2 - 1
src/jfw/modules/subscribepay/src/config/config.go

@@ -162,7 +162,8 @@ type config struct {
 			Name       string `json:"name"`
 		} `json:"activity"`
 	} `json:"payRaffle"`
-	NewOrderTime int64 `json:"newOrderTime"`
+	NewOrderTime       int64             `json:"newOrderTime"`
+	OrderEmailReminder map[string]string `json:"orderEmailReminder"`
 }
 type mgoConf struct {
 	Address           string

+ 10 - 0
src/jfw/modules/subscribepay/src/entity/order.go

@@ -504,6 +504,16 @@ func DecodeEntId(encodeId string) int {
 
 // 超级订阅
 func vipOrder(m map[string]interface{}, userId string, session *httpsession.Session) (*OrderInfo, string) {
+	//校验是否有转账待审核订单
+	num := util.Mysql.Count("dataexport_order", map[string]interface{}{
+		"user_id":       userId,
+		"product_type":  "VIP订阅",
+		"order_status":  0,
+		"course_status": 2,
+	})
+	if num > 0 {
+		return nil, "公对公转账审核中,请勿重复提交"
+	}
 	types := qu.ObjToString(m["type"])
 	switch types {
 	case "firstBuy": //首次购买

+ 1 - 1
src/jfw/modules/subscribepay/src/go.mod

@@ -7,6 +7,7 @@ require (
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
 	app.yhyue.com/moapp/jypkg v1.21.11
 	bp.jydev.jianyu360.cn/BaseService/jyMicroservices v0.0.2
+	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20240805083653-598306c30969
 	bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20230911091604-2faa31032743
 	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.18
 	github.com/ClickHouse/clickhouse-go/v2 v2.2.0
@@ -26,7 +27,6 @@ require (
 	app.yhyue.com/moapp/jyPoints v1.1.2-0.20231020023521-1a4b1bbf9736 // indirect
 	app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161 // indirect
 	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20231226074509-942d80dc34eb // indirect
-	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20240607062231-ae1d02891843 // indirect
 	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.1.3 // indirect
 	filippo.io/edwards25519 v1.1.0 // indirect
 	github.com/BurntSushi/toml v1.2.0 // indirect

+ 2 - 2
src/jfw/modules/subscribepay/src/go.sum

@@ -31,8 +31,8 @@ bp.jydev.jianyu360.cn/BaseService/gateway v0.0.0-20220419090715-88ddb32961be/go.
 bp.jydev.jianyu360.cn/BaseService/gateway v1.3.4/go.mod h1:BMLd/5wb3BIEGhnEgF9y1sJN9P5/Dw9kYsoiE9V8I9g=
 bp.jydev.jianyu360.cn/BaseService/jyMicroservices v0.0.2 h1:Qi8C7gZeR7+kjOtSl9ilR5HwbjCe8GO1RuotFb4+kFA=
 bp.jydev.jianyu360.cn/BaseService/jyMicroservices v0.0.2/go.mod h1:v8y7FCbkKEIRP4Ie9ZM8NtoRP+Fk4O3C1hnexNusYIQ=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20240607062231-ae1d02891843 h1:u+8k/T0D6EUjj9BhI5RJdRa+8v4FZbyZhaNcm66L6Vs=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20240607062231-ae1d02891843/go.mod h1:rCCaOSWBYfQabf/yIvSVheSPtN2THnHeTl2J5/RrcuU=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20240805083653-598306c30969 h1:zVSExa0Po9lD8XLhCkeP8aQ5PFp9h2eCcTERIpOMd9Y=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20240805083653-598306c30969/go.mod h1:rCCaOSWBYfQabf/yIvSVheSPtN2THnHeTl2J5/RrcuU=
 bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20230911091604-2faa31032743 h1:7IaukyEAbMvgEv3/TiHlw7lzWPoksE4tVa1ap16RC9Q=
 bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20230911091604-2faa31032743/go.mod h1:1SQIPPL5Ya5BzQdByFKtTkXrXTWBv+PDqWIhNknLnZw=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220418005748-8ba5d936dd53/go.mod h1:E5lcDI3k4FESLxiAetCfWQTq8qfpy9cv0yN1oKoEO34=

+ 4 - 4
src/jfw/modules/subscribepay/src/rpcfollow/payCallBackRpc.go

@@ -11,7 +11,7 @@ import (
 	frpc "app.yhyue.com/moapp/jybase/rpc"
 )
 
-//对公转账审核完成
+// 对公转账审核完成
 func (this *JyPayRpc) JyTransferAccountsCallBack(param *frpc.TransferAccountsParam, ret *string) error {
 	defer func() {
 		log.Printf("线下支付结果 %s ,参数 %+v \v", *ret, param)
@@ -36,10 +36,10 @@ func (this *JyPayRpc) JyTransferAccountsCallBack(param *frpc.TransferAccountsPar
 		switch productType {
 		case "大会员":
 			successFlag = entity.MemberStruct.PayCallBack(calParam)
-			break
 		case "历史数据":
 			successFlag = entity.JyDataExportStruct.PayCallBack(calParam)
-			break
+		case "VIP订阅":
+			successFlag = entity.JyVipSubStruct.PayCallBack(calParam)
 		}
 		if !successFlag {
 			*ret = "order_errOperation"
@@ -63,7 +63,7 @@ func (this *JyPayRpc) JyTransferAccountsCallBack(param *frpc.TransferAccountsPar
 	return nil
 }
 
-//数据导出线下支付完成调用
+// 数据导出线下支付完成调用
 func (c *JyPayRpc) DateExportOrderFinishByOffline(param *frpc.DateExportData, ret *string) error {
 	qutil.Try(func() {
 		*ret = "1"

+ 9 - 7
src/jfw/modules/subscribepay/src/service/commonAction.go

@@ -1,6 +1,8 @@
 package service
 
 import (
+	. "app.yhyue.com/moapp/jybase/api"
+	. "app.yhyue.com/moapp/jybase/date"
 	"database/sql"
 	"encoding/base64"
 	"encoding/json"
@@ -17,9 +19,7 @@ import (
 	"strings"
 	"time"
 
-	. "app.yhyue.com/moapp/jybase/api"
 	qutil "app.yhyue.com/moapp/jybase/common"
-	. "app.yhyue.com/moapp/jybase/date"
 	"app.yhyue.com/moapp/jybase/encrypt"
 	elastic "app.yhyue.com/moapp/jybase/es"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
@@ -441,7 +441,7 @@ func (this *CommonAction) SaveTransferAccounts() {
 			return &entity.FuncResult{false, errors.New("上传图片异常"), nil}
 		}
 		query := map[string]interface{}{"order_code": orderCode, "user_id": userId}
-		rSearch := util.Mysql.FindOne("dataexport_order", query, "order_status,product_type,filter,course_status,out_trade_no,pay_way", "")
+		rSearch := util.Mysql.FindOne("dataexport_order", query, "order_channel,order_status,product_type,filter,course_status,out_trade_no,pay_way,create_time,order_code,user_phone", "")
 		if rSearch == nil || len(*rSearch) == 0 {
 			return &entity.FuncResult{false, errors.New("未查到订单数据"), nil}
 		}
@@ -449,7 +449,7 @@ func (this *CommonAction) SaveTransferAccounts() {
 			return &entity.FuncResult{false, errors.New("操作异常"), nil}
 		}
 		productType = qutil.ObjToString((*rSearch)["product_type"])
-		if !(productType == "招投标课程" || productType == "大会员") {
+		if !(productType == "招投标课程" || productType == "大会员" || productType == "VIP订阅") {
 			return &entity.FuncResult{false, errors.New("非法请求"), nil}
 		}
 		//保存更新filter
@@ -477,13 +477,17 @@ func (this *CommonAction) SaveTransferAccounts() {
 			return &entity.FuncResult{false, errors.New("保存失败"), nil}
 		}
 		go func() {
-			entity.SendMailToOperation(1, orderCode, productType, config.GmailAuth)
+			//entity.SendMailToOperation(1, orderCode, productType, config.GmailAuth)
 			//关闭之前支付串(防止重复支付)
 			if qutil.ObjToString((*rSearch)["pay_way"]) != "" {
 				if !pay.CloseOrder(qutil.ObjToString((*rSearch)["out_trade_no"]), qutil.ObjToString((*rSearch)["pay_way"])) {
 					log.Printf("SaveTransferAccounts 关闭订单%s出错\n", orderCode)
 				}
 			}
+			//发送对公转账审核提醒邮件
+			if err = util.OrderSendMail(*rSearch); err != nil {
+				log.Printf("对公转账邮件发送错误:order:%s,err:%v", orderCode, err.Error())
+			}
 		}()
 		return &entity.FuncResult{true, nil, nil}
 	}()
@@ -517,8 +521,6 @@ func (this *CommonAction) Createorder() {
 			return nil, fmt.Errorf("请求产品类型有误")
 		}
 		productId := strconv.Itoa(qutil.IntAll(infoMap["productId"]))
-
-		//
 		data, _ := infoMap["data"].(map[string]interface{})
 		if len(data) <= 0 {
 			return nil, fmt.Errorf("无效参数")

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

@@ -59,7 +59,7 @@ var (
 // 订单数据展示(订单详情页面)
 func (this *OrderListDetails) GetOrderPayAllMsg() {
 	userId := qutil.ObjToString(this.GetSession("userId"))
-	fields := "id,signing_subject,order_code,order_channel,prepay_time,del_status,create_time,pay_time,pay_way,original_price,order_money,pay_money,applybill_status,out_trade_no,filter,product_type,order_status,applybill_type,applybill_taxnum,applybill_company,vip_starttime,vip_endtime,vip_type,discount_price,d_relation_id,billingMode,return_status,is_backstage_order,vip_starttime,vip_endtime,expiration_time,buy_subject,buy_count"
+	fields := "id,signing_subject,order_code,order_channel,prepay_time,del_status,create_time,pay_time,pay_way,original_price,order_money,pay_money,applybill_status,out_trade_no,filter,product_type,order_status,applybill_type,applybill_taxnum,applybill_company,vip_starttime,vip_endtime,vip_type,discount_price,d_relation_id,billingMode,return_status,is_backstage_order,vip_starttime,vip_endtime,expiration_time,buy_subject,buy_count,course_status"
 	data, t, transaction_id := CommonDetail(4, fields, userId, this.GetString("orderCode"), this.Session())
 	r := &entity.FuncResult{true, nil, map[string]interface{}{
 		"order":          data,

+ 162 - 22
src/jfw/modules/subscribepay/src/service/userAccountInfo.go

@@ -2,15 +2,18 @@ package service
 
 import (
 	"bytes"
+	"context"
 	"database/sql"
 	"encoding/base64"
 	"fmt"
+	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/util/gconv"
 	"jy/src/jfw/modules/subscribepay/src/config"
 	"jy/src/jfw/modules/subscribepay/src/entity"
 	"jy/src/jfw/modules/subscribepay/src/util"
 	"log"
 	"regexp"
+	"sort"
 	"strings"
 	"time"
 
@@ -27,6 +30,7 @@ import (
 	"app.yhyue.com/moapp/jybase/usercenter"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/dataexport"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
+	pcc "bp.jydev.jianyu360.cn/BaseService/powerCheckCenter/rpc/pb"
 	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
 )
 
@@ -100,11 +104,11 @@ func (this *UserAccount) AccountShow() {
 		if userId == "" {
 			return nil, fmt.Errorf("未登录")
 		}
-		nickname, vipType := gconv.String(sessVal["userName"]), "注册用户"
-		var endTime int64
-		//来源于接口/user/getSimpleData
-		phone, _ := sessVal["phone"].(string)
-		nickname, _ = qutil.If(sessVal["s_nickname"] != nil, sessVal["s_nickname"], sessVal["app_name"]).(string)
+		var (
+			//来源于接口/user/getSimpleData
+			nickname, _ = qutil.If(sessVal["s_nickname"] != nil, sessVal["s_nickname"], sessVal["app_name"]).(string)
+			phone, _    = sessVal["phone"].(string)
+		)
 		if nickname == "" {
 			var PhoneReg = regexp.MustCompile(`^(100\d{8}|1[3-9]\d{9})$`)
 			if PhoneReg.MatchString(phone) {
@@ -112,31 +116,167 @@ func (this *UserAccount) AccountShow() {
 			}
 		}
 		powerRes := config.Middleground.PowerCheckCenter.Check("10000", gconv.String(sessVal["mgoUserId"]), gconv.Int64(sessVal["base_user_id"]), gconv.Int64(sessVal["accountId"]), gconv.Int64(sessVal["entId"]), gconv.Int64(sessVal["positionType"]), gconv.Int64(sessVal["positionId"]))
-		if powerRes.Vip.Status > 0 && powerRes.Vip.GetEndTime() > endTime {
-			vipType, endTime = "超级订阅", powerRes.Vip.GetEndTime()
-		}
-		if powerRes.Member.Status > 0 && powerRes.Member.GetEndTime() > endTime {
-			vipType, endTime = "大会员", powerRes.Member.GetEndTime()
-		}
-		if powerRes.Entniche.Status > 0 && powerRes.Entniche.GetEndTime() > endTime {
-			vipType, endTime = "商机管理", powerRes.Entniche.GetEndTime()
-		}
-		if powerRes.Free.PpStatus > 0 && powerRes.Free.PpEndTime > endTime {
-			vipType, endTime = "省份订阅包", powerRes.Free.GetPpEndTime()
-		}
 		rData := map[string]interface{}{
-			"vipType":  vipType,
 			"nickname": nickname,
-		}
-		if endTime > 0 {
-			rData["vipEntTime"] = time.Unix(endTime, 0).Format("2006-01-02")
+			"list":     getAccountVipAttr(this.Session(), powerRes),
 		}
 		return rData, nil
 	}()
-
 	this.ServeJson(NewResult(rData, errMsg))
 }
 
+type VipDetail struct {
+	Name    string                 `json:"name"`
+	EndTime int64                  `json:"endTime,omitempty"`
+	Attr    map[string]interface{} `json:"attr,omitempty"`
+}
+
+var memberCodeNameMapping = map[int64]string{
+	1: "专家版",
+	2: "智慧版",
+	3: "商机版",
+	4: "试用版",
+	5: "自定义",
+	6: "商机版2.0",
+	7: "专家版2.0",
+}
+
+func init() {
+	memberComboRes := util.Mysql.Find("bigmember_combo", nil, "id,s_name", "", -1, -1)
+	if memberComboRes != nil && len(*memberComboRes) > 0 {
+		for _, m := range *memberComboRes {
+			memberCodeNameMapping[gconv.Int64(m["id"])] = gconv.String(m["s_name"])
+		}
+	}
+}
+
+func getAccountVipAttr(session *httpsession.Session, powerRes *pcc.CheckResp) (rData []*VipDetail) {
+	var (
+		userid = qutil.ObjToString(session.Get("userId"))
+	)
+	if !(powerRes.Vip.Status > 0 || powerRes.Member.Status > 0 || powerRes.Entniche.Status > 0 || powerRes.Free.PpStatus > 0) {
+		//注册用户展示超级订阅最优活动展示
+		subVipActMsg := func() string {
+			productInfoList, msg := entity.JyCommodityStruct.Product(101, 1, userid, &g.Map{"orderType": 1, "areaCount": 1}, "VIP订阅", "", session)
+			if msg != "" || productInfoList == nil {
+				return ""
+			}
+			for _, info := range *productInfoList { //商品
+				for _, msg := range info.Sku { //规格
+					var (
+						activityId = msg.ActivityId
+						lotteryId  = msg.LotterId
+					)
+					for _, act := range msg.Activity { //活动
+						if act.Id != activityId {
+							continue
+						}
+						for _, dis := range act.Discount { //卡券
+							if dis.LotteryId != lotteryId {
+								continue
+							}
+							switch dis.Types { //0满减、1折扣券、2满赠、3促销、4限时折扣、5限时减免
+							case 0, 5, 3: //促销一口价/满减:限时立减**元
+								if dis.Types == 3 {
+									return fmt.Sprintf("限时立减%d元", gconv.Int((msg.OriginalPrice-dis.PromotionalPrice)/100))
+								} else {
+									return fmt.Sprintf("限时立减%d元", gconv.Int(dis.Reduce/100))
+								}
+							case 1, 4:
+								var final = dis.Discount * 10
+								if gconv.Float64(gconv.Int64(final)) == final {
+									return fmt.Sprintf("限时%d折", gconv.Int64(final))
+								} else {
+									return fmt.Sprintf("限时%.1f折", final)
+								}
+							case 2:
+								var t string
+								switch dis.TimeType {
+								case 1:
+									t = "天"
+								case 2:
+									t = "个月"
+								case 3:
+									t = "年"
+								case 8:
+									t = "季"
+								}
+								return fmt.Sprintf("限时赠送%d%s", dis.Time, t)
+							}
+						}
+					}
+				}
+			}
+			return ""
+		}()
+		return []*VipDetail{{Name: "注册用户", Attr: g.Map{"subVipActMsg": subVipActMsg}}}
+	}
+	//付费用户根据结束时间排序展示会员,省份订阅包和其他产品并存,省份订阅包不展
+	if powerRes.Member.Status > 0 { //大会员
+		rData = append(rData, &VipDetail{Name: fmt.Sprintf("大会员%s", memberCodeNameMapping[powerRes.Member.Status]), EndTime: powerRes.Member.GetEndTime(), Attr: g.Map{
+			"h5":  g.Cfg().MustGet(context.TODO(), "consultingVipMemberH5", "https://host.huiju.cool/p/18dea1").String(),
+			"app": g.Cfg().MustGet(context.TODO(), "consultingVipMemberApp", "https://host.huiju.cool/p/f01de").String(),
+			"pc":  g.Cfg().MustGet(context.TODO(), "consultingVipMemberPc", "https://www.jianyu360.cn/hjpc/dhyxfzxxshd").String(),
+		}})
+	}
+	if powerRes.Entniche.Status > 0 {
+		rData = append(rData, &VipDetail{Name: "商机管理", EndTime: powerRes.Entniche.GetEndTime()})
+	}
+	if powerRes.Vip.Status > 0 {
+		buyed := func() bool {
+			cacheKey := fmt.Sprintf("jypay_svip_buyed_%s", userid)
+			v := redis.GetInt("newother", cacheKey)
+			if v == 0 {
+				v = qutil.If(util.Mysql.Count("dataexport_order", map[string]interface{}{
+					"product_type": "VIP订阅",
+					"user_id":      userid,
+				}) == 0, -1, 1).(int)
+				redis.Put("newother", cacheKey, v, 60*5)
+			}
+			return v == 1
+		}()
+		var buyMsg string
+		if powerRes.Vip.Upgrade == 1 {
+			buyMsg = qutil.If(powerRes.Vip.Areacount == -1, "全国", fmt.Sprintf("%d个省", powerRes.Vip.Areacount)).(string)
+		} else {
+			if powerRes.Vip.Areacount == -1 {
+				buyMsg = "全国"
+			} else {
+				if powerRes.Vip.Areacount > 0 {
+					buyMsg += fmt.Sprintf("%d个省", powerRes.Vip.Areacount)
+				}
+				var cityTotal int64
+				for _, num := range powerRes.Vip.NewCitys {
+					cityTotal += num
+				}
+				if cityTotal > 0 {
+					buyMsg += fmt.Sprintf("%d个市", cityTotal)
+				}
+			}
+		}
+
+		rData = append(rData, &VipDetail{Name: "超级订阅", EndTime: powerRes.Vip.GetEndTime(), Attr: g.Map{
+			"renew":   powerRes.Vip.Upgrade == 1 && buyed, //是否有购买订单
+			"upgrade": (powerRes.Vip.Upgrade == 0 || powerRes.Vip.Areacount != -1) && buyed,
+			"buyMsg":  buyMsg,
+		}})
+	}
+	if powerRes.Free.PpStatus > 0 && len(rData) == 0 {
+		rData = append(rData, &VipDetail{Name: "省份订阅包", EndTime: powerRes.Free.GetPpEndTime(), Attr: g.Map{
+			"upgrade": powerRes.Free.PpAreaCount != -1,
+			"renew":   true,
+			"buyMsg":  qutil.If(powerRes.Free.PpAreaCount == -1, "全国", fmt.Sprintf("%d个省", powerRes.Free.PpAreaCount)),
+		}})
+	}
+	//根据结束时间排序
+	if len(rData) > 1 {
+		sort.Slice(rData, func(i, j int) bool {
+			return rData[i].EndTime > rData[j].EndTime
+		})
+	}
+	return rData
+}
+
 // 我的页面 获取基本信息
 // 手机号 邮箱 头像 昵称 超级订阅 大会员 用户加密id
 func (this *UserAccount) GetAccountInfo() {

+ 5 - 0
src/jfw/modules/subscribepay/src/timetask/timetask.go

@@ -3,6 +3,7 @@ package timetask
 import (
 	"encoding/hex"
 	"fmt"
+	"github.com/gogf/gf/v2/util/gconv"
 	"jy/src/jfw/modules/subscribepay/src/config"
 	. "jy/src/jfw/modules/subscribepay/src/config"
 	"jy/src/jfw/modules/subscribepay/src/pay"
@@ -1000,6 +1001,10 @@ func updateTimeLimitActitityOrderStatus() { //修改限时活动的订单状态
 		log.Println(fmt.Sprintf(`select * from dataexport_order where order_status =0 and  expiration_time<%s and expiration_time>=%s`, starttime, endtime))
 		if data != nil && len(*data) > 0 {
 			for _, v := range *data {
+				//对公转账审核中不取消卡券
+				if gconv.String(v["pay_way"]) == "transferAccounts" && gconv.Int64(v["course_status"]) == 2 {
+					continue
+				}
 				//订单编号
 				order_code, _ := v["order_code"].(string)
 				productType := 0 //取消卡券的时候 需要这个参数  商品类型0普通的1线上课程

+ 31 - 0
src/jfw/modules/subscribepay/src/util/sendMail.go

@@ -3,6 +3,7 @@ package util
 //发送邮件
 
 import (
+	"app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/mail"
 	"fmt"
 	"jy/src/jfw/modules/subscribepay/src/config"
@@ -95,3 +96,33 @@ func SendRetryMailMany(retry int, user_mail, subject, content, fname string, ren
 	}
 	return false
 }
+
+func OrderSendMail(order map[string]interface{}) error {
+	var productType string
+	switch order["product_type"] {
+	case "VIP订阅":
+		productType = "超级订阅"
+	case "大会员":
+		productType = "大会员"
+	case "招投标课程":
+		productType = "招投标课程"
+	default:
+		return fmt.Errorf("产品类型错误")
+	}
+	var keyStr string
+	switch common.InterfaceToStr(order["order_channel"]) {
+	case "xdqd04":
+		keyStr = "qmx"
+	default:
+		keyStr = "jianyu"
+	}
+	mailContent := fmt.Sprintf("用户%s于%s发起了1笔%s订单(订单编号: %s),支付方式为公对公转账,请及时前往【管理后台-全部订单-查看订单详情】进行审核。",
+		common.InterfaceToStr(order["user_phone"]), common.InterfaceToStr(order["create_time"]), productType,
+		common.InterfaceToStr(order["order_code"]))
+	if SendRetryMailMany(3, config.Config.OrderEmailReminder[keyStr], fmt.Sprintf("%s公对公转账审核提醒", productType), mailContent, "", "", config.GmailAuth) {
+		log.Printf("PdfSendEmail SendMailToPayUser %s 邮件%s发送成功!", productType, config.Config.OrderEmailReminder)
+	} else {
+		return fmt.Errorf("邮件发送失败")
+	}
+	return nil
+}

+ 38 - 0
src/web/staticres/big-member/js/utils.js

@@ -256,6 +256,44 @@ var utils = {
 
         return true;
     },
+    /**
+ * 应用场景:1.翻页后页面滚动到列表第一条的位置
+ * @param targetEvent 页面要滚动到的目标元素
+ */
+    scrollTargetView (targetEvent, custom) {
+      if (!targetEvent) return
+      let scrollWrapper
+      let targetTop
+      const inWorkSpace = location.href.indexOf('work-bench') > -1
+      if (inWorkSpace) {
+        // 工作桌面内(qiankun、iframe)
+        const offsetHeight = document.querySelector('.el-header')?.offsetHeight
+        const inApp = window.__POWERED_BY_QIANKUN__
+        if (inApp) {
+          // qiankun
+          const appNode = document.querySelector('#app-container > div').shadowRoot
+          targetTop = appNode?.querySelector(targetEvent)?.offsetTop
+          scrollWrapper = document.querySelector('.el-main')
+          scrollWrapper.scrollTop = targetTop - offsetHeight
+        } else {
+          // iframe
+          const iframeNode = document.querySelector('#work-bench-container iframe')?.contentDocument
+          targetTop = iframeNode.querySelector(targetEvent)?.offsetTop
+          scrollWrapper = iframeNode.body
+        }
+        // console.log(`工作桌面内${inApp ? 'qiankun' : 'iframe'}---滚动元素:${scrollWrapper.className}, 滚动距离:${targetTop}`)
+        scrollWrapper.scrollTop = targetTop - offsetHeight
+      } else {
+        // 非工作桌面
+        targetTop = document.querySelector(targetEvent)?.offsetTop
+        // 因浏览器及模式差异,页面滚动元素存在不同(标准模式:document.documentElement;兼容模式:body)
+        // scrollingElement可获取页面滚动元素
+        console.info(targetTop, 'targetTop');
+        scrollWrapper = document.scrollingElement
+        scrollWrapper.scrollTop = targetTop + custom
+        // console.log(`非工作桌面---滚动元素:${scrollWrapper.className ? scrollWrapper.className : scrollWrapper.tagName}, 滚动距离:${targetTop}`)
+      }
+    },
     // 判断变量是否是数组
     isArray: function (o){
         return Object.prototype.toString.call(o) == '[object Array]';

+ 84 - 0
src/web/staticres/common-module/appPay/css/popup.css

@@ -0,0 +1,84 @@
+.vip-back-tip-wrapper {
+  background-color: transparent;
+}
+.vip-back-tip-wrapper .popupBox {
+  width: 6.06rem;
+  background-image: url("../img/popup-bg.png");
+  background-size: contain;
+  background-repeat: no-repeat;
+  border-radius: 0.24rem;
+}
+.vip-back-tip-wrapper .popupBox .header {
+  height: 1.28rem;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: #9f6001;
+  font-size: 0.36rem;
+}
+.vip-back-tip-wrapper .popupBox .header .large {
+  font-size: 0.44rem;
+}
+.vip-back-tip-wrapper .popupBox .content {
+  padding: 0.48rem 0.38rem 0.32rem 0.38rem;
+  background-color: #fff;
+  border-radius: 0.24rem 0.24rem 0 0;
+}
+.vip-back-tip-wrapper .popupBox .content .text-item {
+  display: flex;
+  align-items: center;
+  margin-bottom: 0.32rem;
+}
+.vip-back-tip-wrapper .popupBox .content .text-item .text-ic {
+  width: 0.32rem;
+  height: 0.36rem;
+  background-image: url("../img/box-yellow.png");
+  background-size: 100% 100%;
+  margin-right: 0.32rem;
+}
+.vip-back-tip-wrapper .popupBox .content .text-item .text-desc {
+  font-size: 0.3rem;
+  line-height: 0.44rem;
+  color: #171826;
+}
+.vip-back-tip-wrapper .popupBox .content .text-item .cr-yellow {
+  color: #b1700e;
+}
+.vip-back-tip-wrapper .popupBox .content .desc-pack {
+  font-size: 0.26rem;
+  line-height: 0.44rem;
+  color: #9b9ca3;
+  text-align: center;
+}
+.vip-back-tip-wrapper .popupBox .footer {
+  display: flex;
+  background-color: #fff;
+  border-radius: 0 0 0.24rem 0.24rem;
+  box-sizing: border-box;
+}
+.vip-back-tip-wrapper .popupBox .footer .left-btn {
+  justify-content: center;
+  align-items: center;
+  padding: 0.2rem 0.28rem;
+  display: flex;
+  flex: 1;
+  border-right: 0.01rem solid #0000001a;
+  border-top: 0.01rem solid #0000001a;
+  font-size: 0.36rem;
+  line-height: 0.52rem;
+  color: #171826;
+}
+.vip-back-tip-wrapper .popupBox .footer .right-btn {
+  justify-content: center;
+  align-items: center;
+  border-top: 0.01rem solid #0000001a;
+  padding: 0.2rem 0.38rem;
+  display: flex;
+  font-size: 0.36rem;
+  flex: 1;
+  line-height: 0.52rem;
+  color: #b1700e;
+}
+.vip-back-tip-wrapper .heightlight {
+  color: #2abed1;
+}

BIN
src/web/staticres/common-module/appPay/img/box-yellow.png


BIN
src/web/staticres/common-module/appPay/img/popup-bg.png


+ 58 - 0
src/web/staticres/common-module/appPay/js/appPay.js

@@ -0,0 +1,58 @@
+
+var vNode = {
+  delimiters: ['${', '}'],
+  el: '#vuePay',
+  components: {
+    vippopup: vippopup,
+
+  },
+  data: {
+    doType: '',
+    popup: {
+      tip: false,
+
+    }
+
+  },
+  computed: {
+
+  },
+  watch: {
+    doType(val) {
+      console.log(val)
+    }
+
+  },
+  created() {
+
+  },
+  mounted() {
+    window.history.pushState({ ...history.state }, '', window.location.href)
+    setTimeout( () => {
+      window.addEventListener('popstate', this.onPopstateHandler)
+    }, 300)
+  },
+  beforeDestroy(){
+    window.removeEventListener('popstate', this.onPopstateHandler)
+
+  },
+  methods: {
+    onPopstateHandler() {
+      //写拦截之后要做的事,例如弹窗再次确认关闭
+      this.popupTipShow(true)
+      window.removeEventListener('popstate', this.onPopstateHandler)
+    },
+    popupTipShow(f) {
+      this.popup.tip = f
+    },
+    ontipconfirm() {
+      this.popupTipShow(false)
+    },
+    ontipcancel() {
+      this.popupTipShow(false)
+      window.history.back()
+    },
+
+  }
+}
+var vuePay = new Vue(vNode)

+ 66 - 0
src/web/staticres/common-module/appPay/js/popup.js

@@ -0,0 +1,66 @@
+var vipPopup = `
+<div class="vip_popup">
+   <van-popup
+    :value="value"
+    class="vip-back-tip-wrapper"
+    get-container="body"
+    position="center"
+    @click-overlay="onClose"
+    @closeable="onClose"
+  >
+    <div class="popupBox">
+      <div class="header">
+        真的要放弃<span class="large">27</span>项超值权益了吗?
+      </div>
+      <div class="content">
+        <div class="text-item" v-for="item in textlist" :key="item">
+          <div class="text-ic"></div>
+          <div class="text-desc" v-html="item"></div>
+        </div>
+      </div>
+      <div class="footer">
+        <div class="left-btn" @click="onCancel">暂时离开</div>
+        <div class="right-btn" @click="onConfirm">继续支付</div>
+      </div>
+    </div>
+  </van-popup>
+</div>
+`
+var vippopup = {
+  name: '',
+  template: vipPopup,
+  model: {
+    prop: 'value',
+    event: 'close'
+  },
+  props: {
+    value: Boolean,
+  },
+  data: function() {
+    return {
+      textlist: [
+        '全国商机<span style="color:#B1700E">实时推送</span>',
+        '获取采购单位<span style="color:#B1700E">联系人</span>电话',
+        '实时监控所有<span style="color:#B1700E">潜在商机</span>',
+        '帮你提升<span style="color:#B1700E">中标率</span>'
+      ]
+ 
+    }
+  },
+  mounted() {
+    
+  },
+  methods: {
+    onCancel() {
+      this.onClose()
+      this.$emit('oncancel')
+    },
+    onConfirm() {
+      this.$emit('onconfirm')
+    },
+    onClose() {
+      this.$emit('close', false)
+    }
+
+  }
+}

+ 5 - 2
src/web/staticres/common-module/order-list/js/order-list.js

@@ -527,7 +527,7 @@ var vm = new Vue({
           className = 'refund'
           if (order.course_status === 2) {
             stateText = '转账审核中'
-          } else if (order.course_status === 3) {
+          } else if (order.course_status === 3) { // 审核未通过
             stateText = '未收到转账'
           }
         }
@@ -914,9 +914,12 @@ var vm = new Vue({
       } else if (orderStatus === -2 || orderStatus === -3) {
         // 已取消或者已删除订单
         // 再次购买判断
-        if (canBuyAgain.indexOf(productType) !== -1 && order.pay_money > 0) {
+        if (canBuyAgain.indexOf(productType) !== -1 && order.pay_money > 0 ) { 
           state.bugAgainShow = true
         }
+        if(order.pay_way === 'transferAccounts' && order.course_status === 3){ //取消订单 对公转账且审核不通过不展示再次支付按钮
+          state.payConfirmShow = false
+        }
       }
 
       // 不同产品的定制

+ 26 - 5
src/web/staticres/common-module/perfect-info/js/perfect-info.js

@@ -174,7 +174,11 @@ var titleMap = {
   // 报告下载下单页引流留资
   app_dzbgxzb_customizedquantity:'市场分析定制报告下载',
   h5_dzbgxzb_customizedquantity:'市场分析定制报告下载',
-  wx_dzbgxzb_customizedquantity:'市场分析定制报告下载'
+  wx_dzbgxzb_customizedquantity:'市场分析定制报告下载',
+  // 会员服务列表
+  wx_ServiceList_experience:'申请免费体验剑鱼产品',
+  app_ServiceList_experience:'申请免费体验剑鱼产品',
+  h5_ServiceList_experience:'申请免费体验剑鱼产品'
   
 }
 
@@ -392,7 +396,11 @@ var tipMap = {
     // 报告下载下单页引流留资
   app_dzbgxzb_customizedquantity:'请留下联系方式,我们会安排客户经理与您对接,下载更多市场分析定制报告!',
   h5_dzbgxzb_customizedquantity:'请留下联系方式,我们会安排客户经理与您对接,下载更多市场分析定制报告!',
-  wx_dzbgxzb_customizedquantity:'请留下联系方式,我们会安排客户经理与您对接,下载更多市场分析定制报告!'
+  wx_dzbgxzb_customizedquantity:'请留下联系方式,我们会安排客户经理与您对接,下载更多市场分析定制报告!',
+      // 会员服务列表
+  wx_ServiceList_experience:'请留下您的信息,我们将为您推荐最符合您业务需求的产品和服务!',
+  app_ServiceList_experience:'请留下您的信息,我们将为您推荐最符合您业务需求的产品和服务!',
+  h5_ServiceList_experience:'请留下您的信息,我们将为您推荐最符合您业务需求的产品和服务!'
 }
 
 // 留资来源(数据库新增字段,记录留资对应的来源,之前未记录的不考虑,新增的source要记录)
@@ -512,9 +520,13 @@ var sourceDescMap = {
   h5_dzbg_fullreport:'申请免费体验-完整查看市场分析定制报告',
   wx_dzbg_fullreport:'申请免费体验-完整查看市场分析定制报告',
     // 报告下载下单页引流留资
-    app_dzbgxzb_customizedquantity:'市场分析定制报告下载包-定制报告份数',
-    h5_dzbgxzb_customizedquantity:'市场分析定制报告下载包-定制报告份数',
-    wx_dzbgxzb_customizedquantity:'市场分析定制报告下载包-定制报告份数'
+  app_dzbgxzb_customizedquantity:'市场分析定制报告下载包-定制报告份数',
+  h5_dzbgxzb_customizedquantity:'市场分析定制报告下载包-定制报告份数',
+  wx_dzbgxzb_customizedquantity:'市场分析定制报告下载包-定制报告份数',
+    // 会员服务列表
+  wx_ServiceList_experience:'服务列表-申请免费体验',
+  app_ServiceList_experience:'服务列表-申请免费体验',
+  h5_ServiceList_experience:'服务列表-申请免费体验'
 }
 
 var vNode = {
@@ -1724,6 +1736,15 @@ var vNode = {
                 },'提交成功')
                 break
               }
+              // 会员服务列表
+              case 'wx_ServiceList_experience':
+              case 'app_ServiceList_experience':
+              case 'h5_ServiceList_experience':{
+                  _this.showMessage('已收到您提交的剑鱼产品免费体验申请,我们会尽快联系您并预约演示时间。', '我知道了', function () {
+                    history.back()
+                  },'提交成功')
+                  break
+              }
               default: {
                 var biaoshu = source === 'bid_document_Introduction_page' || source.indexOf('article_BidPreparation') > -1
                 // 标书制作或者三方认证(case语句满足不了条件,放default中做更多判断)

+ 14 - 3
src/web/staticres/common-module/vipsubscribe/js/vip-subscribe-set-template.js

@@ -1404,9 +1404,20 @@ var subComponent = {
         jumpLink = '/jyapp/free/customer'
       } else if(this.vSwitch === 'v') {
         // 超级订阅升级
-        content = `<div>可选:<span class="highlight">${this.areaInfo.buyAreaCount}个省</span>,如需增加省份数量,您可前往升级超级订阅。</div>`
-        confirmBtnLabel = '去升级'
-        jumpLink = '/jy_mobile/common/order/create/svip?type=upgrade'
+        if(window.$infoRoot_add.vipPowerType == 2){ // 企业分配不可直接自己升级
+          content = `<div>可选:<span class="highlight">${this.areaInfo.buyAreaCount}个省</span>,如需增加省份数量,您可联系客服升级产品套餐。</div>`
+          confirmBtnLabel = '联系客服'
+          if (location.href.indexOf('front') !== -1) { // 微信
+            jumpLink = '/big/wx/page/customer'
+          }else{
+            jumpLink = '/jyapp/free/customer'
+          }
+        }else{
+          content = `<div>可选:<span class="highlight">${this.areaInfo.buyAreaCount}个省</span>,如需增加省份数量,您可前往升级超级订阅。</div>`
+          confirmBtnLabel = '去升级'
+          jumpLink = '/jy_mobile/common/order/create/svip?type=upgrade'
+
+        }
       } else {
         return
       }

+ 1 - 1
src/web/staticres/css/ele-reset.css

@@ -67,7 +67,7 @@
     position: absolute;
     right: 16px;
 }
-.el-pagination-container .el-pagination .el-input__suffix {
+.el-pagination .el-input__suffix {
   display: unset!important;
 }
 .el-pagination.is-background .el-pager li {

+ 6 - 0
src/web/staticres/frontRouter/pc/my_data_packet/js/index-pc.js

@@ -147,11 +147,17 @@ var vm = new Vue({
         this.chargeList.pageNum = page
         this.chargeList.list = []
         this.chargeDetail()
+        this.$nextTick(() => {
+          utils.scrollTargetView('.online-recharge', 120)
+        })
       },
       getPageData2(page) {
         this.exportList.pageNum = page
         this.exportList.list = []
         this.exported()
+        this.$nextTick(() => {
+          utils.scrollTargetView('.data-export-record', 120)
+        })
       },
       onSizeChange1: function (val) {
         this.chargeList.list = []

BIN
src/web/staticres/images/index/limit-time-icon.png


BIN
src/web/staticres/images/index/more_icon_gold.png


BIN
src/web/staticres/images/index/more_icon_gold2.png


BIN
src/web/staticres/images/index/more_icon_gray.png


BIN
src/web/staticres/images/userTypeIcon/bigmember.png


BIN
src/web/staticres/images/userTypeIcon/vip.png


+ 2 - 14
src/web/staticres/js/index/index_2023.12.js

@@ -390,7 +390,6 @@ var _page = {
     }
   },
   init: function () {
-    this.initUserInfoCard()
     // seo要求:页面展示和代码展示数量必须一致,不能用display:none隐藏 由后端控制最大展示个数 前端全部展示
     // this.initHotSearchKeysCount()
     this.initEvents()
@@ -406,17 +405,6 @@ var _page = {
     this.initDocsDescTab()
     this.docImgClick()
   },
-  // 计算九宫格高度
-  initUserInfoCard: function () {
-    var container = $('.user-info-card.login-card')
-    var header = container.find('.user-info-header')
-    var item = container.find('.user-power-item')
-    var containerHeight = container.height()
-    var headerHeight = header.height()
-    var last = containerHeight - 12 - headerHeight
-    var calcItemHeight = last / 3
-    item.css({ height: calcItemHeight })
-  },
   initHotSearchKeysCount: function () {
     // 超出盒子的元素隐藏
     var container = $('.hot-key-list');
@@ -490,7 +478,7 @@ var _page = {
         }
         if (targetUrl) {
           location.href = targetUrl
-          // window.open(targetUrl)        
+          // window.open(targetUrl)
         }
       }
     })
@@ -682,7 +670,7 @@ $(function () {
     } else {
       var top1 = 0;
       var top2 = 0;
-      var timer = null; 
+      var timer = null;
       $('.pc-index-bottom').fadeIn()
       $(document).scroll(function(){
         clearTimeout(timer)

+ 121 - 10
src/web/staticres/pccss/index_pc.css

@@ -383,26 +383,138 @@
 .user-info-card .user-info-title {
     display: flex;
     align-items: center;
+    justify-content: space-between;
+}
+.user-info-card .user-info-title .user-type-icon{
+    /*float: right;*/
 }
 .user-info-card .icon-img-sahua {
     display: inline-block;
     width: 24px;
     height: 24px;
+    vertical-align: text-bottom;
 }
 .user-info-card .user-info-title-text {
     margin-left: 6px;
     font-size: 18px;
     line-height: 28px;
+    background: linear-gradient(90deg, #2ABED1 0%, #1B8FFA 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    text-fill-color: transparent;
+
 }
 .user-info-card .user-info-header-line {
     margin-top: 10px;
     color: #1d1d1d;
     font-size: 14px;
     line-height: 22px;
+    display: flex;
+    align-items: center;
 }
-.user-info-card .user-info-header-line .u-i-h-line-label {
+.user-info-card .user-info-header-line .u-i-h-line-label{
     color: #999;
 }
+.user-info-card .user-info-header-line .u-i-h-line-tip {
+    font-size: 12px;
+    line-height: 18px;
+    color: #fb483d;
+    padding:3px 8px;
+    background: #FEE9E8;
+    border-radius: 16px;
+    margin-left:8px;
+}
+/***注册用户***/
+.user-info-card .u-i-h-box-free {
+    display: flex;
+    align-items: center;
+    font-size:14px;
+    line-height: 22px;
+    color: #1d1d1d;
+    margin-top:8px;
+}
+.user-info-card .u-i-h-box-free .activity-tip {
+    font-size:12px;
+    line-height: 18px;
+    padding: 2px 5px 2px 5px;
+    border-radius: 9px 0 9px 0;
+    color: #fff;
+    background: linear-gradient(90deg, #FF7C32 0%, #F33838 100%);
+    margin-right: 4px;
+}
+.user-info-card .u-i-h-box-free .buy-vip{
+   cursor: pointer;
+}
+.user-info-card .u-i-h-box-vip-bigmember .handle-btn{
+    font-size:12px;
+    line-height: 18px;
+    padding: 3px 8px 3px 8px;
+    border-radius: 16px;
+    border-width: 1px;
+    border-style: solid;
+    margin-left: 8px;
+    display: none;
+    cursor: pointer;
+}
+.user-info-card .u-i-h-box-vip-bigmember .handle-btn.blue {
+    background: #EAF8FA;
+    border-color: #2ABED1;
+    color: #2ABED1;
+}
+.user-info-card .u-i-h-box-vip-bigmember .handle-btn.gold {
+    background: #FAE7CA;
+    color: #B1700E;
+    border-color: #B1700E;
+}
+.user-info-card .u-i-h-box-vip-bigmember .handle-btn.black{
+    background: linear-gradient(90deg, #171826 0%, #444444 100%);
+    color: #FAE7CA;
+}
+
+    /**** icon ****/
+.user-info-card .user-vip-icon, .user-info-card .user-bigmember-icon{
+    display: inline-block;
+    width: 20px;
+    height: 20px;
+    background: url('/images/userTypeIcon/vip.png') no-repeat center;
+    background-size: contain;
+    vertical-align: text-bottom;
+}
+.user-info-card .user-bigmember-icon {
+    background: url('/images/userTypeIcon/bigmember.png') no-repeat center;
+    background-size: contain;
+}
+.user-info-card .limit-time-icon {
+    background: url('/images/index/limit-time-icon.png') no-repeat center;
+    background-size: contain;
+    width: 16px;
+    height: 16px;
+    vertical-align: text-bottom;
+}
+.user-info-card  .more_icon{
+    display: inline-block;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+    width: 16px;
+    height: 16px;
+    vertical-align: text-bottom;
+}
+.user-info-card .more_icon_gray{
+    background-image: url('/images/index/more_icon_gray.png');
+}
+.user-info-card .more_icon_blue{
+    background-image: url('/images/index/more_icon_right.png');
+}
+.user-info-card .more_icon_gold{
+    background-image: url('/images/index/more_icon_gold.png');
+}
+.user-info-card .more_icon_gold2{
+    background: url('/images/index/more_icon_gold2.png') no-repeat center;
+    background-size: contain;
+}
+
 .user-info-card .user-power-list {
     display: flex;
     flex-wrap: wrap;
@@ -411,9 +523,8 @@
 }
 .user-info-card .user-power-item {
     position: relative;
-    width: 96px;
     width: 33.32%;
-    height: 75px;
+    height: 74px;
     transition: height 0.3s ease;
 }
 .user-info-card .user-power-item-link {
@@ -432,12 +543,12 @@
     text-decoration: none;
 }
 /* 除了最后3个之外,其他的 */
-.user-info-card .user-power-item:not(:nth-last-of-type(-n+3)) {
-    border-bottom: 1px solid #ECECEC;
-}
-.user-info-card .user-power-item:not(:nth-of-type(3n)) {
-    border-right: 1px solid #ECECEC;
-}
+/*.user-info-card .user-power-item:not(:nth-last-of-type(-n+3)) {*/
+/*    border-bottom: 1px solid #ECECEC;*/
+/*}*/
+/*.user-info-card .user-power-item:not(:nth-of-type(3n)) {*/
+/*    border-right: 1px solid #ECECEC;*/
+/*}*/
 .user-info-card .user-power-item-icon {
     display: block;
     width: 32px;
@@ -1701,4 +1812,4 @@
 .browse-history-card .browse-list-container .browse-history-item:hover{
   background: #EAF8FA;
   color: #2ABED1;
-}
+}

+ 47 - 2
src/web/staticres/serviceSystem/js/serviceSystem.js

@@ -22,7 +22,23 @@ var vNode = new Vue({
             toastText: '您已开通大会员',
             urlParams: '',  // tjxm 推荐项目, spxm: 审批项目
             vipRenewActivityPage: '',
-            bigRenewActivityPage: ''
+            bigRenewActivityPage: '',
+            // P554需求超级订阅,是否展示续费按钮,自己购买返回true则展示【立即续费】,企业分配的返回的false,但展示为【续费咨询】
+            showVipRenew: false
+        }
+    },
+    computed: {
+        vipRenewText() {
+          var text = '立即开通'
+          // 是超级订阅用户
+          if(this.isbuy_vip) {
+            if(this.showVipRenew) {
+              text = '立即续费'
+            } else {
+              text = '续费咨询'
+            }
+          }
+          return text
         }
     },
     created: function() {
@@ -31,6 +47,7 @@ var vNode = new Vue({
         }
         this.getcode()
         this.getKefuInfo()
+        this.getUserAccountShow()
     },
     mounted: function () {
         this.calcFixedTop()
@@ -92,6 +109,27 @@ var vNode = new Vue({
             }
           })
         },
+      // 获取账号权益信息
+        getUserAccountShow() {
+          var _this = this
+          _this.showVipRenew = false
+          $.ajax({
+            type:'POST',
+            url:'/jypay/user/account/show',
+            contentType: 'application/json;charset=utf-8' ,
+            success:function(res) {
+              if(res.error_code === 0 && res.data) {
+                var list = res.data && res.data.list ? res.data.list : []
+                for(var item of list) {
+                  if(item.name === '超级订阅') {
+                    _this.showVipRenew = item.attr ? item.attr.renew : false
+                  }
+                }
+              }
+            },
+            error:function(err) {}
+          })
+        },
         close: function(val) {
             this[val] = false
         },
@@ -131,7 +169,14 @@ var vNode = new Vue({
             } else {
                 // 进入续费活动页
                 // window.location.href="/swordfish/page_big_pc/free/svip/buy?type=renew"
-                window.location.href = this.vipRenewActivityPage
+                // 个人购买或者后台下单的超级订阅进入续费页
+                if(this.showVipRenew) {
+                  window.location.href = this.vipRenewActivityPage
+                } else {
+                  // 企业分配的联系客服
+                  this.consultation('0')
+                }
+
               }
           } else {//大会员
             if (!this.isbuy_big) {//不是大会员

+ 1 - 0
src/web/staticres/vipsubscribe/js/vip_index_new.js

@@ -51,6 +51,7 @@ var subNode = new Vue({
             success: function (res) {
               if (res) {
                 _this.infoRoot = res.data
+                window.$infoRoot_add = _this.infoRoot || {}
                 // 多个身份才显示切换按钮
                 if(res.data.memberStatus > 0 && res.data.vipStatus > 0) {
                   $('.switchicon').show()

+ 3 - 3
src/web/templates/frontRouter/pc/serviceSystem/free/index.html

@@ -50,7 +50,7 @@
                                  </div>
                              </div>
                             <div class="btn-row clearfix">
-                                <div class="btn-item btn-blue-solid mr-20" @click="goOpen('vip')">{ isbuy_vip ? '点击续费' : '立即开通' }</div>
+                                <div class="btn-item btn-blue-solid mr-20" @click="goOpen('vip')">{ vipRenewText }</div>
                                 <div class="btn-item btn-blue-line" @click="consultation('0')">立即咨询</div>
                             </div>
                             <p class="tip">支付后可开发票</p>
@@ -103,7 +103,7 @@
                             </div>
                             <div class="sort_cell_block serve_bg_blue he-118">
                                 <span class="table_serve_head_text">超级订阅</span>
-                                <div class="cell_blue_btn" @click="goOpen('vip')">{ isbuy_vip ? '点击续费' : '立即开通' }</div>
+                                <div class="cell_blue_btn" @click="goOpen('vip')">{ vipRenewText }</div>
                             </div>
                             <div class="sort_cell_block_nob  serve_bg_yellow he-118">
                                 <span class="table_serve_head_text2">大会员</span>
@@ -131,7 +131,7 @@
                             </div>
                             <div class="sort_cell_block serve_bg_blue he-118">
                                 <span class="table_serve_head_text">超级订阅</span>
-                                <div class="cell_blue_btn" @click="goOpen('vip')">{ isbuy_vip ? '点击续费' : '立即开通' }</div>
+                                <div class="cell_blue_btn" @click="goOpen('vip')">{ vipRenewText }</div>
                             </div>
                             <div class="sort_cell_block_nob  serve_bg_yellow he-118">
                                 <span class="table_serve_head_text2">大会员</span>

+ 6 - 1
src/web/templates/order/pc/orderPay.html

@@ -57,7 +57,7 @@
                     <div class="fl pay_tab">
                         <div class="tab_item wx"><img src="/order/image/wxpay.png" alt=""> 微信支付</div>
                         <div class="tab_item zfb"><img src="/order/image/alipay.png" alt=""> 支付宝</div>
-                        {{if eq .T.orderType "member"}}
+                        {{if or (eq .T.orderType "member") (eq .T.orderType "subvip")}}
                             <div class="tab_item gdg" style="">公对公转账</div>
                         {{end}}
                     </div>
@@ -370,8 +370,13 @@
                 success: function (r) {
                     if (r.success) {
                         $('.toast').show("linear");
+                        var orderType  = {{.T.orderType}}
                         setTimeout(function () {
+                          if(orderType === 'member') {
                             window.location.replace("/front/{{.T.orderType}}/memberDetail?order_code=" + orderCode)
+                          } else {
+                            window.location.replace("/front/vipOrder/vipOrderDetail?order_code=" + orderCode)
+                          }
                             submiting = false
                             $('.toast').hide();
                         }, 2000)

+ 4 - 1
src/web/templates/pc/dataPack/index.html

@@ -81,10 +81,11 @@
                                 </div>
                             </div>
                         </div>
-                        <div class="up-line up-biao">
+                        <div class="up-line up-biao online-recharge">
                             <h3>线上自助充值明细</h3>
                             <div class="biao-ge" v-if="chargeList.list">
                                 <el-table
+                                    class="online-recharge"
                                     v-loading="dLoading"
                                     :data="chargeList.list"
                                     style="width: 100%;color:#1d1d1d"
@@ -138,6 +139,7 @@
                         <div class="up-biao">
                             <div class="biao-ge">
                                 <el-table
+                                    class="data-export-record"
                                     v-loading="isLoading"
                                     :data="exportList.list"
                                     style="width: 100%;color:#1d1d1d;cursor: pointer;"
@@ -226,6 +228,7 @@
     </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/element-ui/2.15.13-rc/lib/index.js></script>
+    <script src="{{Msg "seo" "cdn"}}/big-member/js/utils.js"></script>
     <script src='{{Msg "seo" "cdn"}}/frontRouter/pc/my_data_packet/js/index-pc.js?v={{Msg "seo" "version"}}'></script>
 </body>
 

+ 9 - 3
src/web/templates/pc/member_orderDetail.html

@@ -426,8 +426,14 @@
                         }
                     }
                     if (r.data.order_status === -2) {
-                        $("#status_cancelled").removeClass("hide");
-                        $("#bg").addClass("qxBg").removeClass("greenBg");
+                      $("#bg").addClass("qxBg").removeClass("greenBg");
+                      if(r.data.pay_way === "transferAccounts" && r.data.course_status === 3) {
+                        $("#status_cancelled").removeClass("hide").text("未收到转账!");
+                        $(".customerTel").removeClass("hide");
+                        $(".payOrder").hide();
+                      } else {
+                        $("#status_cancelled").removeClass("hide").text("已取消");
+                      }
                     }
                     if (r.data.order_status === 0) {
                         $("#bg").addClass("redBg").removeClass("greenBg");
@@ -465,7 +471,7 @@
 
         function showImg(imgSrc) {
             if (!imgSrc) {
-                retunn
+              return
             }
             $("body").append('<div id="showImgDiv" onclick="$(this).remove()" style="overflow-y:scroll;display: flex;background: #00000070;height: 100%;width: 100%;position: fixed;z-index: 9999;padding: 20px;top: 0px;box-sizing: border-box;align-items: center;justify-content: center;"><img src="' + imgSrc + '"></div>')
         }

+ 14 - 5
src/web/templates/pc/myOrder.html

@@ -516,11 +516,10 @@
 
                 </div>
                 <!-- 订单状态 -->
-
                 <div class="fl m_status"
                   :class="{'blueColor': item.order_status === 0, 'grayColor': item.order_status !== 0}">
                   <!--大会员-->
-                  <div class="stateBox" v-if="item.product_type === '大会员'">
+                  <div class="stateBox" v-if="item.product_type === '大会员' || item.product_type === 'VIP订阅'">
                     <div v-if="item.order_status === 0 && item.pay_way === 'transferAccounts'">
                       <span v-if="item.course_status === 2" style='color: #FE737A'>转账审核中</span>
                       <span v-else-if="item.course_status === 3" style='color: #FE737A'>未收到转账</span>
@@ -557,17 +556,23 @@
                     <!--已完成-->
                     <p class="finish_status" v-else-if="item.order_status === 1">已完成</p>
                     <!--已取消-->
-                    <p class="finish_status" v-else>已取消</p>
+                    <p class="finish_status" v-else>
+                      <!--超级订阅公对公转账审核不通过”则按照此规则取消订单,订单状态虽为已取消但订单详情页按照“未收到转账”进行展示,此时“再次支付”按钮订单详情页及订单列表都不再展示。-->
+                      <span v-if="item.pay_way === 'transferAccounts' && item.course_status === 3">
+                         <span style='color: #FE737A'>未收到转账</span>
+                      </span>
+                      <span v-else>已取消</span>
+                    </p>
                     <p><a data-jy-track="click-hover" @click="goDetail(item)">查看详情</a></p>
                   </div>
                 </div>
                 <!-- 操作 -->
                 <div class="fl m_handle">
-                  <div class="handleBox" v-if="item.product_type === '大会员'">
+                  <div class="handleBox" v-if="item.product_type === '大会员' || item.product_type === 'VIP订阅'">
                     <div
                       v-if="item.order_status === 0
                                     && !(item.pay_way === 'transferAccounts' && (item.course_status === 2 || item.course_status === 4))">
-                      <p><a class="go_pay" data-jy-track="click-hover" @click="goPay(item)">@#item.course_status === 3 ?
+                      <p><a class="go_pay" data-jy-track="click-hover" @click="goPay(item)">@#item.pay_way === 'transferAccounts' && item.course_status === 3 ?
                           '再次' : '去'#@支付</a></p>
                       <p><a data-jy-track="click-hover" @click="goCancel(item)">取消订单</a></p>
                     </div>
@@ -663,6 +668,7 @@
 {{include "/common/pcbottom.html"}}
 {{include "/common/baiducc.html"}}
 <script src="https://cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js"></script>
+<script src="{{Msg "seo" "cdn"}}/big-member/js/utils.js"></script>
 <script src="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.13-rc/lib/index.js"></script>
 <script>
   var myPageNavIsNormal = true
@@ -1793,6 +1799,9 @@
             tabIndex: $Index,
             pageNum: this.pageNum,
           })
+          this.$nextTick(() => {
+            utils.scrollTargetView('.order_content')
+          })
         },
         onSizeChange: function(size) {
           this.pageNum = 1

+ 153 - 10
src/web/templates/pc/template/index/user-info-card.html

@@ -20,22 +20,56 @@
 </section>
 {{else}}
 <!-- 用户信息卡片-已登录 -->
-<section class="user-info-card login-card">
+<section class="user-info-card login-card login-user-info-card" >
   <header class="user-info-header">
     <h4 class="user-info-title">
-      <span class="j-icon base-icon icon-img-sahua"></span>
-      <span class="user-info-title-text highlight-text">欢迎您!<i class="user-nickname">{{.T.nickname}}</i></span>
+        <span>
+            <span class="j-icon base-icon icon-img-sahua"></span>
+            <span class="user-info-title-text highlight-text">欢迎您!<i class="user-nickname"></i></span>
+        </span>
+        <span class="user-type-icon">
+             <i class="user-vip-icon" style="display: none;"></i>
+             <i class="user-bigmember-icon" style="display: none;"></i>
+        </span>
     </h4>
     <p class="user-info-header-line">
-      <span class="u-i-h-line-label">账号类型:</span>
-      <span class="u-i-h-line-value">{{.T.vipType}}</span>
+        <span class="u-i-h-line-label">账号类型:</span>
+        <span class="u-i-h-line-value user-vip-type"></span>
+        <span class="u-i-h-line-tip" style="display: none;">您尚未开通会员</span>
+        <span class="iconfont icon-more" ></span>
     </p>
-    {{if and ( ne .T.vipType "注册用户") .T.vipEntTime}}
-    <p class="user-info-header-line">
-      <span class="u-i-h-line-label">会员服务到期时间:</span>
-      <span class="u-i-h-line-value">{{.T.vipEntTime}}</span>
+    <p class="user-info-header-line u-i-h-box-free" style="display: none;">
+       <span class="activity-tip" style="display: none;">
+           <i class="j-icon limit-time-icon"></i>
+           <span class="activity-text"></span>
+       </span>
+        <span class="buy-vip">
+            <i class="j-icon user-vip-icon"></i>
+            <span onclick="bugVip('buy')">开通超级订阅</span>
+            <i class="j-icon more_icon more_icon_gray"></i>
+        </span>
+
+    </p>
+    <p class="user-info-header-line u-i-h-box-vip-bigmember" style="display:none;">
+        <span class="u-i-h-line-label">到期时间:</span>
+        <span class="u-i-h-line-value vipEntTime"></span>
+        <span class="handle-btn blue province-vip-btn" onclick="concatKf()">
+            去续费
+            <i class="more_icon more_icon_blue"></i>
+        </span>
+        <span class="handle-btn gold vip-btn">
+            去续费
+             <i class="more_icon more_icon_gold"></i>
+        </span>
+        <a class="handle-btn black bigmember-btn" target="_blank" style="text-decoration-line: none">
+            续费咨询
+             <i class="more_icon more_icon_gold2"></i>
+        </a>
+        <span class="handle-btn black ent-btn" onclick="concatKf()">
+            续费咨询
+             <i class="more_icon more_icon_gold2"></i>
+        </span>
     </p>
-    {{end}}
   </header>
   {{$ad_menu:=(Ad "new-pc-index-menu" -1 .Host (cookie "SESSIONID"))}}
   {{if $ad_menu}}
@@ -56,3 +90,112 @@
   {{end}}
 </section>
 {{end}}
+
+<script>
+  // P554版本修改为接口调用
+  function getUserAccountShow() {
+    $.ajax({
+      type:'POST',
+      url:'/jypay/user/account/show',
+      contentType: 'application/json;charset=utf-8' ,
+      success:function(res) {
+        if(res.error_code === 0 && res.data) {
+          const resData = res.data || {}
+          renderCard(resData)
+        }
+      },
+      error:function(err) {}
+    })
+  }
+  getUserAccountShow()
+  function initRender () {
+    $('.u-i-h-line-tip').hide() // 尚未开通会员提示隐藏
+    $('.u-i-h-box-free').hide() // 注册用户模块隐藏
+    $('.u-i-h-box-vip-bigmember').hide()
+    $('.u-i-h-box-free .activity-tip').hide() // 活动隐藏
+    $('.user-type-icon .user-vip-icon').hide() // 用户身份icon
+    $('.user-type-icon .user-bigmember-icon').hide() // 用户身份icon
+    $('.u-i-h-box-vip-bigmember .handle-btn') // 操作
+  }
+  function renderCard (data) {
+    initRender()
+    //昵称
+    $('.login-user-info-card .user-nickname').text(data.nickname)
+    // 取用户权益类型第一条展示
+    var userInfo = data.list && Array.isArray(data.list) ? data.list[0] : {}
+    if(!userInfo.name) {
+      return
+    }
+    // 账号类型展示
+    $('.login-user-info-card .user-vip-type').text(userInfo.name)
+    var attr = userInfo.attr
+    var userType = userInfo.name
+    if(userType === '注册用户') {
+      $('.u-i-h-box-free').show() // 注册用户模块展示
+      $('.u-i-h-line-tip').show() // 尚未开通会员提示展示
+      if(attr && attr.subVipActMsg) {
+        // 有活动,展示活动,以及活动内容
+        var text = attr.subVipActMsg
+        $('.u-i-h-box-free .activity-tip .activity-text').text(text)
+        $('.u-i-h-box-free .activity-tip').show()
+      }
+    } else {
+      // 非免费用户
+      // 到期时间
+      var vipEntTime = userInfo.endTime ? new Date(userInfo.endTime * 1000 ).pattern('yyyy-MM-dd') : ''
+      $('.u-i-h-box-vip-bigmember').show()
+      // 到期时间
+      $('.u-i-h-box-vip-bigmember .vipEntTime').text(vipEntTime)
+      $('.u-i-h-box-vip-bigmember .vipEntTime').show()
+
+      if(userType === '超级订阅') {
+        // 用户身份icon
+        $('.user-type-icon .user-vip-icon').show()
+        // 去续费按钮
+        $('.u-i-h-box-vip-bigmember .vip-btn').show()
+        $('.u-i-h-box-vip-bigmember .vip-btn').click(function () {
+          if(attr.renew) {
+            bugVip('renew')
+          } else {
+            concatKf()
+          }
+        })
+      } else if(userType === '省份订阅包') {
+        // 去续费按钮
+        $('.u-i-h-box-vip-bigmember .province-vip-btn').show()
+        $('.u-i-h-box-vip-bigmember .province-vip-btn').click(function () {
+          concatKf()
+        })
+      } else if (userType.includes('大会员')) {
+        // 用户身份icon
+        $('.user-type-icon .user-bigmember-icon').show()
+        // 续费咨询按钮
+        var link = attr.pc || 'https://www.jianyu360.cn/hjpc/dhyxfzxxshd'
+        $('.u-i-h-box-vip-bigmember .bigmember-btn').attr('href', link)
+        $('.u-i-h-box-vip-bigmember .bigmember-btn').show()
+      } else if(userType.includes('商机管理')) {
+        // 续费咨询按钮
+        $('.u-i-h-box-vip-bigmember .ent-btn').show()
+      }
+    }
+    initUserInfoCard()
+  }
+  // 计算九宫格高度
+  function initUserInfoCard () {
+    var container = $('.user-info-card.login-card')
+    var header = container.find('.user-info-header')
+    var item = container.find('.user-power-item')
+    var containerHeight = container.height()
+    var headerHeight = header.height()
+    var last = containerHeight - 12 - headerHeight
+    var calcItemHeight = last / 3
+    item.css({ height: calcItemHeight })
+  }
+  // 购买超级订阅
+  function bugVip (type) {
+    window.open('/swordfish/page_big_pc/free/svip/buy?type=' + type)
+  }
+  function concatKf () {
+    goCustomerUrl({ openNewWindow: true })
+  }
+</script>

+ 68 - 11
src/web/templates/pc/vip_orderDetail.html

@@ -68,6 +68,13 @@
         .nothing-img {
             width: 230px;
         }
+        .show_pay_pic {
+            background: #2CB7CA;
+            padding: 1px 8px 1px 8px;
+            border-radius: 2px;
+            color: #fff;
+            cursor: pointer;
+        }
     </style>
 </head>
 <body>
@@ -93,10 +100,11 @@
             <p class="clearfix order_state">
                 <!--greenFont为绿色字体 redFont为红色字体 -->
                 <span class="greenFont hide" id="status_success">已完成</span>
-                <span class="redFont hide" id="status_wait_payfull">待付完</span>
+<!--                <span class="redFont hide" id="status_wait_payfull">待付完</span>-->
                 <span class="redFont hide" id="status_wait_pay">待付款</span>
                 <span class="qxBgFont hide" id="status_cancelled">已取消</span>
-
+                <span class="customerTel hide"
+                      style="font-weight: normal;font-size: 14px;color: #686868;margin-left: 50px;">客服电话:400-108-6670</span>
                 <a class="go_pay payOrder" style="display: none;">去支付</a>
 
                 <!-- 当状态为已完成时显示开发票 或 查看发票 -->
@@ -145,6 +153,7 @@
                         <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>
+                        <p class="pay_pic" style="display:none">转账凭证:<span class="show_pay_pic">查看凭证</span></p>
                     </div>
                 </div>
             </div>
@@ -175,7 +184,7 @@
                 if (r == '{"error":"需要登录!"}') {
                     location.href = '/';
                 }
-                if (r.success) {
+                if (r.success && r.data && r.data.order) {
                     //订单信息
                     $(".order_code").text(orderCode);
                     var filterObj = JSON.parse(r.data.order.filter);
@@ -282,8 +291,19 @@
                                 $(".pay_way").text("支付宝支付");
                                 $(".pay_way_p").css("display", "");
                             }else if(r.data.order.pay_way === "transferAccounts"&&(r.data.order.is_backstage_order===1&&r.data.order.return_status>0||r.data.order.is_backstage_order===0)) {
-                                $(".pay_way").text("公对公转账");
-                                $(".pay_way_p").css("display", "");
+                                // $(".pay_way").text("公对公转账");
+                                // $(".pay_way_p").css("display", "");
+
+                              window.isTransferPay = r.data.order.applybill_status === 0
+                              $(".pay_num_p").css("display", "none");
+                              if (filterObj.transferV&&r.data.order.level!=5) {
+                                $(".pay_pic").css("display", "")
+                                $(".show_pay_pic").attr("onclick", "showImg('" + filterObj.transferV + "')")
+                              }
+                              $(".pay_way").text("公对公转账");
+                              $(".pay_way_p").css("display", "");
+
+                              $(".price").text("¥ " + formatMoney(r.data.order.pay_money / 100) + "元");
                             }
                           }
                         }
@@ -311,14 +331,45 @@
                         }
                     }
                     if (r.data.order.order_status == -2 || r.data.order.order_status == -3) {
-                        $("#status_cancelled").removeClass("hide");
-                        $("#bg").addClass("qxBg").removeClass("greenBg");
+                      $("#bg").addClass("qxBg").removeClass("greenBg");
+                      //取消订单状态: 公对公转账审核不通过,订单状态虽为已取消但订单详情页按照“未收到转账”进行展示,此时“再次支付”按钮订单详情页及订单列表都不再展示。
+                       if(r.data.order.pay_way === "transferAccounts" && r.data.order.course_status === 3) {
+                         $(".order_state .redFont").removeClass("hide").text("未收到转账!");
+                         $(".customerTel").removeClass("hide");
+                         $(".payOrder").hide();
+                       } else {
+                         // 展示【已取消】文案
+                         $("#status_cancelled").removeClass("hide");
+                       }
                     }
-                    if (r.data.order.order_status == 0) {
-                        $("#status_wait_pay").removeClass("hide");
-                        $("#bg").addClass("redBg").removeClass("greenBg");
-                        $(".payOrder").show();
+
+                  // 支付状态未完成
+                  if (r.data.order.order_status === 0) {
+                    $("#bg").addClass("redBg").removeClass("greenBg");
+                    if (r.data.order.pay_way === "transferAccounts") {
+                      if (filterObj.transferV) {
+                        $(".pay_pic").css("display", "")
+                        $(".show_pay_pic").attr("onclick", "showImg('" + filterObj.transferV + "')")
+                      }
+                      $(".pay_way").text("公对公转账");
+                      $(".pay_way_p").css("display", "");
+                      if (r.data.order.course_status === 2) {
+                        $(".order_state .redFont").removeClass("hide").text("转账审核中");
+                      } else if (r.data.order.course_status === 3) {
+                        $(".order_state .redFont").removeClass("hide").text("未收到转账!");
+                        $(".customerTel").removeClass("hide");
+                        $(".payOrder").text("再次支付").show();
+                      }
+                      $(".payWay").html("公对公转账<span style='color: #2ABED1' onclick='showImg(\"" + filterObj.transferV + "\")'>&nbsp;查看凭证</span>");
+                      $(".line_payway").css("display", "");
+
+                      $(".price").text("-");
+
+                    } else {
+                      $("#status_wait_pay").removeClass("hide");
+                      $(".payOrder").show();
                     }
+                  }
 
                     //订阅条件
                     if (!$.isEmptyObject(filterObj.newBuyset)) {	//p1版本
@@ -647,6 +698,12 @@
             }
           })
         }
+        function showImg(imgSrc) {
+          if (!imgSrc) {
+            return
+          }
+          $("body").append('<div id="showImgDiv" onclick="$(this).remove()" style="overflow-y:scroll;display: flex;background: #00000070;height: 100%;width: 100%;position: fixed;z-index: 9999;padding: 20px;top: 0px;box-sizing: border-box;align-items: center;justify-content: center;"><img src="' + imgSrc + '"></div>')
+        }
     </script>
 </body>
 </html>

+ 26 - 2
src/web/templates/weixin/commonPay/checkout.html

@@ -10,10 +10,14 @@
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <title>{{.T.title}}</title>
     <script src="{{Msg "seo" "cdn"}}/js/rem.js"></script>
+    <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"}}/wxCommonPay/css/weui.min.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wxCommonPay/css/base.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wxCommonPay/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wxCommonPay/css/public.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" type="text/css" href='{{Msg "seo" "cdn"}}/common-module/appPay/css/popup.css?v={{Msg "seo" "version"}}'/>
     <style>
         .j-body .need-pay {
             display: flex;
@@ -118,16 +122,35 @@
                     </div>
                 </div>
             {{end}}
-
+            {{if eq .T.doType "subvip"}}
+            <div class="j-cell" data-pay-mode="transferAccounts">
+                <div class="j-cell_left" style="padding-left: 0.04rem;">
+                    <span class="icon-gongduigongzhuanzhang"></span>
+                </div>
+                <div class="j-cell_right">
+                    <div class="j-cell_rl">公对公转账</div>
+                    <div class="j-cell_rr iconfont icon-shezhichenggong"></div>
+                </div>
+            </div>
+          {{end}}
         </div>
     </div>
     <div class="j-footer j-button-group">
         <button class="j-button-confirm">去支付</button>
     </div>
+    <div id="vuePay">
+        <vippopup v-if="doType == 'subvip'"       
+        v-model="popup.tip"
+        @onconfirm="ontipconfirm"
+        @oncancel="ontipcancel"></vippopup>
+    </div>
 </div>
-
+<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="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
 <script src='{{Msg "seo" "cdn"}}/big-member/js/utils.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/appPay/js/popup.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/appPay/js/appPay.js?v={{Msg "seo" "version"}}'></script>
 <script>
     $(function () {
         var checkout = {
@@ -496,6 +519,7 @@
         }
         checkout.init()
         window.checkout = checkout
+        vuePay.doType = {{.T.doType}} 
     })
 </script>
 {{include "/common/baiducc.html"}}

+ 6 - 0
src/web/templates/weixin/commonPay/transferAccountsResult.html

@@ -49,6 +49,12 @@
                     onclick="window.location.href='/front/wxMyOrder/memberDetail/{{.T.orderCode}}'">查看订单
             </button>
         {{end}}
+
+        {{if eq .T.doType "subvip"}}
+        <button class="j-button-confirm"
+                onclick="window.location.href='/front/vipsubscribe/toOrderDetailPage?orderCode={{.T.orderCode}}'">查看订单
+        </button>
+    {{end}}
     </div>
 </div>
 {{include "/common/baiducc.html"}}

+ 10 - 3
src/web/templates/weixin/member/memberdetail.html

@@ -572,9 +572,16 @@
                 })
             }
             if (r.data.order_status == -2 || r.data.order_status == -3) {
-                $("#card-header-bg").addClass("bg cancel-bg")
-                $("#pageTitle").addClass("status")
-                $("#pageTitle").text("已取消");
+                if( r.data.pay_way === "transferAccounts" && r.data.course_status === 3){
+                    $("#card-header-bg").addClass("bg nopay-bg")
+                    $("#pageTitle").addClass("status")
+                    $("#pageTitle").text("未收到转账");
+                    $(".remaining").show().text("客服电话:400-108-6670")
+                }else{
+                    $("#card-header-bg").addClass("bg cancel-bg")
+                    $("#pageTitle").addClass("status")
+                    $("#pageTitle").text("已取消");
+                }
                 $(".invoice").css("display", "none");//隐藏开发票
             }
         })

+ 73 - 7
src/web/templates/weixin/vipsubscribe/vip_order_detail.html

@@ -5,7 +5,7 @@
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
-    <title>我的订单</title>
+    <title>订单详情</title>
     <meta name="apple-mobile-web-app-capable" content="yes">
     <meta name="apple-mobile-web-app-status-bar-style" content="black">
     <script src="/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
@@ -61,6 +61,19 @@
       font-size: .2rem !important;
       margin-right: -1.8rem
     }
+    
+    .page.pinch-zoom-parent {
+        padding: 20px;
+        height: 100vh;
+        width: 100vw;
+        position: absolute;
+        top: 0;
+        background: rgba(0, 0, 0, 44%);
+    }
+
+    .page.pinch-zoom-parent .pinch-zoom-container {
+        height: 100% !important;
+    }
 </style>
 <body style="visibility:hidden">
 <div class="nothing" style="display:none;text-align: center;  padding-top: 2rem;">
@@ -164,9 +177,9 @@
                             <span class="label">优惠金额:</span>
                             <span class="discountPrice value" style="color: #FB483D;">-</span>
                         </p>
-                        <p class="l-item">
+                        <p class="l-item paymoney">
                             <span class="label" id="price">实付金额:</span>
-                            <span class="payPrice value">-</span><em class="qingdan valuationList"
+                            <span class="payPrice value price">-</span><em class="qingdan valuationList"
                                                                  style="display:none">计费清单</em>
                         </p>
                     </div>
@@ -199,8 +212,14 @@
         </div>
     </div>
 </div>
+<div class="page pinch-zoom-parent" style="z-index: -1">
+    <div class="pinch-zoom">
+        <img src="/courseFile/2020/10/28/20201028163700010351920Sv.jpg"/>
+    </div>
+</div>
 </body>
 <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/jquery-2.1.4.js?v={{Msg "seo" "version"}}"></script>
+<script src="{{Msg "seo" "cdn"}}/big-member/js/pinch-zoom.js?v={{Msg "seo" "version"}}"></script>
 <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
 <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
 <script>
@@ -616,6 +635,26 @@
                     //未支付
                     $("#card-header-bg").addClass("bg nopay-bg")
                     $("#pageTitle").addClass("status")
+                    if (r.data.order.pay_way === "transferAccounts") {
+                    if (r.data.order.course_status === 2) {
+                        $("#pageTitle").text("转账审核中");
+                    } else if (r.data.order.course_status === 3) {
+                        $("#pageTitle").text("未收到转账");
+                        $(".remaining").show().text("客服电话:400-108-6670")
+
+                        $(".j-footer").show().html("<button class='j-button-confirm' style='width: 100%!important;height: 0.92rem!important;' >再次支付</button>").on("click", function () {
+                            window.location.href = "/weixin/pay/checkout_subvip?orderCode=" + orderCode + "&t=3";
+                        })
+                    }
+                    if (filterObj.transferV) {
+                        initImgView(filterObj.transferV)
+                        $(".payWay").html("公对公转账<span style='color: #2ABED1' onclick='showImg()'>&nbsp;查看凭证</span>")
+                    }
+                    $(".line_payway").css("display", "");
+
+                    $(".l-item.paymoney").css("display", "");
+                    $(".paymoney .price").text("-");
+                   }else{
                     $("#pageTitle").text("待付款");
                     $(".remaining").show()
                     var order_create_time = r.data.order.create_time
@@ -665,7 +704,6 @@
                             $(".remaining").text("剩余支付时间" + hour + ":" + minute + ":" + seconds)
                         }
                     }, 1000)
-                    $(".invoice").hide();//隐藏开发票
                     $(".j-footer").show().html("<button class='j-button-confirm' style='width: 100%!important;' >去支付</button>").on("click", function () {
                         //0试用用户、1续费、2升级、3购买
                         var vipType = 0
@@ -678,6 +716,8 @@
                         }
                         window.location.href = "/weixin/pay/checkout_subvip?orderCode=" + orderCode + "&t=" + vipType
                     })
+                    }
+                    $(".invoice").hide();//隐藏开发票
                 } else if (r.data.order.order_status == 1) {
                     if (r.data.order.discount_price&&r.data.order.discount_price>0){
                       discount_price = r.data.order.discount_price;
@@ -730,7 +770,12 @@
                             $(".payWay").text("支付宝支付");
                             $(".line_payway").css("display", "");
                         } else if(r.data.order.pay_way === "transferAccounts"&&(r.data.order.is_backstage_order===1&&r.data.order.return_status>0||r.data.order.is_backstage_order===0)){
+                            window.isTransferPay = r.data.applybill_status === 0
                             $(".payWay").text("公对公转账");
+                          if (filterObj.transferV) {
+                            initImgView(filterObj.transferV)
+                            $(".payWay").html("公对公转账<span style='color: #2ABED1' onclick='showImg()'>&nbsp;查看凭证</span>");
+                          }
                             $(".line_payway").css("display", "");
                         }else {
                             $(".invoice").css("display", "none");
@@ -764,9 +809,16 @@
                        $(".j-footer").hide();//隐藏开发票
                     }
                 } else if (r.data.order.order_status == -2 || r.data.order.order_status == -3) {
-                    $("#card-header-bg").addClass("bg cancel-bg")
-                    $("#pageTitle").addClass("status")
-                    $("#pageTitle").text("已取消");
+                    if( r.data.order.pay_way === "transferAccounts" && r.data.order.course_status === 3){
+                      $("#card-header-bg").addClass("bg nopay-bg")
+                      $("#pageTitle").addClass("status")
+                      $("#pageTitle").text("未收到转账");
+                      $(".remaining").show().text("客服电话:400-108-6670")
+                    }else{
+                      $("#card-header-bg").addClass("bg cancel-bg")
+                      $("#pageTitle").addClass("status")
+                      $("#pageTitle").text("已取消");
+                    }
                     $(".invoice").css("display", "none");//隐藏开发票
                     $(".payPrice").parent().hide();
                     $(".discountPrice").parent().hide();
@@ -830,6 +882,9 @@
             var seconds = PrefixInteger(parseInt(t / 1000 % 60, 10).toString(), 2)
             $(".cancel_time").text("剩余" + days_ + ":" + minutes_ + ":" + seconds + " ");
         }
+        $(".page.pinch-zoom-parent").on("click", function () {
+            $(this).css("display", "none");
+        })
     })
 
     //苹果端  刷新js
@@ -1008,6 +1063,17 @@
         // window.location.href = "/front/invoice/check_invoice.html?order_code=" + orderCode
         window.location.href = "/jy_mobile/invoice/viewInvoice?order_code=" + orderCode
     }
+    function initImgView(imgSrc) {
+    if (imgSrc) {
+        $(".pinch-zoom").html(' <img src="' + imgSrc + '"/>')
+        var el = document.querySelector('div.pinch-zoom');
+        new PinchZoom.default(el, {});
+    }
+}
+
+function showImg() {
+    $(".page.pinch-zoom-parent").css("display", "").css("z-index", "999")
+}
 
     /******* 获取url参数(正则)********/
     function getParam(name) {