瀏覽代碼

Merge branch 'master' into feature/v4.9.51

lianbingjie 11 月之前
父節點
當前提交
359c35147f

+ 333 - 320
src/jfw/front/supsearch.go

@@ -388,313 +388,9 @@ func (p *Pcsearch) SearchPower(module string) {
 // PcSearchIndex 路由搜索
 func (p *Pcsearch) PcSearchIndex(module string) error {
 	defer util.Catch()
-	//页面重构后 前端中转页 P480#2
-	//if !strings.Contains(p.Request.URL.String(), "useOld") {
-	return p.Render("/pc/search/index.html", &p.T)
-	//}
 	sessVal := p.Session().GetMultiple()
-	p.T["logid"] = config.Seoconfig["jysslby"].(string)
-	pageSize, _ := p.GetInteger("pageSize")
-	if pageSize == 0 {
-		pageSize = 50
-	}
-	accountId := util.Int64All(sessVal["accountId"])
-	entAccountId := util.Int64All(sessVal["entAccountId"])
-	entId := util.Int64All(sessVal["entId"])
-	entUserId := util.Int64All(sessVal["entUserId"])
-	keywords := p.GetString("keywords")
-	industry := strings.TrimSpace(p.GetString("industry")) //选中的行业
-	area := p.GetString("area")                            //地区
-	publishtime := p.GetString("publishtime")              //发布时间
-	timeslot := p.GetString("timeslot")                    //显示选择时间
-	toptype := p.GetString("toptype")                      //信息类型
-	subtype := p.GetString("subtype")                      //信息类型
-	minprice := p.GetString("minprice")                    //最低价格
-	maxprice := p.GetString("maxprice")                    //最高价格
-	fileExists := p.GetString("fileExists")                //是否有附件--所有用户都可用此功能 0:全部;1:有附件;-1:无附件
-	//搜索优化P260--start--
-	searchGroup, _ := p.GetInteger("searchGroup")     //搜索分组;默认0:全部;1:招标采购搜索;2:超前项目。
-	searchMode, _ := p.GetInteger("searchMode")       //搜索模式;默认0:精准模式(不进行系统分词);1:模糊模式(进行系统分词)。
-	wordsMode, _ := p.GetInteger("wordsMode")         //搜索关键词模式;默认0:包含所有关键词;1:包含任意关键词。
-	additionalWords := p.GetString("additionalWords") //关键词:附加关键词(副:五组,每组最多15个字符 每组,号隔开)
-	//--end--
-	//userId, _ := p.GetSession("userId").(string)
-	//phone, _ := p.GetSession("phone").(string)
 	userId := util.ObjToString(sessVal["userId"])
-	phone := util.ObjToString(sessVal["phone"])
-	selectType := p.GetString("selectType") //搜索范围
-	if selectType == "" {
-		selectType = "title,content"
-	}
-	//p353包含采购意向与拟建
-	noLoginBl := false
-	if userId == "" {
-		//未登录用户访问全部信息类型 需要过滤掉 拟建
-		// p397 未登录用户收回查看拟建权限
-		if searchGroup < 2 {
-			if strings.Contains(subtype, "采购意向") || strings.Contains(subtype, "拟建") {
-				var ss []string
-				for _, v := range strings.Split(subtype, ",") {
-					if v != "采购意向" && !strings.Contains(v, "拟建") {
-						ss = append(ss, v)
-					}
-				}
-				subtype = strings.Join(ss, ",")
-			}
-			if subtype == "" {
-				subtype = "招标预告,招标公告,招标结果,招标信用信息"
-				noLoginBl = true
-			}
-		}
-		//未登录用户搜索范围 标题和 正文
-		var selectTypeArr []string
-		selectTypeSplit := strings.Split(selectType, ",")
-		// 未登录用户只能搜标题和正文
-		for i := 0; i < len(selectTypeSplit); i++ {
-			if selectTypeSplit[i] == "title" || selectTypeSplit[i] == "content" {
-				selectTypeArr = append(selectTypeArr, selectTypeSplit[i])
-			}
-		}
-		if len(selectTypeArr) > 0 {
-			selectType = strings.Join(selectTypeArr, ",")
-		}
-		if publishtime != "" {
-			publishtime = ""
-		}
-	}
-	//高级筛选 仅vip用户可查询
-	var (
-		hasBuyerTel, hasWinnerTel = "", "" //是否有采购单位电话、是否有中标单位电话 y:有 n:没有
-		buyerclass                = ""     //采购单位类别
-		notkey                    = ""     //排除词
-		city                      = ""     //城市 付费用户可用
-		district                  = ""
-		regionMap                 = ""
-		buyer                     = ""
-		winner                    = ""
-		agency                    = ""
-		mobileTag                 []string //P513中国移动定制招标采购搜索
-	)
-	// 领域化标识
-	territorialization := p.GetString("bid_field")
-	switch module {
-	case "medical": // 领域类型  医疗-0101
-		if territorialization == "" {
-			territorialization = "0101"
-		}
-	case "BIProperty":
-		territorialization = territorialization
-	default:
-		territorialization = ""
-	}
-	if territorialization == "" {
-		territorialization = p.GetString("property")
-	}
-	userInfo := jy.GetVipState(p.Session(), *config.Middleground, userId)
-	queryItems := userInfo.GetQueryItems(selectType, util.Int64All(config.Sysconfig["bidSearchOldUserLimit"]))
-	isPayedUser := userInfo.IsPayedUser()
-	if isPayedUser {
-		buyerclass = p.GetString("buyerclass")
-		hasBuyerTel, hasWinnerTel = p.GetString("buyertel"), p.GetString("winnertel")
-		notkey = p.GetString("notkey")
-		city = p.GetString("city") //城市 付费用户可用
-		district = p.GetString("district")
-		regionMap = p.GetString("regionMap")
-		//P492招标采购搜索匹配采购单位等优化
-		buyer = p.GetString("buyer")   //采购单位
-		winner = p.GetString("winner") //中标企业
-		agency = p.GetString("agency") //招标代理机构
-	}
-	//历史导出数据回显
-	if strings.Contains(p.Url(), "?goback") {
-		keywords = util.ObjToString(sessVal["Echo_keywords"])
-		publishtime = util.ObjToString(sessVal["Echo_publishtime"])
-		area = util.ObjToString(sessVal["Echo_area"])
-		subtype = util.ObjToString(sessVal["Echo_subtype"])
-		minprice = util.ObjToString(sessVal["Echo_minprice"])
-		maxprice = util.ObjToString(sessVal["Echo_maxprice"])
-		buyerclass = util.ObjToString(sessVal["Echo_buyerclass"])
-		selectType = util.ObjToString(sessVal["Echo_selectType"])
-		timeslot = util.ObjToString(sessVal["Echo_timeslot"])
-		hasBuyerTel = util.ObjToString(sessVal["Echo_hasBuyertel"])
-		hasWinnerTel = util.ObjToString(sessVal["Echo_hasWinnertel"])
-		industry = util.ObjToString(sessVal["Echo_industry"])
-		notkey = util.ObjToString(sessVal["Echo_notkey"])
-		fileExists = util.ObjToString(sessVal["Echo_fileExists"])
-		city = util.ObjToString(sessVal["Echo_city"])
-		district = util.ObjToString(sessVal["Echo_district"])
-		regionMap = util.ObjToString(sessVal["Echo_regionMap"])
-		bidField = util.ObjToString(sessVal["Echo_bid_field"])              // 领域化数据 0101-医疗行业
-		territorialization = util.ObjToString(sessVal["Echo_bid_field"])    // 领域化数据 0101-医疗行业
-		searchGroup = util.IntAll(sessVal["Echo_searchGroup"])              //搜索分组;默认0:全部;1:招标采购搜索;2:超前项目。
-		searchMode = util.IntAll(sessVal["Echo_searchMode"])                //搜索模式;默认0:精准模式(不进行系统分词);1:模糊模式(进行系统分词)。
-		wordsMode = util.IntAll(sessVal["Echo_wordsMode"])                  //搜索关键词模式;默认0:包含所有关键词;1:包含任意关键词。
-		additionalWords = util.ObjToString(sessVal["Echo_additionalWords"]) //关键词:附加关键词(副:五组,每组最多15个字符 每组,号隔开)
-		queryItems = userInfo.GetQueryItems(selectType, util.Int64All(config.Sysconfig["bidSearchOldUserLimit"]))
-		//P492招标采购搜索匹配采购单位等优化
-		buyer = util.ObjToString(sessVal["Echo_buyer"])
-		winner = util.ObjToString(sessVal["Echo_winner"])
-		agency = util.ObjToString(sessVal["Echo_agency"])
-	}
-	keywordsLimit := util.IntAllDef(config.Sysconfig["keywordsLimit"], 35)
-	searchLimit := public.IsSearchLimit(queryItems)
-	//-----------------------------未登录用户支持非单字符查询--------------------------
-	if userId == "" {
-		keywordsLimit = util.IntAllDef(config.Sysconfig["keywordsLimitNologin"], 25)
-		//未登录用户标题、正文都限制,已登录用户只限制正文
-		searchLimit = true
-		if len([]rune(keywords)) == 1 {
-			//未登录用户搜索不让搜索单字
-			keywords = ""
-		}
-	}
-	var (
-		list                               []*map[string]interface{}
-		count, total, bCount               int64
-		secondFlag                         = ""
-		isSearch                           = true
-		b_word, a_word, s_word, heightKeys = "", "", "", ""
-	)
-	onList, _ := jyutil.IsOnTheWhitelist(p.Session())
-	if keywords != "" {
-		// p329 非白名单用户 处理通用词
-		if !onList && len(industry) == 0 {
-			keywords = jyutil.FilterGeneric(keywords)                         // 关键词处理通用词
-			additionalWords = jyutil.AdditionalFilterGeneric(additionalWords) // 附加词处理通用词
-		}
-		b_word, a_word, s_word = jy.InterceptSearchKW(keywords, keywordsLimit, len(industry) == 0)
-	}
-	if strings.Index(p.Refer(), "/page_workDesktop/work-bench") > -1 {
-		//超级搜索页面 移动定制搜索标签(仅工作台内展示)
-		mobileTag = p.GetSlice("mobileTag[]")
-		//if len(mobileTag) > 0 { //当无该权限,把此字段置空
-		if !jy.HasBidFieldPower(config.Middleground, p.Session(), MobileTagSearchFunctionCode) {
-			mobileTag = []string{}
-		} else if (len(mobileTag) > 0 && mobileTag[0] == "all") || len(mobileTag) == 0 {
-			mobileTag = mobileTagItemsValOptionsAll
-		}
-		//}
-	}
-
-	//医疗领域化信息 用户前提是大会员 超级订阅,才有领域化功能的权限
-	if territorialization != "" && territorialization != "BIProperty" {
-		isSearch = false
-		userInfo := jy.GetVipState(p.Session(), *config.Middleground, userId)
-		if userInfo.BigMember > 0 || userInfo.VipState > 0 {
-			if jy.HasBidFieldPower(config.Middleground, p.Session(), MedicalFunctionCode) {
-				isSearch = true
-			}
-		}
-	}
-	isLimit := 1
-	if isSearch {
-		searchTypeSwitch, _ := config.Sysconfig["searchTypeSwitch"].(bool)
-		so := NewSearchOptimize(mobileTag, userId, phone, area, city, district, subtype, toptype, publishtime, strings.Join(queryItems, ","), fmt.Sprintf("%s-%s", minprice, maxprice), industry, buyerclass, hasBuyerTel, hasWinnerTel, fileExists, s_word, additionalWords, notkey, "PC", territorialization, "", "", "",
-			0, pageSize, searchGroup, searchMode, wordsMode, "", "", 0, 0,
-			*userInfo, searchTypeSwitch, p.Request, accountId, entAccountId, entId, entUserId, buyer, winner, agency)
-		heightKeys = so.HeightKeys //主关键词和附加词合并,多组空格隔开,作为前端渲染高亮关键词使用
-		//关键词  行业 附加词
-		//放开用户不输入关键词可搜索 --P297需求
-		// p329 反爬白名单用户放开  非反爬白名单用户不放开未输入关键词
-		if len(s_word) > 0 || (len(s_word) == 0 && onList) || len(industry) > 0 || strings.TrimSpace(so.AdditionalWords) != "" || len(so.MobileTag) > 0 {
-			if searchLimit {
-				isLimit = public.Lst.IsLimited(p.Request, p.ResponseWriter, p.Session(), isPayedUser)
-				if isLimit == 1 { //没有被限制
-					defer public.Lst.Limit()
-				}
-			}
-			if isLimit == 1 {
-				count, total, list = so.GetBidSearchList(false)
-				if total < util.Int64All(config.Sysconfig["precisionNum"]) && so.SearchMode == 0 && so.KeyWords != "" {
-					soBlur := NewSearchOptimize(mobileTag, userId, phone, area, city, district, subtype, toptype, publishtime, strings.Join(queryItems, ","), fmt.Sprintf("%s-%s", minprice, maxprice), industry, buyerclass, hasBuyerTel, hasWinnerTel, fileExists, s_word, additionalWords, notkey, "PC", territorialization, "", "", "",
-						0, pageSize, searchGroup, 1, wordsMode, "", "", 0, 0,
-						*userInfo, searchTypeSwitch, p.Request, accountId, entAccountId, entId, entUserId, buyer, winner, agency)
-					bCount = soBlur.FuzzySearchNumber()
-				}
-			}
-		} else {
-			p.DisableHttpCache()
-			list, count, total = so.GetBidSearchListByCache()
-		}
-	}
-	if noLoginBl {
-		subtype = ""
-	}
-	if userId == "" {
-		for _, v := range list {
-			*v = SearchFilter(*v)
-		}
-	}
-	p.T["bCount"] = bCount
-	p.T["list"] = list
-	p.T["secondFlag"] = secondFlag
-	p.T["area"] = area
-	p.T["publishtime"] = publishtime
-	p.T["timeslot"] = timeslot
-	p.T["toptype"] = toptype
-	p.T["subtype"] = subtype
-	p.T["searchvalue"] = keywords //搜索关键词
-	p.T["minprice"] = minprice
-	p.T["maxprice"] = maxprice
-	p.T["buyerclass"] = buyerclass
-	p.T["buyertel"] = hasBuyerTel
-	p.T["winnertel"] = hasWinnerTel
-	p.T["notkey"] = notkey
-	p.T["fileExists"] = fileExists
-	p.T["city"] = city
-	p.T["district"] = district
-	p.T["regionMap"] = regionMap
-	p.T["bid_field"] = territorialization
-	p.SetSession("paramkey", b_word)
-	switch publishtime {
-	case "lately-7":
-		p.SetSession("parampublishtime", "最近7天")
-	case "lately-30":
-		p.SetSession("parampublishtime", "最近30天")
-	case "thisyear":
-		p.SetSession("parampublishtime", "近一年")
-	case "threeyear":
-		p.SetSession("parampublishtime", "近三年")
-	case "fiveyear":
-		p.SetSession("parampublishtime", "近五年")
-	default:
-		p.SetSession("parampublishtime", publishtime)
-	}
-	p.SetSession("paramarea", area)
-	if subtype != "" {
-		p.SetSession("paraminfotype", subtype)
-	} else {
-		p.SetSession("paraminfotype", toptype)
-	}
-	//}
-	p.T["selectType"] = selectType
-	p.T["login"] = p.Session().Get("user")
-	p.T["count"] = count
-	p.T["totalPage"] = (count + 1) / int64(pageSize)
-	p.T["keywords"] = keywords      //搜索关键词
-	p.T["heightWords"] = heightKeys //主关键词和附加词合并后
-	p.T["industry"] = industry
-	p.T["industrylist"] = industrylist
-	p.T["sortArray"] = sortArray
-	p.T["showVipScreen"] = isPayedUser
-	p.T["bidField"] = territorialization
-	p.T["module"] = module
-	p.T["interceptKeyWords"] = b_word   //超出限制关键词限制长度 截取后
-	p.T["interceptOtherWords"] = a_word //超出限制关键词限制长度 截取后 提示关键词
-	p.T["interceptLimit"] = keywordsLimit
-	//
-	p.T["searchGroup"] = searchGroup
-	p.T["searchMode"] = searchMode
-	p.T["wordsMode"] = wordsMode
-	p.T["additionalWords"] = additionalWords
-	p.T["total"] = total
-
-	p.T["isVip"] = userInfo.VipState > 0
-	p.T["isMember"] = userInfo.BigMember > 0
-	p.T["isEntniche"] = userInfo.EntMember > 0
-	p.T["isEntnicheNew"] = userInfo.IsNewEnt
-	p.T["isEntService"] = userInfo.EntService
-	p.T["vipBefore202209"] = userInfo.VipState > 0 && userInfo.VipStartData < util.Int64All(config.Sysconfig["contextOldVipLimit"]) //超级订阅 超强项目
+	//页面重构后 前端中转页 P480#2
 	//
 	cooperateCode := ""
 	if userId != "" {
@@ -706,21 +402,338 @@ func (p *Pcsearch) PcSearchIndex(module string) error {
 		}
 	}
 	p.T["cooperateCode"] = cooperateCode
-	p.T["isLimit"] = isLimit
-	if module == "supsearch" {
-		p.T["simpleTemplateData"] = map[string]interface{}{
-			"isEntniche":      p.T["isEntniche"],
-			"isVip":           p.T["isVip"],
-			"isMember":        p.T["isMember"],
-			"vipBefore202209": p.T["vipBefore202209"],
-			"searchMode":      searchMode,
-			"searchvalue":     keywords,
-			"additionalWords": additionalWords,
-			"listLength":      util.If(list != nil, len(list), 0),
-		}
-	}
-	//老版搜索页面
-	return p.Render("/pc/supsearch.html", &p.T)
+	//if !strings.Contains(p.Request.URL.String(), "useOld") {
+	return p.Render("/pc/search/index.html", &p.T)
+	//}
+	//sessVal := p.Session().GetMultiple()
+	//p.T["logid"] = config.Seoconfig["jysslby"].(string)
+	//pageSize, _ := p.GetInteger("pageSize")
+	//if pageSize == 0 {
+	//	pageSize = 50
+	//}
+	//accountId := util.Int64All(sessVal["accountId"])
+	//entAccountId := util.Int64All(sessVal["entAccountId"])
+	//entId := util.Int64All(sessVal["entId"])
+	//entUserId := util.Int64All(sessVal["entUserId"])
+	//keywords := p.GetString("keywords")
+	//industry := strings.TrimSpace(p.GetString("industry")) //选中的行业
+	//area := p.GetString("area")                            //地区
+	//publishtime := p.GetString("publishtime")              //发布时间
+	//timeslot := p.GetString("timeslot")                    //显示选择时间
+	//toptype := p.GetString("toptype")                      //信息类型
+	//subtype := p.GetString("subtype")                      //信息类型
+	//minprice := p.GetString("minprice")                    //最低价格
+	//maxprice := p.GetString("maxprice")                    //最高价格
+	//fileExists := p.GetString("fileExists")                //是否有附件--所有用户都可用此功能 0:全部;1:有附件;-1:无附件
+	////搜索优化P260--start--
+	//searchGroup, _ := p.GetInteger("searchGroup")     //搜索分组;默认0:全部;1:招标采购搜索;2:超前项目。
+	//searchMode, _ := p.GetInteger("searchMode")       //搜索模式;默认0:精准模式(不进行系统分词);1:模糊模式(进行系统分词)。
+	//wordsMode, _ := p.GetInteger("wordsMode")         //搜索关键词模式;默认0:包含所有关键词;1:包含任意关键词。
+	//additionalWords := p.GetString("additionalWords") //关键词:附加关键词(副:五组,每组最多15个字符 每组,号隔开)
+	////--end--
+	////userId, _ := p.GetSession("userId").(string)
+	////phone, _ := p.GetSession("phone").(string)
+	//userId := util.ObjToString(sessVal["userId"])
+	//phone := util.ObjToString(sessVal["phone"])
+	//selectType := p.GetString("selectType") //搜索范围
+	//if selectType == "" {
+	//	selectType = "title,content"
+	//}
+	////p353包含采购意向与拟建
+	//noLoginBl := false
+	//if userId == "" {
+	//	//未登录用户访问全部信息类型 需要过滤掉 拟建
+	//	// p397 未登录用户收回查看拟建权限
+	//	if searchGroup < 2 {
+	//		if strings.Contains(subtype, "采购意向") || strings.Contains(subtype, "拟建") {
+	//			var ss []string
+	//			for _, v := range strings.Split(subtype, ",") {
+	//				if v != "采购意向" && !strings.Contains(v, "拟建") {
+	//					ss = append(ss, v)
+	//				}
+	//			}
+	//			subtype = strings.Join(ss, ",")
+	//		}
+	//		if subtype == "" {
+	//			subtype = "招标预告,招标公告,招标结果,招标信用信息"
+	//			noLoginBl = true
+	//		}
+	//	}
+	//	//未登录用户搜索范围 标题和 正文
+	//	var selectTypeArr []string
+	//	selectTypeSplit := strings.Split(selectType, ",")
+	//	// 未登录用户只能搜标题和正文
+	//	for i := 0; i < len(selectTypeSplit); i++ {
+	//		if selectTypeSplit[i] == "title" || selectTypeSplit[i] == "content" {
+	//			selectTypeArr = append(selectTypeArr, selectTypeSplit[i])
+	//		}
+	//	}
+	//	if len(selectTypeArr) > 0 {
+	//		selectType = strings.Join(selectTypeArr, ",")
+	//	}
+	//	if publishtime != "" {
+	//		publishtime = ""
+	//	}
+	//}
+	////高级筛选 仅vip用户可查询
+	//var (
+	//	hasBuyerTel, hasWinnerTel = "", "" //是否有采购单位电话、是否有中标单位电话 y:有 n:没有
+	//	buyerclass                = ""     //采购单位类别
+	//	notkey                    = ""     //排除词
+	//	city                      = ""     //城市 付费用户可用
+	//	district                  = ""
+	//	regionMap                 = ""
+	//	buyer                     = ""
+	//	winner                    = ""
+	//	agency                    = ""
+	//	mobileTag                 []string //P513中国移动定制招标采购搜索
+	//)
+	//// 领域化标识
+	//territorialization := p.GetString("bid_field")
+	//switch module {
+	//case "medical": // 领域类型  医疗-0101
+	//	if territorialization == "" {
+	//		territorialization = "0101"
+	//	}
+	//case "BIProperty":
+	//	territorialization = territorialization
+	//default:
+	//	territorialization = ""
+	//}
+	//if territorialization == "" {
+	//	territorialization = p.GetString("property")
+	//}
+	//userInfo := jy.GetVipState(p.Session(), *config.Middleground, userId)
+	//queryItems := userInfo.GetQueryItems(selectType, util.Int64All(config.Sysconfig["bidSearchOldUserLimit"]))
+	//isPayedUser := userInfo.IsPayedUser()
+	//if isPayedUser {
+	//	buyerclass = p.GetString("buyerclass")
+	//	hasBuyerTel, hasWinnerTel = p.GetString("buyertel"), p.GetString("winnertel")
+	//	notkey = p.GetString("notkey")
+	//	city = p.GetString("city") //城市 付费用户可用
+	//	district = p.GetString("district")
+	//	regionMap = p.GetString("regionMap")
+	//	//P492招标采购搜索匹配采购单位等优化
+	//	buyer = p.GetString("buyer")   //采购单位
+	//	winner = p.GetString("winner") //中标企业
+	//	agency = p.GetString("agency") //招标代理机构
+	//}
+	////历史导出数据回显
+	//if strings.Contains(p.Url(), "?goback") {
+	//	keywords = util.ObjToString(sessVal["Echo_keywords"])
+	//	publishtime = util.ObjToString(sessVal["Echo_publishtime"])
+	//	area = util.ObjToString(sessVal["Echo_area"])
+	//	subtype = util.ObjToString(sessVal["Echo_subtype"])
+	//	minprice = util.ObjToString(sessVal["Echo_minprice"])
+	//	maxprice = util.ObjToString(sessVal["Echo_maxprice"])
+	//	buyerclass = util.ObjToString(sessVal["Echo_buyerclass"])
+	//	selectType = util.ObjToString(sessVal["Echo_selectType"])
+	//	timeslot = util.ObjToString(sessVal["Echo_timeslot"])
+	//	hasBuyerTel = util.ObjToString(sessVal["Echo_hasBuyertel"])
+	//	hasWinnerTel = util.ObjToString(sessVal["Echo_hasWinnertel"])
+	//	industry = util.ObjToString(sessVal["Echo_industry"])
+	//	notkey = util.ObjToString(sessVal["Echo_notkey"])
+	//	fileExists = util.ObjToString(sessVal["Echo_fileExists"])
+	//	city = util.ObjToString(sessVal["Echo_city"])
+	//	district = util.ObjToString(sessVal["Echo_district"])
+	//	regionMap = util.ObjToString(sessVal["Echo_regionMap"])
+	//	bidField = util.ObjToString(sessVal["Echo_bid_field"])              // 领域化数据 0101-医疗行业
+	//	territorialization = util.ObjToString(sessVal["Echo_bid_field"])    // 领域化数据 0101-医疗行业
+	//	searchGroup = util.IntAll(sessVal["Echo_searchGroup"])              //搜索分组;默认0:全部;1:招标采购搜索;2:超前项目。
+	//	searchMode = util.IntAll(sessVal["Echo_searchMode"])                //搜索模式;默认0:精准模式(不进行系统分词);1:模糊模式(进行系统分词)。
+	//	wordsMode = util.IntAll(sessVal["Echo_wordsMode"])                  //搜索关键词模式;默认0:包含所有关键词;1:包含任意关键词。
+	//	additionalWords = util.ObjToString(sessVal["Echo_additionalWords"]) //关键词:附加关键词(副:五组,每组最多15个字符 每组,号隔开)
+	//	queryItems = userInfo.GetQueryItems(selectType, util.Int64All(config.Sysconfig["bidSearchOldUserLimit"]))
+	//	//P492招标采购搜索匹配采购单位等优化
+	//	buyer = util.ObjToString(sessVal["Echo_buyer"])
+	//	winner = util.ObjToString(sessVal["Echo_winner"])
+	//	agency = util.ObjToString(sessVal["Echo_agency"])
+	//}
+	//keywordsLimit := util.IntAllDef(config.Sysconfig["keywordsLimit"], 35)
+	//searchLimit := public.IsSearchLimit(queryItems)
+	////-----------------------------未登录用户支持非单字符查询--------------------------
+	//if userId == "" {
+	//	keywordsLimit = util.IntAllDef(config.Sysconfig["keywordsLimitNologin"], 25)
+	//	//未登录用户标题、正文都限制,已登录用户只限制正文
+	//	searchLimit = true
+	//	if len([]rune(keywords)) == 1 {
+	//		//未登录用户搜索不让搜索单字
+	//		keywords = ""
+	//	}
+	//}
+	//var (
+	//	list                               []*map[string]interface{}
+	//	count, total, bCount               int64
+	//	secondFlag                         = ""
+	//	isSearch                           = true
+	//	b_word, a_word, s_word, heightKeys = "", "", "", ""
+	//)
+	//onList, _ := jyutil.IsOnTheWhitelist(p.Session())
+	//if keywords != "" {
+	//	// p329 非白名单用户 处理通用词
+	//	if !onList && len(industry) == 0 {
+	//		keywords = jyutil.FilterGeneric(keywords)                         // 关键词处理通用词
+	//		additionalWords = jyutil.AdditionalFilterGeneric(additionalWords) // 附加词处理通用词
+	//	}
+	//	b_word, a_word, s_word = jy.InterceptSearchKW(keywords, keywordsLimit, len(industry) == 0)
+	//}
+	//if strings.Index(p.Refer(), "/page_workDesktop/work-bench") > -1 {
+	//	//超级搜索页面 移动定制搜索标签(仅工作台内展示)
+	//	mobileTag = p.GetSlice("mobileTag[]")
+	//	//if len(mobileTag) > 0 { //当无该权限,把此字段置空
+	//	if !jy.HasBidFieldPower(config.Middleground, p.Session(), MobileTagSearchFunctionCode) {
+	//		mobileTag = []string{}
+	//	} else if (len(mobileTag) > 0 && mobileTag[0] == "all") || len(mobileTag) == 0 {
+	//		mobileTag = mobileTagItemsValOptionsAll
+	//	}
+	//	//}
+	//}
+	//
+	////医疗领域化信息 用户前提是大会员 超级订阅,才有领域化功能的权限
+	//if territorialization != "" && territorialization != "BIProperty" {
+	//	isSearch = false
+	//	userInfo := jy.GetVipState(p.Session(), *config.Middleground, userId)
+	//	if userInfo.BigMember > 0 || userInfo.VipState > 0 {
+	//		if jy.HasBidFieldPower(config.Middleground, p.Session(), MedicalFunctionCode) {
+	//			isSearch = true
+	//		}
+	//	}
+	//}
+	//isLimit := 1
+	//if isSearch {
+	//	searchTypeSwitch, _ := config.Sysconfig["searchTypeSwitch"].(bool)
+	//	so := NewSearchOptimize(mobileTag, userId, phone, area, city, district, subtype, toptype, publishtime, strings.Join(queryItems, ","), fmt.Sprintf("%s-%s", minprice, maxprice), industry, buyerclass, hasBuyerTel, hasWinnerTel, fileExists, s_word, additionalWords, notkey, "PC", territorialization, "", "", "",
+	//		0, pageSize, searchGroup, searchMode, wordsMode, "", "", 0, 0,
+	//		*userInfo, searchTypeSwitch, p.Request, accountId, entAccountId, entId, entUserId, buyer, winner, agency)
+	//	heightKeys = so.HeightKeys //主关键词和附加词合并,多组空格隔开,作为前端渲染高亮关键词使用
+	//	//关键词  行业 附加词
+	//	//放开用户不输入关键词可搜索 --P297需求
+	//	// p329 反爬白名单用户放开  非反爬白名单用户不放开未输入关键词
+	//	if len(s_word) > 0 || (len(s_word) == 0 && onList) || len(industry) > 0 || strings.TrimSpace(so.AdditionalWords) != "" || len(so.MobileTag) > 0 {
+	//		if searchLimit {
+	//			isLimit = public.Lst.IsLimited(p.Request, p.ResponseWriter, p.Session(), isPayedUser)
+	//			if isLimit == 1 { //没有被限制
+	//				defer public.Lst.Limit()
+	//			}
+	//		}
+	//		if isLimit == 1 {
+	//			count, total, list = so.GetBidSearchList(false)
+	//			if total < util.Int64All(config.Sysconfig["precisionNum"]) && so.SearchMode == 0 && so.KeyWords != "" {
+	//				soBlur := NewSearchOptimize(mobileTag, userId, phone, area, city, district, subtype, toptype, publishtime, strings.Join(queryItems, ","), fmt.Sprintf("%s-%s", minprice, maxprice), industry, buyerclass, hasBuyerTel, hasWinnerTel, fileExists, s_word, additionalWords, notkey, "PC", territorialization, "", "", "",
+	//					0, pageSize, searchGroup, 1, wordsMode, "", "", 0, 0,
+	//					*userInfo, searchTypeSwitch, p.Request, accountId, entAccountId, entId, entUserId, buyer, winner, agency)
+	//				bCount = soBlur.FuzzySearchNumber()
+	//			}
+	//		}
+	//	} else {
+	//		p.DisableHttpCache()
+	//		list, count, total = so.GetBidSearchListByCache()
+	//	}
+	//}
+	//if noLoginBl {
+	//	subtype = ""
+	//}
+	//if userId == "" {
+	//	for _, v := range list {
+	//		*v = SearchFilter(*v)
+	//	}
+	//}
+	//p.T["bCount"] = bCount
+	//p.T["list"] = list
+	//p.T["secondFlag"] = secondFlag
+	//p.T["area"] = area
+	//p.T["publishtime"] = publishtime
+	//p.T["timeslot"] = timeslot
+	//p.T["toptype"] = toptype
+	//p.T["subtype"] = subtype
+	//p.T["searchvalue"] = keywords //搜索关键词
+	//p.T["minprice"] = minprice
+	//p.T["maxprice"] = maxprice
+	//p.T["buyerclass"] = buyerclass
+	//p.T["buyertel"] = hasBuyerTel
+	//p.T["winnertel"] = hasWinnerTel
+	//p.T["notkey"] = notkey
+	//p.T["fileExists"] = fileExists
+	//p.T["city"] = city
+	//p.T["district"] = district
+	//p.T["regionMap"] = regionMap
+	//p.T["bid_field"] = territorialization
+	//p.SetSession("paramkey", b_word)
+	//switch publishtime {
+	//case "lately-7":
+	//	p.SetSession("parampublishtime", "最近7天")
+	//case "lately-30":
+	//	p.SetSession("parampublishtime", "最近30天")
+	//case "thisyear":
+	//	p.SetSession("parampublishtime", "近一年")
+	//case "threeyear":
+	//	p.SetSession("parampublishtime", "近三年")
+	//case "fiveyear":
+	//	p.SetSession("parampublishtime", "近五年")
+	//default:
+	//	p.SetSession("parampublishtime", publishtime)
+	//}
+	//p.SetSession("paramarea", area)
+	//if subtype != "" {
+	//	p.SetSession("paraminfotype", subtype)
+	//} else {
+	//	p.SetSession("paraminfotype", toptype)
+	//}
+	////}
+	//p.T["selectType"] = selectType
+	//p.T["login"] = p.Session().Get("user")
+	//p.T["count"] = count
+	//p.T["totalPage"] = (count + 1) / int64(pageSize)
+	//p.T["keywords"] = keywords      //搜索关键词
+	//p.T["heightWords"] = heightKeys //主关键词和附加词合并后
+	//p.T["industry"] = industry
+	//p.T["industrylist"] = industrylist
+	//p.T["sortArray"] = sortArray
+	//p.T["showVipScreen"] = isPayedUser
+	//p.T["bidField"] = territorialization
+	//p.T["module"] = module
+	//p.T["interceptKeyWords"] = b_word   //超出限制关键词限制长度 截取后
+	//p.T["interceptOtherWords"] = a_word //超出限制关键词限制长度 截取后 提示关键词
+	//p.T["interceptLimit"] = keywordsLimit
+	////
+	//p.T["searchGroup"] = searchGroup
+	//p.T["searchMode"] = searchMode
+	//p.T["wordsMode"] = wordsMode
+	//p.T["additionalWords"] = additionalWords
+	//p.T["total"] = total
+	//
+	//p.T["isVip"] = userInfo.VipState > 0
+	//p.T["isMember"] = userInfo.BigMember > 0
+	//p.T["isEntniche"] = userInfo.EntMember > 0
+	//p.T["isEntnicheNew"] = userInfo.IsNewEnt
+	//p.T["isEntService"] = userInfo.EntService
+	//p.T["vipBefore202209"] = userInfo.VipState > 0 && userInfo.VipStartData < util.Int64All(config.Sysconfig["contextOldVipLimit"]) //超级订阅 超强项目
+	////
+	//cooperateCode := ""
+	//if userId != "" {
+	//	//企业画像 权限
+	//	p.T["portraitpower"] = jylabutil.IsAuthorized(userId, "i_portraitpower")
+	//} else {
+	//	if cc, err := p.GetCookie(jy.ChannelCookieName); err == nil {
+	//		cooperateCode = cc.Value
+	//	}
+	//}
+	//p.T["cooperateCode"] = cooperateCode
+	//p.T["isLimit"] = isLimit
+	//if module == "supsearch" {
+	//	p.T["simpleTemplateData"] = map[string]interface{}{
+	//		"isEntniche":      p.T["isEntniche"],
+	//		"isVip":           p.T["isVip"],
+	//		"isMember":        p.T["isMember"],
+	//		"vipBefore202209": p.T["vipBefore202209"],
+	//		"searchMode":      searchMode,
+	//		"searchvalue":     keywords,
+	//		"additionalWords": additionalWords,
+	//		"listLength":      util.If(list != nil, len(list), 0),
+	//	}
+	//}
+	////老版搜索页面
+	//return p.Render("/pc/supsearch.html", &p.T)
 }
 
 // Newbids  最新招标信息 --已失效

+ 1 - 1
src/jfw/modules/app/src/web/templates/big-member/page_ent_portrait.html

@@ -630,7 +630,7 @@
         </van-tab>
       </van-tabs>
      <!--客服组件-->
-      <customer-corner-component v-show="isLogin" :scroll-status="pageScrollTop < 60"></customer-corner-component>
+      <customer-corner-component :scroll-status="pageScrollTop < 60"></customer-corner-component>
     </section>
 
     <div class="j-main project-tab-container" v-if="conf.powerLoaded && !conf.showPortraitAll">

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

@@ -712,7 +712,7 @@
        <!-- 底部按钮组件 -->
     <mobile-portrayal-footer ref="portrayalFooter" @monitorclick="changeFollowState('g')" :islogin="userInfo.isLogin"  :monitorshow="true" :downshow="true" :monitor="follow" :params="unitParams" :allpower="allpower" :shareshow="isLogin"></mobile-portrayal-footer>
       <!--客服组件-->
-      <customer-corner-component v-show="isLogin" :scroll-status="pageScrollTop < 60" bottom-position="12%"></customer-corner-component>
+      <customer-corner-component :scroll-status="pageScrollTop < 60" bottom-position="12%"></customer-corner-component>
   </div>
     <div id="jyKeepComponent">
       <keep-component ref="vKeepComponent" @on-change-keep="changeKeepStatus" :bid="nowOpenBid" :first="false">

+ 20 - 2
src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html

@@ -446,7 +446,7 @@
     <!-- {{include "tags/template/tag-header.html" .}} -->
     {{end}}
 
-    <div class="app-layout-content-b">
+    <div class="app-layout-content-b" >
         {{if not .T.obj.hasSession}}
         <!-- {{include "tags/template/tag-register-login-group.html" .}} -->
         {{include "tags/template/tag-new-header.html" .}}
@@ -739,6 +739,9 @@
         <div class="newuser hidden">
             <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/images/wx/newuser.png?v={{Msg "seo" "version"}}"/>
         </div>
+        <div id="customer-corner">
+            <customer-corner-component :scroll-status="true" bottom-position="3.12rem" style="right: .32rem;"></customer-corner-component>
+        </div>
 
         <div class="fatNav" style="display: none;">
             <div class="childNav">
@@ -759,7 +762,7 @@
                 <div style="clear:both;display:none;"></div>
             </div>
         </div>
-        <div class="content"  style="">
+        <div class="content" style="">
             <div class="prebuilt hidden">
                 <div class="pre-title">项目基本信息</div>
                 <ul>
@@ -1163,6 +1166,7 @@
 <script src='/common-module/nps-common/js/nps.js?v={{Msg "seo" "version"}}'></script>
 <script src='/common-module/forward-share/js/forward.js?v={{Msg "seo" "version"}}'></script>
 <script src='/common-module/bidstatus-update/js/bid-status-update.js?v={{Msg "seo" "version"}}'></script>
+<script src='/common-module/customer-corner/mobile-template.js?v={{Msg "seo" "version"}}'></script>
 
 <!--<script src="https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js"></script>-->
 <!--<script> new VConsole(); </script>-->
@@ -2021,6 +2025,12 @@
         }
       }
     })
