feat: 发帖去身份用昵称、标签对齐筛选、图片限2、无类型任务也留痕

- 发帖去掉「发布身份」选择,统一用发布者昵称(后端按 user 取昵称)
- 发帖标签改成 晒宠/新手求助/经验,和社区顶部筛选完全一致;
  tabTag 新手求助→新手求助(原来映射成「求助」对不上)
- 内容输入框:点整块 field 都聚焦(原生 textarea 在 scroll-view 里
  命中区域会偏,只有 placeholder 处能点)
- 发帖图片上限 3→2,文案标注「最多 2 张」
- 无记录类型的自定义任务完成后,补一条 note 记录,最近记录里留痕

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Blizzard
2026-07-31 14:12:52 +08:00
parent b52729dec8
commit a91f5e39ca
4 changed files with 34 additions and 37 deletions
+8 -17
View File
@@ -48,7 +48,7 @@ func (s *Service) attachPostImages(posts []model.Post) {
func tabTag(tab string) string {
switch tab {
case "新手求助":
return "求助"
return "新手求助"
case "晒宠":
return "晒宠"
case "经验":
@@ -111,23 +111,14 @@ type PostInput struct {
// CreatePost 发帖
func (s *Service) CreatePost(userID string, in PostInput) (*model.Post, error) {
authorName := "匿名宠友"
authorEmoji := "🐾"
switch in.Identity {
case "official":
authorName = "肉垫计划官方"
case "petName":
if in.PetID != nil {
var pet model.Pet
if err := s.db.First(&pet, *in.PetID).Error; err == nil {
authorName = pet.Name + "的铲屎官"
authorEmoji = pet.Emoji
}
}
}
// 取作者 openid(内容安全接口 v2 要求带上),并把图片 file id 解析成可访问 URL
// 取作者信息:统一用发布者昵称(去掉了发布身份选择),openid 给内容安全接口用
var user model.User
s.db.Select("id, open_id").First(&user, userID)
s.db.Select("id, open_id, nickname").First(&user, userID)
authorName := user.Nickname
if authorName == "" {
authorName = "宠友"
}
authorEmoji := "🐾"
imgURLs := s.resolveImageURLs(in.ImageFileIDs)
// 发布前过内容安全:文本同步判、图片提交异步查。检测不了或有图 → 待人工/待回调