基于JavaWeb的四季青敬老院系统的设计与实现
项目描述
临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给在家介绍一篇基于JavaWeb的四季青敬老院系统的设计与实现。
功能需求
本次开发的系统主要分为前后端,根据业务划分为用户登录注册、机构养老模块、家政服务、医护模块以及系统言论管理等功能,基本流程以用户登录前端系统选择需要的服务进行申请预约,管理员在后台进行审核,系统根据操作记录每个订单的数据。网站也是一个门户网站,根据养老院的需求,为解决养老问题,社会性服务问题以及就网络带来的优越性开发一款基于Java Web的养老信息服务系统。
具备以下功能:
网站前端分为五大模块:即登录注册、网站首页、管理机构、居家养老管理、留言评价等。
网站后台管理分为模块:即管理员登录、用户管理、言论管理、机构管理、家政服务、护理人员的管理、以及网站的基础配置信息等。
系统功能模块框架图
部分效果图
首页
机构界面
家政服务
个人信息
用户管理界面:
机构管理
网站言论
医护管理界面
用户留言
数据库设计
系统中用到了15张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示。
(1)用户信息表
(2)机构信息表
(3)参加活动信息表
(4)医护记录信息表
(5)用户留言信息表
部分代码
/**
* 跳转到登录界面
* @return
*/
@RequestMapping(value = "/toLogin")
public String tologinPage(RedirectAttributesModelMap modelMap) {
Map msg = modelMap.asMap();
return "/demo/system/login";
}
@RequestMapping(value = "/")
public String toIndex(){
return "/demo/system/login";
}
/**
* 跳转到首页
*/
@RequestMapping(value = "/toindexPage")
public String toindexPage(HttpServletRequest request, Model model){
HttpSession session =request.getSession();
XydManageAccount xydManageAccount= (XydManageAccount) session.getAttribute("user");
model.addAttribute("id", xydManageAccount.getId());
model.addAttribute("account", xydManageAccount);
return "/demo/system/indexPage";
}
/**
* 登录请求
*/
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ResponseBody
public Map login(Model model, @RequestParam Map<String, String> params, HttpServletRequest request) {
HttpSession session =request.getSession();
Map<String, Object> resutMap = new HashMap();
String account = params.get("username");
String password = params.get("password");
if (IsObjectNullUtils.is(account)|| IsObjectNullUtils.is(password)){
resutMap.put("msg", "用户名或密码不能为空!");
resutMap.put("code", ResultStant.RESULT_CODE_ERROR);
return resutMap;
}
List<XydManageAccount> list = xydManageAccountService.selectByAccount(account);
if (!IsObjectNullUtils.is(list) && list.size() == 1){
XydManageAccount xydManageAccount = list.get(0);
try {
if (!MyMD5Util.validPassword(password, xydManageAccount.getPassword())){
session.setAttribute("user", xydManageAccount);
//信息正确、登录
resutMap.put("code", ResultStant.RESULT_CODE_SUCCESS);
resutMap.put("msg", "登录成功");
xydManageAccount.setPassword(null);
resutMap.put("data", xydManageAccount);
}else{
resutMap.put("msg", "用户名错误或密码错误,请重新登录!");
resutMap.put("code", ResultStant.RESULT_CODE_ERROR);
}
} catch (Exception e) {
e.printStackTrace();
resutMap.put("msg", "系统开小差了,");
resutMap.put("code", ResultStant.RESULT_CODE_SERVICE);
}
}else {
resutMap.put("msg", "账号不存在!!");
resutMap.put("code", ResultStant.RESULT_CODE_ERROR);
}
return resutMap;
}
/**
* 退出登录
*/
@RequestMapping(value = "/loginOut", method = RequestMethod.GET)
public String outlogin( HttpServletRequest request, Model m) {
HttpSession session =request.getSession();
if (session != null){
deleteSession(request);
return "redirect:/manage/account/toLogin";
}else {
m.addAttribute("msg", "退出异常!");
m.addAttribute("code", ResultStant.RESULT_CODE_ERROR);
return "redirect:/manage/user/residentList";
}
}
/**
* 修改密码
* @param accountId
* @return
*/
@RequestMapping(value = "/updatePassword", method = RequestMethod.POST)
@ResponseBody
public Map updatePassword(@RequestParam(required = false, value = "")String oldPassword,
@RequestParam(required = false, value = "")String newPassword,
@RequestParam(required = false, value = "")Integer accountId,
HttpServletRequest request){
Map<String, Object> resultMap = new HashMap<>();
if (accountId != null){
//获取数据
XydManageAccount xydManageAccount = xydManageAccountService.selectByPrimaryKey(accountId);
if (!IsObjectNullUtils.is(xydManageAccount)){
try {
if (!MyMD5Util.validPassword(oldPassword, xydManageAccount.getPassword())){
resultMap.put("code", ResultStant.RESULT_CODE_ERROR);
resultMap.put("msg", "旧密码不正确,请重新输入!");
return resultMap;
}
xydManageAccount.setPassword(MyMD5Util.getEncryptedPwd(newPassword));
} catch (Exception e) {
e.printStackTrace();
}
if (xydManageAccountService.updateByPrimaryKeySelective(xydManageAccount) > 0){
//密码修改成功后更新session中的user对象
HttpSession session = request.getSession();
session.setAttribute("user", xydManageAccount);
resultMap.put("code", ResultStant.RESULT_CODE_SUCCESS);
resultMap.put("msg", "密码修改成功!");
}else {
resultMap.put("code", ResultStant.RESULT_CODE_UNUSUAL);
resultMap.put("msg", "操作异常!");
}
}else {
resultMap.put("code", ResultStant.RESULT_CODE_LOSE);
resultMap.put("msg", "无法获取相关信息,请稍后重试!");
}
}else {
resultMap.put("code", ResultStant.RESULT_CODE_LOSE);
resultMap.put("msg", "无法获取相关信息,请稍后重试!");
}
return resultMap;
}
/**
* 跳转到留言板
* @return
*/
@RequestMapping(value = "/toBackpage")
public String toBackpage() {
return "/demo/system/versionList";
}
/**
* 获取留言板列表
* @return
*/
@RequestMapping(value = "/getbackList.ajax")
@ResponseBody
public DataTableReturnData getbackList(@RequestParam Map<String, String> params) {
DataTableReturnData<XydContact> dataTableReturnData = new DataTableReturnData();
int pageNum = getPageNum(params.get("start"), params.get("length"));
int pageSize=getPageSize(params.get("length"));
GenericQueryParam queryParam = new GenericQueryParam(pageNum, pageSize);
if (!IsObjectNullUtils.is(params.get("sno"))) {
queryParam.fill("sno", params.get("sno"));
}
queryParam.fill("states", "1");
int count = xydForumService.selectContactcount(queryParam);
List<XydContact> xydContactList = xydForumService.selectByParamList(queryParam);
dataTableReturnData.setData(xydContactList);
dataTableReturnData.setDraw(getDraw(params.get("draw")));
dataTableReturnData.setMsg("查询成功");
dataTableReturnData.setStatus(ResultStant.RESULT_CODE_SUCCESS);
dataTableReturnData.setRecordsFiltered(count);
dataTableReturnData.setRecordsTotal(count);
return dataTableReturnData;
}
安装部署需求
IDEA运行启动
系统测试设计
功能测试主要包括五项内容:适用性、准确性、可操作性、依从性、安全性。
用户登录入住机构测试
本项目用到的技术和框架
1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL
4.框架:springboot+Mybatis+Bootstrap
本项目中的关键点
此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。
环境工具
开发工具 Eclipse/IDEA
语言 JDK1.8 、JSP、springboot
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows;
其它软件:截图工具、常用浏览器;