+      var customerCorner = new Vue({
+        el: '#customer-corner',
+        components: {
+          customerCornerComponent: customerCornerComponent
+        },
+      })
 
     // 点击参标
     $('.refer_stand .r-s-right').on('click', function(e) {
@@ -3094,6 +3104,7 @@
       var u = navigator.userAgent;
       var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
       $(".app-layout-content-b").scroll(function(event){
+
           if($(event.target).parents(".easyalert-mask").length == 0){
               $("#easyalert-mask").remove();
           }
@@ -3108,6 +3119,13 @@
           }else{
               $(".childNav").removeClass("tabfix");
           }
+          // 客服出现与否
+            if(scrollTop < 60) {
+              $('#customer-corner-component').removeClass('fadeOutRight')
+            } else {
+              $('#customer-corner-component').addClass('fadeOutRight')
+            }
+
           //纠错高亮位置
           var heightLight = 0
           if($("#h_content .fphl").length>0){

+ 29 - 21
src/jfw/modules/bigmember/src/entity/marketAnalysis/customized_analysis.go

@@ -11,13 +11,13 @@ import (
 )
 
 const (
-	query_aggs_sortprice       = `"sortprice_ranges": {"range":{"field":"sortprice","ranges":[%s]},"aggs":{"sum_sortprice":{"sum":{"field":"sortprice"}}}}`
-	aggs_area                  = `"area_distribution": {"terms": {"field": "area","size": 40},"aggs": {"area_amount": {"sum": {"field": "sortprice"}},"area_total": {"filter": {"match_all":{}}},"city_group": {"terms": {"field": "city","size": 40},"aggs": {"city_amount": {"sum": {"field": "sortprice"}}}}}}`
-	query_top10                = `,"sort": [{"sortprice": "desc"}],"from": 0,"size": 10`
-	aggs_area_amounttop3       = `"area_amount_top3":{"terms":{"field":"area","exclude":["全国"],"order":[{"area_amount":"desc"}],"size":34},"aggs":{"area_amount":{"sum":{"field":"sortprice"}},"winner_top":{"terms":{"field":"entidlist","exclude": ["-"],"order":[{"area_winner_amount":"desc"}],"size":3},"aggs":{"area_winner_amount":{"sum":{"field":"sortprice"}}}}}}`
-	aggs_area_counttop3        = `"area_count_top3":{"terms":{"field":"area","exclude":["全国"],"order":[{"area_count":"desc"}],"size":40},"aggs":{"area_count":{"filter":{"match_all":{}}},"winner_top":{"terms":{"field":"entidlist","exclude": ["-"],"order":[{"area_winner_count":"desc"}],"size":3},"aggs":{"area_winner_count":{"filter":{"match_all":{}}}}}}}`
-	aggs_buyerclass            = `"buyerclass_scale":{"terms":{"field":"buyerclass","size":2000,"exclude":["其它",""]},"aggs":{"buyerclass_amount":{"sum":{"field":"sortprice"}},"buyerclass_total":{"filter":{"match_all":{}}}}}`
-	aggs_buyerclass_other      = `"buyerclass_scale_other":{"terms":{"field":"buyerclass","include":["其它",""]},"aggs":{"buyerclass_amount":{"sum":{"field":"sortprice"}},"buyerclass_total":{"filter":{"match_all":{}}}}}`
+	query_aggs_sortprice = `"sortprice_ranges": {"range":{"field":"sortprice","ranges":[%s]},"aggs":{"sum_sortprice":{"sum":{"field":"sortprice"}}}}`
+	aggs_area            = `"area_distribution": {"terms": {"field": "area","size": 40},"aggs": {"area_amount": {"sum": {"field": "sortprice"}},"area_total": {"filter": {"match_all":{}}},"city_group": {"terms": {"field": "city","size": 40},"aggs": {"city_amount": {"sum": {"field": "sortprice"}}}}}}`
+	query_top10          = `,"sort": [{"sortprice": "desc"}],"from": 0,"size": 10`
+	aggs_area_amounttop3 = `"area_amount_top3":{"terms":{"field":"area","exclude":["全国"],"order":[{"area_amount":"desc"}],"size":34},"aggs":{"area_amount":{"sum":{"field":"sortprice"}},"winner_top":{"terms":{"field":"entidlist","exclude": ["-"],"order":[{"area_winner_amount":"desc"}],"size":3},"aggs":{"area_winner_amount":{"sum":{"field":"sortprice"}}}}}}`
+	aggs_area_counttop3  = `"area_count_top3":{"terms":{"field":"area","exclude":["全国"],"order":[{"area_count":"desc"}],"size":40},"aggs":{"area_count":{"filter":{"match_all":{}}},"winner_top":{"terms":{"field":"entidlist","exclude": ["-"],"order":[{"area_winner_count":"desc"}],"size":3},"aggs":{"area_winner_count":{"filter":{"match_all":{}}}}}}}`
+	aggs_buyerclass      = `"buyerclass_scale":{"terms":{"field":"buyerclass","size":2000,"exclude":["其它",""]},"aggs":{"buyerclass_amount":{"sum":{"field":"sortprice"}},"buyerclass_total":{"filter":{"match_all":{}}}}}`
+	//aggs_buyerclass_other      = `"buyerclass_scale_other":{"terms":{"field":"buyerclass","include":["其它",""]},"aggs":{"buyerclass_amount":{"sum":{"field":"sortprice"}},"buyerclass_total":{"filter":{"match_all":{}}}}}`
 	aggs_buyerclass_counttop3  = `"buyerclass_count_top3":{"terms":{"field":"buyerclass","exclude":["其它",""],"order":[{"buyerclass_count":"desc"}],"size":70},"aggs":{"buyerclass_count":{"filter":{"match_all":{}}},"bidcount_top":{"terms":{"field":"entidlist","exclude": ["-"],"order":[{"buyer_winner_count":"desc"}],"size":3},"aggs":{"buyer_winner_count":{"filter":{"match_all":{}}}}}}}`
 	aggs_buyerclass_amounttop3 = `"buyerclass_amount_top3":{"terms":{"field":"buyerclass","exclude":["其它",""],"order":[{"buyerclass_amount":"desc"}],"size":70},"aggs":{"buyerclass_amount":{"sum":{"field":"sortprice"}},"winner_top":{"terms":{"field":"entidlist","exclude": ["-"],"order":[{"buyer_winner_amount":"desc"}],"size":3},"aggs":{"buyer_winner_amount":{"sum":{"field":"sortprice"}}}}}}`
 	sortprice_str              = `{"key":"<10万","from":0.0000000000001,"to":100000},{"key":"10万-50万","from":100000,"to":500000},{"key":"50万-100万","from":500000,"to":1000000},{"key":"100万-500万","from":1000000,"to":5000000},{"key":"500万-1000万","from":5000000,"to":10000000},{"key":"1000万-1亿","from":10000000,"to":100000000},{"key":"≥1亿","from":100000000}`
@@ -27,6 +27,9 @@ const (
 )
 
 type AreaCTop struct {
+	ProjectCount struct {
+		DocCount int `json:"doc_count"`
+	} `json:"project_count"`
 	Total     int64 `json:"doc_count"`
 	CountNot0 struct {
 		Count int64 `json:"doc_count"`
@@ -221,7 +224,8 @@ func (mae *MarketAnalysisEntity) AllData() (rMap map[string]interface{}, err err
 		aggs = append(aggs, aggs_area_amounttop3, aggs_area_counttop3)
 	}
 	if len(buyclass) != 1 {
-		aggs = append(aggs, aggs_buyerclass, aggs_buyerclass_other, aggs_buyerclass_amounttop3, aggs_buyerclass_counttop3)
+		//aggs = append(aggs, aggs_buyerclass, aggs_buyerclass_other, aggs_buyerclass_amounttop3, aggs_buyerclass_counttop3)
+		aggs = append(aggs, aggs_buyerclass, aggs_buyerclass_amounttop3, aggs_buyerclass_counttop3)
 	}
 	finalSql := fmt.Sprintf(mae.GetCommonQuerySqlWithAggs(), strings.Join(aggs, ","))
 	log.Println("allData sql:", finalSql)
@@ -240,13 +244,13 @@ func (mae *MarketAnalysisEntity) AllData() (rMap map[string]interface{}, err err
 				continue
 			}
 		} else if name == "project_count" {
-			if json.Unmarshal(bArr, &thisRow) != nil {
-				continue
-			}
-		} else if name == "buyerclass_scale_other" {
-			if json.Unmarshal(bArr, &thisRow.BuyerclassScaleOther) != nil {
+			if json.Unmarshal(bArr, &thisRow.ProjectCount) != nil {
 				continue
 			}
+			//} else if name == "buyerclass_scale_other" {
+			//	if json.Unmarshal(bArr, &thisRow.BuyerclassScaleOther) != nil {
+			//		continue
+			//	}
 		} else if name == "project_count_not0" {
 			if json.Unmarshal(bArr, &thisRow.CountNot0) != nil {
 				continue
@@ -449,17 +453,21 @@ func CustomerDistribute(thisRow AreaCTop) (data []map[string]interface{}, otherD
 		rM["buyclass"] = v.Area
 		rM["total"] = v.AreaTotal
 		rM["amount"] = v.BuyclassAmount.Value
-		data = append(data, rM)
-	}
-	for _, v := range thisRow.BuyerclassScaleOther.Buckets {
 		total += v.AreaTotal
 		amount += v.BuyclassAmount.Value
+		data = append(data, rM)
 	}
-	if total != 0 || amount != 0 {
-		otherData = make(map[string]interface{})
-		otherData["buyclass"] = "其它"
-		otherData["total"] = total
-		otherData["amount"] = amount
+	//for _, v := range thisRow.BuyerclassScaleOther.Buckets {
+	//	total += v.AreaTotal
+	//	amount += v.BuyclassAmount.Value
+	//}
+	otherData = make(map[string]interface{})
+	otherData["buyclass"] = "其它"
+	if pCount := util.Int64All(thisRow.ProjectCount.DocCount) - total; pCount > 0 {
+		otherData["total"] = pCount
+	}
+	if pAmount := thisRow.Amount.Value - amount; pAmount > 0 {
+		otherData["amount"] = pAmount
 	}
 	return
 }

+ 2 - 2
src/jfw/modules/bigmember/src/entity/portrait_screen.go

@@ -113,11 +113,11 @@ func TimeParse(str string) (st, et time.Time, err error) {
 	tRanges := strings.Split(str, "_")
 	if len(tRanges) == 2 {
 		// 使用 time.Parse 进行校验
-		st, err = time.Parse(time.DateOnly, tRanges[0])
+		st, err = time.Parse("time.DateOnly", tRanges[0])
 		if err != nil {
 			return
 		}
-		et, err = time.Parse(time.DateOnly, tRanges[1])
+		et, err = time.Parse("time.DateOnly", tRanges[1])
 		if err != nil {
 			return
 		}

+ 1 - 0
src/jfw/modules/subscribepay/src/entity/equityActive.go

@@ -325,6 +325,7 @@ func (e *EquityActive) SendPayRaffleMsg() {
 	idRs := util.Mysql.SelectBySql(query, now, now, e.OrderTypeCode)
 	if idRs == nil || len(*idRs) == 0 {
 		log.Println("该订单类型未查询到有效活动信息", e.OrderTypeCode)
+		return
 	}
 	// 如果有多个 只取第一个
 	activityId := common.IntAll((*idRs)[0]["id"])

+ 1 - 1
src/web/staticres/common-module/customer-corner/mobile-template.js

@@ -36,7 +36,7 @@ var customerCornerTemplate = `
     </div>
   </div>`
 
-Vue.component('customer-corner-component',{
+var customerCornerComponent = Vue.component('customer-corner-component',{
   name: 'customerCornerComponent',
   template: customerCornerTemplate,
   props: {

二進制
src/web/staticres/common-module/tourist/image/t-head-01.png


+ 4 - 4
src/web/staticres/js/login.js

@@ -173,20 +173,20 @@ function toggleLoginDom (type) {
     $("#public-nav .work-link").show()
     $("#public-nav .fl").addClass('fix-work')
     // 客服入口显示
-    $('#go-customer-4').show()
+    // $('#go-customer-4').show()
     // 客服企微展示
     $('#customer-wework').show()
-    $('#right-side-kfrx').removeClass('b-bottom-left-r')
+    $('#go-customer-4').removeClass('b-bottom-left-r')
   } else {
     $("#public-nav .nav-avatar").hide()
     $("#public-nav .work-link").hide()
     $("#public-nav .fl").removeClass('fix-work')
     $("#login .loginBtn").show()
     // 客服入口隐藏
-    $('#go-customer-4').hide()
+    // $('#go-customer-4').hide()
     // 客服企微隐藏
     $('#customer-wework').hide()
-    $('#right-side-kfrx').addClass('b-bottom-left-r')
+    $('#go-customer-4').addClass('b-bottom-left-r')
   }
 }
 //

+ 3 - 0
src/web/staticres/public-pc/css/pc-bottom.css

@@ -300,6 +300,9 @@
 .right-side-box .b-bottom-left-r {
     border-bottom-left-radius: 10px
 }
+.right-side-box .b-bottom-left-r  .hover-open-box{
+    border-bottom-left-radius: 10px
+}
 
 .right-side-box .right-side-pop:hover::after,
 .right-side-box .right-side-pop:hover::before {

+ 9 - 8
src/web/staticres/public-pc/js/pc-bottom.js

@@ -87,17 +87,18 @@ function goCustomerUrl (conf) {
 
 /**
  * 前往客服页面 (兼容旧业务逻辑,检查登录状态)
+ * P570改为未登录也可以以游客状态进入客服
  */
 function checkCustomerService () {
   // 登录判断
-  if (!loginflag) {
-    if (location.pathname === '/') {
-      // 首页登陆跳转工作桌面
-      return openLoginDig(true)
-    } else {
-      return openLoginDig()
-    }
-  }
+  // if (!loginflag) {
+  //   if (location.pathname === '/') {
+  //     // 首页登陆跳转工作桌面
+  //     return openLoginDig(true)
+  //   } else {
+  //     return openLoginDig()
+  //   }
+  // }
   goCustomerUrl()
 }
 

+ 1 - 1
src/web/templates/frontRouter/wx/collection/sess/ent_portrait.html

@@ -623,7 +623,7 @@
                 </van-tab>
             </van-tabs>
         <!--客服组件-->
-        <customer-corner-component v-show="isLogin" :scroll-status="pageScrollTop < 60"></customer-corner-component>
+        <customer-corner-component :scroll-status="pageScrollTop < 60"></customer-corner-component>
         </section>
 
         <div class="j-main project-tab-container" v-if="conf.powerLoaded && !conf.showPortraitAll">

+ 1 - 1
src/web/templates/pc/classifylist.html

@@ -773,7 +773,7 @@ $(function(){
   if(!loginflag){//未登录隐藏
     // 客服企微隐藏
     $('#customer-wework').addClass('hide')
-    $('#go-customer-4').addClass('hide')//客服隐藏
+    // $('#go-customer-4').addClass('hide')//客服隐藏
     $('.nologin-hide').addClass('hide')  //拟建隐藏
   }
   window.loginCallback = function () {//登录成功回调

+ 2 - 2
src/web/templates/pc/supsearch.html

@@ -2316,7 +2316,7 @@
       }
     }
     if(!loginflag){ //未登录隐藏
-      $('#go-customer-4').addClass('hide')
+      // $('#go-customer-4').addClass('hide')
       if(getParam('tab') === '2') {
         searchInnerVue.searchTab = 2
       } else {
@@ -2377,7 +2377,7 @@
     window.loginCallback = function () {//登录成功回调
       // @2023/9/26 未登录限制搜索条件
       $(".no-login-mask").remove()
-      $('#go-customer-4').removeClass('hide')
+      // $('#go-customer-4').removeClass('hide')
       if(getParam('tab') === '2') {
         searchInnerVue.searchTab = 2
       } else {