Procházet zdrojové kódy

Merge remote-tracking branch 'origin/feature/v1.1.2' into dev_v1.1.2_wh

# Conflicts:
#	resourceBrushLibrary/go.sum
WH01243 před 1 rokem
rodič
revize
8e39a91181

+ 7 - 0
activeStartTip/config.json

@@ -4,6 +4,13 @@
       "address": "192.168.3.206:27080",
       "size": 2,
       "dbName": "qfw"
+    },
+    "log": {
+      "address": "192.168.3.206:27090",
+      "size": 5,
+      "dbName": "qfw",
+      "userName": "admin",
+      "password": "123456"
     }
   },
   "etcd": {

+ 12 - 2
activeStartTip/config/config.go

@@ -7,8 +7,9 @@ import (
 )
 
 var (
-	Config *config
-	Mgo    *mongodb.MongodbSim
+	Config  *config
+	Mgo     *mongodb.MongodbSim
+	Mgo_Log *mongodb.MongodbSim
 )
 
 type MsgConf struct {
@@ -27,6 +28,7 @@ type etcdConf struct {
 type config struct {
 	Mongodb struct {
 		Main *mongo
+		Log  *mongo
 	}
 	Etcd        etcdConf
 	Webdomain   string
@@ -52,4 +54,12 @@ func init() {
 		DbName:      Config.Mongodb.Main.DbName,
 	}
 	Mgo.InitPool()
+	Mgo_Log = &mongodb.MongodbSim{
+		MongodbAddr: Config.Mongodb.Log.Address,
+		Size:        Config.Mongodb.Log.Size,
+		DbName:      Config.Mongodb.Log.DbName,
+		UserName:    Config.Mongodb.Log.UserName,
+		Password:    Config.Mongodb.Log.Password,
+	}
+	Mgo_Log.InitPool()
 }

+ 1 - 1
activeStartTip/go.mod

@@ -6,6 +6,7 @@ require (
 	app.yhyue.com/moapp/MessageCenter v0.0.0-20231026080417-49f63bf75554
 	app.yhyue.com/moapp/jybase v0.0.0-20231011022039-fa0f75e5282f
 	github.com/zeromicro/go-zero v1.5.5
+	go.mongodb.org/mongo-driver v1.12.1
 )
 
 require (
@@ -58,7 +59,6 @@ require (
 	go.etcd.io/etcd/api/v3 v3.5.9 // indirect
 	go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect
 	go.etcd.io/etcd/client/v3 v3.5.9 // indirect
-	go.mongodb.org/mongo-driver v1.12.1 // indirect
 	go.opentelemetry.io/otel v1.14.0 // indirect
 	go.opentelemetry.io/otel/exporters/jaeger v1.14.0 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect

+ 48 - 21
activeStartTip/main.go

@@ -5,13 +5,17 @@ import (
 	. "activeStartTip/rpc"
 	"log"
 	"sync"
+	"sync/atomic"
 	"time"
 
 	"app.yhyue.com/moapp/MessageCenter/rpc/type/message"
+	"app.yhyue.com/moapp/jybase/common"
 	. "app.yhyue.com/moapp/jybase/mongodb"
+	"go.mongodb.org/mongo-driver/bson/primitive"
 )
 
 func main() {
+	allUser := loadAllUser()
 	pool := make(chan bool, Config.SendMsgPool)
 	wait := &sync.WaitGroup{}
 	sess := Mgo.GetMgoConn()
@@ -22,25 +26,14 @@ func main() {
 			"$in": ToObjectIds(Config.TestIds),
 		}
 	} else {
-		unix := time.Now().AddDate(-1, 0, 0).Unix()
-		query["$or"] = []map[string]interface{}{
-			map[string]interface{}{
-				"$gt": map[string]interface{}{
-					"l_registedate": unix,
-				},
-			},
-			map[string]interface{}{
-				"$gt": map[string]interface{}{
-					"auto_updatetime": unix,
-				},
-			},
-		}
+		query["i_appid"] = 2
 	}
 	log.Println("start...", query)
 	it := sess.DB("qfw").C("user").Find(query).Select(map[string]interface{}{
-		"_id": 1,
-	}).Iter()
-	index := 0
+		"_id":          1,
+		"base_user_id": 1,
+	}).Sort("_id").Iter()
+	var index int64
 	for m := make(map[string]interface{}); it.Next(&m); {
 		pool <- true
 		wait.Add(1)
@@ -49,23 +42,57 @@ func main() {
 				<-pool
 				wait.Done()
 			}()
+			if !allUser[common.Int64All(u["base_user_id"])] {
+				return
+			}
+			rs := atomic.AddInt64(&index, 1)
+			rs++
+			if rs%5000 == 0 {
+				log.Println("index", rs)
+			}
 			_id := BsonIdToSId(u["_id"])
 			SendMsg(&message.MultipleSaveMsgReq{
 				UserIds:    _id,
 				Title:      "做任务赚好礼",
 				Content:    "7天内完成限时任务,额外赠送超级订阅7天体验。获取更多采购项目信息,快速对接项目联系人!",
 				MsgType:    1,
-				Link:       "/home/work-bench/app/points/earn,/jy_mobile/points/earn,/jy_mobile/points/earn",
+				Link:       "/page_workDesktop/work-bench/app/points/earn,/jy_mobile/points/earn,/jy_mobile/points/earn,/jy_mobile/points/earn",
 				Appid:      "10000",
 				AppPushUrl: "/jy_mobile/points/earn",
 				IosPushUrl: "/jy_mobile/points/earn",
 			})
 		}(m)
-		index++
-		if index%500 == 0 {
-			log.Println("index", index)
-		}
 	}
 	wait.Wait()
 	log.Println("over...", index)
 }
+
+func loadAllUser() map[int64]bool {
+	_id := primitive.NewObjectIDFromTimestamp(time.Now().AddDate(-1, 0, 0))
+	log.Println("开始加载最近一年活跃用户。。。", _id)
+	allUser := map[int64]bool{}
+	sess := Mgo_Log.GetMgoConn()
+	defer Mgo_Log.DestoryMongoConn(sess)
+	it := sess.DB("qfw").C("jy_gateway_logs").Find(map[string]interface{}{
+		"_id": map[string]interface{}{
+			"$gt": _id,
+		},
+	}).Select(map[string]interface{}{
+		"_id":        0,
+		"userid_new": 1,
+	}).Iter()
+	var index int64
+	for m := make(map[string]interface{}); it.Next(&m); {
+		index++
+		if index%50000 == 0 {
+			log.Println("加载最近一年活跃用户", index)
+		}
+		userid_new := common.Int64All(m["userid_new"])
+		if userid_new <= 0 {
+			continue
+		}
+		allUser[userid_new] = true
+	}
+	log.Println("加载最近一年活跃用户结束。。。", _id, index)
+	return allUser
+}

+ 3 - 2
resourceBrushLibrary/config.json

@@ -41,20 +41,21 @@
   "webdomain": "https://jybx2-webtest.jydev.jianyu360.com",
   "sendMsgPool":5,
   "givePool":5,
-  "limitTimeActivity": "08:00",
   "checkPointExpire":"00:01",
   "checkPointExpirePool":5,
   "messages":{
 	"taskExpire":{
+		"tipTime":"08:00",
 		"expireDay":3,
 		"title":"做任务赚好礼挑战即将过期",
 		"content":"请及时完成任务并领取超级订阅7天体验,获取更多采购商机!",
 		"msgType":2,
 		"appid":"10000",
-		"pcUrl":"/home/work-bench/app/points/earn",
+		"pcUrl":"/page_workDesktop/work-bench/app/points/earn",
 		"mobileUrl":"/jy_mobile/points/earn"
 	},
 	"adpExpire":{
+		"tipTime":"08:00",
 		"wxTplId":"hLfZRFW9nOnXJ7uFoebshbHGqGyQszCnI13piLS4Kcc",
 		"expireDay":2,
 		"title":"您兑换的附件下载权益将于%d天内失效",

+ 1 - 1
resourceBrushLibrary/config/config.go

@@ -26,6 +26,7 @@ var (
 )
 
 type MsgConf struct {
+	TipTime     string
 	WxTplId     string
 	ExpireDay   int
 	Title       string
@@ -54,7 +55,6 @@ type config struct {
 	Webdomain            string
 	SendMsgPool          int
 	GivePool             int
-	LimitTimeActivity    string
 	CheckPointExpire     string
 	CheckPointExpirePool int
 	Messages             struct {

+ 2 - 2
resourceBrushLibrary/entity/adp.go

@@ -20,7 +20,7 @@ type Adp struct {
 }
 
 func (a *Adp) Run() {
-	util.SimpleCrontab(false, Config.LimitTimeActivity, func() {
+	util.SimpleCrontab(false, Config.Messages.AdpExpire.TipTime, func() {
 		pool := make(chan bool, Config.SendMsgPool)
 		wait := &sync.WaitGroup{}
 		end := time.Now().AddDate(0, 0, Config.Messages.AdpExpire.ExpireDay-1)
@@ -77,7 +77,7 @@ func (a *Adp) Run() {
 					Title:      title,
 					Content:    content,
 					MsgType:    Config.Messages.AdpExpire.MsgType,
-					Link:       Config.Messages.AdpExpire.PcUrl + "," + Config.Messages.AdpExpire.MobileUrl + "," + Config.Messages.AdpExpire.MobileUrl,
+					Link:       Config.Messages.AdpExpire.PcUrl + "," + Config.Messages.AdpExpire.MobileUrl + "," + Config.Messages.AdpExpire.MobileUrl + "," + Config.Messages.AdpExpire.MobileUrl,
 					Appid:      Config.Messages.AdpExpire.Appid,
 					AppPushUrl: appUrl,
 					WxPushUrl:  Config.Webdomain + wxUrl,

+ 2 - 2
resourceBrushLibrary/entity/limitTimeActivity.go

@@ -19,7 +19,7 @@ type LimitTimeActivity struct {
 }
 
 func (l *LimitTimeActivity) Run() {
-	util.SimpleCrontab(false, Config.LimitTimeActivity, func() {
+	util.SimpleCrontab(false, Config.Messages.TaskExpire.TipTime, func() {
 		pool := make(chan bool, Config.SendMsgPool)
 		wait := &sync.WaitGroup{}
 		now := time.Now()
@@ -54,7 +54,7 @@ func (l *LimitTimeActivity) Run() {
 					Title:      Config.Messages.TaskExpire.Title,
 					Content:    Config.Messages.TaskExpire.Content,
 					MsgType:    Config.Messages.TaskExpire.MsgType,
-					Link:       Config.Messages.TaskExpire.PcUrl + "," + Config.Messages.TaskExpire.MobileUrl + "," + Config.Messages.TaskExpire.MobileUrl,
+					Link:       Config.Messages.TaskExpire.PcUrl + "," + Config.Messages.TaskExpire.MobileUrl + "," + Config.Messages.TaskExpire.MobileUrl + "," + Config.Messages.TaskExpire.MobileUrl,
 					Appid:      Config.Messages.TaskExpire.Appid,
 					AppPushUrl: appUrl,
 					WxPushUrl:  Config.Webdomain + wxUrl,

+ 2 - 2
resourceBrushLibrary/go.mod

@@ -6,7 +6,7 @@ require (
 	app.yhyue.com/moapp/MessageCenter v0.0.0-20231026080417-49f63bf75554
 	app.yhyue.com/moapp/jyResourcesCenter v0.0.0-20231024011103-8a2aacdbbd3e
 	app.yhyue.com/moapp/jybase v0.0.0-20231011022039-fa0f75e5282f
-	app.yhyue.com/moapp/jypkg v1.0.1
+	app.yhyue.com/moapp/jypkg v1.0.2
 	bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20231027034538-be5fd3ef2b25
 	github.com/robfig/cron v1.2.0
 	github.com/zeromicro/go-zero v1.5.5
@@ -106,7 +106,7 @@ require (
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 	gorm.io/driver/mysql v1.0.5 // indirect
 	gorm.io/gorm v1.21.3 // indirect
-	jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20230710093759-d9d6c68de8b1 // indirect
+	jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20231017031425-45003ca9f35a // indirect
 	k8s.io/api v0.26.3 // indirect
 	k8s.io/apimachinery v0.27.0-alpha.3 // indirect
 	k8s.io/client-go v0.26.3 // indirect

+ 4 - 4
resourceBrushLibrary/go.sum

@@ -13,8 +13,8 @@ app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJ
 app.yhyue.com/moapp/jybase v0.0.0-20230901064756-2fc66b18db40/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 app.yhyue.com/moapp/jybase v0.0.0-20231011022039-fa0f75e5282f h1:LJzeJdvZ2KoG+Txhzm9kVkNbEbiVEUbDSRKgQvRrxao=
 app.yhyue.com/moapp/jybase v0.0.0-20231011022039-fa0f75e5282f/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
-app.yhyue.com/moapp/jypkg v1.0.1 h1:hT6WmtnoFPHNmeBAgjKHQoOxfNgXXy8wDKCBmWas3qs=
-app.yhyue.com/moapp/jypkg v1.0.1/go.mod h1:ElLZr1s98Q1jH5OxHGa47MyqDSmR3boZCq4M9Lcqssw=
+app.yhyue.com/moapp/jypkg v1.0.2 h1:S0dx+CA4U5oEDU5+vcOPU39TEsAvlJ103hSl4aNlgLQ=
+app.yhyue.com/moapp/jypkg v1.0.2/go.mod h1:76Kz6+MuxcRJRyFad9W8R4AByiQlVGzuGFzklY+2m38=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e h1:h+VEI3o1qC0jeCzkFGTrLI4f27cfa/W/y+0sXokWMgE=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e/go.mod h1:7Xhygw0KBuL4h0G76FnFg4otQcA9bmOO0c8M0FCjAyQ=
@@ -2420,8 +2420,8 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
-jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20230710093759-d9d6c68de8b1 h1:BItxi1gkQUs3sjxaBk6tc34fZWSO4hUSXcTM3PcnY4I=
-jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20230710093759-d9d6c68de8b1/go.mod h1:p/595fgbj4r6GhSJhHDpx3Ru1NkD5UASFL8OuIQw09E=
+jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20231017031425-45003ca9f35a h1:kwjO4pqB3gnNGrQ9aXyz6f8s9qXAUenPUDWip8gYR/Q=
+jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20231017031425-45003ca9f35a/go.mod h1:p/595fgbj4r6GhSJhHDpx3Ru1NkD5UASFL8OuIQw09E=
 k8s.io/api v0.20.12/go.mod h1:A2brwyEkVLM3wQGNnzoAa5JsQRzHK0uoOQ+bsnv7V68=
 k8s.io/api v0.22.9/go.mod h1:rcjO/FPOuvc3x7nQWx29UcDrFJMx82RxDob71ntNH4A=
 k8s.io/api v0.26.3 h1:emf74GIQMTik01Aum9dPP0gAypL8JTLl/lHa4V9RFSU=