wangchuanjin 2 жил өмнө
parent
commit
87634c431b

+ 1 - 1
src/jfw/modules/app/src/app/front/login.go

@@ -1016,7 +1016,7 @@ func createSession(s *httpsession.Session, person map[string]interface{}, loginI
 		case 2: //a_m_openid登录
 		case 2: //a_m_openid登录
 			query["a_m_openid"] = loginId
 			query["a_m_openid"] = loginId
 			break
 			break
-		case 3: //a_m_openid登录
+		case 3: //base_user_id登录
 			query["base_user_id"] = qutil.Int64All(loginId)
 			query["base_user_id"] = qutil.Int64All(loginId)
 			break
 			break
 		default:
 		default:

+ 1 - 1
src/jfw/modules/subscribepay/src/go.mod

@@ -4,7 +4,7 @@ go 1.18
 
 
 require (
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
 	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
-	app.yhyue.com/moapp/jypkg v0.0.0-20230208052659-a58b1468e9c7
+	app.yhyue.com/moapp/jypkg v0.0.0-20230208093333-ff5f4701ad03
 	bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20230203052057-bbba3a4671fd
 	bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20230203052057-bbba3a4671fd
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/dchest/captcha v1.0.0
 	github.com/dchest/captcha v1.0.0

+ 2 - 2
src/jfw/modules/subscribepay/src/go.sum

@@ -13,8 +13,8 @@ app.yhyue.com/moapp/jybase v0.0.0-20220802080941-07f401baab8b/go.mod h1:HelrO6tc
 app.yhyue.com/moapp/jybase v0.0.0-20230109015757-aa3d5e19b196/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
 app.yhyue.com/moapp/jybase v0.0.0-20230109015757-aa3d5e19b196/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
 app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a h1:wD4aWPSYdiX1cIP4lzzPD2s7fYhKa3muIf97l9tonJE=
 app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a h1:wD4aWPSYdiX1cIP4lzzPD2s7fYhKa3muIf97l9tonJE=
 app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
 app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
-app.yhyue.com/moapp/jypkg v0.0.0-20230208052659-a58b1468e9c7 h1:ihtN/2i/1XT101Fr5tZv40r0AN79fsdNdvQerKbxpJo=
-app.yhyue.com/moapp/jypkg v0.0.0-20230208052659-a58b1468e9c7/go.mod h1:0DqPlGxaufZlKaLoRndTWG4j3qUQqJ6MNZCmoPcMqSg=
+app.yhyue.com/moapp/jypkg v0.0.0-20230208093333-ff5f4701ad03 h1:odrhdpRTwsV3nHSzd8O0DpVnMBk9cJ7BSK6aidjkx4A=
+app.yhyue.com/moapp/jypkg v0.0.0-20230208093333-ff5f4701ad03/go.mod h1:0DqPlGxaufZlKaLoRndTWG4j3qUQqJ6MNZCmoPcMqSg=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=

+ 33 - 5
src/jfw/modules/subscribepay/src/timetask/ent.go

@@ -7,7 +7,6 @@ import (
 	"time"
 	"time"
 
 
 	. "app.yhyue.com/moapp/jybase/common"
 	. "app.yhyue.com/moapp/jybase/common"
-	p "bp.jydev.jianyu360.cn/BaseService/pushpkg/p"
 )
 )
 
 
 type Ent struct {
 type Ent struct {
@@ -35,7 +34,7 @@ func (e *Ent) UpdateByIdQuery(userId string, t int) map[string]interface{} {
 func (e *Ent) IsEnt() bool {
 func (e *Ent) IsEnt() bool {
 	return true
 	return true
 }
 }
-func (e *Ent) LoadVipUsers(f func(m map[string]interface{})) {
+func (e *Ent) LoadVipUsers(field map[string]interface{}, f func(m map[string]interface{})) {
 	sess := util.MQFW.GetMgoConn()
 	sess := util.MQFW.GetMgoConn()
 	for {
 	for {
 		if sess != nil {
 		if sess != nil {
@@ -54,12 +53,41 @@ func (e *Ent) LoadVipUsers(f func(m map[string]interface{})) {
 		"i_userid": 1,
 		"i_userid": 1,
 	}).Iter()
 	}).Iter()
 	for m := make(map[string]interface{}); it.Next(&m); {
 	for m := make(map[string]interface{}); it.Next(&m); {
-		userId := IntAll(m["i_userid"])
-		mm := p.GetAllByEntUserId(&util.MQFW, util.Mysql, userId)
+		userId := fmt.Sprint(IntAll(m["i_userid"]))
+		mm := util.Compatible.SelectByEntUserId(userId, field)
 		if mm == nil {
 		if mm == nil {
 			return
 			return
 		}
 		}
-		(*mm)["_id"] = fmt.Sprint(userId)
+		(*mm)["_id"] = userId
+		f(*mm)
+		m = make(map[string]interface{})
+	}
+}
+func (e *Ent) LoadBigMemberUsers(field map[string]interface{}, f func(m map[string]interface{})) {
+	sess := util.MQFW.GetMgoConn()
+	for {
+		if sess != nil {
+			defer util.MQFW.DestoryMongoConn(sess)
+			break
+		}
+		time.Sleep(time.Minute)
+		sess = util.MQFW.GetMgoConn()
+	}
+	it := sess.DB("qfw").C(e.UserColl()).Find(map[string]interface{}{
+		"i_member_expire_tip": map[string]interface{}{
+			"$in": []int{1, 2},
+		},
+	}).Select(map[string]interface{}{
+		"_id":      0,
+		"i_userid": 1,
+	}).Iter()
+	for m := make(map[string]interface{}); it.Next(&m); {
+		userId := fmt.Sprint(IntAll(m["i_userid"]))
+		mm := util.Compatible.SelectByEntUserId(userId, field)
+		if mm == nil {
+			return
+		}
+		(*mm)["_id"] = userId
 		f(*mm)
 		f(*mm)
 		m = make(map[string]interface{})
 		m = make(map[string]interface{})
 	}
 	}

+ 0 - 1
src/jfw/modules/subscribepay/src/timetask/identity.go

@@ -8,7 +8,6 @@ type Identity interface {
 	SubsetQuery(t int) map[string]interface{}
 	SubsetQuery(t int) map[string]interface{}
 	UpdateByIdQuery(userId string, t int) map[string]interface{}
 	UpdateByIdQuery(userId string, t int) map[string]interface{}
 	IsEnt() bool
 	IsEnt() bool
-	LoadVipUsers(f func(m map[string]interface{}))
 	DelVipSubPush(m map[string]interface{})
 	DelVipSubPush(m map[string]interface{})
 	DelBigMemberSubPush(m map[string]interface{})
 	DelBigMemberSubPush(m map[string]interface{})
 }
 }

+ 26 - 16
src/jfw/modules/subscribepay/src/timetask/personal.go

@@ -38,7 +38,7 @@ func (p *Personal) IsEnt() bool {
 	return false
 	return false
 }
 }
 
 
-func (p *Personal) LoadVipUsers(f func(m map[string]interface{})) {
+func (p *Personal) LoadVipUsers(field map[string]interface{}, f func(m map[string]interface{})) {
 	sess := util.MQFW.GetMgoConn()
 	sess := util.MQFW.GetMgoConn()
 	for {
 	for {
 		if sess != nil {
 		if sess != nil {
@@ -48,26 +48,36 @@ func (p *Personal) LoadVipUsers(f func(m map[string]interface{})) {
 		time.Sleep(time.Minute)
 		time.Sleep(time.Minute)
 		sess = util.MQFW.GetMgoConn()
 		sess = util.MQFW.GetMgoConn()
 	}
 	}
-	it := sess.DB("qfw").C("user").Find(map[string]interface{}{
+	it := sess.DB("qfw").C(p.UserColl()).Find(map[string]interface{}{
 		"i_appid": 2,
 		"i_appid": 2,
 		"i_vip_expire_tip": map[string]interface{}{
 		"i_vip_expire_tip": map[string]interface{}{
 			"$gt": 0,
 			"$gt": 0,
 		},
 		},
-	}).Select(map[string]interface{}{
-		"s_m_openid":             1,
-		"s_jpushid":              1,
-		"s_opushid":              1,
-		"s_appponetype":          1,
-		"s_nickname":             1,
-		"i_ispush":               1,
-		"i_vip_status":           1,
-		"l_vip_starttime":        1,
-		"l_vip_endtime":          1,
-		"i_vip_expire_tip":       1,
-		"i_vip_expire_tip_retry": 1,
-	}).Iter()
+	}).Select(field).Iter()
 	for m := make(map[string]interface{}); it.Next(&m); {
 	for m := make(map[string]interface{}); it.Next(&m); {
-		m["_id"] = ObjToString(m["_id"])
+		m["_id"] = BsonIdToSId(m["_id"])
+		f(m)
+		m = make(map[string]interface{})
+	}
+}
+func (p *Personal) LoadBigMemberUsers(field map[string]interface{}, f func(m map[string]interface{})) {
+	sess := util.MQFW.GetMgoConn()
+	for {
+		if sess != nil {
+			defer util.MQFW.DestoryMongoConn(sess)
+			break
+		}
+		time.Sleep(time.Minute)
+		sess = util.MQFW.GetMgoConn()
+	}
+	it := sess.DB("qfw").C(p.UserColl()).Find(map[string]interface{}{
+		"i_appid": 2,
+		"i_member_expire_tip": map[string]interface{}{
+			"$in": []int{1, 2},
+		},
+	}).Select(field).Iter()
+	for m := make(map[string]interface{}); it.Next(&m); {
+		m["_id"] = BsonIdToSId(m["_id"])
 		f(m)
 		f(m)
 		m = make(map[string]interface{})
 		m = make(map[string]interface{})
 	}
 	}

+ 49 - 49
src/jfw/modules/subscribepay/src/timetask/timetask.go

@@ -30,17 +30,17 @@ func Run() {
 		for _, v := range []Identity{&Personal{}, &Ent{}} {
 		for _, v := range []Identity{&Personal{}, &Ent{}} {
 			go checkIsExpire(v)
 			go checkIsExpire(v)
 			go checkMemberIsExpire(v)
 			go checkMemberIsExpire(v)
-			go checkMemberIsStart(v)
-			go checkMemberServiceIsExpire(v)
-			go bigMemberExpireRemind(v)
-			go updateProvincePackageStatus(v)        //省份流量包
-			go updateTimeLimitActitityOrderStatus(v) //修改限时活动的订单状态
+			go updateProvincePackageStatus(v) //省份流量包
 		}
 		}
+		go bigMemberExpireRemind()
 		go syncVipUpgrade()
 		go syncVipUpgrade()
 		go updateDataExportStatus()
 		go updateDataExportStatus()
 		go SendDataExportMailForPayed()
 		go SendDataExportMailForPayed()
 		go courseTask()
 		go courseTask()
 		go expireRemind()
 		go expireRemind()
+		go checkMemberIsStart()
+		go checkMemberServiceIsExpire()
+		go updateTimeLimitActitityOrderStatus() //修改限时活动的订单状态
 	}
 	}
 }
 }
 
 
@@ -486,21 +486,34 @@ func expireRemind() {
 				log.Println("到期提醒,app推送", _id, appPushOk)
 				log.Println("到期提醒,app推送", _id, appPushOk)
 			}
 			}
 			if wxPushOk || appPushOk || qutil.IntAll(m["i_vip_expire_tip_retry"]) >= 2 {
 			if wxPushOk || appPushOk || qutil.IntAll(m["i_vip_expire_tip_retry"]) >= 2 {
-				util.MQFW.UpdateById("user", _id, map[string]interface{}{
+				util.Compatible.UpdateByEntUserId(_id, map[string]interface{}{
 					"$set": map[string]interface{}{
 					"$set": map[string]interface{}{
 						"i_vip_expire_tip": 0,
 						"i_vip_expire_tip": 0,
 					},
 					},
 				})
 				})
 			} else if i_vip_expire_tip == 2 {
 			} else if i_vip_expire_tip == 2 {
-				util.MQFW.UpdateById("user", _id, map[string]interface{}{
-					"$inc": map[string]interface{}{
+				util.Compatible.UpdateByEntUserId(_id, map[string]interface{}{
+					"$set": map[string]interface{}{
 						"i_vip_expire_tip_retry": 1,
 						"i_vip_expire_tip_retry": 1,
 					},
 					},
 				})
 				})
 			}
 			}
 		}
 		}
-		(&Personal{}).LoadVipUsers(doFunc)
-		(&Ent{}).LoadVipUsers(doFunc)
+		field := map[string]interface{}{
+			"s_m_openid":             1,
+			"s_jpushid":              1,
+			"s_opushid":              1,
+			"s_appponetype":          1,
+			"s_nickname":             1,
+			"i_ispush":               1,
+			"i_vip_status":           1,
+			"l_vip_starttime":        1,
+			"l_vip_endtime":          1,
+			"i_vip_expire_tip":       1,
+			"i_vip_expire_tip_retry": 1,
+		}
+		(&Personal{}).LoadVipUsers(field, doFunc)
+		(&Ent{}).LoadVipUsers(field, doFunc)
 		log.Println("定时任务,到期提醒,推送消息结束")
 		log.Println("定时任务,到期提醒,推送消息结束")
 	})
 	})
 }
 }
