基于javaweb+mysql的springboot医院预约挂号系统(java+springboot+thymeleaf+html+maven+layui+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot医院预约挂号系统(java+springboot+thymeleaf+html+maven+layui+mysql)
一、项目简述功能包括: 用户分为患者,医生,管理员,患者可进行注册选择医生挂号,选择日期,选择号源,医生可进行接诊,管理员可对用户,医生信息的维护等等功能。
二、项目运行环境配置:
Jdk1.8 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
JSP +Spring + SpringBoot + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等
*//**
* 后台登陆界面
* @return
*//*
@RequestMapping("/afterView")
public String afterLogin(Integer type,Model model) {
if(type == null){
type = 1;
}
model.addAttribute("type",type);
return "behind/login";
}
*//**
* 登陆验证
* @return
*//*
@RequestMapping("/verificatio")
public String signin(String username, String password, Integer type, HttpServletRequest request,Model model) {
HttpSession session = request.getSession();
session.setAttribute("type",type);
//类型为1是商户后台 2是管理员
if(type == 1){
Merchant merchant = new Merchant();
merchant.setZhanghao(username);
merchant.setMima(password);
merchant.setState(1);
List<Merchant> merchants = merchantService.selectMerchant(merchant);
if(merchants.size() <= 0){
model.addAttribute("message","密码错误");
model.addAttribute("type",type);
return "behind/login";
}
session.setAttribute("MERCHANT",merchants.get(0));
return "redirect:/merchant/index";
}
Admin admin = new Admin();
admin.setUsername(username);
admin.setPassword(password);
List<Admin> adminlist = adminService.selectAdmin(admin);
if(adminlist.size() <= 0){
model.addAttribute("message","密码错误");
model.addAttribute("type",type);
return "behind/login";
}
session.setAttribute("ADMIN",adminlist.get(0));
return "redirect:/admin/index";
}
*医生列表查询
* @throws ParseException
*/
@RequestMapping(value = "/doctortimeSelect")
@ResponseBody
public List<Doctor> doctortimeSelect(@RequestParam("datetimei")String datetimei,@RequestParam("id")Integer id) throws ParseException {
Doctor doctor = new Doctor();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
doctor.setSid(id);
doctor.setBegindate(simpleDateFormat.parse(datetimei));
List<Doctor> selectDoctor = doctorService.selectTime(doctor);
return selectDoctor;
}
/**
*医生列表查询
* @throws ParseException
*/
@RequestMapping(value = "/doctorGeRenList")
@ResponseBody
public Doctor doctorGeRenList(Integer id) throws ParseException {
Doctor doctor = doctorService.selectByPrimaryKey(id);
return doctor;
}
/**
*时间格式转换
*/
@RequestMapping(value = "/doctorYuyueTime")
@ResponseBody
public Map<String,String> doctorYuyueTime(Integer id) {
Map<String,String> map = new HashMap<String,String>();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Doctor doctor = doctorService.selectByPrimaryKey(id);
map.put("begin",sdf.format(doctor.getBegintime()));
map.put("end",sdf.format(doctor.getEndtime()));
return map;
}
if(messages == null) {
messages = new Messages();
}
HttpSession session = request.getSession();
Doctor dt = (Doctor) session.getAttribute("DOCTOR");
if(dt != null){
messages.setDid(dt.getId());
}else{
return "redirect:/login/index";
}
messages.setType(type);
//底层数据
PageInfo<Messages> pageInfo = messagesService.selectMessagesList(messages,page,size);
//工作区数据
messages.setTime(new Date());
List<Messages> list = messagesService.selectMessagesPai(messages);
model.addAttribute("mlist",list);
model.addAttribute("messagesList",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
model.addAttribute("messages",messages);
model.addAttribute("type",type);
return "doctor/messageList";
}
/**
*医生列表查询
*/
@RequestMapping(value = "/messageAjax")
@ResponseBody
public List<Messages> doctorList(HttpServletRequest request) {
Messages messages = new Messages();
HttpSession session = request.getSession();
Doctor dt = (Doctor) session.getAttribute("DOCTOR");
messages.setDid(dt.getId());
messages.setType(1);
messages.setTime(new Date());
PageInfo<Messages> pageInfo2 = messagesService.selectMessagesListDemo(messages,1,99);
return pageInfo2.getList();
}
/**
*医生列表查询
*/
@RequestMapping(value = "/messagesQundingUptate")
@ResponseBody
public String messagesQundingUptate(Integer id) {
if(id != null) {
Messages messages = new Messages();
model.addAttribute("se1", se1);
}
}
return "doctor/doctorUptate";
}
/**
* 修改医生信息
*/
@RequestMapping("/messageTime")
public String messageTime(String name,Model model,HttpServletRequest request) {
HttpSession session = request.getSession();
Doctor dt = (Doctor) session.getAttribute("DOCTOR");
if(name != null) {
Messages mess = new Messages();
mess.setDid(dt.getId());
mess.setUsername(name);
List<Messages> selectMessages = messagesService.selectMessagesTWO(mess);
model.addAttribute("messagesList", selectMessages);
}
return "doctor/messageTime";
}
/**
* 修改医生信息
*/
@RequestMapping("/admindoctorUptate")
public String adminUptatePassword(Doctor doctor,Model model) {
if(doctor != null && doctor.getId() != null) {
if(doctor.getSid() != null) {
Section section = sectionService.selectByPrimaryKey(doctor.getSid());
doctor.setSid(section.getId());
doctor.setSname(section.getName());
}
doctorService.updateByPrimaryKeySelective(doctor);
}
return "redirect:/doctor/index";
}
/**
* 预约信息列表
/**
* 退出登录
* @param request
* @return
*/
@RequestMapping("/sessionInvalidate")
public String boot(HttpServletRequest request,Model model) {
HttpSession session = request.getSession();
Integer type = (Integer) session.getAttribute("type");
if(type == null){
type=1;
}
if(type == 3){
model.addAttribute("type",type);
session.invalidate(); //session销毁
return "loginByPatient";
}
model.addAttribute("type",type);
session.invalidate(); //session销毁
return "login";
}
/*
*//**
* 跳转忘记密码界面
*//*
@RequestMapping("/mimaPageUptate")
public String passwordUpate() {
return "behind/merchant/mibaoUptate";
}
*//**
* 修改密码
*//*
@RequestMapping("/mimaUpate")
@ResponseBody
public Map<String,String> passwordUpate(Model model, String mima, String mibao, String zhanghao) {
Map<String, String> map = new HashMap<String, String>();
Merchant me = new Merchant();
me.setZhanghao(zhanghao);
me.setMibao(mibao);
List<Merchant> list = merchantService.selectMerchant(me);
if(list.size() > 0){
Merchant me2 = new Merchant();
me2.setId(list.get(0).getId());
me2.setMima(mima);
merchantService.updateByPrimaryKeySelective(me2);
map.put("pan","ok");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date shijian = simpleDateFormat.parse(patient.getSname());
patient.setTime(shijian);
patient.setType(1);//待预约
Doctor doctor = doctorService.selectByPrimaryKey(patient.getDid());//医生
if(doctor != null) {
patient.setDname(doctor.getName());
if(doctor.getYipeoples() == null) {
doctor.setYipeoples(0);
}
doctor.setYipeoples(doctor.getYipeoples()+1);
doctorService.updateByPrimaryKeySelective(doctor);
}
Section section = sectionService.selectByPrimaryKey(patient.getSid());//科室
if(section != null) {
patient.setSname(section.getName());
}
Patient pa = patientService.selectByPrimaryKey(patient1.getId()); //患者
if(pa != null) {
patient.setUid(pa.getPid());
patient.setUserid(pa.getId());
patient.setPhone(pa.getPhone());
patient.setUsername(pa.getUsername());
patient.setAge(pa.getAge());
int countByExample = messagesService.countByExample(null);
patient.setBianhao(countByExample+1);
//排序
Messages message = new Messages();
// message.setUid(patient.getUid());
message.setTime(patient.getTime());
message.setDid(patient.getDid());
message.setType(-1);
List<Messages> list = messagesService.selectMessages(message);
if(list.size() <= 0) {
patient.setPai(1);
}else {
patient.setPai(list.size()+1);
}
}
messagesService.insertSelective(patient);
if(patient.getId() != null) {
hui = messagesService.selectByPrimaryKey(patient.getId());
Messages xin = new Messages();
xin.setDid(hui.getDid());
xin.setType(1);
/**
* 医生端
*/
@Controller
@RequestMapping("/doctor")
public class DoctorController {
@Autowired
private AdminService adminService;
@Autowired
private DoctorService doctorService;
@Autowired
private SectionService sectionService;
@Autowired
private PatientService patientService;
@Autowired
private MessagesService messagesService;
private Integer size = 8;//每页显示数量
/**
* 修改信息
* @param model
* @return
*/
@RequestMapping("/tiaomessagelist")
public String tiaomessagelist(@RequestBody List<Messages> mlist,Model model) {
System.out.println(mlist.size());
model.addAttribute("mlist",mlist);
List<Patient> list = patientService.selectPatient(pa);
if(list.size() > 0) {
return "err";
}
patientService.insertSelective(patient);
return "ok";
}
return "err";
}
/**
*登录验证
* @throws ParseException
*/
@RequestMapping(value = "/userLoginView")
@ResponseBody
public String userLoginView(HttpServletRequest request) throws ParseException {
HttpSession session = request.getSession();
Patient patient =(Patient) session.getAttribute("USER");
System.out.println("*********登陆验证********");
System.out.println(patient);
if(patient != null) {
return "ok";
}
return "err";
}
/**
*banner图
*/
@RequestMapping(value = "/bannerList")
@ResponseBody
public String[] formAdd() {
Banners banners = bannersService.selectByPrimaryKey(1);
String[] split = null;
if(banners != null && banners.getImg() != null) {
split = banners.getImg().split(",");
}
return split;
file.delete();
}
videoService.deleteByPrimaryKey(id);
}
return "redirect:/admin/feiyi_videoList";
}
*//**
* 管理员-人物列表
*//*
@RequestMapping("/personList")
public String personList(Model model,Person person,@RequestParam(value="page",defaultValue="1")Integer page,String sou) {
PageInfo<Person> pageInfo = personService.selectPageList(person,page,size);
List<Person> list = pageInfo.getList();
List<Person> list2 = new ArrayList<Person>();
//默认显示第一张图片
for(int i =0; i<list.size();i++){
Person sh = list.get(i);
String[] img = sh.getImg().split(",");
if(img.length > 0){
sh.setImg(img[0]);
list.set(i,sh);
}
}
if(sou != null && !"".equals(sou)){
char sz = sou.charAt(0);
//判断是否是大写
if(Character.isUpperCase(sz)){
sz = StringRandom.toLower(sz); //大写转小写
}
for(int i =0; i<list.size();i++){
Person sh = list.get(i);
if(sh.getName() != null){
char names = StringRandom.getPinYinHeadChar(sh.getName()); //名字的首字母
if(names == sz){
list2.add(sh);
}
}
}
model.addAttribute("personList",list2);
}else{
model.addAttribute("personList",list);
}
model.addAttribute("sou",sou);
model.addAttribute("pageInfo",pageInfo);
model.addAttribute("person",person);
return "behind/admin/feiyi_personList";
}
*//**
* 人物删除
int countByExample = messagesService.countByExample(null);
patient.setBianhao(countByExample+1);
//排序
Messages message = new Messages();
// message.setUid(patient.getUid());
message.setTime(patient.getTime());
message.setDid(patient.getDid());
message.setType(-1);
List<Messages> list = messagesService.selectMessages(message);
if(list.size() <= 0) {
patient.setPai(1);
}else {
patient.setPai(list.size()+1);
}
}
messagesService.insertSelective(patient);
if(patient.getId() != null) {
hui = messagesService.selectByPrimaryKey(patient.getId());
Messages xin = new Messages();
xin.setDid(hui.getDid());
xin.setType(1);
xin.setTime(shijian);
List<Messages> selectMessagesPai = messagesService.selectMessagesPai(xin);
hui.setAge(selectMessagesPai.size());
}
return "redirect:/api/doctorList1";
}
/**
*取消预约
* @throws ParseException
*/
@RequestMapping(value = "/messagesQuXiao")
public String messagesQuXiao(Integer id) throws ParseException {
Messages ma = new Messages();
ma.setId(id);
ma.setType(2); //取消预约
messagesService.updateByPrimaryKeySelective(ma);
Messages mes = messagesService.selectByPrimaryKey(id);
return "redirect:/api/patientList2";
}
/**
*预约信息列表
* @throws ParseException
*/
@RequestMapping(value = "/messagesUidList")
@ResponseBody
public List<Messages> messagesUidList(@RequestBody Messages message) throws ParseException {
List<Messages> list = null;
if(message.getType() != null && message.getType() == 1) {
message.setTime(new Date());
list = messagesService.selectMessagesPai(message);
}else {
list = messagesService.selectMessagesTWO(message);
}
Messages me = new Messages();
me.setType(1);
me.setTime(new Date());
for (int i = 0; i < list.size(); i++) {
me.setDid(list.get(i).getDid());
List<Messages> lin = messagesService.selectMessagesPai(me);
list.get(i).setAge(lin.size());
}
return list;
}
/**
*预约信息列表
* @throws ParseException
*/
@RequestMapping(value = "/messagesList")
@ResponseBody
public List<Messages> messagesList(@RequestParam("type")Integer type,@RequestParam("uid")Integer uid) throws ParseException {
Messages message = new Messages();
List<Messages> list = null;
message.setType(type);
message.setUid(uid);
if(type != null && type == 1) {
message.setTime(new Date());
list = messagesService.selectMessagesPai(message);
Messages me = new Messages();
banners.setImg(sh.getImg()+path.toString());
}else{
banners.setImg(path.toString());
}
bannersService.updateByPrimaryKeySelective(banners);
}
return map;
}
/*
*//**
* 管理员-非遗讲堂
*//*
@RequestMapping(value="/feiyi_videoList")
public String feiyi_VideoList(Model model, Video video, @RequestParam(value="page",defaultValue="1")Integer page) {
PageInfo<Video> pageInfo = videoService.selectPageList(video,page,size);
model.addAttribute("videoList",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
if(video.getTitle() != null){
model.addAttribute("title",video.getTitle());
}
return "behind/admin/feiyi_videoList";
}
*//**
* 非遗讲堂-删除
*//*
@RequestMapping("/videoDelete")
public String videoDelete(Model model,Integer id) {
if(id != null){
//String fp= filePath.substring(filePath.indexOf("/")+1);//文件的真实路径
Video video = videoService.selectByPrimaryKey(id);
String urlsrls = video.getUrls();
String name = urlsrls.substring(urlsrls.indexOf("s") + 2); //获取文件名
File file = new File(filePath +name);
if(file.exists()){
file.delete();
}
videoService.deleteByPrimaryKey(id);
}
return "redirect:/admin/feiyi_videoList";
}
*//**
* 后台登陆界面
*/
@RequestMapping("/font/index")
public String fontIndex(Integer type,Model model) {
if(type == null){
type = 3;
}
model.addAttribute("type",type);
return "loginByPatient";
}
/* public static void main(String[] args) {
String filename ="C:\\Users\\Administrator\\Pictures\\项目图片\\1156.jpg_wh1200.jpg";
int indexOf = filename.indexOf(".");
String substring = filename.substring(indexOf);
System.out.println(substring);
}*/
/**
* 医生图片上传
* @param mufile
* @param id
* @return
* @throws IOException
*/
@RequestMapping(value ="/zixunAdd")
@ResponseBody
public Map<String, Object> zixunAdd(@RequestParam("mf")MultipartFile mufile,@RequestParam("id")Integer id) throws IOException{
Map<String, Object> map = new HashMap<String, Object>();
String random = StringRandom.getRandom();
String filename = mufile.getOriginalFilename();
//随机字符+原图片名用作新的图片名
filename = random+".jpg";
try {
//文件保存路径 D:/xxxx/xxxx/
File file = new File(filePath+filename);
//判断父级文件是否存在
if (!file.getParentFile().exists()) {
file.getParentFile().mkdir();
}
mufile.transferTo(file);
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
}
Doctor doctor = new Doctor();
if(id != -1){
doctor.setId(id);
doctor.setImg("/files/"+filename);
doctorService.updateByPrimaryKeySelective(doctor);
}else {
model.addAttribute("messages",messages);
PageInfo<Doctor> pageInfo = doctorService.selectDoctorList(null,1,4);
if(pageInfo.getList() != null && pageInfo.getList().size() >0 ) {
List<Doctor> list = pageInfo.getList();
StringBuffer sb = new StringBuffer();
StringBuffer shu = new StringBuffer();
int v = list.size()-1;
for(int i=0;i<list.size();i++) {
if(v==i) {
sb.append(list.get(i).getName());
shu.append(list.get(i).getYipeoples());
}else {
sb.append(list.get(i).getName()+",");
shu.append(list.get(i).getYipeoples()+",");
}
}
model.addAttribute("name",sb.toString());
model.addAttribute("nu",shu.toString());
}
return "admin/index";
}
/**
* 管理员修改密码界面
* @return
*/
@RequestMapping("/adminUptatePage")
public String adminUptatePage(Model model) {
return "admin/adminUptate";
}
/**
* 修改密码
*/
@RequestMapping("/adminUptatePassword")
public String adminUptatePassword(Model model,Admin admin,HttpServletRequest request) {
HttpSession session = request.getSession();
Admin ad = (Admin) session.getAttribute("ADMIN");
if(ad != null && admin.getPassword() != null){
admin.setId(ad.getId());
adminService.updateByPrimaryKeySelective(admin);
}
model.addAttribute("type",type);
return "login";
}
/**
* 后台登陆界面
*/
@RequestMapping("/index")
public String index(Integer type,Model model) {
if(type == null){
type = 1;
}
model.addAttribute("type",type);
return "login";
}
/**
* 后台登陆界面
*/
@RequestMapping("/font/index")
public String fontIndex(Integer type,Model model) {
if(type == null){
type = 3;
}
model.addAttribute("type",type);
return "loginByPatient";
}
/* public static void main(String[] args) {
String filename ="C:\\Users\\Administrator\\Pictures\\项目图片\\1156.jpg_wh1200.jpg";
int indexOf = filename.indexOf(".");
String substring = filename.substring(indexOf);
System.out.println(substring);
}*/
/**
* 医生图片上传
* @param mufile
* @param id
* @return
* @throws IOException
if(me.getUid() == id) {
return j;
}
j++;
}
}
return -1;
}
/**
*查询科室
*/
@RequestMapping(value = "/sectioNameList")
@ResponseBody
public List<Section> sectioNameList(String name) {
Section se = new Section();
se.setName(name);
se.setType(2);
List<Section> sectionlist = sectionService.selectByExample(se);
if(sectionlist.size() > 0) {
//查询全部科室
se.setName(null);
se.setPid(sectionlist.get(0).getPid());
se.setType(2);
sectionlist = sectionService.selectByExample(se);
}
return sectionlist;
}
/**
* 坐诊时间yuyue
*/
@RequestMapping("/doctorTimePage")
public String doctorTimePage(Integer id,Model model) {
if(id != null) {
Doctor doctor = doctorService.selectByPrimaryKey(id);
model.addAttribute("doctor",doctor);
}
return "patient/doctorTime";
}
/**
*医生列表查询
*/
@RequestMapping(value = "/doctorList")
@ResponseBody
public List<Doctor> doctorList(Integer sid) {
Doctor doctor = new Doctor();
doctor.setSid(sid);
List<Doctor> selectDoctor = doctorService.selectDoctor(doctor);
return selectDoctor;
* PageInfo<Patient> pageInfo =
* patientService.selectPatientList(patient,1,size); List<Patient> list =
* pageInfo.getList(); List<Patient> list2 = new ArrayList<Patient>(); Messages
* messages = new Messages(); boolean pan = false; SimpleDateFormat sdf = new
* SimpleDateFormat("yyyy-MM-dd"); for (Patient pa : list) { if(pa.getPid() !=
* null && pa.getPid() != 0){ messages.setDid(dt.getId());
* messages.setUid(pa.getPid()); messages.setUsername(pa.getName());
* List<Messages> ml = messagesService.selectMessages(messages); if(ml.size() >
* 0 ){ Date time = ml.get(0).getTime(); pa.setUsername(sdf.format(time));
* pa.setPhone(dt.getName()); pa.setIdentitys(dt.getSname()); list2.add(pa); }
*
* } } if(list2.size() <= 8) { pageInfo.setPages(1); }
*/
Messages messages = new Messages();
// messages.setTime(new Date());
messages.setType(1);
messages.setDid(dt.getId());
PageInfo<Messages> pageInfo = messagesService.selectMessagesList(messages, 1, size);
model.addAttribute("doctorList",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
model.addAttribute("patient",patient);
return "doctor/patientList";
}
/**
*预约信息列表
* @throws ParseException
*/
@RequestMapping(value = "/tiaozhuanList")
@ResponseBody
public String messagesList(@RequestParam("xiao")Integer xiao,@RequestParam("da")Integer da) {
Messages message = new Messages();
if(xiao != null & da != null) {
Messages mexiao = messagesService.selectByPrimaryKey(xiao);
Integer px = mexiao.getPai();
Messages meda = messagesService.selectByPrimaryKey(da);
mexiao.setPai(meda.getPai());
meda.setPai(px);
messagesService.updateByPrimaryKeySelective(mexiao);
messagesService.updateByPrimaryKeySelective(meda);
}
return null;
}
/**
* 确定预约
*/
@RequestMapping("/messagesUptate")