云起云市场_国内正版独立SaaS抖音QQ微信百度支付宝小程序软件应用交易服务市场商店平台

 找回密码
 立即注册
查看: 52.7K|回复: 9

九宫性格能量测试系统源码 - 全栈开源项目 | 144题专业性...

[复制链接]

九宫性格能量测试系统源码 - 全栈开源项目 | 144题专业性...

[复制链接]
九型人格动物插画广告图生成 (1).jpg
  1. 九宫性格能量测试系统源码 - 全栈开源项目 | 144题专业性格测评平台
复制代码

  1. ---

  2. ## 项目概述

  3. **九宫性格能量测试系统**是一个基于九型人格理论的在线性格测评平台,采用前后端分离架构,包含H5移动端用户系统和Web管理后台。系统通过144道二选一选择题,运用独特的九宫矩阵算法(3×3维度),计算用户的性格能量分布,生成详细的性格分析报告。


  4. ---

  5. ## 核心功能模块

  6. ### 一、用户认证系统(auth.js)

  7. #### 1. 手机号+密码登录
  8. - 接口:`POST /api/auth/login`
  9. - 参数:phone(手机号)、password(密码)
  10. - 流程:
  11.   - 验证手机号格式(正则:/^1[3-9]\d{9}$/)
  12.   - 查询用户记录
  13.   - bcrypt比对密码哈希值
  14.   - 生成JWT Token(有效期配置在.env中)
  15.   - 返回用户信息和Token

  16. #### 2. 手机号+验证码登录
  17. - 接口:`POST /api/auth/sms-login`
  18. - 参数:phone、code(6位验证码)
  19. - 特点:
  20.   - 自动注册新用户(首次登录时创建用户记录)
  21.   - 短信验证码功能预留接口(需接入阿里云/腾讯云短信服务)
  22.   - 开发环境返回验证码便于调试

  23. #### 3. 用户注册
  24. - 接口:`POST /api/auth/register`
  25. - 参数:phone、password、nickname(可选)
  26. - 流程:
  27.   - 验证手机号唯一性
  28.   - bcrypt加密密码(salt rounds: 10)
  29.   - 自动生成昵称("用户" + 手机后4位)
  30.   - 创建用户并返回Token

  31. #### 4. 微信登录
  32. - 接口:`POST /api/auth/wechat-login`
  33. - 参数:code(微信登录凭证)
  34. - 流程:
  35.   - 调用微信API获取openid和session_key
  36.   - 根据openid查找或创建用户
  37.   - 生成JWT Token
  38.   - 支持微信小程序场景

  39. #### 5. 发送短信验证码
  40. - 接口:`POST /api/auth/send-sms`
  41. - 参数:phone
  42. - 功能:
  43.   - 生成6位随机验证码
  44.   - 验证手机号格式
  45.   - 预留短信服务商接口(TODO标记)
  46.   - 开发环境直接返回验证码

  47. ---

  48. ### 二、测试答题系统(test.js)

  49. #### 1. 开始测试
  50. - 接口:`POST /api/test/start`
  51. - 需要认证:是(authUser中间件)
  52. - 参数:testType(测试类型:activation_code/wechat_pay)
  53. - 功能:
  54.   - 创建测试记录(test_records表)
  55.   - 初始状态为0(进行中)
  56.   - 返回测试记录ID
  57.   - 记录开始时间

  58. #### 2. 提交答案
  59. - 接口:`POST /api/test/answer`
  60. - 需要认证:是
  61. - 参数:
  62.   - testRecordId(测试记录ID)
  63.   - questionId(题目ID)
  64.   - questionNo(题号)
  65.   - answer(答案:A或B)
  66. - 特点:
  67.   - 兼容snake_case和camelCase参数命名
  68.   - 逐题保存答案到test_answers表
  69.   - 实时记录答题进度
  70.   - 不立即计算结果,等待全部完成

  71. #### 3. 完成测试并提交
  72. - 接口:`POST /api/test/submit`
  73. - 需要认证:是
  74. - 参数:testRecordId
  75. - 核心流程:
  76.   - 验证是否答完144道题(answers.length < 144则拒绝)
  77.   - 调用九宫性格计算器(nineGridCalculator.calculate)
  78.   - 更新测试记录状态为1(已完成)
  79.   - 计算答题时长(duration = end_time - start_time)
  80.   - 保存测试结果到test_results表(JSON格式)
  81.   - 返回完整的性格分析结果

  82. #### 4. 获取测试结果
  83. - 接口:`GET /api/test/result/:testRecordId`
  84. - 需要认证:是
  85. - 权限控制:只能查看自己的测试结果(WHERE user_id = ?)
  86. - 返回数据:
  87.   - record:测试记录信息(时长、状态等)
  88.   - result.matrix:3×3矩阵数据
  89.   - result.personality:9种性格类型排序列表
  90.   - result.chart:柱状图数据(按九型顺序)
  91. - 特殊处理:
  92.   - mysql2自动解析JSON字段为对象
  93.   - 智能判断数据类型(object则直接使用,string则JSON.parse)

  94. #### 5. 获取答题进度
  95. - 接口:`GET /api/test/progress/:testRecordId`
  96. - 需要认证:是
  97. - 返回:
  98.   - answered:已答题数量
  99.   - total:总题数(144)
  100.   - progress:进度百分比(0-100)

  101. #### 6. 生成分享链接
  102. - 接口:`GET /api/test/share/:testRecordId`
  103. - 需要认证:是
  104. - 功能:生成可分享的测试结果URL

  105. ---

  106. ### 三、支付与激活码系统(payment.js)

  107. #### 1. 创建订单
  108. - 接口:`POST /api/payment/create`
  109. - 需要认证:是
  110. - 功能:
  111.   - 生成订单号(格式:JG + 时间戳 + 随机字符串)
  112.   - 从配置读取测试价格(默认29.90元)
  113.   - 创建待支付订单(status=0)
  114.   - 返回订单ID和金额

  115. #### 2. 微信支付
  116. - 接口:`POST /api/payment/wechat`
  117. - 需要认证:是
  118. - 参数:orderId
  119. - 流程:
  120.   - 验证订单归属和状态
  121.   - TODO:调用微信支付统一下单API
  122.   - 返回支付参数(appId、timeStamp、nonceStr、package、paySign)
  123.   - 当前为示例实现,需配置真实微信商户参数

  124. #### 3. 支付回调
  125. - 接口:`POST /api/payment/notify`
  126. - 无需认证(微信服务器调用)
  127. - 功能:
  128.   - TODO:验证微信支付签名
  129.   - 更新订单状态为1(已支付)
  130.   - 记录支付时间和交易号
  131.   - 返回SUCCESS/FAIL给微信服务器

  132. #### 4. 验证激活码
  133. - 接口:`POST /api/payment/verify-code`
  134. - 需要认证:是
  135. - 参数:code(激活码)
  136. - 流程:
  137.   - 查询激活码(status=0未使用)
  138.   - 检查是否过期(expire_time)
  139.   - 更新激活码状态为1(已使用)
  140.   - 记录使用者ID和使用时间
  141.   - 返回canTest=true

  142. #### 5. 获取订单列表
  143. - 接口:`GET /api/payment/orders`
  144. - 需要认证:是
  145. - 参数:page、limit(分页)
  146. - 返回:当前用户的订单列表(按创建时间倒序)

  147. #### 6. 获取订单详情
  148. - 接口:`GET /api/payment/orders/:id`
  149. - 需要认证:是
  150. - 权限控制:只能查看自己的订单

  151. ---

  152. ### 四、管理员系统(admin.js)

  153. #### 1. 管理员登录
  154. - 接口:`POST /api/admin/login`
  155. - 参数:username、password
  156. - 流程:
  157.   - bcrypt验证密码
  158.   - 更新最后登录时间
  159.   - 生成管理员Token(adminId)
  160.   - 记录操作日志(operation_logs表)
  161.   - 返回角色信息(admin/operator)

  162. #### 2. 退出登录
  163. - 接口:`POST /api/admin/logout`
  164. - 需要认证:是(authAdmin中间件)
  165. - 记录登出日志

  166. #### 3. 数据概览(Dashboard)
  167. - 接口:`GET /api/admin/dashboard`
  168. - 需要认证:是
  169. - 返回数据:
  170.   - 今日统计:新增用户数、测试次数、订单数、收入
  171.   - 总计数据:累计用户、测试、订单、总收入
  172.   - 近7天趋势:每日新增用户折线图数据
  173. - SQL优化:使用子查询一次性获取所有统计数据

  174. #### 4. 用户管理

  175. **用户列表:**
  176. - 接口:`GET /api/admin/users`
  177. - 参数:page、limit、keyword(搜索关键词)
  178. - 功能:
  179.   - 支持昵称/手机号模糊搜索
  180.   - 分页查询
  181.   - 返回用户基本信息

  182. **用户详情:**
  183. - 接口:`GET /api/admin/users/:id`
  184. - 返回:
  185.   - 用户基本信息
  186.   - 测试记录数量
  187.   - 订单数量
  188.   - 最近5条测试记录

  189. **更新用户状态:**
  190. - 接口:`PUT /api/admin/users/:id/status`
  191. - 需要权限:admin角色(requireRole中间件)
  192. - 参数:status(1启用/0禁用)
  193. - 记录操作日志

  194. #### 5. 题目管理

  195. **题目列表:**
  196. - 接口:`GET /api/admin/questions`
  197. - 参数:page、limit(默认20条/页)
  198. - 排序:按题号升序(question_no ASC)

  199. **添加题目:**
  200. - 接口:`POST /api/admin/questions`
  201. - 需要权限:admin角色
  202. - 参数:
  203.   - question_no(题号)
  204.   - option_a、option_a_type(选项A内容及类型)
  205.   - option_b、option_b_type(选项B内容及类型)
  206. - 默认状态:1(启用)

  207. **更新题目:**
  208. - 接口:`PUT /api/admin/questions/:id`
  209. - 需要权限:admin角色
  210. - 可修改:选项内容、类型、状态

  211. **删除题目:**
  212. - 接口:`DELETE /api/admin/questions/:id`
  213. - 需要权限:admin角色
  214. - 物理删除(非软删除)

  215. #### 6. 订单管理

  216. **订单列表:**
  217. - 接口:`GET /api/admin/orders`
  218. - 参数:page、limit、status(筛选状态)
  219. - 关联查询:LEFT JOIN users表获取用户昵称和手机号
  220. - 排序:按创建时间倒序

  221. **订单详情:**
  222. - 接口:`GET /api/admin/orders/:id`
  223. - 返回:
  224.   - 订单完整信息
  225.   - 用户信息(昵称、头像、手机号)
  226.   - 关联的激活码信息(如果有)

  227. #### 7. 激活码管理

  228. **激活码列表:**
  229. - 接口:`GET /api/admin/codes`
  230. - 参数:page、limit、status
  231. - 关联查询:LEFT JOIN users表显示使用者昵称
  232. - 排序:按创建时间倒序

  233. **生成激活码:**
  234. - 接口:`POST /api/admin/codes`
  235. - 需要权限:admin角色
  236. - 参数:
  237.   - count(生成数量,默认1)
  238.   - expire_time(过期时间,可选)
  239. - 功能:
  240.   - 批量生成激活码(格式:JG + 时间戳 + 随机6位大写)
  241.   - 循环插入数据库
  242.   - 返回生成的激活码列表
  243.   - 记录操作日志

  244. #### 8. 系统设置

  245. **获取设置:**
  246. - 接口:`GET /api/admin/settings`
  247. - 返回:键值对形式的配置项
  248. - 包括:网站名称、测试价格、测试说明、微信配置等

  249. **更新设置:**
  250. - 接口:`PUT /api/admin/settings`
  251. - 需要权限:admin角色
  252. - 参数:settings对象(key-value)
  253. - 功能:
  254.   - 批量更新配置
  255.   - INSERT ... ON DUPLICATE KEY UPDATE(存在则更新,不存在则插入)
  256.   - 记录操作日志

  257. #### 9. 操作日志

  258. **日志列表:**
  259. - 接口:`GET /api/admin/logs`
  260. - 参数:page、limit(默认20条/页)
  261. - 关联查询:LEFT JOIN admins表显示操作人用户名
  262. - 排序:按创建时间倒序
  263. - 记录内容:管理员ID、操作类型、模块、内容、IP地址

  264. ---

  265. ### 五、九宫性格核心算法(nineGridCalculator.js)

  266. 这是系统的核心业务逻辑,实现了独特的九宫性格能量计算模型。

  267. #### 1. 九宫类型映射体系

  268. 系统定义了**36种细分类型**,每个类型由三个维度组合而成:

  269. **维度一:动机(Motivation)**
  270. - 控制(Control)
  271. - 理想(Ideal)
  272. - 认同(Identity)

  273. **维度二:方式(Approach)**
  274. - 靠近(Approach)
  275. - 抽离(Detached)
  276. - 对抗(Oppose)

  277. **维度三:九型编号(Type 1-9)**

  278. 例如:
  279. - `type1_approach_control`:第1型 + 靠近 + 控制
  280. - `type8_oppose_control`:第8型 + 对抗 + 控制
  281. - `type9_detached_ideal`:第9型 + 抽离 + 理想

  282. #### 2. 性格动物映射

  283. 系统将9种类型对应为动物形象,便于用户理解:
  284. - 第1型:老虎(完美主义者)
  285. - 第2型:海豚(助人者)
  286. - 第3型:蜜蜂(成就者)
  287. - 第4型:八爪(浪漫主义者)
  288. - 第5型:企鹅(观察者)
  289. - 第6型:考拉(忠诚者)
  290. - 第7型:孔雀(享乐者)
  291. - 第8型:狮子(挑战者)
  292. - 第9型:鸽子(和平者)

  293. #### 3. 计算流程

  294. **输入:** 用户答案数组(144个答案,每个包含question_id和answer)

  295. **步骤1:初始化分数**
  296. ```javascript
  297. matrixScores = {
  298.   控制: { 靠近: 0, 抽离: 0, 对抗: 0 },
  299.   理想: { 靠近: 0, 抽离: 0, 对抗: 0 },
  300.   认同: { 靠近: 0, 抽离: 0, 对抗: 0 }
  301. }
  302. typeScores = { 1: 0, 2: 0, ..., 9: 0 }
  303. ```

  304. **步骤2:遍历答案统计**
  305. 对于每道题:
  306. - 根据question_id查询题目信息
  307. - 根据用户选择(A或B)获取对应的type字段
  308. - 从typeMap解析出type、approach、motivation
  309. - matrixScores[motivation][approach]++
  310. - typeScores[type]++

  311. **步骤3:计算矩阵数据**
  312. 生成3×3矩阵,包含:
  313. - 每个单元格的分数
  314. - 每行合计(控制合计、理想合计、认同合计)
  315. - 每列合计(靠近合计、抽离合计、对抗合计)
  316. - 总计(应为144)

  317. **步骤4:计算性格能量**
  318. - 计算基准值:baseValue = totalScore / 9
  319. - 计算每种类型的比率:ratio = score / baseValue
  320. - 生成personality数组,包含:type、name(动物名)、score、ratio
  321. - 按分数降序排序
  322. - 添加排名(rank 1-9)

  323. **步骤5:生成图表数据**
  324. - 按九型顺序(1-9)生成chart数组
  325. - 用于ECharts柱状图展示

  326. **输出:**
  327. ```javascript
  328. {
  329.   matrix: { /* 3×3矩阵数据 */ },
  330.   personality: [ /* 9种类型排序列表 */ ],
  331.   chart: [ /* 柱状图数据 */ ]
  332. }
  333. ```

  334. ---

  335. ## 数据库设计

  336. ### 核心表结构(10张表)

  337. #### 1. users(用户表)
  338. - 主键:id
  339. - 唯一索引:openid、phone
  340. - 字段:昵称、头像、手机号、密码(bcrypt)、状态
  341. - 支持多种登录方式(微信openid、手机号)

  342. #### 2. questions(题目表)
  343. - 主键:id
  344. - 唯一索引:question_no(1-144)
  345. - 字段:题号、选项A内容及类型、选项B内容及类型、状态
  346. - 每题两个选项分别对应不同的九宫类型

  347. #### 3. test_records(测试记录表)
  348. - 主键:id
  349. - 索引:user_id、status、created_at
  350. - 字段:用户ID、测试类型、状态(0进行中/1已完成)、开始/结束时间、答题时长
  351. - 一次测试一条记录

  352. #### 4. test_answers(测试答案表)
  353. - 主键:id
  354. - 索引:test_record_id、question_id、question_no
  355. - 字段:测试记录ID、题目ID、题号、答案(A/B)
  356. - 144条答案对应一条测试记录

  357. #### 5. test_results(测试结果表)
  358. - 主键:id
  359. - 唯一索引:test_record_id(一对一关系)
  360. - 字段:matrix_data(JSON)、personality_data(JSON)、chart_data(JSON)
  361. - 使用MySQL 5.7+的JSON类型,支持自动解析

  362. #### 6. activation_codes(激活码表)
  363. - 主键:id
  364. - 唯一索引:code
  365. - 字段:激活码、状态(0未使用/1已使用)、使用者ID、使用时间、过期时间
  366. - 支持批量生成和有效期控制

  367. #### 7. orders(订单表)
  368. - 主键:id
  369. - 唯一索引:order_no
  370. - 索引:user_id、status
  371. - 字段:订单号、用户ID、金额、状态(0待支付/1已支付/2已取消)、支付时间、微信交易号

  372. #### 8. admins(管理员表)
  373. - 主键:id
  374. - 唯一索引:username
  375. - 字段:用户名、密码(bcrypt)、角色(admin/operator)、状态、最后登录时间
  376. - 支持权限分级

  377. #### 9. operation_logs(操作日志表)
  378. - 主键:id
  379. - 索引:admin_id、created_at
  380. - 字段:管理员ID、操作类型、模块、内容、IP地址
  381. - 记录所有敏感操作

  382. #### 10. settings(系统设置表)
  383. - 主键:id
  384. - 唯一索引:key
  385. - 字段:设置键、值、描述
  386. - 动态配置系统参数

  387. ### 视图(Views)

  388. #### v_user_test_stats
  389. - 用户测试统计视图
  390. - 字段:用户ID、昵称、手机号、测试次数、最后测试时间
  391. - GROUP BY聚合查询

  392. #### v_daily_stats
  393. - 每日数据统计视图
  394. - 字段:日期、新增用户数、测试次数、收入
  395. - 用于Dashboard趋势图

  396. ---

  397. ## 前端页面功能

  398. ### H5移动端(7个页面)

  399. #### 1. Home.vue(首页/能量评估)
  400. - 功能:
  401.   - 展示测试介绍和价格(¥29.90)
  402.   - 激活码输入框
  403.   - "开始评估"按钮
  404.   - 底部Tabbar导航(能量评估、我的)
  405. - 交互:
  406.   - 点击"开始评估"检查登录状态
  407.   - 未登录跳转登录页
  408.   - 已登录创建测试记录并跳转答题页

  409. #### 2. Login.vue(登录页)
  410. - 功能:
  411.   - 手机号输入
  412.   - 密码输入
  413.   - 登录按钮
  414.   - "去注册"链接
  415. - 样式:纯色背景#1989fa,无渐变

  416. #### 3. Register.vue(注册页)
  417. - 功能:
  418.   - 手机号、密码、确认密码输入
  419.   - 昵称输入(可选)
  420.   - 注册按钮
  421.   - "去登录"链接

  422. #### 4. Test.vue(答题页)
  423. - 功能:
  424.   - 显示当前题号(1/144)
  425.   - 进度条展示
  426.   - 题目内容
  427.   - 选项A和选项B按钮
  428.   - 上一题/下一题导航
  429. - 交互:
  430.   - 选择答案后自动保存
  431.   - 实时更新进度
  432.   - 答完144题自动提交

  433. #### 5. Result.vue(结果页)
  434. - 功能:
  435.   - 九宫性格能量柱状图(ECharts)
  436.   - 主要性格类型展示
  437.   - 9种类型分数排名列表
  438.   - 3×3矩阵数据表格
  439.   - "重新测试"按钮
  440. - 技术:
  441.   - nextTick确保DOM更新后渲染图表
  442.   - 窗口resize自适应
  443.   - 支持路径参数和查询参数两种方式访问

  444. #### 6. Profile.vue(个人中心)
  445. - 功能:
  446.   - 用户头像(van-icon图标)
  447.   - 昵称和手机号显示
  448.   - "编辑资料"入口
  449.   - "修改密码"入口
  450.   - 底部Tabbar导航
  451. - 状态:
  452.   - 未登录显示"点击登录"提示
  453.   - 已登录显示用户信息

  454. #### 7. Records.vue(测试记录)
  455. - 功能:
  456.   - 历史测试记录列表
  457.   - 每条记录显示:测试时间、时长、主要性格
  458.   - 点击查看结果按钮

  459. ### Admin管理后台(8个页面)

  460. #### 1. Login.vue(管理员登录)
  461. - 简洁的登录表单
  462. - 用户名和密码输入
  463. - Element Plus组件

  464. #### 2. Layout.vue(布局框架)
  465. - 侧边栏菜单导航
  466. - 顶部Header
  467. - 主要内容区域
  468. - 退出登录按钮

  469. #### 3. Dashboard.vue(数据概览)
  470. - 今日数据卡片:新增用户、测试次数、订单数、收入
  471. - 总计数据卡片
  472. - 近7天用户增长趋势图(ECharts折线图)
  473. - 使用Element Plus图标(替换emoji)

  474. #### 4. Users.vue(用户管理)
  475. - 用户列表表格
  476. - 搜索框(昵称/手机号)
  477. - 分页组件
  478. - 操作按钮:查看详情、启用/禁用
  479. - 用户详情抽屉

  480. #### 5. Questions.vue(题目管理)
  481. - 题目列表表格
  482. - 分页展示(20条/页)
  483. - 添加题目对话框
  484. - 编辑题目对话框
  485. - 删除确认
  486. - 显示题号、选项A、选项B、状态

  487. #### 6. Orders.vue(订单管理)
  488. - 订单列表表格
  489. - 状态筛选(待支付/已支付/已取消)
  490. - 关联用户信息显示
  491. - 订单详情查看
  492. - 分页组件

  493. #### 7. Codes.vue(激活码管理)
  494. - 激活码列表表格
  495. - 状态筛选(未使用/已使用)
  496. - 批量生成对话框(输入数量和过期时间)
  497. - 显示使用者信息
  498. - 复制激活码功能

  499. #### 8. Settings.vue(系统设置)
  500. - 表单配置项
  501. - 网站名称、测试价格
  502. - 测试说明文案
  503. - 微信配置(AppID、密钥等)
  504. - 保存按钮

  505. ---

  506. ## 安全机制

  507. ### 1. 认证授权
  508. - **JWT Token**:用户和管理员分别使用userId和adminId签发
  509. - **中间件验证**:
  510.   - authUser:验证用户Token
  511.   - authAdmin:验证管理员Token
  512.   - requireRole:检查管理员角色权限
  513. - **Token过期**:配置在.env中(默认7天)

  514. ### 2. 密码安全
  515. - **bcrypt加密**:salt rounds设置为10
  516. - **不存储明文**:数据库中只存哈希值
  517. - **登录验证**:使用bcrypt.compare比对

  518. ### 3. SQL注入防护
  519. - **参数化查询**:所有SQL使用占位符(?)
  520. - **空字符串检查**:防止parseInt("")返回NaN导致SQL错误
  521. - **输入验证**:手机号正则、必填字段检查

  522. ### 4. 权限控制
  523. - **路由守卫**:前端路由需要登录才能访问
  524. - **后端鉴权**:所有敏感接口需要Token
  525. - **角色权限**:部分操作仅限admin角色(如删除题目、生成激活码)

  526. ### 5. 操作审计
  527. - **日志记录**:所有管理员操作记录到operation_logs表
  528. - **IP追踪**:记录操作来源IP
  529. - **时间戳**:精确到秒的操作时间

  530. ---

  531. ## 业务流程

  532. ### 用户测试完整流程

  533. ```
  534. 1. 用户访问首页 → 点击"开始评估"
  535.    ↓
  536. 2. 检查登录状态 → 未登录跳转登录页
  537.    ↓
  538. 3. 登录/注册 → 获取JWT Token
  539.    ↓
  540. 4. 选择支付方式:
  541.    ├─ 输入激活码 → POST /api/payment/verify-code
  542.    └─ 付费购买 → POST /api/payment/create → 微信支付
  543.    ↓
  544. 5. 开始测试 → POST /api/test/start → 获取testRecordId
  545.    ↓
  546. 6. 答题过程(144题):
  547.    - 逐题选择A或B
  548.    - POST /api/test/answer 保存答案
  549.    - 实时更新进度条
  550.    ↓
  551. 7. 完成答题 → POST /api/test/submit
  552.    - 验证144题全部完成
  553.    - 调用nineGridCalculator计算结果
  554.    - 保存matrix、personality、chart到数据库
  555.    ↓
  556. 8. 查看结果 → GET /api/test/result/:id
  557.    - 显示柱状图
  558.    - 显示性格排名
  559.    - 显示矩阵数据
  560.    ↓
  561. 9. 可选操作:
  562.    - 重新测试
  563.    - 分享结果
  564.    - 查看历史记录
  565. ```

  566. ### 管理员操作流程

  567. ```
  568. 1. 管理员登录 → POST /api/admin/login
  569.    ↓
  570. 2. 进入Dashboard → 查看今日数据和趋势图
  571.    ↓
  572. 3. 日常管理:
  573.    ├─ 用户管理:查看用户列表、禁用违规用户
  574.    ├─ 题目管理:添加/编辑/删除测试题目
  575.    ├─ 订单管理:查看支付订单、处理异常
  576.    ├─ 激活码管理:批量生成激活码、设置有效期
  577.    ├─ 系统设置:修改测试价格、更新文案
  578.    └─ 操作日志:审计管理员行为
  579. ```

  580. ---

  581. ## 特色功能

  582. ### 1. 双轨支付系统
  583. - **激活码模式**:适合企业批量采购、线下销售
  584. - **在线支付**:集成微信支付,支持个人用户购买

  585. ### 2. 智能九宫算法
  586. - **3×3矩阵模型**:突破传统九型人格的单一维度
  587. - **36种细分类型**:更精准的性格刻画
  588. - **能量比率计算**:相对值而非绝对值,更具参考性

  589. ### 3. 完善的测试管理
  590. - **断点续答**:测试记录保存,可随时继续
  591. - **进度追踪**:实时显示答题进度
  592. - **历史记录**:用户可查看历次测试结果对比

  593. ### 4. 数据可视化
  594. - **ECharts柱状图**:直观展示9种类型能量分布
  595. - **矩阵表格**:3×3网格展示动机×方式交叉分析
  596. - **Dashboard统计**:多维度数据汇总和趋势分析

  597. ### 5. 灵活的配置系统
  598. - **动态价格**:可在后台修改测试价格
  599. - **自定义文案**:测试说明、评估方法可配置
  600. - **微信配置**:支持切换不同小程序/公众号


  601. ---

  602. ## 总结

  603. **九宫性格能量测试系统**是一个功能完整、架构清晰的在线测评平台,具有以下特点:

  604. ✅ **技术先进**:现代化技术栈  
  605. ✅ **算法独特**:3×3九宫矩阵模型,36种细分类型  
  606. ✅ **功能全面**:用户系统、测试答题、支付激活、管理后台  
  607. ✅ **安全可靠**:JWT认证、bcrypt加密、SQL防注入、操作审计  
  608. ✅ **体验优良**:移动端适配、数据可视化、流畅交互  
  609. ✅ **易于扩展**:模块化设计、RESTful API、配置化管理  

  610. 系统适合用于:
  611. - 企业员工性格测评
  612. - 心理咨询机构工具
  613. - 教育培训行业应用
  614. - 个人自我认知探索
