阜聚产品 Wiki小程序 · 服务端 · 运营后台
代码现状版 · 2026.08

Fuju Product Knowledge Base

阜阳本地生活与同城社交产品手册

覆盖微信小程序、Node.js 服务端和 Vue 运营后台的功能边界、业务流程、权限配置、实时通信、部署运维与常见问题,供产品、运营、开发和审核人员统一使用。

代码现状版uni-app 小程序Express + MySQLVue 3 后台移动端适配

System

系统架构#

三个应用独立运行。小程序和后台通过统一 API 访问业务数据,实时场景通过服务端 WebSocket 主动推送。

微信小程序uni-app 页面、微信登录、定位、订阅授权、媒体上传与 WebSocket 客户端。
业务服务端Express API、鉴权、独立限流、审核流、通知分发、文件访问和实时服务。
MySQL 与微信能力保存业务、授权额度与审计;调用微信登录和订阅消息能力。
50+已注册小程序页面
19后台业务入口
3WebSocket 实时场景

Reading Guide

功能状态怎么读#

已接入

已有前后端闭环

仓库中存在页面、API 和数据实现,可进入测试。真机可用还依赖合法域名与生产配置。

后台可控

运营可开关或维护

入口、首页内容或集成参数由后台控制,不必重新打包小程序。

依赖用户动作

发布、互动、报名和私聊需登录;微信通知必须由用户逐模板授权。

注意:代码已实现不等于生产环境已开通。HTTPS、合法域名、数据库迁移和后台集成配置必须逐项完成。

For Users

用户可以在阜聚做什么#

阜聚把城市发现、同城社交、本地服务和线下娱乐放在一个小程序里。用户既可以直接浏览公开内容,也可以登录后发布、互动、报名和建立自己的同城关系。

从发现阜阳,到认识同频的人

首页根据当前地区组织附近内容,让用户快速找到活动、圈子、城市热点和生活服务;底部五个主入口分别承载发现、地图、同城、组局与个人中心。

发现城市地区定位、全局搜索、地图地点与本地推荐
加入同城看动态、参与评论、加入或创建兴趣圈子
发起组局发布活动、上传多图、报名、查看距离与群组
使用本地服务美食、文化、旅游、旧物、约拍和同城纸条
即时交流匿名公屏、用户私聊、图片视频与消息提醒
线下娱乐聚会小游戏和 GPS 城市躲猫猫真人对局
阜聚微信小程序首页界面
阜聚小程序首页:地区、搜索、快捷功能、活动与圈子集中呈现

无需登录也能看

浏览首页、地图、地点、公开动态、圈子、官方活动和本地攻略,先了解城市正在发生什么。

登录后参与互动

发布动态和旧物、点赞评论、加入圈子、报名组局、预约拍摄、投纸条和发起私聊。

持续收到重要消息

在消息中心查看审核、互动、私聊、预约和活动变化;需要时可逐项授权微信订阅提醒。

Mini Program

首页、搜索、地区与地图#

首页负责城市内容分发,地图页负责地点发现。定位不可用或当前区域无内容时回退到阜阳市区内容。

首页

沉浸顶部、地区入口、固定搜索框、运营头图、功能入口、当前热点、附近组局和热门圈子。

头图后台维护入口后台开关

地图发现

地图作为首屏背景;附近、景点、美食、咖啡、亲子等分类同步决定下方当地精选和推荐内容。

独立搜索

搜索落地页包含热门搜索和图文推荐,并聚合地点、动态、圈子等服务端内容。

地区定位

地区页加载阜阳区县、乡镇。位置文案优先显示乡镇,其次区县,不统一写成“阜阳”。

后台功能开关

开关控制内容关闭效果
首页双向滑动入口匿名公屏与滑动娱乐隐藏滑动引导和入口
官方活动同城页活动频道隐藏频道并阻止接口访问
美食 / 文化 / 旅游首页入口与数据库内容页隐藏相应入口
旧物 / 约拍 / 纸条独立业务入口隐藏相应入口

Community

同城动态与圈子#

同城页包含动态、圈子、活动三个频道。公共动态与圈内内容相互独立,圈内发布入口位于圈子主页底部。

动态信息流

  • 图文发布、话题、详情、浏览、点赞、评论和举报。
  • 评论回复归入同一主评论,可展开查看。
  • 帖子列表使用“浏览 / 点赞 / 评论”文字标识统计。
  • 帖子详情内由圈主处理置顶申请。
发布可审核

圈子

  • 优先展示已加入圈子;未加入时展示可申请列表。
  • 支持创建、加入申请、圈主审核、成员等级和自定义头衔。
  • 圈主维护公告、圈规、成员头衔和帖子置顶。
  • 少于 10 人时,圈主可申请解散。
