wangkaiyue hace 1 año
padre
commit
eb3d685372
Se han modificado 2 ficheros con 33 adiciones y 19 borrados
  1. 3 3
      doFreeClueSign/job/job.go
  2. 30 16
      doFreeClueSign/job/mamager.go

+ 3 - 3
doFreeClueSign/job/job.go

@@ -14,7 +14,7 @@ func (jm *JobManager) LoadActivityUser() {
 		runNow = time.Now()
 		ctx    = context.TODO()
 	)
-	start, _ := time.Parse(time.DateTime, jm.lastRun.NewActivity)
+	start, _ := time.ParseInLocation(time.DateTime, jm.lastRun.NewActivity, time.Local)
 	val := public.GetNewActiveUser(start, runNow)
 	if len(val) > 0 {
 		for i, msg := range val {
@@ -39,7 +39,7 @@ func (jm *JobManager) LoadBindPhoneUser() {
 		runNow = time.Now()
 		ctx    = context.TODO()
 	)
-	start, _ := time.Parse(time.DateTime, jm.lastRun.BindPhone)
+	start, _ := time.ParseInLocation(time.DateTime, jm.lastRun.BindPhone, time.Local)
 	val := public.GetBidPhoneUser(start, runNow)
 	if len(val) > 0 {
 		for i, msg := range val {
@@ -64,7 +64,7 @@ func (jm *JobManager) LoadAgainSubUser() {
 		runNow = time.Now()
 		ctx    = context.TODO()
 	)
-	start, _ := time.Parse(time.DateTime, jm.lastRun.AgainSub)
+	start, _ := time.ParseInLocation(time.DateTime, jm.lastRun.AgainSub, time.Local)
 	val := public.GetAgainSubUser(start, runNow)
 	if len(val) > 0 {
 		for i, msg := range val {

+ 30 - 16
doFreeClueSign/job/mamager.go

@@ -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
 }