当前位置: 首页 > news >正文

Java基于ssm+vue+nodejs的私人牙科门诊预约系统element

随着计算机网络的快速发展,人们很多的工作都交由计算机进行完成,通过计算机的应用程序能够提升人们工作的效率,提升数据处理的准确度和信息存储的完整性。现在的计算机应用程序也发展的非常迅速,许多医院的就诊信息都会被存储在医院管理系统中。而对于“雅乐”私人牙科诊所来说,也需要建立一套单独的系统,通过“雅乐”私人牙科诊所管理系统的搭建,可以保证用户通过在线进行医生、科室的查询,并且可以实现在线的预约挂号。对于“雅乐”私人牙科诊所来说也能够提升医院的服务效率,在疫情期间,也能够让用户通过无接触的方式完成挂号程序,更好的做到就医过程的个人防护。
请添加图片描述
环境需要
1.运行环境:最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。
2.IDE环境:IDEA,Eclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7/Tomcat8/Tomcat9版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:是;
技术栈
后端:Spring+SpringMVC+Mybatis
前端:vue+CSS+JavaScript+jQuery+elementui
请添加图片描述
ssm是当前最流向的一个框架,它的配置更加的简单,使开发变得更加的简单迅速。
ssm的基础结构共三个文件,具体如下:
src/main/java:程序开发以及主程序入口;
src/main/resources:配置文件;
src/test/java:测试程序。
ssm的数据库配置默认支持两种格式的配置文件
1,application.properties
2,application.yaml
前端技术:nodejs+vue+elementui。
请添加图片描述
请添加图片描述
此次的业务流程主要是通过前端和后端的数据传输实现的,以在线挂号为例,患者在登录到前端的网站后,可以通过在线预约功能实现在线就诊预约。而通过数据库的信息传递,后台的管理人员则可以在后台的系统中看到患者的预约内容,并且根据具有内容进行预约安排。而后台的管理员与医生之间的信息传递也是通过数据库实现的,并管理系统信息、站内新闻信息、注册用户、医生信息、药品管理等。
主要功能:
1、登陆注册模块:可分为管理员和普通用户医生登录三个模块以及用户注册。
2、用户信息管理:该模块可对用户信息进行管理,包括用户信息的添加,修改,删除和查询。
3、药品信息管理:管理员可通过该模块对药品信息进行管理,包括药品信息的添加、修改、查询和删除。
4、就诊管理功能:医生可通过该模块查看挂号信息,对患者问诊并开出病情诊断。
5、预约挂号功能:用户可通过该模块进行预约挂号。
6、公告管理:管理员可以新建、修改和删除公告。
7、在线留言功能:用户可通过在线留言功能与医生在线交流,进行咨询。
8、打印功能:用户可通过该模块将病情诊断以及收费单打印出来。
9、系统管理:包括添加管理员,管理员的密码修改。
请添加图片描述
本文先提出了开发”雅乐”私人牙科诊所管理系统的背景意义,然后通过功能性和非功能性分析阐述本系统的需求,然后从功能设计和数据库设计两方面进行系统的设计建模。在技术实现部分采用了JAVA作为开发后台的编程语言,前台使用HTML技术,数据库选择MySQL。最后进行了代码的编写,并说明了实现流程。最终,通过软件测试来验证”雅乐”私人牙科诊所管理系统的功能要求。综合表明,本”雅乐”私人牙科诊所管理系统满足了医院诊疗的基本业务,帮助用户及时在线挂号,并为医院管理员提供了高效的管理模式。

请添加图片描述


/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

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

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 使用工具简介 4
2.2 环境配置 4
2.3 B/S结构简介 4
2.4 MySQL数据库 5
2.5 框架介绍 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37

相关文章:

  • 微服务项目:尚融宝(56)(核心业务流程:投资列表展示(1))
  • 【文档资料】Linux、Vi/Vim常用命令
  • javascript入门经典 第6版
  • Pr 视频效果:键控
  • 【JavaScript】五个常用功能/案例:高精度乘法 | 批量修改对象属性 | 属性遍历 | 判断是否包含数字 | 检查重复字符串
  • idea运行项目错误 Error running ‘XXXXXXXApplication‘: Command line is too long
  • 计算机/信息类保研er--不同档次学校问的问题类型
  • 计算机毕业设计 SSM与VUE的在线医疗诊断跟踪系统(源码+论文)
  • 【CSS布局】盒子模型
  • 编程语言:微软 Azure CTO 表示,是时候停止在新项目中使用 C 和 C++
  • 韩媒评UDC大会:区块链行业刮“环保之风”,TRON为最环保的企业
  • CSDN竞赛—第六期题解与感想
  • 图像处理学习笔记-03-灰度变换与空间滤波-模糊技术
  • 论文教程之 哈佛细读文献实用方法
  • RT-Thread线程管理与调度
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【EOS】Cleos基础
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Magento 1.x 中文订单打印乱码
  • MySQL主从复制读写分离及奇怪的问题
  • Redash本地开发环境搭建
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 汉诺塔算法
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 配置 PM2 实现代码自动发布
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (4)Elastix图像配准:3D图像
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (done) 两个矩阵 “相似” 是什么意思?
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • ****Linux下Mysql的安装和配置
  • .NET 8.0 中有哪些新的变化?
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .Net CF下精确的计时器
  • .Net 路由处理厉害了
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET构架之我见
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @GlobalLock注解作用与原理解析
  • @SuppressWarnings注解
  • [AAuto]给百宝箱增加娱乐功能
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C/C++]数据结构 堆的详解