小程序端五层服务架构图:config→http→auth→api→normalize→mock,页面只调业务域方法

Overview

项目说明

匠将通是面向养老 / 康养行业职业技能人才的**「培训 + 认证 + 就业」一体化平台**,采用「学员 / 推荐官 / 用人单位」三方多角色模型,覆盖微信小程序(C 端主入口)+ PC 官网 + 后台管理三端。项目由广西星辰大海教育联合央企光大养老集团(和光颐养·广西覃塘培训基地)共建,PC 官网 jiangjiangtong.cn 已上线。

解决什么:养老康养行业「招工难、留人难、培训与就业信息割裂、只发单一纸质证书、一次性推岗、机构收费不透明」等痛点,用一个三端三角色协同的平台,以「报名 → 集训 → 考证认证 → 推荐官分销获客 → 岗位推荐 → 就业意向 → 在岗跟踪 → 升段复训」的全链路闭环替代割裂流程。

工程内核在小程序端(本人主要产出):

  • 五层服务架构:自研 config→http→auth→api→normalize→mock,页面只调业务域方法,网络 / 鉴权 / 字段适配全部下沉——后端变动不扩散到任何页面。
  • 登录态自愈:wx.login→mnpLogin 换 token 落盘、单例 Promise 去重并发登录、401 自动静默重登并重放原请求,token 过期用户无感。
  • 幂等与归一:写操作统一携带 request_id 服务端去重;normalize 兼容 snake_case↔camelCase、金额分制、区划码→城市、薪资解析,杜绝重复提交与字段错配。
  • 多角色 RBAC + 分销结算状态机 + 隐私脱敏 + 三要素人脸实名:一套账号三种身份、佣金合规可追溯、PII 只返回脱敏视图。

后端基于开源中后台底座 likeadmin_java 二次开发(Spring Boot 2.7.5 / Java 8 / MyBatis-Plus / MySQL / Redis),自研全部 jjt 业务域(培训 / 技能 / 招聘 / 分销 / 企业 / 实名),基于 Redis 的 token 鉴权,统一响应 {code, msg, data}

配图说明:PC 官网首屏、核心优势、实训实景为线上站点真实截图;五层服务架构、三端多角色闭环、登录态自愈与结算状态机为按项目实测接口与代码结构绘制的技术示意图。

Process

制作流程

每个详情页都把真正重要的步骤拆开,不只展示结果,也展示判断是如何形成的。

匠将通 PC 官网首屏真实截图:老年专业服务人才实训基地
01

线上真实平台:PC 营销官网(jiangjiangtong.cn)

