wcj 5 years ago
parent
commit
cf848dbfb5
31 changed files with 857 additions and 134 deletions
  1. 4 4
      src/config.json
  2. 7 0
      src/jfw/front/shorturl.go
  3. 45 0
      src/jfw/front/vipsubscribe.go
  4. 1 1
      src/jfw/modules/subscribepay/src/config.json
  5. 316 33
      src/jfw/modules/subscribepay/src/entity/subscribeVip.go
  6. 5 19
      src/jfw/modules/subscribepay/src/pay/aliPay.go
  7. 11 3
      src/jfw/modules/subscribepay/src/service/vipRenewUpgrade.go
  8. 2 0
      src/jfw/modules/subscribepay/src/service/vipSubscribePay.go
  9. 44 4
      src/jfw/modules/subscribepay/src/service/vipSubscribeTrial.go
  10. 114 0
      src/web/staticres/vipsubscribe/js/share.js
  11. 1 3
      src/web/templates/weixin/dataExport/dataExport_toMyOrder.html
  12. 3 1
      src/web/templates/weixin/email/bind_email.html
  13. 2 1
      src/web/templates/weixin/email/bind_success.html
  14. 2 1
      src/web/templates/weixin/email/unbind_email.html
  15. 1 1
      src/web/templates/weixin/search/mainSearch.html
  16. 13 9
      src/web/templates/weixin/vipsubscribe/additionWord.html
  17. 30 2
      src/web/templates/weixin/vipsubscribe/choose_area_upgrade.html
  18. 24 1
      src/web/templates/weixin/vipsubscribe/choose_industry_upgrade.html
  19. 13 9
      src/web/templates/weixin/vipsubscribe/exclusiveWord.html
  20. 12 8
      src/web/templates/weixin/vipsubscribe/keyWord.html
  21. 29 1
      src/web/templates/weixin/vipsubscribe/modal.html
  22. 32 1
      src/web/templates/weixin/vipsubscribe/renew_pay.html
  23. 4 1
      src/web/templates/weixin/vipsubscribe/trial_info.html
  24. 13 9
      src/web/templates/weixin/vipsubscribe/vip_index.html
  25. 5 0
      src/web/templates/weixin/vipsubscribe/vip_introduce.html
  26. 10 9
      src/web/templates/weixin/vipsubscribe/vip_order_detail.html
  27. 1 1
      src/web/templates/weixin/vipsubscribe/vip_purchase.html
  28. 3 3
      src/web/templates/weixin/vipsubscribe/vip_seniorset.html
  29. 62 6
      src/web/templates/weixin/vipsubscribe/vip_upgrade.html
  30. 3 1
      src/web/templates/weixin/vipsubscribe/vip_viewPage.html
  31. 45 2
      src/web/templates/weixin/wxinfocontent.html

+ 4 - 4
src/config.json

@@ -32,7 +32,7 @@
         }
     },
     "agreement": "http",
