源码获取:俺的博客首页 "资源" 里下载!
项目介绍
本系统分为前后台,包括管理员、病人、挂号人员、收费人员、药房人员、医生人员等角色,其中前台只能由病人角色登录,其它角色可通过后台登录;
管理员角色包含以下功能:
登录页面,增加公告,公告管理,留言管理,增加用户,用户管理,增加科室,科室管理,药品管理,收费统计,挂号统计等功能。
病人角色包含以下功能:
注册账号,用户登录,用户登录后首页,预约挂号,个人信息修改,提交留言等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:否;
技术栈
1.后端技术:Servlet
2.前端技术:JSP+CSS+JavaScript
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中dbconnection.properties配置文件中的数据库配置改为自己的配置;
将项目中src/dao/CommDAO.java中第71行的数据库配置用户名密码改为自己的配置;
4. 运行项目,输入http://localhost:8080/srykzsblmis/ 登录 注:Tomcat中配置路径必须为srykzsblmis
管理员账号/密码:admin/123
病人账号/密码: xm/123
挂号人员账号/密码:gh/123
收费人员账号/密码:sf/123
药房人员账号/密码:yf/123
医生人员账号/密码:doctor1/123
医生管理控制层:
@Controller
@RequestMapping("/doctor")
public class DoctorHandler {
@Resource
DoctorService doctorService;
@RequestMapping("/toDocWel")
public String toCusWel(HttpSession session){
String userId = (String) session.getAttribute("userId");
if(userId.contains("D")){
return "doctor/doc_wel";
}else {
return "redirect:/login/toDocLogin";
}
}
@ResponseBody
@RequestMapping("/delByDocId")
public Integer delByDocId(String docId){
String img_path = "D:/eaducation/Dcms004/src/main/resources/static/img/doc/" + docId + ".bmp";
File file = new File(img_path);
String resultInfo;
if (file.exists()) {//文件是否存在
if (file.delete()) {//存在就删了,返回1
resultInfo = "1";
} else {
resultInfo = "0";
}
} else {
resultInfo = "文件不存在!";
}
System.out.println("图片删除结果:" + resultInfo);
return doctorService.delById(docId);
}
@RequestMapping("/toDocInfo")
public ModelAndView toDocInfo(HttpSession session){
ModelAndView model = new ModelAndView();
String userId = (String) session.getAttribute("userId");
Doctor byId = doctorService.findById(userId);
model.addObject("doc",byId);
model.setViewName("doctor/doc_info");
return model;
}
@RequestMapping("/toDocRePass")
public String toRePass(){
return "doctor/doc_mess";
}
/*管理员模块*/
@RequestMapping("/adminToDocList")
public String adminToDocList(){
return "admin/doctor/doc_list";
}
@RequestMapping("/adminToAdd")
public String adminToAdd(){
return "admin/doctor/doc_add";
}
@ResponseBody
@RequestMapping("/adminFindAllDoc")
public LayData adminFindAllDoc(Integer page, Integer limit){
return doctorService.findAll(page,limit);
}
/*管理员模块*/
@RequestMapping("/toAddDoc")
public String toAddDoc(){
return "admin/doctor/doc_add";
}
@RequestMapping("/toDocEdit")
public ModelAndView toDocEdit(String docId){
ModelAndView model = new ModelAndView();
Doctor byId = doctorService.findById(docId);
model.addObject("doctor",byId);
model.setViewName("admin/doctor/doc_edit");
return model;
}
@ResponseBody
@RequestMapping("/updateDoc")
public Integer updateDoc(@RequestBody Doctor doctor){
return doctorService.updateDoc(doctor);
}
@ResponseBody
@RequestMapping("/saveDoc")
public Integer saveDoc(@RequestBody Doctor doctor){
return doctorService.saveDoc(doctor);
}
// 按ID搜索医生信息
@ResponseBody
@GetMapping("/adminFindById")
public LayData adminFindById(String docId){
LayData layData = new LayData();
layData.setCode(0);
if(docId != null && !docId.equals("")){
Doctor byId = doctorService.findById(docId);
if(byId != null) {
List<Doctor> list = new ArrayList<>();
list.add(byId);
layData.setData(list);
layData.setCount(1);
layData.setMsg("按ID查询");
}
}
return layData;
}
// 按Name搜索医生信息
@ResponseBody
@GetMapping("/adminFindByName")
public LayData adminFindByName(String docName){
LayData layData = new LayData();
layData.setCode(0);
List<Doctor> byName = doctorService.findByName(docName);
if(byName.size() > 0){
layData.setData(byName);
layData.setCount(byName.size());
layData.setMsg("按Name查询");
}
return layData;
}
@ResponseBody
@RequestMapping("/fileUpload")
public Map<String,Object> fileUpload(@RequestParam("file") MultipartFile file){
Map<String,Object> map = new HashMap<>();
String userId = doctorService.getDoctorId();
String uploadDir = "D:/eaducation/Dcms004/src/main/resources/static/img/doc/";
try {
// 图片路径
String imgUrl = null;
//上传
String filename = doctorService.upload(file, uploadDir, Objects.requireNonNull(file.getOriginalFilename()), userId);
if (filename != null) {
imgUrl = new File(uploadDir).getName() + "/" + filename;
}
map.put("code",0);
map.put("msg","");
map.put("data",imgUrl);
return map;
} catch (Exception e) {
e.printStackTrace();
map.put("code",500);
map.put("msg","上传失败");
map.put("data",null);
return map;
}
}
}
登录管理控制层:
@RequestMapping("/login")
@Controller
public class LoginHandler {
@Resource
private LoginInfoRepository loginInfoRepository;
@Resource
private DoctorService doctorService;
@Resource
private CustomerService customerService;
@Resource
private LoginCountService loginCountService;
// ----------------------------客户登录模块---
@RequestMapping("/toUserLogin")
public String toUserLogin(HttpSession session){
String cusName = (String) session.getAttribute("userName");
String cusId = (String) session.getAttribute("userId");
Customer byId = customerService.findById(cusId);
if(cusName != null && cusId != null && byId != null){
return "redirect:/user/toCusInfo";
}else {
return "user/login";
}
}
@RequestMapping("/toUserRegister")
public String toUserRegister(){
return "user/cus_register";
}
@RequestMapping("/userLogin")
public ModelAndView userLogin(LoginInfo loginInfo, HttpServletRequest req){
ModelAndView model = new ModelAndView();
HttpSession session = req.getSession();
LoginInfo byName = loginInfoRepository.findByName(loginInfo.getUsername());
if (byName == null){
model.setViewName("forward:toUserLogin");
model.addObject("message","该用户未注册!");
}else if(byName.getUserSort() != 1){
model.setViewName("forward:toUserLogin");
model.addObject("message","该账号非客户!");
} else if(loginInfo.getUsername().equals(byName.getUsername())
&& loginInfo.getPassword().equals(byName.getPassword())
&& byName.getUserSort() == 1){
model.setViewName("redirect:/user/toCusInfo");
session.setAttribute("userName",byName.getUsername());
session.setAttribute("userId",byName.getUserId());
}else {
model.setViewName("forward:toUserLogin");
model.addObject("message","用户名或密码错误!");
}
return model;
}
// ----------------------------医生登录模块-----
@RequestMapping("/toDocLogin")
public String toDocLogin(){
return "doctor/login";
}
// 后台验证登录
@RequestMapping("/docLogin")
public ModelAndView docLogin(LoginInfo loginInfo, HttpServletRequest request){
ModelAndView model = new ModelAndView();
HttpSession session = request.getSession();
LoginInfo byName = loginInfoRepository.findByName(loginInfo.getUsername());
if (byName == null){
model.setViewName("forward:toDocLogin");
model.addObject("message","该用户未注册!");
}else if(loginInfo.getUsername().equals(byName.getUsername())
&& loginInfo.getPassword().equals(byName.getPassword())
&& byName.getUserSort() != 1){
if(byName.getUserSort() == 3){
model.setViewName("redirect:/admin/toAdminWel");
}else if(byName.getUserSort() == 2){
model.setViewName("redirect:/doctor/toDocWel");
}
session.setAttribute("userName",byName.getUsername());
session.setAttribute("userId",byName.getUserId());
}else {
model.setViewName("forward:toDocLogin");
model.addObject("message","用户名或密码错误!");
}
return model;
}
// 修改密码
@ResponseBody
@RequestMapping("/updateDocMess")
public Integer updateMess(@RequestBody LoginInfo loginInfo, HttpSession session){
String userId = (String) session.getAttribute("userId");
String userName = (String) session.getAttribute("userName");
LoginInfo byId = loginInfoRepository.findById(userId);
loginInfo.setUserId(userId);
loginInfo.setUsername(userName);
loginInfo.setUserSort(byId.getUserSort());
return loginInfoRepository.update(loginInfo);
}
/*管理员模块*/
@RequestMapping("/toAdminRePass")
public String toRePass(){
return "admin/admin_mess";
}
@ResponseBody
@RequestMapping("/findWeekData")
public List<CustomerWeekData> findWeekData(){
return loginCountService.getWeekData();
}
// 通用退出
@RequestMapping("/edit")
public String edit(HttpSession session){
Enumeration<String> em = session.getAttributeNames();
// 清除所有session数据,准备退出
while (em.hasMoreElements()) {
session.removeAttribute(em.nextElement());
}
System.out.println("------------用户已注销-------------");
return "redirect:/login/toDocLogin";
}
// 通用获取密码
@ResponseBody
@RequestMapping("/getPassword")
public String getPassword(HttpSession session){
String userId = (String) session.getAttribute("userId");
LoginInfo byId = loginInfoRepository.findById(userId);
return byId.getPassword();
}
}
用户管理控制层:
@RequestMapping("/cus")
@Controller
public class CustomerHandler {
@Resource
private CustomerService customerService;
@RequestMapping("/toCusList")
public String toCusList(){
return "doctor/customer/cus_list";
}
@RequestMapping("/toAddCus")
public String toAddCus(){
return "doctor/customer/cus_add";
}
// 展示客户信息列表
@ResponseBody
@RequestMapping("/findAllByDoc")
public LayData getAll(HttpSession session){
String userId = (String) session.getAttribute("userId");
ModelAndView model = new ModelAndView();
LayData all = customerService.findAllByDoc(userId);
model.setViewName("doctor/customer/cus_list");
model.addObject("cusList", all);
return all;
}
// 按ID搜索客户信息
@ResponseBody
@GetMapping("/findById")
public LayData findById(String customerId, HttpSession session){
String userId = (String) session.getAttribute("userId");
LayData layData;
if(customerId == null || customerId.equals("")){
layData = customerService.findAllByDoc(userId);
}else {
layData = customerService.layFindById(customerId);
}
return layData;
}
// 按Name搜索客户信息
@ResponseBody
@GetMapping("/findByName")
public LayData findByName(String customerName, HttpSession session){
String userId = (String) session.getAttribute("userId");
LayData layData;
if(customerName == null || customerName.equals("")){
layData = customerService.findAllByDoc(userId);
}else {
layData = customerService.layFindByName(customerName);
}
return layData;
}
// 新增客户信息
@ResponseBody
@RequestMapping("/insertCus")
public Integer insertCus(@RequestBody Customer customer){
System.out.println("insertCus中的Customer信息:" + customer);
int index = customerService.save(customer);
return index;
}
// 执行弹出窗的操作
@RequestMapping("/toCusInfo")
public ModelAndView toCusInfo(String customerId){
ModelAndView model = new ModelAndView();
model.setViewName("admin/customer/cus_info");
Customer customer = customerService.findById(customerId);
model.addObject("cus",customer);
return model;
}
/*管理员模块*/
@RequestMapping("/adminToList")
public String adminToList(){
return "admin/customer/cus_list";
}
@RequestMapping("/adminToAddCus")
public String adminToAddCus(){
return "admin/customer/cus_add";
}
// 展示客户信息列表 分页
@ResponseBody
@RequestMapping("/adminFindAll")
public LayData adminFindAll(Integer page,Integer limit){
return customerService.findAll(page,limit);
}
// 按ID搜索客户信息
@ResponseBody
@GetMapping("/adminFindById")
public LayData adminFindById(String customerId){
LayData layData;
if(customerId == null || customerId.equals("")){
layData = new LayData();
layData.setCode(0);
}else {
layData = customerService.layFindById(customerId);
}
return layData;
}
// 按Name搜索客户信息
@ResponseBody
@GetMapping("/adminFindByName")
public LayData adminFindByName(String customerName){
LayData layData;
if(customerName == null || customerName.equals("")){
layData = new LayData();
layData.setCode(0);
}else {
layData = customerService.layFindByName(customerName);
}
return layData;
}
// 按ID删除客户信息
@ResponseBody
@GetMapping("/deleteById")
public Integer deleteById(String customerId){
return customerService.deleteById(customerId);
}
}
源码获取:俺的博客首页 "资源" 里下载!