基于JavaWeb的四季青敬老院系统的设计与实现

140 篇文章 15 订阅
139 篇文章 2 订阅

项目描述

临近学期结束,还是毕业设计,你还在做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;
其它软件:截图工具、常用浏览器;

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿麦小七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值