【计算机毕业设计】基于SpringBoot+Vue大学生心理健康管理系统的开发与实现

news2024/11/23 23:00:51

博主主页:一季春秋
博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:毕业设计(Java项目、小程序等)、简历模板、学习资料、面试题库、技术咨询。

精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

SpringBoot+Vue项目《1000套》持续更新中

http://t.csdn.cn/1mgm8

🍅文末获取联系🍅

目录

一、项目介绍 

二、项目主要技术 

三、系统功能描述

3.1 系统UML用例

3.2 系统功能结构

四、系统实现

4.1 系统前台功能实现 

4.2 后台管理员模块实现

4.3 后台心理师模块实现

4.4 后台用户模块实现

五、实现代码


一、项目介绍 

本系统采用的数据库是Mysql,本系统前端框架采用Vue.js,后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。IDEA是本系统的开发平台。

大学生心理健康管理系统,主要的模块包括管理员;系统首页、个人中心、用户管理、心理师管理、心理预约管理、心理咨询管理、咨询类别管理、心里档案管理、通知消息管理、心理测试管理、试题管理、系统管理,用户;系统首页、个人中心、心理预约管理、心理咨询管理、心理档案管理、通知消息,心理师;系统首页、个人中心、心理预约管理、心理咨询管理、心里档案管理,前台系统首页;首页、心理师、心理测试、公告信息、后台管理、个人中心等功能。

二、项目主要技术 

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:jdk1.8

Maven: apache-maven 3.8.1-bin

三、系统功能描述

使用大学生心理健康管理系统分为管理员、用户和心理师三个角色的权限子模块。

(1)管理员所能使用的功能主要有:系统首页、个人中心、用户管理、心理师管理、心理预约管理、心理咨询管理、咨询类别管理、心里档案管理、通知消息管理、心理测试管理、试题管理、系统管理等。

(2)用户可以实现系统首页、个人中心、心理预约管理、心理咨询管理、心理档案管理、通知消息等。

(3)心理师可以实现系统首页、个人中心、心理预约管理、心理咨询管理、心里档案管理等。

3.1 系统UML用例

(1)管理员用例

管理员登录后可进行系统首页、个人中心、用户管理、心理师管理、心理预约管理、心理咨询管理、咨询类别管理、心里档案管理、通知消息管理、心理测试管理、试题管理、系统管理,管理员的用例如图所示。

(2)用户用例

用户注册登录后可进行系统首页、个人中心、心理预约管理、心理咨询管理、心理档案管理、通知消息,用户用例如图所示。

3.2 系统功能结构

这些功能可以充分满足大学生心理健康管理系统的需求。此系统功能较为全面如下图系统功能结构如图所示。 

四、系统实现

4.1 系统前台功能实现 

心理师

心理测试

个人中心

4.2 后台管理员模块实现

登录页面

用户管理 

心理预约管理

心里档案管理

试题管理

4.3 后台心理师模块实现

心理预约管理

心理咨询管理

4.4 后台用户模块实现

心理预约管理

通知消息管理

五、实现代码

心理预约

**
 * 心理预约
 * 后端接口
 * @author 
 * @email 
 * @date 2023-04-18 17:20:54
 */
