系统与配置
系统与配置
本文档面向购买 VortMall 电商系统的平台运营方,说明首次部署后的系统初始化、多版本业态(sys_env:pro / merchant / b2b / overseas / vendor / o2o)、缓存与运行时配置链路、管理员 RBAC(Sa-Token、角色与菜单权限)、跨境版多语言与多币种、支付网关(微信/支付宝/PayPal)、阿里云短信、对象存储(OSS/COS)、XXL-Job 定时任务以及运营数据统计面板等典型业务流程。全局配置经 sys_env 持久化后,通过缓存预热写入 Redis,再映射为运行时属性并由各业务模块按版本注入能力。
1. 系统初始化与基础配置流程
平台首次部署完成后,需完成管理员账号、站点品牌信息、版本模式选择及数据库连接等基础配置,再启动应用服务,使商城具备可登录、可运营的最小闭环。
参与角色: 实施/运维人员、系统初始化向导或数据库、应用服务进程、Redis(若已启用)。
flowchart TD
createAdmin["创建超级管理员账号"]
siteInfo["配置站点名称/Logo/版权"]
chooseEdition["选择版本模式(sys_env)"]
dbConfig["配置数据库连接与迁移"]
startSvc["启动应用服务"]
healthCheck["健康检查与访问验证"]
createAdmin --> siteInfo
siteInfo --> chooseEdition
chooseEdition --> dbConfig
dbConfig --> startSvc
startSvc --> healthCheck
步骤说明:
- 通过安装向导或首次引导脚本创建超级管理员账号,并妥善保存初始密码或强制首次改密。
- 在后台或配置文件中填写站点名称、Logo 地址、页脚版权等对外展示信息。
- 在
sys_env(或等价配置入口)中选择目标业态版本,如pro(默认)、merchant、b2b、overseas、vendor、o2o)。 - 配置主库连接串、账号权限,执行数据库迁移或初始化脚本,确保表结构与基础数据就绪。
- 若使用 Redis,填写连接信息并完成缓存预热相关配置(可与启动脚本联动)。
- 启动应用与依赖中间件,确认进程监听、日志无致命错误。
- 通过浏览器访问管理后台与前台,完成登录与健康检查,验证初始化成功。
说明与规则:
- 生产环境须将默认密码、调试开关关闭,数据库账号遵循最小权限原则。
- 版本模式一旦选定后变更会影响功能模块与菜单,需参考「多版本业态切换」流程评估影响。
2. 多版本业态切换流程
运营方在管理后台调整 sys_env 中的版本开关后,系统刷新缓存与运行时属性,各业务模块按新模式加载或注入能力,菜单与权限展示随之同步调整。
参与角色: 超级管理员或具备系统配置权限的角色、sys_env 存储、缓存服务(Redis)、运行时配置模块、各业务模块。
flowchart TD
editSysEnv["管理后台修改sys_env"]
persistDb["持久化到数据库"]
warmCache["触发缓存预热/失效"]
redisStore["Redis更新运行时键值"]
runtimeProps["加载运行时属性"]
moduleInject["各模块按版本注入能力"]
menuSync["菜单/功能显示或隐藏"]
editSysEnv --> persistDb
persistDb --> warmCache
warmCache --> redisStore
redisStore --> runtimeProps
runtimeProps --> moduleInject
moduleInject --> menuSync
步骤说明:
- 具备权限的管理员在后台修改目标业态标识(如从
pro切换为overseas)。 - 系统将变更写入
sys_env及相关配置表并提交事务。 - 触发缓存失效或预热任务,将最新环境信息写入 Redis。
- 应用侧从 Redis 读取或通过监听器刷新本地
runtime properties。 - 各模块根据当前版本注册或卸载 Bean、路由、定时任务等扩展点。
- 菜单与权限树按版本过滤,隐藏不适用的功能入口。
- 建议通知在线用户刷新或重新登录以获取最新菜单与文案。
说明与规则:
- 切换业态可能影响订单、结算、支付等链路,宜在业务低峰期操作并提前备份。
- 跨境版(
overseas)需额外配置语言与货币,见下文专项流程。
3. 管理员角色与权限配置流程
平台通过 RBAC 模型:先定义角色并从菜单树勾选权限,再将角色分配给管理员账号;Sa-Token 负责会话与鉴权,登录后仅展示与数据范围匹配的后台菜单与接口。
参与角色: 超级管理员、权限管理员、Sa-Token 认证层、RBAC 服务(角色、菜单、权限)、目标管理员账号。
flowchart TD
createRole["创建管理员角色"]
pickMenu["从菜单树勾选权限"]
saveRole["保存角色与权限绑定"]
createUser["创建管理员账号"]
assignRole["为账号分配角色"]
loginToken["管理员登录(Sa-Token签发)"]
showMenu["按权限展示菜单"]
createRole --> pickMenu
pickMenu --> saveRole
saveRole --> createUser
createUser --> assignRole
assignRole --> loginToken
loginToken --> showMenu
步骤说明:
- 在后台「角色管理」中新建角色,填写名称与描述。
- 在菜单树中勾选可访问的菜单与操作(按钮级权限以实际配置为准)。
- 保存后,系统将角色与菜单/权限标识写入持久化存储。
- 在「管理员账号」中新建账号,设置登录名与初始密码策略。
- 为该账号分配一个或多个角色。
- 管理员使用账号密码登录,Sa-Token 建立会话并记录 token。
- 后端根据菜单权限过滤接口返回,前端渲染可见菜单。
说明与规则:
- 遵循最小权限原则,敏感操作(如退款、改价)单独授权。
- 角色变更后,已登录用户可能需重新登录或等待 token 刷新策略生效。
4. 多语言配置流程(跨境版)
适用于 overseas 等支持国际化的版本:启用语言后,在后台维护语言包与翻译表中的 key-value,前端根据用户语言偏好从翻译资源中解析并展示。
参与角色: 运营/管理员、i18n 配置、语言包与 translations 表、商城前端、终端用户。
flowchart TD
enableLocale["启用目标语言"]
managePack["管理语言包/命名空间"]
editKv["维护翻译条目(key-value)"]
persistTrans["写入translations表"]
userLang["用户选择或浏览器语言"]
resolveFront["前端按locale解析展示"]
enableLocale --> managePack
managePack --> editKv
editKv --> persistTrans
persistTrans --> userLang
userLang --> resolveFront
步骤说明:
- 在系统设置中启用所需语言(如
zh-CN、en-US)。 - 按模块或页面划分语言包或命名空间,便于分批维护。
- 在翻译管理界面新增或编辑 key 与各语言 value。
- 保存后持久化到
translations(或等价表),并触发缓存更新(若有)。 - 用户在前台选择语言,或系统根据浏览器
Accept-Language默认。 - 前端请求带
locale参数,后端或静态资源返回对应文案。 - 验收关键页面(商品、购物车、结算)的术语一致性。
说明与规则:
- key 命名应稳定,避免随意重命名导致线上缺译。
- 跨境版建议与支付、物流文案同步校对,避免合规风险。
5. 多币种配置流程(跨境版)
在 overseas 等场景下,运营方添加币种、维护汇率并设置默认币种;商品展示价格可按汇率换算为当前用户所选币种。
参与角色: 财务/运营管理员、币种与汇率配置、商品与价格服务、前台展示层。
flowchart TD
addCurrency["添加货币代码与符号"]
setRate["设置对各基准币的汇率"]
defaultCur["设置默认展示币种"]
bindPrice["商品主价与基准币种绑定"]
userPick["用户选择结算/展示币种"]
convertShow["按汇率换算并展示"]
addCurrency --> setRate
setRate --> defaultCur
defaultCur --> bindPrice
bindPrice --> userPick
userPick --> convertShow
步骤说明:
- 在后台「货币管理」中新增币种(如 USD、EUR),并配置符号与精度。
- 维护相对基准货币(如 CNY)的汇率,支持手工或定时同步(若有对接)。
- 设置系统默认币种,用于未登录或首次访问用户。
- 确保商品主价格与基准币种一致,避免重复换算误差。
- 用户切换展示币种时,前端或后端按当前汇率计算展示价。
- 下单与支付链路以实际支付网关支持币种为准,必要时与展示币种分离。
- 定期对账与汇率审计,避免大额偏差。
说明与规则:
- 汇率变更不应对历史订单金额回溯修改,以订单快照为准。
- PayPal 等海外支付需与币种、结算规则一并核对。
6. 支付方式配置流程
平台分别配置微信支付、支付宝及跨境场景下的 PayPal:填写 AppID、商户号、密钥、证书等,启用或禁用渠道后,在沙箱或小额真实单中完成联调验证。
参与角色: 财务/技术管理员、支付网关(微信/支付宝/PayPal)、支付回调、订单服务。
flowchart TD
cfgWx["配置微信支付(AppID/商户号/密钥)"]
cfgAli["配置支付宝(AppID/私钥/证书)"]
cfgPayPal["配置PayPal(overseas)"]
toggleEnable["启用或禁用各支付方式"]
testPay["沙箱或小额测试支付"]
orderCallback["订单支付回调与对账"]
cfgWx --> cfgAli
cfgAli --> cfgPayPal
cfgPayPal --> toggleEnable
toggleEnable --> testPay
testPay --> orderCallback
步骤说明:
- 在微信开放平台与商户平台获取 AppID、商户号、mchId、API 密钥或证书,并配置到后台。
- 在支付宝开放平台创建应用,上传应用公钥,配置应用私钥与支付宝公钥。
- 跨境版在 PayPal 开发者控制台创建应用,配置 Client ID、Secret 与回调地址。
- 在后台支付方式列表中勾选启用,并设置排序、展示名称。
- 使用沙箱环境或小额订单完成下单、支付、退款全链路测试。
- 验证异步通知 URL 可达、幂等与订单状态更新正确。
- 生产环境关闭调试日志中的敏感字段输出。
说明与规则:
- 密钥与证书必须存放在安全配置中心或环境变量,禁止提交到代码仓库。
- 回调地址须 HTTPS 且与支付平台登记一致。
7. 短信服务配置流程
使用阿里云短信(Dysms)时,在后台配置 AccessKey、短信签名与模板 ID,区分验证码与业务通知模板,发送前进行真实号码测试。
参与角色: 短信管理员、阿里云短信服务、AccessKey 与模板、业务触发点(登录、下单通知等)。
flowchart TD
choosePlatform["选择短信平台(阿里云SMS)"]
fillAk["填写AccessKey与Region"]
createSig["创建短信签名(审核)"]
tplCode["创建短信模板并审核"]
bindVerify["绑定验证码类模板"]
bindNotify["绑定通知类模板"]
testSend["测试发送与回执"]
choosePlatform --> fillAk
fillAk --> createSig
createSig --> tplCode
tplCode --> bindVerify
tplCode --> bindNotify
bindVerify --> testSend
bindNotify --> testSend
步骤说明:
- 在后台「短信配置」中选择阿里云短信作为服务商。
- 填写 RAM 子账号的 AccessKey ID/Secret、地域与产品 Endpoint(按官方文档)。
- 在阿里云控制台创建短信签名并等待审核通过。
- 分别创建验证码模板与通知模板,记录模板 CODE。
- 在系统中将验证码模板绑定到登录、注册等场景。
- 将通知模板绑定到订单发货、支付成功等场景。
- 使用测试手机号发送,确认回执、限流与错误码处理。
说明与规则:
- AccessKey 建议使用 RAM 子账号并仅授予短信最小权限。
- 模板变量必须与代码中传入参数一致,否则发送失败。
8. 文件存储配置流程
选择本地磁盘或云对象存储(阿里云 OSS、腾讯云 COS 等),配置 Bucket、访问密钥与自定义域名;可选配置 CDN 加速域名,上传测试文件验证读写与 URL 生成规则。
参与角色: 运维/管理员、对象存储服务、CDN(可选)、应用上传组件。
flowchart TD
pickStore["选择存储方式(本地/OSS/COS)"]
bucketCfg["配置Bucket与AccessKey"]
cdnDomain["设置CDN或自定义域名"]
aclPolicy["配置读写策略与回调(可选)"]
testUpload["测试上传与访问URL"]
goLive["保存配置并生效"]
pickStore --> bucketCfg
bucketCfg --> cdnDomain
cdnDomain --> aclPolicy
aclPolicy --> testUpload
testUpload --> goLive
步骤说明:
- 根据业务规模选择本地存储或云 OSS/COS(生产建议云存储)。
- 在云平台创建 Bucket,设置地域、读写权限与跨域 CORS。
- 在后台填写 Endpoint、Bucket 名称、AccessKey 或 STS 策略。
- 绑定自定义域名或 CDN 域名,用于静态资源加速与 HTTPS。
- 配置上传大小限制、允许的文件类型与病毒扫描策略(若接入)。
- 通过后台或接口上传测试图片,确认可公网访问或签名 URL 正确。
- 保存配置并重启或刷新缓存使全站生效。
说明与规则:
- Bucket 禁止公共写权限,优先使用服务端签名上传。
- 图片与敏感文件路径建议分桶或前缀隔离。
9. 定时任务管理流程
通过 XXL-Job 等调度中心管理任务:查看任务列表、配置 CRON、手动触发或暂停,查看执行日志并配置失败告警。
参与角色: 运维/管理员、XXL-Job 调度中心、执行器(应用实例)、监控告警渠道。
flowchart TD
listJob["查看已有定时任务列表"]
editCron["配置任务执行频率(CRON)"]
operateJob["手动触发/暂停/恢复"]
viewLog["查看执行日志与堆栈"]
alertCfg["配置任务失败告警"]
listJob --> editCron
editCron --> operateJob
operateJob --> viewLog
viewLog --> alertCfg
步骤说明:
- 登录 XXL-Job 管理端,查看已注册的执行器与任务列表。
- 为每个任务设置或调整 CRON 表达式,说明业务含义与峰值避让。
- 使用「执行一次」验证任务逻辑,必要时暂停任务排查问题。
- 在「调度日志」中查看每次触发结果、耗时与失败原因。
- 对关键任务配置失败重试、超时与告警(邮件、钉钉、短信等)。
- 应用发布时注意执行器版本与任务 Handler 一致性,避免类找不到。
- 定期清理历史日志与归档策略,防止磁盘占满。
说明与规则:
- 同一任务避免多实例重复执行,使用分片或路由策略按文档配置。
- 财务类任务须在业务低峰期调度,并保留审计日志。
10. 数据统计面板说明
运营后台的数据统计面板汇总销售、用户、流量与商品等维度,支持按今日/本周/本月等时间范围查看销售额、订单量、新增与活跃用户、PV/UV 及热销与库存预警,支撑运营决策。
参与角色: 运营与管理员、统计服务、报表数据源(订单、用户、访问日志、商品库存)、可视化前端。
flowchart TD
salesAgg["销售统计(今日/周/月销售额与订单量)"]
userAgg["用户统计(新增/活跃)"]
trafficAgg["流量统计(PV与UV)"]
productAgg["商品统计(热销与库存预警)"]
dashboard["统一展示与下钻"]
salesAgg --> dashboard
userAgg --> dashboard
trafficAgg --> dashboard
productAgg --> dashboard
步骤说明:
- 销售统计:汇总指定时间范围内的订单金额、有效订单数、退款金额等,支持按店铺或渠道筛选(若多店)。
- 用户统计:展示新增注册、活跃登录(DAU/WAU/MAU 口径以系统定义为准),可结合会员等级。
- 流量统计:统计页面 PV、独立访客 UV,来源可区分站内与推广(若接入埋点)。
- 商品统计:热销排行、动销率、库存低于阈值的预警列表。
- 在仪表盘首页组合卡片与趋势图,支持切换时间粒度与导出。
- 大数据量时依赖定时任务预聚合或 OLAP,避免实时查询拖垮主库。
- 与权限结合,仅授权角色可见敏感经营数据。
说明与规则:
- 统计口径(如「已支付」与「已发货」)需与财务对账一致,变更需公告。
- 跨境版若涉及多币种,销售额需统一折算或分币种展示,避免混淆。
Gan public network security 36010902001041