fix(fe+be): 我的页去重宠物墙 + 养宠天数按到家日算
- 养宠天数原来按建档日算,重新建档会被重置成 1(和首页「第869天」矛盾); 改成按最早那只的到家日算(无到家日退建档日),和首页口径一致 - 「我的」页 profile-head 传 hideWall,藏掉社交宠物墙(下面「我的毛孩子」 卡更详细,重复了);宠物墙只在别人访问/预览时出现,受「展示我的毛孩子」 开关控制,语义更对(那开关本来就是给别人看的) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -123,9 +123,19 @@ func (s *Service) keepStats(userID string, withPets bool) (*KeepStats, []PetCard
|
||||
cards = nil
|
||||
}
|
||||
|
||||
// 养宠天数按最早那只的建档日算。用建档日而不是生日:这里要表达的是
|
||||
// 「你在这个 App 上照顾它多久了」,不是宠物活了多久
|
||||
st.Days = int(time.Since(pets[0].CreatedAt).Hours()/24) + 1
|
||||
// 养宠天数按最早那只的到家日算(没填到家日就退回建档日),和首页
|
||||
// 「一起生活的第 N 天」口径一致。用建档日会因为重新建档而被重置成 1,很怪
|
||||
earliest := time.Now()
|
||||
for _, p := range pets {
|
||||
start := p.CreatedAt
|
||||
if p.ArrivedAt != nil && !p.ArrivedAt.IsZero() {
|
||||
start = *p.ArrivedAt
|
||||
}
|
||||
if start.Before(earliest) {
|
||||
earliest = start
|
||||
}
|
||||
}
|
||||
st.Days = int(time.Since(earliest).Hours()/24) + 1
|
||||
|
||||
var total int64
|
||||
s.db.Model(&model.HealthRecord{}).Where("pet_id IN ?", ids).Count(&total)
|
||||
|
||||
Reference in New Issue
Block a user