圈主自治
角色能力显示规则
圈主审核加入、维护规则、授予头衔、处理置顶、符合条件时解散评论区可显示圈主标识;主页不堆叠额外圈主卡片
圈内成员浏览圈内内容、发布、申请置顶展示圈内等级或授予的头衔
未加入用户查看公开信息、提交加入申请展示申请入口和状态

Activities

组局与官方活动#

用户组局

支持多图、分类、24 小时时间、跨零点、地址、人数、详情须知与可选群二维码。

  • 默认全城展示,距离由用户与活动坐标计算。
  • 详情顶部显示发局人头像、昵称、私聊和已加入状态。
  • 底部固定主要动作;本人可从“我的组局”管理或解散。
  • 列表统一白色卡片并显示报名中、已结束。
可审核

官方活动

仅后台创建,小程序完整展示普通、投票、抽奖和评选活动。

  • 运营维护图片、规则、选项、时间和状态。
  • 支持草稿、已发布、已结束。
  • 后台执行开奖并向中奖者生成消息。
  • 同城“活动”频道可由后台整体关闭。
后台发布功能可关闭

Local Services

本地生活服务#

美食

数据库驱动的本地美食图文与推荐店铺,可与地图分类联动。

文化

阜阳文化列表和图文内容,由后台运营维护。

旅游

路线规划、行程节点与图文信息,数据不在小程序写死。

旧物

多图发布、详情、收藏、状态、真正删除和“我的发布”。

可审核

约拍

摄影师列表、作品详情、拍者申请、拍者中心、排期与带联系方式的预约。

拍者审核

纸条

投放一句话和微信联系方式,也可随机抽取;本人可删除自己的纸条。

约拍闭环

申请成为拍者提交资料和作品,进入后台约拍审核。
审核通过后展示出现在摄影师列表;本人入口变为拍者中心。
用户发起预约选择排期、填写联系方式,拍者收到通知。
拍者处理确认或拒绝后更新状态并通知申请人,取消沿用同一状态流。

Messaging

匿名公屏、私聊与消息中心#

匿名公屏

消息入库并经 WebSocket 实时广播,支持文字、图片、视频、GIF / Live 图资源和表情。进入连接,离开或后台时断开。

WebSocket

一对一私聊

支持文字、图片、GIF、视频和 CDN 表情。按对方聚合未读;接收者正在对应聊天页时不触发微信订阅提醒。

WebSocket
分类内容未读处理
系统信息审核、申请、活动变更、预约处理、系统消息查阅后标已读并跳到具体业务
互动信息点赞、评论、回复、圈内互动点击查阅自动消除未读
私聊头像、昵称、最后消息和红点/未读数打开会话后清除该对方未读

Entertainment

滑动娱乐与城市躲猫猫#

酒局工具

  • 全屏指尖游戏,触点跳动直到停止。
  • 轮盘、骰子、愤怒大叔、同桌争霸。
  • 填写姓名与杯数生成喝酒认怂书。
  • 重要操作支持震感和音效。

城市躲猫猫

  • 感染/淘汰模式、人数、猫数、倒计时和技能配置。
  • 以当前位置设置地图中心与安全围栏。
  • 成员头像、GPS 位置、身份、存活和越界状态实时同步。
  • 开局、抓捕确认、感染转换、结束结算与 MVP。
WebSocket
线下安全:仅允许步行或跑步,禁止机动车,避开道路、水域和施工区;位置只在对局期间共享,退出后停止上报。

Account

登录、资料与个人中心#

微信登录客户端获取 code,服务端换取微信身份并建立业务用户。
首次资料完善没有头像或昵称时先设置资料,再进入欢迎页。
欢迎仪式仅新用户增加注册排序;老用户沿用原排序,展示日期、散花和震感。
进入产品个人中心展示动态、组局、喜欢;设置中心管理资料、震感、通知、反馈和协议。

个人主页

沉浸背景图、头像昵称和内容;上滑后固定白色用户栏,可更换背景和发起私聊。前十位注册用户可显示专属认证标识。

偏好设置

震感开关保存到服务端,重新打开或换设备仍保持;Tab、频道和游戏统一读取该偏好。

Admin Console

运营后台模块#

Vue 3 + Vite 后台提供响应式侧栏、全局搜索、加载反馈、路由权限与操作审计。运营概览集中展示业务指标、审核任务、用户趋势和匿名化位置热力分布。

阜聚运营后台运营概览界面
运营后台概览:指标、阜阳市用户热力分布、增长趋势与待处理事项集中在一个工作台
分组页面主要能力
概览运营概览业务指标、待审核数、趋势、最新内容、用户位置热力图和乡镇排名
内容运营首页、官方活动、美食、文化、旅游、地点头图跳转、内容 CRUD、排序、上下线、开奖、地图内容
社区治理动态、公屏、圈子、组局、躲猫猫、约拍、旧物审核、状态、内容处置与业务记录
用户风控用户、反馈、举报账号状态、问题受理和举报处置
系统管理员、日志、设置角色、审计、功能开关和集成配置

