当前位置: 首页 > article >正文

基于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;
其它软件:截图工具、常用浏览器;


http://www.kler.cn/a/397506.html

相关文章:

  • 整数唯一分解定理
  • 初识ElasticSearch
  • 动态内存管理(c语言)
  • Odoo :一款免费开源的日化行业ERP管理系统
  • 相机光学(四十四)——ALL-PD和PDAF
  • JSON.stringify的应用说明
  • MongoDB聚合管道数组操作
  • 集群搭建高可用
  • IPv6路由基础
  • Ubuntu24.04挂载磁盘
  • Docker实践与应用举例:构建高效开发与部署环境
  • __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined
  • Spring Boot 集成 Kettle
  • 计算机毕业设计Hadoop+大模型空气质量预测 空气质量可视化 空气质量分析 空气质量爬虫 Spark 机器学习 深度学习 Django 大模型
  • 【网页设计】HTML5 和 CSS3 提高
  • web——upload-labs——第二关
  • Linux应用层学习——Day2(文件IO)
  • 【青牛科技】D54123 漏电保护电路介绍及应用
  • 刘艳兵-DBA037-在ASM实例中,如下哪个参数是必须的?
  • git没有识别出大写字母改成小写重命名的文件目录
  • C++(Qt)软件调试---内存分析工具Heob(26)
  • 借助 Pause 容器调试 Pod
  • 【微软:多模态基础模型】(3)视觉生成
  • docker ce 阿里云Linux安装
  • 类与对象;
  • 赋予孩子光明未来:孤独症自闭症干预机构的专业治疗