fix(fe+be): 我的页去重宠物墙 + 养宠天数按到家日算

- 养宠天数原来按建档日算,重新建档会被重置成 1(和首页「第869天」矛盾);
  改成按最早那只的到家日算(无到家日退建档日),和首页口径一致
- 「我的」页 profile-head 传 hideWall,藏掉社交宠物墙(下面「我的毛孩子」
  卡更详细,重复了);宠物墙只在别人访问/预览时出现,受「展示我的毛孩子」
  开关控制,语义更对(那开关本来就是给别人看的)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Blizzard
2026-07-31 15:11:59 +08:00
parent 4a1b5e66d3
commit 4c9fbc4a88
4 changed files with 19 additions and 6 deletions
+13 -3
View File
@@ -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)