Governance

审核、状态与治理#

内容审核

动态、组局、旧物和拍者申请进入对应后台。通过或驳回后写入站内系统消息;用户有额度时再发送微信审核通知。

举报与反馈

后台受理违规举报和用户问题,管理员结果与关键操作写入审计日志。

删除语义

多类内容当前使用物理删除接口,后台删除需填写原因。关联数据要由事务和数据库约束保证完整性。

圈内自治

圈子加入、头衔、规则与置顶由圈主处理,不混入平台日常审核。

永久删除不可恢复:生产环境必须明确展示目标与影响、记录原因,并先建立可验证的备份恢复流程。

Configuration

系统配置#

超级管理员统一维护功能开关和微信集成。敏感值在数据库中以 AES-256-GCM 加密,后台读取仅返回掩码和配置状态。

小程序与地图

AppID、AppSecret、地图 Key,以及首页入口和官方活动等功能开关。

微信支付

启用状态、商户号、API v3 密钥、证书、公私钥和通知地址;启用前校验必要字段。

订阅消息

总开关、formal / trial / developer 环境,以及各业务模板 ID 和字段键顺序。

运行策略

功能与运营参数的变更写入管理员审计,服务端保存后刷新配置缓存。

保密边界:AppSecret、支付私钥、数据库密码、JWT 密钥和地图 Key 不得出现在代码仓库、Wiki、截图或前端构建产物中。

RBAC

管理员角色权限#

角色名称当前范围
super_admin超级管理员全部模块,包括管理员、审计与系统设置
operator内容运营概览、首页/美食/文化/旅游/地点、组局、官方活动、旧物、躲猫猫
moderator社区审核概览、动态、公屏、圈子、组局、活动、躲猫猫、约拍、旧物、举报
support客服概览、用户、反馈、举报
双层校验:前端路由负责入口体验,服务端权限中间件仍检查每个管理 API,不能只依赖菜单隐藏。

Business Flows

核心业务流程#

内容发布与审核

用户提交客户端和服务端分别校验必填、长度、媒体和时间。
进入待审核动态、组局、旧物或拍者资料进入对应后台。
管理员处理通过后展示,驳回保留原因,操作写入审计。
通知用户生成站内消息;有对应订阅额度时再发微信通知。

组局报名与提醒

发布填写分类、时间、地址、人数、详情、多图和可选群二维码。
审核通过后进入全城列表并按坐标计算距离。
报名服务端检查状态、人数和重复报名,并通知发起人。
开始与变更定时扫描去重提醒;取消、时间或地点变化通知成员。

Notifications

站内消息与微信订阅通知#

站内消息负责可靠留痕,微信订阅消息只作离线触达。用户需按具体模板授权,每次接受通常增加该模板一次额度,模板之间不能共享。

模板业务用途典型触发
圈子动态提醒圈内成员圈内新内容发布
点赞 / 评论内容互动帖子被赞、被评论或回复
活动报名通知发起人新用户报名
审核 / 申请结果审核和通用申请内容、拍者、圈子、置顶状态变化
聊天消息私聊离线触达接收者不在对应聊天页
活动开始 / 变更 / 结果活动全周期即将开始、时间地址变更、结果公布
预约提醒约拍闭环新预约、确认、拒绝、取消
  • 授权额度默认收起,用户主动展开后逐模板续订。
  • 客户端只请求当前动作需要的模板,避免无关打扰。
  • 发送成功后扣减对应模板额度,失败不误扣。
  • 点击消息携带业务 ID,直接到旧物详情、帖子、活动或具体预约。

Realtime

实时通信与请求治理#

通道路径认证用途
匿名公屏/ws/anonymous-chat匿名访客标识ready、message、心跳
私聊/ws/private-chatToken + 对方 IDready、send、message、error
躲猫猫/ws/hide-seekToken + 房间 ID实时房间 snapshot

客户端生命周期

  1. 进入页面连接,收到 ready 或首个快照后显示“已连接”。
  2. 页面隐藏、离开或进入后台时断开。
  3. 异常按 2、4、8、15、30 秒退避重连,恢复后拉取最新快照。
  4. 登录、普通查询、上传和发消息使用独立额度;合并重复请求、搜索防抖、隐藏后停止刷新。

API

API 模块概览#

默认前缀为 /api。这里展示业务域,不替代精确接口契约。

