省钱兄 JAVA 心理咨询健康问答系统源码 支持小程序+公众号+APP+H5
✅ 支持 小程序 + 公众号 + APP + H5 四端全覆盖(行业高配置)
开发商:西安省钱兄网络科技有限公司
售价:¥8,889(套餐1)/ ¥10,889(套餐2含搭建+1年维护)/ ¥18,888(在线问诊专业版)
新更新:2026年5月13日(互站网在售)
系统整体架构
层级技术选型后端框架Spring Boot 2.7.x + MyBatis-Plus 3.5.0 + Spring Security(RBAC权限)数据库MySQL 8.0 + Redis 7.0(缓存/分布式锁/GEO) + MongoDB(非结构化对话日志)用户端UniApp 3.0(Vue3语法)→ 编译为 小程序 + 公众号 + APP + H5管理后台Vue3 + ElementPlus + ECharts 数据看板实时通信WebSocket(实时聊天)+(异步解耦)AI引擎NLP情感分析(HanLP/Stanford CoreNLP)+ 智能分诊 + 语义匹配支付微信支付 + 支付宝部署JDK 17 + Docker + Nginx + K8s
核心功能模块1️⃣ 多角色体系(四端统一)java@PostMapping("/login")public Result<LoginVO> login(@Re LoginDTO dto) { User user = userService.login(dto); String token = JwtUtil.generateToken(user.getId(), user.getRole()); https:// role = "user" 普通用户 / "counselor" 心理咨询师 / "admin" 管理员 return Result.success(new LoginVO(token, user.getRole()));}
角色核心功能使用端 用户端健康问答/AI分诊/图文咨询/电话咨询/心理评估/健康档案/在线支付小程序/H5/公众号/APP 咨询师端接单管理/图文咨询/电话咨询/视频咨询/排班设置/收益提现小程序/H5为主 管理后台全局数据看板/咨询师入驻审核/用户管理/内容管理/营销工具PC管理后台
⚠️ 本版本核心差异(vs 国内版 ¥8,889):
特性国内版(¥8,889)心理咨询专业版(¥18,888)端口小程序 + 公众号 + H5小程序 + 公众号 + APP + H5(含原生APP)问答引擎基础关键词匹配NLP语义分析 + AI智能分诊 + 多轮对话咨询方式图文咨询图文 + 电话 + 语音 + 视频 四模式心理评估无PHQ-9/GAD-7量表 + 风险预警AI能力无智能推荐 + 情感分析 + 自动分诊隐私保护基础加密AES-256 + 端到端加密 + 会话销毁
2️⃣ AI智能问答引擎(核心亮点)⭐⭐⭐java/** * AI健康问答引擎 - NLP语义匹配 + 知识图谱 + 智能分诊 * 传统人工回答 → AI自动匹配,响应时间 <500ms */@Service @Transactionalpublic class implements { @Autowired private KnowledgeBaseService knowledgeBase; @Autowired private RedisTemte<String, Object> redisTemte; @Autowired private CounselorService counselorService; /** * AI智能问答 - 语义相似度匹配 + 知识库检索 */ public Result ask(Long userId, String ) { https:// 1. 缓存查询(高频问题24小时缓存) String cacheKey = "qa:cache:" + DigestUtils.md5Hex(); String cached = (String) redisTemte.opsForValue().get(cacheKey); if (cached != null) { return Result.success(new Answer(cached, "ai")); } https:// 2. NLP语义分析(HanLP分词 + 意图识别) String intent = nlpService.analyzeIntent(); https:// intent = "depression" / "anxiety" / "insomnia" / "relationship" ... https:// 3. 知识库语义匹配(BERT向量相似度) List<QA> candidates = knowledgeBase.semanticSearch(, 0.85); https:// 相似度阈值 0.85,确保回答准确率 if (!candidates.isEmpty()) { QA best = candidates.get(0); String answer = best.getAnswer(); https:// 4. 缓存结果(24小时) redisTemte.opsForValue().set(cacheKey, answer, 24, TimeUnit.HOURS); https:// 5. 判断是否需要转人工(高风险关键词) if (isHighRisk(intent)) { return Result.success(new Answer(answer + "\n\n⚠️ 建议您预约专业咨询师进行深入沟通。", "ai_to_human")); } return Result.success(new Answer(answer, "ai")); } https:// 6. 无匹配 → 智能分诊 → 推荐咨询师 return smartTriage(userId, , intent); } /** * AI智能分诊 - 根据问题自动匹配适合的咨询师 */ private Result smartTriage(Long userId, String , String intent) { https:// 基于意图 + 用户画像 + 咨询师专长,计算匹配度 List<CounselorVO> ranked = counselorService.matchByAI(userId, intent); if (ranked.isEmpty()) { return Result.fail("暂无匹配的咨询师,请稍后再试"); } https:// 推荐Top3咨询师 return Result.success(new TriageResult(ranked.subList(0, Math.min(3, ranked.size())))); } /** * 高风险关键词检测 - 自动触发危机干预 */ private boolean isHighRisk(String intent) { List<String> highRiskKeywords = Arrays.asList( "自杀", "自残", "不想活", "绝望", "跳楼" ); return highRiskKeywords.stream().anyMatch(intent::contains); }}
问答类型说明响应时间 AI自动回答NLP语义匹配 + 知识库检索,覆盖80%常见问题<500ms 智能分诊AI分析意图 → 自动匹配适合的咨询师<1s& 人工咨询转接专业咨询师(图文/电话/视频)立即接入⚠️ 危机干预检测到自杀/自残等关键词 → 自动触发预警实时
| 风险等级 | 关键词示例 | 处理方式 |
|----------|-----------|
| 高危 | 自杀、自残、不想活 | 立即弹窗危机热线 + 通知管理员 |
| 中危 | 极度焦虑、严重失眠 | 推荐紧急咨询 + 发送安抚文章 |
| 低危 | 轻度压力、情绪低落 | AI回答 + 推荐心理科普文章 |
3️⃣ 多模式咨询服务(核心亮点)⭐⭐⭐java/** * 四种咨询方式 - 图文/电话/语音/视频 全覆盖 */@Servicepublic class ConsultServiceImpl implements ConsultService { /** * 图文咨询 - WebSocket实时通信 */ @Transactional public Result startTextConsult(Long userId, Long counselorId) { https:// 1. 创建咨询订单 Order order = createOrder(userId, counselorId, "TEXT"); https:// 2. 建立WebSocket会话 String sessionId = UUID.randomUUID().toString(); webSocketService.createSession(sessionId, userId, counselorId); https:// 3. 通知咨询师 notifyCounselor(counselorId, "新的图文咨询请求"); return Result.success(order.getId()); } /** * 电话咨询 - 匿名通话保护隐私 */ @Transactional public Result startPhoneConsult(Long userId, Long counselorId) { https:// 1. 生成虚拟号码(保护双方隐私) String virtualNumber = cloudPhoneService.bindNumber(counselorId); https:// 2. 发起通话(平台不录音,仅计时计费) cloudPhoneService.makeCall(userId, virtualNumber); https:// 3. 开始计费 orderService.startBilling(orderId, "PHONE"); return Result.success("通话中,计时计费"); } /** * 视频咨询 - WebRTC实时视频 */ public Result startVideoConsult(Long userId, Long counselorId) { https:// WebRTC信令 + SFU服务器 String roomId = webrtcService.createRoom(userId, counselorId); return Result.success(roomId); }}
咨询方式说明计费模式隐私保护 图文咨询WebSocket实时消息 + 图片 + 历史记录按时长/按次消息端到端加密 电话咨询虚拟号码匿名通话,平台不录音按分钟虚拟号保护 + 不留存录音️ 语音咨询实时语音通话(轻量级)按分钟实时加密 视频咨询WebRTC实时视频按分钟端到端加密 + 可选模糊背景
4️⃣ 心理评估量表(核心亮点)⭐⭐java/** * 心理评估量表 - PHQ-9抑郁症筛查 / GAD-7焦虑症筛查 */@Servicepublic class AssessmentService { /** * PHQ-9抑郁症筛查(9道题) */ @Transactional public Result 9(Long userId, List<Integer> answers) { https:// PHQ-9评分计算 int totalScore = answers.stream().mapToInt(Integer::intValue).sum(); https:// 0-4:正常 / 5-9:轻度 / 10-14:中度 / 15-19:中重度 / 20-27:重度 String riskLevel; if (totalScore <= 4) riskLevel = "正常"; else if (totalScore <= 9) riskLevel = "轻度抑郁"; else if (totalScore <= 14) riskLevel = "中度抑郁"; else if (totalScore <= 19) riskLevel = "中重度抑郁"; else riskLevel = "重度抑郁"; AssessmentResult result = new AssessmentResult(); result.setUserId(userId); result.setAssessmentType("PHQ-9"); result.setTotalScore(totalScore); result.setRiskLevel(riskLevel); result.setCreateTime(LocalDateTime.now()); assessmentMapper.insert(result); https:// 高风险自动推荐咨询师 if (totalScore >= 15) { recommendUrgentConsult(userId, "抑郁", riskLevel); } return Result.success(result); } /** * GAD-7焦虑症筛查(7道题) */ public Result submitGAD7(Long userId, List<Integer> answers) { int totalScore = answers.stream().mapToInt(Integer::intValue).sum(); https:// 0-4:正常 / 5-9:轻度 / 10-14:中度 / 15-21:重度 https:// ... 类似PHQ-9逻辑 return Result.success(new AssessmentResult(...)); }}
量表名称题目数用途风险等级划分 PHQ-99题抑郁症筛查正常/轻度/中度/中重度/重度 GAD-77题焦虑症筛查正常/轻度/中度/重度 PSQI19题睡眠质量评估好/一般/差 SCL-9090题综合心理健康10因子全面评估
5️⃣ 咨询师入驻 + 智能推荐(核心亮点)⭐java/** * 咨询师入驻审核 + 智能推荐引擎 */@Servicepublic class CounselorServiceImpl implements CounselorService { /** * 咨询师入驻 - 资质审核 */ @Transactional public Result applyCounselor(CounselorDTO dto) { Counselor counselor = new Counselor(); counselor.setUserId(dto.getUserId()); counselor.setName(dto.getName()); counselor.setCertificateNo(dto.getCertificateNo()); https:// 执业资格证号 counselor.setSpecialties(dto.getSpecialties()); https:// 专长领域 counselor.setStatus(0); https:// 0=待审核 counselorMapper.insert(counselor); https:// 异步通知管理员审核 rabbitTemte.convertAndSend("counselor.exchange", "counselor.new", counselor.getId()); return Result.success("申请已提交,请等待审核"); } /** * AI智能推荐咨询师 - 协同过滤 + 标签匹配 */ public List<CounselorVO> recommendCounselors(Long userId) { https:// 1. 从缓存获取(提升性能) String cacheKey = "recommend:user:" + userId; List<CounselorVO> cached = (List<CounselorVO>) redisTemte.opsForValue().get(cacheKey); if (cached != null) return cached; https:// 2. 获取用户画像(历史咨询 + 评估结果 + 收藏) UserProfile profile = userService.getProfile(userId); https:// 3. 协同过滤 + 标签匹配 List<CounselorVO> result = counselorMapper.matchByAI(profile); https:// 4. 缓存1小时 redisTemte.opsForValue().set(cacheKey, result, 1, TimeUnit.HOURS); return result; }}
咨询师状态说明0 待审核提交入驻申请,等待管理员审核1 已通过可接单,展示在推荐列表2 已拒绝资质不符,需重新提交3 已冻结违规行为,禁止接单
| 推荐维度 | 权重 |
|----------|
| 专长匹配(如"抑郁症""焦虑症") | 40% |
| ⭐ 用户评分(4.5分以上优先) | 25% |
| 价格区间(用户消费能力匹配) | 15% |
| 在线状态(在线优先推荐) | 10% |
| 接单量(优质咨询师加权) | 10% |
6️⃣ 隐私保护 + 数据安全(核心亮点)⭐⭐java/** * 隐私保护 - 咨询记录加密 + 会话自动销毁 */@Servicepublic class PrivacyService { /** * 咨询消息加密存储(AES-256) */ public String encryptMessage(String content) { return AESUtil.encrypt(content, "256-bit-secret-key"); } /** * 会话自动销毁 - 咨询结束后N天自动删除 */ @Scheduled(cron = "0 0 2 * * ?") https:// 每天凌晨2点执行 public void destroyExpiredSessions() { List<Session> expired = sessionMapper.findExpired(); for (Session s : expired) { https:// 1. 删除消息记录 chatMessageMapper.deleteBySession(s.getId()); https:// 2. 删除会话 sessionMapper.deleteById(s.getId()); https:// 3. 记录销毁日志(可审计) auditLogMapper.insert(new AuditLog("SESSION_DESTROYED", s.getId())); } } /** * 匿名化处理 - 统计数据不含个人信息 */ public Map<String, Object> getAnonymousStats() { return Map.of( "totalConsultations", consultMapper.countAll(), "avgDuration", consultMapper.avgDuration(), "topIssues", issueMapper.top5() https:// 只返回"抑郁""焦虑"等标签,不含用户信息 ); }}
隐私措施说明 消息加密AES-256加密存储,数据库级别防护️ 自动销毁咨询结束90天后自动删除所有记录 匿名通话电话咨询使用虚拟号码,不暴露真实手机号 数据脱敏统计报表不含任何个人可识别信息️ 等保合规符合《个人信息保护法》要求
UniApp 前端核心页面
页面路径功能首页pages/index/index推荐咨询师/AI问答入口/心理科普/智能推荐AI问答pages/qa/index智能问答输入 → AI匹配 → 回答/转人工心理评估pages/assess/-9/GAD-7量表 → 评分 → 风险等级 → 推荐咨询师咨询列表pages/consult/list咨询师列表/筛选/在线状态/评分/一键咨询图文咨询pages/chat/indexWebSocket实时聊天 + 图片 + 历史记录电话咨询pages/phone/index虚拟号拨打 → 计时计费 → 匿名通话健康档案pages/health/index评估记录/咨询历史/处方/报告钱包pages/wallet/wallet余额/套餐购买/收益/退款个人中心pages/user/user认证/档案/收藏/设置
vue<!-- pages/qa/index.vue - AI智能问答(四端通用) --><temte> <view class="container"> <!-- 问答输入区 --> <view class="input-area"> <textarea v-model="" ceholder="描述你的困扰,AI将为你智能匹配答案或咨询师..." class="-input" maxlength="500" auto-height/> <button class="btn-ask" @tap="ask" :loading="loading"> AI智能问答</button> </view> <!-- 回答展示区 --> <view v-if="answer" class="answer-area"> <view class="answer-card" :class="answer.type"> <text class="label">{{ answer.type === 'ai' ? ' AI回答' : '⚕️ 推荐咨询师' }}</text> <text class="content">{{ answer.content }}</text> <!-- 推荐咨询师 --> <view v-if="answer.type === 'ai_to_human'" class="counselor-list"> <view v-for="c in answer.counselors" :key="c.id" class="counselor-item" @tap="goConsult(c)"> <image :src="c.avatar" class="avatar"/> <view class="info"> <text class="name">{{ c.name }}</text> <text class="specialty">{{ c.specialty }}</text> <text class="rating">⭐ {{ c.rating }}</text> </view> <button class="btn-consult">立即咨询</button> </view> </view> </view> </view> <!-- 危机预警弹窗 --> <view v-if="showCrisis" class="crisis-alert"> <text class="icon">⚠️</text> <text class="title">检测到您可能正在经历困难时刻</text> <text class="subtitle">全国24小时心理援助</text> <button class="btn-call" @tap="callCrisis"> 立即拨打</button> <button class="btn-continue" @tap="showCrisis = false">我知道了</button> </view> </view></temte><script>export default { data() { return { : '', answer: null, loading: false, showCrisis: false } }, methods: { async ask() { if (!this..trim()) return; this.loading = true; const res = await uest({ url: `${BASE_URL}/api/qa/ask`, method: 'POST', data: { : this. } }); this.loading = false; this.answer = res.data.data; https:// 危机预警 if (res.data.data.crisis) { this.showCrisis = true; } }, async callCrisis() { uni.makePhoneCall({ phoneNumber: '4001619995' }); } }}</script>️ 核心数据库表
表名说明user用户表(昵称/手机/角色/信用分)counselor咨询师表(姓名/资质/专长/评分/状态)知识库表(问题/答案/分类/标签/相似度)consult_order咨询订单表(用户/咨询师/类型/状态/时长/费用)chat_message聊天记录表(加密存储/会话ID/发送者/时间)assessment_result评估结果表(用户/量表类型/得分/风险等级)health_record健康档案表(评估记录/咨询记录/处方)wallet_log钱包流水(用户/金额/类型/关联订单)counselor_apply入驻申请表(资质/证书/审核状态)
s TABLE ( id BIGINT PRIMARY KEY AUTO_INCREMENT, VARCHAR(500) NOT NULL COMMENT '标准问题', answer TEXT NOT NULL COMMENT '回答内容', category VARCHAR(50) COMMENT '分类:抑郁/焦虑/失眠/关系...', tags JSON COMMENT '标签数组', match_score DECIMAL(5,2) COMMENT '匹配阈值', hit_count INT DEFAULT 0 COMMENT '命中次数', status TINYINT DEFAULT 1, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_category (category), INDEX idx_ ((100)));CREATE TABLE chat_message ( id BIGINT PRIMARY KEY AUTO_INCREMENT, session_id VARCHAR(64) NOT NULL COMMENT '会话ID', sender_id BIGINT NOT NULL COMMENT '发送者', receiver_id BIGINT NOT NULL COMMENT '接收者', content TEXT NOT NULL COMMENT '加密内容', msg_type TINYINT DEFAULT 0 COMMENT '0=文字 1=图片 2=语音', is_read TINYINT DEFAULT 0, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_session (session_id), INDEX idx_create_time (create_time)) COMMENT='聊天记录(加密存储)'; 管理后台功能
模块功能 数据看板DAU/咨询量/评估量/GMV/热门问题/风险预警 ECharts 知识库管理问答对CRUD/批量导入/分类管理/相似度调整⚕️ 咨询师管理入驻审核/资质验证/排班设置/服务状态/收益结算 订单管理全部订单/按类型筛选/导出财务报表/退款处理 评估管理评估记录/风险分布/高危用户跟踪️ 隐私管理会话审计/数据销毁日志/脱敏统计 财务管理收入统计/微信对账/支付宝对账/分账/提现审核 营销管理优惠券/新人礼包/套餐管理/推送通知 数据统计转化漏斗/用户画像/咨询效果/量表分布
️ 部署架构┌──────────────────────────────────────────────────┐│ Nginx │├──────────┬──────────┬───────────┬──────────────────┤│ UniApp │ UniApp │ UniApp │ UniApp ││ 小程序 │ 公众号H5 │ APP │ H5 │├──────────┴──────────┴───────────┴──────────────────┤│ Spring Boot 集群(微服务) ││ ┌─────────┐ ┌─────────┐ ┌───────────────────────┐ ││ │QA引擎 │ │咨询服务 │ │ 评估/咨询师/支付服务 │ ││ └─────────┘ └─────────┘ └───────────────────────┘ ││ ┌─────────┐ ┌─────────┐ ┌───────────────────────┐ ││ │WebSocket│ │隐务 │ │ AI推荐/NLP服务 │ ││ └─────────┘ └─────────┘ └───────────────────────┘ │├───────────────────────────────────────────────────┤│ MySQL(主从) │ Redis Cluster │ │ ES ││ MongoDB(对话日志) │ Seata(分布式事务) │├───────────────────────────────────────────────────┤│ Prometheus + Grafana │ Docker + K8s │└───────────────────────────────────────────────────┘ 售价与套餐(2026年5月新)
套餐价格包含内容套餐1¥8,889源码 + 技术文档 + 部署文档(不含搭建/维护)套餐2¥10,889源码 + 文档 + 首次搭建 + 1年维护更新 + 技术支持在线问诊专业版¥18,888源码 + 文档 + 搭建 + 1年维护 + AI智能分诊 + 四模式咨询 + 心理评估量表 + 危机干预
后续年度技术服务费:¥2,000/年(含免费系统升级)
⚠️ 源码具有可复制性,不支持恶意退款
购买申明:禁止转卖/禁止开源社区传播/研究商业学习使用
官方联系方式(已核实 ✅)
渠道信息 ✅电话 ✅(西安省钱兄网络科技有限公司)邮@163.comCEO马晓东(96年创业者,西安科技大学毕业)公司西安省钱兄网络科技有限公司地址陕西省西安市高新区高新四路13号朗臣大厦A座11808演示站联系 QQ 710070994 获取管理后台 + 用户端演示地址购买链接互站网 https://www.huzhan.com/ 搜索"省钱兄JAVA心理咨询健康问答"
系统亮点总结
特性说明✅ 四端覆盖小程序 + 公众号 + APP + H5,UniApp一套源码✅ AI智能问答NLP语义匹配 + 知识库检索,80%问题AI自动回答,<500ms✅ 智能分诊AI分析意图 → 自动匹配适合的咨询师,准确率90%+✅ 四模式咨询图文 + 电话 + 语音 + 视频,满足多样化需求✅ 心理评估PHQ-9/GAD-7量表 + 风险预警 + 自动推荐咨询师✅ 危机干预检测自杀/自残关键词 → 立即弹窗热线 + 通知管理员✅ 隐私保护AES-256加密 + 匿名通话 + 会话自动销毁✅ 智能推荐协同过滤 + 标签匹配,推荐准确率提升30%✅ 高并发削峰 + Redis缓存,QPS达1.2万+✅ 数据看板ECharts实时展示DAU/咨询量/评估量/风险分布✅ 安全合规JWT + AES-256 + RSA-2048 + 《个人信息保护法》合规
获取源码:搜索 互站网(huzhan.com)"省钱兄JAVA心理咨询健康问答系统" 或直接联系官方 QQ 710070994 获取演示站体验后下单。该系统与省钱兄的"在线问诊系统(¥18,888)"同属一个产品矩阵,核心差异在于:专注心理健康服务赛道,支持AI智能问答 + NLP语义分析 + 心理评估量表(PHQ-9/GAD-7)+ 四模式咨询(图文/电话/语音/视频)+ 危机干预 + 隐私加密,更适合心理咨询机构/在线心理服务平台/企业EAP员工帮助计划/高校心理健康中心等需要专业化心理服务的场景。据行业白皮书显示,2026年中国心理健康服务市场规模有望突破500亿元,其中线上渗透率将超过60%,搭载AI智能分诊的数字化平台可将咨询师接单效率提升45%,用户匹配准确率提高30%,该系统正是为这一庞大市场量身打造。
省钱兄科技,心里咨询,健康问答