Browse Source

Merge branch 'dev4.6.3.14' of http://192.168.3.207:8080/qmx/jy into dev4.6.3.14

zhangyuhan 3 years ago
parent
commit
5da24a87ee
31 changed files with 598 additions and 370 deletions
  1. 2 2
      README.md
  2. 7 1
      src/jfw/front/front.go
  3. 2 3
      src/jfw/front/pchelper.go
  4. 38 28
      src/jfw/front/shorturl.go
  5. 7 1
      src/jfw/modules/app/src/app/front/front.go
  6. 6 9
      src/jfw/modules/app/src/app/front/login.go
  7. 10 5
      src/jfw/modules/app/src/app/front/shorturl.go
  8. 163 162
      src/jfw/modules/app/src/config.json
  9. 66 39
      src/jfw/modules/app/src/web/staticres/jyapp/js/searchindex.js
  10. 9 8
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/keyset-list.js
  11. 22 12
      src/jfw/modules/app/src/web/staticres/jyapp/wxtsguide/main.js
  12. 51 3
      src/jfw/modules/app/src/web/templates/areaPack/page_set_area.html
  13. 8 2
      src/jfw/modules/app/src/web/templates/big-member/page_unit_portrayal.html
  14. 13 12
      src/jfw/modules/app/src/web/templates/weixin/historypush.html
  15. 4 0
      src/jfw/modules/app/src/web/templates/weixin/search/mainSearch.html
  16. 1 1
      src/jfw/modules/bigmember/src/entity/portrait.go
  17. 2 1
      src/jfw/modules/bigmember/src/service/use/use.go
  18. 2 2
      src/jfw/modules/publicapply/src/subscribe/entity/entity.go
  19. 6 6
      src/jfw/modules/publicapply/src/subscribePush/entity/keyWords.go
  20. 2 2
      src/jfw/modules/publicapply/src/subscribePush/entity/setting.go
  21. 10 1
      src/jfw/modules/weixin/src/wx/subscribe.go
  22. BIN
      src/web/staticres/big-member/image/new_info/item-top.png
  23. BIN
      src/web/staticres/common-module/collection/image/bg/vip_bg_1.png
  24. 62 36
      src/web/staticres/js/wxSupersearch.js
  25. 10 9
      src/web/staticres/vipsubscribe/js/keyset-list.js
  26. 21 11
      src/web/staticres/wxtsguide/main.js
  27. 51 3
      src/web/templates/areaPack/wx/page_set_area.html
  28. 1 1
      src/web/templates/big-member/pc/page_cg.html
  29. 2 2
      src/web/templates/big-member/wx/page_unit_portrayal.html
  30. 8 7
      src/web/templates/weixin/historypush.html
  31. 12 1
      src/web/templates/weixin/search/mainSearch.html

+ 2 - 2
README.md

@@ -3,5 +3,5 @@
 weixin sdk https://github.com/wizjin/weixin
 web用xweb框架
 v4.6.3.14
-画像优化
-免费用户强制留资
+1、画像优化
+2、免费用户强制留资

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

@@ -1013,8 +1013,13 @@ func (f *Front) TSGuide() error {
 					if vs == nil {
 						continue
 					}
+					//多个词合并成一个
+					key := ""
+					for _, vkeys := range vs {
+						key += vkeys
+					}
 					keyMaps = append(keyMaps, map[string]interface{}{
-						"key":    vs,
+						"key":    []string{key},
 						"notkey": []string{},
 						"from":   1, //用于记录是否可以选择全国
 					})
@@ -1030,6 +1035,7 @@ func (f *Front) TSGuide() error {
 					"o_jy.a_key":        keyMaps,
 					"o_jy.l_modifydate": time.Now().Unix(),
 					"i_ts_guide":        2,
+					"o_jy.i_newfree":    1,
 				}
 				result["flag"] = mongodb.UpdateById("user", userid, bson.M{"$set": saveData})
 			}

+ 2 - 3
src/jfw/front/pchelper.go