@RestController
@RequestMapping("/xinliyuyue")
public class XinliyuyueController {
    @Autowired
    private XinliyuyueService xinliyuyueService;


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,XinliyuyueEntity xinliyuyue,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xinlishi")) {
			xinliyuyue.setXinlishibianhao((String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("yonghu")) {
			xinliyuyue.setZhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<XinliyuyueEntity> ew = new EntityWrapper<XinliyuyueEntity>();

		PageUtils page = xinliyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xinliyuyue), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,XinliyuyueEntity xinliyuyue, 
		HttpServletRequest request){
        EntityWrapper<XinliyuyueEntity> ew = new EntityWrapper<XinliyuyueEntity>();

		PageUtils page = xinliyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xinliyuyue), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( XinliyuyueEntity xinliyuyue){
       	EntityWrapper<XinliyuyueEntity> ew = new EntityWrapper<XinliyuyueEntity>();
      	ew.allEq(MPUtil.allEQMapPre( xinliyuyue, "xinliyuyue")); 
        return R.ok().put("data", xinliyuyueService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(XinliyuyueEntity xinliyuyue){
        EntityWrapper< XinliyuyueEntity> ew = new EntityWrapper< XinliyuyueEntity>();
 		ew.allEq(MPUtil.allEQMapPre( xinliyuyue, "xinliyuyue")); 
		XinliyuyueView xinliyuyueView =  xinliyuyueService.selectView(ew);
		return R.ok("查询心理预约成功").put("data", xinliyuyueView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        XinliyuyueEntity xinliyuyue = xinliyuyueService.selectById(id);
        return R.ok().put("data", xinliyuyue);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        XinliyuyueEntity xinliyuyue = xinliyuyueService.selectById(id);
        return R.ok().put("data", xinliyuyue);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody XinliyuyueEntity xinliyuyue, HttpServletRequest request){
    	xinliyuyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(xinliyuyue);
        xinliyuyueService.insert(xinliyuyue);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody XinliyuyueEntity xinliyuyue, HttpServletRequest request){
    	xinliyuyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(xinliyuyue);
        xinliyuyueService.insert(xinliyuyue);
        return R.ok();
    }



    /**
     * 修改
     */
    @RequestMapping("/update")
    @Transactional
    public R update(@RequestBody XinliyuyueEntity xinliyuyue, HttpServletRequest request){
        //ValidatorUtils.validateEntity(xinliyuyue);
        xinliyuyueService.updateById(xinliyuyue);//全部更新
        return R.ok();
    }


    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        xinliyuyueService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<XinliyuyueEntity> wrapper = new EntityWrapper<XinliyuyueEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xinlishi")) {
			wrapper.eq("xinlishibianhao", (String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("yonghu")) {
			wrapper.eq("zhanghao", (String)request.getSession().getAttribute("username"));
		}

		int count = xinliyuyueService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1034860.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机图形学中的几何光学

文章目录 前言一、图形学中的光学二、光照模型1、经验型&#xff08;简单&#xff09;2、物理型&#xff08;复杂&#xff09; 前言 在学习Shader光照之前了解一下计算机图形学 一、图形学中的光学 镜面反射的效果例子&#xff1a;物体表面高光 慢反射的效果的例子&#xff1a…

Python中获取主机名和IP地址的方法

在Python中&#xff0c;可以通过socket模块中gethostname()、getfqdn()和gethostbyname()方法获取本地和远程主机名和IP地址。 1 获取本地和远程主机名 1.1 获取本地主机名 可以通过gethostname()方法获取本地主机名&#xff0c;也就是本机的主机名&#xff0c;代码如下所示…

智能电力运维系统:数字化转型在电力行业的关键应用

随着信息技术、人工智能等的飞速发展&#xff0c;数字化改造已成为各行各业的重要发展趋势。在电力行业中&#xff0c;智能电力运维系统是数字化转型的关键应用之一。 力安科技智能电力运维系统是一种集自动化、智能化、云计算、物联网等先进技术于一体的电力运维管理解决方…

JS-ECharts-前端图表 多层级联合饼图、柱状堆叠图、柱/线组合图、趋势图、自定义中线、平均线、气泡备注点

本篇博客背景为JavaScript。在ECharts在线编码快速上手&#xff0c;绘制相关前端可视化图表。 ECharts官网&#xff1a;https://echarts.apache.org/zh/index.html 其他的一些推荐&#xff1a; AntV&#xff1a;https://antv.vision/zh chartcube&#xff1a;https://chartcub…

RocketMQ高性能核心原理与源码架构剖析(下)

四、融汇贯通阶段 开始梳理⼀些⽐较完整&#xff0c;⽐较复杂的完整业务线。 8 、消息持久化设计 1 、 RocketMQ 的持久化⽂件结构 消息持久化也就是将内存中的消息写⼊到本地磁盘的过程。⽽磁盘 IO 操作通常是⼀个很耗性能&#xff0c;很慢的操作&#xff0c;所以&#xf…

图像处理与计算机视觉--第三章-颜色与纹理分析-6问

图像处理与计算机视觉--第三章-颜色与纹理分析-6问 1.哪些因素决定物体颜色的感知? 对于物体颜色的感知&#xff0c;主要取决于以下三个因素: 1.照射到物体表面光波长的分布 2.物体表面如何反射照射光 3.传感器或者视觉细胞的敏感性 除了上述的三个因素之外&#xff0c…

nuc980学习笔记7-设置开机自启动

测试条件&#xff0c;nuc980开发板。 一、开机启动脚本 为什么需要开机自启动脚本&#xff1f;我们编写完程序之后&#xff0c;下载到开发板&#xff0c;往往需要程序开机自行启动&#xff0c;为了实现开机自启动&#xff0c;则需要编写相关的脚本。 二、设置开机启动的步骤 开…

2009-2022年上市公司华证 ESG数据

2009-2022年华证 ESG数据&#xff08;年度&#xff09; 1、时间&#xff1a;2009-2022年 2、范围&#xff1a;沪深A股上市公司 指标&#xff1a;证券简称、证券代码、华证ESG评级 2009-2022年华证ESG数据&#xff08;季度&#xff09; 1、时间&#xff1a;2009/03/31---20…

在React中,什么是组件的状态(state)?如何更新组件的状态?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 创建和初始化状态⭐ 更新状态⭐ 注意事项⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前…

力扣-228.汇总区间

AC Code 自己做出来的&#xff0c;代码写的很烂&#xff0c;但是也浅浅记录一下叭&#xff0c;下面有看答案思路写出来的双指针代码 class Solution { public:vector<string> summaryRanges(vector<int>& nums) {vector<string> ans;int n nums.size();…

Docker部署ElasticSearch数据库+analysis-ik分词器插件

文章目录 一、部署ElasticSearch数据库二、添加分词器插件(analysis-ik)三、测试ElasticSearch数据库analysis-ik分词器插件 一、部署ElasticSearch数据库 1、准备工作 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.6 Pwd"/data/software/elasticse…

csa从初阶到大牛(练习题2-查询)

新建2个文件d1.txt d2.txt ,使用vim打开d1.txt 输入“Hello World”字符串,将b1.txt 硬链接到b2.txt &#xff0c;查看2个文件的硬连接数 # 新建文件d1.txt和d2.txt touch d1.txt d2.txt# 使用vim编辑d1.txt并输入文本"Hello World" vim d1.txt# 创建硬链接b2.…

红黑树Java实现

文章目录 红黑树1. 概念性质2. 红黑树节点定义3. 红黑树的插入情况1情况2情况3其它细节问题插入代码实现 4. 红黑树的验证5.性能分析 红黑树 1. 概念性质 红黑树也是一种二插搜索树&#xff0c;每一个节点上比普通二插搜索树都增加了一个存储位置表示节点的颜色&#xff0c;可…

【lesson10】进程状态

文章目录 认识进程状态新建运行阻塞挂起 Linux具体的进程状态RSDtTXZ是什么为什么 认识进程状态 上面就是各种进程状态&#xff0c;上面都是理论进程状态理论进程状态放在哪个操作系统中都是正确的&#xff0c;但是具体的操作系统实现可能又会有所不同。 下面我们来理解进程状态…

SurroundOcc:用于自动驾驶的多摄像头3D占用网格预测

文章&#xff1a;SurroundOcc: Multi-Camera 3D Occupancy Prediction for Autonomous Driving 作者&#xff1a;Yi Wei, Linqing Zhao, Wenzhao Zheng, Zheng Zhu , Jie Zhou, Jiwen Lu 编辑&#xff1a;点云PCL 代码&#xff1a;https://github.com/weiyithu/SurroundOcc.git…

【AI视野·今日NLP 自然语言处理论文速览 第三十七期】Wed, 20 Sep 2023

AI视野今日CS.NLP 自然语言处理论文速览 Wed, 20 Sep 2023 Totally 64 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers SlimPajama-DC: Understanding Data Combinations for LLM Training Authors Zhiqiang Shen, Tianhua Tao, Li…

js惰性函数

看下面这份ts代码 实现的效果也很简单,就是将一份文本,复制到剪切板上,未了兼容更多的浏览器(没错说的就是你>ie !),做了一个兼容性判断, 当浏览器支持navigator.clipboard这个api时,就直接调用这个api将文本复制到剪切板中, 如果不支持这个api的话,就执行else里面的代码,这…

【Kafaka实现高吞吐量、低延迟的底层原理】

文章目录 Kafaka实现高吞吐量、低延迟的底层原理顺序写入Page Cache零拷贝分区分段索引批量读写批量压缩 Kafaka实现高吞吐量、低延迟的底层原理 Kafka虽然是基于磁盘做的数据存储&#xff0c;但却具有高并发、高吞吐量、低延时的特点&#xff0c;其吞吐量动辄几万、几十上百万…

springBoot对接多个mq并且实现延迟队列---未完待续

mq调用流程 创建消息转换器 package com.wd.config;import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.context.annotation.Bean; import o…

深度解析React 18应用性能提升

众所周知,React 18 引入的一个重要特性就是并发功能,从根本上改变了 React 应用程序的渲染方式。本文将带大家一同探讨这些最新功能的具体作用,特别是如何提高应用程序性能。 一、主线程与长任务 当我们在浏览器中运行 JavaScript 时,JS 引擎会在单线程环境下执行代码内容…