Эх сурвалжийг харах

wip:判断是否移动端

fuwencai 7 сар өмнө
parent
commit
51883dbcec

+ 13 - 3
src/entity/copywritingConfig.go

@@ -16,16 +16,21 @@ const (
 )
 
 // GetConfig 查询留资文案配置
-func GetConfig(codes []string) (configData map[string]interface{}) {
+func GetConfig(codes []string, bm bool) (configData map[string]interface{}) {
 	configData = map[string]interface{}{}
 	args := []string{}
 	selectCode := []interface{}{}
+
 	for i := 0; i < len(codes); i++ {
 		// 查缓存
 		content := redis.Get(saleLeadConfigCacheRedis, fmt.Sprintf(saleLeadConfigCacheKey, codes[i]))
 		if content != nil {
 			cMap := common.ObjToMap(content)
 			if cMap != nil && len(*cMap) > 0 {
+				if bm && common.ObjToString((*cMap)["mobile_title"]) != "" {
+					(*cMap)["title"] = (*cMap)["mobile_title"]
+				}
+				delete(*cMap, "mobile_title")
 				configData[codes[i]] = *cMap
 			} else {
 				args = append(args, "?")
@@ -39,7 +44,7 @@ func GetConfig(codes []string) (configData map[string]interface{}) {
 	if len(args) == 0 {
 		return
 	}
-	q := fmt.Sprintf("select `code`,title,subtitle,button_confirm,button_cancel from %s where `code` in (%s)", TableSalesLeadsConfig, strings.Join(args, ","))
+	q := fmt.Sprintf("select `code`,title,subtitle,mobile_title,button_confirm,button_cancel from %s where `code` in (%s)", TableSalesLeadsConfig, strings.Join(args, ","))
 	rs := Mysql.SelectBySql(q, selectCode...)
 	// 格式化
 	if rs != nil && len(*rs) > 0 {
@@ -50,9 +55,14 @@ func GetConfig(codes []string) (configData map[string]interface{}) {
 				"subtitle":       common.ObjToString((*rs)[i]["subtitle"]),
 				"button_confirm": common.ObjToString((*rs)[i]["button_confirm"]),
 				"button_cancel":  common.ObjToString((*rs)[i]["button_cancel"]),
+				"mobile_title":   common.ObjToString((*rs)[i]["mobile_title"]),
 			}
-			configData[code] = tmp
 			redis.Put(saleLeadConfigCacheRedis, fmt.Sprintf(saleLeadConfigCacheKey, codes[i]), tmp, -1)
+			if bm && common.ObjToString(tmp["mobile_title"]) != "" {
+				tmp["title"] = tmp["mobile_title"]
+			}
+			delete(tmp, "mobile_title")
+			configData[code] = tmp
 		}
 	}
 	return

+ 5 - 1
src/service/action/copywritingConfig.go

@@ -5,6 +5,7 @@ import (
 	"app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 	"encoding/json"
+	"regexp"
 	"salesLeads/src/entity"
 )
 
@@ -22,11 +23,14 @@ type RequestMsg struct {
 	Codes []string `json:"codes"` // 留资source
 }
 
+var mobileUrl = regexp.MustCompile("(?i)(app|H5|h5|ios)")
+
 func (c *Config) GetConfig() {
 	defer common.Catch()
 	reqMsg := new(RequestMsg)
 	if json.Unmarshal(c.Body(), &reqMsg) == nil && len(reqMsg.Codes) > 0 {
-		codes := entity.GetConfig(reqMsg.Codes)
+		bm := mobileUrl.MatchString(c.Request.Referer()) || mobileUrl.MatchString(c.Request.Host)
+		codes := entity.GetConfig(reqMsg.Codes, bm)
 		c.ServeJson(api.Result{Data: codes})
 		return
 	}