-    "webdomain": "http://web-jydev-wcj.jianyu360.cn",
+    "webdomain": "http://web-jydev-ws.jianyu360.cn",
     "redirect": {
         "searchinfo": "/jylab/mainSearch",
         "rssset": "/swordfish/historypush",
@@ -211,8 +211,8 @@
     "advertName": "广告",
     "advertUrl": "/swordfish/about",
     "wxJianyu": {
-        "appid": "wx41a95e706276804d",
-        "appsecret": "1b385c7dd14274c5e0898b9b208580b7",
+        "appid": "wx5b1c6e7cc4dac0e4",
+        "appsecret": "b026103ffebd2291b3edb7a269612112",
         "pay": {
             "mchid": "1418321102",
             "key": "topnet2016topnet2016topnet2016ab",
@@ -276,7 +276,7 @@
         "shareTimesUpperLimitR": 4000,
         "shareTimesUpperLimitIrr": 1000
     },
-    "cookiedomain": "web-jydev-ws.jianyu360.cn",
+    "cookiedomain": "web-jydev-xzh.jianyu360.cn",
     "pcHelper": {
         "subscribeTokenTimeout": 15,
         "version": "V2.5.1"

+ 7 - 0
src/jfw/front/shorturl.go

@@ -46,6 +46,7 @@ func (s *Short) Article(stype, id string) error {
 		aboutUrl += "?source=" + source
 	}
 	bm := false
+	isVip := false
 	if !Map_stype[stype] {
 		s.Redirect("/not/nottype", 302)
 		return nil
@@ -137,6 +138,11 @@ func (s *Short) Article(stype, id string) error {
 		var obj map[string]interface{}
 		obj = wxvisitD(sid, userId, myopenid)
 		if len(obj) > 0 {
+			//判断用户是否是vip
+			res, _ := public.MQFW.FindById("user", userId, nil)
+			if util.IntAll((*res)["i_vip_status"]) == 1 || util.IntAll((*res)["i_vip_status"]) == 2 {
+				isVip = true
+			}
 			//获取打赏文案
 			s.T["rewardText"], s.T["advertText"] = getRewardText()
 			//纠错随机回复
@@ -147,6 +153,7 @@ func (s *Short) Article(stype, id string) error {
 			s.T["advertName"] = config.Sysconfig["advertName"]
 			s.T["advertUrl"] = config.Sysconfig["advertUrl"]
 			obj["industry"] = industry
+			obj["isVip"] = isVip
 			if ssOpenid != nil {
 				obj["ucbsId"] = util.EncodeArticleId2ByCheck("ucbs#" + ssOpenid.(string) + "#" + id)
 			}

+ 45 - 0
src/jfw/front/vipsubscribe.go

@@ -2,6 +2,7 @@ package front
 
 import (
 	"jfw/wx"
+	"qfw/util"
 
 	"github.com/go-xweb/xweb"
 )
@@ -49,36 +50,73 @@ func init() {
 
 //推送设置
 func (s *Subscribepay) ToVIPViewPage() {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	s.T["openid"] = se.EncodeString(myopenid)
 	s.Render("/weixin/vipsubscribe/vip_viewPage.html")
 }
 
 //附加词|排除词
 func (s *Subscribepay) ToSetOtherKwsPage(page string) {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	s.T["openid"] = se.EncodeString(myopenid)
 	s.Render("/weixin/vipsubscribe/" + page + "Word.html")
 }
 
 //推送设置
 func (s *Subscribepay) ToSetPushSetPage() {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	s.T["openid"] = se.EncodeString(myopenid)
 	s.Render("/weixin/vipsubscribe/vip_seniorset.html")
 }
 
 //信息类型
 func (s *Subscribepay) ToSetInfoTypePage() {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	s.T["openid"] = se.EncodeString(myopenid)
 	s.Render("/weixin/vipsubscribe/messageType.html")
 }
 
 //订阅设置
 func (s *Subscribepay) ToSetPage() {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	s.T["openid"] = se.EncodeString(myopenid)
 	s.Render("/weixin/vipsubscribe/vip_index.html")
 }
 
 //vip订阅介绍页
 func (s *Subscribepay) Introduce() {
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
 	s.Render("/weixin/vipsubscribe/vip_introduce.html")
 }
 
 //试用完善信息
 func (s *Subscribepay) TrialInfo() {
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
 	s.Render("/weixin/vipsubscribe/trial_info.html", &s.T)
 }
 
@@ -115,6 +153,13 @@ func (s *Subscribepay) ToOrderDetailPage() {
 
 //订阅收费设置关键词
 func (s *Subscribepay) ToSetKeyWordPage() {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	s.T["openid"] = se.EncodeString(myopenid)
 	s.Render("/weixin/vipsubscribe/keyWord.html")
 }
 

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

@@ -30,7 +30,7 @@
         "passWord": "Topnet123"
     },
 	"appPushServiceRpc": "127.0.0.1:5566",
-    "webdomain": "http://web-jydev-wcj.jianyu360.cn",
+    "webdomain": "http://web-jydev-ws.jianyu360.cn",
     "mail": [
         {
             "addr": "smtp.exmail.qq.com",

+ 316 - 33
src/jfw/modules/subscribepay/src/entity/subscribeVip.go

@@ -23,17 +23,9 @@ type VipSimpleMsg struct {
 	Industry   []string                `json:"industry"`
 	Cyclecount int                     `json:"cyclecount"`
 	Cycleunit  int                     `json:"cycleunit"`
-	PaySource  string                  `json:"paysource"`
-}
-
-type VipUpgradeMsg struct {
-	Id            string                  `json:"_id"`
-	Area          *map[string]interface{} `json:"area"`
-	Industry      []string                `json:"industry"`
-	PaySource     string                  `json:"paysource"`
-	ProCyclecount int                     `json:"procyclecount"`
-	ProCycleunit  int                     `json:"procycleunit"`
-	Effect        string                  `json:"effect"`
+	Paysource  string                  `json:"paysource"`
+	Endtime    string                  `json:"endtime"`
+	Effect     string                  `json:"effect"`
 }
 
 //支付完成回调
@@ -54,33 +46,324 @@ func (this *vipSubscribeStruct) PayCallBack(param *CallBackParam) (ok bool) {
 			if err := json.Unmarshal([]byte(filterStr), &vmsg); err != nil {
 				log.Printf("%s vipSubscribeStruct PayCallBack Unmarshal 出错 [%s]\n", userid, filterStr)
 			}
-			startTime := time.Now()
-			var endTime time.Time
-			if vmsg.Cycleunit == 1 { //年
-				endTime = startTime.AddDate(vmsg.Cyclecount, 0, 0)
-			} else if vmsg.Cycleunit == 2 { //月
-				endTime = startTime.AddDate(0, vmsg.Cyclecount, 0)
+			if vmsg.Paysource == "open" {
+				startTime := time.Now()
+				var endTime time.Time
+				if vmsg.Cycleunit == 1 { //年
+					endTime = startTime.AddDate(vmsg.Cyclecount, 0, 0)
+				} else if vmsg.Cycleunit == 2 { //月
+					endTime = startTime.AddDate(0, vmsg.Cyclecount, 0)
+				}
+				update := util.Mysql.Update("dataexport_order", map[string]interface{}{
+					"order_status": 0,
+					"out_trade_no": param.OutTradeno,
+					"order_money":  param.TotalFee,
+					//"user_openid":  openid,
+				}, map[string]interface{}{
+					"pay_money":    param.CashFee,
+					"pay_time":     pay_time,
+					"order_status": 1,
+					"vip_endtime":  qutil.FormatDate(&endTime, qutil.Date_Full_Layout),
+				})
+				if update {
+					if JyVipSubStruct.StartSubVip(userid, vmsg.Area, vmsg.Industry, startTime, endTime, false, vmsg.Cyclecount, vmsg.Cycleunit) {
+						ok = true
+					}
+				}
+			} else if vmsg.Paysource == "Renew" {
+				endtime := qutil.Int64All(vmsg.Endtime)
+				nowTime := time.Now().Unix()
+				if nowTime > endtime {
+					endtime = nowTime
+				}
+				endtimes := time.Unix(endtime, 0)
+				var endTime time.Time
+				if vmsg.Cycleunit == 1 { //年
+					endTime = endtimes.AddDate(vmsg.Cyclecount, 0, 0)
+				} else if vmsg.Cycleunit == 2 { //月
+					endTime = endtimes.AddDate(0, vmsg.Cyclecount, 0)
+				}
+				update := false
+				if nowTime > endtime {
+					startTime := time.Now()
+					update = util.Mysql.Update("dataexport_order", map[string]interface{}{
+						"order_status": 0,
+						"out_trade_no": param.OutTradeno,
+						"order_money":  param.TotalFee,
+						//"user_openid":  openid,
+					}, map[string]interface{}{
+						"pay_money":     param.CashFee,
+						"pay_time":      pay_time,
+						"order_status":  1,
+						"vip_starttime": qutil.FormatDate(&startTime, qutil.Date_Full_Layout),
+						"vip_endtime":   qutil.FormatDate(&endTime, qutil.Date_Full_Layout),
+					})
+				} else {
+					data, oks := util.MQFW.FindById("user", userid, nil)
+					var starttime time.Time
+					if oks && len(*data) > 0 && *data != nil {
+						start := qutil.Int64All((*data)["l_vip_starttime"])
+						starttime = time.Unix(start, 0)
+					}
+					update = util.Mysql.Update("dataexport_order", map[string]interface{}{
+						"order_status": 0,
+						"out_trade_no": param.OutTradeno,
+						"order_money":  param.TotalFee,
+						//"user_openid":  openid,
+					}, map[string]interface{}{
+						"pay_money":     param.CashFee,
+						"pay_time":      pay_time,
+						"order_status":  1,
+						"vip_starttime": qutil.FormatDate(&starttime, qutil.Date_Full_Layout),
+						"vip_endtime":   qutil.FormatDate(&endTime, qutil.Date_Full_Layout),
+					})
+				}
+				if update {
+					area := *vmsg.Area
+					industry := vmsg.Industry
+					buyset := SubvipBuySet{}
+					if len(area) > 0 {
+						pCount := 0
+						citys := map[string]interface{}{}
+						for k, v := range area {
+							tmp := v.([]interface{})
+							if len(tmp) == 0 { //省份
+								pCount++
+							} else { //城市
+								citys[k] = len(tmp)
+							}
+						}
+						buyset.Citys = citys      //城市
+						buyset.AreaCount = pCount //地区
+					} else {
+						buyset.BuyerclassCount = -1 //全国
+					}
+					//行业数量
+					buyset.BuyerclassCount = qutil.If(len(industry) > 0, len(industry), -1).(int)
+					if nowTime > endtime {
+						if util.MQFW.UpdateById("user", userid,
+							bson.M{"$set": bson.M{
+								"o_vipjy.o_area":       area,            //试用设置地区
+								"o_vipjy.a_buyerclass": industry,        //试用设置行业
+								"o_vipjy.o_buyset":     buyset,          //购买内容 城市、省份、行业数量
+								"o_vipjy.i_cycleunit":  vmsg.Cycleunit,  //购买单位
+								"o_vipjy.i_cyclecount": vmsg.Cyclecount, //购买时长
+								"l_vip_starttime":      nowTime,         //开始时间
+								"l_vip_endtime":        endTime.Unix(),  //结束时间
+							}}) {
+							ok = true
+						}
+					} else {
+						if util.MQFW.UpdateById("user", userid,
+							bson.M{"$set": bson.M{
+								"o_vipjy.o_area":       area,            //试用设置地区
+								"o_vipjy.a_buyerclass": industry,        //试用设置行业
+								"o_vipjy.o_buyset":     buyset,          //购买内容 城市、省份、行业数量
+								"o_vipjy.i_cycleunit":  vmsg.Cycleunit,  //购买单位
+								"o_vipjy.i_cyclecount": vmsg.Cyclecount, //购买时长
+								//								"l_vip_starttime":      startTime.Unix(),        //开始时间
+								"l_vip_endtime": endTime.Unix(), //结束时间
+							}}) {
+							ok = true
+						}
+					}
+				}
+			} else {
+				effect := vmsg.Effect
+				endtime := qutil.Int64All(vmsg.Endtime)
+				endtimes := time.Unix(endtime, 0)
+				var endTime time.Time
+				if effect == "now" {
+					if vmsg.Cycleunit >= 1 {
+						if vmsg.Cycleunit == 1 { //年
+							endTime = endtimes.AddDate(vmsg.Cyclecount, 0, 0)
+						} else if vmsg.Cycleunit == 2 { //月
+							endTime = endtimes.AddDate(0, vmsg.Cyclecount, 0)
+						}
+						data, oks := util.MQFW.FindById("user", userid, nil)
+						var starttime time.Time
+						if oks && len(*data) > 0 && *data != nil {
+							start := qutil.Int64All((*data)["l_vip_starttime"])
+							starttime = time.Unix(start, 0)
+						}
+						update := util.Mysql.Update("dataexport_order", map[string]interface{}{
+							"order_status": 0,
+							"out_trade_no": param.OutTradeno,
+							"order_money":  param.TotalFee,
+							//"user_openid":  openid,
+						}, map[string]interface{}{
+							"pay_money":     param.CashFee,
+							"pay_time":      pay_time,
+							"order_status":  1,
+							"vip_starttime": qutil.FormatDate(&starttime, qutil.Date_Full_Layout),
+							"vip_endtime":   qutil.FormatDate(&endTime, qutil.Date_Full_Layout),
+						})
+						if update {
+							area := *vmsg.Area
+							industry := vmsg.Industry
+							buyset := SubvipBuySet{}
+							if len(area) > 0 {
+								pCount := 0
+								citys := map[string]interface{}{}
+								for k, v := range area {
+									tmp := v.([]interface{})
+									if len(tmp) == 0 { //省份
+										pCount++
+									} else { //城市
+										citys[k] = len(tmp)
+									}
+								}
+								buyset.Citys = citys      //城市
+								buyset.AreaCount = pCount //地区
+							} else {
+								buyset.BuyerclassCount = -1 //全国
+							}
+							//行业数量
+							buyset.BuyerclassCount = qutil.If(len(industry) > 0, len(industry), -1).(int)
+							if util.MQFW.UpdateById("user", userid,
+								bson.M{"$set": bson.M{
+									"o_vipjy.o_area":       area,            //试用设置地区
+									"o_vipjy.a_buyerclass": industry,        //试用设置行业
+									"o_vipjy.o_buyset":     buyset,          //购买内容 城市、省份、行业数量
+									"o_vipjy.i_cycleunit":  vmsg.Cycleunit,  //购买单位
+									"o_vipjy.i_cyclecount": vmsg.Cyclecount, //购买时长
+									//								"l_vip_starttime":      startTime.Unix(),        //开始时间
+									"l_vip_endtime": endTime.Unix(), //结束时间
+								}}) {
+								ok = true
+							}
+						}
+					} else {
+						data, oks := util.MQFW.FindById("user", userid, nil)
+						var starttime time.Time
+						if oks && len(*data) > 0 && *data != nil {
+							start := qutil.Int64All((*data)["l_vip_starttime"])
+							starttime = time.Unix(start, 0)
+						}
+						update := util.Mysql.Update("dataexport_order", map[string]interface{}{
+							"order_status": 0,
+							"out_trade_no": param.OutTradeno,
+							"order_money":  param.TotalFee,
+							//"user_openid":  openid,
+						}, map[string]interface{}{
+							"pay_money":     param.CashFee,
+							"pay_time":      pay_time,
+							"order_status":  1,
+							"vip_starttime": qutil.FormatDate(&starttime, qutil.Date_Full_Layout),
+							"vip_endtime":   qutil.FormatDate(&endTime, qutil.Date_Full_Layout),
+						})
+						if update {
+							area := *vmsg.Area
+							industry := vmsg.Industry
+							buyset := SubvipBuySet{}
+							if len(area) > 0 {
+								pCount := 0
+								citys := map[string]interface{}{}
+								for k, v := range area {
+									tmp := v.([]interface{})
+									if len(tmp) == 0 { //省份
+										pCount++
+									} else { //城市
+										citys[k] = len(tmp)
+									}
+								}
+								buyset.Citys = citys      //城市
+								buyset.AreaCount = pCount //地区
+							} else {
+								buyset.BuyerclassCount = -1 //全国
+							}
+							//行业数量
+							buyset.BuyerclassCount = qutil.If(len(industry) > 0, len(industry), -1).(int)
+							if util.MQFW.UpdateById("user", userid,
+								bson.M{"$set": bson.M{
+									"o_vipjy.o_area":       area,     //试用设置地区
+									"o_vipjy.a_buyerclass": industry, //试用设置行业
+									"o_vipjy.o_buyset":     buyset,   //购买内容 城市、省份、行业数量
+								}}) {
+								ok = true
+							}
+						}
+					}
+				} else {
+					if vmsg.Cycleunit >= 1 {
+						if vmsg.Cycleunit == 1 { //年
+							endTime = endtimes.AddDate(vmsg.Cyclecount, 0, 0)
+						} else if vmsg.Cycleunit == 2 { //月
+							endTime = endtimes.AddDate(0, vmsg.Cyclecount, 0)
+						}
+						data, oks := util.MQFW.FindById("user", userid, nil)
+						var starttime time.Time
+						if oks && len(*data) > 0 && *data != nil {
+							start := qutil.Int64All((*data)["l_vip_starttime"])
+							starttime = time.Unix(start, 0)
+						}
+						update := util.Mysql.Update("dataexport_order", map[string]interface{}{
+							"order_status": 0,
+							"out_trade_no": param.OutTradeno,
+							"order_money":  param.TotalFee,
+							//"user_openid":  openid,
+						}, map[string]interface{}{
+							"pay_money":     param.CashFee,
+							"pay_time":      pay_time,
+							"order_status":  1,
+							"vip_starttime": qutil.FormatDate(&starttime, qutil.Date_Full_Layout),
+							"vip_endtime":   qutil.FormatDate(&endTime, qutil.Date_Full_Layout),
+						})
+						if update {
+							if util.MQFW.UpdateById("user", userid,
+								bson.M{"$set": bson.M{
+									"o_vipjy.i_cycleunit":  vmsg.Cycleunit,  //购买单位
+									"o_vipjy.i_cyclecount": vmsg.Cyclecount, //购买时长
+									//								"l_vip_starttime":      startTime.Unix(),        //开始时间
+									"l_vip_endtime": endTime.Unix(), //结束时间
+								}}) {
+								ok = true
+							}
+						}
+					} else {
+						data, oks := util.MQFW.FindById("user", userid, nil)
+						var starttime time.Time
+						if oks && len(*data) > 0 && *data != nil {
+							start := qutil.Int64All((*data)["l_vip_starttime"])
+							starttime = time.Unix(start, 0)
+						}
+						update := util.Mysql.Update("dataexport_order", map[string]interface{}{
+							"order_status": 0,
+							"out_trade_no": param.OutTradeno,
+							"order_money":  param.TotalFee,
+							//"user_openid":  openid,
+						}, map[string]interface{}{
+							"pay_money":     param.CashFee,
+							"pay_time":      pay_time,
+							"order_status":  1,
+							"vip_starttime": qutil.FormatDate(&starttime, qutil.Date_Full_Layout),
+							"vip_endtime":   qutil.FormatDate(&endTime, qutil.Date_Full_Layout),
+						})
+						if update {
+							ok = true
+						}
+					}
+					area := *vmsg.Area
+					industry := vmsg.Industry
+					validtime := qutil.Int64All(effect)
+					if util.MQFW.Save("vip_upgrade",
+						bson.M{
+							"s_userid":     userid,            //试用设置地区
+							"a_buyerclass": industry,          //试用设置行业
+							"o_area":       area,              //购买内容 城市、省份、行业数量
+							"l_validtime":  validtime,         //生效时间
+							"l_createtime": time.Now().Unix(), //入库时间
+							"i_isvalid":    0,                 //是否已经生效 0-未生效
+						}) == "" {
+						ok = true
+					}
+				}
 			}
-			update := util.Mysql.Update("dataexport_order", map[string]interface{}{
-				"order_status": 0,
-				"out_trade_no": param.OutTradeno,
-				"order_money":  param.TotalFee,
-				//"user_openid":  openid,
-			}, map[string]interface{}{
-				"pay_money":     param.CashFee,
-				"pay_time":      pay_time,
-				"order_status":  1,
-				"vip_starttime": qutil.FormatDate(&startTime, qutil.Date_Full_Layout),
-				"vip_endtime":   qutil.FormatDate(&endTime, qutil.Date_Full_Layout),
-			})
-			if update {
+			if ok {
 				//支付成功后 其他未支付vip订阅订单 变为已取消
 				if PayCancel(userid) {
 					log.Println(userid, "更改其余未支付订单失效")
 				}
-				if JyVipSubStruct.StartSubVip(userid, vmsg.Area, vmsg.Industry, startTime, endTime, false, vmsg.Cyclecount, vmsg.Cycleunit) {
-					ok = true
-				}
 			}
 		} else {
 			ok = true

+ 5 - 19
src/jfw/modules/subscribepay/src/pay/aliPay.go

@@ -219,27 +219,13 @@ func (a *aliPayStruct) CloseOrder(tradeno string) bool {
 	}
 	valus := *qutil.ObjToMap((*resMap)["alipay_trade_close_response"])
 	log.Printf("%s 订单关闭相应参数  %+v", tradeno, valus)
-	if valus["msg"] == "Success" {
-		return true
-	} else if valus["sub_code"] == "ACQ.TRADE_NOT_EXIST" { //用户未扫码(调用撤销订单)
-		return true
-		//return Alipay.cancelOrder(tradeno)
+	if valus["sub_code"] == "ACQ.TRADE_STATUS_ERROR" || valus["sub_msg"] == "REASON_ILLEGAL_STATUS" {
+		return false
 	}
-	/*else if valus["sub_code"] == "ACQ.INVALID_PARAMETER" || valus["sub_code"] == "ACQ.TRADE_STATUS_ERROR" || valus["sub_code"] == "ACQ.SYSTEM_ERROR" { //参数异常  交易状态不合法  系统异常
+	/*if valus["msg"] == "Success" {
+		return true
+	} else if valus["sub_code"] == "ACQ.INVALID_PARAMETER" || valus["sub_code"] == "ACQ.TRADE_STATUS_ERROR" || valus["sub_code"] == "ACQ.SYSTEM_ERROR" { //参数异常  交易状态不合法  系统异常
 		return false
 	}*/
-	return false
-}
-
-//撤销订单
-func (a *aliPayStruct) cancelOrder(tradeno string) bool {
-	cancel := struct {
-		OutTradeNo string `json:"out_trade_no"`
-	}{
-		OutTradeNo: tradeno,
-	}
-	bizbyte, _ := json.Marshal(cancel)
-	resMap, err := Alipay.DoRequest(string(bizbyte), tradeno, Method_Tpye_Cancel)
-	log.Println(resMap, err)
 	return true
 }

+ 11 - 3
src/jfw/modules/subscribepay/src/service/vipRenewUpgrade.go

@@ -77,7 +77,6 @@ func (this *RenewUpgrade) GetRenewUpgradePrice() {
 		vipjy := (*data)["o_vipjy"].(map[string]interface{})
 		area := vipjy["o_area"]
 		buyerclass := vipjy["a_buyerclass"]
-
 		//
 		areaArr := qutil.ObjToMap(area)
 		buyerclassArr := qutil.ObjArrToStringArr(buyerclass.([]interface{}))
@@ -129,6 +128,8 @@ func (this *RenewUpgrade) RenewUpgradeCreateOrder() {
 	pay_source := this.GetString("pay_source")
 	userId := qutil.ObjToString(this.GetSession("userId"))
 	openId := qutil.ObjToString(this.GetSession("s_m_openid"))
+	endtime := this.GetString("endtime")
+	log.Println("endtime", endtime)
 	r := func() *entity.FuncResult {
 		now := time.Now()
 		//数据校验
@@ -149,6 +150,9 @@ func (this *RenewUpgrade) RenewUpgradeCreateOrder() {
 				if err != nil {
 					return &entity.FuncResult{false, err, nil}
 				}
+			} else {
+				pro_count = 0
+				pro_unit = 0
 			}
 		} else {
 			date_count, date_unit, err = checkReqDates(date)
@@ -195,6 +199,7 @@ func (this *RenewUpgrade) RenewUpgradeCreateOrder() {
 			totalfee = entity.JyVipSubStruct.GetSubVipPrice(area, industry, date_count, date_unit)
 		}
 		log.Println("price", totalfee)
+		totalfee = 1
 
 		//创建订单
 		tradeno, prepayid, payStr := "", "", ""
@@ -230,13 +235,14 @@ func (this *RenewUpgrade) RenewUpgradeCreateOrder() {
 		}
 		var filter interface{}
 		if effect != "" {
-			filter = entity.VipUpgradeMsg{
+			filter = entity.VipSimpleMsg{
 				mog_id,
 				area,
 				industry,
-				pay_source,
 				pro_count,
 				pro_unit,
+				pay_source,
+				endtime,
 				effect,
 			}
 		} else {
@@ -247,6 +253,8 @@ func (this *RenewUpgrade) RenewUpgradeCreateOrder() {
 				date_count,
 				date_unit,
 				pay_source,
+				endtime,
+				"",
 			}
 		}
 

+ 2 - 0
src/jfw/modules/subscribepay/src/service/vipSubscribePay.go

@@ -105,6 +105,8 @@ func (this *SubVipPayOrder) CreateOrder() {
 			date_count,
 			date_unit,
 			"open",
+			"",
+			"",
 		}
 		filterStr, _ := json.Marshal(filter)
 		ordercode := pay.GetOrderCode(userId)

+ 44 - 4
src/jfw/modules/subscribepay/src/service/vipSubscribeTrial.go

@@ -24,6 +24,8 @@ import (
 //试用用户
 type TrialOrder struct {
 	*xweb.Action
+	showTrailTip        xweb.Mapper `xweb:"/trial/showTrailTip"`        //首页试用弹框是否展示
+	closeTrailTip       xweb.Mapper `xweb:"/trial/closeTrailTip"`       //关闭首页试用弹框
 	getUserPhone        xweb.Mapper `xweb:"/trial/GetUserPhone"`        //获取用户手机号码
 	captcha             xweb.Mapper `xweb:"/trial/captcha"`             //图形验证码
 	sendPhoneCaptcha    xweb.Mapper `xweb:"/trial/sendPhoneCaptcha"`    //发送手机验证码
@@ -36,6 +38,35 @@ var (
 	phoneReg = regexp.MustCompile("^[1][3-9][0-9]{9}$")
 	nameReg  = regexp.MustCompile("^[\u4E00-\u9FA5A-Za-z\\s]+(·[\u4E00-\u9FA5A-Za-z]+)*$")
 )
+//首页试用弹框是否展示
+func (t *TrialOrder) ShowTrailTip() {
+	userId := qutil.ObjToString(t.GetSession("userId"))
+	showTrailTip := true
+	m, _ := util.MQFW.FindById("user", userId, `{"o_vipjy":1}`)
+	if m != nil && len(*m) > 0 {
+		if (*qutil.ObjToMap((*m)["o_vipjy"]))["i_trial"] != nil {
+			showTrailTip = false
+		}
+	}
+	t.ServeJson(map[string]interface{}{
+		"showTrailTip": showTrailTip,
+	})
+}
+
+//关闭首页试用弹框
+func (t *TrialOrder) CloseTrailTip() {
+	userId := qutil.ObjToString(t.GetSession("userId"))
+	ok := false
+	if util.MQFW.UpdateById("user", userId,
+		bson.M{"$set": bson.M{
+			"o_vipjy.i_trial": 2,}}) {
+		ok = true
+	} //已激活试用
+	t.ServeJson(map[string]interface{}{
+		"success": ok,
+	})
+}
+
 //获取之前用户信息
 func (t *TrialOrder) GetUserPhone() {
 	var phoneNum string
@@ -152,9 +183,18 @@ func (t *TrialOrder) SubmitApply() {
 			return false, "稍后重试"
 		}
 		go func() {
-			//更新user表可试用
-			if !util.MQFW.UpdateById("user", userId, bson.M{"$set": bson.M{"o_vipjy.i_trial": 1}}) {
-				log.Println("更新使用状态出错", userId)
+			//更新user表可试用(未试用状态)
+			res, ok := util.MQFW.FindById("user", userId, `{"o_vipjy.i_trial":1}`)
+			if res != nil && len(*res) > 0 && ok {
+				o_vipjy := qutil.ObjToMap((*res)["o_vipjy"])
+				i_trial, ok := (*o_vipjy)["i_trial"]
+				if !ok || qutil.IntAll(i_trial) == 2 { //2为不提示状态
+					if !util.MQFW.UpdateById("user", userId, bson.M{"$set": bson.M{"o_vipjy.i_trial": 1}}) {
+						log.Println("更新使用状态出错", userId)
+					}
+				} else {
+					log.Printf("%s: 状态%d不能修改为试用状态\n", userId, i_trial)
+				}
 			}
 		}()
 		clearTrialSession(t.Session())
@@ -270,7 +310,7 @@ func (this *TrialOrder) TrialPay() {
 		if orderid == -1 {
 			return &entity.FuncResult{false, errors.New("数据保存异常"), nil}
 		}
-		if !entity.JyVipSubStruct.StartSubVip(userId, area, industry, now, endTime,true,date_count,date_unit) { //设置开始试用
+		if !entity.JyVipSubStruct.StartSubVip(userId, area, industry, now, endTime, true, date_count, date_unit) { //设置开始试用
 			return &entity.FuncResult{false, errors.New("开通试用异常"), nil}
 		}
 		return &entity.FuncResult{true, nil, map[string]interface{}{"code": ordercode}}

+ 114 - 0
src/web/staticres/vipsubscribe/js/share.js

@@ -0,0 +1,114 @@
+function initShare(signature){
+	var myloc = window.location.host;
+	var ors = "";
+	if("https:"==document.location.protocol){
+		ors = "s"
+	}
+	myloc="http"+ors+"://"+myloc;
+	if(typeof(signature) != "undefined" && signature != null && signature.length == 4){
+		wx.config({
+		    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
+		    appId: signature[0], // 必填,公众号的唯一标识
+		    timestamp:signature[1], // 必填,生成签名的时间戳
+		    nonceStr: signature[2], // 必填,生成签名的随机串
+		    signature: signature[3],// 必填,签名,见附录1
+		    jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage','onMenuShareQQ','onMenuShareQZone','closeWindow'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
+		});
+		var randShareTitle = getShareText();
+
+		var link = myloc+"/swordfish/about";
+
+		var otherLink = link;
+		var desc = "全国招标信息免费看,不遮挡";
+		var otherDesc = desc;
+		var url = "/wxswordfish/images/small_log_new.jpg";
+		var encryptid = "";
+		var subhref = window.location.href;
+		
+		wx.ready(function () {
+			var triggerFlag = false;
+	        wx.onMenuShareTimeline({
+			    title: randShareTitle, // 分享标题
+			    link: otherLink, // 分享链接
+			    imgUrl: myloc+'/wxswordfish/images/small_log_new.jpg', // 分享图标
+				trigger: function (res) {
+					try{
+						triggerFlag = true;
+						afterShareTimeline("trigger");
+					}catch(e){}
+                },
+			    success: function () {
+					if(!triggerFlag){
+						try{
+							afterShareTimeline("success");
+						}catch(e){}
+					}
+			       //alert('分享成功');
+			    },
+			    cancel: function () {
+					if(!triggerFlag){
+						try{
+							afterShareTimeline("cancel");
+						}catch(e){}
+					}
+			       //alert('分享失败,或用户取消了');
+			    }
+			});
+			wx.onMenuShareAppMessage({
+			    title: randShareTitle, // 分享标题
+			    desc: desc, // 分享描述
+			    link: link, // 分享链接
+			    imgUrl: myloc+url, // 分享图标
+			    type: 'link', // 分享类型,music、video或link,不填默认为link'
+			    dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
+			    success: function () {
+			        //alert('分享成功');
+			    },
+			    cancel: function () {
+					//alert('分享失败,或用户取消了');
+			    }
+			});
+			wx.onMenuShareQQ({
+				title: randShareTitle, // 分享标题
+				desc: otherDesc, // 分享描述
+				link: otherLink, // 分享链接
+				imgUrl: myloc+url, // 分享图标
+				success: function () {
+					// 用户确认分享后执行的回调函数
+				},
+				cancel: function () {
+					// 用户取消分享后执行的回调函数
+				}
+			});
+			wx.onMenuShareQZone({
+			    title: randShareTitle, // 分享标题
+				desc: otherDesc, // 分享描述
+				link: otherLink, // 分享链接
+				imgUrl: myloc+url, // 分享图标
+				success: function () {
+					// 用户确认分享后执行的回调函数
+				},
+				cancel: function () {
+					// 用户取消分享后执行的回调函数
+				}
+			});
+	    });
+		wx.error(function(res){
+		    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
+			//alert("error auth");
+		});
+	}
+}
+//随机获取分享文案
+var ShareText = [
+	"我和投标伙伴都在用剑鱼标讯找项目,推荐你也试试",
+	"我用剑鱼标讯免费查到超多招标信息,推荐你也试试",
+	"我收到了剑鱼标讯免费推送的招标信息,推荐你也试试",
+	"发现了一个投标神器,推荐你也试试"
+]
+function getShareText(){
+	var Range = ShareText.length-1;
+	var Rand = Math.random();  
+	var num = Math.round(Rand * Range);
+	return ShareText[num];
+}

+ 1 - 3
src/web/templates/weixin/dataExport/dataExport_toMyOrder.html

@@ -460,7 +460,7 @@
 				sessionStorage.orderTabActive=$("ul .active").index();
 				var orderCode = $(e).parent(".card-footer").prev(".card-content").find("a").attr("eid");
 				if (pattern==1){
-					window.location.href="/front/vipsubscribe/renewPayPage?orderCode="+orderCode;   
+					window.location.href="/weixin/pay/renewPayPage?orderCode="+orderCode;   
 				}else if (pattern==2){
 					window.location.href="/weixin/pay/vipsubscribe_new?orderCode="+orderCode;
 				}
@@ -493,8 +493,6 @@
 			                                                text: '确定',
 			                                                btnClass: 'btn-primary-2',
 		                                                action: function() {
-	                                                    		console.log(data)
-	                                                    		console.log(data.res.product_type);
 			                                                    if(parent.children("div").length==0){
 			                                                    	nodataHtml=""
 																	nodataHtml+='<div style="text-align:center;">';

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

@@ -129,5 +129,7 @@
 				setTimeout(() =>{
 					$('.toast').hide(400);
 				},1500)
-			}
		</script>
	</body>
+			}
		</script>
+		
+	{{include "/common/baiducc.html"}}
	</body>
 </html>

+ 2 - 1
src/web/templates/weixin/email/bind_success.html

@@ -15,5 +15,6 @@
 				let param = getParam('name');//获取url传来的参数 判断显示成功的字幕
				console.log(param)
				var time = 6;
				function countDown(){
					if(time == 0){
						$('.time').html('');
						window.location.replace('/front/wxMyOrder/myEmail');
					}else{
						$('.time').html('(' + time + ')');
						time--;
						setTimeout(()=>{
							countDown()
						},1000)
					}
				}
				if(param == 'bindEmail'){
					$('.success>p').html('邮箱绑定成功')
					countDown()
				}else if(param == 'bindPhoe'){
					$('.success>p').html('手机号绑定成功')
					countDown()
				}else if(param == 'changeEmail'){
					$('.success>p').html('邮箱更换成功')
					countDown()
				}else if(param == 'choosePhone'){
					$('.success>p').html('手机号更换成功')
					countDown()
				}else if(param =="unbind"){
 					$('.success>p').html('邮箱解绑成功')
 					countDown()
-				}
				/* 返回 */
				$('.back').on('click',() =>{
					window.location.replace('/front/wxMyOrder/myEmail');
				})
			})
		</script>
	</body>
+				}
				/* 返回 */
				$('.back').on('click',() =>{
					window.location.replace('/front/wxMyOrder/myEmail');
				})
			})
		</script>
+	{{include "/common/baiducc.html"}}
	</body>
 </html>

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

@@ -26,5 +26,6 @@
 							if(data.success){
 								window.location.replace("/front/wxMyOrder/myEmail?name=unbind");
 							}
-						})
					});
				})
				$('.mask').on('click',()=>{
					$('#choose_email_dialog').hide(400);
					$('#unbind_email_dialog').hide(400);
				})
			})
		</script>
	</body>
+						})
					});
				})
				$('.mask').on('click',()=>{
					$('#choose_email_dialog').hide(400);
					$('#unbind_email_dialog').hide(400);
				})
			})
		</script>
+	{{include "/common/baiducc.html"}}
	</body>
 </html>

+ 1 - 1
src/web/templates/weixin/search/mainSearch.html

@@ -34,7 +34,7 @@
 	var pageSize = {{.T.pageSize}};
 	var encode = {{ConEncode "/jylab/mainSearch/"}};
 	var searchWord = {{.T.searchWord}};
-	initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}}),{{.T.keys}},{{.T.i_applystatus}};
+	initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}},{{.T.keys}},{{.T.i_applystatus}});
 	SuperSearch.ZBADDRESS = {{Msg "seo" "ZBADDRESS"}};
 	SuperSearch.industry = {{.T.industry}};
 	SuperSearch.sortArray = {{.T.sortArray}};