复制代码
13423653958289079.jpeg

游客,本帖隐藏的内容需要积分高于 10000000 才可浏览,您当前积分为 0




上一篇:城市测评系统源码 - 智能推荐理想居住城市
下一篇:抖音小游戏源码 - 消消乐 | 含激励广告+成就系统 | 开箱即...
回复

使用道具 举报

xyq*** 2026-5-18 21:48:26 | 显示全部楼层
已加客服
回复

使用道具 举报

aoyed*** 2026-5-18 22:00:13 | 显示全部楼层
支持!!!
回复

使用道具 举报

1985*** 2026-5-19 07:48:15 | 显示全部楼层
顶一下!!
回复

使用道具 举报

hjq*** 2026-5-19 08:41:46 | 显示全部楼层
你历害!!
回复

使用道具 举报

10315*** 2026-5-19 16:43:30 | 显示全部楼层
沙发!!
回复

使用道具 举报

sdp*** 2026-5-19 17:09:16 | 显示全部楼层
非常好!!
回复

使用道具 举报

qwe*** 2026-5-20 09:46:37 | 显示全部楼层
支持!!!
回复

使用道具 举报

你好棒!!
回复

使用道具 举报

shama*** 2026-5-23 05:06:26 | 显示全部楼层
不错!!
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

加载中0.146471

QQ|小黑屋|云起SaaS | 鲁ICP备15033450号-1 劰载中...|网站地图

GMT+8, 2026-6-20 04:39 , Processed in 0.205649 second(s), 29 queries .

Copyright © 菏泽云起网络科技有限公司.

快速回复 返回顶部 返回列表