Jianghan 8 months ago
parent
commit
d5f16858d5
3 changed files with 46 additions and 31 deletions
  1. 1 1
      doFreeClueSign/config.yaml
  2. 43 28
      doFreeClueSign/job/job.go
  3. 2 2
      doFreeClueSign/job/mamager.go

+ 1 - 1
doFreeClueSign/config.yaml

@@ -40,4 +40,4 @@ database:
 cron:
 cron:
   activityUser: "*/10 * * * * *" #更新新活跃用户
   activityUser: "*/10 * * * * *" #更新新活跃用户
   bindPhoneAndSubAgain: "*/10 * * * * *" #再次关注&绑定手机号用户
   bindPhoneAndSubAgain: "*/10 * * * * *" #再次关注&绑定手机号用户
-  newRegisterAndBind: "*/3 * * * * *" #邀请&被邀请注册&新注册
+  newRegisterAndBind: "0 */2 * * * *" #邀请&被邀请注册&新注册

+ 43 - 28
doFreeClueSign/job/job.go

@@ -2,7 +2,6 @@ package job
 
 
 import (
 import (
 	"context"
 	"context"
-	"doFreeClueSign/db"
 	"doFreeClueSign/public"
 	"doFreeClueSign/public"
 	"github.com/gogf/gf/v2/encoding/gjson"
 	"github.com/gogf/gf/v2/encoding/gjson"
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/frame/g"
@@ -88,7 +87,6 @@ func (jm *JobManager) LoadAgainSubUser() {
 // @Date 2024/11/18
 // @Date 2024/11/18
 func loadOrder() {
 func loadOrder() {
 	var (
 	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`
 		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`
 	)
 	)
 
 
@@ -107,7 +105,7 @@ func loadOrder() {
 			filter := jsonObj.Map()
 			filter := jsonObj.Map()
 			userid := gconv.String(m["user_id"])
 			userid := gconv.String(m["user_id"])
 			now := time.Now().Format(time.DateTime)
 			now := time.Now().Format(time.DateTime)
-			vipEndTime := gconv.Time(m["vip_endtime"]).Unix()
+			//vipEndTime := gconv.Time(m["vip_endtime"]).Unix()
 			if remark := gconv.String(filter["remark"]); remark != "" {
 			if remark := gconv.String(filter["remark"]); remark != "" {
 				switch remark {
 				switch remark {
 				case "邀请好友成功":
 				case "邀请好友成功":
@@ -116,25 +114,42 @@ func loadOrder() {
 					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)
 					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天超级订阅订单
 					// 被邀请成功注册 送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)
-					}
+					//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天超级订阅":
 				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 {
-
-					}
+					//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)
+					//}
 				}
 				}
 			}
 			}
 		}
 		}
 	}
 	}
 }
 }
 
 
+func loadOrderOther() {
+	sql := `SELECT id, filter, order_code, product_type, user_id, user_phone, vip_starttime, vip_endtime FROM jianyu.dataexport_order WHERE 
+        vip_endtime > ? AND vip_endtime < ? AND filter LIKE '%邀请好友成功%' OR filter LIKE '%被邀请注册成功%' OR filter LIKE '%2024年新用户注册赠送7天超级订阅%' ORDER BY id ASC`
+	sql1 := `SELECT id, filter, order_code, product_type, user_id, user_phone, vip_starttime, vip_endtime FROM jianyu.dataexport_order WHERE product_type = 'VIP订阅' AND product_type = '大会员' AND id > ? AND user_id = ? ORDER BY id ASC`
+	now := time.Now().Format(time.DateTime)
+	end := time.Now().AddDate(0, 0, 1).Format(time.DateTime)
+	res, err := g.DB("jianyu").Query(ctx, sql, now, end)
+	if err == nil && !res.IsEmpty() {
+		for _, m := range res.List() {
+			id := gconv.Int64(m["id"])
+			userid := gconv.String(m["user_id"])
+			res1, err := g.DB("jianyu").Query(ctx, sql1, id, userid)
+			if err == nil && res1.IsEmpty() {
+				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)
+			}
+		}
+	}
+}
+
 // 验证vip到期时间一天内到期
 // 验证vip到期时间一天内到期
 func verifyDate(v int64) bool {
 func verifyDate(v int64) bool {
 	if (v - time.Now().Unix()) < 24*60*60 {
 	if (v - time.Now().Unix()) < 24*60*60 {
@@ -148,7 +163,7 @@ func verifyDate(v int64) bool {
 // @Date 2024/11/19
 // @Date 2024/11/19
 func LoadOrderHis() {
 func LoadOrderHis() {
 	var (
 	var (
-		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 DESC`
+		sql = `SELECT id, filter, order_code, product_type, user_id, user_phone, vip_starttime, vip_endtime FROM jianyu.dataexport_order WHERE id <= ? AND ORDER BY id DESC`
 	)
 	)
 	g.Log().Infof(ctx, "LoadOrderHis start")
 	g.Log().Infof(ctx, "LoadOrderHis start")
 	res, err := g.DB("jianyu").Query(ctx, sql, LastId)
 	res, err := g.DB("jianyu").Query(ctx, sql, LastId)
@@ -166,26 +181,26 @@ func LoadOrderHis() {
 			filter := jsonObj.Map()
 			filter := jsonObj.Map()
 			userid := gconv.String(m["user_id"])
 			userid := gconv.String(m["user_id"])
 			now := time.Now().Format(time.DateTime)
 			now := time.Now().Format(time.DateTime)
-			vipEndTime := gconv.Time(m["vip_endtime"]).Unix()
+			//vipEndTime := gconv.Time(m["vip_endtime"]).Unix()
 			if remark := gconv.String(filter["remark"]); remark != "" {
 			if remark := gconv.String(filter["remark"]); remark != "" {
 				switch remark {
 				switch remark {
 				case "邀请好友成功":
 				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)
 					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 "被邀请注册成功":
 				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)
+					//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天超级订阅订单
 					// 被邀请成功注册 送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 ?, ?, 2 WHERE NOT EXISTS ( SELECT 1 FROM user_statistics WHERE userId = ? AND event = 2)`, userid, now, userid)
-					}
+					//res, _ := db.MG.DB().FindById("user", userid, `{""l_vip_endtime":1, "i_member_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天超级订阅":
 				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)
-					}
+					//res, _ := db.MG.DB().FindById("user", userid, `{"l_vip_endtime":1, "i_member_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)
+					//}
 				}
 				}
 			}
 			}
 		}
 		}

+ 2 - 2
doFreeClueSign/job/mamager.go

@@ -91,9 +91,9 @@ func InitJobManager() *JobManager {
 
 
 	if newRegisterCronStr != "" {
 	if newRegisterCronStr != "" {
 		_, err = gcron.Add(ctx, newRegisterCronStr, func(ctx context.Context) {
 		_, err = gcron.Add(ctx, newRegisterCronStr, func(ctx context.Context) {
-			g.Log().Infof(ctx, "newister start %v", activityUserJobRunning)
+			g.Log().Infof(ctx, "newister start")
 			loadOrder()
 			loadOrder()
-
+			loadOrderOther() // 未来一天内到期的新注册用户
 		}, "newister")
 		}, "newister")
 		if err != nil {
 		if err != nil {
 			panic(err)
 			panic(err)