+ 13 - 9
src/web/templates/weixin/vipsubscribe/additionWord.html

@@ -7,11 +7,11 @@
         content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <title>附加词</title>
-    <script src="/vipsubscribe/js/rem.js"></script>
-    <link rel="stylesheet" href="/vipsubscribe/css/base.css">
-    <link rel="stylesheet" href="/vipsubscribe/iconfont/iconfont.css">
-    <link rel="stylesheet" href="/vipsubscribe/css/weui.min.css">
-    <link rel="stylesheet" href="/vipsubscribe/css/addition_exclusive_word.css">
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/addition_exclusive_word.css?v={{Msg "seo" "version"}}">
 </head>
 
 <body>
@@ -65,10 +65,13 @@
             </div>
         </div>
     </div>
-    <script src="/js/jquery-3.2.1.min.js?v=1412"></script>
-    <script src="/vipsubscribe/js/weui.min.js"></script>
-    <script src="/vipsubscribe/js/additionWord.js"></script>
-    <script type="text/javascript">
+    <script src="{{Msg "seo" "cdn"}}/js/jquery-3.2.1.min.js?v=1412"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/additionWord.js"></script>
+	{{include "/common/weixin.html"}}
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}1"></script>
+    <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
         var addition_kws = []//附加词
         var _addkws = "";
         var _addindex = -1;
