基于springboot SSM 宠物医院管理系统 (设计实现)

目录

📚 前言

📑摘要

📑系统架构

📚 数据库设计

📚 系统功能的具体实现

 💬 登录模块

注册模块

主界面

 💬 用户功能模块

    用户信息管理

添加用户

页面信息查询

 💬 宠物信息管理模块

查询信息

添加宠物信息

预约信息管理

✒️ 源码实现

💖 源码获取

😁 联系方式


📚 前言

📑博客主页:@丘比特惩罚陆

💖欢迎关注:点赞收藏⭐留言✒
💬系列专栏:Java Springboot 毕设实战专栏
🎮 加入社区: 丘比特惩罚陆
🥇人生格言:选对方向,每走一步都是进步!
✒️欢迎大佬指正,一起学习!一起加油!

👏 希望大家能小手一动,帮忙点个赞!

 


📑摘要

由于宠物医院教学功能的特殊定位,致使医生和患者必须在除了简单的医患区别外,还有合作意味的关系。所以,这其中的信息管理流程,需要以一个规范的 MIS 来管理。宠物医院信息管理系统的优势主要表现在三个方面:

  1. 宠物医院信息管理无纸化,环保又方便。传统的宠物医院信息管理方式,都是经由工作从员手工记录存档。这种传统的纸质宠物医院信息管理管理,一是会有很大的体力消耗,二是在精力上也是不小的付出,而且这种辛苦在很多时候往往没能得到满意的回复。而无纸化宠物医院信息管理,只需在电脑前点点鼠标,在体力上几乎没有多大的消耗,而且在环保、效率、针对性教学指导方面做得要比传统的宠物医院信息管理管理科学得多。

2、科学管理,安全可靠。传统的宠物医院信息管理管理方式,都是一份份独立的宠物医院信息管理,一个部门对应一份,而这么一撂的设计,经常会由于各种原因,丢失或是污损,给宠物医院信息管理管理和教学进程带来很大的麻烦和不便。而宠物医院信息管理系统的动作,只需做好系统数据库的保护,以上问题可以迎刃而解了。

3、简化工作,促进其他方面的综合发展。由于宠物医院信息管理系统的介入运行,可以使医生腾出更多的时间,做更多针对性的个性化医疗服务,从而使每个病人都有机会享受更多的服务


📑 功能结构    

    Spring MVC架构图示:

Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据、业务与展现进行分离。从这样一个角度来说,Spring MVC和Struts、Struts2非常类似。Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler。通过可配置的handler mappings、view resolution、locale以及theme resolution来处理请求并且转到对应的视图。Spring MVC请求处理的整体流程如图: 

1.用户模块管理:用户登录、用户注册、用户的查询、添加、删除操作、

2.页面模块管理:页面菜单的展示、添加操作、修改操作、删除操作、

3.角色模块管理:用户角色列表的查看、删除等操作、

4.宠物列表模块管理:宠物信息的查看、添加、删除、预约就诊、查看病历操作、

5.宠物健康历史:宠物健康历史查看、添加、修改、删除操作、

6.预约模块管理:预约模块查询、添加、删除、通过、不通过操作以及状态信息查看、

7.医生日期模块管理:医生日期的信息查看、

8.宠物日常健康模块管理:宠物的健康指南、健康标准的信息查看、修改、删除操作等、

9.宠物档案管理模块:宠物的数据录入、查看、修改等

10.医院信息管理:医院的公告信息管理以及制定宠物健康备注等操作


📑系统架构

   此次管理系统的关键技术和架构由B/S结构、java和mysql数据库,是本系统的关键开发技术,对系统的整体、数据库、功能模块、系统页面以及系统程序等设计进行了详细的研究与规划。

                                                            

                                                               三层架构图

系统流程图示:

 


📚 数据库设计

数据库采用mysql5版本、满足数据库设计三范式。

编码采用utf8 -- UTF-8 Unicode

排序规则采用utf8_general_ci

📚 系统功能的具体实现

 💬 登录模块

用户输入账号和密码和登录进行登录

注册模块

使用账号密码、手机号、地址进行用户信息注册;

主界面

登录后进入系统首页,主要模块有:用户模块管理、页面模块管理、角色模块管理、宠物列表模块管理、宠物健康历史、预约模块管理、医生日期模块管理、宠物日常健康模块管理、医院信息管理和注销退出等具体功能、每个模块有对应的功能、比如:添加、修改、删除、等功能设置

 💬 用户功能模块

    用户信息管理

