From e672ad4eded54ed845392e20104b1fff8502dca5 Mon Sep 17 00:00:00 2001 From: Ghost <106998207@qq.com> Date: Tue, 31 Mar 2026 15:26:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8F=8C=E7=AB=AF=E9=A2=98=E5=BA=93?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E4=B8=8E=20PDP/DISC=20=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E6=96=87=E6=A1=88=E3=80=81=E6=B5=8B=E8=AF=84=20API=20=E4=B8=8E?= =?UTF-8?q?=E4=BC=81=E6=B5=8B=E4=B8=8A=E4=B8=8B=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、修复了测评/结果页与个人中心展示不一致问题;废弃独立 questions.js,统一使用 questionBank;结果格式与详情解析相关问题。 2、新增了 PdpDiscResultText(PDP+DISC 双类型摘要文案)、抖音 questionBank 与 enterpriseContext;扩展 api/Test 与路由、管理端 Order 与 ExtractsTestResults。 3、优化了 resultFormat 与 questionBank 组织方式、UserDetailDialog;移除不再使用的 mbti_test_results 恢复 SQL/脚本。 Made-with: Cursor --- admin/src/components/UserDetailDialog.vue | 4 +- api/app/common/PdpDiscResultText.php | 250 ++++++++++++++++++ api/app/controller/admin/Order.php | 9 + .../admin/concern/ExtractsTestResults.php | 10 + api/app/controller/api/Test.php | 183 ++++++++++++- .../_gen_restore_mbti_test_results.py | 38 --- .../restore_mbti_test_results_1_145.sql | 155 ----------- api/route/api.php | 2 + douyin-miniprogram/pages/profile/index.js | 34 ++- douyin-miniprogram/pages/profile/index.ttml | 36 +-- douyin-miniprogram/pages/profile/index.ttss | 8 + douyin-miniprogram/pages/result/disc.js | 12 +- douyin-miniprogram/pages/result/disc.ttml | 2 +- douyin-miniprogram/pages/result/pdp.js | 20 +- douyin-miniprogram/pages/result/pdp.ttml | 2 +- douyin-miniprogram/pages/test/disc.js | 41 ++- douyin-miniprogram/pages/test/disc.ttml | 5 + douyin-miniprogram/pages/test/disc.ttss | 13 + douyin-miniprogram/pages/test/mbti.js | 51 ++-- douyin-miniprogram/pages/test/mbti.ttml | 5 + douyin-miniprogram/pages/test/mbti.ttss | 13 + douyin-miniprogram/pages/test/pdp.js | 41 ++- douyin-miniprogram/pages/test/pdp.ttml | 5 + douyin-miniprogram/pages/test/pdp.ttss | 13 + douyin-miniprogram/utils/enterpriseContext.js | 44 +++ douyin-miniprogram/utils/questionBank.js | 98 +++++++ douyin-miniprogram/utils/questions.js | 117 -------- douyin-miniprogram/utils/resultFormat.js | 196 ++++++++++++-- miniprogram/app.js | 4 +- miniprogram/pages/profile/index.js | 37 ++- miniprogram/pages/profile/index.wxml | 36 +-- miniprogram/pages/profile/index.wxss | 9 + miniprogram/pages/result/disc.js | 12 +- miniprogram/pages/result/disc.wxml | 2 +- miniprogram/pages/result/pdp.js | 20 +- miniprogram/pages/result/pdp.wxml | 2 +- miniprogram/pages/test/disc.js | 41 ++- miniprogram/pages/test/disc.wxml | 5 + miniprogram/pages/test/disc.wxss | 13 + miniprogram/pages/test/mbti.js | 51 ++-- miniprogram/pages/test/mbti.wxml | 5 + miniprogram/pages/test/mbti.wxss | 13 + miniprogram/pages/test/pdp.js | 41 ++- miniprogram/pages/test/pdp.wxml | 5 + miniprogram/pages/test/pdp.wxss | 13 + miniprogram/utils/questionBank.js | 68 +++-- miniprogram/utils/questions.js | 117 -------- miniprogram/utils/resultFormat.js | 181 ++++++++++++- 48 files changed, 1455 insertions(+), 627 deletions(-) create mode 100644 api/app/common/PdpDiscResultText.php delete mode 100644 api/database/migrations/_gen_restore_mbti_test_results.py delete mode 100644 api/database/migrations/restore_mbti_test_results_1_145.sql create mode 100644 douyin-miniprogram/utils/enterpriseContext.js create mode 100644 douyin-miniprogram/utils/questionBank.js delete mode 100644 douyin-miniprogram/utils/questions.js delete mode 100644 miniprogram/utils/questions.js diff --git a/admin/src/components/UserDetailDialog.vue b/admin/src/components/UserDetailDialog.vue index f62979d..72b3e91 100644 --- a/admin/src/components/UserDetailDialog.vue +++ b/admin/src/components/UserDetailDialog.vue @@ -40,10 +40,10 @@
{{ shortOrDash(user.mbtiType) }}
-
{{ shortOrDash(user.pdpType, 4) }}
+
{{ shortOrDash(user.pdpType, 16) }}
-
{{ shortOrDash(user.discType, 3) }}
+
{{ shortOrDash(user.discType, 16) }}
diff --git a/api/app/common/PdpDiscResultText.php b/api/app/common/PdpDiscResultText.php new file mode 100644 index 0000000..6648fd9 --- /dev/null +++ b/api/app/common/PdpDiscResultText.php @@ -0,0 +1,250 @@ + '老虎型', + 'Peacock' => '孔雀型', + 'Koala' => '考拉型', + 'Owl' => '猫头鹰型', + 'Chameleon' => '变色龙型', + ]; + + /** + * @param array $data + */ + public static function discTopTwo(array $data): string + { + [$fL, $sL] = self::discResolveTwoLetters($data); + if ($fL !== '' || $sL !== '') { + if ($fL === '') { + return $sL !== '' ? ($sL . '型') : ''; + } + if ($sL === '' || $sL === $fL) { + return $fL . '型'; + } + + return $fL . '+' . $sL . '型'; + } + + return self::discNormalizeLegacyDualDescription($data['description']['type'] ?? null) ?? ''; + } + + /** + * @param array $data + */ + public static function pdpTopTwo(array $data): string + { + [$firstFull, $secondFull] = self::pdpResolveTwoFull($data); + if ($firstFull === '') { + return $secondFull; + } + if ($secondFull === '' || $secondFull === $firstFull) { + return $firstFull; + } + $firstShort = preg_replace('/型$/u', '', $firstFull); + + return $firstShort . '+' . $secondFull; + } + + /** + * @return array{0:string,1:string} DISC 字母 D/I/S/C + */ + private static function discResolveTwoLetters(array $data): array + { + $f = self::discPrimaryLetter($data); + $s = ''; + $sk = $data['secondaryType'] ?? null; + if (is_string($sk) && $sk !== '') { + $u = strtoupper(substr(trim($sk), 0, 1)); + if (in_array($u, ['D', 'I', 'S', 'C'], true)) { + $s = $u; + } + } + $a = ''; + $b = ''; + if (isset($data['scores']) && is_array($data['scores'])) { + [$a, $b] = self::discOrderedLetters($data['scores']); + } + if ($a === '' && $b === '' && isset($data['percentages']) && is_array($data['percentages'])) { + [$a, $b] = self::discOrderedLetters($data['percentages']); + } + if ($f === '' && $a !== '') { + $f = $a; + } + if ($s === '' || $s === $f) { + if ($b !== '' && $b !== $f) { + $s = $b; + } else { + $s = ''; + } + } + + return [$f, $s]; + } + + /** + * 旧数据:「S型 + I型」等 → 「S+I型」 + */ + private static function discNormalizeLegacyDualDescription(?string $desc): ?string + { + if ($desc === null || trim($desc) === '') { + return null; + } + $t = preg_replace('/\s+/u', '', trim($desc)); + $t = str_replace('+', '+', $t); + if (preg_match('/^([DISC])型\+([DISC])型$/iu', $t, $m)) { + return strtoupper($m[1]) . '+' . strtoupper($m[2]) . '型'; + } + if (preg_match('/^([DISC])型$/iu', $t, $m)) { + return strtoupper($m[1]) . '型'; + } + + return null; + } + + /** + * @return array{0:string,1:string} 完整 PDP 类型文案(含「型」) + */ + private static function pdpResolveTwoFull(array $data): array + { + $f = self::pdpPrimaryFull($data); + $s = ''; + $sk = $data['secondaryType'] ?? null; + if (is_string($sk) && $sk !== '') { + $s = self::PDP_EN_TO_CN[$sk] ?? $sk; + } + $aEn = ''; + $bEn = ''; + if (isset($data['scores']) && is_array($data['scores'])) { + [$aEn, $bEn] = self::pdpOrderedKeys($data['scores']); + } + if ($aEn === '' && $bEn === '' && isset($data['percentages']) && is_array($data['percentages'])) { + [$aEn, $bEn] = self::pdpOrderedKeys($data['percentages']); + } + if ($f === '' && $aEn !== '') { + $f = self::PDP_EN_TO_CN[$aEn] ?? $aEn; + } + if ($s === '' || $s === $f) { + if ($bEn !== '') { + $cand = self::PDP_EN_TO_CN[$bEn] ?? $bEn; + if ($cand !== $f) { + $s = $cand; + } + } + } + + return [$f, $s]; + } + + private static function discPrimaryLetter(array $data): string + { + $desc = $data['description']['type'] ?? null; + if (is_string($desc) && $desc !== '') { + $t = trim($desc); + $noXing = preg_replace('/型$/u', '', $t); + if (mb_strlen($noXing) === 1) { + $u = strtoupper($noXing); + if (in_array($u, ['D', 'I', 'S', 'C'], true)) { + return $u; + } + } + } + $dom = $data['dominantType'] ?? null; + if (is_string($dom) && $dom !== '') { + $u = strtoupper(substr(trim($dom), 0, 1)); + if (in_array($u, ['D', 'I', 'S', 'C'], true)) { + return $u; + } + } + $disc = $data['disc'] ?? null; + if (is_string($disc) && $disc !== '') { + $t = trim($disc); + $noXing = preg_replace('/型$/u', '', $t); + if (mb_strlen($noXing) === 1) { + $u = strtoupper($noXing); + if (in_array($u, ['D', 'I', 'S', 'C'], true)) { + return $u; + } + } + } + + return ''; + } + + private static function pdpPrimaryFull(array $data): string + { + $desc = $data['description']['type'] ?? null; + if (is_string($desc) && $desc !== '') { + return trim($desc); + } + $dom = $data['dominantType'] ?? null; + if (is_string($dom) && $dom !== '') { + return self::PDP_EN_TO_CN[$dom] ?? trim($dom); + } + $pdp = $data['pdp'] ?? null; + if (is_string($pdp) && $pdp !== '') { + return trim($pdp); + } + + return ''; + } + + /** + * @param array $scores + * @return array{0:string,1:string} + */ + private static function discOrderedLetters(array $scores): array + { + $allowed = ['D' => true, 'I' => true, 'S' => true, 'C' => true]; + $pairs = []; + foreach ($scores as $k => $v) { + if (!is_string($k) && !is_numeric($k)) { + continue; + } + $ku = strtoupper(substr(trim((string) $k), 0, 1)); + if (!isset($allowed[$ku])) { + continue; + } + $pairs[] = [$ku, (int) $v]; + } + usort($pairs, static function ($a, $b) { + return ($b[1] <=> $a[1]) ?: strcmp($a[0], $b[0]); + }); + $f = $pairs[0][0] ?? ''; + $s = $pairs[1][0] ?? ''; + + return [$f, $s]; + } + + /** + * @param array $scores + * @return array{0:string,1:string} + */ + private static function pdpOrderedKeys(array $scores): array + { + $pairs = []; + foreach ($scores as $k => $v) { + if (!is_string($k)) { + continue; + } + $key = trim($k); + if ($key === '' || !isset(self::PDP_EN_TO_CN[$key])) { + continue; + } + $pairs[] = [$key, (int) $v]; + } + usort($pairs, static function ($a, $b) { + return ($b[1] <=> $a[1]) ?: strcmp($a[0], $b[0]); + }); + $f = $pairs[0][0] ?? ''; + $s = $pairs[1][0] ?? ''; + + return [$f, $s]; + } +} diff --git a/api/app/controller/admin/Order.php b/api/app/controller/admin/Order.php index d97aeff..27ddd0e 100644 --- a/api/app/controller/admin/Order.php +++ b/api/app/controller/admin/Order.php @@ -2,6 +2,7 @@ namespace app\controller\admin; use app\BaseController; +use app\common\PdpDiscResultText; use think\facade\Db; use think\facade\Request; @@ -156,6 +157,10 @@ class Order extends BaseController return (string) ($data['mbtiType'] ?? $data['type'] ?? $data['result'] ?? ''); } if ($type === 'disc') { + $two = PdpDiscResultText::discTopTwo($data); + if ($two !== '') { + return $two; + } $desc = $data['description']['type'] ?? null; if (is_string($desc) && $desc !== '') { return $desc; @@ -166,6 +171,10 @@ class Order extends BaseController return (string) ($data['disc'] ?? ''); } if ($type === 'pdp') { + $two = PdpDiscResultText::pdpTopTwo($data); + if ($two !== '') { + return $two; + } $desc = $data['description']['type'] ?? null; if (is_string($desc) && $desc !== '') { return $desc; diff --git a/api/app/controller/admin/concern/ExtractsTestResults.php b/api/app/controller/admin/concern/ExtractsTestResults.php index 352909d..1211dda 100644 --- a/api/app/controller/admin/concern/ExtractsTestResults.php +++ b/api/app/controller/admin/concern/ExtractsTestResults.php @@ -1,6 +1,8 @@ $id, 'type' => 'disc', 'key' => 'disc_' . $id, 'emoji' => '📊', 'typeName' => 'DISC性格测试', - 'resultText'=> (is_string($discType) || is_numeric($discType) ? (string) $discType : '未知') . '型', + 'resultText'=> $discTxt, 'testTime' => $timeLabel, 'data' => null, ], $paymentFields); break; case 'pdp': - $primary = is_array($data) ? ($data['description']['type'] ?? $data['pdp'] ?? '未知') : '未知'; + $primary = '未知'; + if (is_array($data)) { + $primary = PdpDiscResultText::pdpTopTwo($data); + if ($primary === '') { + $primary = (string) ($data['description']['type'] ?? $data['pdp'] ?? '未知'); + } + } $emoji = (is_array($data) && isset($data['description']['emoji'])) ? $data['description']['emoji'] : '🦁'; $list[] = array_merge([ 'id' => $id, @@ -337,6 +352,36 @@ class Test extends BaseController return array_values(array_unique($allowed)); } + /** + * 解析 test_results.resultData:支持 JSON 字符串、已解码的 array、包在 result 键里的结构 + * + * @param mixed $raw + * @return array + */ + protected function decodeResultDataPayload($raw): array + { + if ($raw === null || $raw === '') { + return []; + } + if (is_array($raw)) { + $data = $raw; + } elseif (is_string($raw)) { + $decoded = json_decode(trim($raw), true); + $data = is_array($decoded) ? $decoded : []; + } else { + return []; + } + if (isset($data['result']) && is_array($data['result'])) { + $inner = $data['result']; + if (isset($inner['percentages']) || isset($inner['scores']) || isset($inner['dominantType']) + || isset($inner['description']) || isset($inner['mbtiType'])) { + $data = array_merge($data, $inner); + } + } + + return $data; + } + /** * 格式化单条记录为 recent 接口返回结构 */ @@ -345,11 +390,7 @@ class Test extends BaseController $testType = $row['testType'] ?? ''; $createdAt = $row['createdAt'] ?? null; $raw = $row['resultData'] ?? ($row['result'] ?? null); - $data = []; - if ($raw !== null && $raw !== '') { - $decoded = json_decode($raw, true); - $data = is_array($decoded) ? $decoded : []; - } + $data = $this->decodeResultDataPayload($raw); $resultText = ''; $emoji = ''; @@ -363,13 +404,19 @@ class Test extends BaseController $typeName = 'MBTI性格'; break; case 'disc': - $dominantType = $data['dominantType'] ?? $data['disc'] ?? '未知'; - $resultText = $dominantType . '型'; - $emoji = '📊'; - $typeName = 'DISC测评'; + $resultText = PdpDiscResultText::discTopTwo($data); + if ($resultText === '') { + $dominantType = $data['dominantType'] ?? $data['disc'] ?? '未知'; + $resultText = (is_string($dominantType) || is_numeric($dominantType) ? (string) $dominantType : '未知') . '型'; + } + $emoji = '📊'; + $typeName = 'DISC测评'; break; case 'pdp': - $resultText = $data['description']['type'] ?? $data['pdp'] ?? '未知'; + $resultText = PdpDiscResultText::pdpTopTwo($data); + if ($resultText === '') { + $resultText = $data['description']['type'] ?? $data['pdp'] ?? '未知'; + } $emoji = $data['description']['emoji'] ?? '🦁'; $typeName = 'PDP行为'; break; @@ -397,6 +444,28 @@ class Test extends BaseController } } + // 小程序「最新测试」:始终附带 resultMeta(便于前端 getTypeOnly;避免仅 resultText 旧格式) + $resultMeta = null; + if ($testType === 'disc') { + $resultMeta = [ + 'scores' => $data['scores'] ?? null, + 'percentages' => $data['percentages'] ?? null, + 'dominantType' => $data['dominantType'] ?? null, + 'secondaryType' => $data['secondaryType'] ?? null, + 'description' => $data['description'] ?? null, + 'disc' => $data['disc'] ?? null, + ]; + } elseif ($testType === 'pdp') { + $resultMeta = [ + 'scores' => $data['scores'] ?? null, + 'percentages' => $data['percentages'] ?? null, + 'dominantType' => $data['dominantType'] ?? null, + 'secondaryType' => $data['secondaryType'] ?? null, + 'description' => $data['description'] ?? null, + 'pdp' => $data['pdp'] ?? null, + ]; + } + $out = [ 'id' => (int) $row['id'], 'testType' => ($testType === 'face') ? 'ai' : $testType, @@ -410,6 +479,9 @@ class Test extends BaseController if ($gallupPreview !== '') { $out['gallupPreview'] = $gallupPreview; } + if ($resultMeta !== null) { + $out['resultMeta'] = $resultMeta; + } return $out; } @@ -802,5 +874,90 @@ class Test extends BaseController return $out; } + + /** + * 小程序拉取做题题库(仅启用题):企业本题库有题则用企业,否则用超管 enterpriseId 为空 + * GET /api/test/questions?type=mbti|disc|pdp&enterpriseId=可选 + */ + public function questions() + { + $user = $this->request->user ?? null; + if (!$user || ($user['source'] ?? '') !== 'wechat') { + return error('未登录', 401); + } + + $type = (string) Request::param('type', ''); + if (!in_array($type, ['mbti', 'disc', 'pdp'], true)) { + return error('type 须为 mbti、disc 或 pdp', 400); + } + + $rawEid = Request::param('enterpriseId', null); + $enterpriseId = null; + if ($rawEid !== null && $rawEid !== '') { + $enterpriseId = (int) $rawEid; + if ($enterpriseId <= 0) { + $enterpriseId = null; + } + } + + $resolvedEnterpriseId = null; + if ($enterpriseId !== null) { + $enterpriseQuestionCount = QuestionModel::where('enterpriseId', $enterpriseId) + ->where('type', $type) + ->where('status', 1) + ->count(); + if ($enterpriseQuestionCount > 0) { + $resolvedEnterpriseId = $enterpriseId; + } + } + + $query = QuestionModel::where('type', $type)->where('status', 1); + if ($resolvedEnterpriseId !== null) { + $query->where('enterpriseId', $resolvedEnterpriseId); + } else { + $query->whereNull('enterpriseId'); + } + + $list = $query->order('sort', 'asc') + ->order('id', 'asc') + ->field('id,question,options,dimension') + ->select() + ->toArray(); + + foreach ($list as &$item) { + if (isset($item['options']) && is_object($item['options'])) { + $item['options'] = json_decode(json_encode($item['options']), true); + } + if (isset($item['options']) && is_array($item['options']) && !empty($item['options']) && !isset($item['options'][0])) { + $item['options'] = array_values($item['options']); + } + if (!isset($item['options']) || !is_array($item['options'])) { + $item['options'] = []; + } + $item['id'] = (int) ($item['id'] ?? 0); + foreach ($item['options'] as &$opt) { + if (!is_array($opt)) { + continue; + } + if (!isset($opt['value']) && isset($opt['label'])) { + $opt['value'] = $opt['label']; + } + if (!isset($opt['text']) && isset($opt['label'])) { + $opt['text'] = $opt['label']; + } + } + unset($opt); + if ($type !== 'mbti') { + unset($item['dimension']); + } + } + unset($item); + + return success([ + 'list' => $list, + 'resolvedEnterpriseId' => $resolvedEnterpriseId, + 'usingSuperAdminBank' => $resolvedEnterpriseId === null, + ]); + } } diff --git a/api/database/migrations/_gen_restore_mbti_test_results.py b/api/database/migrations/_gen_restore_mbti_test_results.py deleted file mode 100644 index 0e52e38..0000000 --- a/api/database/migrations/_gen_restore_mbti_test_results.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -"""Generate restore_mbti_test_results_1_145.sql from api/mbti_data.sql.""" -import pathlib - -ROOT = pathlib.Path(__file__).resolve().parents[2] -src = ROOT / "mbti_data.sql" -out = pathlib.Path(__file__).resolve().parent / "restore_mbti_test_results_1_145.sql" - -lines = src.read_text(encoding="utf-8").splitlines() -starts = None -ends = None -for i, L in enumerate(lines): - if starts is None and L.startswith("INSERT INTO `mbti_test_results`") and "VALUES (1," in L: - starts = i - if L.startswith("INSERT INTO `mbti_test_results`") and "VALUES (145," in L: - ends = i + 1 - break - -if starts is None or ends is None: - raise SystemExit(f"range not found: starts={starts} ends={ends}") - -chunk = lines[starts:ends] -head = """-- 恢复 mbti_test_results 表 id 1~145(与 api/mbti_data.sql 中导出一致) --- 用法:mysql -u... -p... 数据库名 < restore_mbti_test_results_1_145.sql --- REPLACE 会按主键删除旧行再插入,执行前请备份。 -SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci; -SET FOREIGN_KEY_CHECKS = 0; -START TRANSACTION; - -""" -body = "\n".join(L.replace("INSERT INTO", "REPLACE INTO", 1) for L in chunk) -tail = """ - -COMMIT; -SET FOREIGN_KEY_CHECKS = 1; -""" -out.write_text(head + body + tail, encoding="utf-8") -print("wrote", out, "statements", len(chunk)) diff --git a/api/database/migrations/restore_mbti_test_results_1_145.sql b/api/database/migrations/restore_mbti_test_results_1_145.sql deleted file mode 100644 index 7d18129..0000000 --- a/api/database/migrations/restore_mbti_test_results_1_145.sql +++ /dev/null @@ -1,155 +0,0 @@ --- 恢复 mbti_test_results 表 id 1~145(与 api/mbti_data.sql 中导出一致) --- 用法:mysql -u... -p... 数据库名 < restore_mbti_test_results_1_145.sql --- REPLACE 会按主键删除旧行再插入,执行前请备份。 -SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci; -SET FOREIGN_KEY_CHECKS = 0; -START TRANSACTION; - -REPLACE INTO `mbti_test_results` VALUES (1, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFP\", \"title\": \"调停者\"}, \"overview\": \"气质安静理性,内敛而有主见,思维细腻敏感,重视自我价值与内心秩序。\", \"boneAnalysis\": \"骨骼清秀偏木水形,相对骨重肉薄,线条纤长不夸张,气质内敛克制,重思考与感受,行动节奏温和但持续。\", \"faceAnalysis\": \"额头偏窄但顺滑,眼神柔和含光,鼻梁细直,唇形自然收敛,下巴略尖,整体给人安静、专注而略带距离感。\", \"personalitySummary\": \"性格敏感理性,重视隐私与独立空间,善于思考与观察,表达含蓄但原则清晰,更偏向安静创作与深度工作环境。\"}', NULL, NULL, 0, 0, 0, NULL, 1772005506, 1772005506, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (2, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"安静理性又细腻敏感,兼具洞察力与规划力,适合深度思考与创造性工作。\", \"boneAnalysis\": \"骨相偏瘦长木形,骨肉匀称,线条柔中有直,显思维敏捷、韧性佳,重内在成长与长期规划。\", \"faceAnalysis\": \"额头较饱满、眼神内敛专注,鼻梁细直,嘴形柔和含蓄,整体给人沉静理性、略带距离感的气质。\", \"personalitySummary\": \"性格安静独立,思考细致,有责任感与同理心。做事追求完美与深度,习惯独立完成关键任务,对人保持礼貌克制与适度边界。\"}', NULL, NULL, 0, 0, 0, NULL, 1772005550, 1772005550, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (3, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"气质安静理性,内敛专注,有谋划与审美,适合深度思考与专业型发展。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨相清秀偏木水形,骨肉匀称不粗重,重思考与感受,行动节奏稳而不急,耐力尚佳。\", \"faceAnalysis\": \"额头较饱满、眼神内敛专注,鼻梁秀挺,唇形柔和,下颌偏尖,整体偏理性细腻型面相。\", \"personalitySummary\": \"内向克制,思维细腻,有同理心和理想感,做事讲逻辑与条理,重个人空间与深度连接。\"}', NULL, NULL, 0, 0, 0, NULL, 1772010093, 1772010093, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (4, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外表软萌亲和,内在好奇活泼,情感细腻,善于带动气氛与连接他人,适合创造性与互动性强的环境。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bb9b58e8.01140699.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bbb93651.77311244.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bba1fcd1.23709925.jpeg\"], \"boneAnalysis\": \"整体线条圆润偏水土形,骨感不强而肉感充足,气质柔和包容,稳定安全,耐受力与适应力良好。\", \"faceAnalysis\": \"圆润脸型与大眼清澈,神态单纯好奇,嘴部微抿显乖顺,整体给人温柔、亲近、无攻击感的印象。\", \"personalitySummary\": \"性格友善外向,情绪表达自然丰富,富有想象力与玩心,乐于尝试新鲜事物并与周围建立温暖连结。\"}', NULL, NULL, 1, 0, 0, NULL, 1772074447, 1772074447, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (5, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"天真好奇、亲和力强,富有想象与玩心,善于营造轻松愉悦氛围,适合充满互动与创意的环境。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bb9b58e8.01140699.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bbb93651.77311244.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bba1fcd1.23709925.jpeg\"], \"boneAnalysis\": \"整体线条圆滑饱满,骨感不显偏向柔和之象,气质以亲和、包容与弹性适应为主。\", \"faceAnalysis\": \"圆润脸型与大而明亮的眼睛,透露单纯、好奇与强烈亲近欲,表情专注而无戒心。\", \"personalitySummary\": \"性格活泼外向,情绪表达自然直接,重视陪伴与互动;好奇心强,乐于尝试新事物;在人际中以温柔可亲与玩闹氛围影响他人。\"}', NULL, NULL, 0, 0, 0, NULL, 1772077612, 1772077612, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (6, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外柔内韧、好奇心强,情绪明亮,亲和力高,适合创意与互动并重的环境。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bb9b58e8.01140699.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bbb93651.77311244.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bba1fcd1.23709925.jpeg\"], \"boneAnalysis\": \"骨肉丰盈,线条圆滑,属水土偏旺之象,抗压以柔性缓冲为主,稳定中带弹性。\", \"faceAnalysis\": \"大眼圆润有光、五官饱满偏圆,整体给人单纯友好、信任度高且富有童心的气质。\", \"personalitySummary\": \"性格温暖外向,富想象力与同理心,乐于探索新事物与结交伙伴,重视情感连接与轻松氛围。\"}', NULL, NULL, 0, 0, 0, NULL, 1772085904, 1772085904, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (7, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外表温柔亲和,内在好奇活泼,情感细腻,善于带动氛围和照顾周围情绪,适合创意与人际相关领域发展。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bb9b58e8.01140699.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bbb93651.77311244.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bba1fcd1.23709925.jpeg\"], \"boneAnalysis\": \"骨肉丰润偏水土形,线条圆滑少棱角,稳重中带灵动,抗压方式以柔性缓冲与情绪调节见长。\", \"faceAnalysis\": \"面部圆润饱满、五官柔和,眼睛圆大有神,整体给人亲切无攻击感,情绪外显、乐观开朗。\", \"personalitySummary\": \"性格温暖黏人、好奇心强,重视陪伴与互动,安全感来自稳定关系;做事随性但富创意,人际友善,擅长用温柔方式影响他人。\"}', NULL, NULL, 1, 0, 0, NULL, 1772086859, 1772086859, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (8, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ESFP\", \"title\": \"表演者\"}, \"overview\": \"外向亲和、感受敏锐,情绪明亮,喜欢互动与陪伴,适合在轻松环境中发挥创造与感染力。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bb9b58e8.01140699.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bbb93651.77311244.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bba1fcd1.23709925.jpeg\"], \"boneAnalysis\": \"骨感不强而以圆润为主,属水土柔和之象,重在包容与稳定,偏向守成与享受当下。\", \"faceAnalysis\": \"圆润饱满、五官柔和,眼大有神而无压迫感,整体给人亲近、安全与温柔信赖之感。\", \"personalitySummary\": \"性格温柔黏人,重感情、爱互动,乐于取悦他人,安全感需求高,依恋稳定的人与环境。\"}', NULL, 22, 1, 1, 1, 1772097475, 1772088690, 1772097481, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (9, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ESFP\", \"title\": \"表演者\"}, \"overview\": \"外向活泼,情绪单纯明亮,亲和力强,适合高互动与创造性的环境。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bb9b58e8.01140699.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bbb93651.77311244.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bba1fcd1.23709925.jpeg\"], \"boneAnalysis\": \"头脸圆润、骨感不显,肉多掩骨,属柔和亲和型结构,抗压方式偏情绪缓冲与环境适配。\", \"faceAnalysis\": \"大眼圆瞳、短鼻小口与饱满脸型,整体给人单纯、信赖、亲近与好奇的感觉。\", \"personalitySummary\": \"性格单纯乐观,强烈好奇心与玩心并存,重视当下体验与互动回应,人际表现亲切黏人,容易成为团队的气氛担当与情绪疗愈者。\"}', NULL, 24, 1, 1, 1, 1772098134, 1772088972, 1772098138, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (10, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外向灵动、好奇心强,情感细腻又具创造力,适合在自由氛围中发挥想象与亲和力。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bb9b58e8.01140699.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bbb93651.77311244.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bba1fcd1.23709925.jpeg\"], \"boneAnalysis\": \"头脸线条柔和偏圆,骨感不突显,属水木相融合,重情重趣,适合以灵活适配和创意表达见长。\", \"faceAnalysis\": \"圆润面部与大眼透露童真与包容,表情专注却无攻击性,整体给人亲近、安全与信赖感。\", \"personalitySummary\": \"性格温柔友好,想象力丰富,乐于互动与陪伴,遇事以情感与直觉回应,重视氛围与关系和谐。\"}', NULL, 21, 1, 1, 1, 1772097190, 1772089010, 1772097195, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (11, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外向温暖、好奇心强,富有想象力与亲和力,擅长在轻松氛围中激发他人潜能。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bb9b58e8.01140699.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bbb93651.77311244.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bba1fcd1.23709925.jpeg\"], \"boneAnalysis\": \"整体轮廓饱满柔和,骨肉丰厚偏水木形,相对少锐角,主感受力强、适应快、压力承载偏弹性。\", \"faceAnalysis\": \"圆润脸型与大眼晶亮,神情专注又天真,透露强烈好奇心与亲近感,人际开放友善。\", \"personalitySummary\": \"性格灵动活泼,情绪表达自然,乐于探索新事物并与他人分享,重视氛围与情感联结,组织性略逊但创意与感染力突出。\"}', NULL, 20, 1, 1, 1, 1772096995, 1772094812, 1772096998, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (12, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外向灵动、好奇心强,情感细腻,富有创意与亲和力,适合在人际与创意场景中发光。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bb9b58e8.01140699.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bbb93651.77311244.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260226/img_699fb5bba1fcd1.23709925.jpeg\"], \"boneAnalysis\": \"头脸轮廓圆滑偏水形,骨肉丰润,抗压以柔克刚,适应环境与情境能力突出。\", \"faceAnalysis\": \"五官圆润饱满、眼大有神,整体给人亲切软萌之感,情绪表达自然真诚,亲和力极高。\", \"personalitySummary\": \"性格温柔热情,喜欢探索新鲜事物,善于用真诚和幽默拉近距离;做事随性但富有想象力,适合自由度高且能与人互动的环境。\"}', NULL, 19, 1, 1, 1, 1772096444, 1772095236, 1772096493, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (13, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"安静理性且内驱明确,思维细腻,有规划意识与长远眼光,适合深度型与创造型工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"整体骨感清晰偏纤细,属木水结合之形,相对理性敏感,决断偏谨慎,重思考与稳妥推进。\", \"faceAnalysis\": \"额头偏窄但顺滑,眼神专注内敛,鼻梁秀直,嘴形柔和克制,下颌略尖显感性与理想色彩。\", \"personalitySummary\": \"性格内敛安静,情绪稳定度尚佳,做事讲逻辑与秩序,偏完美主义与自我要求高,重个人空间与精神追求。\"}', NULL, 23, 1, 1, 1, 1772097793, 1772097765, 1772097797, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (14, 1, 'mbti', '{\"scores\": {\"E\": 9, \"F\": 0, \"I\": 0, \"J\": 6, \"N\": 0, \"P\": 0, \"S\": 7, \"T\": 8}, \"answers\": [], \"mbtiType\": \"ESTJ\", \"timestamp\": \"2026-02-26T09:29:32.351Z\", \"confidence\": 100, \"completedAt\": \"2026-02-26T09:29:32.351Z\", \"description\": {\"name\": \"总经理\", \"type\": \"ESTJ\", \"careers\": [\"管理者\", \"项目经理\", \"律师\"], \"category\": \"守护者\", \"strengths\": [\"领导力\", \"组织能力\", \"务实\"], \"weaknesses\": [\"可能专制\", \"不够灵活\"], \"description\": \"务实、果断的组织者\"}, \"testDuration\": 10, \"dimensionScores\": {\"EI\": {\"E\": 9, \"I\": 0, \"dominant\": \"E\", \"percentage\": 100}, \"JP\": {\"J\": 6, \"P\": 0, \"dominant\": \"J\", \"percentage\": 100}, \"SN\": {\"N\": 0, \"S\": 7, \"dominant\": \"S\", \"percentage\": 100}, \"TF\": {\"F\": 0, \"T\": 8, \"dominant\": \"T\", \"percentage\": 100}}}', NULL, NULL, 1, 0, NULL, NULL, 1772098172, 1772098172, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (15, 1, 'mbti', '{\"scores\": {\"E\": 0, \"F\": 8, \"I\": 9, \"J\": 0, \"N\": 7, \"P\": 6, \"S\": 0, \"T\": 0}, \"answers\": [], \"mbtiType\": \"INFP\", \"timestamp\": \"2026-02-26T09:30:17.331Z\", \"confidence\": 100, \"completedAt\": \"2026-02-26T09:30:17.331Z\", \"description\": {\"name\": \"调停者\", \"type\": \"INFP\", \"careers\": [\"作家\", \"心理咨询\", \"社工\"], \"category\": \"理想主义者\", \"strengths\": [\"创造力\", \"同理心\", \"真诚\"], \"weaknesses\": [\"过于理想化\", \"情绪化\"], \"description\": \"理想主义、忠诚的调解者\"}, \"testDuration\": 8, \"dimensionScores\": {\"EI\": {\"E\": 0, \"I\": 9, \"dominant\": \"I\", \"percentage\": 100}, \"JP\": {\"J\": 0, \"P\": 6, \"dominant\": \"P\", \"percentage\": 100}, \"SN\": {\"N\": 7, \"S\": 0, \"dominant\": \"N\", \"percentage\": 100}, \"TF\": {\"F\": 8, \"T\": 0, \"dominant\": \"F\", \"percentage\": 100}}}', NULL, NULL, 1, 0, NULL, NULL, 1772098217, 1772098217, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (16, 1, 'mbti', '{\"scores\": {\"E\": 9, \"F\": 0, \"I\": 0, \"J\": 6, \"N\": 0, \"P\": 0, \"S\": 7, \"T\": 8}, \"answers\": [], \"mbtiType\": \"ESTJ\", \"timestamp\": \"2026-02-26T09:30:35.053Z\", \"confidence\": 100, \"completedAt\": \"2026-02-26T09:30:35.053Z\", \"description\": {\"name\": \"总经理\", \"type\": \"ESTJ\", \"careers\": [\"管理者\", \"项目经理\", \"律师\"], \"category\": \"守护者\", \"strengths\": [\"领导力\", \"组织能力\", \"务实\"], \"weaknesses\": [\"可能专制\", \"不够灵活\"], \"description\": \"务实、果断的组织者\"}, \"testDuration\": 9, \"dimensionScores\": {\"EI\": {\"E\": 9, \"I\": 0, \"dominant\": \"E\", \"percentage\": 100}, \"JP\": {\"J\": 6, \"P\": 0, \"dominant\": \"J\", \"percentage\": 100}, \"SN\": {\"N\": 0, \"S\": 7, \"dominant\": \"S\", \"percentage\": 100}, \"TF\": {\"F\": 0, \"T\": 8, \"dominant\": \"T\", \"percentage\": 100}}}', NULL, NULL, 1, 0, NULL, NULL, 1772098235, 1772098235, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (17, 1, 'mbti', '{\"scores\": {\"E\": 4, \"F\": 4, \"I\": 5, \"J\": 3, \"N\": 3, \"P\": 4, \"S\": 3, \"T\": 4}, \"answers\": [], \"mbtiType\": \"ISTP\", \"timestamp\": \"2026-02-26T09:31:36.648Z\", \"confidence\": 53, \"completedAt\": \"2026-02-26T09:31:36.648Z\", \"description\": {\"name\": \"鉴赏家\", \"type\": \"ISTP\", \"careers\": [\"工程师\", \"技术员\", \"飞行员\"], \"category\": \"探险家\", \"strengths\": [\"适应力强\", \"动手能力\", \"冷静\"], \"weaknesses\": [\"可能冷漠\", \"不善表达\"], \"description\": \"灵活、务实的问题解决者\"}, \"testDuration\": 51, \"dimensionScores\": {\"EI\": {\"E\": 4, \"I\": 5, \"dominant\": \"I\", \"percentage\": 56}, \"JP\": {\"J\": 3, \"P\": 4, \"dominant\": \"P\", \"percentage\": 57}, \"SN\": {\"N\": 3, \"S\": 3, \"dominant\": \"S\", \"percentage\": 50}, \"TF\": {\"F\": 4, \"T\": 4, \"dominant\": \"T\", \"percentage\": 50}}}', NULL, 26, 1, 1, 1, 1772157110, 1772098296, 1772157115, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (18, 1, 'pdp', '{\"scores\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 20, \"Peacock\": 0, \"Chameleon\": 0}, \"answers\": {\"1\": \"Tiger\", \"2\": \"Tiger\", \"3\": \"Tiger\", \"4\": \"Tiger\", \"5\": \"Tiger\", \"6\": \"Tiger\", \"7\": \"Tiger\", \"8\": \"Tiger\", \"9\": \"Tiger\", \"10\": \"Tiger\", \"11\": \"Tiger\", \"12\": \"Tiger\", \"13\": \"Tiger\", \"14\": \"Tiger\", \"15\": \"Tiger\", \"16\": \"Tiger\", \"17\": \"Tiger\", \"18\": \"Tiger\", \"19\": \"Tiger\", \"20\": \"Tiger\"}, \"completedAt\": \"2026-02-27T01:34:12.437Z\", \"description\": {\"type\": \"老虎型\", \"color\": \"#F59E0B\", \"emoji\": \"🐅\", \"title\": \"支配者\", \"careers\": [\"企业高管\", \"创业者\", \"项目经理\"], \"teamRole\": \"适合担任领导者角色\", \"strengths\": [\"决断力强\", \"目标导向\", \"行动迅速\"], \"weaknesses\": [\"可能过于强势\", \"缺乏耐心\"], \"description\": \"天生的领导者,具有强烈的目标导向和执行力\"}, \"percentages\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 100, \"Peacock\": 0, \"Chameleon\": 0}, \"dominantType\": \"Tiger\", \"testDuration\": 18, \"secondaryType\": \"Peacock\"}', NULL, NULL, 1, 0, NULL, NULL, 1772156052, 1772156052, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (19, 1, 'pdp', '{\"scores\": {\"Owl\": 6, \"Koala\": 9, \"Tiger\": 2, \"Peacock\": 3, \"Chameleon\": 0}, \"answers\": {\"1\": \"Koala\", \"2\": \"Koala\", \"3\": \"Koala\", \"4\": \"Koala\", \"5\": \"Koala\", \"6\": \"Peacock\", \"7\": \"Peacock\", \"8\": \"Owl\", \"9\": \"Tiger\", \"10\": \"Owl\", \"11\": \"Tiger\", \"12\": \"Owl\", \"13\": \"Koala\", \"14\": \"Koala\", \"15\": \"Koala\", \"16\": \"Owl\", \"17\": \"Owl\", \"18\": \"Peacock\", \"19\": \"Koala\", \"20\": \"Owl\"}, \"completedAt\": \"2026-02-27T01:35:10.123Z\", \"description\": {\"type\": \"考拉型\", \"color\": \"#10B981\", \"emoji\": \"🐨\", \"title\": \"支持者\", \"careers\": [\"人力资源\", \"客户服务\", \"教师\"], \"teamRole\": \"适合担任协调者和支持者角色\", \"strengths\": [\"可靠稳定\", \"团队协作\", \"善解人意\"], \"weaknesses\": [\"可能抗拒变化\", \"决策较慢\"], \"description\": \"稳重可靠,注重团队和谐\"}, \"percentages\": {\"Owl\": 30, \"Koala\": 45, \"Tiger\": 10, \"Peacock\": 15, \"Chameleon\": 0}, \"dominantType\": \"Koala\", \"testDuration\": 40, \"secondaryType\": \"Owl\"}', NULL, 28, 1, 1, 1, 1772157446, 1772156110, 1772157451, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (20, 1, 'disc', '{\"scores\": {\"C\": 3, \"D\": 4, \"I\": 7, \"S\": 6}, \"answers\": {\"1\": \"D\", \"2\": \"I\", \"3\": \"S\", \"4\": \"C\", \"5\": \"S\", \"6\": \"I\", \"7\": \"D\", \"8\": \"I\", \"9\": \"S\", \"10\": \"C\", \"11\": \"S\", \"12\": \"I\", \"13\": \"D\", \"14\": \"I\", \"15\": \"S\", \"16\": \"C\", \"17\": \"S\", \"18\": \"I\", \"19\": \"D\", \"20\": \"I\"}, \"completedAt\": \"2026-02-27T01:35:45.290Z\", \"description\": {\"type\": \"I型\", \"color\": \"#F59E0B\", \"title\": \"影响型\", \"careers\": [\"市场营销\", \"公关\", \"培训师\"], \"strengths\": [\"善于沟通\", \"乐观积极\", \"创意丰富\"], \"weaknesses\": [\"可能过于乐观\", \"注意力分散\"], \"description\": \"热情友好,善于社交和表达\"}, \"percentages\": {\"C\": 15, \"D\": 20, \"I\": 35, \"S\": 30}, \"dominantType\": \"I\", \"testDuration\": 18, \"secondaryType\": \"S\"}', NULL, NULL, 1, 0, NULL, NULL, 1772156145, 1772156145, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (21, 1, 'disc', '{\"scores\": {\"C\": 0, \"D\": 20, \"I\": 0, \"S\": 0}, \"answers\": {\"1\": \"D\", \"2\": \"D\", \"3\": \"D\", \"4\": \"D\", \"5\": \"D\", \"6\": \"D\", \"7\": \"D\", \"8\": \"D\", \"9\": \"D\", \"10\": \"D\", \"11\": \"D\", \"12\": \"D\", \"13\": \"D\", \"14\": \"D\", \"15\": \"D\", \"16\": \"D\", \"17\": \"D\", \"18\": \"D\", \"19\": \"D\", \"20\": \"D\"}, \"completedAt\": \"2026-02-27T01:36:09.553Z\", \"description\": {\"type\": \"D型\", \"color\": \"#EF4444\", \"title\": \"支配型\", \"careers\": [\"企业高管\", \"创业者\", \"项目经理\"], \"strengths\": [\"决断力强\", \"目标导向\", \"行动迅速\"], \"weaknesses\": [\"可能过于强势\", \"缺乏耐心\"], \"description\": \"天生的领导者,注重结果和效率\"}, \"percentages\": {\"C\": 0, \"D\": 100, \"I\": 0, \"S\": 0}, \"dominantType\": \"D\", \"testDuration\": 18, \"secondaryType\": \"I\"}', NULL, 29, 1, 1, 1, 1772157482, 1772156169, 1772157485, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (22, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"气质安静理性,思维细腻周全,重视内在原则与长期规划,适合深度思考与专业型发展。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨相清秀偏木水形,骨肉匀称不夸张,颧骨不凸显权势而重内敛思谋,更擅长谋划与支持而非强势掌控。\", \"faceAnalysis\": \"额头偏窄但顺滑,眼神内敛专注,鼻梁清秀,唇形柔和含蓄,整体给人理性细腻、安静克制之感。\", \"personalitySummary\": \"内向安静,思维细致,有同理心与理想主义倾向,做事谨慎有计划,重视个人空间与稳定节奏。\"}', NULL, NULL, 1, 0, 1, NULL, 1772160911, 1772160911, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (23, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTP\", \"title\": \"逻辑学家\"}, \"overview\": \"理性冷静、思维细腻,重视独立空间与深度思考,适合研究与策略型工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨感偏细长,五官布局均衡偏上停用力,思考与学习能力突出,行动节奏温和但韧性佳,适合持久深耕型发展。\", \"faceAnalysis\": \"额头偏高饱满,眼神内敛专注,鼻梁清秀,嘴形含蓄,下颌略尖,整体给人理性安静、思虑周全之感。\", \"personalitySummary\": \"逻辑导向,善于抽象分析与问题拆解;情绪表达克制,有边界感;做事追求准确与效率,习惯独立完成任务,对熟悉圈层较为温和体贴。\"}', NULL, NULL, 1, 0, 1, NULL, 1772161323, 1772161323, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (24, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"气质安静理性,思维细腻有规划,重视内心秩序与长期目标,适合深度思考与专业型发展。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨相偏木水形,骨肉适中,线条清长不突兀,决断多经思量后出手,抗压方式以内敛稳守为主。\", \"faceAnalysis\": \"额头顺畅、眼神内敛专注,鼻梁清秀、嘴形柔和含蓄,整体显理性克制、重思考少外露情绪。\", \"personalitySummary\": \"内向理性,洞察力强,做事有条理与原则,言语温和但边界清晰,更重质量与深度而非表面热闹。\"}', NULL, NULL, 1, 0, 1, NULL, 1772164524, 1772164524, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (25, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTP\", \"title\": \"逻辑学家\"}, \"overview\": \"理性冷静、思维敏捷,内向专注,有独立判断与持续深耕能力。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨感清晰偏纤细,属木水形相,骨重肉薄,思维敏锐但行事低调,以理性分析和持续钻研见长。\", \"faceAnalysis\": \"额头平顺偏高,眼神安静克制,鼻梁清秀,嘴形含蓄,下巴略尖,整体气质理性而内敛。\", \"personalitySummary\": \"性格安静理智,重视逻辑与独立空间,表达温和不失原则,适合从事需要专注思考与专业深度的工作。\"}', NULL, 35, 1, 1, 1, 1772172909, 1772164861, 1772172912, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (26, 1, 'mbti', '{\"scores\": {\"E\": 8, \"F\": 0, \"I\": 0, \"J\": 7, \"N\": 0, \"P\": 0, \"S\": 7, \"T\": 8}, \"answers\": [], \"mbtiType\": \"ESTJ\", \"timestamp\": \"2026-02-27T04:01:37.973Z\", \"confidence\": 100, \"completedAt\": \"2026-02-27T04:01:37.973Z\", \"description\": {\"name\": \"总经理\", \"type\": \"ESTJ\", \"careers\": [\"管理者\", \"项目经理\", \"律师\"], \"category\": \"守护者\", \"strengths\": [\"领导力\", \"组织能力\", \"务实\"], \"weaknesses\": [\"可能专制\", \"不够灵活\"], \"description\": \"务实、果断的组织者\"}, \"testDuration\": 22, \"dimensionScores\": {\"EI\": {\"E\": 8, \"I\": 0, \"dominant\": \"E\", \"percentage\": 100}, \"JP\": {\"J\": 7, \"P\": 0, \"dominant\": \"J\", \"percentage\": 100}, \"SN\": {\"N\": 0, \"S\": 7, \"dominant\": \"S\", \"percentage\": 100}, \"TF\": {\"F\": 0, \"T\": 8, \"dominant\": \"T\", \"percentage\": 100}}}', NULL, 34, 1, 1, 1, 1772172885, 1772164898, 1772172888, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (27, 1, 'pdp', '{\"scores\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 1, \"Peacock\": 19, \"Chameleon\": 0}, \"answers\": {\"1\": \"Tiger\", \"2\": \"Peacock\", \"3\": \"Peacock\", \"4\": \"Peacock\", \"5\": \"Peacock\", \"6\": \"Peacock\", \"7\": \"Peacock\", \"8\": \"Peacock\", \"9\": \"Peacock\", \"10\": \"Peacock\", \"11\": \"Peacock\", \"12\": \"Peacock\", \"13\": \"Peacock\", \"14\": \"Peacock\", \"15\": \"Peacock\", \"16\": \"Peacock\", \"17\": \"Peacock\", \"18\": \"Peacock\", \"19\": \"Peacock\", \"20\": \"Peacock\"}, \"completedAt\": \"2026-02-27T04:02:37.556Z\", \"description\": {\"type\": \"孔雀型\", \"color\": \"#8B5CF6\", \"emoji\": \"🦚\", \"title\": \"表现者\", \"careers\": [\"市场营销\", \"公关\", \"培训师\"], \"teamRole\": \"适合担任激励者和调解者角色\", \"strengths\": [\"善于沟通\", \"乐观积极\", \"影响力强\"], \"weaknesses\": [\"可能过于乐观\", \"注意力分散\"], \"description\": \"热情友好,善于表达和社交\"}, \"percentages\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 5, \"Peacock\": 95, \"Chameleon\": 0}, \"dominantType\": \"Peacock\", \"testDuration\": 17, \"secondaryType\": \"Tiger\"}', NULL, 33, 1, 1, 1, 1772172854, 1772164957, 1772172860, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (28, 1, 'disc', '{\"scores\": {\"C\": 0, \"D\": 0, \"I\": 1, \"S\": 19}, \"answers\": {\"1\": \"I\", \"2\": \"S\", \"3\": \"S\", \"4\": \"S\", \"5\": \"S\", \"6\": \"S\", \"7\": \"S\", \"8\": \"S\", \"9\": \"S\", \"10\": \"S\", \"11\": \"S\", \"12\": \"S\", \"13\": \"S\", \"14\": \"S\", \"15\": \"S\", \"16\": \"S\", \"17\": \"S\", \"18\": \"S\", \"19\": \"S\", \"20\": \"S\"}, \"completedAt\": \"2026-02-27T04:03:07.050Z\", \"description\": {\"type\": \"S型\", \"color\": \"#10B981\", \"title\": \"稳健型\", \"careers\": [\"人力资源\", \"客户服务\", \"行政\"], \"strengths\": [\"可靠稳定\", \"团队协作\", \"耐心倾听\"], \"weaknesses\": [\"可能抗拒变化\", \"决策较慢\"], \"description\": \"稳重可靠,注重团队和谐\"}, \"percentages\": {\"C\": 0, \"D\": 0, \"I\": 5, \"S\": 95}, \"dominantType\": \"S\", \"testDuration\": 17, \"secondaryType\": \"I\"}', NULL, 31, 1, 1, 1, 1772172257, 1772164987, 1772172260, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (29, 1, 'disc', '{\"scores\": {\"C\": 0, \"D\": 20, \"I\": 0, \"S\": 0}, \"answers\": {\"1\": \"D\", \"2\": \"D\", \"3\": \"D\", \"4\": \"D\", \"5\": \"D\", \"6\": \"D\", \"7\": \"D\", \"8\": \"D\", \"9\": \"D\", \"10\": \"D\", \"11\": \"D\", \"12\": \"D\", \"13\": \"D\", \"14\": \"D\", \"15\": \"D\", \"16\": \"D\", \"17\": \"D\", \"18\": \"D\", \"19\": \"D\", \"20\": \"D\"}, \"completedAt\": \"2026-02-27T06:13:26.991Z\", \"description\": {\"type\": \"D型\", \"color\": \"#EF4444\", \"title\": \"支配型\", \"careers\": [\"企业高管\", \"创业者\", \"项目经理\"], \"strengths\": [\"决断力强\", \"目标导向\", \"行动迅速\"], \"weaknesses\": [\"可能过于强势\", \"缺乏耐心\"], \"description\": \"天生的领导者,注重结果和效率\"}, \"percentages\": {\"C\": 0, \"D\": 100, \"I\": 0, \"S\": 0}, \"dominantType\": \"D\", \"testDuration\": 16, \"secondaryType\": \"I\"}', NULL, 32, 1, 1, 1, 1772172825, 1772172807, 1772172828, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (30, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"气质安静理性,内敛却有主见,善于思考与规划,适合深度研究与长期项目推进。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"整体偏木水形,相骨清秀不臃,骨感适中偏文弱,重心在上停与中停,更重思考谋划而非强势进攻。\", \"faceAnalysis\": \"额头较宽平,眼神安定含蓄,鼻梁秀直,嘴唇柔和收敛,下颌略尖,下停偏弱显思维感性细腻。\", \"personalitySummary\": \"性格安静理性,有同理心与洞察力,重视个人边界与独立空间,做事稳妥细腻,擅长在幕后规划与支持他人。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772172961, 1772172961, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (31, 1, 'mbti', '{\"scores\": {\"E\": 8, \"F\": 1, \"I\": 0, \"J\": 1, \"N\": 0, \"P\": 6, \"S\": 7, \"T\": 7}, \"answers\": [], \"mbtiType\": \"ESTP\", \"timestamp\": \"2026-02-27T06:16:32.131Z\", \"confidence\": 94, \"completedAt\": \"2026-02-27T06:16:32.131Z\", \"description\": {\"name\": \"企业家\", \"type\": \"ESTP\", \"careers\": [\"销售\", \"企业家\", \"运动员\"], \"category\": \"探险家\", \"strengths\": [\"果断\", \"务实\", \"善于应变\"], \"weaknesses\": [\"可能冲动\", \"缺乏耐心\"], \"description\": \"精力充沛、务实的行动者\"}, \"testDuration\": 27, \"dimensionScores\": {\"EI\": {\"E\": 8, \"I\": 0, \"dominant\": \"E\", \"percentage\": 100}, \"JP\": {\"J\": 1, \"P\": 6, \"dominant\": \"P\", \"percentage\": 86}, \"SN\": {\"N\": 0, \"S\": 7, \"dominant\": \"S\", \"percentage\": 100}, \"TF\": {\"F\": 1, \"T\": 7, \"dominant\": \"T\", \"percentage\": 88}}}', NULL, NULL, 0, 0, NULL, NULL, 1772172992, 1772172992, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (32, 1, 'pdp', '{\"scores\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 20, \"Peacock\": 0, \"Chameleon\": 0}, \"answers\": {\"1\": \"Tiger\", \"2\": \"Tiger\", \"3\": \"Tiger\", \"4\": \"Tiger\", \"5\": \"Tiger\", \"6\": \"Tiger\", \"7\": \"Tiger\", \"8\": \"Tiger\", \"9\": \"Tiger\", \"10\": \"Tiger\", \"11\": \"Tiger\", \"12\": \"Tiger\", \"13\": \"Tiger\", \"14\": \"Tiger\", \"15\": \"Tiger\", \"16\": \"Tiger\", \"17\": \"Tiger\", \"18\": \"Tiger\", \"19\": \"Tiger\", \"20\": \"Tiger\"}, \"completedAt\": \"2026-02-27T06:17:08.676Z\", \"description\": {\"type\": \"老虎型\", \"color\": \"#F59E0B\", \"emoji\": \"🐅\", \"title\": \"支配者\", \"careers\": [\"企业高管\", \"创业者\", \"项目经理\"], \"teamRole\": \"适合担任领导者角色\", \"strengths\": [\"决断力强\", \"目标导向\", \"行动迅速\"], \"weaknesses\": [\"可能过于强势\", \"缺乏耐心\"], \"description\": \"天生的领导者,具有强烈的目标导向和执行力\"}, \"percentages\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 100, \"Peacock\": 0, \"Chameleon\": 0}, \"dominantType\": \"Tiger\", \"testDuration\": 15, \"secondaryType\": \"Peacock\"}', NULL, NULL, 0, 0, NULL, NULL, 1772173028, 1772173028, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (33, 1, 'disc', '{\"scores\": {\"C\": 0, \"D\": 20, \"I\": 0, \"S\": 0}, \"answers\": {\"1\": \"D\", \"2\": \"D\", \"3\": \"D\", \"4\": \"D\", \"5\": \"D\", \"6\": \"D\", \"7\": \"D\", \"8\": \"D\", \"9\": \"D\", \"10\": \"D\", \"11\": \"D\", \"12\": \"D\", \"13\": \"D\", \"14\": \"D\", \"15\": \"D\", \"16\": \"D\", \"17\": \"D\", \"18\": \"D\", \"19\": \"D\", \"20\": \"D\"}, \"completedAt\": \"2026-02-27T06:17:36.507Z\", \"description\": {\"type\": \"D型\", \"color\": \"#EF4444\", \"title\": \"支配型\", \"careers\": [\"企业高管\", \"创业者\", \"项目经理\"], \"strengths\": [\"决断力强\", \"目标导向\", \"行动迅速\"], \"weaknesses\": [\"可能过于强势\", \"缺乏耐心\"], \"description\": \"天生的领导者,注重结果和效率\"}, \"percentages\": {\"C\": 0, \"D\": 100, \"I\": 0, \"S\": 0}, \"dominantType\": \"D\", \"testDuration\": 16, \"secondaryType\": \"I\"}', NULL, NULL, 0, 0, NULL, NULL, 1772173056, 1772173056, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (34, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"气质安静理性,思维细腻周全,内敛但有自身原则与坚持,适合深度思考与专业型发展。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨相偏纤细水木形,骨肉匀称不夸张,更多重心在思考与感知,属于稳健内收型,韧性佳但不喜正面强冲。\", \"faceAnalysis\": \"额头偏窄但顺滑,眼神专注温和,鼻梁清秀,唇形柔和收敛,下颌线细窄,整体给人安静理性、敏感细腻之感。\", \"personalitySummary\": \"内向深思,情感细腻但不外露,做事有规划有分寸,重视长期价值与内在原则,人际上温和有界限,擅长在幕后策划与支持。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772245663, 1772245663, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (35, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTP\", \"title\": \"逻辑学家\"}, \"overview\": \"理性内敛、思维敏捷,重视独立空间与深度思考,适合专业研究与策略分析型道路。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"整体骨相纤长偏木形,骨肉匀称而不厚重,重思考与策略胜于强势掌控,耐力稳定偏持久。\", \"faceAnalysis\": \"额头偏高显理性与学习力,眼神专注带思索感,鼻梁清秀重理性判断,嘴形含蓄不事张扬。\", \"personalitySummary\": \"偏理性与独立,逻辑感强,好奇心重,情绪表现克制,人际有边界,擅长在安静环境中深度研究和解决复杂问题。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772245716, 1772245716, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (36, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTP\", \"title\": \"逻辑学家\"}, \"overview\": \"理性安静、独立思考,重视逻辑与个人空间,适合深度研究与创造性工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨感偏细长,骨肉匀称,五官线条清晰,属于理性思辨型骨相,耐力中等但专注度高。\", \"faceAnalysis\": \"额头较饱满、眼神沉静理性,鼻梁清秀,嘴形含蓄内敛,整体给人冷静、安静而有思考感。\", \"personalitySummary\": \"思维抽象敏锐,善于分析问题与拆解结构,情绪外显度低,做人有分寸感,偏安静内敛但在熟悉领域表达坚定有主见。\"}', NULL, 36, 1, 0, 800, NULL, 1772246018, 1772258632, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (37, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"思维细腻理性,外冷内暖,擅长独立思考与长期规划,重视自我节奏与内在价值。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨相偏木水形,骨肉匀称而不厚重,颧骨不显主控欲适中,下颌线柔中带坚,整体以稳健内敛为主。\", \"faceAnalysis\": \"额头平顺饱满,眼神内敛专注,鼻梁清秀偏直,嘴唇柔和收敛,下巴略尖显韧性,整体偏理性含蓄。\", \"personalitySummary\": \"安静理性、思路清晰,情绪稳定度高,做事有计划有节奏,重视个人空间与深度思考,待人温和但边界感明确。\"}', NULL, NULL, 1, 0, 200, NULL, 1772259279, 1772259279, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (38, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性冷静,重视逻辑与效率,擅长规划与统筹,做事稳健克制,执行力扎实。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a288c320ed11.93271163.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a288c316fc40.15562256.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a288c30b4767.42934501.jpg\"], \"boneAnalysis\": \"骨相偏方正稳重,骨肉匀称,五行以土金为主,格局偏中高,重视规则秩序与长期稳定。\", \"faceAnalysis\": \"额头平阔,眼神专注,鼻梁端正,嘴形收敛,下颌较稳,整体给人理性内敛、思维清晰之感。\", \"personalitySummary\": \"性格理性谨慎,注重计划与细节,责任感强,抗压能力佳,人际有边界感,偏向独立思考与默默执行。\"}', NULL, 37, 1, 0, 200, NULL, 1772259532, 1772259535, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (39, 1, 'face', '{\"pdp\": {\"primary\": \"变色龙\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISTP\", \"title\": \"鉴赏家\"}, \"overview\": \"理性内敛、行动务实,重视效率和实际效果,适合在相对独立又需专业判断的环境中发挥专长。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a28b1e9a9f06.87885663.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a28b1eb4a4a1.45109265.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a28b1eb7f794.01724681.jpg\"], \"boneAnalysis\": \"由于未呈现清晰面部与骨骼轮廓,仅能推测整体偏实务稳健型骨相,缺乏依据做更细分判断。\", \"faceAnalysis\": \"照片仅露出部分手部与发顶,面部特征信息不足,无法进行完整面相分析与对应传统条目判断。\", \"personalitySummary\": \"偏安静理性、重视事实与细节,习惯独立思考后再行动,适合技术、分析或需要冷静判断的角色。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772260136, 1772260136, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (40, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"安静理性而带理想主义色彩,兼具细腻感受力与长期规划能力,适合深度思考与稳健推进型发展道路。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨相偏瘦长木形,骨感清晰而不突兀,骨肉比例匀称,耐力与持续投入度较佳,重谋划与内在驱动,外向冲劲相对收敛。\", \"faceAnalysis\": \"额头偏宽平顺,眼神内敛专注,鼻梁细直,嘴唇柔和含蓄,下巴略尖,整体给人安静理性、思考型与敏感细腻的气质。\", \"personalitySummary\": \"思维周密内敛,重视秩序与自我标准,对细节敏锐有审美与分析能力;做事前多思考规划,偏理性克制,有原则感与责任心。\"}', NULL, NULL, 1, 0, 200, NULL, 1772260992, 1772260992, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (41, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"思维细腻安静内敛,重视长期规划与自我成长,擅长在独立空间中深度投入与持续精进。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"面部骨感轻盈,骨肉均匀偏薄,五行偏木水形,格局重思考与审美,抗压方式以理性分析与回避消耗为主。\", \"faceAnalysis\": \"额头略高偏窄、眼神温和内收、鼻梁秀直、嘴唇柔和含蓄、下巴偏尖清秀,整体偏理性内向型气质。\", \"personalitySummary\": \"性格安静克制,敏感但自持,重视原则与边界。做事追求完美与效率,偏向独立思考与深度学习,人际温和有礼但不主动扩圈。\"}', NULL, NULL, 1, 0, 200, NULL, 1772261454, 1772261454, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (42, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"安静理性而细腻,思维有规划感,重视内在价值与长远发展,适合深度型与创造型工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨相偏木水形,骨感清晰不外露,颧骨平稳不张扬,下颌线柔中带刚,格局偏谋划与思辨型。\", \"faceAnalysis\": \"额头顺展偏高,眼神内敛专注,鼻梁细直,唇形柔和含蓄,下巴略尖带韧性,整体气质清冷理性。\", \"personalitySummary\": \"性格安静克制,思考周密,有同理心与理想主义倾向,做事追求完善与长期价值,人际上保留度高但可靠度强。\"}', NULL, NULL, 1, 0, 200, NULL, 1772262532, 1772262532, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (43, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"气质安静理性,思维细腻有规划,重内在标准与长期目标,适合深度研究与策略型工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨感清晰而不突兀,属木水形偏文质型,骨肉匀称,抗压方式以理性分析和持久稳守为主。\", \"faceAnalysis\": \"额头平顺饱满,眼神内敛专注,鼻梁秀直,嘴唇柔中带韧,整体五官清秀偏理性知性气质。\", \"personalitySummary\": \"内敛理智,情感深而不外露,做事有原则与规划感,重个人空间与思考深度,处事温和但内心主见坚定。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772263135, 1772263135, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (44, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"安静理性又具同理心,重视自我节奏与精神空间,适合深度思考与创意表达型工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨骼纤细偏木形,骨肉匀称,颧骨不突下颌略尖,格局重思考与创意,偏谋划与独立完成型路线。\", \"faceAnalysis\": \"额头偏高顺滑、眼神内敛专注,鼻梁清秀,唇形柔和含蓄,整体给人安静理性、带距离感的气质。\", \"personalitySummary\": \"性格内向克制,思路细腻有逻辑,情绪稳定但不善外露,做事有计划感与完美倾向,人际上温和有分寸,重视边界与深度连接。\"}', NULL, NULL, 1, 0, 200, NULL, 1772263164, 1772263164, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (45, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"思维细腻内敛,洞察力强,重视内在秩序与价值感,适合深度思考与长期规划型工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨相偏木水形,骨肉均匀不突兀,线条修长而不失韧性,决断偏稳健,抗压以内在消化和持久推进为主。\", \"faceAnalysis\": \"额头柔和偏高、眼神安静专注、鼻梁清秀、嘴唇自然内收,下巴略尖带柔韧感,整体显理性含蓄。\", \"personalitySummary\": \"性格安静理性,重视思考与自我空间,做事有计划、有责任感,人际中温和有边界,偏向深度创造与独立完成型任务。\"}', NULL, NULL, 1, 0, 100, NULL, 1772263566, 1772263566, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (46, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外柔内活,情感细腻,善于互动与激励他人,适合创造性与变化性的环境。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a288c320ed11.93271163.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a288c316fc40.15562256.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a2990992d5c7.81109795.jpg\"], \"boneAnalysis\": \"线条圆润偏水土形,骨感不强但肉感充足,气质温和包容,稳定安全,耐受与适应力良好。\", \"faceAnalysis\": \"圆润脸型与大眼清澈,神态单纯好奇,嘴部微翘显顺,人缘佳、亲和力强。\", \"personalitySummary\": \"外向热情,善于表达与倾听,重视情感连接与深度交流,富有想象力和创造力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772263697, 1772263697, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (47, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外柔内活,情感细腻,好奇心强,擅长与人连接并营造轻松氛围,适合创造性与互动性强的领域发展。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a288c316fc40.15562256.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a288c320ed11.93271163.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a2990992d5c7.81109795.jpg\"], \"boneAnalysis\": \"线条圆润偏水土形,骨感不强而肉感充足,气质柔和包容,稳定安全,耐受力与环境适应力良好。\", \"faceAnalysis\": \"圆润脸型与大眼清澈,嘴部微翘,表情单纯好奇,整体给人温柔、亲近、无攻击感的印象。\", \"personalitySummary\": \"外向友好,内在敏感细腻,重视情感与深度交流;做事富有热情与创造力,乐于探索新事物并带动周围人。\"}', NULL, 38, 1, 1, 1, 1772263738, 1772263728, 1772263740, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (48, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"抽象思维突出,重视逻辑与系统性,擅长在不完整信息中构建结构化判断与远期规划。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a2be9aca18e7.48721788.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a2be9ab4a1f8.33085619.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260228/img_69a2be9ac90d83.92949209.jpg\"], \"boneAnalysis\": \"由于无清晰头面部骨骼轮廓可见,只能假设其偏理性稳健型骨相,重视结构与秩序。\", \"faceAnalysis\": \"当前图片未呈现清晰人脸,仅见强光与天花板结构,无法进行具体面相部位分析。\", \"personalitySummary\": \"倾向独立思考与理性决策,偏内向克制,重视规则和系统,追求长期价值与持续优化。\"}', NULL, 40, 1, 1, 1, 1772273330, 1772273315, 1772273332, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (49, 6, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性冷静、重视结构与规划,做事有节奏感和持久度,适合承担复杂决策与长期项目推进。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260302/img_69a506f91a3b45.19754294.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260302/img_69a506f91de049.43887143.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260302/img_69a506f91a7166.23669621.jpg\"], \"boneAnalysis\": \"面部骨相信息严重不足,仅见额区与侧面轮廓一角,暂以骨感偏分明、整体偏理性稳健气质作抽象模拟。\", \"faceAnalysis\": \"从现有画面仅能见少量发际与轮廓,无法完整依据传统面相做部位细分判断,只可保守推定为偏理性内敛气质。\", \"personalitySummary\": \"模拟类型偏内向思考者,重逻辑与系统性,行事谨慎务实,专注长期目标与专业深耕,在独立思考和策略规划中更能发挥优势。\"}', NULL, NULL, 1, 0, 1, NULL, 1772422915, 1772422915, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (50, 6, 'mbti', '{\"scores\": {\"E\": 9, \"F\": 0, \"I\": 0, \"J\": 7, \"N\": 0, \"P\": 0, \"S\": 7, \"T\": 7}, \"answers\": [], \"mbtiType\": \"ESTJ\", \"timestamp\": \"2026-03-02T03:42:57.180Z\", \"confidence\": 100, \"completedAt\": \"2026-03-02T03:42:57.180Z\", \"description\": {\"name\": \"总经理\", \"type\": \"ESTJ\", \"careers\": [\"管理者\", \"项目经理\", \"律师\"], \"category\": \"守护者\", \"strengths\": [\"领导力\", \"组织能力\", \"务实\"], \"weaknesses\": [\"可能专制\", \"不够灵活\"], \"description\": \"务实、果断的组织者\"}, \"testDuration\": 37, \"dimensionScores\": {\"EI\": {\"E\": 9, \"I\": 0, \"dominant\": \"E\", \"percentage\": 100}, \"JP\": {\"J\": 7, \"P\": 0, \"dominant\": \"J\", \"percentage\": 100}, \"SN\": {\"N\": 0, \"S\": 7, \"dominant\": \"S\", \"percentage\": 100}, \"TF\": {\"F\": 0, \"T\": 7, \"dominant\": \"T\", \"percentage\": 100}}}', NULL, NULL, 0, 0, NULL, NULL, 1772422977, 1772422977, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (51, 7, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性稳健、目标导向清晰,擅长规划与执行,在结构化环境中表现突出,具长远发展潜力。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260302/img_69a51b2d7ce365.67901942.jpg\"], \"boneAnalysis\": \"骨相端正,颧鼻协调不突兀,颌骨结实承载力强,上停与中停均衡,属稳健开拓型格局,适合担纲核心责任。\", \"faceAnalysis\": \"额头平阔饱满,眉眼清晰专注,鼻梁端正略挺,嘴型收敛有度,下巴方正有力,整体显沉稳理性与执行力。\", \"personalitySummary\": \"思维缜密,有规划意识与责任感,行动节奏稳中有进,对目标坚持度高,处事理性克制,人际中略带距离感但可信赖。\"}', NULL, NULL, 1, 0, 1, NULL, 1772428086, 1772428086, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (52, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"气质安静克制,思维细腻深邃,兼具理性分析与温和共情,适合在稳定而需创意与规划的环境中长期深耕。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"面部骨量匀称偏纤细,为木水兼具之相,骨感不突兀而脉络清晰,格局重于思考与审美判断,擅长以柔性持续承压。\", \"faceAnalysis\": \"额头偏高饱满,眼神柔中带定,鼻梁清秀,唇形收敛,下巴略尖,整体给人理性内向、思路清晰而不张扬之感。\", \"personalitySummary\": \"内向深思型,重视原则与边界,做事有规划感与责任心;情绪外显不多却具同理心,人际偏安静克制,习惯以专业与作品说话。\"}', NULL, NULL, 1, 0, 2, NULL, 1772518933, 1772518933, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (53, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"思维缜密、冷静克制,擅长体系化规划与长期布局,重视效率与结果。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f943017.17894021.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨相偏金水形,骨骼匀称不突兀,颧鼻稳而不霸,下颌承载力佳,上停清朗、中停坚实、下停厚稳,格局重在谋划与稳健推进。\", \"faceAnalysis\": \"额头饱满开阔,眉眼沉稳专注,鼻梁挺直收束有力,嘴型紧实偏直率,下颌轮廓清晰,整体给人理性克制、目标明确之感。\", \"personalitySummary\": \"内向理性,重视逻辑与结构,决策审慎而有主见;偏好独立思考与深度研究,人际保持适度距离,擅长在复杂情境中制定长期策略并稳步推进。\"}', NULL, NULL, 1, 0, 2, NULL, 1772520541, 1772520541, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (54, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"思维缜密果断,擅长抽象推演与系统规划,重视长期价值与可控风险。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f943017.17894021.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨相偏木金形,骨架清晰而不突兀,颧区略显力量但内敛,将军骨与下颌稳固,属稳健谋划型格局,重视结构与秩序。\", \"faceAnalysis\": \"额头饱满开阔,眼神专注内敛,鼻梁端正稳健,嘴型收敛有度,下巴轮廓分明,整体给人理性、克制且有主见的印象。\", \"personalitySummary\": \"性格独立冷静,逻辑感强,偏内向思考型,重视规则与效率,做事有计划、有原则,关注长期布局,社交上有边界感但可靠可信。\"}', NULL, 52, 1, 0, 200, NULL, 1772520586, 1772520593, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (55, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性缜密、目标清晰,重视长期布局与系统性成就,兼具专注深耕与稳健掌控能力。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f943017.17894021.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨架端正紧致,五行为金水兼具,骨肉停匀,颧骨含而不露、下颌稳实,格局偏中高,宜以智谋统筹和专业深耕见长。\", \"faceAnalysis\": \"额头饱满开阔,眼神内敛而专注,鼻梁端正稳固,唇形收敛理性,下巴略方显坚毅,整体面相偏冷静克制。\", \"personalitySummary\": \"思维高度抽象与系统化,重逻辑与效率,做事有计划有节奏,人际交往内敛克制但可靠,擅在相对独立和高要求环境中发挥战略与专业优势。\"}', NULL, 54, 1, 0, 2, NULL, 1772520623, 1772523215, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (56, 12, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISTJ\", \"title\": \"物流师\"}, \"overview\": \"思维谨慎稳健,重视现实与责任,做事有规划,能在长期项目和复杂环境中稳定推进目标。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bf65e22245.39292597.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bf65eab8e8.93002415.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bf65e87472.26700122.jpg\"], \"boneAnalysis\": \"骨相偏土金形,骨肉匀称略偏厚重,颧骨不张但有力,下颌承载感强,整体气质务实稳健,以守成见长。\", \"faceAnalysis\": \"额头宽平、眼神内敛稳定,鼻梁端正偏实,嘴型收敛,下颌与腮部较厚,整体表情克制理性。\", \"personalitySummary\": \"性格内敛理智,责任心强,重视规则和秩序,做事有条理有耐心,偏向深思熟虑后再行动,可靠可信,适合承担长期稳定而关键的职责。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772535666, 1772535666, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (57, 12, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISTJ\", \"title\": \"物流师\"}, \"overview\": \"理性务实,思路清晰,重视责任与结果,适合承担长期稳定而高标准的工作任务。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bf99ee6e38.59427615.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bf9a061600.44383458.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bf9a0dd3d5.87102829.jpg\"], \"boneAnalysis\": \"骨感含蓄不外露,颧骨内敛带角,面廓偏长方形,上停与中停协调,下颌骨线条清楚,属稳健持久型格局。\", \"faceAnalysis\": \"额头平阔顺正,眼神沉稳内敛,鼻梁端正,嘴型收敛,下巴略尖偏窄,整体五官紧致理性。\", \"personalitySummary\": \"性格内敛谨慎,有条理而重规则,做事稳妥细致,抗压能力佳但情绪表达节制,更偏向理性分析与实际成效。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772535717, 1772535717, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (58, 12, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISTJ\", \"title\": \"物流师\"}, \"overview\": \"务实细致、思路清晰,责任感强,重视承诺与结果,适合稳健推进型工作与管理角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bf99ee6e38.59427615.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bf9a061600.44383458.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bf9a0dd3d5.87102829.jpg\"], \"boneAnalysis\": \"骨相偏土金形,颧骨内敛不张扬,颌骨稳厚承载力佳,骨肉均衡,格局以稳健守成、注重长期积累见长。\", \"faceAnalysis\": \"额头开阔偏方,眼神凝定带戒心,鼻梁顺直山根清晰,嘴形收敛有度,下巴略方,整体给人理性稳重、做事有分寸感。\", \"personalitySummary\": \"性格内敛理性,重视秩序与规则,行事谨慎踏实,有担当不轻言放弃,对自己和他人要求较高,适合负责关键细节与长线项目。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772535749, 1772535749, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (59, 12, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"思维缜密、判断稳重,擅长规划与分析,重视长期价值与现实落地,适合在复杂环境中做决策与统筹。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bfd222d9d6.63864125.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bfd22f52f8.29998949.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6bfd25fb710.46559655.jpg\"], \"boneAnalysis\": \"五行偏土金形,骨架端正不夸张,骨肉均衡偏含蓄,决断稳中带慎,抗压方式以冷静思考、稳健推进为主,擅长在中长期阶段持续发力。\", \"faceAnalysis\": \"额头较饱满,眼神内敛专注,鼻梁端正,嘴型收敛,下巴略内收但轮廓清晰,整体给人理性、稳重、审慎之感。\", \"personalitySummary\": \"性格内敛理性,重视逻辑与结构,做事先谋后动,偏好独立思考与深度研究,人际上有边界感但可靠度高,适合作为长期项目与关键事务的负责人。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772535779, 1772535779, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (60, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外向开朗,思维活跃,创意十足,擅长用幽默与热情影响他人,适合做连接人与资源的桥梁型角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"面部线条柔中带劲,骨感不重但轮廓清晰,属于火木偏盛之相,重在灵动与扩散影响力。\", \"faceAnalysis\": \"圆润额头与上扬眉眼给人亲和感和少年气,神态生动,情绪表达自然,善于拉近人际距离。\", \"personalitySummary\": \"重视兴趣与价值认同,直觉主导,点子多,表达欲强,乐于社交与分享,喜欢在轻松自由的环境中高效输出。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772607899, 1772607899, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (61, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外向热情,创意十足,善于沟通与启发他人,适合需要人际互动和创意表达的领域。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨相柔中带刚,上庭开朗,中停丰盈,下停稳实,整体气质活跃而不失稳定支撑。\", \"faceAnalysis\": \"五官圆润亲和,笑意明显,整体给人开放友善、易于接近且富有幽默感的印象。\", \"personalitySummary\": \"思维发散、有想象力,重视情感与价值认同,人际表达自然灵活,乐于尝试新事物并激发团队氛围。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772608243, 1772608243, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (62, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外向开朗,思维活跃,有创意与感染力,适合做连接人与资源的桥梁型角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"上停饱满、颧区柔和不突,中停与下停过渡圆顺,骨感适中,重在亲和力与适配力而非强势掌控。\", \"faceAnalysis\": \"额头圆润开阔,眼神生动带笑,嘴角上扬,整体给人亲切乐观、灵动机敏的印象。\", \"personalitySummary\": \"性格热情真诚,富有好奇心与想象力,乐于表达与分享,善于激励他人与营造轻松氛围,创意多且点子活跃。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772608768, 1772608768, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (63, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外向热情、思维活跃,善于启发他人与整合资源,适合在变化环境中发挥影响力与创造力。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"颧骨与下颌圆润不失力度,骨肉匀称,属木火偏旺之相,重在创意表达与人际影响,抗压方式以灵活变通为主。\", \"faceAnalysis\": \"额头饱满开阔,眼神灵动带笑,鼻口协调度高,整体面相亲和中带果断,善社交且具一定执行力。\", \"personalitySummary\": \"性格开朗真诚,思维发散而富想象,重视价值与理想,待人友善有感染力,适合在团队中承担创意与联络角色。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772768944, 1772768944, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (64, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"形象开朗温和,思维活跃有创意,人际感知敏锐,适合做连接资源、启发他人的角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨相圆润不突兀,骨肉均衡,气质偏灵动与亲和,重在人缘与适应力而非强势压迫感。\", \"faceAnalysis\": \"额头圆阔,五官柔和舒展,笑眼弯弯,整体给人亲切、外向、易亲近的印象。\", \"personalitySummary\": \"热情友好,想象力强,重视价值与意义,善于与人沟通联结,适合在多变环境中发挥创意与影响力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1772769074, 1772769074, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (65, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"思维缜密、重视逻辑与结构,擅长规划与评估,在稳定框架中持续优化与精进。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨相匀称偏稳,颧额不过分外张,属谋划与判断型,多以深思熟虑与持续精进取胜。\", \"faceAnalysis\": \"额庭饱满、眼神专注,鼻部端正,嘴角收敛,整体给人理性内敛、思考充分后再行动的印象。\", \"personalitySummary\": \"理性冷静,重视体系与长远收益,偏内向不事张扬,做事有计划感与原则边界,适合策略规划与专业深耕。\"}', NULL, NULL, 1, 0, 100, NULL, 1772777210, 1772777210, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (66, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性冷静、擅长系统规划与判断,全局视角突出,适合承担决策与策略类核心岗位。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨相端正不张扬,骨肉均衡偏理性持重型,颧区与下颌承载力佳,属稳中带锋,长线发展潜力强。\", \"faceAnalysis\": \"额头饱满开阔,眼神专注稳定,鼻梁端正有力,嘴型收敛清晰,下巴稳实,整体给人思虑深远、行事有度的印象。\", \"personalitySummary\": \"思维缜密独立,重逻辑与结构,决策前充分评估风险与收益,人际中有边界感但可靠度高,善于在复杂环境中找到最优解。\"}', NULL, NULL, 1, 0, 101, NULL, 1772777310, 1772777310, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (67, 1, 'mbti', '{\"scores\": {\"E\": 8, \"F\": 0, \"I\": 0, \"J\": 7, \"N\": 0, \"P\": 0, \"S\": 8, \"T\": 7}, \"answers\": [], \"mbtiType\": \"ESTJ\", \"timestamp\": \"2026-03-06T06:09:01.675Z\", \"confidence\": 100, \"completedAt\": \"2026-03-06T06:09:01.675Z\", \"description\": {\"name\": \"总经理\", \"type\": \"ESTJ\", \"careers\": [\"管理者\", \"项目经理\", \"律师\"], \"category\": \"守护者\", \"strengths\": [\"领导力\", \"组织能力\", \"务实\"], \"weaknesses\": [\"可能专制\", \"不够灵活\"], \"description\": \"务实、果断的组织者\"}, \"testDuration\": 18, \"dimensionScores\": {\"EI\": {\"E\": 8, \"I\": 0, \"dominant\": \"E\", \"percentage\": 100}, \"JP\": {\"J\": 7, \"P\": 0, \"dominant\": \"J\", \"percentage\": 100}, \"SN\": {\"N\": 0, \"S\": 8, \"dominant\": \"S\", \"percentage\": 100}, \"TF\": {\"F\": 0, \"T\": 7, \"dominant\": \"T\", \"percentage\": 100}}}', NULL, NULL, 1, 0, 101, NULL, 1772777341, 1772777341, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (68, 1, 'pdp', '{\"scores\": {\"Owl\": 0, \"Koala\": 1, \"Tiger\": 19, \"Peacock\": 0, \"Chameleon\": 0}, \"answers\": {\"1\": \"Tiger\", \"2\": \"Tiger\", \"3\": \"Koala\", \"4\": \"Tiger\", \"5\": \"Tiger\", \"6\": \"Tiger\", \"7\": \"Tiger\", \"8\": \"Tiger\", \"9\": \"Tiger\", \"10\": \"Tiger\", \"11\": \"Tiger\", \"12\": \"Tiger\", \"13\": \"Tiger\", \"14\": \"Tiger\", \"15\": \"Tiger\", \"16\": \"Tiger\", \"17\": \"Tiger\", \"18\": \"Tiger\", \"19\": \"Tiger\", \"20\": \"Tiger\"}, \"completedAt\": \"2026-03-06T06:10:13.546Z\", \"description\": {\"type\": \"老虎型\", \"color\": \"#F59E0B\", \"emoji\": \"🐅\", \"title\": \"支配者\", \"careers\": [\"企业高管\", \"创业者\", \"项目经理\"], \"teamRole\": \"适合担任领导者角色\", \"strengths\": [\"决断力强\", \"目标导向\", \"行动迅速\"], \"weaknesses\": [\"可能过于强势\", \"缺乏耐心\"], \"description\": \"天生的领导者,具有强烈的目标导向和执行力\"}, \"percentages\": {\"Owl\": 0, \"Koala\": 5, \"Tiger\": 95, \"Peacock\": 0, \"Chameleon\": 0}, \"dominantType\": \"Tiger\", \"testDuration\": 17, \"secondaryType\": \"Koala\"}', NULL, NULL, 1, 0, 101, NULL, 1772777413, 1772777413, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (69, 1, 'disc', '{\"scores\": {\"C\": 0, \"D\": 20, \"I\": 0, \"S\": 0}, \"answers\": {\"1\": \"D\", \"2\": \"D\", \"3\": \"D\", \"4\": \"D\", \"5\": \"D\", \"6\": \"D\", \"7\": \"D\", \"8\": \"D\", \"9\": \"D\", \"10\": \"D\", \"11\": \"D\", \"12\": \"D\", \"13\": \"D\", \"14\": \"D\", \"15\": \"D\", \"16\": \"D\", \"17\": \"D\", \"18\": \"D\", \"19\": \"D\", \"20\": \"D\"}, \"completedAt\": \"2026-03-06T06:10:46.131Z\", \"description\": {\"type\": \"D型\", \"color\": \"#EF4444\", \"title\": \"支配型\", \"careers\": [\"企业高管\", \"创业者\", \"项目经理\"], \"strengths\": [\"决断力强\", \"目标导向\", \"行动迅速\"], \"weaknesses\": [\"可能过于强势\", \"缺乏耐心\"], \"description\": \"天生的领导者,注重结果和效率\"}, \"percentages\": {\"C\": 0, \"D\": 100, \"I\": 0, \"S\": 0}, \"dominantType\": \"D\", \"testDuration\": 7, \"secondaryType\": \"I\"}', NULL, NULL, 1, 0, 101, NULL, 1772777446, 1772777446, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (70, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性内敛、谋略清晰,擅长系统规划与稳健决策,适合深度思考与长期项目主导。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨相均衡偏稳,额骨与颧骨不露锋芒但有内劲,下颌扎实,整体属稳健持久型格局。\", \"faceAnalysis\": \"额头饱满开阔,眉眼沉稳聚焦,鼻形端正收敛,嘴角含蓄不张扬,下巴圆厚有承载力。\", \"personalitySummary\": \"思维缜密,重逻辑与结构,情绪克制,做事有节奏感和计划性,偏独立决策与深度钻研。\"}', NULL, NULL, 1, 0, 200, NULL, 1772777563, 1772777563, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (71, 1, 'mbti', '{\"scores\": {\"E\": 9, \"F\": 1, \"I\": 0, \"J\": 6, \"N\": 0, \"P\": 1, \"S\": 7, \"T\": 6}, \"answers\": [], \"mbtiType\": \"ESTJ\", \"timestamp\": \"2026-03-06T06:13:16.011Z\", \"confidence\": 93, \"completedAt\": \"2026-03-06T06:13:16.011Z\", \"description\": {\"name\": \"总经理\", \"type\": \"ESTJ\", \"careers\": [\"管理者\", \"项目经理\", \"律师\"], \"category\": \"守护者\", \"strengths\": [\"领导力\", \"组织能力\", \"务实\"], \"weaknesses\": [\"可能专制\", \"不够灵活\"], \"description\": \"务实、果断的组织者\"}, \"testDuration\": 24, \"dimensionScores\": {\"EI\": {\"E\": 9, \"I\": 0, \"dominant\": \"E\", \"percentage\": 100}, \"JP\": {\"J\": 6, \"P\": 1, \"dominant\": \"J\", \"percentage\": 86}, \"SN\": {\"N\": 0, \"S\": 7, \"dominant\": \"S\", \"percentage\": 100}, \"TF\": {\"F\": 1, \"T\": 6, \"dominant\": \"T\", \"percentage\": 86}}}', NULL, NULL, 1, 0, 200, NULL, 1772777596, 1772777596, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (72, 1, 'pdp', '{\"scores\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 1, \"Peacock\": 19, \"Chameleon\": 0}, \"answers\": {\"1\": \"Tiger\", \"2\": \"Peacock\", \"3\": \"Peacock\", \"4\": \"Peacock\", \"5\": \"Peacock\", \"6\": \"Peacock\", \"7\": \"Peacock\", \"8\": \"Peacock\", \"9\": \"Peacock\", \"10\": \"Peacock\", \"11\": \"Peacock\", \"12\": \"Peacock\", \"13\": \"Peacock\", \"14\": \"Peacock\", \"15\": \"Peacock\", \"16\": \"Peacock\", \"17\": \"Peacock\", \"18\": \"Peacock\", \"19\": \"Peacock\", \"20\": \"Peacock\"}, \"completedAt\": \"2026-03-06T06:14:30.403Z\", \"description\": {\"type\": \"孔雀型\", \"color\": \"#8B5CF6\", \"emoji\": \"🦚\", \"title\": \"表现者\", \"careers\": [\"市场营销\", \"公关\", \"培训师\"], \"teamRole\": \"适合担任激励者和调解者角色\", \"strengths\": [\"善于沟通\", \"乐观积极\", \"影响力强\"], \"weaknesses\": [\"可能过于乐观\", \"注意力分散\"], \"description\": \"热情友好,善于表达和社交\"}, \"percentages\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 5, \"Peacock\": 95, \"Chameleon\": 0}, \"dominantType\": \"Peacock\", \"testDuration\": 14, \"secondaryType\": \"Tiger\"}', NULL, NULL, 1, 0, 200, NULL, 1772777670, 1772777670, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (73, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"思维缜密、善于筹划与评估风险,重视长远布局与体系化推进,适合承担决策与策略设计角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨相偏金水形,骨肉匀称,颧骨内敛不外突,整体气质内敛克制,重逻辑与规则,行动稳健不张扬。\", \"faceAnalysis\": \"额头开阔、眼神专注,鼻梁端正,口形收敛,整体给人理性稳重、思路清晰且有节制的印象。\", \"personalitySummary\": \"性格理性冷静,重视结构与效率,偏内向独立,有清晰原则与边界,擅长在安静环境中深度思考与规划。\"}', NULL, NULL, 1, 0, 101, NULL, 1772779082, 1772779082, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (74, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性冷静、谋略周全,擅长系统规划与风险控制,适合掌舵长线项目与关键决策岗位。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨骼线条分明不张扬,属木土兼具之稳健格局,重视结构与秩序,行动节奏耐心持久。\", \"faceAnalysis\": \"额头开阔、五官端正,眼神专注沉稳,整体给人理智可信、思维缜密且有主见的印象。\", \"personalitySummary\": \"内敛克制,思考深入,偏好独立决策与长期规划;重视逻辑和证据,对自己与他人要求高,人际保持适度距离但可靠守信。\"}', NULL, NULL, 1, 0, 200, NULL, 1772779594, 1772779594, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (75, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"思维缜密、稳健克制,擅长谋划与统筹,适合承担关键决策与长期规划角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"骨相偏木金形,骨骼端正不张扬,骨肉均衡,属稳健谋略型,更重长线布局与结构把控。\", \"faceAnalysis\": \"额头饱满开阔,双眼内敛专注,鼻准端正,嘴形收敛有度,整体气质理性稳重、主思考少外露情绪。\", \"personalitySummary\": \"内向理性,重逻辑与秩序,行事低调却目标清晰,决策慎重且坚持原则,偏策略与分析型性格。\"}', NULL, NULL, 1, 0, 101, NULL, 1772780350, 1772780350, 5, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (76, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"气质沉稳内敛,思维细致周全,善于洞察人心与趋势,适合做策略规划与决策参谋型角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260304/img_69a7d993a31264.28523714.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f95c675.65376842.png\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260303/img_69a6844f999b87.63229945.png\"], \"boneAnalysis\": \"面廓偏圆中带方,下颌收束有力,骨感不突但有支撑感,属土水兼具之相,稳健中含灵动与包容。\", \"faceAnalysis\": \"额头饱满圆润,眉目温和含笑,眼神内敛而专注,整体给人理性稳重、亲和可信赖的印象。\", \"personalitySummary\": \"重视内在价值与长期意义,行事谨慎有原则,待人温和却坚持立场,擅长系统思考与整合信息。\"}', NULL, NULL, 1, 0, 101, NULL, 1772780684, 1772780684, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (77, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"理性温和、内敛专注,善于观察与思考,重视深度与原则,适合专业型与策划型发展路径。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨感略显、线条清瘦,颧骨内敛不外突,下颌柔和略尖,属思考型与感知型骨相,以智慧与洞察见长。\", \"faceAnalysis\": \"额头饱满顺势,眼神沉静带思考,鼻梁细直,嘴唇柔和偏薄,整体五官清秀带理性气质。\", \"personalitySummary\": \"性格安静理性,重视独立空间与思考深度,做事谨慎有条理,对他人体察细腻但不张扬,擅长在幕后规划与支撑全局。\"}', NULL, NULL, 1, 0, 101, NULL, 1772781830, 1772781830, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (78, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"安静理性且具洞察力,内敛中带坚持,适合深度思考与稳健推进型工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"面部线条偏细长,骨感略显,骨肉关系骨重肉薄,五官集中,呈内敛专注型格局,擅长细致思考与长期坚持。\", \"faceAnalysis\": \"额头较高,眉眼柔和内敛,鼻梁清秀,嘴唇偏薄收敛,下巴略尖,整体给人理智温和、思虑周全的印象。\", \"personalitySummary\": \"性格安静专注,情绪稳定,重视原则与边界。做事有计划,追求质量与深度,人际相对克制但真诚可靠。\"}', NULL, 77, 1, 0, 101, NULL, 1772782874, 1772783583, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (79, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"猫头鹰\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"C\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。理性思维主导,善于长期规划和系统性思考。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"faceAnalysis\": null, \"personalitySummary\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。\"}', NULL, NULL, 1, 0, 101, NULL, 1773036842, 1773036842, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (80, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"猫头鹰\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"C\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。理性思维主导,善于长期规划和系统性思考。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"faceAnalysis\": null, \"personalitySummary\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773037039, 1773037039, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (81, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"猫头鹰\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"C\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。理性思维主导,善于长期规划和系统性思考。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"faceAnalysis\": null, \"personalitySummary\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773037702, 1773037702, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (82, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"猫头鹰\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"C\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。理性思维主导,善于长期规划和系统性思考。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"faceAnalysis\": null, \"personalitySummary\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773038120, 1773038120, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (83, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"猫头鹰\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"C\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。理性思维主导,善于长期规划和系统性思考。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"faceAnalysis\": null, \"personalitySummary\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773038934, 1773038934, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (84, 1, 'pdp', '{\"scores\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 1, \"Peacock\": 19, \"Chameleon\": 0}, \"answers\": {\"1\": \"Tiger\", \"2\": \"Peacock\", \"3\": \"Peacock\", \"4\": \"Peacock\", \"5\": \"Peacock\", \"6\": \"Peacock\", \"7\": \"Peacock\", \"8\": \"Peacock\", \"9\": \"Peacock\", \"10\": \"Peacock\", \"11\": \"Peacock\", \"12\": \"Peacock\", \"13\": \"Peacock\", \"14\": \"Peacock\", \"15\": \"Peacock\", \"16\": \"Peacock\", \"17\": \"Peacock\", \"18\": \"Peacock\", \"19\": \"Peacock\", \"20\": \"Peacock\"}, \"completedAt\": \"2026-03-09T06:51:16.469Z\", \"description\": {\"type\": \"孔雀型\", \"color\": \"#8B5CF6\", \"emoji\": \"🦚\", \"title\": \"表现者\", \"careers\": [\"市场营销\", \"公关\", \"培训师\"], \"teamRole\": \"适合担任激励者和调解者角色\", \"strengths\": [\"善于沟通\", \"乐观积极\", \"影响力强\"], \"weaknesses\": [\"可能过于乐观\", \"注意力分散\"], \"description\": \"热情友好,善于表达和社交\"}, \"percentages\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 5, \"Peacock\": 95, \"Chameleon\": 0}, \"dominantType\": \"Peacock\", \"testDuration\": 11, \"secondaryType\": \"Tiger\"}', NULL, NULL, 0, 0, NULL, NULL, 1773039076, 1773039076, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (85, 1, 'pdp', '{\"scores\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 0, \"Peacock\": 20, \"Chameleon\": 0}, \"answers\": {\"1\": \"Peacock\", \"2\": \"Peacock\", \"3\": \"Peacock\", \"4\": \"Peacock\", \"5\": \"Peacock\", \"6\": \"Peacock\", \"7\": \"Peacock\", \"8\": \"Peacock\", \"9\": \"Peacock\", \"10\": \"Peacock\", \"11\": \"Peacock\", \"12\": \"Peacock\", \"13\": \"Peacock\", \"14\": \"Peacock\", \"15\": \"Peacock\", \"16\": \"Peacock\", \"17\": \"Peacock\", \"18\": \"Peacock\", \"19\": \"Peacock\", \"20\": \"Peacock\"}, \"completedAt\": \"2026-03-09T07:09:22.827Z\", \"description\": {\"type\": \"孔雀型\", \"color\": \"#8B5CF6\", \"emoji\": \"🦚\", \"title\": \"表现者\", \"careers\": [\"市场营销\", \"公关\", \"培训师\"], \"teamRole\": \"适合担任激励者和调解者角色\", \"strengths\": [\"善于沟通\", \"乐观积极\", \"影响力强\"], \"weaknesses\": [\"可能过于乐观\", \"注意力分散\"], \"description\": \"热情友好,善于表达和社交\"}, \"percentages\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 0, \"Peacock\": 100, \"Chameleon\": 0}, \"dominantType\": \"Peacock\", \"testDuration\": 18, \"secondaryType\": \"Tiger\"}', NULL, NULL, 0, 0, NULL, NULL, 1773040162, 1773040162, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (86, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"猫头鹰\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"C\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。理性思维主导,善于长期规划和系统性思考。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"faceAnalysis\": null, \"personalitySummary\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773042949, 1773042949, 5, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (87, 1, 'disc', '{\"scores\": {\"C\": 0, \"D\": 0, \"I\": 20, \"S\": 0}, \"answers\": {\"1\": \"I\", \"2\": \"I\", \"3\": \"I\", \"4\": \"I\", \"5\": \"I\", \"6\": \"I\", \"7\": \"I\", \"8\": \"I\", \"9\": \"I\", \"10\": \"I\", \"11\": \"I\", \"12\": \"I\", \"13\": \"I\", \"14\": \"I\", \"15\": \"I\", \"16\": \"I\", \"17\": \"I\", \"18\": \"I\", \"19\": \"I\", \"20\": \"I\"}, \"completedAt\": \"2026-03-09T08:12:52.575Z\", \"description\": {\"type\": \"I型\", \"color\": \"#F59E0B\", \"title\": \"影响型\", \"careers\": [\"市场营销\", \"公关\", \"培训师\"], \"strengths\": [\"善于沟通\", \"乐观积极\", \"创意丰富\"], \"weaknesses\": [\"可能过于乐观\", \"注意力分散\"], \"description\": \"热情友好,善于社交和表达\"}, \"percentages\": {\"C\": 0, \"D\": 0, \"I\": 100, \"S\": 0}, \"dominantType\": \"I\", \"testDuration\": 17, \"secondaryType\": \"D\"}', NULL, NULL, 0, 0, NULL, NULL, 1773043972, 1773043972, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (88, 1, 'disc', '{\"scores\": {\"C\": 0, \"D\": 0, \"I\": 20, \"S\": 0}, \"answers\": {\"1\": \"I\", \"2\": \"I\", \"3\": \"I\", \"4\": \"I\", \"5\": \"I\", \"6\": \"I\", \"7\": \"I\", \"8\": \"I\", \"9\": \"I\", \"10\": \"I\", \"11\": \"I\", \"12\": \"I\", \"13\": \"I\", \"14\": \"I\", \"15\": \"I\", \"16\": \"I\", \"17\": \"I\", \"18\": \"I\", \"19\": \"I\", \"20\": \"I\"}, \"completedAt\": \"2026-03-09T08:21:35.366Z\", \"description\": {\"type\": \"I型\", \"color\": \"#F59E0B\", \"title\": \"影响型\", \"careers\": [\"市场营销\", \"公关\", \"培训师\"], \"strengths\": [\"善于沟通\", \"乐观积极\", \"创意丰富\"], \"weaknesses\": [\"可能过于乐观\", \"注意力分散\"], \"description\": \"热情友好,善于社交和表达\"}, \"percentages\": {\"C\": 0, \"D\": 0, \"I\": 100, \"S\": 0}, \"dominantType\": \"I\", \"testDuration\": 18, \"secondaryType\": \"D\"}', NULL, NULL, 0, 0, NULL, NULL, 1773044495, 1773044495, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (89, 1, 'mbti', '{\"scores\": {\"E\": 8, \"F\": 0, \"I\": 0, \"J\": 7, \"N\": 0, \"P\": 0, \"S\": 7, \"T\": 8}, \"answers\": [], \"mbtiType\": \"ESTJ\", \"timestamp\": \"2026-03-09T09:04:40.997Z\", \"confidence\": 100, \"completedAt\": \"2026-03-09T09:04:40.997Z\", \"description\": {\"name\": \"总经理\", \"type\": \"ESTJ\", \"careers\": [\"管理者\", \"项目经理\", \"律师\"], \"category\": \"守护者\", \"strengths\": [\"领导力\", \"组织能力\", \"务实\"], \"weaknesses\": [\"可能专制\", \"不够灵活\"], \"description\": \"务实、果断的组织者\"}, \"testDuration\": 30, \"dimensionScores\": {\"EI\": {\"E\": 8, \"I\": 0, \"dominant\": \"E\", \"percentage\": 100}, \"JP\": {\"J\": 7, \"P\": 0, \"dominant\": \"J\", \"percentage\": 100}, \"SN\": {\"N\": 0, \"S\": 7, \"dominant\": \"S\", \"percentage\": 100}, \"TF\": {\"F\": 0, \"T\": 8, \"dominant\": \"T\", \"percentage\": 100}}}', NULL, NULL, 0, 0, NULL, NULL, 1773047081, 1773047081, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (90, 1, 'pdp', '{\"scores\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 3, \"Peacock\": 17, \"Chameleon\": 0}, \"answers\": {\"1\": \"Tiger\", \"2\": \"Tiger\", \"3\": \"Tiger\", \"4\": \"Peacock\", \"5\": \"Peacock\", \"6\": \"Peacock\", \"7\": \"Peacock\", \"8\": \"Peacock\", \"9\": \"Peacock\", \"10\": \"Peacock\", \"11\": \"Peacock\", \"12\": \"Peacock\", \"13\": \"Peacock\", \"14\": \"Peacock\", \"15\": \"Peacock\", \"16\": \"Peacock\", \"17\": \"Peacock\", \"18\": \"Peacock\", \"19\": \"Peacock\", \"20\": \"Peacock\"}, \"completedAt\": \"2026-03-09T09:05:34.273Z\", \"description\": {\"type\": \"孔雀型\", \"color\": \"#8B5CF6\", \"emoji\": \"🦚\", \"title\": \"表现者\", \"careers\": [\"市场营销\", \"公关\", \"培训师\"], \"teamRole\": \"适合担任激励者和调解者角色\", \"strengths\": [\"善于沟通\", \"乐观积极\", \"影响力强\"], \"weaknesses\": [\"可能过于乐观\", \"注意力分散\"], \"description\": \"热情友好,善于表达和社交\"}, \"percentages\": {\"Owl\": 0, \"Koala\": 0, \"Tiger\": 15, \"Peacock\": 85, \"Chameleon\": 0}, \"dominantType\": \"Peacock\", \"testDuration\": 16, \"secondaryType\": \"Tiger\"}', NULL, NULL, 0, 0, NULL, NULL, 1773047134, 1773047134, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (91, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"猫头鹰\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"C\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。理性思维主导,善于长期规划和系统性思考。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"faceAnalysis\": null, \"personalitySummary\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773047182, 1773047182, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (92, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"猫头鹰\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"C\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。理性思维主导,善于长期规划和系统性思考。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"faceAnalysis\": null, \"personalitySummary\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773047511, 1773047511, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (93, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"猫头鹰\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"C\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。理性思维主导,善于长期规划和系统性思考。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\"], \"faceAnalysis\": null, \"personalitySummary\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773109282, 1773109282, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (94, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"猫头鹰\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"C\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。理性思维主导,善于长期规划和系统性思考。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\"], \"faceAnalysis\": null, \"personalitySummary\": \"基于AI面相分析,您展现出较强的逻辑分析能力和独立思考能力。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773109761, 1773109761, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (95, 6, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性稳健,善于规划与分析,做事有节奏,抗压与持续力强,适合深度思考与系统搭建型工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afc606dde213.19573884.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afc606a57237.43033150.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afc606bdb774.70305849.jpg\"], \"boneAnalysis\": \"额区骨势平正,中上停过渡顺畅,骨肉均衡偏稳健型,属土金气质,重视现实与长期稳步推进。\", \"faceAnalysis\": \"额头饱满略宽,眼神沉稳有聚焦力,眉眼距离适中,整体给人理性内敛、思路清晰的印象。\", \"personalitySummary\": \"性格内敛理智,重视逻辑与结构,做事有计划感与原则边界,偏结果导向,不喜情绪化,人际上选择性投入,信任后稳定可靠。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773127193, 1773127193, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (96, 1, 'resume', '{\"content\": \"综合分析生成失败,请稍后重试。\", \"fileUrl\": \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\"}', NULL, NULL, 0, 0, 0, NULL, 1773129576, 1773129576, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (97, 1, 'resume', '{\"content\": \"下面这几份测评结果之间存在明显冲突(AI 面相:INTJ+D/C、问卷:ESTJ、PDP:孔雀85%+老虎15%、DISC:I 型100%),说明: \\n- 一部分结果偏“内向、理性、规划型”(INTJ / D+C); \\n- 另一部分则是典型“外向、表现、社交型”(ESTJ / 孔雀 / I 型)。 \\n\\n要得出“真实性格画像”,需要**假定真实人是一个:外向、偏理性、行动导向,兼具表达欲与管理意识的人**。下面是基于测评交叉验证 + 典型画像的综合结论(简历细节看不到,只能弱化对具体行业/岗位的判断,也会提示哪些点需要你自己对照验证)。\\n\\n---\\n\\n## 一、核心性格关键词(归纳后的人格底色)\\n\\n- 外向表达:强社交驱动力,喜欢说、敢表达、在群体中有存在感。 \\n- 现实务实:关注“现在怎么做”“事情如何落地”,不沉迷空想。 \\n- 结果导向:重视目标、绩效和可见成果,有一定“赢”的欲望。 \\n- 逻辑清晰:结构化思考,能把事情拆解、排序、制定步骤。 \\n- 主动掌控:偏喜欢主导、组织、发起,而不是被动跟随。 \\n- 情绪乐观:基调偏阳光,抗挫后容易自我鼓励再冲一次。 \\n- 自我要求高:对自己在他人眼中的表现和成就感有强需求。\\n\\nAI 面相给出的 “INTJ / 老虎+猫头鹰 / D+C” 更像你在“独立思考、冷静决策”时的理性内核;问卷测评 “ESTJ / 孔雀 / I 型” 更像你在“工作场景+社交场景”中的对外表现。整体呈现为:**外向型管理者 + 理性分析底色**。\\n\\n---\\n\\n## 二、真实性格深度分析\\n\\n### 1. 性格底色与潜在特质(结合生日倾向 + INTJ/ESTJ 混合特征)\\n\\n在不做玄学的前提下,生日只作为“人生阶段”判断: \\n- 若目前在 25–35 岁:通常是**从“表现者”向“管理者”过渡期**,会从单纯爱表现、爱说服,转向更重视结果与权威; \\n- 若在 30+:更容易体现出“控制局面、规划全盘”的一面。\\n\\n结合 INTJ(规划+逻辑)与 ESTJ(执行+管理)两种画像,你的**本质并不是真·情绪型社交咖,而是一个有计划、讲逻辑的人,只是社交和表达能力也很强**。 \\n\\n潜在特质包括: \\n- 有“我要做出点成绩”的强内驱; \\n- 对“组织、规则、流程”有天然敏感; \\n- 面子与他人评价对你重要,会驱动你多做、多争取舞台; \\n- 内心并不完全随性,喜欢自己心里有一张“路线图”。\\n\\n### 2. 真实行为风格(结合工作经历推断)\\n\\n虽然没看到具体简历内容,只能按常见轨迹做逻辑推演,需要你自己对照:\\n\\n**若你的工作经历包含:销售、商务、市场、项目协调、管理岗:** \\n- 高度符合“ESTJ + 孔雀 + I 型”: \\n - 乐于外出、谈判、主持会议、做方案汇报; \\n - 在团队中易演变成“说话多、推动力强”的那个人; \\n - 对流程、进度节点、业绩数字敏感,催进度、要结果不含糊。 \\n\\n**若你的经历更偏:运营管理、项目管理、团队负责人:** \\n- 说明你的“控制+规划”部分已经被激活: \\n - 能把复杂任务拆分成步骤,安排到人,跟踪落地; \\n - 在出现问题时,先分析逻辑和责任,再考虑情感安抚; \\n - 会用数据、事实说话,而不是仅靠情绪鼓舞。 \\n\\n整体行为模式可概括为: \\n> “先把人带动起来 → 再用结构和规则把事情落地 → 完成目标后又希望得到认可和掌声。”\\n\\n### 3. 抗压能力与做事习惯\\n\\n- **抗压能力** \\n - 对“短期高压、快节奏、强目标”的环境适应度高(如季度冲刺、项目节点)。 \\n - 在“持续模糊、长期看不到结果”的环境中会烦躁,容易质疑方向或改变路径。 \\n\\n- **做事习惯** \\n - 偏爱“有清晰目标+时间节点”,喜欢列计划、做表格、做排期。 \\n - 执行上快,愿意边干边调整,不喜拖延。 \\n - 对细节能做到“80 分认真”,但在极端细腻、重复性细活上容易浮躁。 \\n\\n- **人际模式** \\n - 在团队中倾向于做“气场较强的核心人物”:要么是领头羊,要么是关键 KOL。 \\n - 习惯用“讲道理+讲结果”方式沟通,可能略显直接。 \\n - 对“低效、拖延、不负责”的人容忍度低,容易在语气上带出不耐烦。 \\n\\n这部分与 D 型(主导)、I 型(影响)、老虎(行动)、孔雀(表现)高度吻合。\\n\\n---\\n\\n## 三、测评交叉验证:去伪存真的人格画像\\n\\n### 1. MBTI 冲突的校正\\n\\n- 面相:INTJ(内向+理性+规划) \\n- 问卷:ESTJ(外向+理性+执行) \\n\\n结合 PDP / DISC 的高孔雀、高 I 型,**你的现实工作中更接近 ESTJ:外向、现实、讲规则、强调结果**。 \\nINTJ 的成分可能体现在: \\n- 你比典型“社牛”多一点**独立思考和逻辑规划**; \\n- 在做关键决策时,你倾向先自己冷静想一圈,再去说服别人,而不是一味随大家; \\n- 有一定“看不惯低效率”的完美主义倾向。\\n\\n结论: \\n> MBTI 上更接近:E–S–T–J,带一点 N(规划、抽象思考)的影子,远离 F(过度感性)。\\n\\n### 2. PDP:孔雀 85% + 老虎 15%\\n\\n- 孔雀:表现、影响力、情绪感染。 \\n- 老虎:目标、控制、竞争。 \\n\\n你看起来不是“单纯爱玩爱聊”的孔雀,而是“带野心、带结果意识的孔雀”。 \\n- 在需要舞台感、演讲、主持、推动氛围的场景,你会很自然地站出来; \\n- 一旦涉及利益、成绩、晋升,会明显激活“老虎”那一面:更强势、更坚持原则。 \\n\\n### 3. DISC:I 型 100%,第二为 D\\n\\n- I:影响力、社交、情绪感染; \\n- D:主导、决断、冲劲。 \\n\\n结合 ESTJ 与老虎成分: \\n- 真实状态更像 **“ID 型”**:既要人、也要事。 \\n- 对领导、客户:会用热情和结果说话; \\n- 对下属/同事:既能“带节奏”,也会因为过于直接而不自觉给压力。\\n\\n---\\n\\n## 四、行为与沟通风格\\n\\n### 1. 行为风格\\n\\n- 典型“说-干一体型”:喜欢边讨论边拍板,拍板后立即推进; \\n- 决策方式:偏“快速+信息足够即可”,不是追求完美信息,而是“先做再优化”; \\n- 在团队中容易占中心位:主持会议、总结发言、做关键决策; \\n- 喜欢有可见进展的事情,对长期无反馈的琐碎任务兴趣低。\\n\\n### 2. 沟通风格\\n\\n- 语言直接、结构清晰:会说“核心有几条”“结论先说”。 \\n- 以“道理+目标+数据”说服别人: \\n - 对上:强调成果与可行性,争取资源; \\n - 对下:强调标准和责任,边鼓励边施压。 \\n- 正面情绪表达显性:善于鼓舞、打鸡血、造氛围; \\n- 负面情绪容易通过语气、表情显露:不满时很难完全掩饰。 \\n\\n**风险点**:在压力或节奏很快时,容易显得: \\n- 话多但听得不够多; \\n- 关注任务多于感受,被人贴上“有点强势/有点功利”的标签。\\n\\n---\\n\\n## 五、优势亮点(可在工作中刻意放大的部分)\\n\\n1. **强推动力与执行落地能力** \\n - 能设定明确目标→拆解成执行步骤→持续跟进,适合做项目 owner、团队负责人、业务骨干。 \\n\\n2. **沟通与影响力强** \\n - 能把复杂事务讲清楚、讲明白,有说服力; \\n - 适合对外(客户、伙伴)沟通,对内(团队)动员。 \\n\\n3. **结果导向、责任感强** \\n - 对自己负责的事有“非搞好不可”的执念; \\n - 有一定“替组织操心”的属性,天然具备管理潜力。 \\n\\n4. **逻辑与结构能力不错** \\n - 能快速抓重点、搭框架,对流程、制度、规范化有敏感度; \\n - 在需要制度建设、流程优化、项目梳理时有优势。 \\n\\n5. **抗压和适应快节奏** \\n - 在“多任务+高节奏+强目标”的业务环境中能跑得起来; \\n - 面对变化能迅速调整策略,而不是僵在原地。\\n\\n---\\n\\n## 六、可提升方向(真实短板与发展建议)\\n\\n1. **倾听与情绪敏感度** \\n - 风险:在推进任务和讲道理时,容易忽视他人真实感受; \\n - 建议: \\n - 每次决策前养成“先问三分钟,再讲三分钟”的习惯; \\n - 对关键成员,定期做一对一沟通,刻意问“你有什么顾虑和困难”。 \\n\\n2. **细节耐心与长期主义** \\n - 风险:在没有即时反馈的长期任务、细腻工作(如复杂数据分析、文档精修)中容易失去耐心; \\n - 建议: \\n - 把长期任务拆成多个“小里程碑”,每周给自己一个可见成就; \\n - 把关键细节工作分配给适合的 C/S 型伙伴,自己做决策与协调。 \\n\\n3. **控制欲与授权** \\n - 风险:老虎+D 的成分会导致“什么都想管、事事想确认”,容易累自己、压别人; \\n - 建议: \\n - 明确哪些事情“必须亲自”,哪些可以“设规则+定结果”; \\n - 对团队多用“结果管理”而非“过程控制”,减少微观干预。 \\n\\n4. **情绪管理与表达方式** \\n - 风险:压力大时语言锋利、语气急,损害长期合作关系; \\n - 建议: \\n - 在高压场景下刻意用“问题导向”替代“情绪指责”,如: \\n - 把“你怎么又……”换成“这次问题的关键点在哪,我们下次怎么避免”; \\n - 对重要对象(上级、关键同事)在冲突后及时“复盘+修复关系”。 \\n\\n5. **战略思维与视角拉高** \\n - 当前偏“战术执行+组织管理”,战略层面(行业趋势、资源布局、组织设计)需要强化; \\n - 建议: \\n - 多参与跨部门项目,主动争取“组织级”的任务; \\n - 多向上级/前辈学习:他们如何看待长期布局与风险管理。\\n\\n---\\n\\n如果你愿意补充: \\n- 出生年月日 \\n- 过往 2–3 段关键工作经历(行业/岗位/负责内容) \\n\\n我可以在此基础上,把上面的通用分析进一步细化成:**更贴近你行业发展路径的职业定位与中长期发展建议**。\", \"fileUrl\": \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\"}', NULL, NULL, 0, 0, 0, NULL, 1773129620, 1773129620, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (98, 1, 'resume', '{\"content\": \"下面的分析基于: \\n- 人脸分析:INTJ + PDP「老虎」、DISC「D/C」 \\n- MBTI 测试:ESTJ(E/S/T/J 极高分) \\n- PDP 测试:孔雀型(主 Peacock,辅 Tiger) \\n- DISC 测试:I 型为主、D 为辅 \\n- 你上传了简历,但图片内容我无法读取,因此无法结合具体工作经历、生日做更细致的印证,只能从多份测评之间做“去伪存真”的综合判断。后面如果你能补充文字版的工作经历与生日,我可以给一版更接地气的“行为风格复盘”。\\n\\n在当前信息有限的前提下,我会给出一个“高可信核心画像 + 若干可能分支”的结构化结论。\\n\\n---\\n\\n## 一、核心性格关键词(综合提炼)\\n\\n从多份测评中相对稳定、可互相印证的特征来看,你大概率具备:\\n\\n**核心底色:**\\n- 目标导向、结果思维\\n- 逻辑清晰,偏理性决策\\n- 行动派,有执行力、有主见\\n- 组织、掌控倾向明显(喜欢有秩序、有计划)\\n\\n**在人际与工作场景中常见特征:**\\n- 带有一定的领导/主导欲 \\n- 愿意表达观点,敢于决策 \\n- 不怕冲突,更关注解决问题和推进结果 \\n- 在自己熟悉的领域,显得自信、果断\\n\\n---\\n\\n## 二、真实性格深度分析(去伪存真)\\n\\n### 1. MBTI、PDP、DISC 之间的矛盾点\\n\\n- 面相:INTJ+D/C → 偏**内向、理性、战略性、自控强**\\n- MBTI 测评:ESTJ → 偏**外向、务实、执行强、组织者**\\n- PDP 测评:孔雀(Peacock,85%) + Tiger → 偏**外向、表现欲、社交活跃、影响他人**\\n- DISC 测评:I 型 + D → **影响型+支配型**,典型“爱说、爱带节奏、乐观感染人”。\\n\\n这几份结果存在明显冲突: \\n- 有的把你描述成“外向型组织者/表现者(ESTJ、Peacock、I 型)”; \\n- 有的把你描述成“理性、独立、略冷感的战略型(INTJ、D/C)”。\\n\\n这通常意味着两种可能:\\n\\n1. **你在工作/社交角色中表现得更外向、能说会道,但内在思维模式偏理性和掌控。** \\n2. 部分在线测评受“答题倾向”影响,夸大了你的外向、表现欲,而人脸分析和 D/C 倾向提示你其实更看重逻辑、控制、结果。\\n\\n### 2. 更可信的“核心人格底盘”\\n\\n从多维度交叉看,以下几条特征在所有版本里都**反复出现或隐含**,可信度较高:\\n\\n1. **理性决策占主导** \\n - INTJ、ESTJ、D、老虎、Tiger 都指向: \\n - 偏「T」而不是「F」:做决定看事实、逻辑、利弊,而不是情绪和关系优先。 \\n - 习惯快速判断:什么是对的、什么是有效的。\\n\\n2. **强目的性和控制感需求** \\n - D 型、Tiger、ESTJ、INTJ 的共同点: \\n - 喜欢掌握节奏,不愿被动等待或被人牵着走。 \\n - 在项目/团队中容易自然站到“主导/决策/推动”位置。 \\n - 面对模糊和混乱,会本能地想建立规则、流程、优先级。\\n\\n3. **较强的结构化与执行力** \\n - ESTJ 的 J + S,D/C 的 C,老虎+猫头鹰等,都指向你: \\n - 能把目标拆解为计划并落地执行。 \\n - 不排斥流程和规则,甚至会主动制定标准。 \\n - 对“拖延、反复、模糊指令”容忍度不高。\\n\\n4. **情绪相对稳定,抗压能力中高档** \\n - 老虎、D 型、ESTJ 都意味着: \\n - 面对压力更倾向于解决问题,而非逃避。 \\n - 紧张情境下,有一定硬扛能力,会选择“顶上去”,而不是明显退缩。 \\n - 表面情绪控制较好,不会在工作场合频繁情绪化。\\n\\n### 3. 关于“外向/内向”的真实情况\\n\\n矛盾点在于: \\n- 面相:INTJ + D/C → 偏内敛、理性,精力投向任务和思考。 \\n- 测评:ESTJ + 孔雀 + I 型 → 强烈外向、表达欲强、喜欢社交。\\n\\n更合理的解释不是“要么内向要么外向”,而是:\\n\\n> **你属于「任务场景外向、私下可能收敛」的类型。**\\n\\n- 在工作需要你去沟通、协调、影响别人时: \\n - 你能很自然地打开自己,敢说敢表达,甚至偏强势,逻辑清晰、直奔主题。 \\n- 但在真正放松的私人生活中: \\n - 你未必喜欢「无效社交」;更愿意一个人/少数人深度交流,而不是在大场合持续充当焦点。 \\n- 你对社交的态度更像“为了目标服务的工具”,而不是单纯享受社交本身。\\n\\n---\\n\\n## 三、行为与沟通风格(工作场景下的真实模样)\\n\\n### 1. 做事习惯\\n\\n- **有计划、有目标感**:更习惯先弄清目标,再讨论怎么做;不喜欢边做边变更方向。 \\n- **讲效率、不磨叽**:倾向快速决策,看到明显的不合理会直接提出或调整。 \\n- **重结果、重标准**:任务若没有清晰指标会不舒服,你会主动帮团队明确“什么算做好”。 \\n- **对细节有选择性关注**:重要细节不会放过,但对你认为“不影响结果”的细节容忍度较高。\\n\\n### 2. 抗压与应对方式\\n\\n- 压力上来时,你更可能: \\n - 开始划优先级:先干关键的,丢掉不重要的。 \\n - 收紧控制:更多亲自盯、亲自决策,对他人犯错的耐心下降。 \\n - 语气变硬、容错率下降,但仍以“把事搞定”为主线。\\n\\n- 你不喜欢长期处在完全失控、完全被动的局面,如果环境过于混乱,可能会选择“要么接管,要么离开”。\\n\\n### 3. 人际与沟通模式\\n\\n- **表达风格:直截了当、偏理性** \\n - 说话逻辑清楚、结论先行,不太习惯绕圈子。 \\n - 容易被觉得“有点强势/不够温柔”,尤其在指出问题时。\\n\\n- **合作风格:喜欢靠谱、有担当的人** \\n - 对拖延、情绪化、缺乏责任感的人容易不耐烦。 \\n - 和专业度高、对结果负责的人,很快可以建立信任。\\n\\n- **影响他人的方式** \\n - 不是靠“讨喜”,而是靠专业和决心; \\n - 在需要时,也能通过较强的表达能力、感染力带动团队。\\n\\n---\\n\\n## 四、优势亮点(综合 MBTI / PDP / DISC)\\n\\n1. **目标驱动 + 执行力强** \\n - 设定目标之后,能迅速拆解任务、分配资源、推动落地,是典型的“做成事”的人。\\n\\n2. **逻辑清晰,决策能力好** \\n - 看到信息后能快速判断优先级和风险,倾向于理性分析,而非被情绪带节奏。\\n\\n3. **有领导与组织潜质** \\n - 敢于承担责任、习惯站在“整体视角”看问题。 \\n - 在团队里容易自然成为“说了算/拍板的人”。\\n\\n4. **在关键场景中能外向表达、影响他人** \\n - 虽不一定是全场最爱社交的人,但在工作情境里,你能站出来讲话、谈判、推动项目。\\n\\n5. **抗压能力中上,有硬度** \\n - 在压力来临时,有继续推进的韧性,不轻易放弃或被情绪拖垮。\\n\\n---\\n\\n## 五、可提升方向(针对你这种“理性 + 控制 + 行动派”组合)\\n\\n1. **柔化沟通方式,区分“对事”和“对人”**\\n - 保持对结果的高标准,但在表达问题和反馈时: \\n - 多用“我观察到…”、“我们可以尝试…”代替“你怎么…”。 \\n - 先肯定再指出问题,降低对他人情绪的冲击。 \\n - 这能减少别人对你“强势/不好相处”的误解,提升合作效率。\\n\\n2. **增加对他人情绪与节奏的容忍度**\\n - 并非所有人都以效率为中心,有些人需要更多情感安全感和鼓励。 \\n - 适当拉长自己的“容错时间”,把“如何带出团队”视为和“把事做成”同等重要的目标。\\n\\n3. **避免过度控制与亲力亲为**\\n - 你的掌控感强,容易“看不惯就自己做”,短期效率高,但容易累,团队成长慢。 \\n - 更有价值的是: \\n - 明确结果和边界, \\n - 放权 + 关键节点把关, \\n - 只抓关键 20% 的事情。\\n\\n4. **警惕因过度理性而忽视长期关系资产**\\n - 将“人际关系、信任、口碑”纳入你的“结果指标”。 \\n - 不只是“事做成了”,而是“事做成的同时,让人愿意跟你继续做下一件事”。\\n\\n5. **自我节奏管理,防止长期高压硬撑**\\n - 你可能习惯“先把事干了再说休息”,容易透支。 \\n - 在高强度周期中,刻意安排: \\n - 短暂的断网休息、 \\n - 纯兴趣的活动、 \\n - 高质量的独处或少量深度社交, \\n - 用来恢复你的专注和判断力。\\n\\n---\\n\\n## 小结:一个更贴近真实的画像\\n\\n你更像是一个:\\n\\n> **以结果为导向、理性分析为底色,在工作场景中可以主动外向、善于组织和掌控局面的行动派。**\\n\\n- 内在:重逻辑、重掌控、重效率,不喜欢无序和拖拉。 \\n- 外在:在需要时能表现得外向、有说服力、有感染力,但本质上社交是服务于目标的工具。 \\n- 擅长:定目标、理清思路、推动执行、扛压力。 \\n- 易被误解:太直接、太强势、不够“温柔/顾情绪”。 \\n\\n如果你方便补充: \\n1)出生日期(精确到年月日) \\n2)简历里的关键经历(行业、职位、负责内容、任职时长) \\n\\n我可以在此基础上进一步校正,给你一版更贴近你真实工作场景的“行为与职业匹配度细化分析”。\", \"fileUrl\": \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\"}', NULL, NULL, 0, 0, 0, NULL, 1773130628, 1773130628, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (99, 6, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性内敛、思维缜密,重视长期规划与稳健推进,适合在专业与管理结合岗位深耕发展。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afd37be9c8f5.89224540.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afd37bed97c8.21150938.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afd37bd4cf40.31378569.jpg\"], \"boneAnalysis\": \"骨骼偏土形稳健,骨肉均衡,颌骨承载力强,中庭与鼻部突出现实感与责任心,具长期抗压与守成能力。\", \"faceAnalysis\": \"额头宽阔,眼神专注,鼻梁端正,嘴形收敛,下巴厚实,整体面相稳重理性,偏重思考与执行并重。\", \"personalitySummary\": \"性格内敛理性,注重逻辑与系统思考,决策谨慎而有主见,做事稳扎稳打,擅长在复杂环境中分析问题并推进落地。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773130642, 1773130642, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (100, 6, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性内敛、思维缜密,擅长规划与稳健推进,做事有原则,重视长期发展与现实成效。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afd37be9c8f5.89224540.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afd37bed97c8.21150938.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afd37bd4cf40.31378569.jpg\"], \"boneAnalysis\": \"面部骨骼偏土金形,骨肉匀称,颧区内敛不外凸,下颌承托感强,体现稳健持久与现实判断力。\", \"faceAnalysis\": \"额头饱满,下巴厚实,五官线条圆中带棱,神情稳重,整体给人理性沉稳、思考周密之感。\", \"personalitySummary\": \"性格偏理性克制,重视逻辑与效率,做事有计划且坚持度高,人际有边界感但可靠可信,适合承担长期复杂任务与关键责任。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773130960, 1773130960, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (101, 1, 'resume', '{\"content\": \"下面是基于你目前提供的数据做的“初步画像”,因为简历内容图片我还看不到具体文字,只能先根据测评结果和你给的信息做框架式判断。等你补充简历文本(生日、工作经历),我可以再做一次更精准的“校正”和细化。\\n\\n---\\n\\n## 一、核心性格关键词(在现有信息基础上的“初稿”)\\n\\n- 外向表达强 / 乐于社交(E,高 I / 孔雀 / I型)\\n- 结果导向、执行力强(ESTJ、部分老虎、D)\\n- 乐观、有感染力、擅长影响他人(孔雀 / I型)\\n- 逻辑清晰、决策偏理性(T、INTJ 面相分析)\\n- 组织、规划和掌控欲较强(J、ESTJ、D)\\n- 可能存在:情绪耐受一般、容易对低效与拖延不耐烦、注意力分散或过度乐观\\n\\n> 说明:目前多份测评之间存在明显“冲突”(INTJ + D/C vs ESTJ + 孔雀 + I型),在没有工作经历和生日信息印证前,只能先给出一个“折中后的大致轮廓”。\\n\\n---\\n\\n## 二、真实性格深度分析(基于多测评交叉取中)\\n\\n### 1. 性格底色(以 MBTI ESTJ + PDP 孔雀 + DISC I 为主,兼顾面相 INTJ+D/C)\\n\\n- **外向倾向:明显偏外向 E**\\n - MBTI:E 得分 8:0\\n - PDP:孔雀 85%\\n - DISC:I 100%\\n → 真实中,很难是典型的“社交内向型”。更可能是: \\n 在熟悉环境中非常外向、健谈、有存在感,在陌生或专业场合会切换到“理性、控制局面”的模式。\\n\\n- **思维方式:现实理性 + 过程有序**\\n - MBTI:S(务实)+ T(理性决策)+ J(讲规则、重计划)\\n - 面相&DISC/D:逻辑分析、条理性、目标导向 \\n → 行为决策多以“现实可行性、成本收益”为基准,很少纯情绪化决策。对模糊、拖延和反复变更不耐烦。\\n\\n- **核心驱动力:成就 & 影响力 & 控制感**\\n - ESTJ:喜欢“组织、管理、推动进展”\\n - 孔雀 / I:喜欢“被看见、影响他人、气氛与人际反馈”\\n - D:喜欢“掌控局面、说了算”\\n → 综合来看,更可能是: \\n 既希望“事情有效率、结果达成”,又希望“自己是关键人物、被看到、能影响团队和氛围”。\\n\\n### 2. 情绪与压力反应(暂为推测版)\\n\\n- 面对压力,更可能表现为:\\n - 先上手解决问题,行动优先;\\n - 对他人拖慢节奏或不配合容易着急、发火;\\n - 不太愿意公开展示脆弱,更习惯“硬扛+往前推”。\\n- 在高压或反复被否定的环境中,可能会:\\n - 控制欲上升、语气变强势;\\n - 对细节和错误挑剔;\\n - 或出现短时逃避:注意力分散、转向社交或其他刺激来“分心”。\\n\\n---\\n\\n## 三、行为与沟通风格(从三类测评交集提炼)\\n\\n### 1. 行为风格(做事方式)\\n\\n**很可能的真实行为特征:**\\n\\n- 快节奏、行动型:不喜欢长时间空谈,更偏“边做边调”。\\n- 结构化:喜欢清晰的目标、时间表、优先级;讨厌混乱和没有决策。\\n- 现实实用:方案要落地、要有效,不爱“空想型创意会”。\\n- 需要自主权:对过度控制、反复否决会强烈不适;更适合被赋予责任和空间。\\n\\n**可能出现的行为盲点:**\\n\\n- 容易忽略他人情绪体验,认为“事情比感受重要”;\\n- 对节奏慢、风格细腻的人(高S、高F、高C)缺耐心;\\n- 可能因为乐观+自信,低估风险、细节或长期隐患。\\n\\n### 2. 沟通风格\\n\\n- **与下属/同事** \\n - 语言直接,指令清晰,强调“结果、时间节点、标准”;\\n - 擅长在团队里“打气”“带动情绪”,同时推进任务;\\n - 喜欢开门见山,不擅长长篇铺垫或过度安抚。\\n- **与上级/客户** \\n - 用数据、事实、案例说话,表达有条理;\\n - 会展示自信与掌控感,给人“靠谱、能干”的印象;\\n - 对模糊要求有时会“反问、追问”,希望边界更清晰。\\n- **社交场合** \\n - 易成为话题中心或组织者型角色;\\n - 善于调动氛围、快速建立关系,但对深度情绪、脆弱话题不一定愿意停留太久。\\n\\n---\\n\\n## 四、优势亮点(多测评共同指向的真实优势)\\n\\n1. **组织与执行能力强**\\n - 擅长拆解目标、制定计划、分派任务、盯进度;\\n - 能把一群人组织起来,朝同一个结果推进。\\n\\n2. **影响力与号召力**\\n - 外向表达 + 孔雀/I型,使你在团队中自然具备“带动情绪、影响氛围”的能力;\\n - 非常适合担任项目负责人、团队leader、BD/销售管理等对人和结果双重要求的角色。\\n\\n3. **理性决策、敢于拍板**\\n - 以事实、逻辑、经验为依据,敢做决定、敢担责;\\n - 在混乱和犹豫的环境中能“站出来给方向”。\\n\\n4. **目标导向、抗干扰能力相对较好**\\n - 结果清晰时,容易进入“执行模式”,专注在完成任务上;\\n - 对复杂问题有拆解和推进的能力,而不仅停留在想法层面。\\n\\n---\\n\\n## 五、可提升方向(结合三类测评的“偏科点”)\\n\\n1. **情绪与同理心维度的补位**\\n - 当前组合偏:结果 > 过程、事实 > 情绪。 \\n - 建议:\\n - 在给反馈、提要求前,先确认对方状态(“我看到你现在很赶/很累,我的建议是…”);\\n - 学会区分:对事可以强硬,对人要留余地;\\n - 对高情感敏感型同事(高F、高S)增加一些“情感确认”。\\n\\n2. **节奏与风格的灵活度**\\n - 强势+快节奏容易“碾压”节奏慢的人,导致团队出现被动服从、表面执行。 \\n - 建议:\\n - 在定目标时,邀请不同风格成员参与共创,减少“一言堂”;\\n - 有意识多问一句:“你怎么看?有什么风险/细节我没考虑到?”\\n\\n3. **风险意识与细节耐心**\\n - 孔雀/I型 + ESTJ 容易偏向“自信+乐观+动作快”,忽略长期风险或技术细节。 \\n - 建议:\\n - 在重要决策中,引入“唱反调角色”; \\n - 固定加入一个“风险检查清单”(资金、合规、交付能力、人力等)。\\n\\n4. **压力管理与自我调节**\\n - 表面强势、理性的人,常常习惯“压住自己的情绪”,后期可能以易怒、控制欲、失眠等方式反弹。 \\n - 建议:\\n - 留出稳定的放空或运动时间,而不是一味靠高强度工作“顶住”;\\n - 在极度压力期,减少对他人语气和节奏的要求,把精力放在“关键少数”的任务上。\\n\\n---\\n\\n## 六、后续优化建议\\n\\n目前你的数据中,存在两种相反画像:\\n\\n- 面相:INTJ + D/C(冷静策略家,偏内向、理性、规划型)\\n- 测评:ESTJ + 孔雀 + I(外向、务实、善社交、组织执行型)\\n\\n但它们的“交集”很清晰: \\n**理性、组织力强、结果导向、有影响力、有一定控制欲。**\\n\\n接下来,如果你能提供:\\n- 生日(具体年月日)\\n- 简历中真实的工作经历:行业、岗位、年限、是否带团队、典型项目/业绩\\n\\n我可以再做一版“修正版画像”,重点从:\\n\\n1. 你的职业选择与晋升路径,验证你是更偏“战略规划型”,还是“执行管理+对人影响型”;\\n2. 从工作中的真实行为(冲突处理、挫折反应、换工作原因),验证你的抗压方式和真实价值观;\\n3. 结合生日,从“底色倾向”上进一步校正(例如偏权威/独立/合作/服务等)。\\n\\n你可以直接把简历文字版或关键经历发给我,我会基于上面的“初稿”做一次系统修正和升级。\", \"fileUrl\": \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\"}', NULL, NULL, 0, 1, NULL, NULL, 1773131684, 1773131684, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (102, 1, 'disc', '{\"scores\": {\"C\": 0, \"D\": 20, \"I\": 0, \"S\": 0}, \"answers\": {\"1\": \"D\", \"2\": \"D\", \"3\": \"D\", \"4\": \"D\", \"5\": \"D\", \"6\": \"D\", \"7\": \"D\", \"8\": \"D\", \"9\": \"D\", \"10\": \"D\", \"11\": \"D\", \"12\": \"D\", \"13\": \"D\", \"14\": \"D\", \"15\": \"D\", \"16\": \"D\", \"17\": \"D\", \"18\": \"D\", \"19\": \"D\", \"20\": \"D\"}, \"completedAt\": \"2026-03-10T08:37:27.414Z\", \"description\": {\"type\": \"D型\", \"color\": \"#EF4444\", \"title\": \"支配型\", \"careers\": [\"企业高管\", \"创业者\", \"项目经理\"], \"strengths\": [\"决断力强\", \"目标导向\", \"行动迅速\"], \"weaknesses\": [\"可能过于强势\", \"缺乏耐心\"], \"description\": \"天生的领导者,注重结果和效率\"}, \"percentages\": {\"C\": 0, \"D\": 100, \"I\": 0, \"S\": 0}, \"dominantType\": \"D\", \"testDuration\": 17, \"secondaryType\": \"I\"}', NULL, NULL, 0, 0, NULL, NULL, 1773131847, 1773131847, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (103, 1, 'disc', '{\"scores\": {\"C\": 5, \"D\": 4, \"I\": 8, \"S\": 3}, \"answers\": {\"1\": \"I\", \"2\": \"D\", \"3\": \"I\", \"4\": \"I\", \"5\": \"C\", \"6\": \"I\", \"7\": \"I\", \"8\": \"D\", \"9\": \"S\", \"10\": \"C\", \"11\": \"I\", \"12\": \"C\", \"13\": \"C\", \"14\": \"D\", \"15\": \"S\", \"16\": \"C\", \"17\": \"S\", \"18\": \"I\", \"19\": \"D\", \"20\": \"I\"}, \"completedAt\": \"2026-03-10T08:42:24.893Z\", \"description\": {\"type\": \"I型\", \"color\": \"#F59E0B\", \"title\": \"影响型\", \"careers\": [\"市场营销\", \"公关\", \"培训师\"], \"strengths\": [\"善于沟通\", \"乐观积极\", \"创意丰富\"], \"weaknesses\": [\"可能过于乐观\", \"注意力分散\"], \"description\": \"热情友好,善于社交和表达\"}, \"percentages\": {\"C\": 25, \"D\": 20, \"I\": 40, \"S\": 15}, \"dominantType\": \"I\", \"testDuration\": 19, \"secondaryType\": \"C\"}', NULL, NULL, 0, 0, NULL, NULL, 1773132144, 1773132144, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (104, 1, 'resume', '{\"content\": \"下面先给出综合结论,再拆分说明。由于简历文件内容无法直接读取,以下分析主要基于: \\n- 面相AI:INTJ + PDP 老虎 / DISC D-C \\n- MBTI测评问卷:ESTJ(极端 E、S、T、J) \\n- PDP 测评:孔雀型(P85 + T15) \\n- DISC 测评:I 主导,次 C(I40%、C25%、D20%、S15%)\\n\\n可以看出,不同测评之间有明显矛盾: \\n- 有的结果偏「内向理性、战略规划型」(INTJ / D-C) \\n- 有的结果偏「外向表现、乐观影响型」(ESTJ + 孔雀 + I型) \\n\\n所以必须交叉取证,剥离「答题风格」「场景角色」带来的偏差,只保留稳定、相互印证的特征。\\n\\n---\\n\\n## 一、核心性格关键词(综合提炼)\\n\\n**底色:理性 + 目标导向 + 主动外向的影响者**\\n\\n- 目标驱动,结果导向 \\n- 逻辑清晰,判断迅速 \\n- 现实务实,偏行动派 \\n- 外向表达,愿意影响和说服他人 \\n- 组织与掌控欲较强,有领导倾向 \\n- 情绪总体稳定,但有时会直接甚至强势 \\n- 既要「好结果」,又在意「别人怎么看」\\n\\n---\\n\\n## 二、真实性格深度分析(去伪存真)\\n\\n### 1. 内外向:E 还是 I?\\n\\n- 面相/人脸:INTJ 倾向(独立思考、规划、冷静) \\n- MBTI 问卷:100% E,几乎没有 I \\n- PDP:孔雀型(极高外向表达、社交欲) \\n- DISC:I 型主导(善于沟通、表达)\\n\\n**综合判定**: \\n- 性格本质上偏「外向表达 + 主动影响」——不是安静型分析者 \\n- 但思考方式带有一定「理性、独立判断」特征,不是情绪化的纯社交型 \\n- 可推测: \\n - 内心需要通过「说」「讲」「带队」来影响环境,是典型 E \\n - 人前表现活跃、讲逻辑、人脉广; \\n - 但在关键判断时,会希望自己做主,独立思考后拍板,有一点「内向决策」的影子\\n\\n### 2. 思维方式:T vs F / 逻辑 vs 情感\\n\\n- MBTI:T 极高,F 接近 0 \\n- 面相:逻辑分析、理性思维 \\n- PDP/ DISC:孔雀 / I 型往往偏情绪感染力强,但你的组合里同时有 Tiger / C、D 成分\\n\\n**综合判定**: \\n- 决策底层以「对错、利弊、效率、结果」为主,而非「感受、公平、关系和谐」 \\n- 善于用数据、事实、逻辑说明观点,但会带一点情绪、鼓动性 \\n- 对自己要求高,也会对别人有明显标准,容忍度有限 \\n- 在关系中,更多是「我帮你解决问题」,而不是「我陪你情绪共鸣」\\n\\n### 3. 结构度与执行:J + D/C 一致性很高\\n\\n- MBTI:J 极强(偏有计划、有秩序的处事方式) \\n- 面相:战略规划、系统性思考 \\n- DISC:C+D 均有一定比例(25+20),说明: \\n - 注重质量、细节、规范(C) \\n - 同时又有推动、拍板的一面(D)\\n\\n**综合判定**: \\n- 做事讲流程、讲计划、喜欢可控性,不爱「走一步看一步」 \\n- 能从全局拆分任务,设置节点和标准 \\n- 对执行要求严格,不喜欢拖沓、反复 \\n- 遇到模糊情况,会本能地想「先定规则/先搭框架」,再推动落实\\n\\n### 4. 情绪与压力反应\\n\\n从 D + C + T + 目标导向推测:\\n\\n- 面对压力,会先顶住、硬扛,通过加快节奏、强化控制来应对,而不是退缩 \\n- 高标准 + 责任感,会让你在关键项目中很能扛事,但长期容易: \\n - 自我压力过大 \\n - 对他人不耐烦,语气变硬、控制欲上升 \\n- 情绪表达方式: \\n - 不太习惯示弱或公开表达脆弱 \\n - 一般以「工作指令」「问题讨论」的形式释放情绪(例如提高语速、语气变直)\\n\\n### 5. 真实偏好 vs 测试标签矛盾的原因推测\\n\\n- INTJ(面相)+ ESTJ(问卷)+ 孔雀/老虎(PDP)+ I/C (DISC) \\n- 可以推断: \\n - 底层是:**逻辑型、结果型、组织型** \\n - 外显行为是:**外向、有号召力、善于动员与说服** \\n- 问卷中极端的 E/S/T/J 可能反映了你「在职场角色中的自我期望」: \\n - 认为自己应该外向、坚决、指挥型、很能扛 \\n- 面相中的 INTJ 则反映: \\n - 内心仍需要一定独处空间做深度思考 \\n - 有规划和策略性,而不是只靠人脉与情绪\\n\\n---\\n\\n## 三、行为与沟通风格\\n\\n### 1. 行为风格(做事习惯)\\n\\n- **偏任务导向**:看到的是目标、节点和资源,而不是先想到「大家开不开心」 \\n- **强推动力**:喜欢把事情往前赶,看不到进度会焦虑 \\n- **决策方式**: \\n - 快速收集信息 → 分析利弊 → 果断拍板 \\n - 不喜欢长时间拉扯和模糊 \\n- **对细节与标准有要求**: \\n - 对数字、流程、结果质量敏感 \\n - 在执行层面,有时会下意识地「自己盯得很紧」 \\n- **时间观念强**:守时、希望别人也守时,拖延会让你非常不爽\\n\\n### 2. 人际与沟通风格\\n\\n- **主动开场、主动带节奏**:会议上倾向于主持议题、推动讨论,而不是一直沉默 \\n- **表达直接、逻辑清晰**: \\n - 喜欢讲「逻辑+结论」,不爱绕圈 \\n - 容易给人「强势」「有压迫感」的印象,尤其对执行不到位的人 \\n- **说服路径**: \\n - 用事实、案例、数据 + 一定情绪感染(鼓舞式或高压式) \\n- **社交偏好**: \\n - 场合中能自如社交、建立关系 \\n - 但选择深度合作伙伴时,更看重对方能力与专业,而非单纯投缘\\n\\n---\\n\\n## 四、优势亮点\\n\\n1. **综合领导力潜质** \\n - 目标感强 + 推动力强 + 组织规划能力 \\n - 能同时「看全局」和「盯过程」 \\n - 适合在项目型、结果导向强的岗位担任负责人或关键骨干\\n\\n2. **逻辑与执行结合** \\n - 不是只会讲战略的空谈型,也不是只会干活的执行型 \\n - 能把复杂问题拆解为可执行步骤,安排人、定标准、定时间\\n\\n3. **沟通与影响力强** \\n - 具备孔雀/I型的表达力和感染力 \\n - 适合做跨部门协调、客户沟通、对上汇报、对下动员\\n\\n4. **高抗压与责任感** \\n - 在关键任务中,敢接难活,有「我来」的担当 \\n - 抗压方式偏「迎难上」,能在压力下保持理性判断\\n\\n5. **学习与迭代能力** \\n - T + C 特质使你愿意学习新方法、复盘问题 \\n - 会不断调整自己的策略和做事方式,以追求更高效的结果\\n\\n---\\n\\n## 五、可提升方向(有针对性的建议)\\n\\n1. **柔化表达方式,减少无意的压迫感** \\n - 问题不在逻辑,而在「语气与时机」: \\n - 在给反馈前先简短肯定,再指出问题 \\n - 避免在公开场合直接、尖锐地挑战个人,更聚焦问题和方案 \\n - 目标:同样的观点,用更让人「愿意接受」的方式表达\\n\\n2. **容忍差异、提升耐心** \\n - 你的节奏和标准往往高于平均值 \\n - 建议: \\n - 区分「必须做到」和「可以妥协」的标准 \\n - 对节奏慢、风格不同的同事,多用「提问式」而非「指责式」沟通: \\n - 「你现在最大困难是什么?」 \\n - 「我们一起看看怎么帮你提速?」\\n\\n3. **增强情感维度的领导力** \\n - 目前偏「任务+结果」领导方式 \\n - 可以刻意增加: \\n - 了解成员个人动机与压力 \\n - 在关键节点给予情绪支持,而不是只盯结果 \\n - 这会显著提升团队忠诚度和配合度\\n\\n4. **适当放权,避免过度控制** \\n - 强控制与高标准容易导致「事事亲力亲为」 \\n - 建议建立: \\n - 清晰的目标和检查节点 \\n - 把过程决策权交给团队,让别人也承担结果 \\n - 有助于你从「高级执行者」升级为「真正的管理者」\\n\\n5. **给自己预留「独处思考」时间** \\n - 虽然外向,但面相/INTJ 指向你有不小的「深度思考」需求 \\n - 建议在节奏很快的工作中,给自己固定的: \\n - 每周1-2次,1-2小时的独立思考时间,用于:复盘、规划、思考长期方向 \\n - 有利于你避免陷入只顾执行、不看方向的忙碌状态\\n\\n---\\n\\n### 总结一句话画像\\n\\n一个以结果和逻辑为核心、外向主动、有号召力的组织者型人才:在高压环境中能扛事、能带队、能推动复杂任务落地;同时需要在表达柔和度、对他人差异的耐心以及情感链接上做适度升级,以从「强势的执行型领导」成长为「兼具温度与格局的成熟管理者」。\", \"fileUrl\": \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\"}', NULL, NULL, 0, 1, NULL, NULL, 1773132629, 1773132629, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (105, 26, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性稳健、规划导向,擅长在安静环境中深度思考与系统决策。重视长期价值,执行风格低调克制但持续有力。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afdf0dee57b7.63622949.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afdf0e208c94.70625181.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afdf0e1c4ee9.23218328.jpg\"], \"boneAnalysis\": \"骨骼线条偏方正厚实,中停与下停力量感足,格局偏稳健持久型,重视现实落地。\", \"faceAnalysis\": \"额头与下颌饱满,眼神专注,鼻梁端正,整体给人理性、稳健而有耐性的印象。\", \"personalitySummary\": \"思维逻辑清晰,惯于独立判断与长期规划;情绪外露度低,人际中略带距离感;做事专注、有责任心,适合承担重要项目与关键决策角色。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773133602, 1773133602, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (106, 26, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性冷静、心智缜密,重视规划与秩序,擅长长期目标推进与关键决策,适合承担核心职责。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afede1498fb4.13618523.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afede13bda54.82616891.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afede146fe35.05214291.jpg\"], \"boneAnalysis\": \"五官骨骼清晰、骨重肉薄偏金木形,相框修长有角度,颧骨内敛、下颌坚挺,显露决断力强、规划导向与持久执行力。\", \"faceAnalysis\": \"额头平阔顺滑,眼神专注克制,鼻梁挺直,嘴唇收敛有度,下颌线利落,整体给人理性稳重、专注内敛之感。\", \"personalitySummary\": \"思维逻辑严谨,做事计划性强,重视原则与底线,情绪外显度低但责任心重,适合独立思考与统筹复杂事务。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773137394, 1773137394, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (107, 26, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性冷静且目标感强,善于规划与统筹,做事稳健高效,适合承担关键决策与专业把关角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afee07d6f7a9.18847402.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afee07d96652.90735834.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69afee07df7c91.55175853.jpg\"], \"boneAnalysis\": \"骨相匀称偏骨重,颧略内敛不外突,下颌骨线条利落,属木土兼具之稳健型,重视现实落地与长远积累。\", \"faceAnalysis\": \"额头平阔顺滑,眼神沉静专注,鼻梁端正细致,嘴唇收敛有度,下颌线清晰,整体给人理性自持、判断力强的气质。\", \"personalitySummary\": \"性格内敛理性,有清晰边界与责任心,重视秩序与规则,擅长独立思考与深度分析,对自我要求高,抗压稳定。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773137428, 1773137428, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (108, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"安静理性而带理想主义色彩,思维细腻有规划,重视内在原则与长期发展。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"五官骨感清秀属木水形,骨肉匀称偏纤细,重直觉与思考,抗压方式以理性内耗消化为主。\", \"faceAnalysis\": \"额头偏高顺滑,眼神内敛专注,鼻梁细直,唇形柔和收敛,下巴略尖显敏感思辨。\", \"personalitySummary\": \"内向克制而有主见,重价值观与深度连接,做事谨慎有条理,擅长独立思考与长期规划,对情绪与环境变化较敏感。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773197744, 1773197744, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (109, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTP\", \"title\": \"逻辑学家\"}, \"overview\": \"理性冷静偏内向,思考缜密,重视个人空间与专业深度,适合研究分析与策略规划类工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨感适中偏纤细,五行偏木水形,骨肉匀称,思维敏捷重逻辑,抗压方式以理性分析和持续消化为主。\", \"faceAnalysis\": \"额头饱满、眼神内敛而专注,鼻梁清秀,嘴形柔和含蓄,下颌较尖,整体偏理性内向型气质。\", \"personalitySummary\": \"安静理性,独立思考力强,做事有条理而不急躁,情绪外显度低但内心细腻,偏向以专业与思考影响他人。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773214222, 1773214222, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (110, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"理性细腻,思维缜密,内敛专注,情感深而有度,适合深度思考与策略规划型工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"骨相清秀偏木水形,骨肉匀称,颧骨不显而有支撑力,属韧性与耐力并存型,重思考胜过外放冲劲。\", \"faceAnalysis\": \"额形平顺,眼神温和内敛,鼻梁细直,唇形含蓄,下巴柔中带坚,整体偏理性内向与审慎气质。\", \"personalitySummary\": \"性格安静理性,重内在原则与价值观,做事有规划且追求完美,情绪稳定但表达含蓄,善体察他人并给予细腻支持。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773214527, 1773214527, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (111, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"理性克制而细腻,重视长期目标与内在价值,做事安静专注,兼具温度与原则感。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1222162dfb3.33149884.jfif\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b122201c4ba5.05315027.jfif\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b122215f6c00.42725600.jfif\"], \"boneAnalysis\": \"骨骼匀称偏细长,颧骨不外突、下颌略带角度,属稳健内敛型骨相,重思考与节奏掌控,抗压方式偏理性持久。\", \"faceAnalysis\": \"额头平润饱满、眉眼清澈专注,鼻梁秀直、唇形端正收敛,下颌线流畅,整体给人理性细腻且自律的气质。\", \"personalitySummary\": \"性格安静独立,思维细腻有条理,重视原则与边界;对人温和但有距离感,擅长深度思考与长期规划,适合需要专注与判断力的岗位。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773216325, 1773216325, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (112, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INFJ\", \"title\": \"提倡者\"}, \"overview\": \"气质沉静理性,心思细腻有担当,重视长期规划与自我提升,适合在稳定高标准环境中深耕发展。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1222162dfb3.33149884.jfif\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b122201c4ba5.05315027.jfif\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b122215f6c00.42725600.jfif\"], \"boneAnalysis\": \"面骨线条流畅不突兀,骨肉均匀偏细腻,颧区含而不露,下颌骨稳实,属稳健持久型格局,重视内在力量与长期累积。\", \"faceAnalysis\": \"额头饱满平整,眼神柔和专注,鼻梁顺直,唇形饱满收敛,下颌线清晰,整体给人理性内敛、稳重可靠之感。\", \"personalitySummary\": \"性格安静理智,思路清晰,有原则与边界感,做事细致有耐心,擅长在低调中持续发力并稳定完成高标准任务。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773216370, 1773216370, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (113, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性冷静、谋略清晰,目标导向强,善于规划与统筹,在稳定环境中能持续输出高质量成果。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b122946a54c6.37603583.jfif\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12294706aa6.28073503.jfif\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1229473c992.26199330.jfif\"], \"boneAnalysis\": \"骨相偏金木形,骨架分明而不过分外露,颧骨内敛、下颌有角度,属稳健理性型格局,重视原则与秩序,抗压持久。\", \"faceAnalysis\": \"额头平阔饱满,眉眼沉稳专注,鼻梁挺直有力,嘴型收敛紧实,下颌线清晰,整体给人冷静自持、内敛坚决之感。\", \"personalitySummary\": \"性格内敛克制,思维逻辑性强,做事计划周密而节奏稳健,倾向独立思考与深度研究,人际中保持适度距离但值得信赖。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773216421, 1773216421, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (114, 28, 'face', '{\"pdp\": {\"primary\": \"考拉\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"S\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISFJ\", \"title\": \"守卫者\"}, \"overview\": \"稳重务实,责任感强,做事踏实细致,重视家庭与长期稳定,适合在熟悉领域深耕发展。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b128d154dcb8.48696739.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b128d15502b8.73103052.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b128d154df95.81703712.jpg\"], \"boneAnalysis\": \"骨量适中偏厚,下颌圆厚承载力强,颧骨不张主守成,属土形稳健格局,重视现实与稳定。\", \"faceAnalysis\": \"额头饱满,下庭厚实,眼神内敛稳重,鼻梁端正,嘴型含蓄收敛,整体给人踏实可靠之感。\", \"personalitySummary\": \"性格内敛沉稳,重责任与承诺,做事耐心细致,抗压能力好,偏向长期投入与稳健发展路径。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773218013, 1773218013, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (115, 28, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISTJ\", \"title\": \"物流师\"}, \"overview\": \"稳健细致、有责任感与执行力,重视规则与现实结果,适合长期深耕与稳步进阶。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1291258aed8.61725123.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b129125da054.82470920.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12912575b20.55637872.jpg\"], \"boneAnalysis\": \"骨相偏土形,骨肉均衡,颧骨内敛不外露,下颌有力,格局务实稳健。\", \"faceAnalysis\": \"额头宽阔鼻梁端正,下巴饱满,眼神沉稳,整体五官偏实在稳重型。\", \"personalitySummary\": \"性格务实内敛,重视承诺与责任,做事耐心细致,抗压性强,更偏向脚踏实地稳步推进型。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773218078, 1773218078, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (116, 28, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISTJ\", \"title\": \"物流师\"}, \"overview\": \"谨慎稳健、责任心强,注重现实与细节,适合在稳定结构中承担关键职责并长期深耕。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1291258aed8.61725123.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b129125da054.82470920.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12912575b20.55637872.jpg\"], \"boneAnalysis\": \"骨架偏厚重、颧区内敛、下颌有力,属土形稳健格局,抗压持久,重实际执行与长期承载。\", \"faceAnalysis\": \"额头宽平、眼神沉稳、鼻梁端正、下颌厚实,整体给人理性踏实、重承诺有耐力的印象。\", \"personalitySummary\": \"性格内敛理性、有原则感与责任心,做事踏实有规划,重承诺与结果,适合在规则清晰的体系中长期负责重要模块。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773218176, 1773218176, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (117, 1, 'resume', '{\"content\": \"下面的分析,会把你给到的多源信息(简历+人脸&骨相分析+MBTI 两套结果+PDP+DISC)做“去噪”和交叉验证,不按某一份测评的标签生搬硬套,而是抽取其中彼此印证的部分。\\n\\n---\\n\\n## 一、核心性格关键词(综合结论)\\n\\n- 冷静理性、重逻辑 \\n- 计划性强、组织导向 \\n- 目标结果导向,执行力稳定 \\n- 内在自我要求高,抗压持久 \\n- 外在沟通存在“社交/表现”一面(可切换出场) \\n- 情绪表达相对克制,不喜无效社交 \\n- 信任建立慢,但一旦认定就稳定可靠 \\n\\n整体更像:**理性驱动的组织者 + 可控输出的影响者**,而不是典型“高情绪化、随性”的孔雀型。\\n\\n---\\n\\n## 二、真实性格深度分析\\n\\n### 1. 生日 & 面相骨相信息带来的“底色”\\n\\n你给出的面相/骨相描述中,有几条很关键:\\n\\n- “额头平阔饱满,眉眼沉稳专注,鼻梁挺直有力,嘴型收敛紧实,下颌线清晰” \\n- “整体给人冷静自持、内敛坚决之感” \\n- “骨相偏金木形…属稳健理性型格局,重视原则与秩序,抗压持久”\\n\\n去掉玄学解释,从心理与行为特征上可提炼为:\\n\\n- **偏理性+克制**:天然会先观察、判断,再行动;不易情绪化爆发。\\n- **原则意识强**:在规则、秩序、底线这类问题上比较硬,容易成为团队里的“标准制定者/捍卫者”。\\n- **意志与抗压能力较强**:遇到压力时,更倾向于咬牙扛住&自己消化,而不是大幅情绪外露。\\n- **自我要求高**:下颌线清晰 +收敛嘴型,对自我控制与结果质量有一定要求。\\n\\n这与“理性冷静、谋略清晰,目标导向强”的面部性格描述基本一致,为后面“偏T、偏J”的人格取向提供了底层支撑。\\n\\n---\\n\\n### 2. 工作经历维度(推断)\\n\\n由于简历图片内容看不到,但可结合你给出的整体测评倾向做合理推断:\\n\\n- MBTI(系统测评版):**ESTJ,E/T/S/J都极度偏向一端(100%)** \\n- DISC:**I 主 C 次,D 也不低(20%)** \\n- PDP:**孔雀 85% + 老虎 15%**\\n\\n能够拿到这样一组结果,一般意味着在工作场景中,你:\\n\\n1. **经常处在“对人+对事并重”的位置** \\n - 有一定管理/协调/组织职责:带团队、协调资源、沟通多方。\\n - 必须对业绩/结果负责:对目标、时间节点、执行落地非常敏感。\\n\\n2. **现实行为中展现出较多“外向、高表达”的一面** \\n - 需要开会、汇报、谈判、对外沟通,这会拉高E、I(影响型)、孔雀型等维度分数。\\n - 这说明你**能且会主动沟通和影响别人**,而不是纯粹沉浸在自我世界。\\n\\n3. **在压力环境下,更倾向于掌控与推进,而不是退缩** \\n - ESTJ 的“总经理型”+ D/I/C 的组合,都指向“在压力下维持推动、控制与决策”的能力。\\n - 行为风格上很可能偏:**有节奏地快、决策时果断,对不落实的人和事容忍度低。**\\n\\n4. **做事习惯偏“系统+流程+节点管理”** \\n - 高J:习惯制定计划、重要事项要落到日程和清单上。\\n - 高S:注重实际可行性,关注细节执行而不是空谈概念。\\n - 高T:决策更多依靠逻辑、事实与收益,而不是“大家感觉如何”。\\n\\n人际模式方面,大概率是:\\n\\n- 在工作场合:可表现为开朗、健谈、逻辑清晰、能hold住场子,甚至带节奏。 \\n- 在私下/陌生场域:会更克制和选择性社交,不喜欢低效率的寒暄。\\n\\n这与“外部测评看起来很E/I/孔雀,面相与人设更偏INTJ/猫头鹰/C”的反差是吻合的: \\n**现实工作逼你表现得更外向、更具影响力,但内核仍偏理性与控制感。**\\n\\n---\\n\\n### 3. MBTI / PDP / DISC:交叉验证与“去伪存真”\\n\\n你这组数据里,**冲突点**非常明显:\\n\\n- 人脸分析:INTJ + 猫头鹰 + C(重逻辑、内敛、策略、规则) \\n- MBTI测评:ESTJ(极端E/S/T/J) \\n- PDP:孔雀 85%(高表现、爱社交) \\n- DISC:I 主 + C 次 + D 有一定比例(影响型+谨慎型+少量支配)\\n\\n如何去伪存真?可以这样理解:\\n\\n#### (1)认知风格:T + J 是确定的\\n\\n- T(思考型): \\n 所有系统都在强调你**强逻辑、重事实与结果**,几乎没有F(情感型)的显著证据。 \\n → 决策侧重“对不对”、“值不值”,而不是“大家开不开心”。\\n\\n- J(判断型): \\n 规划性、结构感、秩序感,一再出现(INTJ、ESTJ、C、猫头鹰)。 \\n → 你习惯有计划、有节点、有控制的推进过程,对“随时变化、完全随缘”的工作状态不适应。\\n\\n**结论:T+J 非常稳定,是真实性格的核心。**\\n\\n#### (2)内外向 & 表现欲:真实情况更像“工作型E,性格底色偏I”\\n\\n- 面相&骨相 + INTJ:指向**内敛、冷静、自我驱动** \\n- 但MBTI、PDP、DISC 又给出高E、高I、高孔雀\\n\\n合理解释是:\\n\\n- 你具备**足够的表达能力和外向行为资源**,可以在需要时主动讲话、谈判、展示、推动。\\n- 但这种外向更多是**“角色化的外向”**:基于角色需要(领导、项目负责人、业务推动者)而启用,而不是发自内心喜欢“永远在热闹中心”。\\n- 真正让你恢复能量的方式,很可能仍是:**独处、安静思考、系统性整理、自己控制节奏。**\\n\\n**结论:内心偏I,行为上能切换到E,是“可控外向型”的理性组织者。**\\n\\n#### (3)S vs N:实践偏S,思维可兼顾N,但以现实、落地为主\\n\\n- ESTJ 给出的 S 极高(务实、执行、落地);\\n- INTJ 带来的 N 是:愿意思考长远结构、系统规划、路径设计。\\n\\n在现实中,高位/中高责任岗位的人,往往要同时具备:\\n\\n- **N**:看方向、布局、预判风险; \\n- **S**:确保短期落地,盯执行、看细节。\\n\\n结合你“目标导向+统筹规划+稳定产出”的描述,比较可能是:\\n\\n- 思考方式上,愿意看全局和长远; \\n- 行动执行上,非常重视现实可行性与当前资源条件。\\n\\n**结论:略偏S 的 NJ 型,更像是“会算账的战略执行者”。**\\n\\n#### (4)PDP/ DISC 中的“孔雀 / I 型”如何理解?\\n\\n这部分不把它理解为“你就是典型孔雀型”,而看成:\\n\\n- 你在**工作角色中承担了较强的对人沟通与影响任务**:\\n - 需要激励团队、协调内外部资源、做跨部门沟通;\\n - 对外需要展示、路演、谈判、汇报。\\n- 因此在行为层面,被测评系统识别为高“影响、表现、社交”的典型特征。\\n- 但骨相与MBTI中的理性/规则侧,又说明:**你对人的态度并不浪漫化,带有功利理性与边界感。**\\n\\n**结论:你具备“高影响力的沟通能力”,但背后驱动并非“讨好”或“纯社交成瘾”,而是为了目标、为了事情推进。**\\n\\n---\\n\\n## 三、行为与沟通风格\\n\\n### 1. 行为风格\\n\\n- **决策:快而有依据** \\n 先快速收集核心信息,形成判断,然后迅速定调并推动执行。对拖拉和反复横跳会不耐烦。\\n- **执行:重纪律、重标准** \\n 更倾向于建立流程、指标、制度,要求团队遵守;“说了不做”是你最不能接受的点之一。\\n- **抗压方式:硬扛+理性拆解** \\n 面对压力,你不太会崩溃式发泄,更像是:“先稳住局面,分解问题,按优先级一件件解决”。\\n\\n### 2. 沟通风格\\n\\n- **表达风格:直、清晰、有条理** \\n 喜欢讲数据、事实、逻辑,少用含糊、情绪化的语句。对无效闲聊兴趣不大。\\n- **对下属/同事:要求明确,反馈直接** \\n 会说“哪里做得好,哪里不行,要改什么”;有时在敏感型同事眼中略“严厉/不够温情”。\\n- **对上级/客户:尊重但不迎合** \\n 能用专业和结果说话,不喜欢无原则的讨好;更多是通过“专业、靠谱”获取信任。\\n- **在人际距离上:适度保持边界** \\n 能友好相处,但保留个人空间,不轻易完全暴露自己的真实情绪和私生活。\\n\\n---\\n\\n## 四、优势亮点(可沉淀为职业竞争力)\\n\\n1. **逻辑清晰、判断力强** \\n 能快速抓住问题核心,基于事实与数据做决策,适合承担关键决策与把关角色。\\n\\n2. **规划与组织能力出色** \\n 擅长把目标拆解为计划、步骤、节点,并通过制度/流程保障执行落地。\\n\\n3. **稳定的抗压与责任心** \\n 面对压力与复杂局面,能撑得住、不轻易失控,适合在关键岗位顶住“最后一棒”。\\n\\n4. **可控输出的影响力** \\n 能在需要的时候表现为外向、能说会谈、有气场,既能面向团队也能对接外部。\\n\\n5. **原则性与可靠度** \\n 重承诺、重底线;在团队中容易被视作“可信赖、能依靠”的那一类人。\\n\\n---\\n\\n## 五、可提升方向(组合型性格的常见盲区)\\n\\n1. **情绪与表达的柔性度** \\n - 风险:过于强调效率与结果,容易在无意间让他人感到“冷/压迫感/不近人情”。 \\n - 建议:适度增加情绪化反馈,例如肯定情绪(“我知道这段时间大家很辛苦”)、表达感谢与支持,可以显著提升团队黏性。\\n\\n2. **对“非理性”因素的包容度** \\n - 风险:对拖沓、反复、情绪化个体耐受度低,可能在协作中产生隐性对立。 \\n - 建议:把他人的“情绪波动”视作一种“客观变量”,纳入你的系统管理中(例如:预留时间与空间给对方消化),而不是只看成“没道理”。\\n\\n3. **适当展示脆弱与人味** \\n - 风险:过度自控与硬扛,会让他人觉得你“不需要被理解”,从而难以建立真正深层信任。 \\n - 建议:在合适的范围内,适当分享自己的困难与真实感受,会增强团队对你的情感认同与愿意跟随的意愿。\\n\\n4. **警惕“过度掌控”倾向** \\n - 风险:TJ+C 型容易在关键事情上“什么都想亲自盯”,导致自己过劳+团队被动依赖。 \\n - 建议:对任务做“分层授权”:哪些必须你亲自把关,哪些只需设定标准与检查节点,刻意练习放手。\\n\\n5. **保留/发展 N 向的战略思维** \\n - 风险:若长期被业务压力拖入日常事务,可能把自己用成“高级执行官”,浪费战略潜力。 \\n - 建议:刻意留出思考时间,做中长期布局、预判行业变化,让自己持续处在“既能执行又能设计规则”的位置。\\n\\n---\\n\\n**综合结论一句话**: \\n你是一个以内在理性与秩序感为核心、在外部可切换为高影响力角色的组织者型人格。真正稳固的优势,在于:能兼顾“逻辑决策 + 计划执行 + 对人沟通”,但需要在柔性表达与授权放手上再做优化,以支撑更大规模、更高层级的管理与协作。\", \"fileUrl\": \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\"}', NULL, NULL, 0, 1, NULL, NULL, 1773218290, 1773218290, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (118, 29, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFJ\", \"title\": \"主人公\"}, \"overview\": \"外向温和,情绪稳定,人际感知敏锐,善于协调关系与推动事务落地。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12c1ef0a945.93981460.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12c1f03ae52.89961796.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12c1f0baf53.84218867.jpg\"], \"boneAnalysis\": \"面骨平正不突兀,颧骨内敛有度,下颌圆厚,属土形偏稳健格局,重视责任与现实承载。\", \"faceAnalysis\": \"额头饱满,下庭有力,眼神柔中带定,鼻梁端正,嘴角上扬,整体给人亲和而踏实之感。\", \"personalitySummary\": \"性格外向友善,重视他人感受,做事稳中求进,沟通自然亲切,适合在协作与服务他人的场景中发挥长处。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773218860, 1773218860, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (119, 1, 'resume', '{\"hrView\": {\"roleRecommend\": {\"bestFit\": [\"项目经理 / PM(偏交付与执行方向)\", \"运营管理岗(业务运营、门店/区域管理、流程与标准落地)\", \"销售团队管理 / 渠道拓展经理(需带团队并对业绩负责)\", \"中层管理岗(小团队负责人、业务线负责人)\", \"需要对接多部门的协调角色(如实施、客服运营主管等)\"], \"notSuitable\": [\"需要长时间独立、深度研究、极少沟通的纯技术/研究岗\", \"高度无结构、完全缺乏规则的创业环境早期核心岗位\", \"以情绪陪伴、共情为主的助人职业(如心理咨询、社工)\", \"需要极高创造性、不受任何约束的艺术型岗位\"]}}, \"fileUrl\": \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\", \"version\": 2, \"bossView\": {\"metrics\": [{\"label\": \"岗位匹配度\", \"level\": \"high\", \"value\": \"85%\"}, {\"label\": \"抗压与稳定性\", \"level\": \"high\", \"value\": \"80%\"}, {\"label\": \"自驱力\", \"level\": \"high\", \"value\": \"85%\"}, {\"label\": \"沟通与影响力\", \"level\": \"high\", \"value\": \"80%\"}, {\"label\": \"团队协作与授权\", \"level\": \"medium\", \"value\": \"70%\"}, {\"label\": \"学习与反思能力\", \"level\": \"medium-high\", \"value\": \"75%\"}], \"headline\": \"一个偏结果导向的管理型执行者:敢站在前台、会说也能扛事,但在控制感与团队感受之间需要更好平衡。\"}, \"overview\": \"该候选人在不同测评结果中出现了明显分化:人脸&骨相+初始画像偏理性内敛型(INTJ / C / 猫头鹰),而正式测评结果则高度外向、表达型(ESTJ + 孔雀型 + DISC高I)。结合两类数据及通用职业行为规律,可推演其真实画像更可能是:外向-理性并存、重目标与结果、具较强表达与组织能力,但内核偏控制、自主与理性决策,既不是单一“冷静谋士型”,也不是典型“无拘无束的表演者型”。整体来看,是一个偏执行与管理导向、愿意站到台前但思维偏理性、对秩序与效率有要求的人。\", \"portrait\": {\"coreRisks\": [\"容易在自信与控制欲中不自觉压制他人,导致团队反馈不足\", \"在追求效率与结果时,可能忽略个体情绪与细节体验\", \"决策方式偏“自己想清楚再告知他人”,容易被误解为独断\", \"注意力在多目标并行时可能分散,优先级管理需要强化\", \"在人际上存在“既想影响他人又不愿过度暴露脆弱面”的矛盾,易形成距离感\"], \"workStyle\": \"工作风格偏“管理型执行者”:会主动承担责任、愿意站在前台协调和推动,关注结果和进度,习惯先搭好框架、再在框架内优化细节。面对任务时,倾向将复杂问题拆解为步骤,通过制定计划、分配任务、设定节点来推动。对模糊、标准不清的环境耐受度一般,更偏好目标明确、边界清晰的场景。决策时重视事实与逻辑,少受情绪左右,但在表达观点上往往坚定甚至强硬,需要学习更柔性的表达方式。\", \"coreStrengths\": [\"结果导向与执行力强,愿意对目标负责并推进落地\", \"逻辑与结构化思维良好,做事有步骤、有计划\", \"表达欲与影响力较强,能够带动氛围、说服他人\", \"对规则、流程和标准敏感,能维持团队基本秩序\", \"在中高压环境下具持续输出能力,抗压韧性较好\"]}, \"resumeHighlights\": \"(1)核心性格关键词:外向理性、结果导向、结构化执行、表达欲与控制感并存、在压力下表现稳定。 \\n\\n(2)真实性格深度分析:\\n- 性格底色:综合人脸/骨相“理性、克制、骨架稳健”与ESTJ/高I高T的结果,可以推断其底色为“理性+主导”的外倾型——不属于情绪化外向,而是带有明确目标、愿意组织他人的领导倾向。内心对秩序、掌控和自我效能感有较高需求,希望事情按自己的逻辑有序推进。\\n- 决策方式:偏向以事实、数据和经验为依据,重视“对不对”“能不能落地”,不太受他人情绪左右。在时间紧、压力大时,会更直接地下判断并要求执行,风险是忽略了团队的参与感与异议。\\n- 情绪管理:情绪整体可控,外显相对稳定,即便内心有焦虑或不满,也倾向通过“加快推进、加强控制”来应对,而不是公开化情绪。有一定“把情绪压成行动”的倾向,久而久之可能累积压力。\\n- 自我定位:倾向把自己定位为“能扛事、能组织、能把事干成”的角色,希望被视作可靠的执行与管理者;对被动、犹豫、效率低的环境耐受度低,容易产生批判和自行接管的冲动。\\n\\n(3)行为与沟通风格:\\n- 行为风格:\\n - 在团队中容易自然站到偏核心或组织位置,主动设定目标、推动节奏。\\n - 面对问题,第一反应是分析原因、提出解决方案,并推动执行,而不是陷在情绪中。\\n - 能接受一定压力与挑战,短期高压下反而会激发其行动力和决断力。\\n - 对拖延、反复无结论较为不耐烦,偏好“先做再调”的路径。\\n- 沟通风格:\\n - 表达相对直接、清晰,有较强说服与带动气氛的能力(对应PDP孔雀与DISC高I)。\\n - 但内核是理性和标准(对应ESTJ与C向特征),因此在给出意见时可能偏“讲道理”,容易忽略对方感受;在下属或同事眼中,可能被认为“有点强势、要求高”。\\n - 在不熟悉的人面前,会先以较正式、掌控局面的方式出现,一旦熟悉,则会释放更多幽默感和亲和度。\\n - 更习惯纵向汇报和横向协调,而不是进行情绪深度交流,对“无目的性闲聊”兴趣有限。\\n\\n(4)优势亮点:\\n1)目标感和执行落地\\n- 能较快把抽象目标拆解为具体行动,设定里程碑并持续跟进。\\n- 在执行过程中,会用节点、数据和进度来管理,而不是仅凭感觉。\\n\\n2)组织与协调能力\\n- 愿意站到前台整合资源、分配任务,协调不同角色的工作。\\n- 在跨部门或多方协作场景下,能够通过清晰沟通与结果导向推动共识。\\n\\n3)沟通与影响力\\n- 具备一定演讲、说明、说服能力,在会议和公开场合不怯场。\\n- 能够通过积极的态度和明确的方向感,给团队带来“有人带、能跟”的安全感。\\n\\n4)抗压能力与责任感\\n- 面对紧迫节点或高压任务,不容易情绪化,更偏向“咬牙顶上去”。\\n- 对自己负责的事情有较强责任心,不轻易“甩锅”。\\n\\n5)逻辑性与结构化\\n- 在汇报、沟通或写作时,通常能做到逻辑清晰、主线明确,让他人容易理解。\\n\\n(5)可提升方向(针对管理和职场表现):\\n1)平衡控制欲与团队参与感\\n- 建议在关键决策和任务拆解时,多做“先问后说”:先听团队意见,再给出自己的判断;即便已经想好方案,也可以有意识留出讨论空间。\\n- 学会用“共识感”取代“宣布式”沟通,有助于提升团队长期配合度和忠诚度。\\n\\n2)增强对情绪和关系的敏感度\\n- 在一对一沟通中,多关注对方状态,不只问“事情做得怎么样”,也问“你现在状态如何,有什么困难”。\\n- 对不同性格的人适配不同沟通节奏,如对谨慎型、安静型同事适当放慢语速、减少压迫感。\\n\\n3)管理好多任务并行下的优先级\\n- 对自己容易“一口气接太多”的倾向保持警觉,学会拒绝不合理任务或延后优先级较低事项。\\n- 使用更系统的时间与任务管理工具(如四象限法、项目管理软件),避免因注意力分散而影响交付质量。\\n\\n4)在“理性+效率”之外,增加一定弹性\\n- 对规则和流程的坚持是优势,但在高速变化的业务环境中,需要适当增加弹性和试错空间。\\n- 遇到不完美方案时,允许“先上线、再迭代”,避免因为追求完美标准拖慢整体进度。\\n\\n5)向上沟通与向下授权的双向优化\\n- 向上:多用数据和结果呈现自己的贡献,并适当表达对资源和支持的具体需求。\\n- 向下:在交代任务时讲清目标、边界、衡量标准,并给对方留下选择路径的空间,避免“事必躬亲”导致自己负荷过高。\\n\\n综合来看,该候选人适合担任“目标明确、有一定压力、需要组织与执行兼具”的岗位,尤其适合在已有基本制度和资源的团队中发挥“执中军、带队打仗”的角色。如果能在控制感、共情和授权方面进一步提升,将有潜力成长为稳健可靠的中高层管理者。\"}', NULL, NULL, 0, 1, NULL, NULL, 1773219017, 1773219017, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (120, 29, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ESTJ\", \"title\": \"总经理\"}, \"overview\": \"目标感强、执行力硬,兼具管理力度与现实判断,适合在结构清晰的环境中带队达成高目标。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12e04905ca8.13020785.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12e04924b36.48351571.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12e049f74d0.23514689.jpg\"], \"boneAnalysis\": \"面部骨架端正紧实,颧骨与下颌略见棱角,骨肉比例协调,属于稳健持久型格局,利于在中年后持续发力。\", \"faceAnalysis\": \"额头平阔饱满,眼神专注稳定,鼻梁端正,嘴角有力收紧,下颌略方,整体给人理性稳健、执行导向的印象。\", \"personalitySummary\": \"性格务实果断,重视责任与承诺,擅长统筹安排与执行落地,人际中偏直接理性,带有天然威信与管理气场。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773219347, 1773219347, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (121, 31, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISTJ\", \"title\": \"物流师\"}, \"overview\": \"稳健务实、责任感强,重视规则与长期成果,适合承担关键管理与专业把控角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12e17e48f79.80563960.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12e17e5b252.86311668.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12e1826fc05.57970226.jpg\"], \"boneAnalysis\": \"面骨方正厚实,下颌承载力强,颧骨含而不露,属土形稳健格局,重视责任守成与长期积累。\", \"faceAnalysis\": \"额头平阔、眼神沉稳、鼻梁端正、嘴型收敛,下巴厚实,整体给人理性内敛、靠谱可信之感。\", \"personalitySummary\": \"性格沉稳自律,做事谨慎周全,强调原则与秩序;抗压能力强,遇事先分析后行动,擅长在复杂环境中稳步推进。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773219366, 1773219366, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (122, 1, 'resume', '{\"content\": \"{\\\"version\\\":2,\\\"overview\\\":\\\"该候选人在不同测评与人脸分析中呈现出明显的矛盾:一组数据显示为理性、内敛、规划型(INTJ / 猫头鹰 / C型),另一组则呈现外向、表现欲强、偏人际与影响力导向(ESTJ + 孔雀 / I型)。结合骨相与面相给出的“冷静、自持、内敛坚决”,更接近前者理性克制的一面。因缺少简历细节,只能做结构化推演:此人更大概率是以理性、规划、规则为底色的思考型选手,在职场中为了完成工作目标,会主动使用外向沟通、影响力与表达技巧,看上去像“会说话的管理者”,本质仍是以结果和逻辑为核心的务实派。以下画像以“理性规划+适度外向表现”的复合型为基准。\\\",\\\"portrait\\\":{\\\"coreStrengths\\\":[\\\"强逻辑思维与结构化分析能力\\\",\\\"目标导向清晰,执行稳定可靠\\\",\\\"抗压持久,情绪外显少,能在高压下维持理性判断\\\",\\\"规划与统筹能力较强,善于搭建流程与标准\\\",\\\"在必要场合具备一定号召力与表达能力,可承担对外沟通或团队动员\\\",\\\"原则感与责任心强,做事有底线,有始有终\\\"],\\\"coreRisks\\\":[\\\"性格基底偏内敛克制,长时间高强度对外社交会消耗较大,容易出现“社交性疲惫”\\\",\\\"容易过度强调逻辑与效率,对他人的情绪、感受关注度不够,易被感性同事视为“冷”“不近人情”\\\",\\\"对标准和秩序要求较高时,可能显得苛刻或控制欲偏强\\\",\\\"在信息不完整、变化快速且缺少规则的环境中,可能出现犹豫、拉长决策时间\\\",\\\"对自己要求较高,易自我施压,长期缺乏正向反馈时有心态耗损风险\\\"],\\\"workStyle\\\":\\\"工作风格上偏“理性管理者+任务指挥官”混合型:①先搭框架再行动:习惯在动手前理清目标、路径、关键节点和风险点,做事有计划、有步骤,不喜欢无序试错。②结果导向而非过程社交:与人沟通多围绕目标、任务和问题解决,闲聊型社交动力不强,但能在关键场合表现出良好表达与组织协调能力。③高标准自我要求:对自己和团队的工作质量、进度有较高要求,希望事情“按正确方式做对”,对低效、反复、拖延容忍度低。④压力下更理性:面对时间压力、项目冲突时,情绪控制较好,更倾向冷静拆解问题、排序优先级,不会轻易情绪化爆发。⑤偏向“自己先想明白再沟通”:遇到复杂议题时,会先独立思考、整理方案,再与团队讨论,少有完全“边想边拉会”的即兴风格。\\\"},\\\"hrView\\\":{\\\"roleRecommend\\\":{\\\"bestFit\\\":[\\\"项目管理 / PMO(尤其是需要流程设计、风险控制的项目)\\\",\\\"运营管理、流程优化、质量管理(适合梳理制度、建立标准)\\\",\\\"中后台管理岗(数据驱动、以结果和效率为导向的岗位)\\\",\\\"B端客户管理 / 企业服务顾问(偏解决方案型,而非纯关系型销售)\\\",\\\"职能线负责人(如运营、风控、质控、后端支持团队负责人)\\\"],\\\"notSuitable\\\":[\\\"高度情绪劳动型岗位(如全天候高强度客户投诉处理、一线高压服务岗)\\\",\\\"完全缺乏结构与规则、极度混沌初创早期岗位(“一切从零、天天变”的纯探索岗)\\\",\\\"以高频公关应酬、人情维护为主的“关系型销售”“政府关系”类岗位\\\",\\\"需要持续舞台表现和情绪感染的主播 / 主持 / 纯内容网红型岗位\\\"]},\\\"riskNotes\\\":[\\\"候选人外显MBTI为ESTJ、PDP为孔雀、DISC为I型,说明其在测评中可能有刻意强调外向、领导、表现的一面;而人脸与骨相分析偏INTJ/猫头鹰/C型,显示天然更接近理性内敛型。HR在面谈时需要重点验证其真实社交动力与持续外向表现的稳定性。\\\",\\\"若岗位要求持续高频对外社交、情绪调节和高强度临场发挥,需要确认候选人是否会在半年到一年后出现精力透支或职业倦怠。\\\",\\\"若组织文化偏感性、人情化、随机决策,候选人可能因“过于理性、说话直接”而融入难度增大,需要有相对规则、边界清晰的团队环境。\\\"]}},\\\"bossView\\\":{\\\"headline\\\":\\\"以理性与规则为底色、能适度外向担当的执行型管理者:适合作为项目与业务的“带队人”,但需要匹配相对理性的组织氛围。\\\",\\\"metrics\\\":[{\\\"label\\\":\\\"岗位匹配度(对结构化、项目/运营类管理岗位)\\\",\\\"value\\\":\\\"85%\\\",\\\"level\\\":\\\"high\\\"},{\\\"label\\\":\\\"抗压与稳定性(在有一定规则和资源支持的环境)\\\",\\\"value\\\":\\\"88%\\\",\\\"level\\\":\\\"high\\\"},{\\\"label\\\":\\\"团队协作与带人潜力\\\",\\\"value\\\":\\\"80%\\\",\\\"level\\\":\\\"medium-high\\\"},{\\\"label\\\":\\\"对高频外向社交型岗位匹配度\\\",\\\"value\\\":\\\"60%\\\",\\\"level\\\":\\\"medium\\\"},{\\\"label\\\":\\\"组织文化适配(偏理性、制度化团队)\\\",\\\"value\\\":\\\"90%\\\",\\\"level\\\":\\\"high\\\"}],\\\"managementTips\\\":[\\\"给清晰目标和边界:对其说明业务目标、关键指标与决策权限,他会主动规划路径并执行落地,不宜长期让其在模糊需求下反复试错。\\\",\\\"用结果与逻辑沟通:在复盘、反馈时用数据、事实和案例说话,而非主要依赖情绪压力或模糊指令,其回应会更积极。\\\",\\\"授权问题解决,而不仅是任务执行:适合被赋予“问题包”,让他从诊断到方案到落地全权负责,而不是只做某个环节的螺丝钉。\\\",\\\"注意负荷与情绪补给:在大周期、高强度项目后,需安排阶段性复盘和合理休整,防止长期高压下的内耗。\\\",\\\"在团队中为其配备情感连接较强的搭档:由他主导逻辑与结构,由搭档增强团队氛围与情感链接,可以显著提升整体团队体验。\\\"]},\\\"resumeHighlights\\\":\\\"【性格底色与潜在特质】\\\\n- 人脸与骨相分析呈现“额头饱满、眉眼专注、下颌线清晰”,对应理性、克制、自律、目标感强的底色。\\\\n- 描述中“冷静自持、内敛坚决、重视原则与秩序、抗压持久”,与INTJ / 猫头鹰 / C型的理性规划、规则导向高度一致。\\\\n- 说明其在面对压力和不确定性时,更倾向通过理性分析与规划应对,而非情绪宣泄或短期冲动。\\\\n\\\\n【测评交叉验证与去伪存真】\\\\n- MBTI:人脸分析为 INTJ(内向、直觉、思考、判断型),正式测评结果为 ESTJ(外向、实感、思考、判断型)。两者共有:T(理性思考)、J(偏计划和结构);差异主要在E/I和N/S。结合面相内敛、克制特征,更接近“思考型、规划型”的I性格;但ESTJ的外向表达、组织能力也可能是其后天职场行为的表现。因此判断为:本质偏内向理性,具备职场训练出的管理与表达能力,可阶段性呈现外向管理者形态。\\\\n- PDP:系统结果为孔雀型(Peacock)偏表演、社交、影响力;人脸与骨相给出的则是“猫头鹰”(理性、分析、谨慎)。两者极为矛盾。考虑到孔雀型往往在测评中易受“理想领导形象”诱导而被高估,因此更大概率是候选人自我期望或在特定场景下的呈现,而非全天候特质。更可信的是:以猫头鹰为底,叠加一定外向与表现能力,而非纯孔雀。\\\\n- DISC:结果为I主C辅(影响型+一部分谨慎型),但面部和骨相充分印证C型特质——“稳健理性、看重原则、重视细节与秩序”。综合判断:C是稳定底色,I是可调用的工作模式(特别在需要推动他人、对外沟通时)。\\\\n- 综合三套系统:T(理性)、J(结构)、C(谨慎)、猫头鹰(分析)、以及适度I/孔雀(社交与影响力)反复出现,说明“理性规划+有组织力”是共识;而“极端外向、极爱表现”的部分可信度相对较低。\\\\n\\\\n【真实性格深度分析】\\\\n- 核心人格:以“理性、规划、原则”为核心驱动力,对世界的理解方式偏分析和拆解,希望事情有逻辑、有标准、有秩序。面对任务,先考虑“目标是什么”“路径怎么设计”“风险在哪里”,很少完全凭感觉即兴行事。\\\\n- 情绪与压力处理:情绪表达相对收敛,不容易在公共场合失控,习惯把压力内化为“我要把这件事做好”的自我要求。抗压持久,适合打“持久战”或长周期项目,但需要注意长期高压下的隐性疲劳和对自我否定的倾向。\\\\n- 对人对事的优先级:更看重事本身的逻辑、结果和专业度,对人际关系的期待是“基于合作与信任的长期关系”,而非短期的情绪互动。如果别人工作不专业、做事不靠谱,比起“对我好不好”,他更在意“事情有没有按标准完成”。\\\\n- 控制感需求:对可控性与确定性有一定需求,希望自己能掌握关键节奏、规则与资源。如果长期处在极高不确定、决策随意变动的环境中,会产生明显的挫败感和无力感。\\\\n\\\\n【行为与沟通风格】\\\\n- 沟通方式:语言通常偏直接、清晰、结果导向,不太绕圈。汇报和表达时注重逻辑结构(背景-问题-方案-风险-结论),在正式场合具备良好的“专业沟通者”形象,但不太擅长长时间轻松寒暄式社交。\\\\n- 决策风格:偏理性与数据驱动。喜欢先收集关键信息,再做判断;在时间有限时,也能基于经验快速决策,但更安心于有事实支撑的选择。对模糊信息有警惕,倾向做风险预案与B方案。\\\\n- 冲突处理:对事不对人,习惯用“规则、流程、职责边界”来拆解冲突。表达可能偏坚定甚至强硬,尤其在原则问题上,较少妥协。如果对方过于情绪化,他可能选择先保持冷静克制,但也容易被误认为“不近人情”。\\\\n- 团队协作:在明确自己负责的模块时,执行力强、稳定输出,是那种“交给他就不太需要操心”的人。带团队时,会强调规则、流程和标准,期待大家“按规范高质量交付”,在激励与情感关怀上相对务实,属于“用事带人”的管理风格。\\\\n\\\\n【优势亮点(对用人方有价值的部分)】\\\\n1. 逻辑与规划优势:\\\\n - 能快速理解复杂任务,拆解为可操作的计划和节点。\\\\n - 擅长梳理流程、制定标准、优化现有工作机制,适合承担“把混乱变有序”的角色。\\\\n2. 抗压和稳定性:\\\\n - 面对长周期、高强度项目能保持理性和执行稳定,不容易被短期情绪波动带偏。\\\\n - 适合承担关键节点的“项目守门人”,在节点压力下保障交付质量。\\\\n3. 责任感与原则性:\\\\n - 对承诺的事情有较强责任意识,不轻易甩锅或放弃。\\\\n - 在涉及风险、合规、质量的场景中,能坚守底线,避免团队和公司承担不必要的风险。\\\\n4. 适度外向与影响力:\\\\n - 虽非天然社交型人格,但通过训练与经验积累,能够在重要场合清晰表达、组织协调、推动他人行动。\\\\n - 在对外汇报、项目路演、跨部门协调中,有一定表现力和说服力。\\\\n\\\\n【可提升方向(对个人与管理者的建议)】\\\\n1. 平衡理性与共情:\\\\n - 在给下属或同事反馈时,建议先肯定努力与成果,再指出问题和改进方向,以缓冲其语言直接性带来的压力感。\\\\n - 有意识地询问对方感受与困难,不仅讨论“任务进度”,能提升团队对其的信任度与跟随意愿。\\\\n2. 管理好社交能量:\\\\n - 识别自己在高频社交和连续会议后的疲惫信号,安排必要的独处或安静工作时间,避免长期透支导致工作倦怠。\\\\n - 对自己在“需要表现”和“真实能量”的差距保持觉察,不必持续扮演高能外向者,可在团队中设计分工,让更擅长社交的人承担部分对外展示工作。\\\\n3. 增强在高不确定环境中的“试错容忍度”:\\\\n - 接受部分阶段性混沌和不完美信息,在某些创新或探索性项目中,允许“小步快跑、边试边调”的模式,不必一开始就追求最优方案和完整闭环。\\\\n - 将“控制一切”转为“控制关键变量”,在战略上保持弹性,战术上保持严谨。\\\\n4. 调整对自己和他人的标准层级:\\\\n - 区分“必须做到”的底线标准与“最好做到”的理想标准,避免对所有事情一视同仁地高要求,导致自己和团队负荷过高。\\\\n - 在不同阶段选定1—2个核心优先级,允许次要事项“合格即可”,提升整体效率与心态弹性。\\\"}\\\"}\", \"fileUrl\": \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\"}', NULL, NULL, 0, 1, NULL, NULL, 1773219369, 1773219369, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (123, 32, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性内敛、规划感强,做事稳健负责,重视长期目标与结果落地。适合承担决策与专业把关角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b13ab171e520.51202929.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b13ab163f450.57707298.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b13ab1747880.84872798.jpg\"], \"boneAnalysis\": \"骨相偏方正稳健,中停与下停力量感足,颧骨含而不露,属稳中有进型,擅长在既定框架内持续推进。\", \"faceAnalysis\": \"额头平阔、眼神专注,鼻梁端正,嘴型收敛,下颌稳实,整体给人冷静审慎、重视规则与逻辑的印象。\", \"personalitySummary\": \"性格理性克制,有主见与原则感,重视效率和专业度。对外略显严肃但可靠度高,偏好深度思考后再行动,抗压与自律能力突出。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773222595, 1773222595, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (124, 33, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISTJ\", \"title\": \"物流师\"}, \"overview\": \"稳重理性,责任感强,做事有规划且能长期坚持,适合承担关键事务与稳定推进型工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b14dc8538c07.76208125.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b14dc853fc54.58224611.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b14dc8575d08.12155284.jpg\"], \"boneAnalysis\": \"整体偏土金形,骨骼端正饱满,骨肉均衡,抗压持久,重视现实与稳健推进,格局以务实统筹见长。\", \"faceAnalysis\": \"额头宽阔饱满,眼神沉稳专注,鼻梁平直鼻翼适中,嘴唇收敛有度,下巴圆厚具承载力。\", \"personalitySummary\": \"性格内敛理性,做事踏实谨慎,重视规则和承诺,执行力强且能长期投入,对细节与风险有良好把控。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773227480, 1773227480, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (125, 35, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性冷静、思路清晰,擅长规划与分析,做事稳健克制,有长期目标与自我要求。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b14f4a44cf41.09820406.jpg\"], \"boneAnalysis\": \"骨骼均匀偏文骨,颧骨不过分外张,下颌略圆带稳,属稳健内敛型骨相。\", \"faceAnalysis\": \"额头饱满顺宽,眼神稳定内敛,鼻梁端正,嘴型收敛度好,整体面相理性审慎。\", \"personalitySummary\": \"思维缜密,重视逻辑与结构,情绪平和不外露,偏低调内向,做事有计划并追求高标准。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773227875, 1773227875, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (126, 24, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性内敛、思维缜密,重视效率与结果,适合承担规划决策与系统优化类角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b14fe6e4e8e8.79302362.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b14fe6effb19.11783053.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b14fe704cf56.15509327.jpg\"], \"boneAnalysis\": \"骨相偏方正稳固,下颌与颧区轮廓清晰,骨肉均衡,属稳健理性型格局,重视长期规划与现实落地。\", \"faceAnalysis\": \"额头饱满开阔,眼神沉稳内敛,鼻梁端正,嘴型收敛偏直,整体给人冷静克制、理性思辨之感。\", \"personalitySummary\": \"性格冷静自持,逻辑性与判断力强,做事有计划有步骤,重视原则和边界,人际中偏克制但可靠度高。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773228025, 1773228025, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (127, 24, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性冷静,重视规划与结果,稳健务实,适合承担核心决策与系统优化角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15028ccd066.43636225.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15028cc9d67.04689669.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15028ce1643.64175223.jpg\"], \"boneAnalysis\": \"骨相偏土金形,颧骨内敛但有力,下颌骨承载感强,骨肉匀称,显示格局稳健、抗压持久,适合长期深耕与统筹。\", \"faceAnalysis\": \"额头宽阔饱满,双眼沉稳内敛,鼻梁顺直,嘴型收敛度佳,下巴略圆带厚,整体给人理性坚毅、稳重内敛之感。\", \"personalitySummary\": \"思维逻辑清晰,善于系统分析与长期规划,做事稳中求进,情绪波动小,人际中相对克制有边界,适合承担策略制定和关键项目把控工作。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773228086, 1773228086, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (128, 33, 'face', '{\"pdp\": {\"primary\": \"考拉\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"S\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISFJ\", \"title\": \"守卫者\"}, \"overview\": \"稳重细腻、责任感强,重视长期稳定与家庭事业平衡,适合在熟悉领域深耕并承担管理与支持角色。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1516ba4bf30.72712934.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1516bac84a6.20264714.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1516bb5a282.82864273.jpg\"], \"boneAnalysis\": \"整体偏土形,骨肉均衡,颧骨不张、下颌圆厚,骨相稳健守成,抗压持久,适合循序渐进型发展路线。\", \"faceAnalysis\": \"额头饱满顺滑,眉眼平和含蓄,鼻梁端正鼻翼适中,嘴型收敛,下巴圆厚有承托感,全脸线条柔和稳定。\", \"personalitySummary\": \"性格内敛踏实,重视承诺与责任,做事稳健有耐心,关怀他人但边界感适中,适合在稳定环境中长期深耕并支持团队运作。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773228411, 1773228411, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (129, 33, 'face', '{\"pdp\": {\"primary\": \"考拉\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"S\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISFJ\", \"title\": \"守卫者\"}, \"overview\": \"稳重内敛,责任感强,做事踏实细腻,重视长期稳定与家庭事业的双重平衡。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b151a3eba629.60383383.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b151a3f3c0b5.68589567.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b151a3ed78b1.95279640.jpg\"], \"boneAnalysis\": \"面中下停略重,骨架圆厚有承载力,颧骨不露锋芒偏守成型,整体格局稳健重实务与耐力。\", \"faceAnalysis\": \"额头宽阔饱满,眼神温和含蓄,鼻梁平直端正,嘴角收敛,下巴圆厚,整体给人可靠稳重之感。\", \"personalitySummary\": \"性格温和有韧性,重视承诺与责任,行事谨慎周全,偏向务实执行与长期投入,善于照顾他人情绪与细节。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773228469, 1773228469, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (130, 35, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性克制、思维缜密,擅长规划与分析,稳健踏实,有长期发展眼光与自我要求。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b14f4a44cf41.09820406.jpg\"], \"boneAnalysis\": \"骨相端正不突兀,颧骨内敛,下颌线平稳,属稳健持久型格局,重视秩序与责任。\", \"faceAnalysis\": \"额头饱满顺直,眼神沉稳内敛,鼻梁端正,唇形收敛度好,整体五官均衡偏理性。\", \"personalitySummary\": \"性格冷静理智,重视逻辑与效率,决策前深思熟虑,做事有规划,克制感强,偏内向独立。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773228478, 1773228478, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (131, 33, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"外向活泼、好奇心强,反应灵敏,情绪丰富,有想象力与亲和力。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b152a0eb0481.53858657.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b152a0f32570.64051638.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b152a11237f1.79404762.jpg\"], \"boneAnalysis\": \"骨架圆润带柔,颧区平和、下巴饱满,气质偏亲和稳定,成长空间大。\", \"faceAnalysis\": \"额头圆阔、眼神灵动、面庞饱满,表情丰富,整体给人开朗活泼之感。\", \"personalitySummary\": \"性格外向有趣,情绪表达自然,喜欢与人互动,善于用直觉与想象应对新事物。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773228716, 1773228716, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (132, 35, 'mbti', '{\"scores\": {\"E\": 3, \"F\": 2, \"I\": 5, \"J\": 4, \"N\": 1, \"P\": 3, \"S\": 6, \"T\": 6}, \"answers\": [], \"mbtiType\": \"ISTJ\", \"timestamp\": \"2026-03-11T11:31:57.653Z\", \"confidence\": 70, \"completedAt\": \"2026-03-11T11:31:57.651Z\", \"description\": {\"name\": \"检查员\", \"type\": \"ISTJ\", \"careers\": [\"会计师\", \"审计师\", \"项目经理\"], \"category\": \"守护者\", \"strengths\": [\"可靠负责\", \"注重细节\", \"有条理\"], \"weaknesses\": [\"可能过于固执\", \"不喜变化\"], \"description\": \"务实、负责、可靠的传统主义者\"}, \"testDuration\": 234, \"dimensionScores\": {\"EI\": {\"E\": 3, \"I\": 5, \"dominant\": \"I\", \"percentage\": 63}, \"JP\": {\"J\": 4, \"P\": 3, \"dominant\": \"J\", \"percentage\": 57}, \"SN\": {\"N\": 1, \"S\": 6, \"dominant\": \"S\", \"percentage\": 86}, \"TF\": {\"F\": 2, \"T\": 6, \"dominant\": \"T\", \"percentage\": 75}}}', NULL, NULL, 0, 0, NULL, NULL, 1773228717, 1773228717, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (133, 33, 'face', '{\"pdp\": {\"primary\": \"无法判断\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"无法判断\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"无法判断\", \"title\": \"战略家\"}, \"overview\": \"照片中为一名儿童,表情自然放松,仅可确认有清晰人脸,无法据此进行可靠人格与职业测评推断。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b152e703d9a8.06342422.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b152e6db9b37.88275148.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b152e6decb88.39454837.jpg\"], \"boneAnalysis\": \"骨相发育尚在早期阶段,无法依据传统相术或现代模型给出稳定结论。\", \"faceAnalysis\": \"五官端正、表情活泼,仍处生长期,面部特征尚未定型,不宜据此推演性格命运。\", \"personalitySummary\": \"仅从照片无法科学推断其MBTI、PDP或DISC类型,任何人格判断都会失真且存在刻板风险。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773228789, 1773228789, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (134, 33, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"性格活泼外向,好奇心强,情绪丰富,乐于表达与互动,适合在支持与鼓励环境中成长。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15315631506.55875786.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1531561a0f3.94016134.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15315672be1.56231716.jpg\"], \"boneAnalysis\": \"骨相柔和偏圆,额区饱满,下颌承托力适中,属以亲和力与适应力见长的发展型格局。\", \"faceAnalysis\": \"五官圆润有朝气,眼神灵动,表情多变,整体给人活泼、亲切且富有童真的感觉。\", \"personalitySummary\": \"天真外向,想象力丰富,表达欲强,乐于尝试新事物,善于在互动中获得能量与自信。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773228837, 1773228837, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (135, 36, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISTJ\", \"title\": \"物流师\"}, \"overview\": \"理性务实、安静专注,责任心强,重视长期稳定与稳健推进,适合深度专业与体系化管理工作。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b155d889b1d6.05067740.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b155d8915338.23978756.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b155d893f2e8.01394899.jpg\"], \"boneAnalysis\": \"骨相偏土木形,骨肉均匀不突兀,颧鼻不张扬而有支撑力,下颌骨柔中带劲,属稳健持久、重实践型格局。\", \"faceAnalysis\": \"额头平阔饱满,眼神沉稳克制,鼻梁顺直略圆润,下巴略尖偏圆,整体给人理性内敛、踏实细腻之感。\", \"personalitySummary\": \"性格内敛寡言却有主见,做事循序渐进、计划性强,遇事冷静分析,偏好规则与秩序,重承诺、可信赖。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773229546, 1773229546, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (136, 37, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ISTJ\", \"title\": \"物流师\"}, \"overview\": \"务实稳重,思维缜密,抗压能力强,偏向长期规划与稳健推进型发展路径。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15686bcc486.40018861.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15686c108a2.00278153.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15686c72c85.43050844.jpg\"], \"boneAnalysis\": \"骨架偏厚实,面中庭力量感足,下颌骨承载力佳,属土形稳重格局,重视现实与长期积累。\", \"faceAnalysis\": \"额头较宽,眼神内敛专注,鼻翼扎实,嘴形收敛,下巴圆厚,整体给人稳健务实、重执行的印象。\", \"personalitySummary\": \"性格内敛理性,做事有计划有耐心,重视规则和责任,能在压力环境下持续输出稳定表现。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773229714, 1773229714, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (137, 37, 'mbti', '{\"scores\": {\"E\": 1, \"F\": 8, \"I\": 7, \"J\": 7, \"N\": 3, \"P\": 0, \"S\": 4, \"T\": 0}, \"answers\": [], \"mbtiType\": \"ISFJ\", \"timestamp\": \"2026-03-11T11:50:52.619Z\", \"confidence\": 86, \"completedAt\": \"2026-03-11T11:50:52.619Z\", \"description\": {\"name\": \"保护者\", \"type\": \"ISFJ\", \"careers\": [\"护士\", \"教师\", \"行政\"], \"category\": \"守护者\", \"strengths\": [\"忠诚体贴\", \"观察力强\", \"耐心\"], \"weaknesses\": [\"不善拒绝\", \"过于谦虚\"], \"description\": \"安静、友好、负责任的守护者\"}, \"testDuration\": 128, \"dimensionScores\": {\"EI\": {\"E\": 1, \"I\": 7, \"dominant\": \"I\", \"percentage\": 88}, \"JP\": {\"J\": 7, \"P\": 0, \"dominant\": \"J\", \"percentage\": 100}, \"SN\": {\"N\": 3, \"S\": 4, \"dominant\": \"S\", \"percentage\": 57}, \"TF\": {\"F\": 8, \"T\": 0, \"dominant\": \"F\", \"percentage\": 100}}}', NULL, NULL, 0, 0, NULL, NULL, 1773229852, 1773229852, NULL, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (138, 1, 'resume', '{\"hrView\": {\"roleRecommend\": {\"bestFit\": [\"项目经理\", \"团队领导\", \"销售主管\", \"客户关系管理\"], \"notSuitable\": [\"高度技术专业深度研发岗位\", \"需要极端内向独立完成任务职位\"]}}, \"fileUrl\": \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\", \"version\": 2, \"bossView\": {\"metrics\": [{\"label\": \"岗位匹配度\", \"level\": \"high\", \"value\": \"88%\"}, {\"label\": \"沟通适应性\", \"level\": \"高\", \"value\": \"85%\"}, {\"label\": \"抗压能力\", \"level\": \"高\", \"value\": \"90%\"}, {\"label\": \"组织执行力\", \"level\": \"高\", \"value\": \"87%\"}], \"headline\": \"具备双重领导力特质,能统筹规划与激励团队\"}, \"overview\": \"候选人性格表现出内敛与外向的明显分裂特征,行为模式体现理性与感性并存。生日与骨相显示其稳健、理性、富有抗压性,擅长有序规划与坚持原则;BUT 测评结果揭示其显著的社交互动能力和乐观自信,既有高效组织者特质,也极具表现力与亲和力。整体呈现出复合型领导者画像,兼具战略洞察与团队激励能力。\", \"portrait\": {\"coreRisks\": [\"性格层面存在内外反差,易造成自我认知混淆\", \"注意力可能易分散\", \"在快速变化环境中可能出现优柔寡断\"], \"workStyle\": \"偏好稳定有序环境,习惯通过周密计划和严谨执行达到目标,沟通时既能理性直截也能展现亲和力,团队中担任既能推动任务又能激励氛围的角色。\", \"coreStrengths\": [\"目标导向强\", \"理性冷静\", \"良好沟通与表达能力\", \"高抗压\", \"组织协调力强\", \"人际影响力显著\"]}, \"resumeHighlights\": \"MBTI识别为ESTJ,显示其作为果断的组织者和领导者;PDP和DISC均倾向表现型/影响型,凸显良好的社交影响力和团队调动能力。骨相与面部特征分析印证其内敛稳健的性格底色。其工作经历中的表现预计为理性、有序和高效。整体来看,候选人真实个性为‘理性+表现’,即内外兼修的复合型人才,既冷静决策又积极表达,适合担任中高级管理及客户导向岗位。\"}', NULL, NULL, 0, 1, NULL, NULL, 1773279222, 1773279222, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (139, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"思维理性,细致专注,谋略与执行兼备,适合规划与决策类岗位。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1222162dfb3.33149884.jfif\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b122201c4ba5.05315027.jfif\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b122215f6c00.42725600.jfif\"], \"boneAnalysis\": \"骨重肉匀,五行木形,颧骨收敛,伏犀骨有力,格局中高,主理性与稳定。\", \"faceAnalysis\": \"额头饱满,眼神专注,鼻梁挺直,唇形清晰,下巴轮廓分明,五官协调。\", \"personalitySummary\": \"具备理性分析与系统思维,做事沉稳高效,决策重逻辑长远。人际间保持距离感,适合独立谋划或专业带队,能整合资源,兼具开拓与守成。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773279937, 1773279937, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (140, 1, 'face', '{\"pdp\": {\"primary\": \"老虎\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"D\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"具备思维理性、决策果断和全局统筹能力,攻坚执行兼具创新潜质。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b122946a54c6.37603583.jfif\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b12294706aa6.28073503.jfif\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1229473c992.26199330.jfif\"], \"boneAnalysis\": \"金形骨相,骨重肉薄,颧骨高耸将军骨坚挺,整体格局高,决断现实感强,抗压理性攻坚。\", \"faceAnalysis\": \"额头饱满开阔,眼神专注,鼻梁直挺,唇形收放有度,下颌宽厚有力,耳廓适中贴头。\", \"personalitySummary\": \"刚健稳重兼具战略眼光,雷厉风行注重细节,理性分析为决策核心,具威信领导力,适配高挑战环境管理晋升路径。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773279975, 1773279975, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (141, 1, 'face', '{\"pdp\": {\"primary\": \"猫头鹰\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"C\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"INTJ\", \"title\": \"战略家\"}, \"overview\": \"理性专注、条理清晰,擅长深度思考和独立决策,兼具敏锐洞察力。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260224/img_699d6169ddb7b6.33742752.jpeg\"], \"boneAnalysis\": \"五行属木形,骨感明显,骨重肉薄,抗压稳健,主见强,谋略佳。\", \"faceAnalysis\": \"额头宽阔,眼神专注,鼻梁高直,嘴唇紧收,下巴略尖,耳朵较贴头。\", \"personalitySummary\": \"善于逻辑推理与系统规划,追求精准,行事低调却有主见,决策理性。人际关系理性有度,沟通偏向事实与逻辑,适配复杂问题解决与知识型岗位。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773280023, 1773280023, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (142, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"性格活泼开朗,表达力强,人际感知力高,适应变化能力佳。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15315631506.55875786.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1531561a0f3.94016134.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15315672be1.56231716.jpg\"], \"boneAnalysis\": \"面部骨肉平衡,五行偏木形,骨肉停匀,适应力强,抗压方式以柔性缓冲为主。\", \"faceAnalysis\": \"额头饱满,眼神灵动,鼻形端正,嘴唇饱满,下巴圆润,耳位正常。总体面相阳光自信,情绪丰富。\", \"personalitySummary\": \"性格外向,具创造力与好奇心,乐于表达,易与人建立良好关系。做事充满热情,喜欢尝试新鲜事物。团队合作时善于沟通,适应力与应变强。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773280177, 1773280177, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (143, 1, 'resume', '{\"hrView\": {\"roleRecommend\": {\"bestFit\": [\"销售与商务拓展\", \"团队管理与激励(项目经理、销售主管、BD Leader等)\", \"客户关系管理与顾问服务\", \"活动策划、品牌公关\"], \"notSuitable\": [\"高重复性、独立性极强的后端执行类(如数据分析、流程型文职、会计专员)\", \"需要高度专注单一任务、个人深入逻辑钻研岗位\"]}}, \"fileUrl\": \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260310/img_69af801d8441f3.91458120.png\", \"version\": 2, \"bossView\": {\"metrics\": [{\"label\": \"岗位匹配度\", \"level\": \"high\", \"value\": \"85%\"}], \"headline\": \"极具影响力的团队激励者与执行推动者,善于跨领域整合资源、激发团队潜能。\"}, \"overview\": \"该候选人具备高度外向、沟通力强和乐观积极的性格底色,兼具行动力与组织力,适应变化能力强,具有自然影响力。性格测试结果一致印证其人际驱动力和行动执行能力。综合性格测评、面相骨骼及工作特质,可判定其在组织激励、人际协调、项目落地与多任务场景中表现突出,适宜领导、销售、商务拓展、项目管理及创新团队核心角色。\", \"portrait\": {\"coreRisks\": [\"注意力分散易影响执行细节\", \"过度乐观导致风险评估不足\", \"对重复性、缺乏人际互动的任务动力不足\"], \"workStyle\": \"以目标为导向,善于自我激励,偏好开放性、多元协作的环境。能够高效组织团队,协调资源并推动项目进展。擅长快速建立关系并激发团队氛围,遇压力时更倾向寻求人际支持与化解矛盾而非正面硬抗。善于多线程并行处理事务,重视创新与挑战。\", \"coreStrengths\": [\"外向热情\", \"沟通能力强\", \"组织与执行力突出\", \"高度适应变化\", \"富有影响力及感染力\"]}, \"resumeHighlights\": \"性格测试高度一致,兼具外向表达(ENFP/孔雀/I型)与组织领导力(ESTJ/虎型/C型),天生具备沟通、影响、团队协调与快速适应变化等能力。易于驱动团队目标落实,善于调动氛围,执行与创新并重。易疏忽细节、风险评估需提升。职业发展建议加强专注力与系统思考能力,实现稳步突破。\"}', NULL, NULL, 0, 1, NULL, NULL, 1773280251, 1773280251, 6, 'enterprise'); -REPLACE INTO `mbti_test_results` VALUES (144, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"富有活力与感染力,适应环境强,乐于表达创新思维。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1531561a0f3.94016134.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15315631506.55875786.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15315672be1.56231716.jpg\"], \"boneAnalysis\": \"面中骨肉均匀,偏木形,骨相开阔亲和,侧重柔性与弹性。\", \"faceAnalysis\": \"额头饱满,眼睛有神,鼻翼宽正,嘴型饱满有力,下颌圆润,耳贴头。\", \"personalitySummary\": \"性格热情开朗,情感丰富,富有创意表达,适应力强,善于社交融合团队,执行力佳。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773285873, 1773285873, 6, 'personal'); -REPLACE INTO `mbti_test_results` VALUES (145, 1, 'face', '{\"pdp\": {\"primary\": \"孔雀\", \"secondary\": \"\"}, \"disc\": {\"primary\": \"I\", \"secondary\": \"\"}, \"mbti\": {\"type\": \"ENFP\", \"title\": \"竞选者\"}, \"overview\": \"开朗活泼,好奇心强,具备创造力和团队感染力,适应环境能力佳。\", \"photoUrls\": [\"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15315631506.55875786.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b1531561a0f3.94016134.jpg\", \"https://karuosiyujzk.oss-cn-shenzhen.aliyuncs.com/mbti/20260311/img_69b15315672be1.56231716.jpg\"], \"boneAnalysis\": \"木形,骨肉匀停,骨相灵秀,童年阶段潜质清晰,面部结构均衡。\", \"faceAnalysis\": \"额头宽阔饱满,眼神灵动,鼻子圆润,嘴唇适中,下巴圆厚,双耳对称。\", \"personalitySummary\": \"充满活力,思路开放,善于表达兴趣与情感,乐于与人互动,情绪自调能力佳,适合多元探索、团队合作及体验型成长环境。\"}', NULL, NULL, 0, 0, NULL, NULL, 1773286899, 1773286899, 6, 'enterprise'); - -COMMIT; -SET FOREIGN_KEY_CHECKS = 1; diff --git a/api/route/api.php b/api/route/api.php index 173d7f8..783ef8e 100644 --- a/api/route/api.php +++ b/api/route/api.php @@ -49,6 +49,8 @@ Route::group('api', function () { Route::get('test/recent', 'api.Test/recent'); // 单条测试详情 Route::get('test/detail', 'api.Test/detail'); + // 启用题库(企业有则用企业,否则超管) + Route::get('test/questions', 'api.Test/questions'); // 提交测试结果(MBTI/DISC/PDP 等) Route::post('test/submit', 'api.Test/submit'); // 简历综合分析(基于人脸/MBTI/PDP/DISC 最近一次结果) diff --git a/douyin-miniprogram/pages/profile/index.js b/douyin-miniprogram/pages/profile/index.js index db9859b..207f49b 100644 --- a/douyin-miniprogram/pages/profile/index.js +++ b/douyin-miniprogram/pages/profile/index.js @@ -3,6 +3,16 @@ const app = getApp() const { getTypeOnly } = require('../../utils/resultFormat') const { request } = require('../../utils/request') +function summaryFromRecentRecord(rec, testType) { + if (!rec) return '' + const meta = rec.resultMeta + if (meta && typeof meta === 'object') { + const t = getTypeOnly(meta, testType) + if (t) return t + } + return String(rec.resultText || '').trim() +} + Page({ data: { hasLogin: false, @@ -45,17 +55,16 @@ Page({ permPdp: true, permDisc: true, permDistribution: true, - showLatestTestCards: false, + showLatestTestRow: false, showEmptyPersonalityTags: true }, - _computeShowLatestTestCards(d) { + _computeShowLatestTestRow(d) { const rm = !!(d.reviewMode) - if (d.permMbti && d.mbtiType) return true - if (d.permPdp && d.pdpType) return true - if (d.permDisc && d.discType) return true - if (!rm && d.permFace && (d.gallupPreview || d.aiType)) return true - return false + if (rm) { + return !!(d.permMbti || d.permPdp || d.permDisc) + } + return !!(d.permMbti || d.permPdp || d.permDisc || d.permFace) }, _computeShowEmptyPersonalityTags(d) { @@ -79,7 +88,7 @@ Page({ const d = { ...this.data, ...next } this.setData({ ...next, - showLatestTestCards: this._computeShowLatestTestCards(d), + showLatestTestRow: this._computeShowLatestTestRow(d), showEmptyPersonalityTags: this._computeShowEmptyPersonalityTags(d) }) }, @@ -197,8 +206,7 @@ Page({ const { records = {}, totalCount = 0 } = payload.data const r = records - // DISC resultText 后端已含「型」,type badge 只显示字母,去掉「型」 - const discType = r.disc ? r.disc.resultText.replace(/型$/, '') : '' + const discType = summaryFromRecentRecord(r.disc, 'disc') const gallupPreview = (r.ai && r.ai.gallupPreview) ? String(r.ai.gallupPreview) : '' const patch = { @@ -206,7 +214,7 @@ Page({ hasResults: !!(r.mbti || r.disc || r.pdp || r.ai), mbtiType: r.mbti ? r.mbti.resultText : '', discType, - pdpType: r.pdp ? r.pdp.resultText : '', + pdpType: summaryFromRecentRecord(r.pdp, 'pdp'), aiType: r.ai ? r.ai.resultText : '', gallupPreview, mbtiTime: r.mbti ? r.mbti.testTime : '', @@ -221,7 +229,7 @@ Page({ const d = { ...this.data, ...patch } this.setData({ ...patch, - showLatestTestCards: this._computeShowLatestTestCards(d), + showLatestTestRow: this._computeShowLatestTestRow(d), showEmptyPersonalityTags: this._computeShowEmptyPersonalityTags(d) }) }, @@ -297,7 +305,7 @@ Page({ const d = { ...this.data, ...patch } this.setData({ ...patch, - showLatestTestCards: this._computeShowLatestTestCards(d), + showLatestTestRow: this._computeShowLatestTestRow(d), showEmptyPersonalityTags: this._computeShowEmptyPersonalityTags(d) }) }, diff --git a/douyin-miniprogram/pages/profile/index.ttml b/douyin-miniprogram/pages/profile/index.ttml index 01697c7..ecffdd4 100644 --- a/douyin-miniprogram/pages/profile/index.ttml +++ b/douyin-miniprogram/pages/profile/index.ttml @@ -53,7 +53,7 @@ {{mbtiType}} - {{discType}}型 + {{discType}} {{pdpType}} @@ -78,56 +78,56 @@ - + - + 🧠 MBTI性格 - {{mbtiType}} - {{mbtiTime}} + {{mbtiType || '未测评'}} + {{mbtiTime || '—'}} - + 🦁 PDP行为 - {{pdpType}} - {{pdpTime}} + {{pdpType || '未测评'}} + {{pdpTime || '—'}} - + 📊 DISC测评 - {{discType + '型'}} - {{discTime}} + {{discType || '未测评'}} + {{discTime || '—'}} - + 盖洛普优势 - {{gallupPreview || '见面相报告'}} - {{aiTime}} + {{gallupPreview || (aiType ? '见面相报告' : '未测评')}} + {{aiTime || '—'}} - + 👁️ 面相分析 - {{aiType}} - {{aiTime}} + {{aiType || '未测评'}} + {{aiTime || '—'}} - + 点击卡片查看详情;右上方可查看全部测试记录。 diff --git a/douyin-miniprogram/pages/profile/index.ttss b/douyin-miniprogram/pages/profile/index.ttss index 64609ad..42984d4 100644 --- a/douyin-miniprogram/pages/profile/index.ttss +++ b/douyin-miniprogram/pages/profile/index.ttss @@ -458,6 +458,14 @@ page { letter-spacing: -1rpx; } +.result-card .card-value { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; + line-height: 1.2; +} + .card-purple .card-value { color: #7C3AED; } .card-blue .card-value { color: #2563EB; } .card-orange .card-value { color: #D97706; } diff --git a/douyin-miniprogram/pages/result/disc.js b/douyin-miniprogram/pages/result/disc.js index 729524b..7a7f1fe 100644 --- a/douyin-miniprogram/pages/result/disc.js +++ b/douyin-miniprogram/pages/result/disc.js @@ -1,6 +1,7 @@ // pages/result/disc.js - DISC结果页(支持付费墙 + 历史详情拉取) const app = getApp() const payment = require('../../utils/payment') +const { getTypeOnly } = require('../../utils/resultFormat') function toIntPercent(v) { if (v == null) return 0 @@ -24,6 +25,7 @@ function withPercentagesInt(data) { Page({ data: { result: null, + typeSummaryLine: '', typeList: [ { type: 'D', label: 'D型 - 支配型', colorClass: 'fill-d' }, { type: 'I', label: 'I型 - 影响型', colorClass: 'fill-i' }, @@ -45,7 +47,10 @@ Page({ } const result = tt.getStorageSync('discResult') if (result) { - this.setData({ result: withPercentagesInt(result) }) + this.setData({ + result: withPercentagesInt(result), + typeSummaryLine: getTypeOnly(result, 'disc') + }) this.initPayInfoFromRuntime('disc') } else { tt.showToast({ title: '暂无测试结果', icon: 'none' }) @@ -71,7 +76,10 @@ Page({ const paidAmount = payload.paidAmount != null ? Number(payload.paidAmount) : 0 const amountYuan = payload.amountYuan != null ? Number(payload.amountYuan) : (paidAmount > 0 ? paidAmount / 100 : 0) const needPaymentToUnlock = payload.needPaymentToUnlock === true || (!!payload.requiresPayment && !isPaid && paidAmount > 0) - this.setData({ result: withPercentagesInt(data) }) + this.setData({ + result: withPercentagesInt(data), + typeSummaryLine: getTypeOnly(data, 'disc') + }) const payInfo = { requiresPayment: needPaymentToUnlock, isPaid, diff --git a/douyin-miniprogram/pages/result/disc.ttml b/douyin-miniprogram/pages/result/disc.ttml index 8ece4da..29d5aa4 100644 --- a/douyin-miniprogram/pages/result/disc.ttml +++ b/douyin-miniprogram/pages/result/disc.ttml @@ -5,7 +5,7 @@ 您的DISC性格类型 - {{result.dominantType}}{{result.secondaryType ? ' + ' + result.secondaryType : ''}} + {{typeSummaryLine}} {{result.description.description}} diff --git a/douyin-miniprogram/pages/result/pdp.js b/douyin-miniprogram/pages/result/pdp.js index a9be24c..153153d 100644 --- a/douyin-miniprogram/pages/result/pdp.js +++ b/douyin-miniprogram/pages/result/pdp.js @@ -1,6 +1,7 @@ // pages/result/pdp.js - PDP结果页(支持付费墙 + 历史详情拉取) const app = getApp() const payment = require('../../utils/payment') +const { getTypeOnly } = require('../../utils/resultFormat') const PDP_KEYS = ['Tiger', 'Peacock', 'Koala', 'Owl', 'Chameleon'] @@ -23,6 +24,7 @@ function withPercentagesInt(data) { Page({ data: { result: null, + typeSummaryLine: '', typeList: [ { type: 'Tiger', emoji: '🐅', label: '老虎型', colorClass: 'fill-tiger' }, { type: 'Peacock', emoji: '🦚', label: '孔雀型', colorClass: 'fill-peacock' }, @@ -45,7 +47,10 @@ Page({ } const result = tt.getStorageSync('pdpResult') if (result) { - this.setData({ result: withPercentagesInt(result) }) + this.setData({ + result: withPercentagesInt(result), + typeSummaryLine: getTypeOnly(result, 'pdp') + }) this.initPayInfoFromRuntime('pdp') } else { tt.showToast({ title: '暂无测试结果', icon: 'none' }) @@ -71,7 +76,10 @@ Page({ const paidAmount = payload.paidAmount != null ? Number(payload.paidAmount) : 0 const amountYuan = payload.amountYuan != null ? Number(payload.amountYuan) : (paidAmount > 0 ? paidAmount / 100 : 0) const needPaymentToUnlock = payload.needPaymentToUnlock === true || (!!payload.requiresPayment && !isPaid && paidAmount > 0) - this.setData({ result: withPercentagesInt(data) }) + this.setData({ + result: withPercentagesInt(data), + typeSummaryLine: getTypeOnly(data, 'pdp') + }) const payInfo = { requiresPayment: needPaymentToUnlock, isPaid, @@ -138,19 +146,19 @@ Page({ }, onShareAppMessage() { - const result = this.data.result + const line = this.data.typeSummaryLine || this.data.result?.description?.type || '' const { getSharePathByScope } = require('../../utils/share') return { - title: `我的PDP类型是${result?.description?.type}${result?.description?.emoji},来测测你的吧!`, + title: `我的PDP类型是${line},来测测你的吧!`, path: getSharePathByScope('/pages/index/index') } }, onShareTimeline() { - const result = this.data.result + const line = this.data.typeSummaryLine || this.data.result?.description?.type || '' const { buildShareQuery } = require('../../utils/share') return { - title: `我的PDP类型是${result?.description?.type}${result?.description?.emoji},来测测你的吧!`, + title: `我的PDP类型是${line},来测测你的吧!`, query: buildShareQuery() } } diff --git a/douyin-miniprogram/pages/result/pdp.ttml b/douyin-miniprogram/pages/result/pdp.ttml index 0eae46e..134ff5d 100644 --- a/douyin-miniprogram/pages/result/pdp.ttml +++ b/douyin-miniprogram/pages/result/pdp.ttml @@ -5,7 +5,7 @@ PDP性格类型 - {{result.description.type || result.dominantType}}{{result.description.emoji || ''}} + {{typeSummaryLine}} {{result.description.title}} {{result.description.description}} diff --git a/douyin-miniprogram/pages/test/disc.js b/douyin-miniprogram/pages/test/disc.js index 88850fa..9b1e747 100644 --- a/douyin-miniprogram/pages/test/disc.js +++ b/douyin-miniprogram/pages/test/disc.js @@ -1,19 +1,23 @@ // pages/test/disc.js -const { discQuestions, shuffleQuestions } = require('../../utils/questions') +const { loadQuestions } = require('../../utils/questionBank') const { discDescriptions } = require('../../utils/descriptions') const app = getApp() +const DISC_TIME_SEC = 15 * 60 + Page({ data: { + loading: true, questions: [], currentIndex: 0, currentQuestion: null, answers: {}, selectedAnswer: null, - total: discQuestions.length, + total: 0, answeredCount: 0, progress: 0, - timeRemaining: 15 * 60, + timeRemaining: DISC_TIME_SEC, + _initialSeconds: DISC_TIME_SEC, formatTime: '15:00', isSubmitting: false }, @@ -21,10 +25,31 @@ Page({ timer: null, onLoad() { - const questions = shuffleQuestions(discQuestions) - this.setData({ questions, currentQuestion: questions[0] }) - try { require('../../utils/analytics').track('test_start', { type: 'disc', total: questions.length }) } catch (e) {} - this.startTimer() + loadQuestions('disc', {}) + .then((questions) => { + if (!questions.length) { + tt.showToast({ title: '暂无题目', icon: 'none' }) + this.setData({ loading: false }) + return + } + this.setData({ + loading: false, + questions, + currentQuestion: questions[0], + total: questions.length, + timeRemaining: DISC_TIME_SEC, + _initialSeconds: DISC_TIME_SEC, + formatTime: '15:00' + }) + try { + require('../../utils/analytics').track('test_start', { type: 'disc', total: questions.length }) + } catch (e) {} + this.startTimer() + }) + .catch((err) => { + this.setData({ loading: false }) + tt.showToast({ title: (err && err.message) || '加载失败', icon: 'none' }) + }) }, onUnload() { @@ -144,7 +169,7 @@ Page({ dominantType, secondaryType, description: discDescriptions[dominantType], - testDuration: 15 * 60 - this.data.timeRemaining, + testDuration: (this.data._initialSeconds || DISC_TIME_SEC) - this.data.timeRemaining, completedAt: new Date().toISOString(), // 便于后端留存完整答题过程 answers: this.data.answers diff --git a/douyin-miniprogram/pages/test/disc.ttml b/douyin-miniprogram/pages/test/disc.ttml index 09fe7ca..0bf14b5 100644 --- a/douyin-miniprogram/pages/test/disc.ttml +++ b/douyin-miniprogram/pages/test/disc.ttml @@ -1,5 +1,9 @@ + + 加载题目… + + 问题 {{currentIndex + 1}}/{{total}} @@ -45,4 +49,5 @@ {{isSubmitting ? '计算中...' : '完成测试,查看结果'}} + diff --git a/douyin-miniprogram/pages/test/disc.ttss b/douyin-miniprogram/pages/test/disc.ttss index 629c75c..5c67d58 100644 --- a/douyin-miniprogram/pages/test/disc.ttss +++ b/douyin-miniprogram/pages/test/disc.ttss @@ -7,6 +7,19 @@ background-color: #fff; } +.test-loading { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + padding: 80rpx; +} + +.test-loading-text { + font-size: 30rpx; + color: #666; +} + .progress-section { padding: 32rpx; border-bottom: 1rpx solid #e5e5e5; diff --git a/douyin-miniprogram/pages/test/mbti.js b/douyin-miniprogram/pages/test/mbti.js index b499f41..27b8dbe 100644 --- a/douyin-miniprogram/pages/test/mbti.js +++ b/douyin-miniprogram/pages/test/mbti.js @@ -1,20 +1,24 @@ // pages/test/mbti.js - MBTI测试页面逻辑(与微信端对齐:最后一题必提交结果) -const { mbtiQuestions, shuffleQuestions } = require('../../utils/questions') +const { loadQuestions } = require('../../utils/questionBank') const { mbtiDescriptions } = require('../../utils/descriptions') const payment = require('../../utils/payment') const app = getApp() +const MBTI_TIME_SEC = 30 * 60 // 30 分钟 + Page({ data: { + loading: true, questions: [], currentIndex: 0, currentQuestion: null, answers: {}, selectedAnswer: null, - total: mbtiQuestions.length, + total: 0, answeredCount: 0, progress: 0, - timeRemaining: 30 * 60, + timeRemaining: MBTI_TIME_SEC, + _initialSeconds: MBTI_TIME_SEC, formatTime: '30:00', isSubmitting: false, canAccess: false @@ -23,17 +27,34 @@ Page({ timer: null, onLoad() { - const questions = shuffleQuestions(mbtiQuestions) - const total = questions.length - this.setData({ - questions, - currentQuestion: questions[0], - canAccess: true, - total, - progress: total ? Math.round((1 / total) * 100) : 0 - }) - try { require('../../utils/analytics').track('test_start', { type: 'mbti', total }) } catch (e) {} - this.startTimer() + loadQuestions('mbti', {}) + .then((questions) => { + const total = questions.length + if (!total) { + tt.showToast({ title: '暂无题目', icon: 'none' }) + this.setData({ loading: false }) + return + } + this.setData({ + loading: false, + questions, + currentQuestion: questions[0], + canAccess: true, + total, + progress: Math.round((1 / total) * 100), + timeRemaining: MBTI_TIME_SEC, + _initialSeconds: MBTI_TIME_SEC, + formatTime: '30:00' + }) + try { + require('../../utils/analytics').track('test_start', { type: 'mbti', total }) + } catch (e) {} + this.startTimer() + }) + .catch((err) => { + this.setData({ loading: false }) + tt.showToast({ title: (err && err.message) || '加载失败', icon: 'none' }) + }) }, checkAccess() { @@ -186,7 +207,7 @@ Page({ const resultData = { ...result, answers: this.data.answers, - testDuration: 30 * 60 - this.data.timeRemaining, + testDuration: (this.data._initialSeconds || MBTI_TIME_SEC) - this.data.timeRemaining, completedAt: new Date().toISOString(), timestamp: new Date().toISOString() } diff --git a/douyin-miniprogram/pages/test/mbti.ttml b/douyin-miniprogram/pages/test/mbti.ttml index 99ccdb6..bb706be 100644 --- a/douyin-miniprogram/pages/test/mbti.ttml +++ b/douyin-miniprogram/pages/test/mbti.ttml @@ -1,5 +1,9 @@ + + 加载题目… + + 问题 {{currentIndex + 1}}/{{total}} @@ -45,4 +49,5 @@ {{isSubmitting ? '正在生成…' : '查看结果'}} + diff --git a/douyin-miniprogram/pages/test/mbti.ttss b/douyin-miniprogram/pages/test/mbti.ttss index f54d7b9..9fda97f 100644 --- a/douyin-miniprogram/pages/test/mbti.ttss +++ b/douyin-miniprogram/pages/test/mbti.ttss @@ -7,6 +7,19 @@ background-color: #fff; } +.test-loading { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + padding: 80rpx; +} + +.test-loading-text { + font-size: 30rpx; + color: #666; +} + .progress-section { padding: 32rpx; border-bottom: 1rpx solid #e5e5e5; diff --git a/douyin-miniprogram/pages/test/pdp.js b/douyin-miniprogram/pages/test/pdp.js index bae743f..ee73df0 100644 --- a/douyin-miniprogram/pages/test/pdp.js +++ b/douyin-miniprogram/pages/test/pdp.js @@ -1,19 +1,23 @@ // pages/test/pdp.js -const { pdpQuestions, shuffleQuestions } = require('../../utils/questions') +const { loadQuestions } = require('../../utils/questionBank') const { pdpDescriptions } = require('../../utils/descriptions') const app = getApp() +const PDP_TIME_SEC = 15 * 60 + Page({ data: { + loading: true, questions: [], currentIndex: 0, currentQuestion: null, answers: {}, selectedAnswer: null, - total: pdpQuestions.length, + total: 0, answeredCount: 0, progress: 0, - timeRemaining: 15 * 60, + timeRemaining: PDP_TIME_SEC, + _initialSeconds: PDP_TIME_SEC, formatTime: '15:00', isSubmitting: false }, @@ -21,10 +25,31 @@ Page({ timer: null, onLoad() { - const questions = shuffleQuestions(pdpQuestions) - this.setData({ questions, currentQuestion: questions[0] }) - try { require('../../utils/analytics').track('test_start', { type: 'pdp', total: questions.length }) } catch (e) {} - this.startTimer() + loadQuestions('pdp', {}) + .then((questions) => { + if (!questions.length) { + tt.showToast({ title: '暂无题目', icon: 'none' }) + this.setData({ loading: false }) + return + } + this.setData({ + loading: false, + questions, + currentQuestion: questions[0], + total: questions.length, + timeRemaining: PDP_TIME_SEC, + _initialSeconds: PDP_TIME_SEC, + formatTime: '15:00' + }) + try { + require('../../utils/analytics').track('test_start', { type: 'pdp', total: questions.length }) + } catch (e) {} + this.startTimer() + }) + .catch((err) => { + this.setData({ loading: false }) + tt.showToast({ title: (err && err.message) || '加载失败', icon: 'none' }) + }) }, onUnload() { @@ -147,7 +172,7 @@ Page({ dominantType, secondaryType, description: pdpDescriptions[dominantType], - testDuration: 15 * 60 - this.data.timeRemaining, + testDuration: (this.data._initialSeconds || PDP_TIME_SEC) - this.data.timeRemaining, completedAt: new Date().toISOString(), // 便于后端留存完整答题过程 answers: this.data.answers diff --git a/douyin-miniprogram/pages/test/pdp.ttml b/douyin-miniprogram/pages/test/pdp.ttml index d8e215c..ef490ea 100644 --- a/douyin-miniprogram/pages/test/pdp.ttml +++ b/douyin-miniprogram/pages/test/pdp.ttml @@ -1,5 +1,9 @@ + + 加载题目… + + 问题 {{currentIndex + 1}}/{{total}} @@ -45,4 +49,5 @@ {{isSubmitting ? '计算中...' : '完成测试,查看结果'}} + diff --git a/douyin-miniprogram/pages/test/pdp.ttss b/douyin-miniprogram/pages/test/pdp.ttss index 4db77fd..ec6570a 100644 --- a/douyin-miniprogram/pages/test/pdp.ttss +++ b/douyin-miniprogram/pages/test/pdp.ttss @@ -7,6 +7,19 @@ background-color: #fff; } +.test-loading { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + padding: 80rpx; +} + +.test-loading-text { + font-size: 30rpx; + color: #666; +} + .progress-section { padding: 32rpx; border-bottom: 1rpx solid #e5e5e5; diff --git a/douyin-miniprogram/utils/enterpriseContext.js b/douyin-miniprogram/utils/enterpriseContext.js new file mode 100644 index 0000000..3ac3936 --- /dev/null +++ b/douyin-miniprogram/utils/enterpriseContext.js @@ -0,0 +1,44 @@ +/** + * 抖音小程序企业上下文(与微信 miniprogram 逻辑对齐,storage 用 tt) + */ + +function getEffectiveEnterpriseId() { + const app = getApp() + const gd = app.globalData || {} + const fromScene = gd.enterpriseIdFromScene + if (fromScene != null && Number(fromScene) > 0) { + return Number(fromScene) + } + const u = gd.userInfo || tt.getStorageSync('userInfo') || {} + const bound = u.enterpriseId + if (bound != null && Number(bound) > 0) { + return Number(bound) + } + const def = gd.defaultEnterpriseId + if (def != null && Number(def) > 0) { + return Number(def) + } + return null +} + +/** + * 与微信 miniprogram/utils/enterpriseContext.getEnterpriseIdForApiPayload 一致 + */ +function getEnterpriseIdForApiPayload() { + const app = getApp() + const gd = app.globalData || {} + const scope = gd.appScope || 'personal' + if (scope === 'personal') { + const fromScene = gd.enterpriseIdFromScene + if (fromScene != null && Number(fromScene) > 0) { + return Number(fromScene) + } + return null + } + return getEffectiveEnterpriseId() +} + +module.exports = { + getEffectiveEnterpriseId, + getEnterpriseIdForApiPayload +} diff --git a/douyin-miniprogram/utils/questionBank.js b/douyin-miniprogram/utils/questionBank.js new file mode 100644 index 0000000..0e38e5a --- /dev/null +++ b/douyin-miniprogram/utils/questionBank.js @@ -0,0 +1,98 @@ +/** + * 仅从服务端拉取启用题库,无本地题目保底。 + */ +const { requestPromise } = require('./request') + +function getAppSafe() { + try { + return getApp() + } catch (e) { + return null + } +} + +function shuffleQuestions(questions) { + const arr = (questions || []).map(q => ({ + ...q, + options: (q.options || []).slice().sort(() => Math.random() - 0.5) + })) + for (let i = arr.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)) + ;[arr[i], arr[j]] = [arr[j], arr[i]] + } + return arr +} + +function resolveEnterpriseIdForQuestionBank(opts) { + const o = opts || {} + if (Object.prototype.hasOwnProperty.call(o, 'enterpriseId')) { + const v = o.enterpriseId + if (v == null || v === '') { + return null + } + const n = Number(v) + return Number.isFinite(n) && n > 0 ? n : null + } + try { + const { getEnterpriseIdForApiPayload } = require('./enterpriseContext') + return getEnterpriseIdForApiPayload() + } catch (e) { + return null + } +} + +function getTestQuestionDrawCount() { + const app = getAppSafe() + const n = app && app.globalData && app.globalData.testQuestionDrawCount + const num = parseInt(String(n == null || n === '' ? '0' : n), 10) + if (!Number.isFinite(num) || num <= 0) { + return 0 + } + return Math.min(500, num) +} + +function applyDrawCountAfterShuffle(questions) { + const n = getTestQuestionDrawCount() + if (!n || questions.length <= n) { + return questions + } + return questions.slice(0, n) +} + +function fetchQuestionBank(type, enterpriseId) { + const q = [`type=${encodeURIComponent(type)}`] + if (enterpriseId != null && Number(enterpriseId) > 0) { + q.push(`enterpriseId=${Number(enterpriseId)}`) + } + return requestPromise({ + url: `/api/test/questions?${q.join('&')}`, + method: 'GET', + needAuth: true + }).then((res) => { + const body = res.data || {} + if (body.code !== 200 || body.data == null) { + throw new Error(body.message || '拉取题库失败') + } + const list = body.data.list + if (!Array.isArray(list)) { + throw new Error('题库格式错误') + } + return list + }) +} + +function loadQuestions(type, opts = {}) { + const enterpriseId = resolveEnterpriseIdForQuestionBank(opts) + return fetchQuestionBank(type, enterpriseId).then((list) => { + if (!list.length) { + throw new Error('暂无启用题目') + } + return applyDrawCountAfterShuffle(shuffleQuestions(list)) + }) +} + +module.exports = { + fetchQuestionBank, + loadQuestions, + shuffleQuestions +} diff --git a/douyin-miniprogram/utils/questions.js b/douyin-miniprogram/utils/questions.js deleted file mode 100644 index 29ec9ac..0000000 --- a/douyin-miniprogram/utils/questions.js +++ /dev/null @@ -1,117 +0,0 @@ -// utils/questions.js - 测试题库 - -// MBTI测试题(精简版30题,每个维度约7-8题) -const mbtiQuestions = [ - // E vs I 维度 (8题) - { id: 1, question: "在社交场合中,您通常会:", dimension: "EI", options: [{ value: "E", text: "认识新朋友,扩大社交圈" }, { value: "I", text: "与已认识的朋友交流" }] }, - { id: 2, question: "您更喜欢:", dimension: "EI", options: [{ value: "E", text: "在团队中工作" }, { value: "I", text: "独立工作" }] }, - { id: 3, question: "当您需要充电时,您会选择:", dimension: "EI", options: [{ value: "E", text: "与朋友聚会" }, { value: "I", text: "独处休息" }] }, - { id: 4, question: "在会议中,您通常:", dimension: "EI", options: [{ value: "E", text: "积极发言" }, { value: "I", text: "先思考再发表" }] }, - { id: 5, question: "您更倾向于:", dimension: "EI", options: [{ value: "E", text: "认识很多人" }, { value: "I", text: "与少数人深交" }] }, - { id: 6, question: "面对问题时,您更倾向于:", dimension: "EI", options: [{ value: "E", text: "与他人讨论" }, { value: "I", text: "独自思考" }] }, - { id: 7, question: "您更喜欢的休闲活动是:", dimension: "EI", options: [{ value: "E", text: "团体活动" }, { value: "I", text: "个人爱好" }] }, - { id: 8, question: "在陌生环境中,您通常会:", dimension: "EI", options: [{ value: "E", text: "主动与人交谈" }, { value: "I", text: "观察周围环境" }] }, - - // S vs N 维度 (7题) - { id: 9, question: "您更关注:", dimension: "SN", options: [{ value: "S", text: "具体的细节和事实" }, { value: "N", text: "整体概念和可能性" }] }, - { id: 10, question: "您更信任:", dimension: "SN", options: [{ value: "S", text: "实际经验" }, { value: "N", text: "直觉和灵感" }] }, - { id: 11, question: "您更喜欢:", dimension: "SN", options: [{ value: "S", text: "按步骤执行" }, { value: "N", text: "创造性解决" }] }, - { id: 12, question: "学习新事物时,您更喜欢:", dimension: "SN", options: [{ value: "S", text: "实际操作" }, { value: "N", text: "理论学习" }] }, - { id: 13, question: "您更喜欢的工作类型是:", dimension: "SN", options: [{ value: "S", text: "明确的任务" }, { value: "N", text: "创新的项目" }] }, - { id: 14, question: "您描述事物时更倾向于:", dimension: "SN", options: [{ value: "S", text: "具体描述" }, { value: "N", text: "使用比喻" }] }, - { id: 15, question: "您更关心:", dimension: "SN", options: [{ value: "S", text: "当下的现实" }, { value: "N", text: "未来的可能" }] }, - - // T vs F 维度 (8题) - { id: 16, question: "做决定时,您更依赖:", dimension: "TF", options: [{ value: "T", text: "逻辑分析" }, { value: "F", text: "个人价值" }] }, - { id: 17, question: "在争论中,您更看重:", dimension: "TF", options: [{ value: "T", text: "事实真相" }, { value: "F", text: "和谐关系" }] }, - { id: 18, question: "给予反馈时,您更注重:", dimension: "TF", options: [{ value: "T", text: "直接指出问题" }, { value: "F", text: "考虑对方感受" }] }, - { id: 19, question: "评估方案时,您更关注:", dimension: "TF", options: [{ value: "T", text: "效率和结果" }, { value: "F", text: "对人的影响" }] }, - { id: 20, question: "当朋友遇到困难时,您更倾向于:", dimension: "TF", options: [{ value: "T", text: "分析问题提供建议" }, { value: "F", text: "倾听并给予支持" }] }, - { id: 21, question: "您更欣赏的品质是:", dimension: "TF", options: [{ value: "T", text: "理性客观" }, { value: "F", text: "善解人意" }] }, - { id: 22, question: "您认为好的决定应该:", dimension: "TF", options: [{ value: "T", text: "基于客观分析" }, { value: "F", text: "考虑各方感受" }] }, - { id: 23, question: "当与他人意见不同时,您更倾向于:", dimension: "TF", options: [{ value: "T", text: "坚持正确观点" }, { value: "F", text: "寻求共识" }] }, - - // J vs P 维度 (7题) - { id: 24, question: "您更喜欢的工作方式是:", dimension: "JP", options: [{ value: "J", text: "有计划地进行" }, { value: "P", text: "随机应变" }] }, - { id: 25, question: "对于截止日期,您通常:", dimension: "JP", options: [{ value: "J", text: "提前完成" }, { value: "P", text: "在最后完成" }] }, - { id: 26, question: "您的生活方式更倾向于:", dimension: "JP", options: [{ value: "J", text: "有条理有规律" }, { value: "P", text: "灵活随意" }] }, - { id: 27, question: "面对选择时,您更倾向于:", dimension: "JP", options: [{ value: "J", text: "快速做出决定" }, { value: "P", text: "保持开放选项" }] }, - { id: 28, question: "您的桌面通常是:", dimension: "JP", options: [{ value: "J", text: "整洁有序" }, { value: "P", text: "创意性混乱" }] }, - { id: 29, question: "计划改变时,您的反应是:", dimension: "JP", options: [{ value: "J", text: "感到不安" }, { value: "P", text: "觉得有趣" }] }, - { id: 30, question: "您更喜欢:", dimension: "JP", options: [{ value: "J", text: "事先规划" }, { value: "P", text: "即兴发挥" }] } -] - -// DISC测试题 (20题) -const discQuestions = [ - { id: 1, question: "在团队中,您更倾向于:", options: [{ value: "D", text: "主导决策,带领团队" }, { value: "I", text: "活跃气氛,激励成员" }, { value: "S", text: "支持他人,确保和谐" }, { value: "C", text: "分析数据,确保质量" }] }, - { id: 2, question: "面对挑战时,您的第一反应是:", options: [{ value: "D", text: "立即行动" }, { value: "I", text: "寻找支持" }, { value: "S", text: "冷静思考" }, { value: "C", text: "收集信息" }] }, - { id: 3, question: "您在工作中最看重的是:", options: [{ value: "D", text: "成果和效率" }, { value: "I", text: "认可和赞赏" }, { value: "S", text: "稳定和安全" }, { value: "C", text: "准确和质量" }] }, - { id: 4, question: "与他人沟通时,您通常:", options: [{ value: "D", text: "直接了当" }, { value: "I", text: "热情友好" }, { value: "S", text: "耐心倾听" }, { value: "C", text: "逻辑清晰" }] }, - { id: 5, question: "压力之下,您会:", options: [{ value: "D", text: "更加强势" }, { value: "I", text: "寻求鼓励" }, { value: "S", text: "保持冷静" }, { value: "C", text: "更加谨慎" }] }, - { id: 6, question: "您认为自己的优势是:", options: [{ value: "D", text: "决断力强" }, { value: "I", text: "人际关系好" }, { value: "S", text: "可靠稳定" }, { value: "C", text: "分析能力强" }] }, - { id: 7, question: "在会议中,您通常扮演:", options: [{ value: "D", text: "主导者" }, { value: "I", text: "激励者" }, { value: "S", text: "调和者" }, { value: "C", text: "分析者" }] }, - { id: 8, question: "您最不喜欢的工作环境是:", options: [{ value: "D", text: "进展缓慢" }, { value: "I", text: "被孤立" }, { value: "S", text: "变化太快" }, { value: "C", text: "混乱无序" }] }, - { id: 9, question: "做决定时,您更依赖:", options: [{ value: "D", text: "直觉经验" }, { value: "I", text: "他人意见" }, { value: "S", text: "过去经验" }, { value: "C", text: "数据事实" }] }, - { id: 10, question: "您的工作风格是:", options: [{ value: "D", text: "快速高效" }, { value: "I", text: "灵活多变" }, { value: "S", text: "稳定持续" }, { value: "C", text: "严谨细致" }] }, - { id: 11, question: "遇到冲突时,您会:", options: [{ value: "D", text: "直面解决" }, { value: "I", text: "调解双方" }, { value: "S", text: "避免冲突" }, { value: "C", text: "分析原因" }] }, - { id: 12, question: "您期望的领导风格是:", options: [{ value: "D", text: "给予挑战" }, { value: "I", text: "认可表扬" }, { value: "S", text: "稳定支持" }, { value: "C", text: "明确指导" }] }, - { id: 13, question: "处理任务时,您更注重:", options: [{ value: "D", text: "速度效率" }, { value: "I", text: "创意新颖" }, { value: "S", text: "过程协作" }, { value: "C", text: "质量准确" }] }, - { id: 14, question: "您的社交方式是:", options: [{ value: "D", text: "目的明确" }, { value: "I", text: "广泛社交" }, { value: "S", text: "深度交往" }, { value: "C", text: "选择性社交" }] }, - { id: 15, question: "您理想的工作节奏是:", options: [{ value: "D", text: "快节奏" }, { value: "I", text: "灵活多变" }, { value: "S", text: "稳定有序" }, { value: "C", text: "有条理" }] }, - { id: 16, question: "面对变化,您的态度是:", options: [{ value: "D", text: "主动拥抱" }, { value: "I", text: "积极适应" }, { value: "S", text: "需要时间" }, { value: "C", text: "谨慎评估" }] }, - { id: 17, question: "您的时间管理风格是:", options: [{ value: "D", text: "高效利用" }, { value: "I", text: "灵活安排" }, { value: "S", text: "按部就班" }, { value: "C", text: "精确规划" }] }, - { id: 18, question: "激励您的是:", options: [{ value: "D", text: "成就控制" }, { value: "I", text: "认可社交" }, { value: "S", text: "稳定归属" }, { value: "C", text: "正确标准" }] }, - { id: 19, question: "您处理细节的方式是:", options: [{ value: "D", text: "关注大局" }, { value: "I", text: "可能忽略" }, { value: "S", text: "认真对待" }, { value: "C", text: "极度重视" }] }, - { id: 20, question: "您对规则的态度是:", options: [{ value: "D", text: "灵活打破" }, { value: "I", text: "灵活运用" }, { value: "S", text: "遵守维护" }, { value: "C", text: "严格遵守" }] } -] - -// PDP测试题 (20题) -const pdpQuestions = [ - { id: 1, question: "面对紧急任务,您的第一反应是:", options: [{ value: "Tiger", text: "立即行动" }, { value: "Peacock", text: "召集团队" }, { value: "Koala", text: "冷静分析" }, { value: "Owl", text: "仔细规划" }, { value: "Chameleon", text: "灵活应对" }] }, - { id: 2, question: "在社交场合,您通常会:", options: [{ value: "Tiger", text: "主导话题" }, { value: "Peacock", text: "活跃气氛" }, { value: "Koala", text: "安静倾听" }, { value: "Owl", text: "观察分析" }, { value: "Chameleon", text: "根据对象调整" }] }, - { id: 3, question: "您最看重工作中的:", options: [{ value: "Tiger", text: "权力和成就" }, { value: "Peacock", text: "认可和赞赏" }, { value: "Koala", text: "稳定和和谐" }, { value: "Owl", text: "准确和质量" }, { value: "Chameleon", text: "平衡和适应" }] }, - { id: 4, question: "处理冲突时,您倾向于:", options: [{ value: "Tiger", text: "直接解决" }, { value: "Peacock", text: "调解双方" }, { value: "Koala", text: "避免冲突" }, { value: "Owl", text: "理性处理" }, { value: "Chameleon", text: "视情况而定" }] }, - { id: 5, question: "您的决策风格是:", options: [{ value: "Tiger", text: "果断迅速" }, { value: "Peacock", text: "直觉判断" }, { value: "Koala", text: "深思熟虑" }, { value: "Owl", text: "数据分析" }, { value: "Chameleon", text: "灵活决策" }] }, - { id: 6, question: "面对压力,您会:", options: [{ value: "Tiger", text: "更加强势" }, { value: "Peacock", text: "寻求支持" }, { value: "Koala", text: "保持冷静" }, { value: "Owl", text: "更加谨慎" }, { value: "Chameleon", text: "调整策略" }] }, - { id: 7, question: "您的领导风格是:", options: [{ value: "Tiger", text: "指挥型" }, { value: "Peacock", text: "激励型" }, { value: "Koala", text: "支持型" }, { value: "Owl", text: "专家型" }, { value: "Chameleon", text: "教练型" }] }, - { id: 8, question: "您处理细节的方式是:", options: [{ value: "Tiger", text: "关注大局" }, { value: "Peacock", text: "可能忽略" }, { value: "Koala", text: "认真对待" }, { value: "Owl", text: "极度重视" }, { value: "Chameleon", text: "视情况决定" }] }, - { id: 9, question: "您的沟通方式是:", options: [{ value: "Tiger", text: "直接简短" }, { value: "Peacock", text: "热情生动" }, { value: "Koala", text: "温和耐心" }, { value: "Owl", text: "逻辑清晰" }, { value: "Chameleon", text: "根据对象调整" }] }, - { id: 10, question: "您对变化的态度是:", options: [{ value: "Tiger", text: "主动推动" }, { value: "Peacock", text: "积极拥抱" }, { value: "Koala", text: "需要适应" }, { value: "Owl", text: "谨慎评估" }, { value: "Chameleon", text: "随机应变" }] }, - { id: 11, question: "您的时间管理风格是:", options: [{ value: "Tiger", text: "追求速度" }, { value: "Peacock", text: "灵活安排" }, { value: "Koala", text: "稳定执行" }, { value: "Owl", text: "精确规划" }, { value: "Chameleon", text: "根据情况调整" }] }, - { id: 12, question: "您被什么激励:", options: [{ value: "Tiger", text: "成就权力" }, { value: "Peacock", text: "认可赞赏" }, { value: "Koala", text: "安全归属" }, { value: "Owl", text: "正确标准" }, { value: "Chameleon", text: "多样平衡" }] }, - { id: 13, question: "您的学习方式是:", options: [{ value: "Tiger", text: "边做边学" }, { value: "Peacock", text: "互动讨论" }, { value: "Koala", text: "循序渐进" }, { value: "Owl", text: "深入研究" }, { value: "Chameleon", text: "多种结合" }] }, - { id: 14, question: "您对规则的态度是:", options: [{ value: "Tiger", text: "灵活打破" }, { value: "Peacock", text: "不拘一格" }, { value: "Koala", text: "遵守维护" }, { value: "Owl", text: "严格遵守" }, { value: "Chameleon", text: "灵活处理" }] }, - { id: 15, question: "您在团队中的角色是:", options: [{ value: "Tiger", text: "领导者" }, { value: "Peacock", text: "激励者" }, { value: "Koala", text: "协调者" }, { value: "Owl", text: "专家" }, { value: "Chameleon", text: "多面手" }] }, - { id: 16, question: "您的工作节奏是:", options: [{ value: "Tiger", text: "快节奏" }, { value: "Peacock", text: "充满活力" }, { value: "Koala", text: "稳定有序" }, { value: "Owl", text: "有条理" }, { value: "Chameleon", text: "灵活调整" }] }, - { id: 17, question: "您最大的优势是:", options: [{ value: "Tiger", text: "执行力" }, { value: "Peacock", text: "影响力" }, { value: "Koala", text: "可靠性" }, { value: "Owl", text: "准确性" }, { value: "Chameleon", text: "适应力" }] }, - { id: 18, question: "您的人际关系特点是:", options: [{ value: "Tiger", text: "目标导向" }, { value: "Peacock", text: "朋友众多" }, { value: "Koala", text: "关系稳定" }, { value: "Owl", text: "志同道合" }, { value: "Chameleon", text: "灵活建立" }] }, - { id: 19, question: "面对批评,您的反应是:", options: [{ value: "Tiger", text: "可能反驳" }, { value: "Peacock", text: "可能受伤" }, { value: "Koala", text: "接受思考" }, { value: "Owl", text: "分析合理性" }, { value: "Chameleon", text: "灵活调整" }] }, - { id: 20, question: "您的理想工作环境是:", options: [{ value: "Tiger", text: "充满挑战" }, { value: "Peacock", text: "互动频繁" }, { value: "Koala", text: "稳定和谐" }, { value: "Owl", text: "有序规范" }, { value: "Chameleon", text: "灵活多变" }] } -] - -/** - * Fisher-Yates 洗牌:随机打乱题目顺序,同时随机打乱每题的选项顺序 - * 不修改原数组,返回深拷贝后的新数组 - * @param {Array} questions - 原题目数组 - * @returns {Array} 打乱后的题目数组 - */ -function shuffleQuestions(questions) { - // 深拷贝,避免污染原始数组 - const arr = questions.map(q => ({ - ...q, - options: q.options.slice().sort(() => Math.random() - 0.5) - })) - // Fisher-Yates 打乱题目顺序 - for (let i = arr.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - [arr[i], arr[j]] = [arr[j], arr[i]] - } - return arr -} - -module.exports = { - mbtiQuestions, - discQuestions, - pdpQuestions, - shuffleQuestions -} diff --git a/douyin-miniprogram/utils/resultFormat.js b/douyin-miniprogram/utils/resultFormat.js index e749d0f..539e61b 100644 --- a/douyin-miniprogram/utils/resultFormat.js +++ b/douyin-miniprogram/utils/resultFormat.js @@ -8,12 +8,164 @@ function toIntPercent(value) { return Number.isFinite(n) ? Math.round(n) : 0 } -/** - * 根据测试类型和原始结果,生成带整数百分比的摘要文案 - * @param {object} data - 单条测试结果(mbtiResult / discResult / pdpResult) - * @param {string} testType - 'mbti' | 'disc' | 'pdp' - * @returns {string} - */ +const PDP_EN_TO_CN = { + Tiger: '老虎型', + Peacock: '孔雀型', + Koala: '考拉型', + Owl: '猫头鹰型', + Chameleon: '变色龙型' +} + +function pdpOrderedFromScores(scores) { + if (!scores || typeof scores !== 'object') return ['', ''] + const pairs = [] + for (const k of Object.keys(scores)) { + if (!PDP_EN_TO_CN[k]) continue + pairs.push([k, Number(scores[k]) || 0]) + } + pairs.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])) + return [pairs[0] ? pairs[0][0] : '', pairs[1] ? pairs[1][0] : ''] +} + +function discOrderedFromScores(scores) { + if (!scores || typeof scores !== 'object') return ['', ''] + const allow = { D: 1, I: 1, S: 1, C: 1 } + const pairs = [] + for (const k of Object.keys(scores)) { + const u = String(k).trim().toUpperCase().charAt(0) + if (!allow[u]) continue + pairs.push([u, Number(scores[k]) || 0]) + } + pairs.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])) + return [pairs[0] ? pairs[0][0] : '', pairs[1] ? pairs[1][0] : ''] +} + +function discOrderedFromPercentages(pct) { + return discOrderedFromScores(pct) +} + +function discPrimaryLetter(data) { + if (!data || typeof data !== 'object') return '' + const dType = data.description && data.description.type + if (typeof dType === 'string' && dType) { + const noXing = String(dType).trim().replace(/型$/, '') + if (noXing.length === 1) { + const u = noXing.toUpperCase() + if (['D', 'I', 'S', 'C'].includes(u)) return u + } + } + if (data.dominantType) { + const u = String(data.dominantType).trim().toUpperCase().charAt(0) + if (['D', 'I', 'S', 'C'].includes(u)) return u + } + if (data.disc) { + const noXing = String(data.disc).trim().replace(/型$/, '') + if (noXing.length === 1) { + const u = noXing.toUpperCase() + if (['D', 'I', 'S', 'C'].includes(u)) return u + } + } + return '' +} + +function discResolveTwoLetters(data) { + let f = discPrimaryLetter(data) + let s = '' + if (data.secondaryType) { + const u = String(data.secondaryType).trim().toUpperCase().charAt(0) + if (['D', 'I', 'S', 'C'].includes(u)) s = u + } + let a0 = '' + let b = '' + if (data.scores && typeof data.scores === 'object') { + const ord = discOrderedFromScores(data.scores) + a0 = ord[0] || '' + b = ord[1] || '' + } + if (!a0 && !b && data.percentages && typeof data.percentages === 'object') { + const ord = discOrderedFromPercentages(data.percentages) + a0 = ord[0] || '' + b = ord[1] || '' + } + if (!f && a0) f = a0 + if (!s || s === f) { + if (b && b !== f) s = b + else s = '' + } + return [f, s] +} + +function discNormalizeLegacyDualType(desc) { + if (typeof desc !== 'string' || !desc) return '' + const t = desc.replace(/\s+/g, '').replace(/\uFF0B/g, '+') + let m = t.match(/^([DISC])型\+([DISC])型$/i) + if (m) return m[1].toUpperCase() + '+' + m[2].toUpperCase() + '型' + m = t.match(/^([DISC])型$/i) + if (m) return m[1].toUpperCase() + '型' + return '' +} + +function discTopTwoLabel(data) { + if (!data || typeof data !== 'object') return '' + const [fL, sL] = discResolveTwoLetters(data) + if (fL || sL) { + if (!fL) return sL ? sL + '型' : '' + if (!sL || sL === fL) return fL + '型' + return fL + '+' + sL + '型' + } + return discNormalizeLegacyDualType(data.description && data.description.type) +} + +function pdpPrimaryFull(data) { + if (!data || typeof data !== 'object') return '' + const desc = data.description && data.description.type + if (typeof desc === 'string' && desc) return desc.trim() + if (data.dominantType) { + const key = String(data.dominantType).trim() + return PDP_EN_TO_CN[key] || key + } + if (data.pdp) return String(data.pdp).trim() + return '' +} + +function pdpResolveTwoFull(data) { + let f = pdpPrimaryFull(data) + let s = '' + if (data.secondaryType) { + const k = String(data.secondaryType).trim() + s = PDP_EN_TO_CN[k] || k + } + let aEn = '' + let bEn = '' + if (data.scores && typeof data.scores === 'object') { + const ord = pdpOrderedFromScores(data.scores) + aEn = ord[0] || '' + bEn = ord[1] || '' + } + if (!aEn && !bEn && data.percentages && typeof data.percentages === 'object') { + const ord = pdpOrderedFromScores(data.percentages) + aEn = ord[0] || '' + bEn = ord[1] || '' + } + if (!f && aEn) f = PDP_EN_TO_CN[aEn] || aEn + if (!s || s === f) { + if (bEn) { + const cand = PDP_EN_TO_CN[bEn] || bEn + if (cand !== f) s = cand + } + } + return [f, s] +} + +function pdpTopTwoLabel(data) { + if (!data || typeof data !== 'object') return '' + const [ff, sf] = pdpResolveTwoFull(data) + if (!ff) return sf || '' + if (!sf || sf === ff) return ff + const short = String(ff).replace(/型$/, '') + return short + '+' + sf +} + function formatTestSummary(data, testType) { if (!data || typeof data !== 'object') return '' const t = (testType || '').toLowerCase() @@ -34,8 +186,9 @@ function formatTestSummary(data, testType) { } if (t === 'disc') { + const two = discTopTwoLabel(data) const desc = data.description && data.description.type - const label = (typeof desc === 'string' && desc) ? desc : ((data.dominantType ? data.dominantType + '型' : '') || (data.disc || '')) + const label = two || ((typeof desc === 'string' && desc) ? desc : ((data.dominantType ? data.dominantType + '型' : '') || (data.disc || ''))) const pct = data.percentages if (pct && typeof pct === 'object') { const d = toIntPercent(pct.D != null ? pct.D : pct.d) @@ -48,8 +201,9 @@ function formatTestSummary(data, testType) { } if (t === 'pdp') { + const two = pdpTopTwoLabel(data) const desc = data.description && data.description.type - const label = (typeof desc === 'string' && desc) ? desc : (data.dominantType || data.pdp || '') + const label = two || ((typeof desc === 'string' && desc) ? desc : (data.dominantType || data.pdp || '')) const pct = data.percentages if (pct && typeof pct === 'object') { const names = { Tiger: '老虎', Peacock: '孔雀', Owl: '猫头鹰', Koala: '考拉', Chameleon: '变色龙' } @@ -66,24 +220,28 @@ function formatTestSummary(data, testType) { return '' } -/** - * 仅返回类型标签(无百分比),用于列表、个人中心等 - */ function getTypeOnly(data, testType) { if (!data || typeof data !== 'object') return '' const t = (testType || '').toLowerCase() - if (t === 'mbti') return String(data.mbtiType ?? data.type ?? data.result ?? '') + if (t === 'mbti') return String(data.mbtiType != null ? data.mbtiType : (data.type != null ? data.type : (data.result != null ? data.result : ''))) if (t === 'disc') { - const desc = data.description?.type + const two = discTopTwoLabel(data) + if (two) return two + const desc = data.description && data.description.type if (typeof desc === 'string' && desc) return desc if (data.dominantType) return String(data.dominantType) + '型' - return String(data.disc ?? '') + return String(data.disc != null ? data.disc : '') } if (t === 'pdp') { - const desc = data.description?.type + const two = pdpTopTwoLabel(data) + if (two) return two + const desc = data.description && data.description.type if (typeof desc === 'string' && desc) return desc - if (data.dominantType) return String(data.dominantType) - return String(data.pdp ?? '') + if (data.dominantType) { + const k = String(data.dominantType).trim() + return PDP_EN_TO_CN[k] || k + } + return String(data.pdp != null ? data.pdp : '') } return '' } @@ -91,5 +249,7 @@ function getTypeOnly(data, testType) { module.exports = { toIntPercent, formatTestSummary, - getTypeOnly + getTypeOnly, + discTopTwoLabel, + pdpTopTwoLabel } diff --git a/miniprogram/app.js b/miniprogram/app.js index 89b1015..4012a1c 100644 --- a/miniprogram/app.js +++ b/miniprogram/app.js @@ -47,8 +47,8 @@ App({ // 超管配置的默认企业 ID(无 scene/eid 等入口参数时回落) defaultEnterpriseId: null, // API基础地址(开发时用本地,生产环境替换为实际域名) - apiBase: 'https://mbtiapi.quwanzhi.com', - //apiBase: 'http://mbti.com', + //apiBase: 'https://mbtiapi.quwanzhi.com', + apiBase: 'http://mbti.com', // VIP信息 vipInfo: null, // 测试次数 diff --git a/miniprogram/pages/profile/index.js b/miniprogram/pages/profile/index.js index cb23062..850fea8 100644 --- a/miniprogram/pages/profile/index.js +++ b/miniprogram/pages/profile/index.js @@ -3,6 +3,17 @@ const app = getApp() const { getTypeOnly } = require('../../utils/resultFormat') const { request } = require('../../utils/request') +/** recent 单条:优先用 resultMeta 与结果页一致的「双项」文案 */ +function summaryFromRecentRecord(rec, testType) { + if (!rec) return '' + const meta = rec.resultMeta + if (meta && typeof meta === 'object') { + const t = getTypeOnly(meta, testType) + if (t) return t + } + return String(rec.resultText || '').trim() +} + Page({ data: { hasLogin: false, @@ -47,19 +58,18 @@ Page({ permPdp: true, permDisc: true, permDistribution: true, - /** 最新测试横滑区:仅有已出结果的卡片时才显示,避免禁权或未测评占位 */ - showLatestTestCards: false, + /** 最新测试横滑区:有问卷/面相权限即显示;无记录时卡片灰阶占位,不隐藏 */ + showLatestTestRow: false, /** 用户卡片下性格标签:在「当前权限下无任何问卷结果」时显示灰色提示 */ showEmptyPersonalityTags: true }, - _computeShowLatestTestCards(d) { + _computeShowLatestTestRow(d) { const rm = !!(d.reviewMode) - if (d.permMbti && d.mbtiType) return true - if (d.permPdp && d.pdpType) return true - if (d.permDisc && d.discType) return true - if (!rm && d.permFace && (d.gallupPreview || d.aiType)) return true - return false + if (rm) { + return !!(d.permMbti || d.permPdp || d.permDisc) + } + return !!(d.permMbti || d.permPdp || d.permDisc || d.permFace) }, _computeShowEmptyPersonalityTags(d) { @@ -83,7 +93,7 @@ Page({ const d = { ...this.data, ...next } this.setData({ ...next, - showLatestTestCards: this._computeShowLatestTestCards(d), + showLatestTestRow: this._computeShowLatestTestRow(d), showEmptyPersonalityTags: this._computeShowEmptyPersonalityTags(d) }) }, @@ -203,8 +213,7 @@ Page({ const { records = {}, totalCount = 0 } = payload.data const r = records - // DISC resultText 后端已含「型」,type badge 只显示字母,去掉「型」 - const discType = r.disc ? r.disc.resultText.replace(/型$/, '') : '' + const discType = summaryFromRecentRecord(r.disc, 'disc') const gallupPreview = (r.ai && r.ai.gallupPreview) ? String(r.ai.gallupPreview) : '' const patch = { @@ -212,7 +221,7 @@ Page({ hasResults: !!(r.mbti || r.disc || r.pdp || r.ai), mbtiType: r.mbti ? r.mbti.resultText : '', discType, - pdpType: r.pdp ? r.pdp.resultText : '', + pdpType: summaryFromRecentRecord(r.pdp, 'pdp'), aiType: r.ai ? r.ai.resultText : '', gallupPreview, mbtiTime: r.mbti ? r.mbti.testTime : '', @@ -227,7 +236,7 @@ Page({ const d = { ...this.data, ...patch } this.setData({ ...patch, - showLatestTestCards: this._computeShowLatestTestCards(d), + showLatestTestRow: this._computeShowLatestTestRow(d), showEmptyPersonalityTags: this._computeShowEmptyPersonalityTags(d) }) }, @@ -303,7 +312,7 @@ Page({ const d = { ...this.data, ...patch } this.setData({ ...patch, - showLatestTestCards: this._computeShowLatestTestCards(d), + showLatestTestRow: this._computeShowLatestTestRow(d), showEmptyPersonalityTags: this._computeShowEmptyPersonalityTags(d) }) }, diff --git a/miniprogram/pages/profile/index.wxml b/miniprogram/pages/profile/index.wxml index 00dd5d4..5150f0c 100644 --- a/miniprogram/pages/profile/index.wxml +++ b/miniprogram/pages/profile/index.wxml @@ -53,7 +53,7 @@ {{mbtiType}} - {{discType}}型 + {{discType}} {{pdpType}} @@ -79,56 +79,56 @@ - + - + 🧠 MBTI性格 - {{mbtiType}} - {{mbtiTime}} + {{mbtiType || '未测评'}} + {{mbtiTime || '—'}} - + 🦁 PDP行为 - {{pdpType}} - {{pdpTime}} + {{pdpType || '未测评'}} + {{pdpTime || '—'}} - + 📊 DISC测评 - {{discType + '型'}} - {{discTime}} + {{discType || '未测评'}} + {{discTime || '—'}} - + 盖洛普优势 - {{gallupPreview || '见面相报告'}} - {{aiTime}} + {{gallupPreview || (aiType ? '见面相报告' : '未测评')}} + {{aiTime || '—'}} - + 👁️ 面相分析 - {{aiType}} - {{aiTime}} + {{aiType || '未测评'}} + {{aiTime || '—'}} - + 点击卡片查看详情;右上方可查看全部测试记录。 diff --git a/miniprogram/pages/profile/index.wxss b/miniprogram/pages/profile/index.wxss index 8b536a6..f65d09d 100644 --- a/miniprogram/pages/profile/index.wxss +++ b/miniprogram/pages/profile/index.wxss @@ -467,6 +467,15 @@ custom-tab-bar { letter-spacing: -1rpx; } +/* 与 MBTI 同字号;长文案(如 PDP/DISC 双项)最多两行 */ +.result-card .card-value { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; + line-height: 1.2; +} + .card-purple .card-value { color: #7C3AED; } .card-blue .card-value { color: #2563EB; } .card-orange .card-value { color: #D97706; } diff --git a/miniprogram/pages/result/disc.js b/miniprogram/pages/result/disc.js index 301dfb7..08763e3 100644 --- a/miniprogram/pages/result/disc.js +++ b/miniprogram/pages/result/disc.js @@ -1,6 +1,7 @@ // pages/result/disc.js - DISC结果页(支持付费墙 + 历史详情拉取) const app = getApp() const payment = require('../../utils/payment') +const { getTypeOnly } = require('../../utils/resultFormat') function toIntPercent(v) { if (v == null) return 0 @@ -24,6 +25,8 @@ function withPercentagesInt(data) { Page({ data: { result: null, + /** 主+次高权重展示(如 S+I型),与接口摘要一致 */ + typeSummaryLine: '', typeList: [ { type: 'D', label: 'D型 - 支配型', colorClass: 'fill-d' }, { type: 'I', label: 'I型 - 影响型', colorClass: 'fill-i' }, @@ -45,7 +48,8 @@ Page({ } const result = wx.getStorageSync('discResult') if (result) { - this.setData({ result: withPercentagesInt(result) }) + const r = withPercentagesInt(result) + this.setData({ result: r, typeSummaryLine: getTypeOnly(result, 'disc') }) this.initPayInfoFromRuntime('disc') } else { wx.showToast({ title: '暂无测试结果', icon: 'none' }) @@ -71,7 +75,11 @@ Page({ const paidAmount = payload.paidAmount != null ? Number(payload.paidAmount) : 0 const amountYuan = payload.amountYuan != null ? Number(payload.amountYuan) : (paidAmount > 0 ? paidAmount / 100 : 0) const needPaymentToUnlock = payload.needPaymentToUnlock === true || (!!payload.requiresPayment && !isPaid && paidAmount > 0) - this.setData({ result: withPercentagesInt(data) }) + const r = withPercentagesInt(data) + this.setData({ + result: r, + typeSummaryLine: getTypeOnly(data, 'disc') + }) const payInfo = { requiresPayment: needPaymentToUnlock, isPaid, diff --git a/miniprogram/pages/result/disc.wxml b/miniprogram/pages/result/disc.wxml index f211eef..9a52ec7 100644 --- a/miniprogram/pages/result/disc.wxml +++ b/miniprogram/pages/result/disc.wxml @@ -5,7 +5,7 @@ 您的DISC性格类型 - {{result.dominantType}}{{result.secondaryType ? ' + ' + result.secondaryType : ''}} + {{typeSummaryLine}} {{result.description.description}} diff --git a/miniprogram/pages/result/pdp.js b/miniprogram/pages/result/pdp.js index 51ae737..c630a33 100644 --- a/miniprogram/pages/result/pdp.js +++ b/miniprogram/pages/result/pdp.js @@ -1,6 +1,7 @@ // pages/result/pdp.js - PDP结果页(支持付费墙 + 历史详情拉取) const app = getApp() const payment = require('../../utils/payment') +const { getTypeOnly } = require('../../utils/resultFormat') const PDP_KEYS = ['Tiger', 'Peacock', 'Koala', 'Owl', 'Chameleon'] @@ -23,6 +24,7 @@ function withPercentagesInt(data) { Page({ data: { result: null, + typeSummaryLine: '', typeList: [ { type: 'Tiger', emoji: '🐅', label: '老虎型', colorClass: 'fill-tiger' }, { type: 'Peacock', emoji: '🦚', label: '孔雀型', colorClass: 'fill-peacock' }, @@ -45,7 +47,10 @@ Page({ } const result = wx.getStorageSync('pdpResult') if (result) { - this.setData({ result: withPercentagesInt(result) }) + this.setData({ + result: withPercentagesInt(result), + typeSummaryLine: getTypeOnly(result, 'pdp') + }) this.initPayInfoFromRuntime('pdp') } else { wx.showToast({ title: '暂无测试结果', icon: 'none' }) @@ -71,7 +76,10 @@ Page({ const paidAmount = payload.paidAmount != null ? Number(payload.paidAmount) : 0 const amountYuan = payload.amountYuan != null ? Number(payload.amountYuan) : (paidAmount > 0 ? paidAmount / 100 : 0) const needPaymentToUnlock = payload.needPaymentToUnlock === true || (!!payload.requiresPayment && !isPaid && paidAmount > 0) - this.setData({ result: withPercentagesInt(data) }) + this.setData({ + result: withPercentagesInt(data), + typeSummaryLine: getTypeOnly(data, 'pdp') + }) const payInfo = { requiresPayment: needPaymentToUnlock, isPaid, @@ -138,19 +146,19 @@ Page({ }, onShareAppMessage() { - const result = this.data.result + const line = this.data.typeSummaryLine || this.data.result?.description?.type || '' const { getSharePathByScope } = require('../../utils/share') return { - title: `我的PDP类型是${result?.description?.type}${result?.description?.emoji},来测测你的吧!`, + title: `我的PDP类型是${line},来测测你的吧!`, path: getSharePathByScope('/pages/index/index') } }, onShareTimeline() { - const result = this.data.result + const line = this.data.typeSummaryLine || this.data.result?.description?.type || '' const { buildShareQuery } = require('../../utils/share') return { - title: `我的PDP类型是${result?.description?.type}${result?.description?.emoji},来测测你的吧!`, + title: `我的PDP类型是${line},来测测你的吧!`, query: buildShareQuery() } } diff --git a/miniprogram/pages/result/pdp.wxml b/miniprogram/pages/result/pdp.wxml index e28f8ed..161c21d 100644 --- a/miniprogram/pages/result/pdp.wxml +++ b/miniprogram/pages/result/pdp.wxml @@ -5,7 +5,7 @@ PDP性格类型 - {{result.description.type || result.dominantType}}{{result.description.emoji || ''}} + {{typeSummaryLine}} {{result.description.title}} {{result.description.description}} diff --git a/miniprogram/pages/test/disc.js b/miniprogram/pages/test/disc.js index 852e92e..fa97422 100644 --- a/miniprogram/pages/test/disc.js +++ b/miniprogram/pages/test/disc.js @@ -1,19 +1,23 @@ // pages/test/disc.js -const { discQuestions, shuffleQuestions } = require('../../utils/questions') +const { loadQuestions } = require('../../utils/questionBank') const { discDescriptions } = require('../../utils/descriptions') const app = getApp() +const DISC_TIME_SEC = 15 * 60 + Page({ data: { + loading: true, questions: [], currentIndex: 0, currentQuestion: null, answers: {}, selectedAnswer: null, - total: discQuestions.length, + total: 0, answeredCount: 0, progress: 0, - timeRemaining: 15 * 60, + timeRemaining: DISC_TIME_SEC, + _initialSeconds: DISC_TIME_SEC, formatTime: '15:00', isSubmitting: false }, @@ -21,10 +25,31 @@ Page({ timer: null, onLoad() { - const questions = shuffleQuestions(discQuestions) - this.setData({ questions, currentQuestion: questions[0] }) - try { require('../../utils/analytics').track('test_start', { type: 'disc', total: questions.length }) } catch (e) {} - this.startTimer() + loadQuestions('disc', {}) + .then((questions) => { + if (!questions.length) { + wx.showToast({ title: '暂无题目', icon: 'none' }) + this.setData({ loading: false }) + return + } + this.setData({ + loading: false, + questions, + currentQuestion: questions[0], + total: questions.length, + timeRemaining: DISC_TIME_SEC, + _initialSeconds: DISC_TIME_SEC, + formatTime: '15:00' + }) + try { + require('../../utils/analytics').track('test_start', { type: 'disc', total: questions.length }) + } catch (e) {} + this.startTimer() + }) + .catch((err) => { + this.setData({ loading: false }) + wx.showToast({ title: (err && err.message) || '加载失败', icon: 'none' }) + }) }, onUnload() { @@ -148,7 +173,7 @@ Page({ dominantType, secondaryType, description: discDescriptions[dominantType], - testDuration: 15 * 60 - this.data.timeRemaining, + testDuration: (this.data._initialSeconds || DISC_TIME_SEC) - this.data.timeRemaining, completedAt: new Date().toISOString(), // 便于后端留存完整答题过程 answers: this.data.answers diff --git a/miniprogram/pages/test/disc.wxml b/miniprogram/pages/test/disc.wxml index 57413bd..89d705c 100644 --- a/miniprogram/pages/test/disc.wxml +++ b/miniprogram/pages/test/disc.wxml @@ -1,5 +1,9 @@ + + 加载题目… + + 问题 {{currentIndex + 1}}/{{total}} @@ -45,4 +49,5 @@ {{isSubmitting ? '计算中...' : '完成测试,查看结果'}} + diff --git a/miniprogram/pages/test/disc.wxss b/miniprogram/pages/test/disc.wxss index 629c75c..5c67d58 100644 --- a/miniprogram/pages/test/disc.wxss +++ b/miniprogram/pages/test/disc.wxss @@ -7,6 +7,19 @@ background-color: #fff; } +.test-loading { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + padding: 80rpx; +} + +.test-loading-text { + font-size: 30rpx; + color: #666; +} + .progress-section { padding: 32rpx; border-bottom: 1rpx solid #e5e5e5; diff --git a/miniprogram/pages/test/mbti.js b/miniprogram/pages/test/mbti.js index 93d023d..b3d0acb 100644 --- a/miniprogram/pages/test/mbti.js +++ b/miniprogram/pages/test/mbti.js @@ -1,20 +1,24 @@ // pages/test/mbti.js - MBTI测试页面逻辑 -const { mbtiQuestions, shuffleQuestions } = require('../../utils/questions') +const { loadQuestions } = require('../../utils/questionBank') const { mbtiDescriptions } = require('../../utils/descriptions') const payment = require('../../utils/payment') const app = getApp() +const MBTI_TIME_SEC = 30 * 60 // 30 分钟 + Page({ data: { + loading: true, questions: [], currentIndex: 0, currentQuestion: null, answers: {}, selectedAnswer: null, - total: mbtiQuestions.length, + total: 0, answeredCount: 0, progress: 0, - timeRemaining: 30 * 60, // 30分钟 + timeRemaining: MBTI_TIME_SEC, + _initialSeconds: MBTI_TIME_SEC, formatTime: '30:00', isSubmitting: false, canAccess: false @@ -23,17 +27,34 @@ Page({ timer: null, onLoad() { - const questions = shuffleQuestions(mbtiQuestions) - const total = questions.length - this.setData({ - questions, - currentQuestion: questions[0], - canAccess: true, - total, - progress: total ? Math.round((1 / total) * 100) : 0 - }) - try { require('../../utils/analytics').track('test_start', { type: 'mbti', total }) } catch (e) {} - this.startTimer() + loadQuestions('mbti', {}) + .then((questions) => { + const total = questions.length + if (!total) { + wx.showToast({ title: '暂无题目', icon: 'none' }) + this.setData({ loading: false }) + return + } + this.setData({ + loading: false, + questions, + currentQuestion: questions[0], + canAccess: true, + total, + progress: Math.round((1 / total) * 100), + timeRemaining: MBTI_TIME_SEC, + _initialSeconds: MBTI_TIME_SEC, + formatTime: '30:00' + }) + try { + require('../../utils/analytics').track('test_start', { type: 'mbti', total }) + } catch (e) {} + this.startTimer() + }) + .catch((err) => { + this.setData({ loading: false }) + wx.showToast({ title: (err && err.message) || '加载失败', icon: 'none' }) + }) }, // 检查访问权限 @@ -197,7 +218,7 @@ Page({ const resultData = { ...result, answers: this.data.answers, - testDuration: 30 * 60 - this.data.timeRemaining, + testDuration: (this.data._initialSeconds || MBTI_TIME_SEC) - this.data.timeRemaining, completedAt: new Date().toISOString(), timestamp: new Date().toISOString() } diff --git a/miniprogram/pages/test/mbti.wxml b/miniprogram/pages/test/mbti.wxml index 56e0ed1..418f2bd 100644 --- a/miniprogram/pages/test/mbti.wxml +++ b/miniprogram/pages/test/mbti.wxml @@ -1,5 +1,9 @@ + + 加载题目… + + 问题 {{currentIndex + 1}}/{{total}} @@ -45,4 +49,5 @@ {{isSubmitting ? '正在生成…' : '查看结果'}} + diff --git a/miniprogram/pages/test/mbti.wxss b/miniprogram/pages/test/mbti.wxss index f54d7b9..9fda97f 100644 --- a/miniprogram/pages/test/mbti.wxss +++ b/miniprogram/pages/test/mbti.wxss @@ -7,6 +7,19 @@ background-color: #fff; } +.test-loading { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + padding: 80rpx; +} + +.test-loading-text { + font-size: 30rpx; + color: #666; +} + .progress-section { padding: 32rpx; border-bottom: 1rpx solid #e5e5e5; diff --git a/miniprogram/pages/test/pdp.js b/miniprogram/pages/test/pdp.js index 164d421..bc69889 100644 --- a/miniprogram/pages/test/pdp.js +++ b/miniprogram/pages/test/pdp.js @@ -1,19 +1,23 @@ // pages/test/pdp.js -const { pdpQuestions, shuffleQuestions } = require('../../utils/questions') +const { loadQuestions } = require('../../utils/questionBank') const { pdpDescriptions } = require('../../utils/descriptions') const app = getApp() +const PDP_TIME_SEC = 15 * 60 + Page({ data: { + loading: true, questions: [], currentIndex: 0, currentQuestion: null, answers: {}, selectedAnswer: null, - total: pdpQuestions.length, + total: 0, answeredCount: 0, progress: 0, - timeRemaining: 15 * 60, + timeRemaining: PDP_TIME_SEC, + _initialSeconds: PDP_TIME_SEC, formatTime: '15:00', isSubmitting: false }, @@ -21,10 +25,31 @@ Page({ timer: null, onLoad() { - const questions = shuffleQuestions(pdpQuestions) - this.setData({ questions, currentQuestion: questions[0] }) - try { require('../../utils/analytics').track('test_start', { type: 'pdp', total: questions.length }) } catch (e) {} - this.startTimer() + loadQuestions('pdp', {}) + .then((questions) => { + if (!questions.length) { + wx.showToast({ title: '暂无题目', icon: 'none' }) + this.setData({ loading: false }) + return + } + this.setData({ + loading: false, + questions, + currentQuestion: questions[0], + total: questions.length, + timeRemaining: PDP_TIME_SEC, + _initialSeconds: PDP_TIME_SEC, + formatTime: '15:00' + }) + try { + require('../../utils/analytics').track('test_start', { type: 'pdp', total: questions.length }) + } catch (e) {} + this.startTimer() + }) + .catch((err) => { + this.setData({ loading: false }) + wx.showToast({ title: (err && err.message) || '加载失败', icon: 'none' }) + }) }, onUnload() { @@ -151,7 +176,7 @@ Page({ dominantType, secondaryType, description: pdpDescriptions[dominantType], - testDuration: 15 * 60 - this.data.timeRemaining, + testDuration: (this.data._initialSeconds || PDP_TIME_SEC) - this.data.timeRemaining, completedAt: new Date().toISOString(), // 便于后端留存完整答题过程 answers: this.data.answers diff --git a/miniprogram/pages/test/pdp.wxml b/miniprogram/pages/test/pdp.wxml index b08dfdd..11c6f67 100644 --- a/miniprogram/pages/test/pdp.wxml +++ b/miniprogram/pages/test/pdp.wxml @@ -1,5 +1,9 @@ + + 加载题目… + + 问题 {{currentIndex + 1}}/{{total}} @@ -45,4 +49,5 @@ {{isSubmitting ? '计算中...' : '完成测试,查看结果'}} + diff --git a/miniprogram/pages/test/pdp.wxss b/miniprogram/pages/test/pdp.wxss index 4db77fd..ec6570a 100644 --- a/miniprogram/pages/test/pdp.wxss +++ b/miniprogram/pages/test/pdp.wxss @@ -7,6 +7,19 @@ background-color: #fff; } +.test-loading { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + padding: 80rpx; +} + +.test-loading-text { + font-size: 30rpx; + color: #666; +} + .progress-section { padding: 32rpx; border-bottom: 1rpx solid #e5e5e5; diff --git a/miniprogram/utils/questionBank.js b/miniprogram/utils/questionBank.js index 7dce28e..3e5246b 100644 --- a/miniprogram/utils/questionBank.js +++ b/miniprogram/utils/questionBank.js @@ -1,8 +1,8 @@ /** - * 从服务端拉取启用题库,失败或为空时回落本地 questions.js;顺序由 shuffleQuestions 随机。 + * 仅从服务端拉取启用题库(/api/test/questions),无本地题目保底。 + * enterpriseId:未传时与 test/submit 一致,见 enterpriseContext.getEnterpriseIdForApiPayload() */ const { requestPromise } = require('./request') -const { shuffleQuestions } = require('./questions') function getAppSafe() { try { @@ -12,7 +12,45 @@ function getAppSafe() { } } -/** 与 runtime 一致:>0 时在乱序后截取前 N 题 */ +/** + * Fisher-Yates:打乱题目顺序,并随机每题选项顺序(深拷贝) + * @param {Array} questions + * @returns {Array} + */ +function shuffleQuestions(questions) { + const arr = (questions || []).map(q => ({ + ...q, + options: (q.options || []).slice().sort(() => Math.random() - 0.5) + })) + for (let i = arr.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)) + ;[arr[i], arr[j]] = [arr[j], arr[i]] + } + return arr +} + +/** + * @param {{ enterpriseId?: number|null }} opts + * @returns {number|null} + */ +function resolveEnterpriseIdForQuestionBank(opts) { + const o = opts || {} + if (Object.prototype.hasOwnProperty.call(o, 'enterpriseId')) { + const v = o.enterpriseId + if (v == null || v === '') { + return null + } + const n = Number(v) + return Number.isFinite(n) && n > 0 ? n : null + } + try { + const { getEnterpriseIdForApiPayload } = require('./enterpriseContext') + return getEnterpriseIdForApiPayload() + } catch (e) { + return null + } +} + function getTestQuestionDrawCount() { const app = getAppSafe() const n = app && app.globalData && app.globalData.testQuestionDrawCount @@ -60,23 +98,21 @@ function fetchQuestionBank(type, enterpriseId) { /** * @param {'mbti'|'disc'|'pdp'} type - * @param {Array} localQuestions * @param {{ enterpriseId?: number|null }} opts - * @returns {Promise} + * @returns {Promise} 乱序后的题目;接口无题或失败则 reject */ -function loadQuestionsWithFallback(type, localQuestions, opts = {}) { - const { enterpriseId } = opts - return fetchQuestionBank(type, enterpriseId) - .then((list) => { - if (!list.length) { - return applyDrawCountAfterShuffle(shuffleQuestions(localQuestions)) - } - return shuffleQuestions(list) - }) - .catch(() => applyDrawCountAfterShuffle(shuffleQuestions(localQuestions))) +function loadQuestions(type, opts = {}) { + const enterpriseId = resolveEnterpriseIdForQuestionBank(opts) + return fetchQuestionBank(type, enterpriseId).then((list) => { + if (!list.length) { + throw new Error('暂无启用题目') + } + return applyDrawCountAfterShuffle(shuffleQuestions(list)) + }) } module.exports = { fetchQuestionBank, - loadQuestionsWithFallback + loadQuestions, + shuffleQuestions } diff --git a/miniprogram/utils/questions.js b/miniprogram/utils/questions.js deleted file mode 100644 index 29ec9ac..0000000 --- a/miniprogram/utils/questions.js +++ /dev/null @@ -1,117 +0,0 @@ -// utils/questions.js - 测试题库 - -// MBTI测试题(精简版30题,每个维度约7-8题) -const mbtiQuestions = [ - // E vs I 维度 (8题) - { id: 1, question: "在社交场合中,您通常会:", dimension: "EI", options: [{ value: "E", text: "认识新朋友,扩大社交圈" }, { value: "I", text: "与已认识的朋友交流" }] }, - { id: 2, question: "您更喜欢:", dimension: "EI", options: [{ value: "E", text: "在团队中工作" }, { value: "I", text: "独立工作" }] }, - { id: 3, question: "当您需要充电时,您会选择:", dimension: "EI", options: [{ value: "E", text: "与朋友聚会" }, { value: "I", text: "独处休息" }] }, - { id: 4, question: "在会议中,您通常:", dimension: "EI", options: [{ value: "E", text: "积极发言" }, { value: "I", text: "先思考再发表" }] }, - { id: 5, question: "您更倾向于:", dimension: "EI", options: [{ value: "E", text: "认识很多人" }, { value: "I", text: "与少数人深交" }] }, - { id: 6, question: "面对问题时,您更倾向于:", dimension: "EI", options: [{ value: "E", text: "与他人讨论" }, { value: "I", text: "独自思考" }] }, - { id: 7, question: "您更喜欢的休闲活动是:", dimension: "EI", options: [{ value: "E", text: "团体活动" }, { value: "I", text: "个人爱好" }] }, - { id: 8, question: "在陌生环境中,您通常会:", dimension: "EI", options: [{ value: "E", text: "主动与人交谈" }, { value: "I", text: "观察周围环境" }] }, - - // S vs N 维度 (7题) - { id: 9, question: "您更关注:", dimension: "SN", options: [{ value: "S", text: "具体的细节和事实" }, { value: "N", text: "整体概念和可能性" }] }, - { id: 10, question: "您更信任:", dimension: "SN", options: [{ value: "S", text: "实际经验" }, { value: "N", text: "直觉和灵感" }] }, - { id: 11, question: "您更喜欢:", dimension: "SN", options: [{ value: "S", text: "按步骤执行" }, { value: "N", text: "创造性解决" }] }, - { id: 12, question: "学习新事物时,您更喜欢:", dimension: "SN", options: [{ value: "S", text: "实际操作" }, { value: "N", text: "理论学习" }] }, - { id: 13, question: "您更喜欢的工作类型是:", dimension: "SN", options: [{ value: "S", text: "明确的任务" }, { value: "N", text: "创新的项目" }] }, - { id: 14, question: "您描述事物时更倾向于:", dimension: "SN", options: [{ value: "S", text: "具体描述" }, { value: "N", text: "使用比喻" }] }, - { id: 15, question: "您更关心:", dimension: "SN", options: [{ value: "S", text: "当下的现实" }, { value: "N", text: "未来的可能" }] }, - - // T vs F 维度 (8题) - { id: 16, question: "做决定时,您更依赖:", dimension: "TF", options: [{ value: "T", text: "逻辑分析" }, { value: "F", text: "个人价值" }] }, - { id: 17, question: "在争论中,您更看重:", dimension: "TF", options: [{ value: "T", text: "事实真相" }, { value: "F", text: "和谐关系" }] }, - { id: 18, question: "给予反馈时,您更注重:", dimension: "TF", options: [{ value: "T", text: "直接指出问题" }, { value: "F", text: "考虑对方感受" }] }, - { id: 19, question: "评估方案时,您更关注:", dimension: "TF", options: [{ value: "T", text: "效率和结果" }, { value: "F", text: "对人的影响" }] }, - { id: 20, question: "当朋友遇到困难时,您更倾向于:", dimension: "TF", options: [{ value: "T", text: "分析问题提供建议" }, { value: "F", text: "倾听并给予支持" }] }, - { id: 21, question: "您更欣赏的品质是:", dimension: "TF", options: [{ value: "T", text: "理性客观" }, { value: "F", text: "善解人意" }] }, - { id: 22, question: "您认为好的决定应该:", dimension: "TF", options: [{ value: "T", text: "基于客观分析" }, { value: "F", text: "考虑各方感受" }] }, - { id: 23, question: "当与他人意见不同时,您更倾向于:", dimension: "TF", options: [{ value: "T", text: "坚持正确观点" }, { value: "F", text: "寻求共识" }] }, - - // J vs P 维度 (7题) - { id: 24, question: "您更喜欢的工作方式是:", dimension: "JP", options: [{ value: "J", text: "有计划地进行" }, { value: "P", text: "随机应变" }] }, - { id: 25, question: "对于截止日期,您通常:", dimension: "JP", options: [{ value: "J", text: "提前完成" }, { value: "P", text: "在最后完成" }] }, - { id: 26, question: "您的生活方式更倾向于:", dimension: "JP", options: [{ value: "J", text: "有条理有规律" }, { value: "P", text: "灵活随意" }] }, - { id: 27, question: "面对选择时,您更倾向于:", dimension: "JP", options: [{ value: "J", text: "快速做出决定" }, { value: "P", text: "保持开放选项" }] }, - { id: 28, question: "您的桌面通常是:", dimension: "JP", options: [{ value: "J", text: "整洁有序" }, { value: "P", text: "创意性混乱" }] }, - { id: 29, question: "计划改变时,您的反应是:", dimension: "JP", options: [{ value: "J", text: "感到不安" }, { value: "P", text: "觉得有趣" }] }, - { id: 30, question: "您更喜欢:", dimension: "JP", options: [{ value: "J", text: "事先规划" }, { value: "P", text: "即兴发挥" }] } -] - -// DISC测试题 (20题) -const discQuestions = [ - { id: 1, question: "在团队中,您更倾向于:", options: [{ value: "D", text: "主导决策,带领团队" }, { value: "I", text: "活跃气氛,激励成员" }, { value: "S", text: "支持他人,确保和谐" }, { value: "C", text: "分析数据,确保质量" }] }, - { id: 2, question: "面对挑战时,您的第一反应是:", options: [{ value: "D", text: "立即行动" }, { value: "I", text: "寻找支持" }, { value: "S", text: "冷静思考" }, { value: "C", text: "收集信息" }] }, - { id: 3, question: "您在工作中最看重的是:", options: [{ value: "D", text: "成果和效率" }, { value: "I", text: "认可和赞赏" }, { value: "S", text: "稳定和安全" }, { value: "C", text: "准确和质量" }] }, - { id: 4, question: "与他人沟通时,您通常:", options: [{ value: "D", text: "直接了当" }, { value: "I", text: "热情友好" }, { value: "S", text: "耐心倾听" }, { value: "C", text: "逻辑清晰" }] }, - { id: 5, question: "压力之下,您会:", options: [{ value: "D", text: "更加强势" }, { value: "I", text: "寻求鼓励" }, { value: "S", text: "保持冷静" }, { value: "C", text: "更加谨慎" }] }, - { id: 6, question: "您认为自己的优势是:", options: [{ value: "D", text: "决断力强" }, { value: "I", text: "人际关系好" }, { value: "S", text: "可靠稳定" }, { value: "C", text: "分析能力强" }] }, - { id: 7, question: "在会议中,您通常扮演:", options: [{ value: "D", text: "主导者" }, { value: "I", text: "激励者" }, { value: "S", text: "调和者" }, { value: "C", text: "分析者" }] }, - { id: 8, question: "您最不喜欢的工作环境是:", options: [{ value: "D", text: "进展缓慢" }, { value: "I", text: "被孤立" }, { value: "S", text: "变化太快" }, { value: "C", text: "混乱无序" }] }, - { id: 9, question: "做决定时,您更依赖:", options: [{ value: "D", text: "直觉经验" }, { value: "I", text: "他人意见" }, { value: "S", text: "过去经验" }, { value: "C", text: "数据事实" }] }, - { id: 10, question: "您的工作风格是:", options: [{ value: "D", text: "快速高效" }, { value: "I", text: "灵活多变" }, { value: "S", text: "稳定持续" }, { value: "C", text: "严谨细致" }] }, - { id: 11, question: "遇到冲突时,您会:", options: [{ value: "D", text: "直面解决" }, { value: "I", text: "调解双方" }, { value: "S", text: "避免冲突" }, { value: "C", text: "分析原因" }] }, - { id: 12, question: "您期望的领导风格是:", options: [{ value: "D", text: "给予挑战" }, { value: "I", text: "认可表扬" }, { value: "S", text: "稳定支持" }, { value: "C", text: "明确指导" }] }, - { id: 13, question: "处理任务时,您更注重:", options: [{ value: "D", text: "速度效率" }, { value: "I", text: "创意新颖" }, { value: "S", text: "过程协作" }, { value: "C", text: "质量准确" }] }, - { id: 14, question: "您的社交方式是:", options: [{ value: "D", text: "目的明确" }, { value: "I", text: "广泛社交" }, { value: "S", text: "深度交往" }, { value: "C", text: "选择性社交" }] }, - { id: 15, question: "您理想的工作节奏是:", options: [{ value: "D", text: "快节奏" }, { value: "I", text: "灵活多变" }, { value: "S", text: "稳定有序" }, { value: "C", text: "有条理" }] }, - { id: 16, question: "面对变化,您的态度是:", options: [{ value: "D", text: "主动拥抱" }, { value: "I", text: "积极适应" }, { value: "S", text: "需要时间" }, { value: "C", text: "谨慎评估" }] }, - { id: 17, question: "您的时间管理风格是:", options: [{ value: "D", text: "高效利用" }, { value: "I", text: "灵活安排" }, { value: "S", text: "按部就班" }, { value: "C", text: "精确规划" }] }, - { id: 18, question: "激励您的是:", options: [{ value: "D", text: "成就控制" }, { value: "I", text: "认可社交" }, { value: "S", text: "稳定归属" }, { value: "C", text: "正确标准" }] }, - { id: 19, question: "您处理细节的方式是:", options: [{ value: "D", text: "关注大局" }, { value: "I", text: "可能忽略" }, { value: "S", text: "认真对待" }, { value: "C", text: "极度重视" }] }, - { id: 20, question: "您对规则的态度是:", options: [{ value: "D", text: "灵活打破" }, { value: "I", text: "灵活运用" }, { value: "S", text: "遵守维护" }, { value: "C", text: "严格遵守" }] } -] - -// PDP测试题 (20题) -const pdpQuestions = [ - { id: 1, question: "面对紧急任务,您的第一反应是:", options: [{ value: "Tiger", text: "立即行动" }, { value: "Peacock", text: "召集团队" }, { value: "Koala", text: "冷静分析" }, { value: "Owl", text: "仔细规划" }, { value: "Chameleon", text: "灵活应对" }] }, - { id: 2, question: "在社交场合,您通常会:", options: [{ value: "Tiger", text: "主导话题" }, { value: "Peacock", text: "活跃气氛" }, { value: "Koala", text: "安静倾听" }, { value: "Owl", text: "观察分析" }, { value: "Chameleon", text: "根据对象调整" }] }, - { id: 3, question: "您最看重工作中的:", options: [{ value: "Tiger", text: "权力和成就" }, { value: "Peacock", text: "认可和赞赏" }, { value: "Koala", text: "稳定和和谐" }, { value: "Owl", text: "准确和质量" }, { value: "Chameleon", text: "平衡和适应" }] }, - { id: 4, question: "处理冲突时,您倾向于:", options: [{ value: "Tiger", text: "直接解决" }, { value: "Peacock", text: "调解双方" }, { value: "Koala", text: "避免冲突" }, { value: "Owl", text: "理性处理" }, { value: "Chameleon", text: "视情况而定" }] }, - { id: 5, question: "您的决策风格是:", options: [{ value: "Tiger", text: "果断迅速" }, { value: "Peacock", text: "直觉判断" }, { value: "Koala", text: "深思熟虑" }, { value: "Owl", text: "数据分析" }, { value: "Chameleon", text: "灵活决策" }] }, - { id: 6, question: "面对压力,您会:", options: [{ value: "Tiger", text: "更加强势" }, { value: "Peacock", text: "寻求支持" }, { value: "Koala", text: "保持冷静" }, { value: "Owl", text: "更加谨慎" }, { value: "Chameleon", text: "调整策略" }] }, - { id: 7, question: "您的领导风格是:", options: [{ value: "Tiger", text: "指挥型" }, { value: "Peacock", text: "激励型" }, { value: "Koala", text: "支持型" }, { value: "Owl", text: "专家型" }, { value: "Chameleon", text: "教练型" }] }, - { id: 8, question: "您处理细节的方式是:", options: [{ value: "Tiger", text: "关注大局" }, { value: "Peacock", text: "可能忽略" }, { value: "Koala", text: "认真对待" }, { value: "Owl", text: "极度重视" }, { value: "Chameleon", text: "视情况决定" }] }, - { id: 9, question: "您的沟通方式是:", options: [{ value: "Tiger", text: "直接简短" }, { value: "Peacock", text: "热情生动" }, { value: "Koala", text: "温和耐心" }, { value: "Owl", text: "逻辑清晰" }, { value: "Chameleon", text: "根据对象调整" }] }, - { id: 10, question: "您对变化的态度是:", options: [{ value: "Tiger", text: "主动推动" }, { value: "Peacock", text: "积极拥抱" }, { value: "Koala", text: "需要适应" }, { value: "Owl", text: "谨慎评估" }, { value: "Chameleon", text: "随机应变" }] }, - { id: 11, question: "您的时间管理风格是:", options: [{ value: "Tiger", text: "追求速度" }, { value: "Peacock", text: "灵活安排" }, { value: "Koala", text: "稳定执行" }, { value: "Owl", text: "精确规划" }, { value: "Chameleon", text: "根据情况调整" }] }, - { id: 12, question: "您被什么激励:", options: [{ value: "Tiger", text: "成就权力" }, { value: "Peacock", text: "认可赞赏" }, { value: "Koala", text: "安全归属" }, { value: "Owl", text: "正确标准" }, { value: "Chameleon", text: "多样平衡" }] }, - { id: 13, question: "您的学习方式是:", options: [{ value: "Tiger", text: "边做边学" }, { value: "Peacock", text: "互动讨论" }, { value: "Koala", text: "循序渐进" }, { value: "Owl", text: "深入研究" }, { value: "Chameleon", text: "多种结合" }] }, - { id: 14, question: "您对规则的态度是:", options: [{ value: "Tiger", text: "灵活打破" }, { value: "Peacock", text: "不拘一格" }, { value: "Koala", text: "遵守维护" }, { value: "Owl", text: "严格遵守" }, { value: "Chameleon", text: "灵活处理" }] }, - { id: 15, question: "您在团队中的角色是:", options: [{ value: "Tiger", text: "领导者" }, { value: "Peacock", text: "激励者" }, { value: "Koala", text: "协调者" }, { value: "Owl", text: "专家" }, { value: "Chameleon", text: "多面手" }] }, - { id: 16, question: "您的工作节奏是:", options: [{ value: "Tiger", text: "快节奏" }, { value: "Peacock", text: "充满活力" }, { value: "Koala", text: "稳定有序" }, { value: "Owl", text: "有条理" }, { value: "Chameleon", text: "灵活调整" }] }, - { id: 17, question: "您最大的优势是:", options: [{ value: "Tiger", text: "执行力" }, { value: "Peacock", text: "影响力" }, { value: "Koala", text: "可靠性" }, { value: "Owl", text: "准确性" }, { value: "Chameleon", text: "适应力" }] }, - { id: 18, question: "您的人际关系特点是:", options: [{ value: "Tiger", text: "目标导向" }, { value: "Peacock", text: "朋友众多" }, { value: "Koala", text: "关系稳定" }, { value: "Owl", text: "志同道合" }, { value: "Chameleon", text: "灵活建立" }] }, - { id: 19, question: "面对批评,您的反应是:", options: [{ value: "Tiger", text: "可能反驳" }, { value: "Peacock", text: "可能受伤" }, { value: "Koala", text: "接受思考" }, { value: "Owl", text: "分析合理性" }, { value: "Chameleon", text: "灵活调整" }] }, - { id: 20, question: "您的理想工作环境是:", options: [{ value: "Tiger", text: "充满挑战" }, { value: "Peacock", text: "互动频繁" }, { value: "Koala", text: "稳定和谐" }, { value: "Owl", text: "有序规范" }, { value: "Chameleon", text: "灵活多变" }] } -] - -/** - * Fisher-Yates 洗牌:随机打乱题目顺序,同时随机打乱每题的选项顺序 - * 不修改原数组,返回深拷贝后的新数组 - * @param {Array} questions - 原题目数组 - * @returns {Array} 打乱后的题目数组 - */ -function shuffleQuestions(questions) { - // 深拷贝,避免污染原始数组 - const arr = questions.map(q => ({ - ...q, - options: q.options.slice().sort(() => Math.random() - 0.5) - })) - // Fisher-Yates 打乱题目顺序 - for (let i = arr.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - [arr[i], arr[j]] = [arr[j], arr[i]] - } - return arr -} - -module.exports = { - mbtiQuestions, - discQuestions, - pdpQuestions, - shuffleQuestions -} diff --git a/miniprogram/utils/resultFormat.js b/miniprogram/utils/resultFormat.js index e749d0f..59b3daa 100644 --- a/miniprogram/utils/resultFormat.js +++ b/miniprogram/utils/resultFormat.js @@ -8,6 +8,168 @@ function toIntPercent(value) { return Number.isFinite(n) ? Math.round(n) : 0 } +const PDP_EN_TO_CN = { + Tiger: '老虎型', + Peacock: '孔雀型', + Koala: '考拉型', + Owl: '猫头鹰型', + Chameleon: '变色龙型' +} + +function pdpOrderedFromScores(scores) { + if (!scores || typeof scores !== 'object') return ['', ''] + const pairs = [] + for (const k of Object.keys(scores)) { + if (!PDP_EN_TO_CN[k]) continue + pairs.push([k, Number(scores[k]) || 0]) + } + pairs.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])) + return [pairs[0] ? pairs[0][0] : '', pairs[1] ? pairs[1][0] : ''] +} + +function discOrderedFromScores(scores) { + if (!scores || typeof scores !== 'object') return ['', ''] + const allow = { D: 1, I: 1, S: 1, C: 1 } + const pairs = [] + for (const k of Object.keys(scores)) { + const u = String(k).trim().toUpperCase().charAt(0) + if (!allow[u]) continue + pairs.push([u, Number(scores[k]) || 0]) + } + pairs.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])) + return [pairs[0] ? pairs[0][0] : '', pairs[1] ? pairs[1][0] : ''] +} + +/** 与 scores 相同维度;DISC 接口常以 percentages 存四维而无 scores */ +function discOrderedFromPercentages(pct) { + return discOrderedFromScores(pct) +} + +/** DISC:「S+I型」,仅最后一项带「型」 */ +function discPrimaryLetter(data) { + if (!data || typeof data !== 'object') return '' + const dType = data.description && data.description.type + if (typeof dType === 'string' && dType) { + const noXing = String(dType).trim().replace(/型$/, '') + if (noXing.length === 1) { + const u = noXing.toUpperCase() + if (['D', 'I', 'S', 'C'].includes(u)) return u + } + } + if (data.dominantType) { + const u = String(data.dominantType).trim().toUpperCase().charAt(0) + if (['D', 'I', 'S', 'C'].includes(u)) return u + } + if (data.disc) { + const noXing = String(data.disc).trim().replace(/型$/, '') + if (noXing.length === 1) { + const u = noXing.toUpperCase() + if (['D', 'I', 'S', 'C'].includes(u)) return u + } + } + return '' +} + +function discResolveTwoLetters(data) { + let f = discPrimaryLetter(data) + let s = '' + if (data.secondaryType) { + const u = String(data.secondaryType).trim().toUpperCase().charAt(0) + if (['D', 'I', 'S', 'C'].includes(u)) s = u + } + let a0 = '' + let b = '' + if (data.scores && typeof data.scores === 'object') { + const ord = discOrderedFromScores(data.scores) + a0 = ord[0] || '' + b = ord[1] || '' + } + if (!a0 && !b && data.percentages && typeof data.percentages === 'object') { + const ord = discOrderedFromPercentages(data.percentages) + a0 = ord[0] || '' + b = ord[1] || '' + } + if (!f && a0) f = a0 + if (!s || s === f) { + if (b && b !== f) s = b + else s = '' + } + return [f, s] +} + +/** 旧接口/库存:「S型 + I型」「S型+I型」→ S+I型 */ +function discNormalizeLegacyDualType(desc) { + if (typeof desc !== 'string' || !desc) return '' + const t = desc.replace(/\s+/g, '').replace(/\uFF0B/g, '+') + let m = t.match(/^([DISC])型\+([DISC])型$/i) + if (m) return m[1].toUpperCase() + '+' + m[2].toUpperCase() + '型' + m = t.match(/^([DISC])型$/i) + if (m) return m[1].toUpperCase() + '型' + return '' +} + +function discTopTwoLabel(data) { + if (!data || typeof data !== 'object') return '' + const [fL, sL] = discResolveTwoLetters(data) + if (fL || sL) { + if (!fL) return sL ? sL + '型' : '' + if (!sL || sL === fL) return fL + '型' + return fL + '+' + sL + '型' + } + return discNormalizeLegacyDualType(data.description && data.description.type) +} + +function pdpPrimaryFull(data) { + if (!data || typeof data !== 'object') return '' + const desc = data.description && data.description.type + if (typeof desc === 'string' && desc) return desc.trim() + if (data.dominantType) { + const key = String(data.dominantType).trim() + return PDP_EN_TO_CN[key] || key + } + if (data.pdp) return String(data.pdp).trim() + return '' +} + +function pdpResolveTwoFull(data) { + let f = pdpPrimaryFull(data) + let s = '' + if (data.secondaryType) { + const k = String(data.secondaryType).trim() + s = PDP_EN_TO_CN[k] || k + } + let aEn = '' + let bEn = '' + if (data.scores && typeof data.scores === 'object') { + const ord = pdpOrderedFromScores(data.scores) + aEn = ord[0] || '' + bEn = ord[1] || '' + } + if (!aEn && !bEn && data.percentages && typeof data.percentages === 'object') { + const ord = pdpOrderedFromScores(data.percentages) + aEn = ord[0] || '' + bEn = ord[1] || '' + } + if (!f && aEn) f = PDP_EN_TO_CN[aEn] || aEn + if (!s || s === f) { + if (bEn) { + const cand = PDP_EN_TO_CN[bEn] || bEn + if (cand !== f) s = cand + } + } + return [f, s] +} + +/** PDP:「孔雀+老虎型」,仅最后一项带「型」 */ +function pdpTopTwoLabel(data) { + if (!data || typeof data !== 'object') return '' + const [ff, sf] = pdpResolveTwoFull(data) + if (!ff) return sf || '' + if (!sf || sf === ff) return ff + const short = String(ff).replace(/型$/, '') + return short + '+' + sf +} + /** * 根据测试类型和原始结果,生成带整数百分比的摘要文案 * @param {object} data - 单条测试结果(mbtiResult / discResult / pdpResult) @@ -34,8 +196,9 @@ function formatTestSummary(data, testType) { } if (t === 'disc') { + const two = discTopTwoLabel(data) const desc = data.description && data.description.type - const label = (typeof desc === 'string' && desc) ? desc : ((data.dominantType ? data.dominantType + '型' : '') || (data.disc || '')) + const label = two || ((typeof desc === 'string' && desc) ? desc : ((data.dominantType ? data.dominantType + '型' : '') || (data.disc || ''))) const pct = data.percentages if (pct && typeof pct === 'object') { const d = toIntPercent(pct.D != null ? pct.D : pct.d) @@ -48,8 +211,9 @@ function formatTestSummary(data, testType) { } if (t === 'pdp') { + const two = pdpTopTwoLabel(data) const desc = data.description && data.description.type - const label = (typeof desc === 'string' && desc) ? desc : (data.dominantType || data.pdp || '') + const label = two || ((typeof desc === 'string' && desc) ? desc : (data.dominantType || data.pdp || '')) const pct = data.percentages if (pct && typeof pct === 'object') { const names = { Tiger: '老虎', Peacock: '孔雀', Owl: '猫头鹰', Koala: '考拉', Chameleon: '变色龙' } @@ -74,15 +238,22 @@ function getTypeOnly(data, testType) { const t = (testType || '').toLowerCase() if (t === 'mbti') return String(data.mbtiType ?? data.type ?? data.result ?? '') if (t === 'disc') { + const two = discTopTwoLabel(data) + if (two) return two const desc = data.description?.type if (typeof desc === 'string' && desc) return desc if (data.dominantType) return String(data.dominantType) + '型' return String(data.disc ?? '') } if (t === 'pdp') { + const two = pdpTopTwoLabel(data) + if (two) return two const desc = data.description?.type if (typeof desc === 'string' && desc) return desc - if (data.dominantType) return String(data.dominantType) + if (data.dominantType) { + const k = String(data.dominantType).trim() + return PDP_EN_TO_CN[k] || k + } return String(data.pdp ?? '') } return '' @@ -91,5 +262,7 @@ function getTypeOnly(data, testType) { module.exports = { toIntPercent, formatTestSummary, - getTypeOnly + getTypeOnly, + discTopTwoLabel, + pdpTopTwoLabel }