@@ -126,6 +129,7 @@
            }
         }
     </script>
+	{{include "/common/baiducc.html"}}
 </body>
 
 </html>

+ 30 - 2
src/web/templates/weixin/vipsubscribe/choose_area_upgrade.html

@@ -420,6 +420,9 @@
             }
             //
             this.buyObj = buystr;
+            if(checkObj(buystr)){
+            	this.buyObj = {"全国":[]}
+            }
             console.log(this.buyObj)
             //是否试用界面
             if(sessionStorage.getItem("vipSubisTrial")) this.vipSubisTrial=true;
@@ -455,7 +458,7 @@
             	ran = this.buyObj;
             }    
             for(var province in ran) {
-	            let citys=ran[province]
+      			let citys=ran[province]
 	            if(citys.length>0){//地市
 	                this.selectCity(citys,canClick)
 	            }else{//省份
@@ -466,7 +469,7 @@
         selectProvince:function(province,canClick){ //设置选中省份 province 省份
           $($('.tab .province')).each(function (index, dom) {
             if (province == $.trim($(dom).text())) {
-              if(province!="全国") $(".checkbox.other").attr("checked", false); //取消全国选中
+              $(".checkbox.other").attr("checked", false); //取消全国选中
               $(dom).children('.checkbox').attr({"checked": true,"disabled":!canClick});//选中此省份
               $(this).parent(".tab:not(.municipality)").next().slideDown(500);
               if(canClick){
@@ -475,6 +478,15 @@
               	$(dom).parents().siblings('.tab_content').find(".city").attr({"disabled":!canClick});
               }
             }
+            if(province === "全国"){
+            	$('.tab .province').each(function(){
+            		$(this).children('.checkbox').attr({"checked": true,"disabled":!canClick});//选中此省份
+            	});
+            	$('.tab_content .city').each(function(){
+            		$(this).attr("disabled",!canClick);
+            	});
+            	$(".tips_d_money").hide();
+            }
           })
         },
         selectCity:function(citys,canClick){ //设置选中城市
@@ -626,6 +638,7 @@
           let pHeight = $('.result_text').height()
           let minHeight = $('.result_text').css('min-height')
           let rows = Math.round(Math.round(pHeight)/ parseFloat(minHeight));
+          $(".select-area-box .area-list").css("margin-top",$('.result_text').height()+20);
           console.log("高度:"+ pHeight,"最小高度"+ minHeight,"行数:" + rows)
           if(rows == 1){
               if(length >= 50){
@@ -660,12 +673,14 @@
                 $(".result").css("padding-bottom","0.3rem")
                 $(this).hide();
                 $('.packup').show()
+                $(".select-area-box .area-list").css("margin-top",$('.result_text').height()+20);
             })
             $('.packup').click(function () { 
                 $(".result").css("padding-bottom","0.2rem")
                 $('.result_text').addClass('line_two')
                 $(this).hide();
                 $('.detail').show()
+                $(".select-area-box .area-list").css("margin-top",$('.result_text').height()+20);
             })
             $("body").on('click','.slide a',function(){
                 var s = $(this).html()
@@ -789,6 +804,19 @@
             AreaChoose.getResult();
             AreaChoose.inintClick();
         })
+      //
+        //
+	    function checkObj(obj) {
+		    //检验数组
+		    if (Array.prototype.isPrototypeOf(obj) && obj.length === 0) {
+		        return true;
+		    }
+		    //检验对象
+		    if (Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) {
+		        return true;
+		    }
+		    return false;
+		}
     </script>
 </body>
 

+ 24 - 1
src/web/templates/weixin/vipsubscribe/choose_industry_upgrade.html

@@ -305,6 +305,7 @@
                     // 除全部行业外所有按钮都被选中了
                     $('#all button').trigger('click');
                 }
+                $(".select-area-box .list").css("margin-top",$(".result").height()+20);
             }
                       
             function showSelect(arr,canclick){
@@ -320,8 +321,14 @@
 	                    }
                 	}else{
                 		if (v == $(dom).text()) {
-	                       $(dom).attr({"disabled":!canclick})
+	                       $(dom).attr({"disabled":!canclick});
 	                    }
+                		if(v == "全部行业"){
+                			$(".industry_item").each(function(){
+                				$(this).attr({"disabled":!canclick});
+                			});
+                			$(".tips_d_money").hide();
+                		}
                 	}
                 })
               })
