Przeglądaj źródła

用户关注取关日志保存

wangshan 7 lat temu
rodzic
commit
12a6672663
1 zmienionych plików z 50 dodań i 145 usunięć
  1. 50 145
      src/jfw/modules/weixin/src/wx/wx.go

+ 50 - 145
src/jfw/modules/weixin/src/wx/wx.go

@@ -22,7 +22,7 @@ import (
 	"tools"
 
 	"github.com/SKatiyar/qr"
-	"github.com/influxdata/influxdb-client"
+	_ "github.com/influxdata/influxdb-client"
 	. "github.com/wizjin/weixin"
 )
 
@@ -639,81 +639,55 @@ func Subscribe(w ResponseWriter, r *Request) {
 func saveUserLog(shareId, openid string) {
 	defer util.Catch()
 	date := time.Now()
-	userData := redis.Get("sso", "p_shareData_"+shareId)
+	userData_redis := redis.Get("sso", "p_shareData_"+shareId)
 	var pccodepre = ""
 	user, _ := Mux.GetUserInfo(openid)
 	nickname := user.Nickname
 	province := user.Province
+	userData := map[string]interface{}{}
 	action := "关注"
-	model := ""
-	referer := ""
-	paramkey := ""
-	activecode := ""
-	usersource := ""
-	os := ""
-	browse := ""
-	//infoTime := date.Unix()
-	if userData != nil {
+	infoTime := date.Unix()
+	if userData_redis != nil {
 		infoData := map[string]interface{}{}
-		tmp, _ := json.Marshal(userData)
+		tmp, _ := json.Marshal(userData_redis)
 		json.Unmarshal(tmp, &infoData)
-		//log.Println("weixinuserdata:", infoData)
+		userData["s_action"] = action
 		pccodepre = util.ObjToString(infoData["action"])
-		model = util.ObjToString(infoData["RModule"])
-		referer = util.ObjToString(infoData["RReferer"])
-		usersource = util.ObjToString(infoData["RSource"])
-		paramkey = util.ObjToString(infoData["Rparamkey"])
-		activecode = util.ObjToString(infoData["RActiveCode"])
-		os = util.ObjToString(infoData["Ros"])
-		browse = util.ObjToString(infoData["Rbrowse"])
+		userData["s_module"] = util.ObjToString(infoData["RModule"])
+		userData["s_referer"] = util.ObjToString(infoData["RReferer"])
+		userData["s_source"] = util.ObjToString(infoData["RSource"])
+		userData["s_paramkey"] = util.ObjToString(infoData["Rparamkey"])
+		userData["s_activeCode"] = util.ObjToString(infoData["RActiveCode"])
+		userData["s_os"] = util.ObjToString(infoData["Ros"])
+		userData["s_browse"] = util.ObjToString(infoData["Rbrowse"])
 	} else {
-		model = "首页"
-		referer = "剑鱼网站"
-		usersource = "剑鱼网站"
+		userData["s_module"] = "首页"
+		userData["s_referer"] = "剑鱼网站"
+		userData["s_source"] = "剑鱼网站"
 	}
 	if strings.HasPrefix(pccodepre, "32") {
-		usersource = "用户分享"
-		model = "微信用户分享"
-		referer = ""
+		userData["s_source"] = "用户分享"
+		userData["s_module"] = "微信用户分享"
+		userData["s_referer"] = ""
 	}
-	if province == "" {
-		province = "中国"
+	userData["s_province"] = province
+	if userData["s_os"] == "" {
+		userData["s_os"] = "其他"
 	}
-	if os == "" {
-		os = "其他"
+	if userData["s_browse"] == "" {
+		userData["s_browse"] = "其他"
 	}
-	if browse == "" {
-		browse = "其他"
-	}
-	//timelog := time.Unix(infoTime, 0).Format("2006-01-02 15:04:05")
-	//timestamp, _ := time.Parse("2006-01-02 15:04:05", timelog) //新用户关注取关日期
-	err := util.InsertInto("jy_logs",
-		"user_log",
-		[]influxdb.Tag{
-			{Key: "province", Value: province},
-			{Key: "action", Value: action},
-			{Key: "usersource", Value: usersource},
-			{Key: "model", Value: model},
-			{Key: "s_date", Value: util.FormatDate(&date, util.Date_Short_Layout)},
-		},
-		map[string]interface{}{
-			"openid":     openid,
-			"nickname":   nickname,
-			"referer":    referer,
-			"paramkey":   paramkey,
-			"activecode": activecode,
-			"browse":     browse,
-			"os":         os,
-			"sourceid":   shareId,
-			//"s_date":     util.FormatDate(&date, util.Date_Full_Layout),
-		},
-		time.Now(),
-		"autogen",
-	)
-	if err != nil {
-		log.Println("influxdb:", err.Error())
+	userData["i_year"] = date.Year()
+	userData["i_month"] = getMonth(date.Month().String())
+	userData["i_day"] = date.Day()
+	userData["l_timestamp"] = infoTime
+	userData["s_nickname"] = nickname
+	userData["s_openid"] = openid
+	id := tools.MQFW.Save("register_log", userData)
+	if len(id) > 0 {
+		log.Println("register-success:")
 	} else {
-		log.Println(err, "---", nickname)
+		log.Println("register-err:", nickname)
 	}
 }
 
@@ -914,92 +888,23 @@ func updateUserLog(openid string) {
 		return
 	}
 	date := time.Now()
-	//infoTime := date.Unix()
-	nickname := ""
-	province := ""
-	action := "取关"
-	model := ""
-	referer := ""
-	paramkey := ""
-	activecode := ""
-	usersource := ""
-	os := ""
-	browse := ""
-	shareId := ""
-	sdate := ""
-	err := util.Search("jy_logs",
-		func(row influxdb.Row) error {
-			model = util.ObjToString(row.ValueByName("model"))
-			referer = util.ObjToString(row.ValueByName("referer"))
-			activecode = util.ObjToString(row.ValueByName("activecode"))
-			usersource = util.ObjToString(row.ValueByName("usersource"))
-			nickname = util.ObjToString(row.ValueByName("nickname"))
-			province = util.ObjToString(row.ValueByName("province"))
-			os = util.ObjToString(row.ValueByName("os"))
-			browse = util.ObjToString(row.ValueByName("browse"))
-			paramkey = util.ObjToString(row.ValueByName("paramkey"))
-			shareId = util.ObjToString(row.ValueByName("sourceid"))
-			sdate = util.ObjToString(row.ValueByName("s_date"))
-			return nil
-		},
-		`select "model","referer","paramkey","activecode","usersource","nickname","sourceid","province","os","browse","s_date" from autogen.user_log where openid=$openid order by time desc limit 1`,
-		influxdb.Param("openid", openid),
-	)
-	if err != nil {
-		log.Println("取消关注用户信息报错:", err.Error())
-		util.InsertInto("jy_logs",
-			"user_log",
-			[]influxdb.Tag{
-				{Key: "province", Value: "中国"},
-				{Key: "action", Value: "取关"},
-				{Key: "usersource", Value: "no-source"},
-				{Key: "model", Value: "no-model"},
-				{Key: "s_date", Value: util.FormatDate(&date, util.Date_Short_Layout)},
-			},
-			map[string]interface{}{
-				"openid":     openid,
-				"nickname":   nickname,
-				"referer":    referer,
-				"paramkey":   paramkey,
-				"activecode": activecode,
-				"browse":     browse,
-				"os":         os,
-				"sourceid":   shareId,
-				//"s_date":     util.FormatDate(&date, util.Date_Full_Layout),
-			},
-			time.Now().Add(time.Duration(rand.Intn(100000))*time.Millisecond),
-			"autogen",
-		)
-	} else {
-		//timelog := time.Unix(infoTime, 0).Format("2006-01-02 15:04:05")
-		//timestamp, _ := time.Parse("2006-01-02 15:04:05", timelog) //新用户关注取关日期
-		err := util.InsertInto("jy_logs",
-			"user_log",
-			[]influxdb.Tag{
-				{Key: "province", Value: province},
-				{Key: "action", Value: action},
-				{Key: "usersource", Value: usersource},
-				{Key: "model", Value: model},
-				{Key: "s_date", Value: util.FormatDate(&date, util.Date_Short_Layout)},
-			},
-			map[string]interface{}{
-				"openid":     openid,
-				"nickname":   nickname,
-				"referer":    referer,
-				"paramkey":   paramkey,
-				"activecode": activecode,
-				"browse":     browse,
-				"os":         os,
-				"sourceid":   shareId,
-				//"s_date":     util.FormatDate(&date, util.Date_Full_Layout),
-			},
-			time.Now().Add(time.Duration(rand.Intn(100000))*time.Millisecond),
-			"autogen",
-		)
-		if err != nil {
-			log.Println("influxdb11:", err.Error())
+	infoTime := date.Unix()
+	userData, ok := tools.MQFW.Find("register_log", `{"s_openid": `+openid+`}`, `{"l_timestamp":-1}`, nil, false, 0, 1)
+	if ok && len(*userData) > 0 {
+		data := (*userData)[0]
+		data["s_action"] = "取关"
+		data["l_timestamp"] = infoTime
+		data["i_year"] = date.Year()
+		data["i_month"] = getMonth(date.Month().String())
+		data["i_day"] = date.Day()
+		id := tools.MQFW.Save("register_log", data)
+		if len(id) > 0 {
+			log.Println("update_register_success:")
 		}
+	} else {
+		log.Println("update_register_err:")
 	}
+
 }
 
 //