Jianghan 8 maanden geleden
bovenliggende
commit
a08d6d6856
3 gewijzigde bestanden met toevoegingen van 30 en 40 verwijderingen
  1. 27 39
      doFreeClueSign/job/job.go
  2. 1 1
      doFreeClueSign/job/mamager.go
  3. 2 0
      doFreeClueSign/main.go

+ 27 - 39
doFreeClueSign/job/job.go

@@ -86,10 +86,7 @@ func (jm *JobManager) LoadAgainSubUser() {
 // @Description 过滤订单 筛选活动注册用户
 // @Date 2024/11/18
 func loadOrder() {
-	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 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`
 	res, err := g.DB("jianyu").Query(ctx, sql, LastId)
 	if err == nil && !res.IsEmpty() {
 		for _, m := range res.List() {
@@ -131,18 +128,20 @@ func loadOrder() {
 	}
 }
 
-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`
+func LoadOrderOther() {
+	sql := `SELECT id, filter, order_code, product_type, user_id, user_phone, vip_starttime, vip_endtime FROM 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 count(1) FROM dataexport_order WHERE vip_endtime > ? AND vip_endtime < ? AND ('filter' LIKE '%邀请好友成功%' OR 'filter' LIKE '%被邀请注册成功%' OR 'filter' LIKE '%2024年新用户注册赠送7天超级订阅%')`
+	sql2 := `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)
+	c, _ := g.DB("jianyu").GetCount(ctx, sql1, now, end)
+	g.Log().Info(ctx, "LoadOrderOther count: ", c)
 	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)
+			res1, err := g.DB("jianyu").Query(ctx, sql2, 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)
 			}
@@ -162,10 +161,8 @@ func verifyDate(v int64) bool {
 // @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 <= ? AND ORDER BY id DESC`
-	)
 	g.Log().Infof(ctx, "LoadOrderHis start")
+	sql := `SELECT id, filter, order_code, product_type, user_id, user_phone, vip_starttime, vip_endtime FROM dataexport_order WHERE id <= ? AND filter LIKE '%邀请好友成功%' ORDER BY id DESC`
 	res, err := g.DB("jianyu").Query(ctx, sql, LastId)
 	if err == nil && !res.IsEmpty() {
 		for _, m := range res.List() {
@@ -173,36 +170,27 @@ func LoadOrderHis() {
 			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)
+			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.Log().Infof(ctx, "LoadOrderHis end")
+}
 
-					// 被邀请成功注册 送7天超级订阅订单
-					//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天超级订阅":
-					//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)
-					//}
-				}
-			}
+// @Author jianghan
+// @Description 11月9日注册成功
+// @Date 2024/11/20
+func LoadOrderHisMore() {
+	g.Log().Infof(ctx, "LoadOrderHisMore start")
+	now := time.Now().Format(time.DateTime)
+	sql := `SELECT id, filter, order_code, product_type, user_id, user_phone, vip_starttime, vip_endtime FROM dataexport_order WHERE vip_endtime > '2024-11-16 00:00:00' AND vip_endtime < ? AND 'filter' LIKE '%2024年新用户注册赠送7天超级订阅%' ORDER BY id DESC`
+	res, err := g.DB("jianyu").Query(ctx, sql, now)
+	if err == nil && !res.IsEmpty() {
+		for _, m := range res.List() {
+			userid := gconv.String(m["user_id"])
+			g.DB("bi_service").Exec(ctx, `INSERT INTO user_statistics (userId, createTime, event) SELECT ?, ?, 1 WHERE NOT EXISTS ( SELECT 3 FROM user_statistics WHERE userId = ? AND event = 3)`, userid, now, userid)
 		}
 	}
+	g.Log().Infof(ctx, "LoadOrderHisMore end")
 }

+ 1 - 1
doFreeClueSign/job/mamager.go

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

+ 2 - 0
doFreeClueSign/main.go

@@ -7,6 +7,8 @@ import (
 
 func main() {
 	go job.LoadOrderHis()
+	go job.LoadOrderHisMore()
+
 	job.InitJobManager()
 
 	select {}