1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package task
- import (
- "go.mongodb.org/mongo-driver/bson"
- "log"
- "mongodb"
- "order"
- cm "qfw/util"
- "time"
- "util"
- )
- func VipStateTask() {
- defer cm.Catch()
- log.Println("定时任务,开始更新vip状态")
- sess := util.MQFW.GetMgoConn()
- for {
- if sess != nil {
- defer util.MQFW.DestoryMongoConn(sess)
- break
- }
- time.Sleep(time.Minute)
- sess = util.MQFW.GetMgoConn()
- }
- nowTime := time.Now().Format(cm.Date_Short_Layout)
- t2, _ := time.ParseInLocation(cm.Date_Short_Layout, nowTime, time.Local)
- startTime := t2.Unix()
- entTime := t2.AddDate(0, 0, 1).Unix()
- it := sess.DB("qfw").C("user").Find(map[string]interface{}{
- "i_appid": 2,
- "i_vip_status": -2,
- "l_vip_starttime": map[string]interface{}{
- "$gte": startTime,
- "$lt": entTime,
- },
- }).Select(map[string]interface{}{"i_vip_status": 1, "l_vip_starttime": 1, "i_vip_expire_tip": 1}).Iter()
- for m := make(map[string]interface{}); it.Next(&m); {
- _id := mongodb.BsonIdToSId(m["_id"])
- log.Println("更新超级订阅状态 userId ", _id)
- vipStartTime := cm.Int64All(m["l_vip_starttime"])
- vipStatus := cm.IntAll(m["i_vip_status"])
- if vipStartTime >= startTime && vipStartTime < entTime && vipStatus == -2 {
- set := map[string]interface{}{
- "i_vip_status": cm.If(false, -2, 2), //1试用 2正式
- }
- isOk := util.MQFW.UpdateById("user", _id, bson.M{
- "$set": set,
- })
- if isOk {
- go func() {
- order.MergeKws(_id)
- order.ClearBigVipUserPower(_id)
- }()
- }
- }
- m = make(map[string]interface{})
- }
- log.Println("定时任务,更新vip状态结束...")
- }
|