Ver código fonte

wip:企业信用报告引流

wkyuer 1 mês atrás
pai
commit
c1c283e56c
1 arquivos alterados com 12 adições e 4 exclusões
  1. 12 4
      internal/service/bidDetail.go

+ 12 - 4
internal/service/bidDetail.go

@@ -287,12 +287,20 @@ func FindBiding(sid, content string, lent int, isWhiteIp bool) (t bool, obj map[
 			//企业信用报告引流
 			if gv, gerr := g.Redis("other").Get(ctx, "ent_credit_report_keys"); gerr == nil && !gv.IsNil() {
 				if valueMap := gv.Map(); len(valueMap) > 0 {
-					var nologinCw = gconv.String(valueMap["nologinCw"])
-					var tmpSter = "[jy_credit_report]"
+					var (
+						min       = -1
+						minMap    = map[int]string{}
+						nologinCw = gconv.String(valueMap["nologinCw"])
+					)
 					for _, keyWords := range strings.Split(gconv.String(valueMap["matchKeys"]), ",") {
-						finalDetail = strings.ReplaceAll(finalDetail, keyWords, fmt.Sprintf("%s%s", keyWords, tmpSter))
+						if index := strings.Index(finalDetail, keyWords); index != -1 && (min == -1 || index < min) {
+							min = index
+							minMap[index] = keyWords
+						}
+					}
+					if nologinCw != "" && min > -1 {
+						finalDetail = strings.Replace(finalDetail, minMap[min], fmt.Sprintf("%s<i style=\"color:#2ABED1\">%s</i>", minMap[min], nologinCw), 1)
 					}
-					finalDetail = strings.ReplaceAll(finalDetail, tmpSter, fmt.Sprintf("<i style=\"color:#2ABED1\">%s</i>", nologinCw))
 				}
 			}
 			obj["detail"] = finalDetail