@@ -393,6 +400,9 @@
 		            	buyIndustry = data.buyerclass;
                 	}
                 },false);
+                if(checkObj(buyIndustry)){
+                	buyIndustry = ["全部行业"]
+                }
                 //是否试用界面
                 if(sessionStorage.getItem("vipSubisTrial")) vipSubisTrial=true;
               }catch(e){
@@ -404,6 +414,19 @@
               findSelectedIndustry();
               flushPrice();
             })
+            
+            //
+		    function checkObj(obj) {
+			    //检验数组
+			    if (Array.prototype.isPrototypeOf(obj) && obj.length === 0) {
+			        return true;
+			    }
+			    //检验对象
+			    if (Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) {
+			        return true;
+			    }
+			    return false;
+			}
         </script>
     </body>
 </html>

+ 13 - 9
src/web/templates/weixin/vipsubscribe/exclusiveWord.html

@@ -7,11 +7,11 @@
         content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <title>排除词</title>
-    <script src="/vipsubscribe./js/rem.js"></script>
-    <link rel="stylesheet" href="/vipsubscribe/css/base.css">
-    <link rel="stylesheet" href="/vipsubscribe/iconfont/iconfont.css">
-    <link rel="stylesheet" href="/vipsubscribe/css/weui.min.css">
-    <link rel="stylesheet" href="/vipsubscribe/css/addition_exclusive_word.css">
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe./js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/addition_exclusive_word.css?v={{Msg "seo" "version"}}">
 </head>
 
 <body>
