|
@@ -2,7 +2,9 @@ package job
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
+ "doFreeClueSign/db"
|
|
|
"doFreeClueSign/public"
|
|
|
+ "github.com/gogf/gf/v2/encoding/gjson"
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
|
"time"
|
|
@@ -36,7 +38,6 @@ func (jm *JobManager) LoadActivityUser() {
|
|
|
func (jm *JobManager) LoadBindPhoneUser() {
|
|
|
var (
|
|
|
runNow = time.Now()
|
|
|
- ctx = context.TODO()
|
|
|
)
|
|
|
start, _ := time.ParseInLocation(time.DateTime, jm.lastRun.BindPhone, time.Local)
|
|
|
val := public.GetBidPhoneUser(start, runNow)
|
|
@@ -81,3 +82,112 @@ func (jm *JobManager) LoadAgainSubUser() {
|
|
|
g.Log().Errorf(ctx, "LoadAgainSubUser error %v", err)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+// @Author jianghan
|
|
|
+// @Description 过滤订单 筛选活动注册用户
|
|
|
+// @Date 2024/11/18
|
|
|
+func loadOrder() {
|
|
|
+ var (
|
|
|
+ ctx = context.Background()
|
|
|
+ sql = `SELECT id, filter, order_code, product_type, user_id, user_phone, vip_starttime, vip_endtime FROM jianyu.dataexport_order WHERE id > ? ORDER BY id ASC`
|
|
|
+ )
|
|
|
+
|
|
|
+ res, err := g.DB("jianyu").Query(ctx, sql, LastId)
|
|
|
+ if err == nil && !res.IsEmpty() {
|
|
|
+ for _, m := range res.List() {
|
|
|
+ id := gconv.Int(m["id"])
|
|
|
+ if id > LastId {
|
|
|
+ LastId = id
|
|
|
+ }
|
|
|
+ jsonObj, err := gjson.DecodeToJson([]byte(gconv.String(m["filter"])))
|
|
|
+ if err != nil {
|
|
|
+ g.Log().Errorf(ctx, "loadOrder error %v", err)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ filter := jsonObj.Map()
|
|
|
+ userid := gconv.String(m["user_id"])
|
|
|
+ now := time.Now().Format(time.DateTime)
|
|
|
+ vipEndTime := gconv.Time(m["vip_endtime"]).Unix()
|
|
|
+ if remark := gconv.String(filter["remark"]); remark != "" {
|
|
|
+ switch remark {
|
|
|
+ case "邀请好友成功":
|
|
|
+ g.DB("bi_service").Exec(ctx, `INSERT INTO user_statistics (userId, createTime, event) SELECT ?, ?, 1 WHERE NOT EXISTS ( SELECT 1 FROM user_statistics WHERE userId = ? AND event = 1)`, userid, now, userid)
|
|
|
+ case "被邀请注册成功":
|
|
|
+ g.DB("bi_service").Exec(ctx, `INSERT INTO user_statistics (userId, createTime, event) SELECT ?, ?, 2 WHERE NOT EXISTS ( SELECT 1 FROM user_statistics WHERE userId = ? AND event = 2)`, userid, now, userid)
|
|
|
+
|
|
|
+ // 被邀请成功注册 送7天超级订阅订单
|
|
|
+ res, _ := db.MG.DB().FindById("user", userid, `{"l_vip_endtime":1}`)
|
|
|
+ userVEndtime := gconv.Int64((*res)["l_vip_endtime"])
|
|
|
+ if userVEndtime == vipEndTime && verifyDate(vipEndTime) {
|
|
|
+ g.DB("bi_service").Exec(ctx, `INSERT INTO user_statistics (userId, createTime, event) SELECT ?, ?, 3 WHERE NOT EXISTS ( SELECT 1 FROM user_statistics WHERE userId = ? AND event = 3)`, userid, now, userid)
|
|
|
+ }
|
|
|
+ case "2024年新用户注册赠送7天超级订阅":
|
|
|
+ res, _ := db.MG.DB().FindById("user", userid, `{"l_vip_endtime":1}`)
|
|
|
+ userVEndtime := gconv.Int64((*res)["l_vip_endtime"])
|
|
|
+ if userVEndtime == vipEndTime && verifyDate(vipEndTime) {
|
|
|
+ g.DB("bi_service").Exec(ctx, `INSERT INTO user_statistics (userId, createTime, event) SELECT ?, ?, 3 WHERE NOT EXISTS ( SELECT 1 FROM user_statistics WHERE userId = ? AND event = 3)`, userid, now, userid)
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 验证vip到期时间一天内到期
|
|
|
+func verifyDate(v int64) bool {
|
|
|
+ if (v - time.Now().Unix()) < 24*60*60 {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false
|
|
|
+}
|
|
|
+
|
|
|
+// @Author jianghan
|
|
|
+// @Description 历史数据
|
|
|
+// @Date 2024/11/19
|
|
|
+func LoadOrderHis() {
|
|
|
+ var (
|
|
|
+ sql = `SELECT id, filter, order_code, product_type, user_id, user_phone, vip_starttime, vip_endtime FROM jianyu.dataexport_order WHERE id < 258763 AND ORDER BY id DESC`
|
|
|
+ )
|
|
|
+
|
|
|
+ res, err := g.DB("jianyu").Query(ctx, sql)
|
|
|
+ if err == nil && !res.IsEmpty() {
|
|
|
+ for _, m := range res.List() {
|
|
|
+ id := gconv.Int(m["id"])
|
|
|
+ if id > LastId {
|
|
|
+ LastId = id
|
|
|
+ }
|
|
|
+ jsonObj, err := gjson.DecodeToJson([]byte(gconv.String(m["filter"])))
|
|
|
+ if err != nil {
|
|
|
+ g.Log().Errorf(ctx, "order_code: %s, loadOrder error %v", gconv.String(m["order_code"]), err)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ filter := jsonObj.Map()
|
|
|
+ userid := gconv.String(m["user_id"])
|
|
|
+ now := time.Now().Format(time.DateTime)
|
|
|
+ vipEndTime := gconv.Time(m["vip_endtime"]).Unix()
|
|
|
+ if remark := gconv.String(filter["remark"]); remark != "" {
|
|
|
+ switch remark {
|
|
|
+ case "邀请好友成功":
|
|
|
+ g.DB("bi_service").Exec(ctx, `INSERT INTO user_statistics (userId, createTime, event) SELECT ?, ?, 1 WHERE NOT EXISTS ( SELECT 1 FROM user_statistics WHERE userId = ? AND event = 1)`, userid, now, userid)
|
|
|
+ case "被邀请注册成功":
|
|
|
+ g.DB("bi_service").Exec(ctx, `INSERT INTO user_statistics (userId, createTime, event) SELECT ?, ?, 2 WHERE NOT EXISTS ( SELECT 1 FROM user_statistics WHERE userId = ? AND event = 2)`, userid, now, userid)
|
|
|
+
|
|
|
+ // 被邀请成功注册 送7天超级订阅订单
|
|
|
+ res, _ := db.MG.DB().FindById("user", userid, `{"l_vip_endtime":1}`)
|
|
|
+ userVEndtime := gconv.Int64((*res)["l_vip_endtime"])
|
|
|
+ if userVEndtime == vipEndTime && verifyDate(vipEndTime) {
|
|
|
+ g.DB("bi_service").Exec(ctx, `INSERT INTO user_statistics (userId, createTime, event) SELECT ?, ?, 3 WHERE NOT EXISTS ( SELECT 1 FROM user_statistics WHERE userId = ? AND event = 3)`, userid, now, userid)
|
|
|
+ }
|
|
|
+ case "2024年新用户注册赠送7天超级订阅":
|
|
|
+ res, _ := db.MG.DB().FindById("user", userid, `{"l_vip_endtime":1}`)
|
|
|
+ userVEndtime := gconv.Int64((*res)["l_vip_endtime"])
|
|
|
+ if userVEndtime == vipEndTime && verifyDate(vipEndTime) {
|
|
|
+ g.DB("bi_service").Exec(ctx, `INSERT INTO user_statistics (userId, createTime, event) SELECT ?, ?, 3 WHERE NOT EXISTS ( SELECT 1 FROM user_statistics WHERE userId = ? AND event = 3)`, userid, now, userid)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|