功能及技术选型
系统考虑实现三个角色:超级管理员、管理员和普通用户,设计功能如下
超级管理员、管理员的功能如下:
登录、修改密码、账号管理、健康档案管理、病例管理、药品管理、每月餐饮管理、外出报备、入住登记、寝室分配、事故记录、访客记录、收费管理; 其中超级管理员可进行管理员账号管理;
用户的功能如下:
登录、修改密码、个人信息、家人情况、每月餐饮管理、外出报备、查看收费标准
进行技术选型:
1.后端:springboot+Mybatis
2.前端:HTML+thymeleaf+Javascript+css
功能实现
1 使用开发工具创建springboot项目
2 集成mybaits
3 设计数据库实现代码,主要思路为第一步实现登陆,实现业务代码
表设计
根据功能总共设计大约十四张表,包含用户表、管理员表、订单表、外出记录表、健康表、药瓶信息表等,部分表如下:
CREATE TABLE `visitor` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
`name` varchar(20) DEFAULT NULL COMMENT '访客姓名',
`target` varchar(20) DEFAULT NULL COMMENT '访问对象',
`vi_time` varchar(20) DEFAULT NULL COMMENT '日期',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
CREATE TABLE `usr_info` (
`usr_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
`usr_login` varchar(22) DEFAULT NULL COMMENT '登录名',
`usr_name` varchar(22) DEFAULT NULL COMMENT '用户名',
`usr_sex` varchar(6) DEFAULT '男' COMMENT '性别',
`usr_pwd` varchar(22) NOT NULL DEFAULT '123' COMMENT '登录密码',
`usr_tel` bigint(20) DEFAULT NULL COMMENT '电话',
`older_name` varchar(22) DEFAULT NULL COMMENT '家属',
`usr_addr` varchar(22) DEFAULT NULL COMMENT '地址',
`admin_id` bigint(20) DEFAULT NULL COMMENT '创建者id',
`power` smallint(6) DEFAULT '2' COMMENT '权限',
PRIMARY KEY (`usr_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
CREATE TABLE `older_info` (
`older_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
`older_name` varchar(20) DEFAULT NULL COMMENT '姓名',
`older_sex` varchar(6) DEFAULT '男' COMMENT '性别',
`older_tel` bigint(20) NOT NULL COMMENT '电话',
`older_addr` varchar(50) DEFAULT NULL COMMENT '住址',
`older_idcard` varchar(22) DEFAULT NULL COMMENT '身份证号码',
`in_time` varchar(50) DEFAULT NULL COMMENT '入住时间',
`out_time` varchar(50) DEFAULT '---' COMMENT '出院时间',
PRIMARY KEY (`older_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
功能实现
实现管理员的mapper 主要包含以下方法查询用户名、查询所有用户、根据id查询管理员信息。具体代码如下
@Mapper
public interface AdminInfoMapper {
@Select("select * from admin_info where admin_login=#{adminLogin}")
AdminInfo sltName(AdminInfo adminInfo);
@Select("select count(*) from admin_info where admin_login=#{adminLogin} and admin_pwd=#{adminPwd}")
boolean loginIn(AdminInfo adminInfo);
List<AdminInfo> listAll(Map map);
@Select("select * from admin_info where admin_id=#{adminID}")
AdminInfo getById(Long adminId);
@Insert("insert into admin_info(admin_login,admin_name,admin_sex,admin_tel) values(#{adminLogin},#{adminName},#{adminSex},#{adminTel}) ")
int insert(AdminInfo adminInfo);
@Update("update admin_info set admin_login=#{adminLogin}, admin_name=#{adminName},admin_sex=#{adminSex},admin_tel=#{adminTel} where admin_id=#{adminId}")
int update(AdminInfo adminInfo);
@Delete("delete from admin_info where admin_id=#{adminId}")
int delAdmin(Integer adminId);
@Update("update admin_info set admin_pwd=#{pwd} where admin_id=#{id}")
int altPwd(Map map);
}
package com.sm.graduation.view;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.http.HttpSession;
@Controller
public class InitController {
/** 登录跳转 **/
@GetMapping("/")
public String login(HttpSession session) {
session.invalidate();
return "login";
}
/** 首页跳转 **/
@GetMapping("/indexR")
public String indexr() {
return "index-root";
}
@GetMapping("/indexA")
public String indexa() {
return "index-admin";
}
@GetMapping("/indexU")
public String indexu() {
return "index-usr";
}
/** 404跳转 **/
@GetMapping("/404")
public String error() {
return "page/404";
}
}