PC 端为营销落地页 + 同域后端 API 网关,负责获客与品牌背书。项目由广西星辰大海教育联合央企光大养老集团(和光颐养·广西覃塘培训基地)共建,主营养老护理员、中医保健按摩师、长期照护师、辅具适配师等工种的培训、考核与就业输送。原生 HTML/CSS + Vanilla JS(IntersectionObserver 滚动动效,主题色

官网核心优势八点真实截图:段位晋升 / 实景实训 / 双证保障 / 闭环就业兜底
02

平台核心特点:差异化就业兜底

官网「核心优势」板块以八个差异化能力对标传统培训机构:标准化段位晋升(1–9 段技能等级、段位挂钩薪资)、央企实景实训、分层分班教学、双证 + 风险保障(国家职业证 + 区块链段位认证)、终身长效服务、闭环就业兜底(考核合格 3 个月未就业可免费复训并二次推荐岗位)、收费公开透明、标准化招募筛选。这些业务规则直接映射到小程序端的培训、技能、招聘业务域。

五层服务架构图:config→http→auth→api→normalize→mock 逐层职责
03

小程序端五层服务架构(本人主要产出)

原生微信小程序(App/Page/Component、wx.* API,非 uni-app / 非 Taro),自研 config(环境/域名/超时/token key/useMock 开关)→ http(请求内核 + request_id 幂等注入)→ auth(登录编排)→ api(jjt 业务域)→ normalize(响应归一)→ mock(离线数据)五层。页面只依赖业务域方法,网络 / 鉴权 / 字段适配全部下沉——后端接口或字段变动不扩散到任何页面。

三端多角色就业闭环图:学员/推荐官/用人单位三角色 + 报名到就业全链路
04

三端多角色 · 就业闭环

一个微信用户可同时拥有 user(学员/求职者)、officer(推荐官/推广员)、employer(用人单位)三重身份,通过「申请 → 后台审核 → 身份切换」流转;前端 canEnterRole 做角色准入门控,后端做权限校验双保险。三方在同一 App 内协同又互相隔离:学员一处报名学证一体、企业一处发需求捞人才、推荐官一处推广得佣金。全链路「报名 → 考证 → 分销 → 就业」形成闭环就业兜底。

登录态自愈四步 + 分销奖励结算状态机图
05

登录态自愈 · 分销结算状态机

两处最考验健壮性的链路。登录态自愈:wx.login→mnpLogin 换 token 落盘,ensureLogin 用单例 Promise 去重并发登录,请求 401(code=-1)自动静默重登并重放原请求——用户无感、不弹登录页、不丢当前操作。分销奖励结算状态机 pending→verified→settle→withdrawing→withdrawn/failed 全流程可审计;提现携带 request_id 服务端去重,前端额外校验可提现余额与重复申请拦截。

官网基地简介真实截图:覃塘颐养中心前台实景
06

共建背景与实训实景

匠将通·和光颐养广西覃塘培训中心是真实运营的养老场景实训基地,依托光大直营实景运营养老院开展实景教学,配套失能失智照护、康复、居家服务等实操区域。官网「基地简介」与「实训实景」板块用真实的前台、教学楼照片支撑「学证一体、闭环就业」的可信度——技术平台背后是真实的产业与就业输送场景。

Thinking

设计思路

这里说明为什么这样做,而不是只列出做了哪些动作。

五层分层的本质:让变化只发生在一层

养老行业后端由 likeadmin 底座 + 自研 jjt 域拼成,字段命名、金额单位、区划编码各处不一。若页面直接调接口,一次字段变动就要改几十个页面。五层分层把「变化」锁进 normalize 与 api 两层:后端改字段只动 normalize,换接口只动 api,页面永远只见业务域方法——关注点分离不是审美,是维护成本。

健壮性基建优先于业务功能

报名、提现、就业意向都是「一次点击 = 一次真实业务后果」的写操作。所以先把三件事做扎实:登录态自愈(过期不打断)、request_id 幂等(手抖弱网不重复)、normalize 归一(字段不错配)。这三层基建一次写好,上面每个业务域都自动继承——不用每个页面各写一遍防重与容错。

多角色不是权限开关,是隔离协同

学员、推荐官、用人单位在同一个 App 里,数据必须既协同又隔离:推荐官能看推荐记录但看不到别人的佣金,企业能捞人才但只见脱敏视图。canEnterRole 前端门控 + 后端项目授权校验双保险,审核状态机 reviewing→supplement→passed/rejected 让「谁能进哪个角色」有可追溯的流转。

隐私脱敏是合规红线,不是可选项

平台握着大量姓名 / 手机 / 身份证 PII。privacy 工具统一做脱敏(张*梅 / 手机号 / 身份证),人才库与推荐记录只返回脱敏视图;关键操作接三要素 + 人脸实名核验(webview 承载)。个人信息合规在养老这类政企共建项目里是硬约束。

Mock 优先让前后端真正并行

内置带权限门控的完整 Mock 服务层,useMock 一键切换真/假数据。前端不等后端就能联调页面与交互,后端接口稳定后无缝切真数据——迭代提速的同时,也顺便把「接口契约」在 Mock 里写了一遍,联调时对照即可。

Result

交付与结果

交付内容
  • 三端一体:微信小程序(C 端主入口)+ PC 营销官网(jiangjiangtong.cn,已上线)+ Vue3 + TS 后台管理
  • 小程序端自研五层服务架构 config→http→auth→api→normalize→mock,页面与网络/鉴权彻底解耦
  • 登录态自愈:wx.login→mnpLogin 换 token 落盘、单例 Promise 去重并发登录、401 自动静默重登并重放原请求
  • 写操作 request_id 幂等 + normalize 响应归一化(双命名 / 金额分制 / 区划映射 / 薪资解析)
  • 多角色 RBAC 审核工作流 + 分销奖励结算状态机 + 隐私脱敏 + 三要素人脸实名(webview 承载)
项目结果
  • 打通「报名 → 集训 → 考证 → 推荐官分销 → 岗位推荐 → 就业意向 → 在岗跟踪 → 升段复训」全链路闭环,替代割裂流程
  • 一个微信账号可拥有学员 / 推荐官 / 用人单位三重身份,申请—审核—切换全流程隔离协同
  • 登录态自愈让 token 过期用户无感:不弹登录页、不丢当前操作;并发接口不重复登录
  • request_id 幂等 + normalize 归一化:杜绝重复报名 / 重复发奖 / 重复提现,联调返工与字段错配类问题大幅下降
  • 沉淀可复用的小程序服务分层与登录 / 幂等 / 脱敏基建,后续同类项目可直接复用