一、核心功能设计
1. 动态点赞功能
前端交互(UniApp)
按钮状态:点赞按钮区分“未点赞”和“已点赞”状态(图标/颜色变化)。
实时反馈:点击后立即更新点赞数,无需刷新页面(通过WebSocket或轮询接口)。
取消点赞:二次点击取消点赞,同步减少点赞数。
后端逻辑(PHP)
接口设计:
POST /api/like:接收动态ID、用户ID,记录点赞关系(用户-动态关联表)。
DELETE /api/like:删除点赞记录,更新动态点赞数。
数据校验:防止重复点赞(检查用户是否已点赞过该动态)。
缓存优化:使用Redis缓存热门动态的点赞数,减少数据库查询压力。
2. 评论功能
前端交互(UniApp)
评论列表:按时间倒序展示,支持分页加载(滚动到底部自动加载更多)。
回复嵌套:支持对评论的回复(二级嵌套),通过缩进或层级标记区分。
输入框优化:
输入时实时显示字数统计。
点击“@用户”触发用户列表选择(支持模糊搜索)。
后端逻辑(PHP)
接口设计:
POST /api/comment:提交评论(动态ID、用户ID、内容、@用户列表)。
GET /api/comments:查询评论列表(支持动态ID、分页参数)。
敏感词过滤:使用正则表达式或第三方API过滤违规内容。
@提醒机制:解析评论内容中的@用户名,生成提醒记录(关联用户与评论)。
3. @提醒功能
前端交互(UniApp)
提醒入口:在个人中心或消息中心展示“@我”的评论列表。
跳转逻辑:点击提醒直接跳转到对应动态的评论位置(需记录评论在动态中的位置)。
后端逻辑(PHP)
提醒生成:
评论提交时,解析内容中的@用户名(如@张三)。
查询被@用户是否存在,存在则生成提醒记录(用户-评论关联表)。
提醒推送:
实时推送:通过WebSocket将提醒发送给被@用户。
离线推送:用户登录后,查询未读提醒并标记为已读。
二、技术优化点
性能优化
动态点赞数使用Redis缓存,定期同步到数据库。
评论分页查询时,通过索引优化(如post_id+create_time复合索引)。
防刷机制
限制点赞/评论频率(如1分钟内最多5次)。
评论内容重复检测(如连续发布相同内容)。
用户体验优化
评论输入框支持Emoji表情和图片上传(通过UniApp的<input>或<textarea>扩展)。
提醒列表支持“一键标记全部已读”。
领取专属 10元无门槛券
私享最新 技术干货