@@ -64,10 +64,13 @@
             </div>
         </div>
     </div>
-    <script src="/js/jquery-3.2.1.min.js?v=1412"></script>
-    <script src="/vipsubscribe/js/weui.min.js"></script>
-    <script src="/vipsubscribe/js/exclusiveWord.js"></script>
-    <script type="text/javascript">
+    <script src="{{Msg "seo" "cdn"}}/js/jquery-3.2.1.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/exclusiveWord.js?v={{Msg "seo" "version"}}"></script>
+	{{include "/common/weixin.html"}}
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}1"></script>
+    <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
         var not_kws = []//附加词
         var _notkws = "";
         var _notindex = -1;
@@ -125,6 +128,7 @@
            }
         }
     </script>
+	{{include "/common/baiducc.html"}}
 </body>
 
 </html>

+ 12 - 8
src/web/templates/weixin/vipsubscribe/keyWord.html

@@ -7,11 +7,11 @@
         content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <title>关键词</title>
-    <script src="/vipsubscribe/js/rem.js"></script>
-    <link rel="stylesheet" href="/vipsubscribe/css/base.css">
-    <link rel="stylesheet" href="/vipsubscribe/iconfont/iconfont.css">
-    <link rel="stylesheet" href="/vipsubscribe/css/weui.min.css">
-    <link rel="stylesheet" href="/vipsubscribe/css/keyWord.css">
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/keyWord.css?v={{Msg "seo" "version"}}">
     <style>
         .ios-user-select {
             -webkit-user-select: text;
@@ -225,10 +225,13 @@
         </div>
     </div>
     
-    <script src="/js/jquery-3.2.1.min.js?v=1412"></script>
-    <script src="/js/jquery.cookie.js"></script>
-    <script src="/vipsubscribe/js/weui.min.js"></script>
+    <script src="{{Msg "seo" "cdn"}}/js/jquery-3.2.1.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/js/jquery.cookie.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+	{{include "/common/weixin.html"}}
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}1"></script>
     <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
         weui.loading();
         setTimeout(function(){
             weui.loading().hide();
@@ -749,6 +752,7 @@
             }, 500)
         })
     </script>
+	{{include "/common/baiducc.html"}}
 </body>
 
 </html>

+ 29 - 1
src/web/templates/weixin/vipsubscribe/modal.html

@@ -2,10 +2,38 @@
 <script type="text/javascript" src="/js/bootstrap.min.js?v={{Msg "seo" "version"}}"></script>
 <script type="text/javascript">
 $(function(){
-	$("#myModal").modal("show");
+  //获取是否弹框
+  var NotshowNum = parseInt(localStorage.getItem("NotshowTrailTip"));
+  if(!NotshowNum&&NotshowNum!=0){ //localStorage值为空 请求后台是否展示
+    $.post("/subscribepay/trial/showTrailTip",{},function(r){
+      if(r.showTrailTip){
+        $("#myModal").modal("show");
+        NotshowNum=0;
+        localStorage.setItem("NotshowTrailTip",NotshowNum);
+        localStorage.setItem("vipTrialShowed_"+new Date().getDate(),"ok");
+      }else{ //不展示
+        localStorage.setItem("NotshowTrailTip","999");
+      } 
+    })
+  }else if (NotshowNum<3&&!localStorage.getItem("vipTrialShowed_"+new Date().getDate())){ //localStorage中有值 且今天第一次打开
+    $("#myModal").modal("show");
+    localStorage.setItem("vipTrialShowed_"+new Date().getDate(),"ok")
+  }
+    
 	$(".toast_close").on("click",function(){
 		$("#myModal").modal("hide");
+    NotshowNum++
+    if(NotshowNum>=3){ //以后不跳出弹框
+      $.post("/subscribepay/trial/closeTrailTip",{},function(r){
+        if(r.success){ 
+          localStorage.setItem("NotshowTrailTip",NotshowNum);
+        }
+      })
+    }else{
+      localStorage.setItem("NotshowTrailTip",NotshowNum);
+    }
 	})
+  
 	$(".toast_but").on("click",function(){
 		$("#myModal").modal("hide");
         window.location.href="/front/vipsubscribe/trialInfo"

+ 32 - 1
src/web/templates/weixin/vipsubscribe/renew_pay.html

@@ -475,6 +475,8 @@
 			    ends = data.endtime;
 			    monthPrice = data.monthprice;
 			    yearPrice = data.yearprice;
+			    console.log(area)
+			    console.log(buyerclass)
 			    //
 			    var areaArr = [];
 			    var areaHtml = "";
@@ -500,6 +502,10 @@
 			    		}
 			    	}
 			    	areaHtml = areaArr.toString().replace(/,/g, "、");
+			    	
+					if(checkObj(area)){
+						areaHtml = "全国";
+					}
 			    	$(".item_area .label_for").text(areaHtml);
 			    }
 			    if(buyerclass !== "" && buyerclass !== undefined){
@@ -508,6 +514,9 @@
 			    		buyerclassArr.push(industry);
 			    		buyerclassHtml = buyerclassArr.toString().replace(/,/g, "、");
 			    	}
+			    	if(checkObj(buyerclass)){
+			    		buyerclassHtml = "全行业";
+			    	}
 			    	$(".item_industry .label_for").text(buyerclassHtml);
 			    }
 			    if(cycleunit !== "" && cycleunit !== undefined){
@@ -624,17 +633,39 @@
 	    		"time": $('.choose_item.select_cycle .info').attr('placeholder'),
 	    		"payWay":"wx_js",
 	    		"pay_source": "Renew",
+	    		"endtime": ends,
 	    	}
 	    	console.log(param)
 	    	$DoPost("/subscribepay/renewUpgrade/renewUpgradeCreateOrder",param,function(r){
                 if(r.success){
-//                  clearSessionStorage();
+                    clearSessionStorage();
                     onBridgeReady(JSON.parse(r.data.res),r.data.code);
                 }
                 $("#payHandle").removeAttr("disabled")  
             })
 	    });
 	    
