|
@@ -1,6 +1,7 @@
|
|
package activeUsers
|
|
package activeUsers
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
+ "fmt"
|
|
"leadGeneration/entity/power"
|
|
"leadGeneration/entity/power"
|
|
"leadGeneration/public"
|
|
"leadGeneration/public"
|
|
"log"
|
|
"log"
|
|
@@ -12,9 +13,25 @@ import (
|
|
user_countbyhour 表只有一个月的数据
|
|
user_countbyhour 表只有一个月的数据
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
+// 超前项目
|
|
|
|
+type aheadActiveFreeUser struct {
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func NewAheadActiveFreeUser() *aheadActiveFreeUser {
|
|
|
|
+ return &aheadActiveFreeUser{}
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 定制化分析报告
|
|
|
|
+type customerActiveFreeUser struct {
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func NewCustomerActiveFreeUser() *customerActiveFreeUser {
|
|
|
|
+ return &customerActiveFreeUser{}
|
|
|
|
+}
|
|
|
|
+
|
|
// GetWeekActiveFreeUsers 获取周活无权限用户
|
|
// GetWeekActiveFreeUsers 获取周活无权限用户
|
|
-func GetWeekActiveFreeUsers() (rData []string) {
|
|
|
|
- log.Printf("[ACTIVE-USER-INFO]GetWeekActiveFreeUsers start\n")
|
|
|
|
|
|
+func (a *aheadActiveFreeUser) GetWeekActiveFreeUsers() (rData []string) {
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]AheadActiveFreeUser GetWeekActiveFreeUsers start\n")
|
|
now := time.Now()
|
|
now := time.Now()
|
|
_, end_m, end_d := now.Date()
|
|
_, end_m, end_d := now.Date()
|
|
_, start_m, start_d := now.AddDate(0, 0, -7).Date()
|
|
_, start_m, start_d := now.AddDate(0, 0, -7).Date()
|
|
@@ -30,9 +47,33 @@ func GetWeekActiveFreeUsers() (rData []string) {
|
|
sql = "SELECT DISTINCT(user_mongoid) FROM user_countbyhour WHERE day >= ? AND day < ?"
|
|
sql = "SELECT DISTINCT(user_mongoid) FROM user_countbyhour WHERE day >= ? AND day < ?"
|
|
param = []interface{}{start_d, end_d}
|
|
param = []interface{}{start_d, end_d}
|
|
}
|
|
}
|
|
- log.Printf("[ACTIVE-USER-INFO]GetWeekActiveFreeUsers search sql:%s value:%v start\n", sql, param)
|
|
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]AheadActiveFreeUser GetWeekActiveFreeUsers search sql:%s value:%v start\n", sql, param)
|
|
res := public.UserAnalyseDb.SelectBySql(sql, param...)
|
|
res := public.UserAnalyseDb.SelectBySql(sql, param...)
|
|
- log.Printf("[ACTIVE-USER-INFO]GetWeekActiveFreeUsers search end\n")
|
|
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]AheadActiveFreeUser GetWeekActiveFreeUsers search end\n")
|
|
|
|
+
|
|
|
|
+ if res == nil || len(*res) == 0 {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ rData = make([]string, 0, len(*res))
|
|
|
|
+ for _, v := range *res {
|
|
|
|
+ if userId, _ := v["user_mongoid"].(string); userId != "" {
|
|
|
|
+ if !power.HasAheadPower(userId) {
|
|
|
|
+ rData = append(rData, userId)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]AheadActiveFreeUser GetWeekActiveFreeUsers start Finished Total %d\n", len(rData))
|
|
|
|
+ return rData
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// GetMonthActiveFreeUsers 获取月活无权限用户
|
|
|
|
+func (a *aheadActiveFreeUser) GetMonthActiveFreeUsers() (rData []string) {
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]AheadActiveFreeUser GetMonthActiveFreeUsers start\n")
|
|
|
|
+ var sql string
|
|
|
|
+ sql = "SELECT DISTINCT(user_mongoid) FROM user_countbyhour "
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]AheadActiveFreeUser GetMonthActiveFreeUsers search sql:%s value:%v start\n", sql)
|
|
|
|
+ res := public.UserAnalyseDb.SelectBySql(sql)
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]AheadActiveFreeUser GetMonthActiveFreeUsers search end\n")
|
|
|
|
|
|
if res == nil || len(*res) == 0 {
|
|
if res == nil || len(*res) == 0 {
|
|
return
|
|
return
|
|
@@ -45,14 +86,14 @@ func GetWeekActiveFreeUsers() (rData []string) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- log.Printf("[ACTIVE-USER-INFO]GetWeekActiveFreeUsers start Finished Total %d\n", len(rData))
|
|
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]AheadActiveFreeUser GetMonthActiveFreeUsers start Finished Total %d\n", len(rData))
|
|
return rData
|
|
return rData
|
|
}
|
|
}
|
|
|
|
|
|
// GetMonthActiveFreeUsers 获取月活用户
|
|
// GetMonthActiveFreeUsers 获取月活用户
|
|
// 有订阅或有搜索词的周活用户+最近7天注册的新用户无条件生
|
|
// 有订阅或有搜索词的周活用户+最近7天注册的新用户无条件生
|
|
-func GetMonthActiveFreeUsers() (rData []string) {
|
|
|
|
- log.Printf("[ACTIVE-USER-INFO]GetMonthActiveFreeUsers start\n")
|
|
|
|
|
|
+func (c *customerActiveFreeUser) GetMonthActiveFreeUsers() (rData []string) {
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]CustomerActiveFreeUser GetMonthActiveFreeUsers start\n")
|
|
//表数据为近一个月,所以直接查询全部
|
|
//表数据为近一个月,所以直接查询全部
|
|
res := public.UserAnalyseDb.SelectBySql("SELECT user_mongoid,sum(search) AS total FROM user_countbyhour group by user_mongoid")
|
|
res := public.UserAnalyseDb.SelectBySql("SELECT user_mongoid,sum(search) AS total FROM user_countbyhour group by user_mongoid")
|
|
if res == nil || len(*res) == 0 {
|
|
if res == nil || len(*res) == 0 {
|
|
@@ -79,6 +120,53 @@ func GetMonthActiveFreeUsers() (rData []string) {
|
|
}
|
|
}
|
|
rData = append(rData, userId)
|
|
rData = append(rData, userId)
|
|
}
|
|
}
|
|
- log.Printf("[ACTIVE-USER-INFO]GetMonthActiveFreeUsers start Finished Total %d\n", len(rData))
|
|
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]CustomerActiveFreeUser GetMonthActiveFreeUsers start Finished Total %d\n", len(rData))
|
|
|
|
+ return rData
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// GetWeekActiveFreeUsers 获取周活用户
|
|
|
|
+func (c *customerActiveFreeUser) GetWeekActiveFreeUsers() (rData []string) {
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]CustomerActiveFreeUser GetWeekActiveFreeUsers start\n")
|
|
|
|
+ now := time.Now()
|
|
|
|
+ _, end_m, end_d := now.Date()
|
|
|
|
+ _, start_m, start_d := now.AddDate(0, 0, -7).Date()
|
|
|
|
+ var sql string
|
|
|
|
+ var param []interface{}
|
|
|
|
+ if start_m != end_m {
|
|
|
|
+ //跨月
|
|
|
|
+ sql = " WHERE day >= ? OR day < ? "
|
|
|
|
+ param = []interface{}{end_d, start_d}
|
|
|
|
+ } else {
|
|
|
|
+ //非跨月
|
|
|
|
+ sql = " WHERE day >= ? AND day < ? "
|
|
|
|
+ param = []interface{}{start_d, end_d}
|
|
|
|
+ }
|
|
|
|
+ query := fmt.Sprintf("SELECT user_mongoid,sum(search) AS total FROM user_countbyhour %s group by user_mongoid", sql)
|
|
|
|
+ res := public.UserAnalyseDb.SelectBySql(query, param...)
|
|
|
|
+ if res == nil || len(*res) == 0 {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ rData = make([]string, 0, len(*res))
|
|
|
|
+ for _, v := range *res {
|
|
|
|
+ userId, _ := v["user_mongoid"].(string)
|
|
|
|
+ if userId == "" {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //非会员
|
|
|
|
+ if hasPower := power.HasPower(userId); hasPower {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //无搜索记录、无关键词
|
|
|
|
+ if searchTotal, _ := v["total"].(int); searchTotal == 0 {
|
|
|
|
+ //无订阅词
|
|
|
|
+ if !power.HasSubscribe(userId) {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ rData = append(rData, userId)
|
|
|
|
+ }
|
|
|
|
+ log.Printf("[ACTIVE-USER-INFO]CustomerActiveFreeUser GetWeekActiveFreeUsers start Finished Total %d\n", len(rData))
|
|
return rData
|
|
return rData
|
|
}
|
|
}
|