展示用户医护人员的个人信息、对用户进行列表查询、添加以及删除操作;

添加用户

页面信息查询

点击按钮进入页面管理、管理员可对职位进行添加、修改、删除操作;

 💬 宠物信息管理模块

查询信息

点击看查看宠物列表信息、体重、身高、类型、也可以对列表信息进行修改删除操作。 

添加宠物信息

预约信息管理

点击看查看预约列表信息、预约时间、电话、地址、内容等信息、医生可以对申请的预约进行审核操作

✒️ 源码实现

@Override
	public ResultMap login(String username, String password) {
		// 从SecurityUtils里边创建一个 subject
		Subject subject = SecurityUtils.getSubject();
		// 在认证提交前准备 token(令牌)
		UsernamePasswordToken token = new UsernamePasswordToken(username, MD5.md5(password));
		// 执行认证登陆
		try {
			subject.login(token);
		}catch (Exception e) {
			return resultMap.fail().message(e.getMessage());
		}
		User user = (User) subject.getPrincipal();
		// 根据权限,指定返回数据
		List<String> role = userRoleMapper.getRoles(user.getId()+"");
		if (!role.isEmpty()) {
			logger.info("欢迎登录------您的权限是{}", role);
			return resultMap.success().message("欢迎登陆");
		}
		return resultMap.fail().message("权限错误!");
	}
4.3.4.2 springboot全局配置文件:
server.port=8086
debug=true
##��sqlִ������ӡ��־
logging.level.com.phms.mapper=debug
###############################MySQL���ݿ�����###############################
spring.datasource.name=test
spring.datasource.url=jdbc:mysql://localhost:3306/phms?characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
###########################Mapper����###############################
logging.level.org.springframework.web=DEBUG
#Mybatis����
mybatis.type-aliases-package=com.phms
mybatis.mapper-locations=classpath:mapper/*.xml
###########################Mybatis����###############################
spring.datasource.druid.initial-size=10
spring.datasource.druid.min-idle=10
spring.datasource.druid.max-active=200
spring.datasource.druid.max-wait=60000
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
spring.datasource.druid.filters=stat,wall,log4j
#spring.profiles.active=prod#���IE ��ʾ����ΪNaN
spring.jackson.date-format=yyyy/MM/dd HH:mm:ss
logging.level.org.springframework.boot.autoconfigure=ERROR
#spring.jackson.time-zone=GMT+8# Freemarker ģ������#��ʾ���еķ��ʶ�������̬��Դ·����
spring.mvc.static-path-pattern=/**#�������ʾ���þ�̬��Դ��·��
spring.resources.static-locations=classpath:/static/
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/html/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params = count=countSql
pagehelper.pageSize=10
spring.servlet.multipart.maxFileSize=10MB
spring.servlet.multipart.maxRequestSize=10MB
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.Java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

$.ajax({
		type:"POST",
		async:true,  //默认true,异步
		data:param,
		dataType:'json',
		url:"/login",
		success:function(data){
			if(data.result == "success"){
				window.location.href = "/main";
			}else if(data.message == "PASSWORD_ERR" || data.message == "USERNAME_NOT_EXIST"){
				layer.alert('用户名或密码错误', {icon: 2});
				$("#name").val("");
				$("#password").val("")
			}else{
				layer.alert('登陆失败!请找管理员授权!', {icon: 2});
			}
	    },
	    error:function() {
	    	layer.alert('系统错误,服务器正忙!', {icon: 2});
	    }
	});
@Override
	public ResultMap login(String username, String password) {
		// 从SecurityUtils里边创建一个 subject
		Subject subject = SecurityUtils.getSubject();
		// 在认证提交前准备 token(令牌)
		UsernamePasswordToken token = new UsernamePasswordToken(username, MD5.md5(password));
		// 执行认证登陆
		try {
			subject.login(token);
		}catch (Exception e) {
			return resultMap.fail().message(e.getMessage());
		}
		User user = (User) subject.getPrincipal();
		// 根据权限,指定返回数据
		List<String> role = userRoleMapper.getRoles(user.getId()+"");
		if (!role.isEmpty()) {
			logger.info("欢迎登录------您的权限是{}", role);
			return resultMap.success().message("欢迎登陆");
		}
		return resultMap.fail().message("权限错误!");

💖 源码获取

点赞、收藏、关注!!!

非无偿源码!获取源码请添加up主!!

😁 联系方式

文章最底下有微信联系方式!!!

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丘比特惩罚陆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值