Bläddra i källkod

Merge branch 'dev2.8.5' of http://192.168.3.207:10080/qmx/jy into dev2.8.5

xuzhiheng 5 år sedan
förälder
incheckning
58d37088b1

+ 10 - 0
src/jfw/modules/subscribepay/src/config/config.go

@@ -34,11 +34,20 @@ type config struct {
 		Pwd  string
 		User string
 	}
+	ExpireRemind []int
+}
+type timetaskConfig struct {
+	ExpireRemind   string
+	SyncVipUpgrade string
+	CheckIsExpire  string
 }
 
 var Config *config
+var TimetaskConfig *timetaskConfig
+
 //发送邮件邮箱
 var GmailAuth []*mail.GmailAuth
+
 //支付配置
 var PayConf map[string]interface{}
 var AliPayConf map[string]interface{}
@@ -49,6 +58,7 @@ var Wxoauth, Wxoauthinfo string
 func init() {
 	//程序配置文件
 	qutil.ReadConfig(&Config)
+	qutil.ReadConfig("./timetask.json", &TimetaskConfig)
 	for _, v := range Config.Mail {
 		mail := &mail.GmailAuth{
 			SmtpHost: v.Addr,

+ 6 - 2
src/jfw/modules/subscribepay/src/entity/subscribeVip.go

@@ -62,6 +62,11 @@ func (this *vipSubscribeStruct) PayCallBack(param *CallBackParam) (ok bool) {
 				"vip_endtime":   qutil.FormatDate(&endTime, qutil.Date_Full_Layout),
 			})
 			if update {
+				//支付成功后 其他未支付vip订阅订单 变为已取消
+				bo := PayCancel(userid)
+				if !bo {
+					log.Println(userid, "更改其余未支付订单失效")
+				}
 				if JyVipSubStruct.StartSubVip(userid, vmsg.Area, vmsg.Industry, startTime, endTime, false) {
 					ok = true
 				}
@@ -259,10 +264,9 @@ func getSetMealPrice(c, i, u int) int {
 
 //支付成功后,将该订单以外的所有订单状态改为已取消状态 已取消:-2
 func PayCancel(userId string) bool {
-	//参数:查询语句,不等语句,修改条件
 	bl := util.Mysql.Update("dataexport_order", bson.M{
 		"user_id":      userId,
-		"product_type": "vip订阅",
+		"product_type": "VIP订阅",
 		"order_status": 0,
 	}, bson.M{
 		"order_status": -2,

+ 9 - 20
src/jfw/modules/subscribepay/src/service/orderListDetails.go

@@ -25,7 +25,6 @@ type OrderListDetails struct {
 	myOrder             xweb.Mapper `xweb:"/orderListDetails/myOrder"`             //查询订单首页
 	myOrderPaging       xweb.Mapper `xweb:"/orderListDetails/myOrderPaging"`       //查询订单分页
 	deleteOrder         xweb.Mapper `xweb:"/orderListDetails/deleteOrder"`         //删除订单
-	payCancel           xweb.Mapper `xweb:"/orderListDetails/payCancel"`           //支付成功后,其余订单改为已取消
 	setEmail            xweb.Mapper `xweb:"/orderListDetails/setEmail"`            //设置邮箱
 	checkMailCodeVerify xweb.Mapper `xweb:"/orderListDetails/checkMailCodeVerify"` //验证码
 	emailOperation      xweb.Mapper `xweb:"/orderListDetails/emailOperation"`      //查看邮箱
@@ -122,7 +121,6 @@ func (o *OrderListDetails) MyOrder() error {
 	if res != nil {
 		o.SetRes(res, queryM)
 	}
-	log.Println("res:", res)
 	o.ServeJson(map[string]interface{}{
 		"res":         res,
 		"pageSize":    order_pageSize,
@@ -305,7 +303,7 @@ func (o *OrderListDetails) CheckMailCodeVerify() {
 	o.ServeJson(&o.T)
 }
 
-//邮箱操作:绑定,解绑,更换
+//邮箱操作:绑定,解绑,更换,查看
 func (o *OrderListDetails) EmailOperation() {
 	operation := o.GetString("operation")
 	email := o.GetString("email")
@@ -321,30 +319,21 @@ func (o *OrderListDetails) EmailOperation() {
 		case "unbind":
 			bo = util.MQFW.UpdateById("user", userId, bson.M{"$set": bson.M{"s_myemail": ""}})
 		}
+	} else {
+		res, err := util.MQFW.FindOne("user", bson.M{"_id": bson.ObjectIdHex(userId)})
+		if len(*res) > 0 && err {
+			if qutil.ObjToString((*res)["s_myemail"]) == "" {
+				bo = true
+			}
+		}
 	}
 	o.T["success"] = bo
 	o.ServeJson(&o.T)
 }
 
-//支付成功后,将该订单以外的所有订单状态改为已取消状态 已取消:-2
-func (o *OrderListDetails) PayCancel() bool {
-	//order_code := o.GetString("order_code")
-	userId := qutil.ObjToString(o.GetSession("userId"))
-	//参数:查询语句,不等语句,修改条件
-	bl := util.Mysql.Update(tableName_order, bson.M{
-		"user_id":      userId,
-		"product_type": "vip订阅",
-		"order_status": "0",
-	}, bson.M{
-		"order_status": orderStatus_cancel,
-	})
-	log.Println("bl:", bl)
-	return bl
-}
-
 func (o *OrderListDetails) SetRes(res []map[string]interface{}, queryM map[string]interface{}) {
 	//获取最后一次购买的vip订单
-	queryM["product_type"] = "vip订阅"
+	queryM["product_type"] = "VIP订阅"
 	lastbuy := *util.Mysql.Find(tableName_order, queryM, "order_code,pay_time", "pay_time desc", -1, 0)
 	lastbuy_code := ""
 	if len(lastbuy) > 0 && lastbuy != nil {

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

@@ -0,0 +1,5 @@
+{
+	"expireRemind": "10:00",
+	"syncVipUpgrade": "00:00",
+	"checkIsExpire": "00:00"
+}

+ 141 - 9
src/jfw/modules/subscribepay/src/timetask/timetask.go

@@ -1,32 +1,164 @@
 package timetask
 
 import (
+	"config"
+	"log"
+	qutil "qfw/util"
+	"qfw/util/jy"
+	qrpc "qfw/util/rpc"
+	"strings"
 	"time"
+	"util"
+)
+
+const (
+	threeday = 259200
 )
 
 func Run() {
-	checkIsExpire()
-	expireRemind()
+	go syncVipUpgrade()
+	go checkIsExpire()
+	go expireRemind()
+}
+
+//vip升级 下个月生效 同步
+func syncVipUpgrade() {
+	crontab(true, config.TimetaskConfig.SyncVipUpgrade, func() {
+		log.Println("定时任务,开始同步vip升级数据")
+		sess := util.MQFW.GetMgoConn()
+		defer util.MQFW.DestoryMongoConn(sess)
+		it := sess.DB("qfw").C("vip_upgrade").Find(map[string]interface{}{
+			"l_validtime": map[string]interface{}{
+				"$lte": time.Now().Unix(),
+			},
+			"i_isvalid": map[string]interface{}{
+				"$ne": 1,
+			},
+		}).Select(map[string]interface{}{"s_userid": 1, "o_area": 1, "a_buyerclass": 1}).Iter()
+		for m := make(map[string]interface{}); it.Next(&m); {
+			_id := qutil.BsonIdToSId(m["_id"])
+			s_userid := qutil.ObjToString(m["s_userid"])
+			if s_userid == "" {
+				log.Println("定时任务,同步vip升级数据有问题,userid是空", _id)
+				continue
+			}
+			o_area, _ := m["o_area"].(map[string]interface{})
+			a_buyerclass, _ := m["a_buyerclass"].([]string)
+			if util.MQFW.UpdateById("user", s_userid, map[string]interface{}{
+				"$set": map[string]interface{}{
+					"o_vipjy.o_area":       o_area,
+					"o_vipjy.a_buyerclass": a_buyerclass,
+				},
+			}) {
+				util.MQFW.UpdateById("vip_upgrade", _id, map[string]interface{}{
+					"$set": map[string]interface{}{
+						"l_synctime": time.Now().Unix(),
+						"i_isvalid":  1,
+					},
+				})
+				log.Println("定时任务,同步vip升级数据成功", _id)
+			} else {
+				log.Println("定时任务,同步vip升级数据更新用户表失败", _id)
+			}
+			m = make(map[string]interface{})
+		}
+		log.Println("定时任务,同步vip升级数据结束")
+	})
 }
 
 //每天0点 检查试用、vip服务是否到期
 func checkIsExpire() {
-	crontab(0, func() {
-
+	crontab(true, config.TimetaskConfig.CheckIsExpire, func() {
+		log.Println("定时任务,开始更新vip状态")
+		now_unix := time.Now().Unix()
+		sess := util.MQFW.GetMgoConn()
+		defer util.MQFW.DestoryMongoConn(sess)
+		it := sess.DB("qfw").C("user").Find(map[string]interface{}{
+			"i_appid": 2,
+			"i_vip_status": map[string]interface{}{
+				"$in": []int{1, 2},
+			},
+			"l_vip_endtime": map[string]interface{}{
+				"$lt": now_unix + threeday,
+			},
+		}).Select(map[string]interface{}{"i_vip_status": 1, "l_vip_endtime": 1, "i_vip_expire_tip": 1}).Iter()
+		for m := make(map[string]interface{}); it.Next(&m); {
+			_id := qutil.BsonIdToSId(m["_id"])
+			l_vip_endtime := qutil.Int64All(m["l_vip_endtime"])
+			i_vip_status := qutil.IntAll(m["i_vip_status"])
+			i_vip_expire_tip := qutil.IntAll(m["i_vip_expire_tip"])
+			if l_vip_endtime < now_unix {
+				util.MQFW.UpdateById("user", _id, map[string]interface{}{
+					"$set": map[string]interface{}{
+						"i_vip_status":     -i_vip_status,
+						"i_vip_expire_tip": 2,
+					},
+				})
+				log.Println("用户", _id, i_vip_status, l_vip_endtime, "修改到期状态")
+			} else if l_vip_endtime-now_unix <= threeday && i_vip_expire_tip == 0 {
+				updateOk := util.MQFW.UpdateById("user", _id, map[string]interface{}{
+					"$set": map[string]interface{}{
+						"i_vip_expire_tip": 1,
+					},
+				})
+				log.Println("用户", _id, i_vip_status, l_vip_endtime, "修改即将到期状态", updateOk)
+			}
+			m = make(map[string]interface{})
+		}
+		log.Println("定时任务,更新vip状态结束")
 	})
 }
 
 //即将到期或者已到期发推送消息
 func expireRemind() {
-	crontab(10, func() {
-
+	crontab(false, config.TimetaskConfig.ExpireRemind, func() {
+		log.Println("定时任务,开始推送消息")
+		sess := util.MQFW.GetMgoConn()
+		defer util.MQFW.DestoryMongoConn(sess)
+		it := sess.DB("qfw").C("user").Find(map[string]interface{}{
+			"i_appid": 2,
+			"i_vip_expire_tip": map[string]interface{}{
+				"$in": []int{1, 2},
+			},
+		}).Select(map[string]interface{}{
+			"i_vip_status":     1,
+			"l_vip_endtime":    1,
+			"i_vip_expire_tip": 1,
+		}).Iter()
+		for m := make(map[string]interface{}); it.Next(&m); {
+			_id := qutil.BsonIdToSId(m["_id"])
+			i_vip_expire_tip := qutil.Int64All(m["i_vip_expire_tip"])
+			isPushOk := false
+			if i_vip_expire_tip == 1 || i_vip_expire_tip == 2 {
+				jy.WxPush(config.Config.Weixinrpc, "WeiXinRpc.SendCustomTplMsg", &qrpc.NotifyMsg{})
+				log.Println("推送消息,用户", _id, m["i_vip_status"], m["l_vip_endtime"], i_vip_expire_tip)
+			}
+			if isPushOk {
+				util.MQFW.UpdateById("user", _id, map[string]interface{}{
+					"$set": map[string]interface{}{
+						"i_vip_expire_tip": 0,
+					},
+				})
+			}
+			m = make(map[string]interface{})
+		}
+		log.Println("定时任务,推送消息结束")
 	})
 }
 
-func crontab(hour int, f func()) {
-	go f()
+func crontab(flag bool, c string, f func()) {
+	array := strings.Split(c, ":")
+	if len(array) != 2 {
+		log.Fatalln("定时任务参数错误!", c)
+	}
+	if flag {
+		go f()
+	}
 	now := time.Now()
-	t := time.Date(now.Year(), now.Month(), now.Day()+1, hour, 0, 0, 0, time.Local)
+	t := time.Date(now.Year(), now.Month(), now.Day(), qutil.IntAll(array[0]), qutil.IntAll(array[1]), 0, 0, time.Local)
+	if t.Sub(now).Nanoseconds() < 0 {
+		t = t.AddDate(0, 0, 1)
+	}
 	timer := time.NewTimer(t.Sub(now))
 	for {
 		select {

+ 1 - 1
src/jfw/public/historypush.go

@@ -57,7 +57,7 @@ func (h *historyPush) Datas_Mysql(userId string, pageNum int, selectTime, area s
 	countSQL = countSQL + findStr
 	count := Mysql.CountBySql(countSQL)
 	start := (pageNum - 1) * pageSize
-	findStr += " order by date desc limit " + fmt.Sprint(start) + "," + fmt.Sprint(pageSize)
+	findStr += " order by infoid desc limit " + fmt.Sprint(start) + "," + fmt.Sprint(pageSize)
 	findSQL = findSQL + findStr
 	list := Mysql.SelectBySql(findSQL)
 	if len(*list) > 0 {

+ 125 - 82
src/web/templates/weixin/dataExport/dataExport_toMyOrder.html

@@ -244,7 +244,7 @@
 				});
 			}
 			//调用微信支付接口
-			var payArr=new Array(); //用来存储已支付的index
+			var payArr=new Array(); //用来存储已支付的index		
 			function onBridgeReady(res,e){
 			   	WeixinJSBridge.invoke('getBrandWCPayRequest',{
 			    		"appId": res["appId"],
@@ -269,14 +269,46 @@
 							},500)
 						}else if(r.err_msg == "get_brand_wcpay_request:cancel"){
 							//取消支付 可以再次支付
-							canpay=true;
 							isReqing = false;
 						}else{
 							EasyAlert.show("系统异常,请稍微再试","",3000);
 					}
 				});
 			}
-			//
+			
+        //调用微信支付接口
+  		function onBridgeReady_vip(res,ordercode){
+  		   	WeixinJSBridge.invoke('getBrandWCPayRequest',{
+  		    		"appId": res["appId"],
+  		          	"timeStamp": res["timestamp"],
+  		          	"nonceStr": res["nonceStr"],
+  		          	"package": res["prepayId"],
+  		          	"signType": res["signType"],
+  		         	"paySign": res["sign"]
+  				},
+  				function(r){
+  			    if(r.err_msg == "get_brand_wcpay_request:ok"){
+  						setTimeout(function(){
+  							window.location.replace("/front/vipsubscribe/toPaySuccessPage?orderCode="+ordercode);
+  						},500)
+  					}else if(r.err_msg == "get_brand_wcpay_request:cancel"){
+  						//取消支付 可以再次支付
+			            canpay=true;
+			            alert("开发环境【支付跳转完成】")
+			            try{
+			  				window.location.replace("/front/vipsubscribe/toPaySuccessPage?orderCode="+ordercode);
+		            	}catch(e){
+			                alert(e)
+		                }
+  					}else{
+		                weui.toast("系统异常,请稍微再试",{
+		               		duration: 2000,
+		                	className: 'custom-toast',
+		              	});
+  				  	}
+  			});
+  		}
+			//移动端数据导出支付
 			var isReqing = false;
 			var gopayIndex = 0;
 			function goPay(e){
@@ -298,6 +330,20 @@
 					}
 				});
 			}
+			//vip订单支付
+			var canpay=true;
+			function goVipPay(e){
+				var orderCode =$(e).attr("orderCode");
+				if(!canpay)return  
+            	canpay=false;
+	            $.post("/subscribepay/vipsubscribe/orderToPay",{"orderCode":orderCode},function(r){
+	              if(r.success){
+	                onBridgeReady_vip(JSON.parse(r.data.res),orderCode);
+	              }else{
+	                canpay=true;
+	              }
+	            })
+			}
 			//提示框
 			var EasyAlert = {
 				timeout: null,
@@ -321,34 +367,7 @@
 				}
 			}
 			//
-			function  getOneMore(gopayIndex){
-				$.post("/front/wxMyorder/getOneMore",{"pageNum":pageIndex,"tabType":typ},function(data){
-					//更改缓存
-					dataCache.splice(gopayIndex,1)
-					if(data.res!=null){
-                		dataCache.push(data.res[0])
-                		hasNextPage=data.nextPage;
-                	}
-					if(data.res!=""){
-						var res = data.res[0]
-						var oneMHtml = '<div class="card"><div class="card-header">'
-										+'<span class="time" style="color:#888888">'+res.create_time+'</span>'
-										+'<span class="status notpay">待付款</span></div>'
-										+'<div class="card-content"><a eid="'+res.order_code+'" class="media">'
-										+'<div class="media-img"><img src="/dataExport/image/historical_data.png"></div>'
-										+'<div class="media-info">'
-										+'<p class="item-ifo ellipsis">关键词:<span>'+res.filter_keys+'&nbsp;</span>'
-										+'</p><p class="item-ifo ellipsis">数据量:'+res.data_count+'条</p>'
-										+'<p class="item-ifo ellipsis">数据规格:'+res.data_spec+'</p>'
-										+'<p class="item-ifo ellipsis">筛选日期:'+res.filter_publishtime+'</p></div></a>'
-										+'<div class="price"><strong class="current">¥'+res.order_money+'</strong>'
-										+'</div></div><div class="card-footer">'
-										+'<a class="btn cancle" onclick="deleteOrder('+res.id+',this)">取消订单</a>'
-										+'<a href="javascript:void(0)" onclick="goPay(this)" class="btn pay" filterid="'+res.filter_id+'" token="'+res.token+'" id="'+res.id+'">去支付</a></div></div>'
-						appendList($(oneMHtml));
-					}
-				});
-			}
+
 		</script>
 	</head>
 	<body>
@@ -587,7 +606,7 @@
 						typ=$("ul .active").index();
 						$(".card_lists").empty();
 						$("body").scrollTop(0);
-						queryOrder(index)
+						queryOrder(index);
 					})
 				})
 
@@ -630,48 +649,49 @@
 								nodataHtml+='<div style="color: #888;font-size: .32rem;text-align:center;">暂无数据</div></div>'
 								$(".card_lists").append(nodataHtml);
 							}
-						})
-					setTimeout(function(){
-						//return 的是 暂无数据的情况noDataHtml 
-						if(!result){
-							$(".dropload-down").hide()
-							return
-						}
-						if(hasNextPage){
-							wxflag = $(' .main').dropload({
-						        scrollArea : $(".main"),
-						        loadDownFn : function(me){
-									$.post('/subscribepay/orderListDetails/myOrderPaging', {"pageNum": pageIndex,"type":typ},function(data){
-											//没有数据
-											if(data.res==null||data.res.length==0){
-												noMoreData(me);
-											}else{
-												dataCache=dataCache.concat(data.res);
-												pageIndex++;
-												structureHtml(data.res);
-												if(data.hasNextPage){
-													// 每次数据插入,必须重置
-													me.resetload();
-												}else{
-													noMoreData(me);
-												}
+						
+							setTimeout(function(){
+								//return 的是 暂无数据的情况noDataHtml 
+								if(!result){
+									$(".dropload-down").hide()
+									return
+								}
+								if(hasNextPage){
+									wxflag = $(' .main').dropload({
+								        scrollArea : $(".main"),
+								        loadDownFn : function(me){
+											$.post('/subscribepay/orderListDetails/myOrderPaging', {"pageNum": pageIndex,"type":typ},function(data){
+													//没有数据
+													if(data.res==null||data.res.length==0){
+														noMoreData(me);
+													}else{
+														dataCache=dataCache.concat(data.res);
+														pageIndex++;
+														structureHtml(data.res);
+														if(data.hasNextPage){
+															// 每次数据插入,必须重置
+															me.resetload();
+														}else{
+															noMoreData(me);
+														}
+													}
+												});
+										}
+									});
+								}else{
+									wxflag = $('.main').dropload({
+								        scrollArea : window,
+								        loadDownFn : function(me){
+											if(wxflag == null){
+												wxflag = me;
 											}
-										});
+											noMoreData(me);
+								        }
+								    });
+									noMoreData(wxflag);
 								}
-							});
-						}else{
-							wxflag = $('.main').dropload({
-						        scrollArea : window,
-						        loadDownFn : function(me){
-									if(wxflag == null){
-										wxflag = me;
-									}
-									noMoreData(me);
-						        }
-						    });
-							noMoreData(wxflag);
-						}
-					},500)
+							},500)
+					})
 				}
 				
 				function structureHtml(object){
@@ -817,16 +837,39 @@
 	                        var region_vip=""
 	                        var province_length=0;
 	                        var city_length=0;
-	                        for( i in region_vipArr){
-								if(region_vipArr[i].length==0){
-									province_length++;
-								}else{
-									city_length+=region_vipArr[i].count;
+//	                        for( i in region_vipArr){
+//	                        	var region_vipArr_i =region_vipArr[i];
+//                      		if(region_vipArr_i.count==undefined){
+//                      			province_length++;
+//                      		}else{
+//                      			city_length+=region_vipArr_i.count;
+//                      		}
+//	                        }
+							if(JSON.stringify(region_vipArr) != JSON.stringify({})){
+								for(i in region_vipArr){
+									if(region_vipArr[i].length==0){
+										province_length++;
+									}else{
+										city_length+=region_vipArr[i].length;
+									}
 								}
-	                        }
-	                        region_vip=province_length+"个省级区域、"+city_length+"个地市";
+							}else{
+								region_vip="全国";
+							}
+							if((province_length!=0)&&(city_length!=0)){
+	                      	  region_vip=province_length+"个省级区域、"+city_length+"个地市";
+							}else if((province_length==0)&&(city_length!=0)){
+	                      	  region_vip=city_length+"个地市";
+							}else if((province_length!=0)&&(city_length==0)){
+	                      	  region_vip=province_length+"个省级区域";
+							}
 	                        //行业
-	                        var industry_vip = filter_vip.industry.count;	//数组
+	                        var industry_vip = filter_vip.industry.length;	//数组
+	                        if(industry_vip==0){
+	                        	industry_vip="全";
+	                        }else{
+	                        	industry_vip=industry_vip+"个";
+	                        }
 	                        var cyclecount_vip = filter_vip.cyclecount;	//时长
 	                        var cycleunit_vip = filter_vip.cycleunit;		//单位 1:年 2:月 3:天
 	                        //订阅周期
@@ -871,7 +914,7 @@
 	                        	iconHtml=""
 	                        	iconHtml+='<div class="card-footer">'
 											+'<a  class="btn cancle" onclick="cancelOrder('+id_vip+',this)">取消订单</a>'
-											+'<a href="javascript:void(0)" onclick="goPay(this)" class="btn pay" filterid="'+obj.filter_id+'" token="'+token_vip+'" id="'+id_vip+'">去支付</a>'
+											+'<a href="javascript:void(0)" onclick="goVipPay(this)" class="btn pay" filterid="'+obj.filter_id+'" token="'+token_vip+'" id="'+id_vip+'" orderCode='+orderCode_vip+'>去支付</a>'
 										+'</div>'
 	                        }else if(orderStatus_vip==1){
 	                        	orderStatus_vip="已完成";
@@ -913,7 +956,7 @@
 													+'</div>'
 													+'<div class="media-info">'
 														+'<p class="item-ifo ellipsis">区域:'+ region_vip+'</p>'
-														+'<p class="item-ifo ellipsis">行业:'+ industry_vip +'行业</p>'
+														+'<p class="item-ifo ellipsis">行业:'+ industry_vip +'行业</p>'
 														+'<p class="item-ifo ellipsis">订阅周期:'+effectiveduration_vip+'</p>'
 													+'</div>'
 												+'</a>'

+ 1 - 1
src/web/templates/weixin/email/bind_email.html

@@ -36,6 +36,7 @@
 					$(".email_input").attr("placeholder",{{.T.text_email}})
 					$("#bindBtn").html("确定");
 				}else if(param == "unbind"){
+					sessionStorage.setItem("unbind_"+userId,"ok");
 					promptbox("解绑成功");
 				}
 				
@@ -114,7 +115,6 @@
 										sessionStorage.removeItem("send_myemail_"+{{.T.userId}});
 										window.location.replace("/front/wxMyOrder/setSuccess?name=changeEmail"); 
 									}else{
-										sessionStorage.setItem("setSuccess",userId+"_emailOk"); //我的页面
 										sessionStorage.removeItem("send_myemail_"+{{.T.userId}});
 										window.location.replace("/front/wxMyOrder/setSuccess?name=bindEmail"); 
 									}

+ 0 - 2
src/web/templates/weixin/email/unbind_email.html

@@ -24,8 +24,6 @@
 				
				/* 解绑邮箱 */
				$('.unbind').on('click',() =>{
					$('#unbind_email_dialog').show(4);
					$("#cancel_unbind").on('click',() =>{
						$('#unbind_email_dialog').hide(400);
					});
					$('#sure_unbind').on('click',() =>{
 						$.post("/subscribepay/orderListDetails/emailOperation",{"operation":"unbind","email":{{.T.text_email}}},function(data){
 							if(data.success){
-								//window.location.href="/front/wxMyOrder/setSuccess?name=unbind"; 
-								sessionStorage.removeItem("setSuccess");
 								window.location.replace("/front/wxMyOrder/myEmail?name=unbind");
 							}
 						})
					});
				})
				$('.mask').on('click',()=>{
					$('#choose_email_dialog').hide(400);
					$('#unbind_email_dialog').hide(400);
				})
			})
		</script>
	</body>

+ 51 - 36
src/web/templates/weixin/historypush.html

@@ -67,14 +67,6 @@
 			firstTime = sessionStorage.date;
 			sessionStorage.removeItem("date");
 		}
-		setTimeout(function(){
-			if(firstTime!=""){
-				var _formatDate = formatDate(firstTime/1000,"2");
-				date = formatDate(firstTime/1000,"1");
-				$('#showDatePicker .time_result').html(_formatDate).addClass('current');
-			}
-			$(".tab_left .time").show();
-		},500)
 		//初始化数据
 		function initpage(){
 			$.ajax({
@@ -88,6 +80,40 @@
 					isInTSguide=data.isInTSguide;
 					hasNextPage=data.hasNextPage;
 					firstPage = data.data;
+					firstPage = [];
+					if(!firstPage.length>0 && !data.haskey){
+						if(sessionStorage&&(sessionStorage.keysetindexToHistory=="1"||sessionStorage.keysetindexToHistory=="2"||sessionStorage.keysetindexToHistory=="3")){
+							sessionStorage.removeItem("keysetindexToHistory");
+							if(sessionStorage.keysetindexToHistory=="1"){
+								wx.ready(function () {
+									wx.closeWindow();
+								});
+							}else{
+								setTimeout(function(){
+									wx.closeWindow();
+								},2000);
+							}
+						}else{
+							history.pushState({},"","");
+							if(data.isInTSguide){
+								if(localStorage){
+									localStorage.removeItem("tsGuide_status");
+								}
+								window.location.href='/front/tenderSubscribe/guide';
+							}else{
+								window.location.href='/wxkeyset/keyset/index';
+							}
+							return
+						}
+					}
+					setTimeout(function(){
+						if(firstTime!=""){
+							var _formatDate = formatDate(firstTime/1000,"2");
+							date = formatDate(firstTime/1000,"1");
+							$('#showDatePicker .time_result').html(_formatDate).addClass('current');
+						}
+						$(".tab_left .time").show();
+					},500)
 					isVipSub = data.isVipSub;
 					if(isVipSub){
 						if(!data.haskey){
@@ -107,36 +133,13 @@
 						$(".tab_left .area").show();
 					}else{
 						$(".vip_banner").show();
+						$(".subscribe").css("margin-top","2rem");
 						if(data.isPassCount){
 							$(".open_remind").show();
 						}
 						$(".normal_set").show();
 						$(".tab_left .area").hide();
 					}
-					if(!firstPage.length>0 && !data.haskey){
-						if(sessionStorage&&(sessionStorage.keysetindexToHistory=="1"||sessionStorage.keysetindexToHistory=="2"||sessionStorage.keysetindexToHistory=="3")){
-							sessionStorage.removeItem("keysetindexToHistory");
-							if(sessionStorage.keysetindexToHistory=="1"){
-								wx.ready(function () {
-									wx.closeWindow();
-								});
-							}else{
-								setTimeout(function(){
-									wx.closeWindow();
-								},2000);
-							}
-						}else{
-							history.pushState({},"","");
-							if(data.isInTSguide){
-								if(localStorage){
-									localStorage.removeItem("tsGuide_status");
-								}
-								window.location.href='/front/tenderSubscribe/guide';
-							}else{
-								window.location.href='/wxkeyset/keyset/index';
-							}
-						}
-					}
 				},
 				error: function(xhr, type){
 					hasNoData();
@@ -150,6 +153,7 @@
 			if(firstPage.length==0){
 				//最开始没有数据 
 				hasNoData();
+				$(".findnull_").show();
 				return;
 			}else{
 				$(".showType").css("display","flex");
@@ -262,7 +266,7 @@
 		}
 		function hasNoData(){
 			$(".listcontent").hide();
-			// $(".findnull").css("display","block");
+			$(".findnull_").css("display","block");
 			$(".showType").hide();
 			$(".showType").next().hide();
 			$(".loading_").hide();
@@ -467,9 +471,14 @@
 			newredirect(zbadd,h,eid,"subkey_"+sds);
 		}
 		//
+		function tointroducepage(){
+			setSessionStorage();
+			window.location.href = "/front/vipsubscribe/introducePage";
+		}
+		//
 		function tosetkeyspage(){
 			setSessionStorage();
-			window.location.href="/front/vipsubscribe/toSetPage"
+			window.location.href="/front/vipsubscribe/toSetPage";
 		}
 		//
 		function ajaxFun(time,area){
@@ -582,6 +591,12 @@
 				noMoreData(wxflag);
 			}
 		}
+		//关闭广告
+	  	function closeadv(obj){
+	    	closeAdvert=true;
+	    	$(obj).parent().prev().css("border-bottom","1px solid #e5e6e9");
+			$(obj).parent().remove();
+	  	}
 	</script>
 	<style type="text/css">
 		.findnull{
@@ -741,7 +756,7 @@
 					<img src="/vipsubscribe/image/v.png" alt="v">
 					<h4>剑鱼标讯 VIP订阅</h4>
 				</div>
-				<a href="vip_introduce.html" class="right">了解详情 > </a>
+				<a onclick="tointroducepage()" class="right">了解详情 > </a>
 			</div>
 		</div>
 		<!-- 筛选条件 -->
@@ -752,7 +767,7 @@
 						<span class="time_result jymobile-tab-triangle">时间</span>
 					</p>
 				</div>
-				<div class="area" style="display: block;">
+				<div class="area" style="display: none;">
 					<p class="area_box"  id="showArea">
 						<span class="jymobile-tab-triangle">地区</span>
 					</p>

+ 10 - 14
src/web/templates/weixin/my.html

@@ -91,6 +91,7 @@
 		<script>
 			initShare({{.T.signature}},{{.T.openid}},2,"jy_wxmyorder",{{.T.nickname}},{{.T.avatar}});
 			$(function(){
+				var userId={{.T.userId}}
 				$(".vip").on("click",function(){
 					if({{.T.isVip}}==true){
 						window.location.href="/front/vipsubscribe/toSetPage";	    //vip订阅入口  试用或正式vip
@@ -114,21 +115,16 @@
 		    		window.location.href='/swordfish/about?flag=1&come=1';
 		        })
 				
-				//
-				if(sessionStorage.getItem("setSuccess")=={{.T.userId}}+"_emailOk"){
-					$(".setEmail").html("");
-				}else{
-					$(".setEmail").html("未设置");
-				}
-				/*
-				var param = getParam('name');
-				if(param=="unbind"){
-					$(".setEmail").html("未设置");
-				}
-				*/
+				var nowTimestamp= (new Date()).valueOf();
+				$.post("/subscribepay/orderListDetails/emailOperation?v="+nowTimestamp,{},function(r){
+					if (r.success){
+						$(".setEmail").html("未设置");
+					}else{
+						$(".setEmail").html("");
+					}
+				})
 			});
 			
-			
 			function getParam(pname) {
 			    var params = location.search.substr(1);
 			    var ArrParam = params.split('&');
@@ -163,7 +159,7 @@
 			<img src="/images/wx/email.svg"/>
 			邮箱地址
 			<i class="iconfont fr rightIcon">&#xe642;</i>
-			 {{if .T.isNoEmail}}<span class="setEmail">未设置</span>{{end}}
+			<span class="setEmail"></span>
 		</div>
 		
 		<div class="myorderDiv lineBottom lineTop feedback">

+ 4 - 4
src/web/templates/weixin/vipsubscribe/vip_order_detail.html

@@ -172,8 +172,8 @@ try{
               var provinceNum=0;
               for(var i in filterObj.area) {
                 let citys=filterObj.area[i];
-                if(citys.count>0){
-                  cityNum+=citys.count;
+                if(citys.length>0){
+                  cityNum+=citys.length;
                 }else{
                   provinceNum++;
                 }
@@ -192,7 +192,7 @@ try{
           
           //行业数
           if(filterObj.industry.length!=0){
-            $(".industryNum").text(filterObj.industry.count+"个行业");
+            $(".industryNum").text(filterObj.industry.length+"个行业");
           }else{
             $(".industryNum").text("全行业");
           }
@@ -217,7 +217,7 @@ try{
           $(".button.align").css("display","").on("click",function(){//显示去支付按钮
             if(!canpay)return  
             canpay=false;
-            $DoPost("/front/vipsubscribe/orderToPay",{"orderCode":orderCode},function(r){
+            $DoPost("/subscribepay/vipsubscribe/orderToPay",{"orderCode":orderCode},function(r){
               if(r.success){
                 onBridgeReady(JSON.parse(r.data.res),orderCode);
               }else{