feat(feedback): implement user feedback collection system with email reporting

Backend:
- Add user_feedback table with RLS policy
- Create feedback submission API (multipart/form-data)
- Implement xlsx report generation with embedded images
- Add scheduled email delivery via Feishu SMTP
- Create HTML email templates (daily_report, no_feedback)

Frontend:
- Add feedback screen with type selection and image picker
- Support anonymous submission via skipAuth flag
- Collect device info and app version

Protocol:
- Document feedback API contract and error codes
- Update http-error-codes.md with FEEDBACK_* codes
This commit is contained in:
qzl
2026-04-20 12:49:54 +08:00
parent 913ed26f8d
commit 6a2a9d2c87
46 changed files with 4768 additions and 9 deletions
+20
View File
@@ -57,8 +57,28 @@ ERYAO_STORAGE__AVATAR__BUCKET=avatars
ERYAO_STORAGE__SIGNED_URL_TTL_SECONDS=600
ERYAO_STORAGE__ATTACHMENT__MAX_SIZE_MB=20
ERYAO_STORAGE__AVATAR__MAX_SIZE_MB=2
ERYAO_STORAGE__FEEDBACK__BUCKET=feedback-images
ERYAO_STORAGE__FEEDBACK__MAX_SIZE_MB=5
ERYAO_STORAGE__RETENTION_DAYS=30
############
# Feedback Report
############
ERYAO_FEEDBACK_REPORT__EMAIL=support@example.com
ERYAO_FEEDBACK_REPORT__CRON=0 10 * * *
ERYAO_FEEDBACK_REPORT__ENABLED=false
############
# Email SMTP 配置(飞书企业邮箱)
############
ERYAO_EMAIL__HOST=smtp.feishu.cn
ERYAO_EMAIL__PORT=465
ERYAO_EMAIL__USERNAME=robot@xunmee.com
ERYAO_EMAIL__PASSWORD=
ERYAO_EMAIL__USE_SSL=true
ERYAO_EMAIL__FROM_ADDRESS=robot@xunmee.com
ERYAO_EMAIL__FROM_NAME=Eryao 反馈系统
############
# LLM API KEY
############