基于javaweb的医院挂号预约管理系统(java+ssm+html+javascript+jsp+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+ssm的医院挂号预约管理系统(java+SSM+HTML+JavaScript+jsp+mysql)
项目介绍
本项目分为管理员与医生两种角色; 管理员角色包含以下功能: 管理员登录,添加科室,科室增删改查,医生管理,查看预约信息,查看医生预约状态,反馈查看,公告发布等功能。 医生角色包含以下功能: 录界面,医生首页,提交挂号信息,个人信息修改,查看个人预约信息等功能。
环境需要
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版本;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+jsp
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
医生端管理控制层:
/**
• 医生端
*/
@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 mlist,Model model) {
System.out.println(mlist.size());
model.addAttribute(“mlist”,mlist);
return “doctor/messageList”;
@RequestMapping(“/index”)
public String index(Model model,HttpServletRequest request) {
HttpSession session = request.getSession();
Doctor dt = (Doctor) session.getAttribute(“DOCTOR”);
if(dt == null) {
return “redirect:/login/index”;
int doctor = doctorService.countByExample(null); //医生总数
int section = sectionService.count(); //科室总数
//患者总数
int patient = 0;
List selectByExample = patientService.selectByExample(null);
Messages mess = new Messages();
for (Patient pa : selectByExample) {
if(pa.getName() != null) {
mess.setDid(dt.getId());
mess.setUsername(pa.getName());
List selectMessages = messagesService.selectMessages(mess);
if(selectMessages.size() > 0 )
patient++;
//预约总数
MessagesExample me = new MessagesExample();
MessagesExample.Criteria mecriteria = me.createCriteria();
mecriteria.andDidEqualTo(dt.getId());
int messages = messagesService.countByExample(me);
model.addAttribute(“doctor”,doctor);
model.addAttribute(“section”,section);
model.addAttribute(“patient”,patient);
model.addAttribute(“messages”,messages);
PageInfo pageInfo = doctorService.selectDoctorList(null,1,4);
if(pageInfo.getList() != null && pageInfo.getList().size() >0 ) {
List 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 “doctor/index”;
/**
• 修改信息
• @param model
• @return
*/
@RequestMapping(“/doctorUptatePage”)
public String doctorUptatePage(Model model,HttpServletRequest request) {
HttpSession session = request.getSession();
Doctor dt = (Doctor) session.getAttribute(“DOCTOR”);
if(dt != null) {
Doctor doctor = doctorService.selectByPrimaryKey(dt.getId());
List
sectionlist2 = null;
model.addAttribute(“doctor”,doctor);
//科室
Section se = new Section();
se.setType(1);
List
sectionlist = sectionService.selectByExample(se);
model.addAttribute(“sectionlist”, sectionlist);
//科室详情
Section se1 = sectionService.selectByPrimaryKey(doctor.getSid());
if(se1 != null) {
Section section = new Section();
section.setPid(se1.getPid());
section.setType(2);
sectionlist2 = sectionService.selectByExample(section);
model.addAttribute(“sectionlist2”, sectionlist2);
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 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”;
/**
• 预约信息列表
*/
@RequestMapping(“/messageList”)
public String doctorList(Model model, Messages messages, @RequestParam(value=“page”,defaultValue=“1”)Integer page,Integer type,HttpServletRequest request) {
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 pageInfo = messagesService.selectMessagesList(messages,page,size);
//工作区数据
messages.setTime(new Date());
List 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 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 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();
messages.setId(id);
messages.setType(3); //3表示预约成功
messagesService.updateByPrimaryKeySelective(messages);
Messages selectByPrimaryKey = messagesService.selectByPrimaryKey(id);
Messages mes = new Messages();
mes.setType(1);
mes.setTime(new Date());
mes.setDid(selectByPrimaryKey.getDid());
List list = messagesService.selectMessagesPai(mes);
for (int i = 0; i < list.size(); i++) {
list.get(i).setPai(i+1);
messagesService.updateByPrimaryKeySelective(list.get(i));
return “ok”;
/**
*患者信息列表
*/
@RequestMapping(“/patientList”)
public String messageList(Model model, Patient patient, @RequestParam(value=“page”,defaultValue=“1”)Integer page,HttpServletRequest request) {
if(patient == null) {
patient = new Patient();
HttpSession session = request.getSession();
Doctor dt = (Doctor) session.getAttribute(“DOCTOR”);
if(dt == null){
return “redirect:/login/index”;
/*
• PageInfo pageInfo =
• patientService.selectPatientList(patient,1,size); List list =
• pageInfo.getList(); List list2 = new ArrayList(); 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 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 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”)
public String messagesUptate(Integer id) {
if(id != null) {
Messages messages = new Messages();
messages.setId(id);
messages.setType(3); //3表示预约成功
messagesService.updateByPrimaryKeySelective(messages);
return “redirect:/doctor/messageList?type=1”;
/**
• 取消
*/
@RequestMapping(“/messagesQuXiao”)
public String messagesQuXiao(Integer id) {
if(id != null) {
Messages messages = new Messages();
messages.setId(id);
messages.setType(2); //2取消预约
messagesService.updateByPrimaryKeySelective(messages);
return “redirect:/doctor/messageList?type=1”;
/**
• 退号
*/
@RequestMapping(“/messagesTui”)
public String messagesTui(Integer id) {
if(id != null) {
Messages messages = new Messages();
messages.setId(id);
messages.setType(4); //4退号失败
messagesService.updateByPrimaryKeySelective(messages);
return “redirect:/doctor/messageList?type=3”;
后端管理员控制层:
/**
• 后端管理员控制层
*/
@Controller
@RequestMapping(“/admin”)
public class AdminController {
@Autowired
private AdminService adminService;
@Autowired
private SectionService sectionService;
@Autowired
private BannersService bannersService;
@Autowired
private DoctorService doctorService;
@Autowired
private PatientService patientService;
@Autowired
private MessagesService messagesService;
private Integer size = 6;//每页显示数量
@Value(“${fileUrl}”) //在配置文件中获取文件的保存路径
private String filePath;
/**
• 导入
• @param file
• @param response
• @throws IOException
*/
@RequestMapping(“/excelInput”)
public String excelInput(MultipartFile file,HttpServletResponse response) throws IOException {
String sb = file.getOriginalFilename();
List<String[]> jieExcel = ExcelInput.jieExcel(file.getInputStream(), sb.substring(sb.indexOf(“.”)+1));
for (String[] strings : jieExcel) {
System.out.println(Arrays.toString(strings));
return “redirect:/admin/index”;
/**
• 导出
• @param file
• @param response
*/
@RequestMapping(“/xiazai”)
public void excelString(HttpServletRequest request,HttpServletResponse response) {
try {
response.setCharacterEncoding(“utf-8”);
//content-type类型是告诉页面要响应内容的类型,以及字符编码,页面要以什么方式打开
response.setContentType(“application/force-download”);// 设置强制下载不打开
//Content-Disposition是MIMI协议的扩展,浏览器以什么方式处理wenjian
response.setHeader(“Content-Disposition”, “attachment; fileName=exportFile.xlsx”);
String[] title = new String[]{“姓名”,“科室id”,“科室”,“日期”};
List list = doctorService.selectByExample(null);
Workbook wo = ExcelUtils.getExcel(“xlsx”,title,list);
wo.write(response.getOutputStream());
//Files.copy(file, response.getOutputStream());
} catch (IOException e) {
System.out.println(“发生异常”);
e.printStackTrace();
@RequestMapping(“/index”)
public String index(Model model) {
int doctor = doctorService.countByExample(null); //医生总数
int section = sectionService.countByExample(null); //科室总数
int patient = patientService.countByExample(null); //患者总数
int messages = messagesService.countByExample(null); //预约总数
model.addAttribute(“doctor”,doctor);
model.addAttribute(“section”,section);
model.addAttribute(“patient”,patient);
model.addAttribute(“messages”,messages);
PageInfo pageInfo = doctorService.selectDoctorList(null,1,4);
if(pageInfo.getList() != null && pageInfo.getList().size() >0 ) {
List 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);
return “redirect:/admin/index”;
/**
• 坐诊时间设置界面
*/
@RequestMapping(“/doctorTimePage”)
public String doctorTimePage(Integer id,Model model) {
if(id != null) {
Doctor doctor = doctorService.selectByPrimaryKey(id);
model.addAttribute(“doctor”,doctor);
return “admin/doctorTime”;
/**
• 坐诊时间设置界面
• @throws ParseException
*/
@RequestMapping(“/doctorTimeUpdate”)
public String doctorTimeUpdate(Integer id,Model model,String begindate,String enddate,String begintime,String endtime) throws ParseException {
if(id != null) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“yyyy-MM-dd”);
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat(“HH:mm”);
Doctor doctor = new Doctor();
doctor.setId(id);
doctor.setBegindate(simpleDateFormat.parse(begindate));
doctor.setEnddate(simpleDateFormat.parse(enddate));
doctor.setBegintime(simpleDateFormat2.parse(begintime));
doctor.setEndtime(simpleDateFormat2.parse(endtime));
doctorService.updateByPrimaryKeySelective(doctor);
return “redirect:/admin/doctorList”;
/**
• 修改医生信息
*/
@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:/admin/doctorList”;
/**
• 删除医生信息
*/
@RequestMapping(“/doctorDelect”)
public String doctorDelect(Integer id,Model model) {
if(id != null) {
doctorService.deleteByPrimaryKey(id);
return “redirect:/admin/doctorList”;
/**
• 医生注册界面
*/
@RequestMapping(“/doctorAddPage”)
public String doctorAddPage(Model model) {
List
sectionlist2 = null;
Section se = new Section();
se.setType(1);
List
sectionlist = sectionService.selectByExample(se);
if(sectionlist.size() > 0 ) {
//科室详情
Section section = new Section();
section.setPid(sectionlist.get(0).getId());
section.setType(2);
sectionlist2 = sectionService.selectByExample(section);
model.addAttribute(“sectionlist”, sectionlist);
model.addAttribute(“sectionlist2”, sectionlist2);
return “admin/doctorAdd”;
@RequestMapping(“/admindoctorAdd”)
public String admindoctorAdd(Doctor doctor,Model model) {
if(doctor.getId() != null){
if(doctor.getSid() != null) {
Section selectByPrimaryKey = sectionService.selectByPrimaryKey(doctor.getSid());
doctor.setSname(selectByPrimaryKey.getName());
doctorService.updateByPrimaryKeySelective(doctor);
return “redirect:/admin/doctorList”;
/**
• 医生列表
*/
@RequestMapping(“/doctorList”)
public String doctorList(Model model, Doctor doctor, @RequestParam(value=“page”,defaultValue=“1”)Integer page) {
if(doctor == null) {
doctor = new Doctor();
PageInfo pageInfo = doctorService.selectDoctorList(doctor,page,size);
List list = pageInfo.getList();
model.addAttribute(“doctorList”,pageInfo.getList());
model.addAttribute(“pageInfo”,pageInfo);
model.addAttribute(“doctor”,doctor);
return “admin/doctorList”;
/**
• 修改医生信息界面
• @return
*/
@RequestMapping(“/doctorUptatePage”)
public String doctorUptatePage(Model model,Integer id) {
if(id != null) {
Doctor doctor = doctorService.selectByPrimaryKey(id);
List
sectionlist2 = null;
model.addAttribute(“doctor”,doctor);
//科室
Section se = new Section();
se.setType(1);
List
sectionlist = sectionService.selectByExample(se);
model.addAttribute(“sectionlist”, sectionlist);
//科室详情
Section se1 = sectionService.selectByPrimaryKey(doctor.getSid());
Section section = new Section();
if(se1 != null) {
section.setPid(se1.getPid());
section.setType(2);
sectionlist2 = sectionService.selectByExample(section);
}else {
if(sectionlist.size() >0 ) {
section.setPid(sectionlist.get(0).getId());
section.setType(2);
sectionlist2 = sectionService.selectByExample(section);
se1 = new Section();
model.addAttribute(“sectionlist2”, sectionlist2);
model.addAttribute(“se1”, se1);
return “admin/doctorUptate”;
/**
• 科室列表
*/
@RequestMapping(“/sectionList”)
public String sectionList(Model model, Section section, @RequestParam(value=“page”,defaultValue=“1”)Integer page) {
if(section == null) {
section = new Section();
section.setType(1);//1 科室
PageInfo
pageInfo = sectionService.selectSectionListt(section,page,size);
List
list = pageInfo.getList();
List
();
Section cs = new Section();
for (Section se : list) {
cs.setPid(se.getId());
List
selectByExample = sectionService.selectByExample(cs);
se.setSlist(selectByExample);
list2.add(se);
model.addAttribute(“sectionList”,list2);
model.addAttribute(“pageInfo”,pageInfo);
model.addAttribute(“section”,section);
return “admin/sectionList”;
/**
• 科室详情下级列表
*/
@RequestMapping(“/sectionBelowList”)
public String sectionBelowList(Model model, Section section, Integer id) {
if(section == null) {
section = new Section();
section.setType(2);// 2 科室详情
section.setPid(id);
Section se = sectionService.selectByPrimaryKey(id);
List
list = sectionService.selectByExample(section);
model.addAttribute(“sectionList”,list);
model.addAttribute(“section”,section);
model.addAttribute(“se”,se);
return “admin/sectionBelow”;
/**
• 跳转添加科室界面
*/
@RequestMapping(“/sectionAddPage”)
public String zuopinList() {
return “admin/sectionAdd”;
/**
• 跳转添加科室下级界面
*/
@RequestMapping(“/sectionAddBelowPage”)
public String zuopinList(Model model,Integer id) {
if(id != null) {
Section se = sectionService.selectByPrimaryKey(id);
model.addAttribute(“se”,se);
return “admin/sectionAddBelow”;
/**
• 跳转修改科室下级界面
*/
@RequestMapping(“/sectionBelowUptatePage”)
public String sectionBelowUptatePage(Model model,Integer id) {
if(id != null) {
Section se = sectionService.selectByPrimaryKey(id);
Section section = sectionService.selectByPrimaryKey(se.getPid());
model.addAttribute(“se”,se);
model.addAttribute(“sname”,section.getName());
return “admin/sectionBelowUptate”;
/**
• 跳转修改科室界面
*/
@RequestMapping(“/sectionUptatePage”)
public String sectionUptatePage(Model model,Integer id) {
if(id != null) {
Section se = sectionService.selectByPrimaryKey(id);
model.addAttribute(“se”,se);
return “admin/sectionUptate”;
/**
• 添加科室
*/
@RequestMapping(“/sectionAdd”)
@ResponseBody
public Map<String,String> sectionAdd(String name) {
Map<String, String> map = new HashMap<String, String>();
if(name != null ){
Section section = new Section();
section.setName(name);
section.setType(1);
sectionService.insertSelective(section);
map.put(“pan”,“ok”);
}else{
map.put(“pan”,“err”);
return map;
/**
• 添加科室下级
*/
@RequestMapping(“/sectionAddBelow”)
public String sectionAddBelow(Section section) {
section.setType(2);
sectionService.insertSelective(section);
//“redirect:/admin/sectionBelowList?id=”+section.getPid();
return “redirect:/admin/sectionList”;
/**
• 修改科室
*/
@RequestMapping(“/sectionUptate”)
public String sectionUptate(Section section) {
sectionService.updateByPrimaryKeySelective(section);
return “redirect:/admin/sectionList”;
/**
• 修改科室下级
*/
@RequestMapping(“/sectionBelowUptate”)
public String sectionBelowUptate(Section section) {
sectionService.updateByPrimaryKeySelective(section);
return “redirect:/admin/sectionBelowList?id=”+section.getPid();
/**
• 删除科室下级
*/
@RequestMapping(“/sectionBelowDelect”)
public String sectionBelowUptate(Integer id) {
Section section = sectionService.selectByPrimaryKey(id);
Integer pid = section.getPid();
sectionService.deleteByPrimaryKey(section.getId());
return “redirect:/admin/sectionBelowList?id=”+pid;
/**
• 删除科室
*/
@RequestMapping(“/sectionDelect”)
public String sectionDelect(Integer id) {
Section section = new Section();
section.setPid(id);
section.setType(2);
List
list = sectionService.selectByExample(section);
sectionService.deleteByPrimaryKey(id);
for (Section section2 : list) {
sectionService.deleteByPrimaryKey(section2.getId());
return “redirect:/admin/sectionList”;
@RequestMapping(“/bannersPageUpdate”)
public String bannersAdd(Model model,Integer id) {
Banners banners = null;
String[] imgnames = null;
if(id == 1){
banners = bannersService.selectByPrimaryKey(1);
if(banners == null){
banners = new Banners();
banners.setId(1);
bannersService.insertSelective(banners);
if(banners.getImg() != null && !“”.equals(banners.getImg())){
imgnames = banners.getImg().split(“,”);
model.addAttribute(“imgnames”,imgnames);
model.addAttribute(“banners”,banners);
return “admin/bannersUpdate”;
/**
*轮播图片删除
*/
@RequestMapping(value =“/bannersDel”)
@ResponseBody
public Map<String, Object> bannersDel(Integer id,String src) throws IOException{
Map<String, Object> map = new HashMap<String, Object>();
StringBuffer sb = new StringBuffer();
if(id != null && src != null){
Banners banner = bannersService.selectByPrimaryKey(id);
if(banner.getImg() != null){
String[] split = banner.getImg().split(“,”);
for(int i = 0; i<split.length;i++){
if(src.equals(split[i])){
//String fp= filePath.substring(filePath.indexOf(“/”)+1);//文件的真实路径
String path = src.substring(src.indexOf(“s”) + 2); //获取文件名
File file = new File(filePath +path);
if(file.exists()){
file.delete();
map.put(“massage”,“删除成功”);
}else{
map.put(“massage”,“删除失败”);
}else{
sb.append(split[i]+“,”);
Banners banners = new Banners();
banners.setId(id);
banners.setImg(sb.toString());
bannersService.updateByPrimaryKeySelective(banners);
return map;
/**
*banner图片上传
*/
@RequestMapping(value =“/bannersAdd”)
@ResponseBody
public Map<String, Object> bannersAdd(@RequestParam(“mf”)MultipartFile[] mufile,@RequestParam(“id”)Integer id) throws IOException{
Map<String, Object> map = new HashMap<String, Object>();
StringBuffer path = new StringBuffer();
//图片上传并保存上传的路径
for (int i = 0; i < mufile.length; i++) {
try {
String random = StringRandom.getRandom();
String filename = mufile[i].getOriginalFilename();
//随机字符+原图片名用作新的图片名
filename = random+filename;
//文件保存路径 D:/Java/hospital
File file = new File(filePath+filename);
//判断父级文件是否存在
if (!file.getParentFile().exists()) {
file.getParentFile().mkdir();
path.append(“/files/”+filename+“,”);
mufile[i].transferTo(file);
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
Banners banners = new Banners();
if(id != null){
//修改图片路径
Banners sh = bannersService.selectByPrimaryKey(id);
banners.setId(id);
if(sh.getImg() != null ){
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 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(“/personList”)
public String personList(Model model,Person person,@RequestParam(value=“page”,defaultValue=“1”)Integer page,String sou) {
PageInfo pageInfo = personService.selectPageList(person,page,size);
List list = pageInfo.getList();
List list2 = new ArrayList();
//默认显示第一张图片
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”;
//*
• 人物删除
• @param model
• @return
//
@RequestMapping(“/personDelete”)
public String personDelete(Model model,Integer id) {
if(id != null){
Person person = personService.selectByPrimaryKey(id);
//删除人物的图片
//String fp= filePath.substring(filePath.indexOf(“/”)+1);//文件的真实路径
String name = person.getImg().substring(person.getImg().indexOf(“s”) + 2); //获取文件名
File file = new File(filePath +name);
if(file.exists()){
file.delete();
personService.deleteByPrimaryKey(id);
return “redirect:/admin/personList”;
//*
• 管理员
//
@RequestMapping(“/feiyisList”)
public String zuopinList(Model model,Feiyis feiyis,@RequestParam(value=“page”,defaultValue=“1”)Integer page,String sou) {
feiyis.setState(0);//0为正常 1是管理员下架的
PageInfo pageInfo = feiyisService.selectFeiyis(feiyis,page,size);
model.addAttribute(“feiyiList”,pageInfo.getList());
model.addAttribute(“pageInfo”,pageInfo);
model.addAttribute(“feiyis”,feiyis);
return “behind/admin/feiyisList”;
//*
• 非遗视界删除
• @param model
• @return
//
@RequestMapping(“/feiyisDelete”)
public String feiyisDelete(Model model,Integer id,Integer type) {
if (id != null) {
Feiyis feiyis = feiyisService.selectByPrimaryKey(id);
//删除图片
// String fp= filePath.substring(filePath.indexOf(“/”)+1);//文件的真实路径
if (feiyis.getImg() != null) {
String name = feiyis.getImg().substring(feiyis.getImg().indexOf(“s”) + 2);//获取文件
File file = new File(filePath + name);
if (file.exists()) {
file.delete();
feiyisService.deleteByPrimaryKey(id);
return “redirect:/admin/feiyisList?type=” + type;
//*
• 后台主页
• @return
//
@RequestMapping(“/index”)
public String index(Model model) {
//图表信息
int zixun = zixunService.countByExample(null);
int video = videoService.countByExample(null);
int person = personService.countByExample(null);
int zuocount = feiyisService.countByExamples(1);
int huocount = feiyisService.countByExamples(2);
int zoucount = feiyisService.countByExamples(3);
int facount = feiyisService.countByExamples(4);
model.addAttribute(“zixun”,zixun);
model.addAttribute(“video”,video);
model.addAttribute(“person”,person);
model.addAttribute(“zuocount”,zuocount);
model.addAttribute(“huocount”,huocount);
model.addAttribute(“zoucount”,zoucount);
model.addAttribute(“facount”,facount);
//总评论数
int commentcount = commentService.countByExample(null);
//用户数
int usercount = usertService.countByExample(null);
//商品数量
int shopcount = shopService.countByExample(null);
//资讯数量
int zixuncount = zixunService.countByExample(null);
model.addAttribute(“commentcount”,commentcount);
model.addAttribute(“usercount”,usercount);
model.addAttribute(“shopcount”,shopcount);
model.addAttribute(“zixuncount”,zixuncount);
return “behind/admin/index”;
//*
• 资讯列表
• @param model
• @return
//
@RequestMapping(“/zixunList”)
public String zixunList(Model model, Zixun zixun, @RequestParam(value=“page”,defaultValue=“1”)Integer page, String sou) {
if(zixun == null){
zixun = new Zixun();
zixun.setState(0);// 0 是正常 1被下架的
PageInfo pageInfo = zixunService.selectZixunList(zixun,page,size);
model.addAttribute(“zixunList”,pageInfo.getList());
model.addAttribute(“pageInfo”,pageInfo);
model.addAttribute(“zixun”,zixun);
return “behind/admin/zixunList”;
//*
• 资讯下架
• @param model
• @return
//
@RequestMapping(“/zixunUptate”)
public String zixunUptate(Model model,Integer id) {
if(id != null){
Zixun zixun = new Zixun();
zixun.setId(id);
zixun.setState(1); //1是下架
zixunService.updateByPrimaryKeySelective(zixun);
return “redirect:/admin/zixunList”;
//*
• 管理评论
• @return
//
@RequestMapping(“/commentList”)
public String commentList(Model model,Integer type) {
if(type != null){
Comment comment = new Comment();
comment.setType(type);//商品评论
comment.setReport(1);//1为举报的
List commentsList = commentService.selectComment(comment);
model.addAttribute(“commentsList”,commentsList);
return “behind/admin/commentList”;
//*
• 评论删除
• @return
//
@RequestMapping(“/commentDel”)
public String commentDel(Model model,Integer id) {
if(id != null){
commentService.deleteByPrimaryKey(id);
return “redirect:/admin/commentList”;
//*
*审核
• @return
//
@RequestMapping(“/merchantList”)
public String merchantList(Model model,Integer id) {
Merchant merchant = new Merchant();
merchant.setState(0);
List merchantlist = merchantService.selectMerchant(merchant);
model.addAttribute(“merchantlist”,merchantlist);
return “behind/admin/merchantList”;
//*
*通过
• @return
//
@RequestMapping(“/merchanUpate”)
public String merchanUpate(Model model,Integer id) {
Merchant merchant = new Merchant();
if(id != null){
merchant.setId(id);
merchant.setState(1);
merchantService.updateByPrimaryKeySelective(merchant);
return “redirect:/admin/merchantList”;
//*
*未通过
• @return
//
@RequestMapping(“/merchanDel”)
public String merchanDel(Model model,Integer id) {
if(id != null){
merchantService.deleteByPrimaryKey(id);
return “redirect:/admin/merchantList”;
//*
*用户列表
• @return
//
@RequestMapping(“/userList”)
public String userList(Model model) {
List userlist = usertService.selectFull(null);
model.addAttribute(“userlist”,userlist);
return “behind/admin/userList”;
//*
*用户删除
• @return
//
@RequestMapping(“/userDel”)
public String userDel(Model model,Integer id) {
if(id != null){
usertService.deleteByPrimaryKey(id);
return “redirect:/admin/userList”;
//*
*修改密码
• @return
//
@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);
return “redirect:/admin/index”;
*/
登录控制层:
/**
• 登录控制层
*/
@Controller
@RequestMapping(“/login”)
public class LoginController {
@Autowired
private AdminService adminService;
@Autowired
private DoctorService doctorService;
@Autowired
private SectionService sectionService;
@Autowired
private PatientService patientService;
@Value(“${fileUrl}”) //在配置文件中获取文件的保存路径
private String filePath;
/**
• 后台登陆界面
• @throws IOException
*/
@RequestMapping(“/afterView”)
public String afterLogin(Integer type,Model model) {
if(type == null) {
type = 1;
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
*/
@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 {
//添加图片路径
doctor.setImg(“/files/”+filename);
doctorService.insertSelective(doctor);
System.out.println(“id:”+doctor.getId());
map.put(“id”,doctor.getId());
return map;
/**
• 判断管理员账号
*/
@RequestMapping(“/sectionxList”)
@ResponseBody
public List
sectionxList(Model model, Integer id) {
List
selectByExample = null;
if(id != null) {
Section section = new Section();
section.setPid(id);
selectByExample = sectionService.selectByExample(section);
return selectByExample;
/**
• 判断管理员账号
*/
@RequestMapping(“/mimaUpate”)
@ResponseBody
public Map<String,String> passwordUpate(Model model, String zhanghao) {
Map<String, String> map = new HashMap<String, String>();
Admin ad = new Admin();
ad.setUsername(zhanghao);
List selectAdmin = adminService.selectAdmin(ad);
if(selectAdmin.size() > 0){
map.put(“pan”,“err”);
}else{
map.put(“pan”,“ok”);
return map;
/**
• 判断医生账号
*/
@RequestMapping(“/panzhanghao”)
@ResponseBody
public Map<String,String> panzhanghao(Model model, String zhanghao) {
Map<String, String> map = new HashMap<String, String>();
DoctorExample se = new DoctorExample();
DoctorExample.Criteria criteria = se.createCriteria();
criteria.andUsernameEqualTo(zhanghao);
List selectByExample = doctorService.selectByExample(se);
if(selectByExample.size() > 0){
map.put(“pan”,“err”);
}else{
map.put(“pan”,“ok”);
return map;
/**
• 医生添加
• @param model
• @param zixun
• @return
*/
@RequestMapping(“/zixunInsert”)
public String zixunInsert(Model model,Doctor doctor){
if(doctor.getId() != null){
if(doctor.getSid() != null) {
Section selectByPrimaryKey = sectionService.selectByPrimaryKey(doctor.getSid());
doctor.setSname(selectByPrimaryKey.getName());
doctorService.updateByPrimaryKeySelective(doctor);
model.addAttribute(“type”,1);
return “login”;
/**
• 管理员注册界面
*/
@RequestMapping(“/mimaPageUptate”)
public String mimaPageUptate(Integer type,Model model) {
//1医生 2 管理员
if(type == 1 ) {
return “doctorRegister”;
return “adminRegister”;
/**
• 医生注册界面
*/
@RequestMapping(“/doctorRegisterPage”)
public String doctorRegister(Model model) {
List
sectionlist2 = null;
Section se = new Section();
se.setType(1);
List
sectionlist = sectionService.selectByExample(se);
if(sectionlist.size() > 0 ) {
//科室详情
Section section = new Section();
section.setPid(sectionlist.get(0).getId());
section.setType(2);
sectionlist2 = sectionService.selectByExample(section);
model.addAttribute(“sectionlist”, sectionlist);
model.addAttribute(“sectionlist2”, sectionlist2);
return “doctorRegister”;
/**
• 管理员注册
*/
@RequestMapping(“/admin_Register”)
public String admin_Register(Admin admin,Model model) {
int insertSelective = adminService.insertSelective(admin);
model.addAttribute(“type”,2);
return “login”;
/**
• 登陆验证
• @return
*/
@RequestMapping(“/verificatio”)
public String verificatio(String username, String password, Integer type, HttpServletRequest request,Model model) {
HttpSession session = request.getSession();
session.setAttribute(“type”,type);
//类型为1是医院 2是管理员
if(type == 1){
Doctor doctor = new Doctor();
doctor.setUsername(username);
doctor.setPasswoed(password);
List doctorlist = doctorService.selectDoctor(doctor);
if(doctorlist.size() <= 0){
model.addAttribute(“message”,“密码错误”);
model.addAttribute(“type”,type);
return “login”;
session.setAttribute(“DOCTOR”,doctorlist.get(0));
return “redirect:/doctor/index”;
if(type == 3){
Patient patient = new Patient();
patient.setUsername(username);
patient.setPassword(password);
List list = patientService.selectPatient(patient);
if(list.size() <= 0) {
model.addAttribute(“message”,“密码错误”);
model.addAttribute(“type”,type);
return “loginByPatient”;
session.setAttribute(“PATIENT”,list.get(0));
return “redirect:/api/doctorList1”;
Admin admin = new Admin();
admin.setUsername(username);
admin.setPassword(password);
List adminlist = adminService.selectAdmin(admin);
if(adminlist.size() <= 0){
model.addAttribute(“message”,“密码错误”);
model.addAttribute(“type”,type);
return “login”;
session.setAttribute(“ADMIN”,adminlist.get(0));
return “redirect:/admin/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 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”);
}else{
map.put(“pan”,“err”);
return map;
//*
• 后台登陆界面
• @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 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 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”;
//*
• 退出登录
• @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;
model.addAttribute(“type”,type);
session.invalidate(); //session销毁
return “behind/login”;
//*
• 管理员修改密码界面
• @return
//
@RequestMapping(“/adminUptatePage”)
public String adminUptatePage(Model model) {
return “behind/admin/adminUptate”;
//*
• 商户修改密码界面
• @return
//
@RequestMapping(“/merchantUptate”)
public String merchantUptate(Model model) {
return “behind/merchant/merchantUptate”;
*/