+	    //
+	    function clearSessionStorage(){
+	    	sessionStorage.removeItem("renew_cyclecount");
+	    	sessionStorage.removeItem("renew_cycleunit");
+	    	sessionStorage.removeItem("renew_price");
+	    	sessionStorage.removeItem("renew_finally_price");
+	    }
+	    
+	    //
+	    function checkObj(obj) {
+		    //检验数组
+		    if (Array.prototype.isPrototypeOf(obj) && obj.length === 0) {
+		        return true;
+		    }
+		    //检验对象
+		    if (Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) {
+		        return true;
+		    }
+		    return false;
+		}
+	    
     </script>
 </body>
 

+ 4 - 1
src/web/templates/weixin/vipsubscribe/trial_info.html

@@ -12,7 +12,7 @@
     <link rel="stylesheet" type="text/css" href="/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}" />
     <link rel="stylesheet" type="text/css" href="/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
     <link rel="stylesheet" href="/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
-    <link rel="stylesheet" href="/vipsubscribe/css/trial_info.css?v=111">
+    <link rel="stylesheet" href="/vipsubscribe/css/trial_info.css?v=111">    
 </head>
 
 <body>
@@ -72,12 +72,15 @@
             
         </form>
     </div>
+    {{include "/common/weixin.html"}}
     <script src="/vipsubscribe/js/jquery-2.1.4.js?v={{Msg "seo" "version"}}"></script>
     <script src="/vipsubscribe/js/fastclick.js?v={{Msg "seo" "version"}}"></script>
     <script src="/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
     <script src="/vipsubscribe/js/personal_info.js?v={{Msg "seo" "version"}}"></script>
     <script src="/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
+    <script src="/vipsubscribe/js/share.js?v={{Msg "seo" "version"}}"></script>
     <script>
+        initShare({{.T.signature}});
         $(function () {
             //获取用户信息
             $DoPost("/subscribepay/trial/GetUserPhone",{},function(r){

+ 13 - 9
src/web/templates/weixin/vipsubscribe/vip_index.html

@@ -10,12 +10,12 @@
     <title>VIP订阅首页</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>
-    <link rel="stylesheet" type="text/css" href="/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}" />
-    <link rel="stylesheet" type="text/css" href="/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}" />
-    <link rel="stylesheet" type="text/css" href="/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
-    <link rel="stylesheet" href="/vipsubscribe/css/public.css?v={{Msg "seo" "version"}}">
-    <link rel="stylesheet" href="/vipsubscribe/css/vip_index.css?v={{Msg "seo" "version"}}">
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}" />
+    <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}" />
+    <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/public.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/vip_index.css?v={{Msg "seo" "version"}}">
 </head>
 
 <body>
@@ -141,10 +141,13 @@
             </div>
         </div>
     </div>
-    <script src="/vipsubscribe/js/jquery-2.1.4.js?v={{Msg "seo" "version"}}"></script>
-    <script src="/vipsubscribe/js/fastclick.js?v={{Msg "seo" "version"}}"></script>
-    <script src="/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/jquery-2.1.4.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/fastclick.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+	{{include "/common/weixin.html"}}
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}1"></script>
     <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
         $(function () {
             //获取用户信息
            $.post("/subscribepay/afterPay/getUserInfo",{},function(r){
@@ -237,6 +240,7 @@
             })
         })
     </script>
+	{{include "/common/baiducc.html"}}
 </body>
 
 </html>

+ 5 - 0
src/web/templates/weixin/vipsubscribe/vip_introduce.html

@@ -137,5 +137,10 @@
             <a href="/weixin/pay/vipsubscribe_new" class="subscribe_btn">去订阅</a>
         </div>
     </div>
+    {{include "/common/weixin.html"}}
+    <script src="/vipsubscribe/js/share.js?v={{Msg "seo" "version"}}"></script>
+    <script>
+      initShare({{.T.signature}});
+    </script>
 </body>
 </html>

+ 10 - 9
src/web/templates/weixin/vipsubscribe/vip_order_detail.html

@@ -10,11 +10,11 @@
     <meta name="apple-mobile-web-app-status-bar-style" content="black">
     <script src="/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
     <link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/weui/1.1.2/style/weui.css" />
-    <link rel="stylesheet" type="text/css" href="/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}" />
-    <link rel="stylesheet" type="text/css" href="/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
-    <link rel="stylesheet" href="/vipsubscribe/css/public.css?v={{Msg "seo" "version"}}">
-    <link rel="stylesheet" href="/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
-    <link rel="stylesheet" href="/vipsubscribe/css/vip_order_detail.css?v={{Msg "seo" "version"}}1">
+    <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}" />
+    <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/public.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/vip_order_detail.css?v={{Msg "seo" "version"}}1">
 	{{include "/common/weixin.html"}}
 	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>   
 </head>
@@ -102,10 +102,10 @@
         <a href="#" class="button align" style="display:none">去支付</a>
     </div>
 </body>
-<script src="/vipsubscribe/js/jquery-2.1.4.js?v={{Msg "seo" "version"}}"></script>
-<script src="/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
-<script src="/vipsubscribe/js/fastclick.js?v={{Msg "seo" "version"}}"></script>
-<script src="/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/jquery-2.1.4.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/fastclick.js?v={{Msg "seo" "version"}}"></script>
+<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
 <script>
 try{
   var signature = {{.T.signature}};
@@ -337,4 +337,5 @@ try{
   })
       
 </script>
+	{{include "/common/baiducc.html"}}
 </html>

+ 1 - 1
src/web/templates/weixin/vipsubscribe/vip_purchase.html

@@ -270,7 +270,7 @@
   			var id = {{.T._id}}
   			if(signature && signature.length == 4){
   				wx.config({
-  				    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
+  				    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
   				    appId: signature[0], // 必填,公众号的唯一标识
   				    timestamp:signature[1], // 必填,生成签名的时间戳
   				    nonceStr: signature[2], // 必填,生成签名的随机串

+ 3 - 3
src/web/templates/weixin/vipsubscribe/vip_seniorset.html

@@ -33,10 +33,10 @@
 			color: #686868;
 		}
 	</style>
-	<script>
-		// initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}1"></script>
+    <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
 		var s_email = "";
-		// var haskeyword = {{.T.haskeyword}};
 		var keepOneTipWayMsg = "请保留一种推送方式,<br>剑鱼标讯还要推送信息给您";
 		var emailSetModal = null;
 		var clickDelayed = false;

+ 62 - 6
src/web/templates/weixin/vipsubscribe/vip_upgrade.html

@@ -419,7 +419,7 @@
             }
             sessionStorage.effectiveDate = effective;
             $('#effect_date_name').html(checkValue);
-            window.location.reload();
+            FinallyPrice();
         });
         
         
@@ -593,8 +593,11 @@
                 $('.choose_item.lengthen .info').text(val)
             })
             var proPrice = $(".computed_price").html().replace("¥","")
+            if(val === "不延长"){
+            	proPrice = 0;
+            }
             sessionStorage.proPrice = proPrice;
-            window.location.reload();
+            FinallyPrice();
         })
         //新增区域
 	    if(sessionStorage.vipSubSelectArea!==""&&sessionStorage.vipSubSelectArea!==undefined){
@@ -773,6 +776,9 @@
 			    	}
 			    	areaHtml = areaArr.toString().replace(/,/g, " ");
 		//	    	$(".item_area .label_for").text(areaHtml);
+					if(checkObj(area)){
+						areaHtml = "全国";
+					}
 			    	$('#area').val(areaHtml);
 			    }
 			    if(buyerclass !== "" && buyerclass !== undefined){
@@ -782,6 +788,9 @@
 			    		buyerclassHtml = buyerclassArr.toString().replace(/,/g, " ");
 			    	}
 		//	    	$(".item_industry .label_for").text(buyerclassHtml);
+					if(checkObj(buyerclass)){
+						buyerclassHtml = "全行业";
+					}
 					$('#buyerclass').val(buyerclassHtml);
 			    }
 			    //
