总览系统总体架构
四端协同:用户小程序下单,商家 App 管店,分公司(代理)管理下属商家,平台管理后台审核运营并创建分公司账号。
flowchart TB
subgraph 用户端["📱 客户端小程序"]
MP[微信小程序]
MP --> P1[产品页]
MP --> P2[店铺页]
MP --> P3[订单页]
MP --> P4[我的页]
end
subgraph 商家端["🏪 商家 App"]
APP[商家移动应用]
APP --> M1[订单管理]
APP --> M2[数据统计]
APP --> M3[我的/店铺管理]
end
subgraph 分公司端["🏢 分公司 / 代理"]
BR[分公司后台 / App]
BR --> B1[下属商家管理]
BR --> B2[区域订单统计]
BR --> B3[分公司信息]
end
subgraph 平台端["🖥️ 管理后台 Web"]
ADMIN[Java 管理后台 Web]
ADMIN --> A1[商家审核]
ADMIN --> A2[产品审核]
ADMIN --> A3[分类/轮播管理]
ADMIN --> A4[反馈处理]
ADMIN --> A5[用户管理]
ADMIN --> A6[分公司管理
添加代理账号] ADMIN --> A7[系统配置] end subgraph 服务端["☁️ Java 后端 API 服务"] API[Spring Boot RESTful API] DB[(MySQL 数据库)] OSS[对象存储 OSS] API --> DB API --> OSS end MP <-->|HTTPS| API APP <-->|HTTPS| API BR <-->|HTTPS| API ADMIN <-->|HTTPS| API ADMIN -.->|创建账号| BR style 用户端 fill:#ecfdf5,stroke:#07c160 style 商家端 fill:#fffbeb,stroke:#f59e0b style 分公司端 fill:#fce7f3,stroke:#db2777 style 平台端 fill:#f5f3ff,stroke:#8b5cf6 style 服务端 fill:#eff6ff,stroke:#2563eb
添加代理账号] ADMIN --> A7[系统配置] end subgraph 服务端["☁️ Java 后端 API 服务"] API[Spring Boot RESTful API] DB[(MySQL 数据库)] OSS[对象存储 OSS] API --> DB API --> OSS end MP <-->|HTTPS| API APP <-->|HTTPS| API BR <-->|HTTPS| API ADMIN <-->|HTTPS| API ADMIN -.->|创建账号| BR style 用户端 fill:#ecfdf5,stroke:#07c160 style 商家端 fill:#fffbeb,stroke:#f59e0b style 分公司端 fill:#fce7f3,stroke:#db2777 style 平台端 fill:#f5f3ff,stroke:#8b5cf6 style 服务端 fill:#eff6ff,stroke:#2563eb
小程序客户端主流程 & 底部导航
底部 Tab 四个入口:产品、店铺、订单、我的。全局功能:搜索、语言切换、客服、反馈。
flowchart TD
START([用户打开小程序]) --> AUTH{微信授权登录}
AUTH -->|首次| REG[注册用户信息]
AUTH -->|已登录| HOME
REG --> HOME[进入首页 - 默认产品页]
HOME --> TAB{底部导航 Tab}
TAB -->|Tab1| PRODUCT[产品页]
TAB -->|Tab2| STORE[店铺页]
TAB -->|Tab3| ORDER[订单页]
TAB -->|Tab4| MINE[我的页]
PRODUCT --> SEARCH_P[搜索框 → 搜索页
搜索产品] STORE --> SEARCH_S[搜索框 → 搜索页
搜索店铺] PRODUCT --> BANNER_P[轮播图 - 产品推荐] STORE --> BANNER_S[轮播图 - 店铺推荐] PRODUCT --> CAT_P[产品分类] STORE --> CAT_S[店铺分类] PRODUCT --> REC_P[分类推荐产品
每分类最多10个] STORE --> REC_S[分类推荐店铺
每分类最多10个] GLOBAL[全局功能按钮] GLOBAL --> LANG[选择语言
国语 / 维语] GLOBAL --> KF[客服] GLOBAL --> FB[反馈意见 → 反馈页] style PRODUCT fill:#d1fae5 style STORE fill:#d1fae5 style ORDER fill:#dbeafe style MINE fill:#fef3c7
搜索产品] STORE --> SEARCH_S[搜索框 → 搜索页
搜索店铺] PRODUCT --> BANNER_P[轮播图 - 产品推荐] STORE --> BANNER_S[轮播图 - 店铺推荐] PRODUCT --> CAT_P[产品分类] STORE --> CAT_S[店铺分类] PRODUCT --> REC_P[分类推荐产品
每分类最多10个] STORE --> REC_S[分类推荐店铺
每分类最多10个] GLOBAL[全局功能按钮] GLOBAL --> LANG[选择语言
国语 / 维语] GLOBAL --> KF[客服] GLOBAL --> FB[反馈意见 → 反馈页] style PRODUCT fill:#d1fae5 style STORE fill:#d1fae5 style ORDER fill:#dbeafe style MINE fill:#fef3c7
小程序产品页详细流程
flowchart TD
P_START([进入产品页]) --> P_SEARCH[顶部搜索框]
P_SEARCH -->|点击| P_SEARCH_PAGE[搜索页面
type=product] P_SEARCH_PAGE --> P_INPUT[输入关键词] P_INPUT --> P_RESULT[展示产品搜索结果列表] P_RESULT --> P_DETAIL_LINK[进入产品详情页] P_START --> P_BANNER[轮播图区域] P_BANNER -->|点击轮播项| P_DETAIL_LINK P_START --> P_CAT[产品分类导航] P_CAT -->|点击分类| P_CAT_LIST[该分类下产品列表] P_CAT_LIST --> P_DETAIL_LINK P_START --> P_REC[推荐区域] P_REC --> P_DIST{计算用户与商家距离} P_DIST -->|2公里内| P_STAR_SORT[按小黄星排序
积分算法] P_DIST -->|2公里外| P_DIST_SORT[按距离由近到远排序] P_STAR_SORT --> P_REC_LIST[推荐产品列表] P_DIST_SORT --> P_REC_LIST P_REC_LIST --> P_DETAIL_LINK style P_SEARCH_PAGE fill:#e0f2fe style P_DETAIL_LINK fill:#fef9c3
type=product] P_SEARCH_PAGE --> P_INPUT[输入关键词] P_INPUT --> P_RESULT[展示产品搜索结果列表] P_RESULT --> P_DETAIL_LINK[进入产品详情页] P_START --> P_BANNER[轮播图区域] P_BANNER -->|点击轮播项| P_DETAIL_LINK P_START --> P_CAT[产品分类导航] P_CAT -->|点击分类| P_CAT_LIST[该分类下产品列表] P_CAT_LIST --> P_DETAIL_LINK P_START --> P_REC[推荐区域] P_REC --> P_DIST{计算用户与商家距离} P_DIST -->|2公里内| P_STAR_SORT[按小黄星排序
积分算法] P_DIST -->|2公里外| P_DIST_SORT[按距离由近到远排序] P_STAR_SORT --> P_REC_LIST[推荐产品列表] P_DIST_SORT --> P_REC_LIST P_REC_LIST --> P_DETAIL_LINK style P_SEARCH_PAGE fill:#e0f2fe style P_DETAIL_LINK fill:#fef9c3
小程序产品详情页流程
不同商家类型展示不同的产品分类和产品。支持小黄车加购、立即购买、查看所属店铺。
flowchart TD
PD_START([进入产品详情页]) --> PD_ENTRY{入口来源}
PD_ENTRY -->|产品页列表| PD_LOAD
PD_ENTRY -->|搜索| PD_LOAD
PD_ENTRY -->|轮播图| PD_LOAD
PD_ENTRY -->|推荐| PD_LOAD
PD_ENTRY -->|店铺详情| PD_LOAD
PD_LOAD[加载产品详情数据] --> PD_TYPE{读取所属商家类型}
PD_TYPE --> PD_CAT[展示该类型下的产品分类 Tab]
PD_CAT -->|切换分类| PD_CAT_PROD[展示该分类下其他产品]
PD_LOAD --> PD_INFO[产品信息展示]
PD_INFO --> PD_I1[产品名称/图片/价格]
PD_INFO --> PD_I2[产品描述/规格/库存]
PD_INFO --> PD_I3[所属店铺名称]
PD_INFO --> PD_I4[距离 / 小黄星显示]
PD_INFO --> PD_ACTION{用户操作}
PD_ACTION -->|加入小黄车| PD_CART[小黄车加购]
PD_CART --> PD_CART_FN[改数量/查看购物车]
PD_CART_FN --> PD_CART_PAY[结算 → 确认订单]
PD_CART_PAY --> PD_WX{微信支付}
PD_ACTION -->|立即购买| PD_BUY[确认订单]
PD_BUY --> PD_WX
PD_ACTION -->|进入店铺| PD_GOTO_STORE[跳转店铺详情页]
PD_ACTION -->|分享| PD_SHARE[分享产品]
PD_WX -->|成功| PD_STATUS[订单状态→准备中]
PD_WX -->|失败| PD_RETRY[返回重试]
style PD_LOAD fill:#e0f2fe
style PD_INFO fill:#fef9c3
style PD_CART fill:#d1fae5
小程序店铺页详细流程
flowchart TD
S_START([进入店铺页]) --> S_SEARCH[顶部搜索框]
S_SEARCH -->|点击| S_SEARCH_PAGE[搜索页面
type=store] S_SEARCH_PAGE --> S_INPUT[输入关键词] S_INPUT --> S_RESULT[展示店铺搜索结果列表] S_RESULT --> S_SHOP_LINK[进入店铺详情页] S_START --> S_BANNER[轮播图区域 - 店铺推荐] S_BANNER -->|点击| S_SHOP_LINK S_START --> S_CAT[店铺分类导航] S_CAT -->|点击分类| S_CAT_LIST[该分类下店铺列表] S_CAT_LIST --> S_SHOP_LINK S_START --> S_REC[推荐区域] S_REC --> S_DIST{计算用户与店铺距离} S_DIST -->|2公里内| S_STAR_SORT[按店铺小黄星排序
积分算法] S_DIST -->|2公里外| S_DIST_SORT[按距离由近到远排序] S_STAR_SORT --> S_REC_LIST[推荐店铺列表] S_DIST_SORT --> S_REC_LIST S_REC_LIST --> S_SHOP_LINK style S_SEARCH_PAGE fill:#e0f2fe style S_SHOP_LINK fill:#fef9c3
type=store] S_SEARCH_PAGE --> S_INPUT[输入关键词] S_INPUT --> S_RESULT[展示店铺搜索结果列表] S_RESULT --> S_SHOP_LINK[进入店铺详情页] S_START --> S_BANNER[轮播图区域 - 店铺推荐] S_BANNER -->|点击| S_SHOP_LINK S_START --> S_CAT[店铺分类导航] S_CAT -->|点击分类| S_CAT_LIST[该分类下店铺列表] S_CAT_LIST --> S_SHOP_LINK S_START --> S_REC[推荐区域] S_REC --> S_DIST{计算用户与店铺距离} S_DIST -->|2公里内| S_STAR_SORT[按店铺小黄星排序
积分算法] S_DIST -->|2公里外| S_DIST_SORT[按距离由近到远排序] S_STAR_SORT --> S_REC_LIST[推荐店铺列表] S_DIST_SORT --> S_REC_LIST S_REC_LIST --> S_SHOP_LINK style S_SEARCH_PAGE fill:#e0f2fe style S_SHOP_LINK fill:#fef9c3
小程序店铺详情页流程
商家与店铺同名。不同商家类型展示不同的产品分类和产品。
flowchart TD
SD_START([进入店铺详情页]) --> SD_ENTRY{入口来源}
SD_ENTRY -->|店铺页列表| SD_LOAD
SD_ENTRY -->|搜索| SD_LOAD
SD_ENTRY -->|轮播图| SD_LOAD
SD_ENTRY -->|推荐| SD_LOAD
SD_ENTRY -->|产品详情| SD_LOAD
SD_LOAD[加载店铺详情
商家=店铺同名] --> SD_TYPE{读取商家类型} SD_LOAD --> SD_INFO[店铺信息展示] SD_INFO --> SD_I1[店铺名称/头像] SD_INFO --> SD_I2[商家类型/地址] SD_INFO --> SD_I3[距离显示] SD_INFO --> SD_I4[店铺小黄星显示] SD_TYPE --> SD_CAT[展示该类型下的产品分类] SD_CAT -->|点击分类| SD_PROD_LIST[该分类下产品列表] SD_PROD_LIST --> SD_PROD[点击产品] SD_PROD --> SD_GOTO_PD[跳转产品详情页] SD_INFO --> SD_ACTION{用户操作} SD_ACTION -->|联系客服| SD_KF[客服] SD_ACTION -->|分享| SD_SHARE[分享店铺] SD_ACTION -->|收藏| SD_FAV[收藏店铺] style SD_LOAD fill:#e0f2fe style SD_INFO fill:#fef9c3 style SD_CAT fill:#d1fae5
商家=店铺同名] --> SD_TYPE{读取商家类型} SD_LOAD --> SD_INFO[店铺信息展示] SD_INFO --> SD_I1[店铺名称/头像] SD_INFO --> SD_I2[商家类型/地址] SD_INFO --> SD_I3[距离显示] SD_INFO --> SD_I4[店铺小黄星显示] SD_TYPE --> SD_CAT[展示该类型下的产品分类] SD_CAT -->|点击分类| SD_PROD_LIST[该分类下产品列表] SD_PROD_LIST --> SD_PROD[点击产品] SD_PROD --> SD_GOTO_PD[跳转产品详情页] SD_INFO --> SD_ACTION{用户操作} SD_ACTION -->|联系客服| SD_KF[客服] SD_ACTION -->|分享| SD_SHARE[分享店铺] SD_ACTION -->|收藏| SD_FAV[收藏店铺] style SD_LOAD fill:#e0f2fe style SD_INFO fill:#fef9c3 style SD_CAT fill:#d1fae5
小程序小黄车 / 距离 / 小黄星推荐逻辑
产品页与店铺页推荐:2公里内按小黄星(积分)算法排序,2公里外按距离排序。小黄车支持加购、改数量、结算与微信支付。
flowchart TD
LOGIC_START([用户浏览产品/店铺]) --> GET_LOC[获取用户定位]
GET_LOC --> CALC[计算与商家距离]
CALC --> RANGE{距离判断}
RANGE -->|≤ 2公里| STAR[小黄星/店铺小黄星算法]
RANGE -->|> 2公里| DIST[距离优先算法]
STAR --> STAR_RULE[小黄星 = 积分
综合评分排序] DIST --> DIST_RULE[按距离由近到远] STAR_RULE --> SHOW_REC[展示推荐列表] DIST_RULE --> SHOW_REC SHOW_REC --> CLICK{用户操作} CLICK -->|产品| PROD_DETAIL[产品详情
按商家类型显示分类和产品] CLICK -->|店铺| STORE_DETAIL[店铺详情
商家=店铺同名
按类型显示分类和产品] PROD_DETAIL --> CART[小黄车] STORE_DETAIL --> CART CART --> CART_LOGIC[小黄车功能
加购/改数量/查看] CART_LOGIC --> CART_PAY[结算 → 确认订单] CART_PAY --> WX_PAY{微信支付} WX_PAY -->|成功| ORDER_STATUS[订单状态→准备中] WX_PAY -->|失败| PAY_RETRY[返回重试] style STAR fill:#fef3c7 style DIST fill:#dbeafe style CART fill:#d1fae5 style CART_PAY fill:#fef9c3
综合评分排序] DIST --> DIST_RULE[按距离由近到远] STAR_RULE --> SHOW_REC[展示推荐列表] DIST_RULE --> SHOW_REC SHOW_REC --> CLICK{用户操作} CLICK -->|产品| PROD_DETAIL[产品详情
按商家类型显示分类和产品] CLICK -->|店铺| STORE_DETAIL[店铺详情
商家=店铺同名
按类型显示分类和产品] PROD_DETAIL --> CART[小黄车] STORE_DETAIL --> CART CART --> CART_LOGIC[小黄车功能
加购/改数量/查看] CART_LOGIC --> CART_PAY[结算 → 确认订单] CART_PAY --> WX_PAY{微信支付} WX_PAY -->|成功| ORDER_STATUS[订单状态→准备中] WX_PAY -->|失败| PAY_RETRY[返回重试] style STAR fill:#fef3c7 style DIST fill:#dbeafe style CART fill:#d1fae5 style CART_PAY fill:#fef9c3
商家类型与分类关系:不同商家类型对应不同的产品分类和产品。申请店铺和添加产品时,必须选择管理后台已配置的商家类型;未配置类型则无法添加店铺和产品。
小黄星积分:2 公里内推荐排序详见 小黄星积分算法 专章流程图与公式说明。
小黄星积分:2 公里内推荐排序详见 小黄星积分算法 专章流程图与公式说明。
小程序小黄星(积分)算法流程
2 公里内按小黄星积分排序,2 公里外按距离排序。小黄星 = 综合积分,用于衡量商家/产品的热度、质量与活跃度。
flowchart TD
STAR_START([触发小黄星计算]) --> TRIGGER{触发场景}
TRIGGER -->|推荐列表加载| REC_SCENE[产品页/店铺页推荐]
TRIGGER -->|详情页展示| DETAIL_SCENE[产品/店铺详情]
TRIGGER -->|订单完成| EVENT_ORDER[订单完成事件]
TRIGGER -->|用户评价| EVENT_REVIEW[评价提交事件]
TRIGGER -->|定时任务| CRON[每日凌晨批量重算]
REC_SCENE --> DIST_CHECK{用户距离}
DIST_CHECK -->|≤ 2公里| CALC[计算小黄星积分]
DIST_CHECK -->|> 2公里| DIST_ONLY[仅按距离排序
不算小黄星] DETAIL_SCENE --> CALC EVENT_ORDER --> COLLECT[采集行为数据] EVENT_REVIEW --> COLLECT CRON --> COLLECT COLLECT --> CALC CALC --> OBJ{计算对象} OBJ -->|店铺| STORE[店铺小黄星] OBJ -->|产品| PROD[产品小黄星] STORE --> S_BASE[基础分 = 100] S_BASE --> S_ORDER[订单分 = min完成订单数×2, 200] S_ORDER --> S_RATE[评价分 = 平均评分×20] S_RATE --> S_ACTIVE[活跃分 = min近30天订单×5, 100] S_ACTIVE --> S_BOOST[+ 运营加权 0~50] S_BOOST --> S_TOTAL[店铺小黄星总分] PROD --> P_INHERIT[继承分 = 店铺小黄星×30%] P_INHERIT --> P_SALES[销量分 = min产品销量×3, 150] P_SALES --> P_RATE[评价分 = 产品均分×15] P_RATE --> P_BOOST[+ 运营加权 0~50] P_BOOST --> P_TOTAL[产品小黄星总分] S_TOTAL --> CACHE[(写入积分缓存)] P_TOTAL --> CACHE CACHE --> SORT[按积分降序排列] SORT --> TIE{积分相同?} TIE -->|是| TIE_BREAK[距离近者优先] TIE -->|否| OUTPUT[输出排序/展示] TIE_BREAK --> OUTPUT DIST_ONLY --> OUTPUT style STORE fill:#fef3c7 style PROD fill:#fef3c7 style CACHE fill:#dbeafe style OUTPUT fill:#d1fae5
不算小黄星] DETAIL_SCENE --> CALC EVENT_ORDER --> COLLECT[采集行为数据] EVENT_REVIEW --> COLLECT CRON --> COLLECT COLLECT --> CALC CALC --> OBJ{计算对象} OBJ -->|店铺| STORE[店铺小黄星] OBJ -->|产品| PROD[产品小黄星] STORE --> S_BASE[基础分 = 100] S_BASE --> S_ORDER[订单分 = min完成订单数×2, 200] S_ORDER --> S_RATE[评价分 = 平均评分×20] S_RATE --> S_ACTIVE[活跃分 = min近30天订单×5, 100] S_ACTIVE --> S_BOOST[+ 运营加权 0~50] S_BOOST --> S_TOTAL[店铺小黄星总分] PROD --> P_INHERIT[继承分 = 店铺小黄星×30%] P_INHERIT --> P_SALES[销量分 = min产品销量×3, 150] P_SALES --> P_RATE[评价分 = 产品均分×15] P_RATE --> P_BOOST[+ 运营加权 0~50] P_BOOST --> P_TOTAL[产品小黄星总分] S_TOTAL --> CACHE[(写入积分缓存)] P_TOTAL --> CACHE CACHE --> SORT[按积分降序排列] SORT --> TIE{积分相同?} TIE -->|是| TIE_BREAK[距离近者优先] TIE -->|否| OUTPUT[输出排序/展示] TIE_BREAK --> OUTPUT DIST_ONLY --> OUTPUT style STORE fill:#fef3c7 style PROD fill:#fef3c7 style CACHE fill:#dbeafe style OUTPUT fill:#d1fae5
推荐计算公式(最佳实践):
| 类型 | 公式 | 设计理由 |
|---|---|---|
| 店铺小黄星 | 100 + min(完成单×2,200) + 均分×20 + min(近30天单×5,100) + 运营加权 | 新店有基础分;订单/活跃分设上限防垄断;评价保证质量 |
| 产品小黄星 | 店铺分×30% + min(销量×3,150) + 均分×15 + 运营加权 | 继承店铺信誉;产品自身销量与评价决定排名 |
| 排序规则 | 积分降序 → 同分按距离升序 | 2 公里内优先推高质量;同分时更近更方便 |
| 更新时机 | 订单完成/评价实时更新 + 每日批量校准 | 用户感知及时;定时任务保证数据一致 |
运营加权由管理后台「推荐配置」设置,可用于推广优质新店或活动商品。权重建议 0~50,避免过度干预自然排序。
小程序订单页流程
flowchart TD
O_START([进入订单页]) --> O_TAB{订单状态 Tab}
O_TAB -->|全部| O_ALL[显示所有订单]
O_TAB -->|付款| O_PAY[待付款订单]
O_TAB -->|准备中| O_PREP[准备中订单]
O_TAB -->|完成| O_DONE[已完成订单]
O_ALL --> O_ITEM[订单卡片列表]
O_PAY --> O_ITEM
O_PREP --> O_ITEM
O_DONE --> O_ITEM
O_ITEM --> O_DETAIL[订单详情页]
O_DETAIL --> O_ACTION{用户操作}
O_ACTION -->|待付款| O_PAY_NOW[立即支付]
O_ACTION -->|准备中| O_TRACK[查看进度]
O_ACTION -->|已完成| O_REVIEW[评价/再次购买]
O_ACTION -->|任意| O_CANCEL[取消订单]
O_PAY_NOW --> WX_PAY[微信支付]
WX_PAY -->|成功| O_STATUS_UPDATE[状态→准备中]
subgraph 订单状态流转
ST1[待付款] -->|支付成功| ST2[准备中]
ST2 -->|商家确认| ST3[完成]
ST1 -->|超时/取消| ST4[已取消]
end
style O_PAY fill:#fef3c7
style O_PREP fill:#dbeafe
style O_DONE fill:#d1fae5
小程序我的页面流程
flowchart TD
M_START([进入我的页]) --> M_INFO[用户信息区域]
M_INFO --> M_NAME[显示名称]
M_INFO --> M_AVATAR[显示头像]
M_INFO --> M_ID[显示用户 ID]
M_INFO --> M_ROLE{用户角色}
M_ROLE -->|普通用户| M_USER[角色: 用户]
M_ROLE -->|已审核商家| M_MERCHANT[角色: 商家]
M_START --> M_APPLY[申请商家按钮]
M_START --> M_LANG[选择语言]
M_START --> M_KF[客服]
M_START --> M_FB[反馈意见]
M_MERCHANT --> M_GOTO_APP[跳转商家App
或小程序商家入口] style M_USER fill:#dbeafe style M_MERCHANT fill:#fef3c7
或小程序商家入口] style M_USER fill:#dbeafe style M_MERCHANT fill:#fef3c7
小程序申请商家流程
普通用户提交入驻申请,管理后台审核通过后角色变为商家,可使用商家 App。
flowchart TD
A_START([点击申请商家]) --> A_FORM[填写申请表单]
subgraph 法人信息
A_F1[法人姓名]
A_F2[身份证号]
A_F3[手机号]
end
subgraph 店铺信息及手续
A_S1[营业执照图片上传]
A_S2[店铺名称]
A_S3[店铺地址]
A_S4[对应许可证图片上传]
end
A_FORM --> 法人信息
A_FORM --> 店铺信息及手续
法人信息 --> A_SUBMIT[提交申请]
店铺信息及手续 --> A_SUBMIT
A_SUBMIT --> A_API[POST /api/merchant/apply]
A_API --> A_PENDING[申请状态: 待审核]
A_PENDING --> ADMIN_REVIEW{管理后台审核}
ADMIN_REVIEW -->|通过| A_PASS[审核通过
用户角色→商家
创建店铺账号] ADMIN_REVIEW -->|驳回| A_REJECT[审核驳回
通知用户修改重提] A_PASS --> A_NOTIFY[推送通知用户] A_REJECT --> A_FORM A_PASS --> MERCHANT_LOGIN[商家可登录 App] style A_PENDING fill:#fef3c7 style A_PASS fill:#d1fae5 style A_REJECT fill:#fee2e2
用户角色→商家
创建店铺账号] ADMIN_REVIEW -->|驳回| A_REJECT[审核驳回
通知用户修改重提] A_PASS --> A_NOTIFY[推送通知用户] A_REJECT --> A_FORM A_PASS --> MERCHANT_LOGIN[商家可登录 App] style A_PENDING fill:#fef3c7 style A_PASS fill:#d1fae5 style A_REJECT fill:#fee2e2
小程序语言切换 / 客服 / 反馈
flowchart LR
subgraph 语言切换
L1[点击语言按钮] --> L2[弹出选择框]
L2 --> L3[国语 zh-CN]
L2 --> L4[维语 ug-CN]
L3 --> L5[切换 i18n 语言包
刷新页面文案] L4 --> L5 end subgraph 客服 K1[点击客服按钮] --> K2{客服方式} K2 --> K3[微信客服消息] K2 --> K4[在线客服 H5] K2 --> K5[拨打电话] end subgraph 反馈意见 F1[点击反馈意见] --> F2[跳转反馈页面] F2 --> F3[填写反馈内容] F3 --> F4[可选: 上传截图] F4 --> F5[提交反馈] F5 --> F6[POST /api/feedback] F6 --> F7[管理后台查看处理] end
刷新页面文案] L4 --> L5 end subgraph 客服 K1[点击客服按钮] --> K2{客服方式} K2 --> K3[微信客服消息] K2 --> K4[在线客服 H5] K2 --> K5[拨打电话] end subgraph 反馈意见 F1[点击反馈意见] --> F2[跳转反馈页面] F2 --> F3[填写反馈内容] F3 --> F4[可选: 上传截图] F4 --> F5[提交反馈] F5 --> F6[POST /api/feedback] F6 --> F7[管理后台查看处理] end
商家App商家端完整流程
flowchart TD
MA_START([商家登录 App]) --> MA_AUTH[账号密码 / 微信绑定登录]
MA_AUTH --> MA_TAB{底部导航}
MA_TAB -->|Tab1| MA_ORDER[订单管理]
MA_TAB -->|Tab2| MA_STATS[数据统计]
MA_TAB -->|Tab3| MA_MINE[我的]
subgraph 订单管理
MA_ORDER --> MO_LIST[实时订单列表]
MO_LIST --> MO_NEW[新订单推送通知]
MO_LIST --> MO_DETAIL[查看订单详情]
MO_DETAIL --> MO_ACCEPT[接单 → 准备中]
MO_DETAIL --> MO_COMPLETE[完成订单]
MO_DETAIL --> MO_REJECT[拒单/退款]
end
subgraph 数据统计
MA_STATS --> MS_TODAY[今日订单统计]
MA_STATS --> MS_MONTH[本月订单统计]
MA_STATS --> MS_DATE[选择日期统计]
MS_TODAY -->|点击| MS_DETAIL[统计详情页
对应时间订单列表] MS_MONTH -->|点击| MS_DETAIL MS_DATE --> MS_PICKER[日期选择器] MS_PICKER --> MS_DETAIL MS_DETAIL --> MS_ORDER_INFO[订单金额/数量/明细] end subgraph 我的页面 MA_MINE --> MM_INFO[商家信息展示] MM_INFO --> MM_NAME[店铺名称] MM_INFO --> MM_ID[店铺 ID] MM_INFO --> MM_AVATAR[店铺头像] MM_INFO --> MM_TYPE[店铺类型] MM_INFO --> MM_EDIT[修改信息按钮] MA_MINE --> MM_PRODUCT[产品管理] MM_PRODUCT --> MP_ADD[添加产品 → 提交审核] MM_PRODUCT --> MP_EDIT[修改产品 → 提交审核] MM_PRODUCT --> MP_DEL[删除产品] MA_MINE --> MM_COUPON[优惠券管理] MM_COUPON --> MC_ADD[添加优惠券
最低2元起] MM_COUPON --> MC_EDIT[修改优惠券] MM_COUPON --> MC_DEL[删除优惠券] MA_MINE --> MM_ACTIVITY[活动管理] MM_ACTIVITY --> MA_ADD[添加活动] MA_ADD --> MA_SELECT[选择参与产品] MA_SELECT --> MA_CONFIG[配置活动规则/价格] end style MA_ORDER fill:#fef3c7 style MA_STATS fill:#dbeafe style MA_MINE fill:#f3e8ff
对应时间订单列表] MS_MONTH -->|点击| MS_DETAIL MS_DATE --> MS_PICKER[日期选择器] MS_PICKER --> MS_DETAIL MS_DETAIL --> MS_ORDER_INFO[订单金额/数量/明细] end subgraph 我的页面 MA_MINE --> MM_INFO[商家信息展示] MM_INFO --> MM_NAME[店铺名称] MM_INFO --> MM_ID[店铺 ID] MM_INFO --> MM_AVATAR[店铺头像] MM_INFO --> MM_TYPE[店铺类型] MM_INFO --> MM_EDIT[修改信息按钮] MA_MINE --> MM_PRODUCT[产品管理] MM_PRODUCT --> MP_ADD[添加产品 → 提交审核] MM_PRODUCT --> MP_EDIT[修改产品 → 提交审核] MM_PRODUCT --> MP_DEL[删除产品] MA_MINE --> MM_COUPON[优惠券管理] MM_COUPON --> MC_ADD[添加优惠券
最低2元起] MM_COUPON --> MC_EDIT[修改优惠券] MM_COUPON --> MC_DEL[删除优惠券] MA_MINE --> MM_ACTIVITY[活动管理] MM_ACTIVITY --> MA_ADD[添加活动] MA_ADD --> MA_SELECT[选择参与产品] MA_SELECT --> MA_CONFIG[配置活动规则/价格] end style MA_ORDER fill:#fef3c7 style MA_STATS fill:#dbeafe style MA_MINE fill:#f3e8ff
产品审核说明:商家添加或修改产品后,状态为「待审核」,管理后台审核通过后产品才会在小程序展示。删除产品无需审核。
管理后台平台管理后台流程
基于 Java(Spring Boot)后端,管理员通过 Web 端进行审核、配置和运营管理。
flowchart TD
AD_LOGIN([管理员登录]) --> AD_DASH[控制台 Dashboard]
AD_DASH --> AD_MENU{功能模块}
subgraph 商家管理
AD_MENU --> AD_M1[商家入驻审核]
AD_M1 --> AD_M1_LIST[待审核申请列表]
AD_M1_LIST --> AD_M1_VIEW[查看申请详情
法人信息+店铺手续] AD_M1_VIEW --> AD_M1_PASS[审核通过
校验商家类型已配置] AD_M1_VIEW --> AD_M1_REJECT[审核驳回+原因] AD_MENU --> AD_M2[商家列表管理] AD_M2 --> AD_M2_EDIT[编辑/禁用商家] end subgraph 分公司管理 AD_MENU --> AD_B1[分公司/代理列表] AD_B1 --> AD_B1_ADD[添加分公司] AD_B1 --> AD_B1_EDIT[修改分公司] AD_B1 --> AD_B1_DEL[删除/禁用分公司] AD_B1_ADD --> AD_B1_INFO[分公司名称/地址/负责人/电话] AD_B1_EDIT --> AD_B1_INFO AD_B1_ADD --> AD_B1_ACC[创建代理登录账号
账号 + 密码] AD_B1_EDIT --> AD_B1_RESET[重置代理密码] AD_B1 --> AD_B1_BIND[关联商家店铺] AD_B1_BIND --> AD_B1_VIEW[查看分公司下商家与订单] end subgraph 产品管理 AD_MENU --> AD_P1[产品审核] AD_P1 --> AD_P1_LIST[待审核产品列表] AD_P1_LIST --> AD_P1_PASS[审核通过 → 上架
校验类型与分类] AD_P1_LIST --> AD_P1_REJECT[审核驳回] AD_MENU --> AD_P2[产品列表] AD_P2 --> AD_P2_CRUD[查看/下架/删除] end subgraph 类型与分类配置 AD_MENU --> AD_T1[商家类型管理] AD_T1 --> AD_T1_ADD[添加/修改/删除商家类型] AD_T1 --> AD_T1_BIND[为每个类型配置产品分类] AD_T1_BIND --> AD_T1_RULE[无类型不可添加店铺和产品] AD_MENU --> AD_T2[产品分类管理] AD_T2 --> AD_T2_CRUD[按商家类型绑定分类 CRUD] AD_T2 --> AD_T2_APPLY[申请店铺/添加产品时
必须选择已配置类型] end subgraph 内容运营 AD_MENU --> AD_C1[轮播图管理] AD_C1 --> AD_C1_P[产品轮播图] AD_C1 --> AD_C1_S[店铺轮播图] AD_MENU --> AD_C3[推荐配置] AD_C3 --> AD_C3_SET[设置各分类推荐
最多10条] AD_C3 --> AD_C3_ALGO[2公里内小黄星
2公里外距离] end subgraph 订单管理 AD_MENU --> AD_O1[全部订单] AD_O1 --> AD_O1_VIEW[订单详情/退款处理] end subgraph 用户管理 AD_MENU --> AD_U1[用户列表] AD_U1 --> AD_U1_VIEW[查看用户信息/角色] end subgraph 反馈管理 AD_MENU --> AD_F1[用户反馈列表] AD_F1 --> AD_F1_VIEW[查看反馈详情] AD_F1_VIEW --> AD_F1_REPLY[回复/标记已处理] end subgraph 系统设置 AD_MENU --> AD_S1[语言包管理
国语/维语] AD_MENU --> AD_S2[客服配置] AD_MENU --> AD_S3[管理员账号] AD_MENU --> AD_S4[操作日志] end subgraph 优惠券与活动 AD_MENU --> AD_CP[优惠券监管
查看各商家优惠券] AD_MENU --> AD_ACT[活动监管
查看各商家活动] end style AD_M1 fill:#fef3c7 style AD_P1 fill:#fef3c7 style AD_F1 fill:#dbeafe style AD_B1 fill:#e9d5ff
法人信息+店铺手续] AD_M1_VIEW --> AD_M1_PASS[审核通过
校验商家类型已配置] AD_M1_VIEW --> AD_M1_REJECT[审核驳回+原因] AD_MENU --> AD_M2[商家列表管理] AD_M2 --> AD_M2_EDIT[编辑/禁用商家] end subgraph 分公司管理 AD_MENU --> AD_B1[分公司/代理列表] AD_B1 --> AD_B1_ADD[添加分公司] AD_B1 --> AD_B1_EDIT[修改分公司] AD_B1 --> AD_B1_DEL[删除/禁用分公司] AD_B1_ADD --> AD_B1_INFO[分公司名称/地址/负责人/电话] AD_B1_EDIT --> AD_B1_INFO AD_B1_ADD --> AD_B1_ACC[创建代理登录账号
账号 + 密码] AD_B1_EDIT --> AD_B1_RESET[重置代理密码] AD_B1 --> AD_B1_BIND[关联商家店铺] AD_B1_BIND --> AD_B1_VIEW[查看分公司下商家与订单] end subgraph 产品管理 AD_MENU --> AD_P1[产品审核] AD_P1 --> AD_P1_LIST[待审核产品列表] AD_P1_LIST --> AD_P1_PASS[审核通过 → 上架
校验类型与分类] AD_P1_LIST --> AD_P1_REJECT[审核驳回] AD_MENU --> AD_P2[产品列表] AD_P2 --> AD_P2_CRUD[查看/下架/删除] end subgraph 类型与分类配置 AD_MENU --> AD_T1[商家类型管理] AD_T1 --> AD_T1_ADD[添加/修改/删除商家类型] AD_T1 --> AD_T1_BIND[为每个类型配置产品分类] AD_T1_BIND --> AD_T1_RULE[无类型不可添加店铺和产品] AD_MENU --> AD_T2[产品分类管理] AD_T2 --> AD_T2_CRUD[按商家类型绑定分类 CRUD] AD_T2 --> AD_T2_APPLY[申请店铺/添加产品时
必须选择已配置类型] end subgraph 内容运营 AD_MENU --> AD_C1[轮播图管理] AD_C1 --> AD_C1_P[产品轮播图] AD_C1 --> AD_C1_S[店铺轮播图] AD_MENU --> AD_C3[推荐配置] AD_C3 --> AD_C3_SET[设置各分类推荐
最多10条] AD_C3 --> AD_C3_ALGO[2公里内小黄星
2公里外距离] end subgraph 订单管理 AD_MENU --> AD_O1[全部订单] AD_O1 --> AD_O1_VIEW[订单详情/退款处理] end subgraph 用户管理 AD_MENU --> AD_U1[用户列表] AD_U1 --> AD_U1_VIEW[查看用户信息/角色] end subgraph 反馈管理 AD_MENU --> AD_F1[用户反馈列表] AD_F1 --> AD_F1_VIEW[查看反馈详情] AD_F1_VIEW --> AD_F1_REPLY[回复/标记已处理] end subgraph 系统设置 AD_MENU --> AD_S1[语言包管理
国语/维语] AD_MENU --> AD_S2[客服配置] AD_MENU --> AD_S3[管理员账号] AD_MENU --> AD_S4[操作日志] end subgraph 优惠券与活动 AD_MENU --> AD_CP[优惠券监管
查看各商家优惠券] AD_MENU --> AD_ACT[活动监管
查看各商家活动] end style AD_M1 fill:#fef3c7 style AD_P1 fill:#fef3c7 style AD_F1 fill:#dbeafe style AD_B1 fill:#e9d5ff
分公司分公司(代理)完整流程图
管理员在管理后台创建分公司并开通代理账号;代理登录后管理本区域商家、查看订单与统计。
flowchart TD
START([管理员登录管理后台]) --> MENU[进入分公司管理]
MENU --> ADD[添加分公司 / 代理]
ADD --> INFO[填写分公司信息]
INFO --> I1[分公司名称]
INFO --> I2[地址]
INFO --> I3[负责人姓名]
INFO --> I4[联系电话]
ADD --> ACC[创建代理账号]
ACC --> A1[登录账号]
ACC --> A2[登录密码]
ACC --> A3[角色 = 分公司/代理]
INFO --> SAVE[提交保存]
ACC --> SAVE
SAVE --> API[POST /api/admin/branch]
API --> DB[(数据库: 分公司表 + 账号表)]
DB --> OK[创建成功]
OK --> NOTICE[通知代理账号密码
或线下交付] NOTICE --> LOGIN([代理使用账号登录]) LOGIN --> AUTH{账号密码校验} AUTH -->|失败| LOGIN AUTH -->|成功| HOME[进入分公司后台] HOME --> TAB{功能模块} TAB --> BM[下属商家管理] BM --> BM1[查看本区域商家列表] BM --> BM2[关联 / 解绑商家] BM --> BM3[查看商家店铺详情] TAB --> BO[区域订单] BO --> BO1[查看下属商家订单] BO --> BO2[按状态筛选
付款/准备中/完成] TAB --> BS[区域统计] BS --> BS1[今日订单统计] BS --> BS2[本月订单统计] BS --> BS3[选日期统计] BS1 --> BSD[统计详情页] BS2 --> BSD BS3 --> BSD TAB --> BI[分公司信息] BI --> BI1[查看分公司资料] BI --> BI2[修改联系方式等] BI --> BI3[修改登录密码] style ADD fill:#e9d5ff style ACC fill:#fce7f3 style HOME fill:#fef3c7 style BM fill:#dbeafe style BO fill:#d1fae5 style BS fill:#dbeafe
或线下交付] NOTICE --> LOGIN([代理使用账号登录]) LOGIN --> AUTH{账号密码校验} AUTH -->|失败| LOGIN AUTH -->|成功| HOME[进入分公司后台] HOME --> TAB{功能模块} TAB --> BM[下属商家管理] BM --> BM1[查看本区域商家列表] BM --> BM2[关联 / 解绑商家] BM --> BM3[查看商家店铺详情] TAB --> BO[区域订单] BO --> BO1[查看下属商家订单] BO --> BO2[按状态筛选
付款/准备中/完成] TAB --> BS[区域统计] BS --> BS1[今日订单统计] BS --> BS2[本月订单统计] BS --> BS3[选日期统计] BS1 --> BSD[统计详情页] BS2 --> BSD BS3 --> BSD TAB --> BI[分公司信息] BI --> BI1[查看分公司资料] BI --> BI2[修改联系方式等] BI --> BI3[修改登录密码] style ADD fill:#e9d5ff style ACC fill:#fce7f3 style HOME fill:#fef3c7 style BM fill:#dbeafe style BO fill:#d1fae5 style BS fill:#dbeafe
sequenceDiagram
autonumber
participant Admin as 管理员
participant API as Java API
participant DB as 数据库
participant Agent as 分公司代理
Note over Admin,Agent: === 创建分公司(代理)账号 ===
Admin->>API: 添加分公司 + 代理账号密码
API->>DB: 写入分公司信息
API->>DB: 写入账号(角色=代理)
API-->>Admin: 创建成功
Admin-->>Agent: 交付账号密码
Note over Admin,Agent: === 代理日常管理 ===
Agent->>API: 登录
API->>DB: 校验账号
API-->>Agent: 返回 Token / 权限
Agent->>API: 查询下属商家 / 订单 / 统计
API->>DB: 按分公司ID过滤数据
API-->>Agent: 返回本区域数据
说明:分公司(代理)账号只能由管理员在管理后台添加,不可自行注册。代理仅能查看与管理关联到本分公司的商家及对应订单数据。
总览核心业务数据流转
sequenceDiagram
autonumber
participant U as 用户(小程序)
participant API as 后端API
participant DB as 数据库
participant M as 商家(App)
participant A as 管理后台
Note over U,A: === 商家入驻流程 ===
U->>API: 提交入驻申请(法人+店铺信息)
API->>DB: 保存申请(状态:待审核)
A->>API: 查看待审核列表
A->>API: 审核通过/驳回
API->>DB: 更新状态,创建店铺
API-->>U: 推送审核结果
Note over U,A: === 产品上架流程 ===
M->>API: 添加/修改产品
API->>DB: 保存产品(状态:待审核)
A->>API: 审核产品
API->>DB: 更新状态(已上架)
U->>API: 浏览产品列表
API->>DB: 查询已上架产品
API-->>U: 返回产品数据
Note over U,A: === 下单流程 ===
U->>API: 创建订单
API->>DB: 保存订单(待付款)
U->>API: 微信支付
API->>DB: 更新订单(准备中)
API-->>M: 推送新订单通知
M->>API: 确认完成
API->>DB: 更新订单(已完成)
API-->>U: 推送订单完成
Note over U,A: === 反馈流程 ===
U->>API: 提交反馈意见
API->>DB: 保存反馈
A->>API: 查看并处理反馈
API->>DB: 更新处理状态
总览功能模块清单
客户端小程序
| 模块 | 功能点 | 说明 |
|---|---|---|
| 底部导航 | 产品 / 店铺 / 订单 / 我的 | 四个 Tab 主入口 |
| 搜索 | 产品页→搜产品;店铺页→搜店铺 | 共用搜索页,通过 type 参数区分 |
| 轮播图 | 产品页显示产品轮播;店铺页显示店铺轮播 | 后台配置,点击跳转详情 |
| 分类 | 产品分类 / 店铺分类 | 按商家类型展示不同分类 |
| 产品详情 | 按商家类型显示分类和产品 | 不同类型对应不同分类和产品 |
| 店铺详情 | 商家=店铺同名,按类型显示 | 不同类型对应不同分类和产品 |
| 小黄车 | 加购 / 改数量 / 结算 / 支付 | 小黄车内结算,微信支付下单 |
| 距离推荐 | 2公里内小黄星 / 2公里外距离 | 产品推荐排序算法 |
| 店铺小黄星 | 2公里内店铺小黄星 / 2公里外距离 | 店铺推荐排序算法 |
| 小黄星积分算法 | 店铺分 + 产品分 + 运营加权 | 2公里内综合积分排序,详见算法流程图 |
| 推荐 | 分类+对应条目,每分类最多10条 | 结合距离/小黄星算法 |
| 订单 | 全部 / 付款 / 准备中 / 完成 | Tab 切换订单状态 |
| 我的-用户信息 | 名称、头像、ID、角色(商家/用户) | 角色决定功能入口 |
| 申请商家 | 法人信息+店铺手续提交 | 提交至管理后台审核 |
| 语言切换 | 国语 / 维语 | 弹窗选择,切换 i18n |
| 客服 | 联系客服 | 微信客服或电话 |
| 反馈意见 | 跳转反馈页提交 | 同步至管理后台 |
商家 App
| 模块 | 功能点 | 说明 |
|---|---|---|
| 底部导航 | 订单 / 统计 / 我的 | 三个 Tab 主入口 |
| 订单 | 接收和查看用户订单 | 实时推送新订单 |
| 统计 | 日统计 / 月统计 / 选日期 | 点击进入统计详情页 |
| 我的-商家信息 | 店铺名称、ID、头像、类型、修改 | 基本信息展示与编辑 |
| 产品管理 | 添加 / 修改 / 删除 | 须选商家类型与分类,添加和修改需审核 |
| 优惠券管理 | 添加 / 修改 / 删除 | 最低面额 2 元 |
| 活动管理 | 添加活动,选产品配置 | 活动产品与规则配置 |
管理后台
| 模块 | 功能点 | 说明 |
|---|---|---|
| 控制台 | 数据概览 | 订单量、商家数、用户数等 |
| 商家审核 | 入驻申请审核 | 查看法人+店铺信息,通过/驳回 |
| 商家管理 | 商家列表 CRUD | 编辑、禁用商家账号 |
| 分公司管理 | 添加分公司 + 创建代理账号 | 维护信息、账号密码、关联商家、查看下属订单 |
| 产品审核 | 商家产品审核 | 通过/驳回,控制上架 |
| 产品管理 | 全平台产品列表 | 查看、下架、删除 |
| 轮播图管理 | 产品轮播 / 店铺轮播 | 上传图片、排序、链接 |
| 商家类型管理 | 添加 / 修改 / 删除类型 | 为类型配置产品分类,无类型不可开店 |
| 产品分类管理 | 按商家类型绑定分类 | 申请店铺/添加产品须选已配置类型 |
| 推荐配置 | 各分类推荐 + 排序算法 | 2公里内小黄星,2公里外距离 |
| 订单管理 | 全平台订单 | 查看详情、退款处理 |
| 用户管理 | 用户列表 | 查看信息、角色 |
| 反馈管理 | 用户反馈处理 | 查看、回复、标记完成 |
| 系统设置 | 语言包 / 客服 / 管理员 | 基础配置 |
分公司(代理)
| 模块 | 功能点 | 说明 |
|---|---|---|
| 账号来源 | 仅管理员添加 | 不可自行注册,由管理后台开通 |
| 登录 | 账号 + 密码 | 角色为分公司/代理 |
| 下属商家 | 列表 / 关联 / 解绑 | 仅本分公司区域商家 |
| 区域订单 | 查看下属订单 | 可按状态筛选 |
| 区域统计 | 日 / 月 / 选日期 | 进入统计详情页 |
| 分公司信息 | 资料查看与修改 | 可修改密码 |