@@ -577,49 +590,22 @@ func checkMemberIsExpire(i Identity) {
 }
 }
 
 
 //大会员即将到期或者已到期发推送消息
 //大会员即将到期或者已到期发推送消息
-func bigMemberExpireRemind(i Identity) {
+func bigMemberExpireRemind() {
 	crontab(false, TimeTaskConfig.ExpireRemind, func() {
 	crontab(false, TimeTaskConfig.ExpireRemind, func() {
 		defer qutil.Catch()
 		defer qutil.Catch()
 		log.Println("定时任务,大会员到期提醒,开始推送消息")
 		log.Println("定时任务,大会员到期提醒,开始推送消息")
 		now_unix := time.Now().Unix()
 		now_unix := time.Now().Unix()
 		util.Formal_WTMCS.Reload()
 		util.Formal_WTMCS.Reload()
-		sess := util.MQFW.GetMgoConn()
-		for {
-			if sess != nil {
-				defer util.MQFW.DestoryMongoConn(sess)
-				break
-			}
-			time.Sleep(time.Minute)
-			sess = util.MQFW.GetMgoConn()
-		}
-		it := sess.DB("qfw").C("user").Find(map[string]interface{}{
-			"i_appid": 2,
-			"i_member_expire_tip": map[string]interface{}{
-				"$in": []int{1, 2},
-			},
-		}).Select(map[string]interface{}{
-			"s_m_openid":                1,
-			"s_jpushid":                 1,
-			"s_opushid":                 1,
-			"s_appponetype":             1,
-			"s_nickname":                1,
-			"i_ispush":                  1,
-			"i_member_status":           1,
-			"i_member_starttime":        1,
-			"i_member_endtime":          1,
-			"i_member_expire_tip":       1,
-			"i_member_expire_tip_retry": 1,
-		}).Iter()
-		for m := make(map[string]interface{}); it.Next(&m); {
+		doFunc := func(m map[string]interface{}) {
 			i_member_expire_tip := qutil.IntAll(m["i_member_expire_tip"])
 			i_member_expire_tip := qutil.IntAll(m["i_member_expire_tip"])
 			if i_member_expire_tip != 1 && i_member_expire_tip != 2 {
 			if i_member_expire_tip != 1 && i_member_expire_tip != 2 {
-				continue
+				return
 			}
 			}
-			_id := BsonIdToSId(m["_id"])
+			_id := qutil.ObjToString(m["_id"])
 			i_member_endtime := qutil.Int64All(m["i_member_endtime"])
 			i_member_endtime := qutil.Int64All(m["i_member_endtime"])
 			if i_member_endtime-now_unix > threeday && i_member_endtime == 1 {
 			if i_member_endtime-now_unix > threeday && i_member_endtime == 1 {
 				log.Println("大会员即将到期提醒,结束时间大于三天,过滤掉", _id, i_member_endtime)
 				log.Println("大会员即将到期提醒,结束时间大于三天,过滤掉", _id, i_member_endtime)
-				continue
+				return
 			}
 			}
 			i_member_status := qutil.IntAll(m["i_member_status"])
 			i_member_status := qutil.IntAll(m["i_member_status"])
 			wxPushOk, appPushOk := false, false
 			wxPushOk, appPushOk := false, false
@@ -651,7 +637,7 @@ func bigMemberExpireRemind(i Identity) {
 					keyword3_value = MessageConfig.WxTpl_BigMember_Expired.Keyword3.Value
 					keyword3_value = MessageConfig.WxTpl_BigMember_Expired.Keyword3.Value
 					remark = MessageConfig.WxTpl_BigMember_Expired.Remark.Value
 					remark = MessageConfig.WxTpl_BigMember_Expired.Remark.Value
 				} else {
 				} else {
-					continue
+					return
 				}
 				}
 				if wtmc != nil {
 				if wtmc != nil {
 					keyword1_value = qutil.ObjToString(m["s_nickname"])
 					keyword1_value = qutil.ObjToString(m["s_nickname"])
@@ -695,13 +681,13 @@ func bigMemberExpireRemind(i Identity) {
 					tp = "bigmember_expried"
 					tp = "bigmember_expried"
 					app_descript = MessageConfig.App_BigMember_Expired
 					app_descript = MessageConfig.App_BigMember_Expired
 				} else {
 				} else {
-					continue
+					return
 				}
 				}
 				appPushOk = qrpc.AppPush(Config.AppPushServiceRpc, map[string]interface{}{
 				appPushOk = qrpc.AppPush(Config.AppPushServiceRpc, map[string]interface{}{
 					"phoneType":   m["s_appponetype"],
 					"phoneType":   m["s_appponetype"],
 					"otherPushId": m["s_opushid"],
 					"otherPushId": m["s_opushid"],
 					"jgPushId":    m["s_jpushid"],
 					"jgPushId":    m["s_jpushid"],
-					"url":         "/jyapp/free/sess/" + util.Se_Topnet.EncodeString(_id+",uid,"+strconv.Itoa(int(time.Now().Unix()))+",msgremind") + "__" + hex.EncodeToString([]byte(fmt.Sprintf("type=%s", tp))),
+					"url":         "/jyapp/free/sess/" + util.Se_Topnet.EncodeString(_id+qutil.If(IsObjectIdHex(_id), ",_id,", ",entUserId,").(string)+strconv.Itoa(int(time.Now().Unix()))+",msgremind") + "__" + hex.EncodeToString([]byte(fmt.Sprintf("type=%s", tp))),
 					"userId":      _id,
 					"userId":      _id,
 					"type":        "vipNotice",
 					"type":        "vipNotice",
 					"descript":    app_descript,
 					"descript":    app_descript,
@@ -722,14 +708,28 @@ func bigMemberExpireRemind(i Identity) {
 					},
 					},
 				})
 				})
 			}
 			}
-			m = make(map[string]interface{})
 		}
 		}
+		field := map[string]interface{}{
+			"s_m_openid":                1,
+			"s_jpushid":                 1,
+			"s_opushid":                 1,
+			"s_appponetype":             1,
+			"s_nickname":                1,
+			"i_ispush":                  1,
+			"i_member_status":           1,
+			"i_member_starttime":        1,
+			"i_member_endtime":          1,
+			"i_member_expire_tip":       1,
+			"i_member_expire_tip_retry": 1,
+		}
+		(&Personal{}).LoadBigMemberUsers(field, doFunc)
+		(&Ent{}).LoadBigMemberUsers(field, doFunc)
 		log.Println("定时任务,大会员到期提醒,推送消息结束")
 		log.Println("定时任务,大会员到期提醒,推送消息结束")
 	})
 	})
 }
 }
 
 
 //查看是否有大会员用户定时开启会员
 //查看是否有大会员用户定时开启会员