@@ -952,6 +961,8 @@
 					oldMonthPrice = r.oldmonthprice;
 				}
 			},false);
+			console.log("oldYearPrice",oldYearPrice)
+			console.log("oldMonthPrice",oldMonthPrice)
 			if(nowUpgradeYear >= 1){
 				let yearprice = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgradeYear,1]);
 				let monthprice = getsubVipOrderPrice(areasArr,industrysArr,[nowUpgrade,2]);
@@ -972,10 +983,18 @@
 				completeYear = ((price / nowUpgrade)*10-oldYearPrice).toFixed(1);
 				console.log("<1",price)
 			}
+			
+			console.log("oldPrice", oldPrice);
+			if(sessionStorage.vipSubSelectArea===undefined&&sessionStorage.vipSubSelectIndustry===undefined){
+				completeMonth = oldMonthPrice
+				completeYear = oldYearPrice
+			}
 			console.log("completeMonth",completeMonth)
 			console.log("completeYear",completeYear)
-			console.log("oldPrice", oldPrice);
-			var cPrice = (price - oldPrice).toFixed(1);
+			var cPrice = 0;
+  			if(price>0){
+  				var cPrice = (price - oldPrice).toFixed(1);
+  			}
 			console.log(cPrice);
 			if(sessionStorage.proPrice!==""&&sessionStorage.proPrice!==undefined){
 				let proPrice = sessionStorage.proPrice;
@@ -992,7 +1011,17 @@
         	let effective = $("#effect_date_name").text();
         	var effect = "now";
         	if(effective !== "立即生效,需支付当月费用差价"){
-        		effect = "notnow";
+        		let nowDate = new Date().toLocaleDateString();
+				nowDate = nowDate.split("/");
+				let nowMonth = Number(nowDate[1]);
+				let nowYear = Number(nowDate[0]);
+				let a = nowMonth +1
+        		if(a > 12){
+        			a = nowMonth-12;
+        			nowYear = nowYear +1;
+        		}
+        		let b = nowYear+"/"+a+"/1";
+        		effect = new Date(b).getTime() /1000;
         	}
         	let areas = areasArr;
         	let industrys = industrysArr;
@@ -1016,16 +1045,43 @@
 	    		"pay_source" : "Upgrade",
 	    		"time": times,
 	    		"price": Number(price),
+	    		"endtime": ends,
 	    	}
 	    	console.log(param)
 	    	$DoPost("/subscribepay/renewUpgrade/renewUpgradeCreateOrder",param,function(r){
                 if(r.success){
-//                  clearSessionStorage();
+                    clearSessionStorage();
                     onBridgeReady(JSON.parse(r.data.res),r.data.code);
                 }
                 $("#payHandle").removeAttr("disabled");
             })
 	    });
+	    
+	    //
+	    function clearSessionStorage(){
+	    	sessionStorage.removeItem("upgrade_cyclecount");
+	    	sessionStorage.removeItem("upgrade_cycleunit");
+	    	sessionStorage.removeItem("upgrade_price");
+	    	sessionStorage.removeItem("proPrice");
+	    	sessionStorage.removeItem("vipSubSelectArea");
+	    	sessionStorage.removeItem("vipSubSelectIndustry");
+	    	sessionStorage.removeItem("effectiveDate");
+	    }
+	    
+	    //
+	    //
+	    function checkObj(obj) {
+		    //检验数组
+		    if (Array.prototype.isPrototypeOf(obj) && obj.length === 0) {
+		        return true;
+		    }
+		    //检验对象
+		    if (Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) {
+		        return true;
+		    }
+		    return false;
+		}
+	    
     </script>
 </body>
 

+ 3 - 1
src/web/templates/weixin/vipsubscribe/vip_viewPage.html

@@ -6,11 +6,13 @@
 	<link href="{{Msg "seo" "cdn"}}/css/dropload.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 	<link href="{{Msg "seo" "cdn"}}/css/wxlist.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 	{{include "/common/weixin.html"}}
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
 	<script src="{{Msg "seo" "cdn"}}/js/jquery.js"></script>
 	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>
 	<script src="{{Msg "seo" "cdn"}}/js/dropload.js?v={{Msg "seo" "version"}}"></script>
 	<script src="{{Msg "seo" "cdn"}}/js/fastclick.js?v={{Msg "seo" "version"}}"></script>
-	<script>
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}1"></script>
+    <script>
 		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
 		var zbadd = {{Msg "seo" "ZBADDRESS"}};
 		var keys = [];

+ 45 - 2
src/web/templates/weixin/wxinfocontent.html

@@ -139,19 +139,40 @@ pre {
 	position: relative;
 	top: 2px;
 }
+.toolbar .follow_vip{
+	float: right;
+	color: #ffba00;
+	position: relative;
+	top: 10px;
+}
 .toolbar .follow i{
 	top: 2px;
 }
+.toolbar .follow_vip i{
+	top: 3px;
+}
 .timebefore{
 	color: #888888;
 	position: relative;
     top: -1px;
 }
+.timebefore_vip{
+	color: #888888;
+	position: relative;
+    top: 10px;
+    right: 3.3rem;
+    font-size: 14px;
+}
 .timebefore i{
 	color: #7a7a7a;
 	font-size: 16px;
 	top: 3px;
 }
+.timebefore_vip i{
+	color: #7a7a7a;
+	font-size: 16px;
+	top: 3px;
+}
 .area{
     padding: 1px 3px;
 	color: #fff;
@@ -462,6 +483,14 @@ pre {
 	left: 90%;
 	top: 20px;
 }
+.buyerclass{
+    background: #CFAD89;
+    padding: 1px 3px;
+    color: #fff;
+    border-radius: 3px;
+    margin-right: 3px;
+    float: left;
+}
 </style>
 </head>
 <body>
@@ -507,21 +536,35 @@ pre {
 
 			var industry = {{.T.obj.industry}};
 			var subscopeclass = {{.T.obj.s_subscopeclass}};
+			//vip用户显示与普通用户不同
+			var isvip={{.T.obj.isVip}};
+			var buyerclass={{.T.obj.buyerclass}};
 			if(industry){
                 document.write("<span class='industry'>"+industry+"</span>");
 			}else if(subscopeclass){
 				var suclass = subscopeclass.split(",")[0];
 				document.write("<span class='industry'>"+ suclass.split("_")[0]+"</span>");
 			}
+			if(isvip){
+				document.write("<span class='buyerclass'>"+ buyerclass+"</span></br>");
+			}
 			var l_publishtime = {{.T.obj.l_publishtime}};
 			if(l_publishtime != ""){
 				var tdf = timeDiff(new Date(Number(l_publishtime+"000")))
 				if(tdf != null){
-					document.write("<span class='timebefore'><i class='glyphicon bofangjilu'></i>"+tdf+"</span>");
+					if(isvip){
+						document.write("<span class='timebefore_vip'><i class='glyphicon bofangjilu'></i>"+tdf+"</span>");
+					}else{
+						document.write("<span class='timebefore'><i class='glyphicon bofangjilu'></i>"+tdf+"</span>");
+					}
 				}
 			}
 		</script>
-		{{if .T.obj.hasSession}}{{if or .T.obj.projectname .T.obj.projectcode}}<span class="follow">{{if .T.obj.followFlag}}<i class="glyphicon yiguanzhu"></i>已关注{{else}}<i class="glyphicon weiguanzhu"></i>关注项目{{end}}</span>{{end}}{{else}}<!--<a href="/swordfish/share/-1" style="text-decoration: none;color:#24C0D7;"><span class="follow"><i class="glyphicon weiguanzhu"></i></span>关注项目</a>-->{{end}}
+		{{if .T.obj.isVip}}
+			{{if .T.obj.hasSession}}{{if or .T.obj.projectname .T.obj.projectcode}}<span class="follow_vip" >{{if .T.obj.followFlag}}<i class="glyphicon yiguanzhu"></i>已关注{{else}}<i class="glyphicon weiguanzhu"></i>关注项目{{end}}</span>{{end}}{{else}}<!--<a href="/swordfish/share/-1" style="text-decoration: none;color:#24C0D7;"><span class="follow"><i class="glyphicon weiguanzhu"></i></span>关注项目</a>-->{{end}}
+		{{else}}
+			{{if .T.obj.hasSession}}{{if or .T.obj.projectname .T.obj.projectcode}}<span class="follow" >{{if .T.obj.followFlag}}<i class="glyphicon yiguanzhu"></i>已关注{{else}}<i class="glyphicon weiguanzhu"></i>关注项目{{end}}</span>{{end}}{{else}}<!--<a href="/swordfish/share/-1" style="text-decoration: none;color:#24C0D7;"><span class="follow"><i class="glyphicon weiguanzhu"></i></span>关注项目</a>-->{{end}}
+		{{end}}
 	</div>
 	<!--{{if .T.obj.hasSession}}
 		{{if or .T.obj.projectname .T.obj.projectcode}}