SpringBoot+Vue心理健康咨询系统 附带详细运行指导视频

发布时间:2026/7/13 3:16:47
SpringBoot+Vue心理健康咨询系统 附带详细运行指导视频 文章目录一、项目演示二、项目介绍三、运行截图四、主要代码1.发送消息代码2.创建咨询订单代码3.保存咨询师信息一、项目演示项目演示地址视频地址二、项目介绍项目描述这是一个基于SpringBootVue框架开发的心理健康咨询系统。首先这是一个前后端分离的项目代码简洁规范注释说明详细易于理解和学习。其次这项目功能丰富具有一个心理健康咨询系统该有的所有功能。项目功能此项目分为三个角色普通用户、咨询师和管理员。普通用户有登录、注册、筛选咨询师信息、下单咨询、和咨询师在线沟通、评价咨询师、在线心理测评、查看心理文章、收藏心理文章等等功能。咨询师有登录、管理个人资质证书、申请成为咨询师、在线和下单用户聊天、管理个人发布的心理文章、管理个人订单管理、查看个人评价信息、查看个人数据统计等等功能。管理员有登录、查看数据统计信息、管理所有用户信息、审核咨询师信息、管理所有咨询师资质证书信息、管理所有心理测评信息、管理所有心理测评题库信息、管理所有心理文章信息、管理所有订单信息、管理所有评价信息等等功能。应用技术SpringBoot3 Vue3 MySQL MyBatis Redis ElementUI-Plus Vite运行环境IntelliJ IDEA MySQL Redis5.0.5 JDK17 Maven3.6.3 Node Visual Studio Code以上工具在项目压缩包中都自带三、运行截图四、主要代码1.发送消息代码/** * 发送消息 * param chatMessageDTO * return */OverridepublicResponseDTOBooleansendMessage(ChatMessageDTOchatMessageDTO){StringsenderIdchatMessageDTO.getSenderId();StringreceiverIdchatMessageDTO.getReceiverId();StringcontentchatMessageDTO.getContent();if(CommonUtil.isEmpty(senderId)||CommonUtil.isEmpty(receiverId)||CommonUtil.isEmpty(content)){returnResponseDTO.errorByMsg(CodeMsg.DATA_ERROR);}ResponseDTOOrdersorderCheckcheckConsultOrder(senderId,receiverId);if(orderCheck.getCode()!0){returnResponseDTO.errorByMsg(orderCheck.getCode(),orderCheck.getMsg());}OrdersordersorderCheck.getData();if(orders!null){if(orders.getState()1orders.getStartDate()null){orders.setState(2);orders.setStartDate(newDate());ordersMapper.updateById(orders);}elseif(orders.getState()2orders.getStartDate()!null){longdiffMinutes(newDate().getTime()-orders.getStartDate().getTime())/(1000*60);if(diffMinutes50){orders.setState(3);ordersMapper.updateById(orders);returnResponseDTO.errorByMsg(CodeMsg.CONSULT_TIME_EXPIRED);}}}ChatMessagechatMessagenewChatMessage();chatMessage.setId(UuidUtil.getShortUuid());chatMessage.setSenderId(senderId);chatMessage.setReceiverId(receiverId);chatMessage.setContent(content);chatMessage.setType(chatMessageDTO.getType()!null?chatMessageDTO.getType():1);chatMessage.setReadStatus(0);chatMessage.setCreateTime(newDate());if(chatMessageMapper.insert(chatMessage)0){returnResponseDTO.errorByMsg(CodeMsg.MESSAGE_SEND_ERROR);}ChatMessageDTOpushDtonewChatMessageDTO();pushDto.setId(chatMessage.getId());pushDto.setSenderId(senderId);pushDto.setReceiverId(receiverId);pushDto.setContent(content);pushDto.setType(chatMessage.getType());pushDto.setTime(formatTime(chatMessage.getCreateTime()));pushDto.setIsSelf(false);StringmessageJsonJSON.toJSONString(pushDto);webSocketHandler.sendMessage(receiverId,messageJson);returnResponseDTO.successByMsg(true,发送成功);}2.创建咨询订单代码/** * 创建订单 * param ordersDTO * return */OverridepublicResponseDTOBooleancreateOrder(OrdersDTOordersDTO){ResponseDTOUserDTOloginUsergetLoginUser(ordersDTO.getToken());if(loginUser.getCode()!0){returnResponseDTO.errorByMsg(CodeMsg.USER_SESSION_EXPIRED);}ordersDTO.setUserId(loginUser.getData().getId());CodeMsgvalidateValidateEntityUtil.validate(ordersDTO);if(!validate.getCode().equals(CodeMsg.SUCCESS.getCode())){returnResponseDTO.errorByMsg(validate);}OrdersordersCopyUtil.copy(ordersDTO,Orders.class);orders.setId(UuidUtil.getShortUuid());orders.setState(1);orders.setCreateTime(newDate());if(ordersMapper.insert(orders)0){returnResponseDTO.errorByMsg(CodeMsg.ORDER_ADD_ERROR);}returnResponseDTO.successByMsg(true,下单成功);}3.保存咨询师信息/** * 保存咨询师信息 * * param consultantDTO * return */OverridepublicResponseDTOBooleansaveConsultant(ConsultantDTOconsultantDTO){CodeMsgvalidateValidateEntityUtil.validate(consultantDTO);if(!validate.getCode().equals(CodeMsg.SUCCESS.getCode())){returnResponseDTO.errorByMsg(validate);}ConsultantconsultantCopyUtil.copy(consultantDTO,Consultant.class);if(CommonUtil.isEmpty(consultant.getId())){consultant.setId(UuidUtil.getShortUuid());consultant.setRating(newBigDecimal(0.00));consultant.setRatingCount(0);consultant.setConsultCount(0);consultant.setStatus(2);if(consultantMapper.insert(consultant)0){returnResponseDTO.errorByMsg(CodeMsg.CONSULTANT_ADD_ERROR);}}else{if(consultantMapper.updateById(consultant)0){returnResponseDTO.errorByMsg(CodeMsg.CONSULTANT_EDIT_ERROR);}}returnResponseDTO.successByMsg(true,保存成功);}