在 5 - 600 秒之间的阅读计时,正常计时 在 600 - 1800 秒(半个小时)之间的计时,按最大计时来计算时长 超过半个小时之后才有阅读记录,则在此期间的阅读时长为0
(uid, docId int, t time.Time)
| 346 | // 在 600 - 1800 秒(半个小时)之间的计时,按最大计时来计算时长 |
| 347 | // 超过半个小时之后才有阅读记录,则在此期间的阅读时长为0 |
| 348 | func (*ReadRecord) calcReadingTime(uid, docId int, t time.Time) (duration int, lastReadDocId int) { |
| 349 | r := NewReadRecord() |
| 350 | rr := r.LastReading(uid, "uid", "doc_id", "created_at") |
| 351 | if rr.DocId == docId { |
| 352 | return 0, docId |
| 353 | } |
| 354 | |
| 355 | rule := r.GetReadingRule() |
| 356 | diff := int(t.Unix()) - rr.CreateAt |
| 357 | if diff <= 0 || diff < rule.Min || diff >= rule.Invalid { |
| 358 | return 0, rr.DocId |
| 359 | } |
| 360 | |
| 361 | if diff > rule.MaxReward { |
| 362 | return rule.Max, rr.DocId |
| 363 | } |
| 364 | return diff, rr.DocId |
| 365 | } |
no test coverage detected