@@ -125,9 +125,8 @@ func (l *PcHelper) Login() error {
 							"l_registedate": time.Now().Unix(),
 							"i_ts_guide":    2,
 							"o_jy": map[string]interface{}{
-								"i_apppush":  1,
-								"i_ratemode": 2,
-								// "i_newfree":    1, //新免费用户=>新订阅设置页面 20211122
+								"i_apppush":    1,
+								"i_ratemode":   2,
 								"l_modifydate": time.Now().Unix(),
 							},
 							"s_regsource": "pchelper",

+ 38 - 28
src/jfw/front/shorturl.go

@@ -199,6 +199,7 @@ func (s *Short) Article(stype, id string) error {
 		s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
 
 		obj := wxvisitD(sid, userId, myopenid, isVip || isMember || isEntniche)
+		s.T["canRead"] = SeeDetailLimit(obj, userId, sid)
 		if len(obj) > 0 {
 			FieldProcessing(obj, ssOpenid, industry, id, from_userid, userId, stype, isVip || isMember || isEntniche, true)
 
@@ -271,31 +272,10 @@ func (s *Short) Article(stype, id string) error {
 			return nil
 		}
 		sid := sids[0]
-		watchKey := fmt.Sprintf("article_count_%d_%s_%d_%s", time.Now().Year(), time.Now().Month(), time.Now().Day(), userId)
-		if seeRes := redis.Get("other", watchKey); seeRes != nil && seeRes != "" {
-			if resVal, _ := seeRes.(string); resVal != "" {
-				sidss := strings.Split(resVal, "_")
-				canRead := config.Sysconfig["canReadNotice"]
-				if len(sidss) < util.IntAll(canRead) {
-					s.T["canRead"] = true
-					sidss = append(sidss, sid)
-					arrs := RemoveDuplicatesAndEmpty(sidss)
-					newVal := strings.Join(arrs, "_")
-					redis.Put("other", watchKey, newVal, 60*60*24)
-				} else {
-					s.T["canRead"] = false
-					for _, v := range sidss {
-						if sid == v {
-							s.T["canRead"] = true
-							break
-						}
-					}
-				}
-			}
-		} else {
-			redis.Put("other", watchKey, sid, 60*60*24)
-			s.T["canRead"] = true
-		}
+		indust := s.GetString("industry")
+		_, _, _, objc := pcVRT(sid, indust, isVip || isMember || isEntniche)
+		s.T["canRead"] = SeeDetailLimit(objc, userId, sid)
+		fmt.Println(s.T["canRead"])
 		if userId != "" && stype == "indexcontent" { //已登录用户直接跳转至正常三级页
 			return s.Redirect(fmt.Sprintf("/article/content/%s.html", util.CommonEncodeArticle("content", sid)))
 		}
@@ -338,9 +318,6 @@ func (s *Short) Article(stype, id string) error {
 					if obj["winner_enttel"] != "" {
 						obj["winner_enttel"] = "无权限"
 					}
-					if obj["subType"] == "拟建" || obj["subType"] == "采购意向" {
-						s.T["canRead"] = false
-					}
 				}
 				//判断时间 //如果是seo页面超过时间访问的进入首页
 				comeinTime := time.Unix(util.Int64All(obj["comeintime"]), 0)
@@ -398,6 +375,39 @@ func (s *Short) Article(stype, id string) error {
 	return nil
 }
 
+//查看公告详情次数限制
+func SeeDetailLimit(obj map[string]interface{}, userId, sid string) bool {
+	watchKey := fmt.Sprintf("article_count_%d_%s_%d_%s", time.Now().Year(), time.Now().Month(), time.Now().Day(), userId)
+	if strings.Contains(obj["subtype"].(string), "拟建") || strings.Contains(obj["subtype"].(string), "采购意向") {
+		return false
+	} else {
+		if seeRes := redis.Get("other", watchKey); seeRes != nil && seeRes != "" {
+			if resVal, _ := seeRes.(string); resVal != "" {
+				sidss := strings.Split(resVal, "_")
+				canRead := config.Sysconfig["canReadNotice"]
+				if len(sidss) < util.IntAll(canRead) {
+					sidss = append(sidss, sid)
+					arrs := RemoveDuplicatesAndEmpty(sidss)
+					newVal := strings.Join(arrs, "_")
+					redis.Put("other", watchKey, newVal, 60*60*24)
+					return true
+				} else {
+					for _, v := range sidss {
+						if sid == v {
+							return true
+						}
+					}
+					return false
+				}
+			}
+		} else {
+			redis.Put("other", watchKey, sid, 60*60*24)
+			return true
+		}
+	}
+	return false
+}
+
 func SwiDef(sid_openid []string) (string, string) {
 	var shareopenid, sid string
 	if len(sid_openid) > 1 {

+ 7 - 1
src/jfw/modules/app/src/app/front/front.go

@@ -317,8 +317,13 @@ func (f *Front) TSGuide() error {
 					if vs == nil {
 						continue
 					}
+					//多个词合并成一个
+					key := ""
+					for _, vkeys := range vs {
+						key += vkeys
+					}
 					keyMaps = append(keyMaps, map[string]interface{}{
-						"key":      vs,
+						"key":      []string{key},
 						"infotype": []string{},
 						"notkey":   []string{},
 						"from":     1, //用于记录是否可以选择全国
@@ -335,6 +340,7 @@ func (f *Front) TSGuide() error {
 					"o_jy.a_key":        keyMaps,
 					"o_jy.l_modifydate": time.Now().Unix(),
 					"i_ts_guide":        2,
+					"o_jy.i_newfree":    1,
 				}
 				result["flag"] = mongodb.UpdateById("user", userid, bson.M{"$set": saveData})
 			}

+ 6 - 9
src/jfw/modules/app/src/app/front/login.go

@@ -193,9 +193,8 @@ func (l *Login) Login() error {
 						"s_appponetype": phoneType,
 						"i_ts_guide":    2,
 						"o_jy": map[string]interface{}{
-							"i_apppush":  1,
-							"i_ratemode": 2,
-							// "i_newfree":    1, //新免费用户=>新订阅设置页面 20211122
+							"i_apppush":    1,
+							"i_ratemode":   2,
 							"l_modifydate": time.Now().Unix(),
 						},
 						"s_platform": "app",
@@ -447,9 +446,8 @@ func (l *Login) Register() error {
 					data["l_registedate"] = time.Now().Unix()
 					data["i_ts_guide"] = 2
 					data["o_jy"] = map[string]interface{}{
-						"i_apppush":  1,
-						"i_ratemode": 2,
-						// "i_newfree":    1, //新免费用户=>新订阅设置页面 20211122
+						"i_apppush":    1,
+						"i_ratemode":   2,
 						"l_modifydate": time.Now().Unix(),
 					}
 					data["s_regsource"] = isAndroidOrIOS(l.Header("User-Agent"))
@@ -590,9 +588,8 @@ func (l *Login) WxLogin() {
 				"s_city":         u.City,
 				"s_headimageurl": u.HeadImageUrl,
 				"o_jy": map[string]interface{}{
-					"i_apppush":  1,
-					"i_ratemode": 2,
-					// "i_newfree":    1, //新免费用户=>新订阅设置页面 20211122
+					"i_apppush":    1,
+					"i_ratemode":   2,
 					"l_modifydate": time.Now().Unix(),
 				},
 				"s_platform": "app", //用户注册平台 app 微信 pc

+ 10 - 5
src/jfw/modules/app/src/app/front/shorturl.go

@@ -62,7 +62,16 @@ func (s *Short) Article(stype, id string) error {
 		return s.Redirect("/jyapp/free/swordfish/about", 302)
 	} else {
 		sid = sid_openid[0]
-		watchKey := fmt.Sprintf("article_count_%d_%s_%d_%s", time.Now().Year(), time.Now().Month(), time.Now().Day(), userId)
+	}
+
+	s.T["keywords"] = kds
+	var obj map[string]interface{}
+	obj = wxvisitD(sid, userId, isVip || isEntniche || i_member_status > 0)
+
+	watchKey := fmt.Sprintf("article_count_%d_%s_%d_%s", time.Now().Year(), time.Now().Month(), time.Now().Day(), userId)
+	if strings.Contains(obj["subtype"].(string), "拟建") || strings.Contains(obj["subtype"].(string), "采购意向") {
+		s.T["canRead"] = false
+	} else {
 		if seeRes := redis.Get("other", watchKey); seeRes != nil && seeRes != "" {
 			if resVal, _ := seeRes.(string); resVal != "" {
 				sidss := strings.Split(resVal, "_")
@@ -88,10 +97,6 @@ func (s *Short) Article(stype, id string) error {
 			s.T["canRead"] = true
 		}
 	}
-
-	s.T["keywords"] = kds
-	var obj map[string]interface{}
-	obj = wxvisitD(sid, userId, isVip || isEntniche || i_member_status > 0)
 	if len(obj) > 0 {
 		if belongUserId != "" && belongUserId != userId && util.ObjToString(obj["subtype"]) != "拟建" { //分享开打的
 			article_id := util.CommonDecodeArticle(stype, id)[0]

+ 163 - 162
src/jfw/modules/app/src/config.json

@@ -1,162 +1,163 @@
-{
-	"cookiedomain": ".jianyu360.com",
-	"webport": "89",
-	"weixinrpc": "127.0.0.1:8083",
-	"cacheflag": false,
-	"agreement": "http",
-	"webdomain": "https://web-zxl.jydev.jianyu360.com",
-	"redirect": {
-		"wxpushlist": "/jyapp/wxpush/bidinfo/%s",
-		"newInfoFollow": "/jyapp/followent/newInfo/%s",
-		"wxpushfollowlist": "/jyapp/follow/notice/%s/%s",
-		"followset": "/jyapp/follow/set/%s/%s",
-		"myfeedbacks": "/jyapp/swordfish/myFeedbacks",
-		"historypush": "/jyapp/swordfish/historypush?f=push&t=%s&pushtime=%s",
-		"followEntDetail": "/jyapp/followent/detail/%s",
-		"msgremind": "/jyapp/vipsubscribe/msgremind?%s",
-		"vipreport": "/subscribepay/report/wxtplmsg?start=%s&end=%s&pushcount=%s",
-		"entnichehistorypush": "/jyapp/entniche/pushlist?selectTime=%s&pi=%s&pn=%s&type=%s",
-		"trackReport": "/page_entniche/business/t-report/detail/%s_%s/%s",
-		"viphomepage": "/jyapp/vipsubscribe/toSubVipSetPage",
-		"pushFollowEnt": "/jyapp/big/page/ent_follow",
-		"pushFollowProject": "/jyapp/big/page/pro_follow_list",
-		"pushMember": "/jyapp/big/page/big_subscribe?pushtime=%s",
-		"pushProjectForecast": "/jyapp/big/page/forecast_list",
-		"pushEntChange": "/jyapp/big/page/ent_follow",
-		"followProjectSet": "/jyapp/big/page/pro_follow_detail?fid=%s&sid=%s",
-		"memberreport":"/bigmember/report/openpushmsg?start=%s&end=%s&pushcount=%s",
-		"memberreport_experience":"/bigmember/report/openpushmsg?t=app_experience&start=%s&end=%s&pushcount=%s"
-	},
-	"followProject": 10,
-	"followentlimit": "10",
-	"followLimitDay": 30,
-	"followTipMsg": {
-		"title": "您关注的项目《%s》将于%s开标!",
-		"remark": "您收到这条信息是因为您之前设置了项目开标提醒,如果您不再需要此类提醒,可点击下方“详情”修改提醒设置。"
-	},
-	"followPushRpc": "127.0.0.1:8759",
-	"rewardText": [
-		"憋说话!赏我!",
-		"“赏”就一个字 我只说一次",
-		"厉害了word鱼!",
-		"看官赏点银子偶会更卖力噢!",
-		"各位客官,快来赏点吧!",
-		"夸我还是含蓄点的好,赏一个吧~",
-		"爱,就供养;喜欢,就打赏!",
-		"请简单粗暴地爱我!",
-		"最喜欢你一言不合就打赏的样子了~~~么么!"
-	],
-	"advertText": [
-		"与其一个人孤单  不如一群人狂欢   赶快加入剑鱼标讯社区",
-		"加入剑鱼标讯社区  和投标大神做朋友",
-		"来剑鱼标讯社区  找最合拍的伙伴",
-		"剑鱼标讯社区,让沟通连接你我。",
-		"剑鱼标讯社区,分享你的知识、解决问题、行业资源交换",
-		"勇敢发声,和老司机一起畅聊招投标。",
-		"春风十里,不如来剑鱼标讯社区!",
-		"只要心相通,相隔千里也能畅快交流。",
-		"弹指一挥间,剑鱼标讯因你而不同!",
-		"携手同行,认真对待每一次招投标"
-	],
-	"advertImg": "/jyapp/images/advert.png",
-	"advertName": "广告",
-	"advertUrl": "/jyapp/free/swordfish/about",
-	"industry": "分类综合测试",
-	"recommendEntLimit": "50",
-	"update": {
-		"isBrowserUpdate":1,
-		"grayupdate":false,
-		"version": "3.0.5",
-		"mustupdate": false,
-		"tipspace": 86400,
-		"ios_version": "2.7.3",
-		"ios_mustupdate": false,
-		"ios_openUpdate": false,
-		"ios_grayupdate":false,
-		"apkurl": "https://web2-jytest.jydev.jianyu360.com/jyinstallpkg/mobile/%s/jianyu360.apk",
-		"channelDir": {
-			"baidu": "baiduSem",
-			"shenma": "shenmaSem",
-			"huawei": "huawei",
-			"xiaomi": "xiaomi",
-			"yingyongbao": "yingyongbao",
-			"douyin": "douyin",
-			"weixin": "jywx",
-			"topnet": "topnet",
-			"duanxin": "duanxin",
-			"active_pullnew": "active_pullnew",
-			"default": "topnet"
-		}
-	},
-	"limitSearchText": {
-		"flag": false,
-		"count": 3,
-		"timeout": 60,
-		"totalPage": 3,
-		"userIds": [
-			"ocXeA0jceF8KRunDkwf9egT4bKI8",
-			"ocXeA0nBnaRZhKEZYhMBGvd4NvH0",
-			"ocXeA0rBxfsr_4GzysQFzF3Cf81U"
-		],
-		"msg": "f 开关状态:%s //-2 从配置文件重置,-1 关闭,1 打开<br><br>c 并发数:%d //-2 不限制并发数,-1 无条件直接限制,>0 限制并发数<br><br>t 个人查询限制时间:%ds //-1 不限制<br><br>p 限制页数:%d"
-	},
-	"share": {
-		"forceShareEnabled": false,
-		"onlineDate": "2018-08-20 00:00:00",
-		"regDaysForNewUser": 5,
-		"shareIntervalDays": 7,
-		"startHour": 8,
-		"endHour": 17,
-		"shareTimesUpperLimitR": 4000,
-		"shareTimesUpperLimitIrr": 1000
-	},
-	"appPushServiceRpc": "192.168.20.139:5566",
-	"afterSavePushId": 60,
-	"mail": [
-    {
-      "addr": "smtp.exmail.qq.com",
-      "port": 465,
-      "pwd": "ue9Rg9Sf4CVtdm5a",
-      "user": "public03@topnet.net.cn"
-    },
-    {
-      "addr": "smtp.exmail.qq.com",
-      "port": 465,
-      "pwd": "ue9Rg9Sf4CVtdm5a",
-      "user": "public03@topnet.net.cn"
-    }
-  ],
-	"policy": {
-		"title": "使用许可协议和隐私政策",
-		"content": "欢迎使用剑鱼标讯!\n我们依据最新法规及监管政策要求,更新了《剑鱼标讯用户使用许可协议》和《剑鱼标讯隐私政策》,在您使用剑鱼标讯前,请仔细阅读并充分了解。\n如你同意《剑鱼标讯用户使用许可协议》和《剑鱼标讯隐私政策》,请点击“同意”并开始使用我们的产品和服务,我们会全力保护你的个人信息安全。",
-		"href": [
-			"jyapp/free/staticPage/privacy_rules_client.html",
-			"jyapp/free/staticPage/permission_rules_client.html"
-		],
-		"name": [
-			"《剑鱼标讯隐私政策》",
-			"《剑鱼标讯用户使用许可协议》"
-		]
-	},
-	"tencentcloud": {
-		"appid": "TIDAXUV9",
-		"secretKey": "c7KJhtLMF805EeImBcOsoygu8KkdOrAfIaSU9SqAh8a2aiCgc69EfsaLM5EQcadF",
-		"version": "1.0.0"
-	},
-	"termValidity": 3600,
-	"uploadPath": "./web/staticres/jyapp/res/",
-	"appConfig":{
-		"pushGrpcServer":"192.168.20.139:5565",
-		"pushGrpcHeartBeat":3
-	},
-    "redisSessionLockSize":20,
-    "nsq":"192.168.3.240:4260",
-    "accountMergeOnline":"3333-03-30 00:00:00",
-	"bidSearchOldUserLimit": 1626105600,
-    "firstBindPop":3,
-    "maxBindPop":8,
-    "bindPopRedis":"merge",
-    "phoneFilterFlag":true,
-    "optimalTime":"2021-08-03 12:00:00",
-    "criticality":2
-}
+{
+	"cookiedomain": ".jianyu360.com",
+	"webport": "89",
+	"weixinrpc": "127.0.0.1:8083",
+	"cacheflag": false,
+	"agreement": "http",
+	"webdomain": "https://web-zxl.jydev.jianyu360.com",
+  "canReadNotice": 3,
+	"redirect": {
+		"wxpushlist": "/jyapp/wxpush/bidinfo/%s",
+		"newInfoFollow": "/jyapp/followent/newInfo/%s",
+		"wxpushfollowlist": "/jyapp/follow/notice/%s/%s",
+		"followset": "/jyapp/follow/set/%s/%s",
+		"myfeedbacks": "/jyapp/swordfish/myFeedbacks",
+		"historypush": "/jyapp/swordfish/historypush?f=push&t=%s&pushtime=%s",
+		"followEntDetail": "/jyapp/followent/detail/%s",
+		"msgremind": "/jyapp/vipsubscribe/msgremind?%s",
+		"vipreport": "/subscribepay/report/wxtplmsg?start=%s&end=%s&pushcount=%s",
+		"entnichehistorypush": "/jyapp/entniche/pushlist?selectTime=%s&pi=%s&pn=%s&type=%s",
+		"trackReport": "/page_entniche/business/t-report/detail/%s_%s/%s",
+		"viphomepage": "/jyapp/vipsubscribe/toSubVipSetPage",
+		"pushFollowEnt": "/jyapp/big/page/ent_follow",
+		"pushFollowProject": "/jyapp/big/page/pro_follow_list",
+		"pushMember": "/jyapp/big/page/big_subscribe?pushtime=%s",
+		"pushProjectForecast": "/jyapp/big/page/forecast_list",
+		"pushEntChange": "/jyapp/big/page/ent_follow",
+		"followProjectSet": "/jyapp/big/page/pro_follow_detail?fid=%s&sid=%s",
+		"memberreport":"/bigmember/report/openpushmsg?start=%s&end=%s&pushcount=%s",
+		"memberreport_experience":"/bigmember/report/openpushmsg?t=app_experience&start=%s&end=%s&pushcount=%s"
+	},
+	"followProject": 10,
+	"followentlimit": "10",
+	"followLimitDay": 30,
+	"followTipMsg": {
+		"title": "您关注的项目《%s》将于%s开标!",
+		"remark": "您收到这条信息是因为您之前设置了项目开标提醒,如果您不再需要此类提醒,可点击下方“详情”修改提醒设置。"
+	},
+	"followPushRpc": "127.0.0.1:8759",
+	"rewardText": [
+		"憋说话!赏我!",
+		"“赏”就一个字 我只说一次",
+		"厉害了word鱼!",
+		"看官赏点银子偶会更卖力噢!",
+		"各位客官,快来赏点吧!",
+		"夸我还是含蓄点的好,赏一个吧~",
+		"爱,就供养;喜欢,就打赏!",
+		"请简单粗暴地爱我!",
+		"最喜欢你一言不合就打赏的样子了~~~么么!"
+	],
+	"advertText": [
+		"与其一个人孤单  不如一群人狂欢   赶快加入剑鱼标讯社区",
+		"加入剑鱼标讯社区  和投标大神做朋友",
+		"来剑鱼标讯社区  找最合拍的伙伴",
+		"剑鱼标讯社区,让沟通连接你我。",
+		"剑鱼标讯社区,分享你的知识、解决问题、行业资源交换",
+		"勇敢发声,和老司机一起畅聊招投标。",
+		"春风十里,不如来剑鱼标讯社区!",
+		"只要心相通,相隔千里也能畅快交流。",
+		"弹指一挥间,剑鱼标讯因你而不同!",
+		"携手同行,认真对待每一次招投标"
+	],
+	"advertImg": "/jyapp/images/advert.png",
+	"advertName": "广告",
+	"advertUrl": "/jyapp/free/swordfish/about",
+	"industry": "分类综合测试",
+	"recommendEntLimit": "50",
+	"update": {
+		"isBrowserUpdate":1,
+		"grayupdate":false,
+		"version": "3.0.5",
+		"mustupdate": false,
+		"tipspace": 86400,
+		"ios_version": "2.7.3",
+		"ios_mustupdate": false,
+		"ios_openUpdate": false,
+		"ios_grayupdate":false,
+		"apkurl": "https://web2-jytest.jydev.jianyu360.com/jyinstallpkg/mobile/%s/jianyu360.apk",
+		"channelDir": {
+			"baidu": "baiduSem",
+			"shenma": "shenmaSem",
+			"huawei": "huawei",
+			"xiaomi": "xiaomi",
+			"yingyongbao": "yingyongbao",
+			"douyin": "douyin",
+			"weixin": "jywx",
+			"topnet": "topnet",
+			"duanxin": "duanxin",
+			"active_pullnew": "active_pullnew",
+			"default": "topnet"
+		}
+	},
+	"limitSearchText": {
+		"flag": false,
+		"count": 3,
+		"timeout": 60,
+		"totalPage": 3,
+		"userIds": [
+			"ocXeA0jceF8KRunDkwf9egT4bKI8",
+			"ocXeA0nBnaRZhKEZYhMBGvd4NvH0",
+			"ocXeA0rBxfsr_4GzysQFzF3Cf81U"
+		],
+		"msg": "f 开关状态:%s //-2 从配置文件重置,-1 关闭,1 打开<br><br>c 并发数:%d //-2 不限制并发数,-1 无条件直接限制,>0 限制并发数<br><br>t 个人查询限制时间:%ds //-1 不限制<br><br>p 限制页数:%d"
+	},
+	"share": {
+		"forceShareEnabled": false,
+		"onlineDate": "2018-08-20 00:00:00",
+		"regDaysForNewUser": 5,
+		"shareIntervalDays": 7,
+		"startHour": 8,
+		"endHour": 17,
+		"shareTimesUpperLimitR": 4000,
+		"shareTimesUpperLimitIrr": 1000
+	},
+	"appPushServiceRpc": "192.168.20.139:5566",
+	"afterSavePushId": 60,
+	"mail": [
+    {
+      "addr": "smtp.exmail.qq.com",
+      "port": 465,
+      "pwd": "ue9Rg9Sf4CVtdm5a",
+      "user": "public03@topnet.net.cn"
+    },
+    {
+      "addr": "smtp.exmail.qq.com",
+      "port": 465,
+      "pwd": "ue9Rg9Sf4CVtdm5a",
+      "user": "public03@topnet.net.cn"
+    }
+  ],
+	"policy": {
+		"title": "使用许可协议和隐私政策",
+		"content": "欢迎使用剑鱼标讯!\n我们依据最新法规及监管政策要求,更新了《剑鱼标讯用户使用许可协议》和《剑鱼标讯隐私政策》,在您使用剑鱼标讯前,请仔细阅读并充分了解。\n如你同意《剑鱼标讯用户使用许可协议》和《剑鱼标讯隐私政策》,请点击“同意”并开始使用我们的产品和服务,我们会全力保护你的个人信息安全。",
+		"href": [
+			"jyapp/free/staticPage/privacy_rules_client.html",
+			"jyapp/free/staticPage/permission_rules_client.html"
+		],
+		"name": [
+			"《剑鱼标讯隐私政策》",
+			"《剑鱼标讯用户使用许可协议》"
+		]
+	},
+	"tencentcloud": {
+		"appid": "TIDAXUV9",
+		"secretKey": "c7KJhtLMF805EeImBcOsoygu8KkdOrAfIaSU9SqAh8a2aiCgc69EfsaLM5EQcadF",
+		"version": "1.0.0"
+	},
+	"termValidity": 3600,
+	"uploadPath": "./web/staticres/jyapp/res/",
+	"appConfig":{
+		"pushGrpcServer":"192.168.20.139:5565",
+		"pushGrpcHeartBeat":3
+	},
+    "redisSessionLockSize":20,
+    "nsq":"192.168.3.240:4260",
+    "accountMergeOnline":"3333-03-30 00:00:00",
+	"bidSearchOldUserLimit": 1626105600,
+    "firstBindPop":3,
+    "maxBindPop":8,
+    "bindPopRedis":"merge",
+    "phoneFilterFlag":true,
+    "optimalTime":"2021-08-03 12:00:00",
+    "criticality":2
+}

+ 66 - 39
src/jfw/modules/app/src/web/staticres/jyapp/js/searchindex.js

@@ -50,13 +50,15 @@ function hiddenTips2() {
 function updateJump2() {
     $('#tipsType').hide()
     // location.replace('/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v')
-    $.ajax({
-        url: '/publicapply/free/oneProvinceSet',
-        type: 'POST',
-        success: function (res) {
-            location.href = '/jyapp/vipsubscribe/toSubVipSetPage'
-        }
-    })
+    location.href = '/jyapp/areaPack/page/set_area'
+    // $.ajax({
+    //     url: '/publicapply/free/oneProvinceSet',
+    //     type: 'POST',
+    //     success: function (res) {
+    //         sessionStorage.setItem('needPlayClick', 'true')
+    //         location.href = '/jyapp/areaPack/page/set_area'
+    //     }
+    // })
 }
 
 $(function () {
@@ -303,7 +305,7 @@ var SuperSearch = {
         if (isReload) {
             this.resetPage(isFocus);
             if (sessionStorage && history && isPushHistory) {
-                history.pushState({}, "supersearch", "/jyapp/jylab/mainSearch#");
+                history.pushState({type: 'supersearch'}, "supersearch", "/jyapp/jylab/mainSearch#");
             }
         }
         if (this.initFlag) {
@@ -487,6 +489,7 @@ var SuperSearch = {
             $.ajax({
                 url: '/publicapply/free/subscribe',
                 type: 'post',
+                async: false,
                 success: function (res) {
                     if (res.error_code === 0 && res.data) {
                         try {
@@ -499,6 +502,36 @@ var SuperSearch = {
                 },
             })
 
+          function ajaxAddSubKey () {
+            $.ajax({
+              type: "post",
+              url: "/jyapp/member/swordfish/ajaxReq",
+              data: {keys: SuperSearch.s_words, reqType: "subscribe"},
+              dataType: "json",
+              async: false,
+              success: function (r) {
+                if (r.flag == "y") {
+                  rFlag = true;
+                } else if (r.flag == "o") {
+                  EasyAlert.show("您已经超过订阅<br>关键字上限");
+                }
+              },
+              error: function () {
+                rFlag = true;
+              }
+            });
+            if (rFlag) {
+              SuperSearch.setSessionStorage();
+              var goHref = "/jyapp/vipsubscribe/toSetKeyWordPage";
+              if (!isSelectArea) {
+                goHref = "/jyapp/vipsubscribe/toSubVipSetPage";
+              }
+              setTimeout(function () {
+                window.location.href = goHref
+              }, 100);
+            }
+          }
+
             // S-直接订阅
             $("#supersearchPage #zjdy").on("tap", function (even) {
                 if (userId == "" || userId == null) {
@@ -541,43 +574,37 @@ var SuperSearch = {
                     if (nowKeyLength >= 10) {
                         return EasyAlert.show("您已经超过订阅<br>关键字上限");
                     } else {
+                      // 新用户,且没有地区,不提示,去选择地区
+                      // 新用户,有地区,去添加并到关键词页面
+                      // 老用户,没有地区,提示,去选择地区
                         if (isSelectArea) {
-                            // 执行下方原有逻辑
-                        } else if (isOldUser) {
+                            // 执行下方原有逻辑到关键词页面
+                        } else  {
+                            if (!isOldUser) {
+                              return updateJump2()
+                            }
                             return $('#tipsType').show()
                         }
                     }
 
-                    $.ajax({
-                        type: "post",
-                        url: "/jyapp/member/swordfish/ajaxReq",
-                        data: {keys: SuperSearch.s_words, reqType: "subscribe"},
-                        dataType: "json",
-                        async: false,
-                        success: function (r) {
-                            if (r.flag == "y") {
-                                rFlag = true;
-                            } else if (r.flag == "o") {
-                                EasyAlert.show("您已经超过订阅<br>关键字上限");
-                            }
-                        },
-                        error: function () {
-                            rFlag = true;
-                        }
-                    });
-                    if (rFlag) {
-                        SuperSearch.setSessionStorage();
-                        var goHref = "/jyapp/vipsubscribe/toSetKeyWordPage";
-                        if (!isSelectArea) {
-                            goHref = "/jyapp/vipsubscribe/toSubVipSetPage";
-                        }
-                        setTimeout(function () {
-                            window.location.href = goHref
-                        }, 100);
-                    }
+                  ajaxAddSubKey()
                 }
             });
             // E-直接订阅
+            if (sessionStorage.getItem('needPlayClick') === 'true') {
+              sessionStorage.setItem('needPlayClick', 'fix')
+              setTimeout(function () {
+                ajaxAddSubKey()
+              }, 700)
+            }
+
+            if (sessionStorage.getItem('needPlayClick') === 'fix' && SuperSearch.isMyPage) {
+              if (!(history.state && history.state.type == 'supersearch')) {
+                console.log('fix hash')
+                sessionStorage.setItem('needPlayClick', 'hash')
+                history.pushState({type: 'supersearch'}, "supersearch", "/jyapp/jylab/mainSearch#");
+              }
+            }
         }
 
         getKeyUserInfo()
@@ -3062,7 +3089,7 @@ var EntSearch = {
         if (isReload) {
             this.resetPage(isFocus);
             if (sessionStorage && history && isPushHistory) {
-                history.pushState({}, "entsesearch", "/jyapp/jylab/mainSearch#");
+                history.pushState({type: 'entsesearch'}, "entsesearch", "/jyapp/jylab/mainSearch#");
             }
         }
         if (this.initFlag) {
@@ -4193,4 +4220,4 @@ window.onload = function(){
 	if(ActiveTipFlag){
 		ActiveTip = new Active_Tip();
 	}
-}
+}

+ 9 - 8
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/keyset-list.js

@@ -410,15 +410,16 @@ var keySet = new Vue({
     },
     updateJump: function () {
       this.tipsType = false
+      location.replace('/jyapp/areaPack/page/set_area')
       // location.replace('/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v')
-      sessionStorage.setItem('userIsNew', true)
-      $.ajax({
-        url: '/publicapply/free/oneProvinceSet',
-        type: 'POST',
-        success: function (res) {
-          location.replace('/jyapp/vipsubscribe/toSubVipSetPage')
-        }})
-      // 
+      // sessionStorage.setItem('userIsNew', true)
+      // $.ajax({
+      //   url: '/publicapply/free/oneProvinceSet',
+      //   type: 'POST',
+      //   success: function (res) {
+      //     location.replace('/jyapp/areaPack/page/set_area')
+      //   }})
+      //
     },
   }
 })

+ 22 - 12
src/jfw/modules/app/src/web/staticres/jyapp/wxtsguide/main.js

@@ -1,5 +1,5 @@
 //关键词不合规范提示
-var hintcon=["您订阅的关键词较多,<br>可能会收不到推送信息。<br>点击 “?” 图标查看订阅技巧帮助页面。","您订阅的关键词字数过多,<br>可能会收不到推送信息。<br>点击 “?”图标查看订阅技巧帮助页面。","您订阅的关键词包含特殊符号,<br>可能会收不到推送信息。<br>点击 “?”图标查看订阅技巧帮助页面。"] 
+var hintcon=["您订阅的关键词较多,<br>可能会收不到推送信息。<br>点击 “?” 图标查看订阅技巧帮助页面。","您订阅的关键词字数过多,<br>可能会收不到推送信息。<br>点击 “?”图标查看订阅技巧帮助页面。","您订阅的关键词包含特殊符号,<br>可能会收不到推送信息。<br>点击 “?”图标查看订阅技巧帮助页面。"]
 var isiOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
 var Guide = {
 	industryRecomFlag: false,
@@ -21,6 +21,7 @@ var Guide = {
 	},
 	//所选的行业
 	selectIndustrys: [],
+	isSaveArea:false,
 	initStep_1: function(){
 		var industryUlWidth = $(window).width() - 30;
 		var liWidth = 80;
@@ -59,7 +60,7 @@ var Guide = {
 	skip: function(index){
 		$.post("/jyapp/tenderSubscribe/guide",{reqType: "over",index:index},function(r){
 		    var guideKey = localStorage.tsGuide_keywords
-		      if(localStorage){
+		    if(localStorage){
 		        localStorage.tsGuide_status = "1";
 		        localStorage.removeItem("tsGuide_selectIndustrys");
 		        localStorage.removeItem("tsGuide_keywords");
@@ -70,12 +71,18 @@ var Guide = {
 //			if (!mySysIsIos()){
 //				JyObj.finishGuide();
 //		    }
-			
-			if (guideKey) {
-		        window.location.replace('/jyapp/vipsubscribe/toSubVipSetPage')
-		    } else {
-		        window.location.replace('/jyapp/vipsubscribe/toSetKeyWordPage?type=add&index=0&from=guide')
-		    }
+			//完成导航 订阅关键词和地区 到设置首页
+			if (Guide.isSaveArea){
+				window.location.replace('/jyapp/vipsubscribe/toSubVipSetPage')
+		    }else{
+		      	// 跳过向导-跳转选择地区
+		      	window.location.replace('/jyapp/areaPack/page/set_area')
+			}
+			// if (guideKey) {
+		  //       window.location.replace('/jyapp/vipsubscribe/toSubVipSetPage')
+		  //   } else {
+		  //       window.location.replace('/jyapp/vipsubscribe/toSetKeyWordPage?type=add&index=0&from=guide')
+		  //   }
 //		    if (guideKey) {
 //		        window.location.replace('/jyapp/wxkeyset/keyset/index')
 //		    } else {
@@ -246,6 +253,9 @@ var Guide = {
 			dataType: "json",
 			traditional: true,
 			success: function(r){
+				if (r.flag){
+					Guide.isSaveArea= true;
+				}
 				if(text && text.match(/[^0-9a-zA-Z\u4E00-\u9FFF\s]/g)){
 					//EasyAlert.show(hintcon[2],"",2000);
 					//text=text.replace(/[^0-9a-zA-Z\u4E00-\u9FFF\s]/g,"")
@@ -253,7 +263,7 @@ var Guide = {
 				}
 			},
 			error: function(){
-				
+
 			}
 		});
 	},
@@ -519,7 +529,7 @@ var RecomKWs = function() {
 			//		});
 			//	}
 			//}
-			
+
 			var datalength = 0;
 			for(var i in industry_keyword){
 				if(datalength< industry_keyword[i].length){
@@ -835,7 +845,7 @@ $(function(){
 	}
 	$("body").removeClass("hide");
 	//帮助按钮
-	$(".jy_help").click(function(){	
+	$(".jy_help").click(function(){
 		JyObj.openExternalLink("https://mp.weixin.qq.com/mp/homepage?__biz=Mzk0MjIyMzY2Nw==&hid=1&sn=6b5d4f4aced2f4c9263e6e66639a40e6","使用帮助");
 	});
 	if(!isiOS){
@@ -903,4 +913,4 @@ $(function(){
 	}).on('compositionend', function(){
 	    $(this).prop('comStart', false);
 	});
-});
+});

+ 51 - 3
src/jfw/modules/app/src/web/templates/areaPack/page_set_area.html

@@ -152,7 +152,10 @@
                     basenum: 1,
                     provincenum: 0, // 购买的省份数量
                 },
-                popupTip: false
+                popupTip: false,
+                noAreaFreeType: false, // 免费用户未设置地区时显示弹窗
+                backTipShowCount: 0, // 离开页面展示弹窗次数
+                successBack: false
             },
             computed: {
                 moreThanSubCount: function () {
@@ -218,10 +221,50 @@
                         this.setAreaAllNotSelected()
                     } else {
                         this.getUserSubscribe()
-                    } 
+                    }
                 }
             },
             methods: {
+              showBackTip: function () {
+                if (this.successBack) {
+                  history.back()
+                  return
+                }
+                var _this = this
+                this.$dialog.confirm({
+                  title: '提示信息',
+                  width: 303,
+                  className: 'unbind-dialog',
+                  message: '您的区域尚未选择,确定退出吗?',
+                  confirmButtonText: '确认',
+                  confirmButtonColor: '#2ABED1'
+                }).then(function () {
+                  sessionStorage.removeItem('needPlayClick')
+                  history.back()
+                }).catch(function () {
+                  _this.addPopState(true)
+                })
+              },
+              addPopState: function (type) {
+                var pushContent = {
+                  info: '订阅省份返回',
+                  url: '#tipover'
+                }
+                if (type) {
+                  history.pushState(pushContent, null, pushContent.url);
+                }
+              },
+              // 页面跳转返回提示
+              addBackTip: function () {
+                var _this = this
+                this.addPopState(!history.state && this.backTipShowCount < 1)
+                $(window).on('popstate', function () {
+                  setTimeout(function () {
+                    _this.showBackTip()
+                  }, 100)
+                  _this.backTipShowCount++
+                })
+              },
                 initPageInfo: function () {
                     var area = this.selectedArea
                     this.setComponentState(area)
@@ -249,6 +292,7 @@
                                 if (res.data) {
                                     if (res.data.area === null || res.data.area === undefined) {
                                         _this.setAreaAllNotSelected()
+                                        _this.addBackTip()
                                     } else {
                                         if (res.data.area) {
                                             // 赋值默认已选
@@ -279,7 +323,11 @@
                         },
                         success: function (res) {
                             if (res && res.success) {
-                                history.back()           
+                                sessionStorage.setItem('needPlayClick', 'true')
+                                if (history.state) {
+                                  _this.successBack = true
+                                }
+                                history.back()
                             } else {
                                 if (res.errMsg) {
                                     _this.$toast(res.errMsg)

+ 8 - 2
src/jfw/modules/app/src/web/templates/big-member/page_unit_portrayal.html

@@ -178,6 +178,12 @@
             background-color: #e0e0e0;
             margin-left: 0.2rem;
         }
+        .client .item-name{
+          text-decoration: none;
+        }
+        .client .q-name{
+          font-weight: 500;
+        }
     </style>
 </head>
 <body>
@@ -455,7 +461,7 @@
                                   <div class="item-label">
                                       <span class="item-name">${item.business}</span>
                                       <span class="item-count">${item.total}个</span>
-                                       <span class="item-rate">${item.rate?(item.rate).toFixed(2):""}%</span>
+                                       <span class="item-rate">${item.rate?(item.rate * 100).toFixed(2)+"%":""}</span>
                                       <span class="item-time">${item.lastTime}</span>
                                   </div>
                                   <div class="item-progress">
@@ -484,7 +490,7 @@
                                   <div class="item-label">
                                       <span class="item-name">${item.business}</span>
                                       <span class="item-count">${item.total}个</span>
-                                       <span class="item-rate">${item.rate?(item.rate).toFixed(2):""}%</span>
+                                       <span class="item-rate">${item.rate?(item.rate * 100).toFixed(2)+"%":""}</span>
                                       <span class="item-time">${item.lastTime}</span>
                                   </div>
                                   <div class="item-progress">

+ 13 - 12
src/jfw/modules/app/src/web/templates/weixin/historypush.html

@@ -665,7 +665,7 @@
                 url: '/publicapply/free/areapack/update',
                 type: 'POST',
                 success: function (res) {
-                    
+
                 }
             })
         }
@@ -867,7 +867,7 @@
                     tokeyset()
                 }
             }
-            
+
         });
         $(".tab_left .area").hide();
         if (r.isPassCount) {
@@ -903,7 +903,7 @@
                     tosetpage()
                 }
             }
-            
+
         });
         if(productType == 0) {
             $(".vip_report").show();
@@ -1206,7 +1206,7 @@
                     if (listString) {
                         $('.header_header').show()
                     }
-                } 
+                }
                 $(".app-content").css("justify-content","flex-start");
                 $(".switch").addClass("only-personal");
                 $(".switch .user_pro").text("立即使用 超级订阅");
@@ -1730,14 +1730,15 @@ function hasNoData() {
     }
     function updateJump2() {
         $('#tipsType').hide()
+        location.href = '/jyapp/areaPack/page/set_area'
         // location.replace('/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v')
-        $.ajax({
-            url: '/publicapply/free/oneProvinceSet',
-            type: 'POST',
-            success: function (res) {
-                location.href = '/jyapp/vipsubscribe/toSubVipSetPage'
-            }
-        })
+        // $.ajax({
+        //     url: '/publicapply/free/oneProvinceSet',
+        //     type: 'POST',
+        //     success: function (res) {
+        //         location.href = '/jyapp/areaPack/page/set_area'
+        //     }
+        // })
     }
   //
   function appendList(content) {
@@ -1820,7 +1821,7 @@ function hasNoData() {
   function ajaxFun(time, area, city, subscopeclass, buyerclass, key, subtype) {
     if(historyVt == 's') {
       $(".set_keyword").hide();
-    } 
+    }
       if (!ajaxFlag) {
           return
       }

+ 4 - 0
src/jfw/modules/app/src/web/templates/weixin/search/mainSearch.html

@@ -1399,6 +1399,10 @@
           return;
         }
         //登录返回之后,更新历史记录,获取userId
+      if (sessionStorage.getItem('needPlayClick') === 'hash') {
+        sessionStorage.removeItem('needPlayClick')
+        return;
+      }
         if(sessionStorage.searchpageName == "superSearch"){
             SuperSearch.init(false,false,true);
         }else if(sessionStorage.searchpageName == "superSearch_back"){

+ 1 - 1
src/jfw/modules/bigmember/src/entity/portrait.go

@@ -53,7 +53,7 @@ func CreateSubVipPortraitManager(userid string, pageFlag, searchValue string, is
 			if searchValue != "" && jy.Portraitexperience(userid, searchValue, isWinner) {
 				return &Portrait{userid}, 3, nil
 			}
-			return nil, -1, nil
+			return &Portrait{userid}, -1, nil
 		} else { //超级订阅升级版-校验超级订阅画像浏览次数
 			err := bigMsg.SubVipPortraitTimesCheck(db.Mysql, searchValue, isWinner)
 			if err == nil {

+ 2 - 1
src/jfw/modules/bigmember/src/service/use/use.go

@@ -608,6 +608,7 @@ func (u *Use) IsAdd() {
 			a_key, _ := o_jy["a_key"].([]interface{})
 			hasKey = len(a_key) > 0
 		}
+		d["freeHasKey"] = hasKey
 		//获取用户权限详情
 		power := []int{} //GetNewPower(userid)
 		bigPower := jy.GetBigVipUserBaseMsg(userid, db.Mysql, db.Mgo)
@@ -636,7 +637,7 @@ func (u *Use) IsAdd() {
 		filePackNum := redis.GetInt(jy.PowerCacheDb, filePackKey)
 		d["fileNum"] = config.Config.FileUploadNum[uk] - redis.GetInt(jy.PowerCacheDb, fmt.Sprintf(jy.VipFileUploadNumKey, userid, fmt.Sprint(time.Now().Month()))) + filePackNum
 		//新用户->新订阅设置页面
-		if config.Config.NewFreeUser < bigPower.Registedate || !hasKey {
+		if config.Config.NewFreeUser < bigPower.Registedate {
 			d["isUpgrade"] = true
 		}
 		uid := userid

+ 2 - 2
src/jfw/modules/publicapply/src/subscribe/entity/entity.go

@@ -37,7 +37,7 @@ func NewParamInfo(userId string) *ParamInfo {
 	return &ParamInfo{userId}
 }
 
-//
+//dev4.6.3.21 暂不调用
 func (this *ParamInfo) SetAreaByOneProvince() (b bool) {
 	b = true
 	mData, ok := db.Mgo.FindById("user", this.UserId, `{"o_jy":1}`)
@@ -57,7 +57,7 @@ func (this *ParamInfo) SetAreaByOneProvince() (b bool) {
 			areas = append(areas, qutil.ObjArrToStringArr(area)...)
 		}
 		setMap := map[string]interface{}{
-			"o_jy.i_newfree": 1, //老免费用户=>新订阅设置页面 20211122
+			// "o_jy.i_newfree": 1, //老免费用户=>新订阅设置页面 20211122
 		}
 		if len(areas) == 1 {
 			//设置地区

+ 6 - 6
src/jfw/modules/publicapply/src/subscribePush/entity/keyWords.go

@@ -101,7 +101,7 @@ func directSubKWSFree(updateItems string, keys string, userId string) map[string
 					},
 				},
 				updateItems + ".l_modifydate": time.Now().Unix(),
-				updateItems + ".i_newfree":    1, //老免费用户=>新订阅设置页面 20211122
+				// updateItems + ".i_newfree":    1, //老免费用户=>新订阅设置页面 20211122
 			},
 			}); ok {
 				flag = "y"
@@ -131,7 +131,7 @@ func directSubKWSFree(updateItems string, keys string, userId string) map[string
 					"$set": bson.M{
 						updateItems + ".l_modifydate": time.Now().Unix(),
 						updateItems + ".s_item":       classify_name,
-						updateItems + ".i_newfree":    1, //老免费用户=>新订阅设置页面 20211122
+						// updateItems + ".i_newfree":    1, //老免费用户=>新订阅设置页面 20211122
 					},
 				})
 				if ok {
@@ -192,8 +192,8 @@ func AddKeyWordsFree(types, userId, classIndex, className, keywordsIndex, keywor
 		if !errs {
 			db.Mgo.UpdateById("user", userId, map[string]interface{}{
 				"$set": map[string]interface{}{
-					types + ".a_key":     []map[string]interface{}{},
-					types + ".i_newfree": 1, //老免费用户=>新订阅设置页面 20211122
+					types + ".a_key": []map[string]interface{}{},
+					// types + ".i_newfree": 1, //老免费用户=>新订阅设置页面 20211122
 				},
 			})
 		}
@@ -231,7 +231,7 @@ func AddKeyWordsFree(types, userId, classIndex, className, keywordsIndex, keywor
 		} else {
 			//修改关键词
 			saveData[types+".s_item"] = className
-			saveData[types+".i_newfree"] = 1 //老免费用户=>新订阅设置页面 20211122
+			// saveData[types+".i_newfree"] = 1 //老免费用户=>新订阅设置页面 20211122
 			saveData[types+".a_key."+keywordsIndex+".key"] = newKws
 			saveData[types+".a_key."+keywordsIndex+".appendkey"] = append(appendKeyword, _kws[1:]...)
 			saveData[types+".a_key."+keywordsIndex+".notkey"] = notKeyword
@@ -518,7 +518,7 @@ func (this *UpdateOther) UpdateOther() map[string]interface{} {
 	}()
 	flag := true
 	if types == "o_jy" {
-		setMap["o_jy.i_newfree"] = 1 //老免费用户=>新订阅设置页面 20211122
+		// setMap["o_jy.i_newfree"] = 1 //老免费用户=>新订阅设置页面 20211122
 	}
 	if setMap != nil {
 		if db.Mgo.UpdateById("user", this.UserId, map[string]interface{}{

+ 2 - 2
src/jfw/modules/publicapply/src/subscribePush/entity/setting.go

@@ -66,11 +66,11 @@ func freeSet(area map[string]interface{}, industry []string, userId string) *Fun
 			return &FuncResult{false, errors.New(fmt.Sprintf("订阅地区调整次数(%d)已用完", areacount+jy.BaseAreaNum)), nil}
 		}
 	}
+	//清楚缓存
+	jy.ClearBigVipUserPower(userId)
 	if !FreeSubChange(userId, &area, industry, ppb, isfirst) {
 		return &FuncResult{false, errors.New("保存修改出错"), nil}
 	} else if issetredis { //更新调整次数 非全国(第一次 不消耗次数)
-		//清楚缓存
-		jy.ClearBigVipUserPower(userId)
 		//优先使用省份订阅包次数
 		// log.Println(areacount, "---", ppnum)
 		// log.Println(jy.BaseAreaNum, "---", fpnum)

+ 10 - 1
src/jfw/modules/weixin/src/wx/subscribe.go

@@ -168,8 +168,17 @@ func (rs *ReplyStruct) freeFastSubscribe() {
 		}
 	}
 	if rs.Pcresult == "ok" {
+		key := ""
+		//多个关键词合并成一个
+		if keyarr := strings.Split(rs.Subkey, "++"); len(keyarr) > 0 {
+			for _, v := range keyarr {
+				key += v
+			}
+		} else {
+			key = rs.Subkey
+		}
 		o_jys = append(o_jys, KeysWords{
-			Key:    strings.Split(rs.Subkey, "++"),
+			Key:    []string{key},
 			Notkey: []string{},
 		})
 		if tools.MQFW.Update("user", &map[string]interface{}{

BIN
src/web/staticres/big-member/image/new_info/item-top.png


BIN
src/web/staticres/common-module/collection/image/bg/vip_bg_1.png


+ 62 - 36
src/web/staticres/js/wxSupersearch.js

@@ -50,14 +50,17 @@ function hiddenTips2() {
 }
 function updateJump2() {
   $('#tipsType').hide()
+  SuperSearch.setSessionStorage();
   // location.replace('/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v')
-  $.ajax({
-    url: '/publicapply/free/oneProvinceSet',
-    type: 'POST',
-    success: function (res) {
-      location.href = '/front/vipsubscribe/toSubVipSetPage'
-    }
-  })
+  location.href = '/areaPack/wx/page/set_area'
+  // $.ajax({
+  //   url: '/publicapply/free/oneProvinceSet',
+  //   type: 'POST',
+  //   success: function (res) {
+  //     sessionStorage.setItem('needPlayClick', 'true')
+  //     location.href = '/areaPack/wx/page/set_area'
+  //   }
+  // })
 
 }
 var nowClientHeight = document.documentElement.clientHeight || document.body.clientHeight
@@ -273,7 +276,7 @@ var SuperSearch = {
     if(isReload){
       this.resetPage(isFocus);
       if(sessionStorage && history && isPushHistory){
-        history.pushState({},"","");
+        history.pushState({type: 'supersearch'}, "supersearch", "");
       }
       this.searchKeyword();
     }
@@ -446,6 +449,7 @@ var SuperSearch = {
       $.ajax({
         url: '/publicapply/free/subscribe',
         type: 'post',
+        async: false,
         success: function (res) {
           if (res.error_code === 0 && res.data) {
             try {
@@ -457,10 +461,35 @@ var SuperSearch = {
           }
         },
       })
-
+      var rFlag = false;
+      function ajaxAddSubKey () {
+        $.ajax({
+          type: "post",
+          url: "/member/swordfish/ajaxReq",
+          data: {keys:SuperSearch.s_words,reqType: "subscribe"},
+          dataType: "json",
+          async: false,
+          success: function(r){
+            if(r.flag=="y"){
+              rFlag = true;
+            }else if(r.flag=="o"){
+              EasyAlert.show("您已经超过订阅<br>关键字上限");
+            }
+          },error: function(){
+            rFlag = true;
+          }
+        });
+        if(rFlag){
+          SuperSearch.setSessionStorage();
+          var goHref = "/front/vipsubscribe/toSetKeyWordPage";
+          if (!isSelectArea) {
+            goHref = "/front/vipsubscribe/toSubVipSetPage";
+          }
+          window.location.href = goHref
+        }
+      }
       // S-直接订阅
     $("#supersearchPage #zjdy").on("tap",function(){
-      var rFlag = false;
       if (SuperSearch.s_words==""){
         SuperSearch.s_words=$.trim($("#supersearchPage [name='super_searchinput']").val());
         SuperSearch.s_words=SuperSearch.s_words.replace(/\s+/g," ");
@@ -499,39 +528,36 @@ var SuperSearch = {
           if (nowKeyLength >= 10) {
             return EasyAlert.show("您已经超过订阅<br>关键字上限");
           } else {
+            // 新用户,且没有地区,不提示,去选择地区
+            // 新用户,有地区,去添加并到关键词页面
+            // 老用户,没有地区,提示,去选择地区
             if (isSelectArea) {
-              // 执行下方原有逻辑
-            } else if (isOldUser) {
+              // 执行下方原有逻辑到关键词页面
+            } else  {
+              if (!isOldUser) {
+                return updateJump2()
+              }
               return $('#tipsType').show()
             }
           }
-        $.ajax({
-          type: "post",
-          url: "/member/swordfish/ajaxReq",
-          data: {keys:SuperSearch.s_words,reqType: "subscribe"},
-          dataType: "json",
-          async: false,
-          success: function(r){
-            if(r.flag=="y"){
-              rFlag = true;
-            }else if(r.flag=="o"){
-              EasyAlert.show("您已经超过订阅<br>关键字上限");
-            }
-          },error: function(){
-            rFlag = true;
-          }
-        });
-        if(rFlag){
-            SuperSearch.setSessionStorage();
-            var goHref = "/front/vipsubscribe/toSetKeyWordPage";
-            if (!isSelectArea) {
-              goHref = "/front/vipsubscribe/toSubVipSetPage";
-            }
-            window.location.href = goHref
-        }
+          ajaxAddSubKey()
       }
     });
       // E-直接订阅
+      if (sessionStorage.getItem('needPlayClick') === 'true') {
+        sessionStorage.setItem('needPlayClick', 'fix')
+        SuperSearch.setSessionStorage();
+        setTimeout(function () {
+          ajaxAddSubKey()
+        }, 700)
+      }
+      if (sessionStorage.getItem('needPlayClick') === 'fix' && SuperSearch.isMyPage) {
+        if (!(history.state && history.state.type == 'supersearch')) {
+          console.log('fix hash')
+          sessionStorage.setItem('needPlayClick', 'hash')
+          history.pushState({type: 'supersearch'}, "supersearch", "");
+        }
+      }
     }
 
     getKeyUserInfo()

+ 10 - 9
src/web/staticres/vipsubscribe/js/keyset-list.js

@@ -400,15 +400,16 @@ var keySet = new Vue({
     },
     updateJump: function () {
       this.tipsType = false
-      sessionStorage.setItem('userIsNew', true)
-      $.ajax({
-        url: '/publicapply/free/oneProvinceSet',
-        type: 'POST',
-        success: function (res) {
-        // location.replace('/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v')
-          location.replace('/front/vipsubscribe/toSubVipSetPage')
-        }
-      })
+      // sessionStorage.setItem('userIsNew', true)
+      location.replace('/areaPack/wx/page/set_area')
+      // $.ajax({
+      //   url: '/publicapply/free/oneProvinceSet',
+      //   type: 'POST',
+      //   success: function (res) {
+      //   // location.replace('/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v')
+      //     location.replace('/areaPack/wx/page/set_area')
+      //   }
+      // })
     },
     // 清除订阅页面缓存
     clearHistoryPushDataCache: function () {

+ 21 - 11
src/web/staticres/wxtsguide/main.js

@@ -1,5 +1,5 @@
 //关键词不合规范提示
-var hintcon=["您订阅的关键词较多,<br>可能会收不到推送信息。<br>点击 “?” 图标查看订阅技巧帮助页面。","您订阅的关键词字数过多,<br>可能会收不到推送信息。<br>点击 “?”图标查看订阅技巧帮助页面。","您订阅的关键词包含特殊符号,<br>可能会收不到推送信息。<br>点击 “?”图标查看订阅技巧帮助页面。"] 
+var hintcon=["您订阅的关键词较多,<br>可能会收不到推送信息。<br>点击 “?” 图标查看订阅技巧帮助页面。","您订阅的关键词字数过多,<br>可能会收不到推送信息。<br>点击 “?”图标查看订阅技巧帮助页面。","您订阅的关键词包含特殊符号,<br>可能会收不到推送信息。<br>点击 “?”图标查看订阅技巧帮助页面。"]
 var isiOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
 var Guide = {
 	industryRecomFlag: false,
@@ -21,6 +21,7 @@ var Guide = {
 	},
 	//所选的行业
 	selectIndustrys: [],
+	isSaveArea:false,
 	initStep_1: function(){
 		var industryUlWidth = $(window).width() - 30;
 		var liWidth = 80;
@@ -66,12 +67,18 @@ var Guide = {
 	        	localStorage.removeItem("tsGuide_preview");
 	        	localStorage.removeItem("tsGuide_step");
 	      	}
-	
-	      	if (guideKey) {
-	        	window.location.replace('/front/vipsubscribe/toSubVipSetPage')
-	      	} else {
-	        	window.location.replace('/front/vipsubscribe/toSetKeyWordPage?type=add&index=0&from=guide')
-	      	}
+			//完成导航 订阅关键词和地区 到设置首页
+			if (Guide.isSaveArea){
+				window.location.replace('/front/vipsubscribe/toSubVipSetPage')
+		    }else{
+		      	// 跳过向导-跳转选择地区
+	          	window.location.replace('/areaPack/wx/page/set_area')
+			}
+	      	// if (guideKey) {
+	        // 	window.location.replace('/front/vipsubscribe/toSubVipSetPage')
+	      	// } else {
+	        // 	window.location.replace('/front/vipsubscribe/toSetKeyWordPage?type=add&index=0&from=guide')
+	      	// }
 //	      	if (guideKey) {
 //	        	window.location.replace('/wxkeyset/keyset/index')
 //	      	} else {
@@ -242,6 +249,9 @@ var Guide = {
 			dataType: "json",
 			traditional: true,
 			success: function(r){
+				if (r.flag){
+					Guide.isSaveArea= true;
+				}
 				if(text && text.match(/[^0-9a-zA-Z\u4E00-\u9FFF\s]/g)){
 					//EasyAlert.show(hintcon[2],"",2000);
 					//text=text.replace(/[^0-9a-zA-Z\u4E00-\u9FFF\s]/g,"")
@@ -249,7 +259,7 @@ var Guide = {
 				}
 			},
 			error: function(){
-				
+
 			}
 		});
 	},
@@ -512,7 +522,7 @@ var RecomKWs = function() {
 			//		});
 			//	}
 			//}
-			
+
 			var datalength = 0;
 			for(var i in industry_keyword){
 				if(datalength< industry_keyword[i].length){
@@ -818,7 +828,7 @@ $(function(){
 	}
 	if(localStorage && localStorage.tsGuide_status == "1"){
 		isBodyShow = false;
-		window.history.go(-1);
+//		window.history.go(-1);
 		$("body").addClass("hide");
 		localStorage.tsGuide_status = "0";
 		window.history.go(-1);
@@ -904,4 +914,4 @@ $(function(){
 	}).on('compositionend', function(){
 	    $(this).prop('comStart', false);
 	});
-});
+});

+ 51 - 3
src/web/templates/areaPack/wx/page_set_area.html

@@ -152,7 +152,10 @@
                     basenum: 1,
                     provincenum: 0, // 购买的省份数量
                 },
-                popupTip: false
+                popupTip: false,
+                noAreaFreeType: false, // 免费用户未设置地区时显示弹窗
+                backTipShowCount: 0, // 离开页面展示弹窗次数
+                successBack: false
             },
             computed: {
                 moreThanSubCount: function () {
@@ -218,10 +221,50 @@
                         this.setAreaAllNotSelected()
                     } else {
                         this.getUserSubscribe()
-                    } 
+                    }
                 }
             },
             methods: {
+              showBackTip: function () {
+                if (this.successBack) {
+                  history.back()
+                  return
+                }
+                var _this = this
+                this.$dialog.confirm({
+                  title: '提示信息',
+                  width: 303,
+                  className: 'unbind-dialog',
+                  message: '您的区域尚未选择,确定退出吗?',
+                  confirmButtonText: '确认',
+                  confirmButtonColor: '#2ABED1'
+                }).then(function () {
+                  sessionStorage.removeItem('needPlayClick')
+                  history.back()
+                }).catch(function () {
+                  _this.addPopState(true)
+                })
+              },
+              addPopState: function (type) {
+                var pushContent = {
+                  info: '订阅省份返回',
+                  url: '#tipover'
+                }
+                if (type) {
+                  history.pushState(pushContent, null, pushContent.url);
+                }
+              },
+              // 页面跳转返回提示
+              addBackTip: function () {
+                var _this = this
+                this.addPopState(!history.state && this.backTipShowCount < 1)
+                $(window).on('popstate', function () {
+                  setTimeout(function () {
+                    _this.showBackTip()
+                  }, 100)
+                  _this.backTipShowCount++
+                })
+              },
                 initPageInfo: function () {
                     var area = this.selectedArea
                     this.setComponentState(area)
@@ -249,6 +292,7 @@
                                 if (res.data) {
                                     if (res.data.area === null || res.data.area === undefined) {
                                         _this.setAreaAllNotSelected()
+                                        _this.addBackTip()
                                     } else {
                                         if (res.data.area) {
                                             // 赋值默认已选
@@ -279,7 +323,11 @@
                         },
                         success: function (res) {
                             if (res && res.success) {
-                                history.back()           
+                              sessionStorage.setItem('needPlayClick', 'true')
+                              if (history.state) {
+                                  _this.successBack = true
+                                }
+                                history.back()
                             } else {
                                 if (res.errMsg) {
                                     _this.$toast(res.errMsg)

+ 1 - 1
src/web/templates/big-member/pc/page_cg.html

@@ -129,7 +129,7 @@
             <div class="item-info-group">
                 <div class="title-info-group">重点及首次合作企业</div>
                 <div class="content-info-group">
-<!--                    <p>按行业分析重点客户类型,综合评估采购单位的采<br>购项目类型,分析行业市场趋势,帮助发掘客户和<br>渠道;</p>-->
+                    <p>按行业分析重点客户类型,综合评估采购单位的采<br>购项目类型,分析行业市场趋势,帮助发掘客户和<br>渠道;</p>
                     <p>多维度交叉分析,提供重点客户、中标数量、平均<br>折扣率、合作日期,直观了解采购单位与企业关系<br>远近,辅助投标决策。</p>
                     <div class="subpage-button gold" data-source="重点合作企业">咨询客服,了解更多细节</div>
                 </div>

+ 2 - 2
src/web/templates/big-member/wx/page_unit_portrayal.html

@@ -608,7 +608,7 @@
                       <div class="item-label">
                         <span class="item-name">${item.business}</span>
                         <span class="item-count">${item.total}个</span>
-                        <span class="item-rate">${item.rate?(item.rate).toFixed(2)+"%":""}</span>
+                        <span class="item-rate">${item.rate?(item.rate * 100).toFixed(2)+"%":""}</span>
                         <span class="item-time">${item.lastTime}</span>
                       </div>
                       <div class="item-progress">
@@ -637,7 +637,7 @@
                       <div class="item-label">
                         <span class="item-name">${item.business}</span>
                         <span class="item-count">${item.total}个</span>
-                        <span class="item-rate">${item.rate?(item.rate).toFixed(2)+"%":""}</span>
+                        <span class="item-rate">${item.rate?(item.rate * 100).toFixed(2)+"%":""}</span>
                         <span class="item-time">${item.lastTime}</span>
                       </div>
                       <div class="item-progress">

+ 8 - 7
src/web/templates/weixin/historypush.html

@@ -1823,13 +1823,14 @@
         function updateJump2() {
             $('#tipsType').hide()
             // location.replace('/jyapp/vipsubscribe/toSubVipSetPage?vSwitch=v')
-            $.ajax({
-                url: '/publicapply/free/oneProvinceSet',
-                type: 'POST',
-                success: function (res) {
-                    location.href = '/front/vipsubscribe/toSubVipSetPage'
-                }
-            })
+            location.href = '/areaPack/wx/page/set_area'
+            // $.ajax({
+            //     url: '/publicapply/free/oneProvinceSet',
+            //     type: 'POST',
+            //     success: function (res) {
+            //         location.href = '/areaPack/wx/page/set_area'
+            //     }
+            // })
         }
       //
       function appendList(content) {

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

@@ -1244,7 +1244,18 @@
     	});
 	}
 	function backThisPage(){
-		initFlag = 0;
+    // if (sessionStorage.getItem('needPlayClick') === 'hash') {
+    //   sessionStorage.removeItem('needPlayClick')
+    //   return;
+    // }
+    //
+    // if (sessionStorage.getItem('needPlayClick') === 'true') {
+    //   sessionStorage.removeItem('needPlayClick')
+    //   sessionStorage.searchpageName = "superSearch"
+    // }
+
+
+    initFlag = 0;
 		if(sessionStorage){
 			if(sessionStorage.searchpageName == "superSearch"){
 				initFlag = 1;