|
@@ -38,8 +38,7 @@ func InitJobManager() *JobManager {
|
|
|
)
|
|
|
|
|
|
job := &JobManager{
|
|
|
- payUser: gmap.New(true),
|
|
|
- register: gmap.New(true),
|
|
|
+ payUser: gmap.New(true),
|
|
|
}
|
|
|
job.LoadLastRun()
|
|
|
|
|
@@ -130,23 +129,35 @@ func (jm *JobManager) FilterPayUserAndSaveDb(ctx context.Context, value interfac
|
|
|
if jm.payUser.Contains(msg.MgoUserID) {
|
|
|
return nil
|
|
|
}
|
|
|
+ registerDate, phone := jm.GetAndCacheRegisterDate(msg.MgoUserID)
|
|
|
+ if registerDate == "" {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
operationTime = time.Unix(msg.TimeStamp, 0).Format(time.DateTime)
|
|
|
- sql += `(mogUserId,register_time,sub_again_date,create_time)VALUES (?,?,?,?)ON DUPLICATE KEY UPDATE sub_again_date=?`
|
|
|
- val = append(val, msg.MgoUserID, jm.GetAndCacheRegisterDate(msg.MgoUserID), operationTime, now, operationTime)
|
|
|
+ sql += `(mogUserId,register_time,phone,sub_again_date,create_time)VALUES (?,?,?,?,?)ON DUPLICATE KEY UPDATE sub_again_date=?`
|
|
|
+ val = append(val, msg.MgoUserID, registerDate, phone, operationTime, now, operationTime)
|
|
|
} else if msg, ok := value.(*public.BindMsg); ok {
|
|
|
if jm.payUser.Contains(msg.MgoUserID) {
|
|
|
return nil
|
|
|
}
|
|
|
+ registerDate, _ := jm.GetAndCacheRegisterDate(msg.MgoUserID)
|
|
|
+ if registerDate == "" {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
operationTime = time.Unix(msg.TimeStamp, 0).Format(time.DateTime)
|
|
|
sql += `(mogUserId,register_time,phone,bind_phone_date,create_time)VALUES (?,?,?,?,?)ON DUPLICATE KEY UPDATE phone=?, bind_phone_date=?`
|
|
|
- val = append(val, msg.MgoUserID, jm.GetAndCacheRegisterDate(msg.MgoUserID), msg.Phone, operationTime, now, msg.Phone, operationTime)
|
|
|
+ val = append(val, msg.MgoUserID, registerDate, msg.Phone, operationTime, now, msg.Phone, operationTime)
|
|
|
} else if msg, ok := value.(*public.NewActiveMsg); ok {
|
|
|
if jm.payUser.Contains(msg.MgoUserID) {
|
|
|
return nil
|
|
|
}
|
|
|
+ registerDate, phone := jm.GetAndCacheRegisterDate(msg.MgoUserID)
|
|
|
+ if registerDate == "" {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
operationTime = time.Unix(msg.TimeStamp, 0).Format(time.DateTime)
|
|
|
- sql += `(mogUserId,register_time,act_again_date,create_time)VALUES (?,?,?,?)ON DUPLICATE KEY UPDATE act_again_date=?`
|
|
|
- val = append(val, msg.MgoUserID, jm.GetAndCacheRegisterDate(msg.MgoUserID), operationTime, now, operationTime)
|
|
|
+ sql += `(mogUserId,register_time,phone,act_again_date,create_time)VALUES (?,?,?,?,?)ON DUPLICATE KEY UPDATE act_again_date=?`
|
|
|
+ val = append(val, msg.MgoUserID, registerDate, phone, operationTime, now, operationTime)
|
|
|
} else {
|
|
|
return fmt.Errorf("未知类型")
|
|
|
}
|
|
@@ -158,15 +169,18 @@ func (jm *JobManager) FilterPayUserAndSaveDb(ctx context.Context, value interfac
|
|
|
}
|
|
|
|
|
|
// GetAndCacheRegisterDate 获取缓存用户注册时间
|
|
|
-func (jm *JobManager) GetAndCacheRegisterDate(mgoUserId string) string {
|
|
|
- if registerDate := gconv.String(jm.register.Get(mgoUserId)); registerDate != "" {
|
|
|
- return registerDate
|
|
|
- }
|
|
|
- rMap, _ := db.MG.DB().FindById("user", mgoUserId, `{"l_registedate":1}`)
|
|
|
+func (jm *JobManager) GetAndCacheRegisterDate(mgoUserId string) (registerDate, phone string) {
|
|
|
+ rMap, _ := db.MG.DB().FindById("user", mgoUserId, `{"l_registedate":1,"s_phone":1,"s_m_phone":1}`)
|
|
|
if rMap == nil || len(*rMap) == 0 {
|
|
|
- return ""
|
|
|
+ return
|
|
|
}
|
|
|
- date := time.Unix(gconv.Int64((*rMap)["l_registedate"]), 0).Format(time.DateTime)
|
|
|
- jm.register.Set(mgoUserId, date)
|
|
|
- return date
|
|
|
+ if tPhone := gconv.String((*rMap)["s_phone"]); tPhone != "" {
|
|
|
+ phone = tPhone
|
|
|
+ } else {
|
|
|
+ if ttPhone := gconv.String((*rMap)["s_m_phone"]); ttPhone != "" {
|
|
|
+ phone = ttPhone
|
|
|
+ }
|
|
|
+ }
|
|
|
+ registerDate = time.Unix(gconv.Int64((*rMap)["l_registedate"]), 0).Format(time.DateTime)
|
|
|
+ return
|
|
|
}
|