POST微信登录、资料和偏好
GET城市发现、地区、搜索和地点
CRUD动态、评论、圈子和申请
CRUD组局、报名和我的组局
CRUD旧物、收藏和我的发布
CRUD拍者、申请、排期和预约
POST纸条投放、抽取和删除
CRUD躲猫猫房间、位置和抓捕
GET通知列表、分类和未读
CRUD后台运营、审核和配置
健康检查:GET /api/health 返回服务与数据库状态,可用于监控探针;生产环境不宜向公网暴露过多内部信息。

Data

数据、定位与删除#

业务数据

用户、动态评论、圈子、组局、地点攻略、旧物、拍者预约、纸条、聊天、官方活动、躲猫猫、通知、订阅额度和审计日志。

用户定位

小程序保存 GCJ-02 坐标与区县/乡镇。后台 Leaflet 展示前转 WGS84;热力图按网格聚合,不显示身份和轨迹。

物理删除

本人删除和后台删除应移除记录,而非仅改状态。删除前检查外键、媒体、消息引用和统计影响。

备份恢复

迁移与永久删除前备份;生产环境验证加密、保留周期、异地存储和恢复演练。

Development

本地开发#

服务端

cd server
cp .env.example .env
npm install
npm run db:init
npm run migrate
npm run dev

运营后台

cd admin
npm install
npm run dev

微信小程序

使用 HBuilderX 将仓库根目录运行到微信开发者工具。真机测试需保证网络互通;生产必须使用微信允许的 HTTPS 域名,不长期依赖局域网 IP 或临时隧道。

场景检查
服务状态访问 /api/health 并查看 Node 与数据库日志
3000 端口占用确认是否已有同一服务进程,不重复启动
后台构建cd admin && npm run build
服务端测试cd server && npm test
数据库运行迁移并确认最新版本成功记录

Production

生产部署检查清单#

基础设施

  • Node.js 18+、MySQL、进程守护和日志轮转。
  • Nginx 终止 HTTPS,并转发 WebSocket Upgrade。
  • API、上传和后台使用稳定域名。
  • 监控、告警、备份与恢复演练。

微信后台

  • 配置 request、uploadFile、downloadFile、socket 合法域名。
  • 后台填入生产小程序、地图、支付和通知配置。
  • 订阅环境切到 formal 并核对字段键。
  • 分享冷启动页提供返回首页兜底。

安全配置

  • 强随机 JWT_SECRET 和独立 CONFIG_ENCRYPTION_KEY。
  • 数据库最小权限且不直接暴露公网。
  • CORS 限制可信来源。
  • 上传校验并使用对象存储/CDN。

性能容量

  • 不同请求类型分别限流。
  • 静态缓存压缩,主包控制在 2MB 内。
  • 列表分页、搜索防抖、请求合并。
  • 监控 WebSocket 心跳、重连和连接数。

Security & Privacy

安全、隐私与合规#

  • 位置、微信号、联系方式、聊天媒体需说明用途、范围、保存期限和删除方式。
  • 躲猫猫只在明确授权和对局期间采集位置,退出、后台或结束即停止。
  • 管理员敏感操作使用 RBAC、二次确认和审计,超级管理员采用强密码。
  • 支付回调验签且幂等,私钥只保存在服务端。
  • 聊天、公屏、动态和图片配套内容安全、举报、封禁与申诉。
  • 任何密钥、密码或令牌都不进入客户端、Wiki、日志或前端产物。

Troubleshooting

常见问题#

公屏一直“连接中”或消息不实时?

检查 WebSocket 服务是否挂载、代理是否转发 Upgrade、微信 socket 合法域名和 wss:// 地址。客户端应收到 ready 后再显示已连接。

真机图片加载失败?

检查 URL 是否稳定 HTTPS、公网可访问、已加入 downloadFile 合法域名、MIME 正确且没有临时隧道警告页。生产使用对象存储/CDN。

分享页进入后返回失效?

分享冷启动没有上一页栈。详情页判断页面栈,只有一层时使用 reLaunchswitchTab 回首页。

订阅消息没有发送?

检查总开关、模板 ID、字段键、运行环境、openid、该模板额度和微信接口返回。不同模板额度不能共享。

欢迎序号为何与用户 ID 不一致?

数据库删除用户后主键不会自动回退。欢迎排序应使用稳定注册顺序或创建时间计算,仅新用户增加。

热力点为什么偏移?

小程序坐标通常为 GCJ-02,Leaflet / OSM 为 WGS84。后台展示前统一转换,避免重复转换。

页面到顶或到底还会拖动外层?

让唯一滚动容器承担滚动,配置 disableScroll 并用 scroll-view;聊天键盘弹出时调整消息区,不移动整个页面。

没有找到相关内容试试“圈子”“审核”“通知”或“WebSocket”。