-func checkMemberIsStart(i Identity) {
+func checkMemberIsStart() {
 	crontab(true, TimeTaskConfig.MemberIsStart, func() {
 	crontab(true, TimeTaskConfig.MemberIsStart, func() {
 		defer qutil.Catch()
 		defer qutil.Catch()
 		log.Println("定时任务,开始更新大会员状态-定时开启会员状态")
 		log.Println("定时任务,开始更新大会员状态-定时开启会员状态")
@@ -801,7 +801,7 @@ func updateBigMemberService(userId string, now_unix int64) {
 }
 }
 
 
 //大会员用户服务表  用户服务是否需要开启或关闭
 //大会员用户服务表  用户服务是否需要开启或关闭
-func checkMemberServiceIsExpire(i Identity) {
+func checkMemberServiceIsExpire() {
 	crontab(false, TimeTaskConfig.MemberServiceIsExpire, func() {
 	crontab(false, TimeTaskConfig.MemberServiceIsExpire, func() {
 		defer qutil.Catch()
 		defer qutil.Catch()
 		log.Println("定时任务,更新大会员服务表状态开始")
 		log.Println("定时任务,更新大会员服务表状态开始")
@@ -850,7 +850,7 @@ func checkMemberServiceIsExpire(i Identity) {
 	})
 	})
 }
 }
 
 
-func updateTimeLimitActitityOrderStatus(i Identity) { //修改限时活动的订单状态
+func updateTimeLimitActitityOrderStatus() { //修改限时活动的订单状态
 	crontabByTicker(true, TimeTaskConfig.UpdateTimeLimitActivityOrderStatus, func() {
 	crontabByTicker(true, TimeTaskConfig.UpdateTimeLimitActivityOrderStatus, func() {
 		defer qutil.Catch()
 		defer qutil.Catch()
 		log.Println("定时任务,更新限时活动订单状态开始")
 		log.Println("定时任务,更新限时活动订单状态开始")