基于Springboot实现留守儿童管理系统

简介: 基于Springboot实现留守儿童管理系统

项目编号:BS-XX-149

一,项目简介


本项目基于Springboot+Mybatis开发实现一个儿童留守管理系统,主要为农村留守儿童做一个保障,进行关爱和关心。系统的用户主要有两个角色:管理员和社区工作人员

管理员:

  1. 管理员管理
  2. 留守儿童管理
  3. 社区工作人员管理
  4. 审核管理:人员注册审核、账户注销审核、删除儿童信息审核 审核结果发送到人员注册时的邮箱中
  5. 信息反馈
  6. 系统公告管理
  1. 信息反馈管理
  2. 信息统计

社区工作人员:

  1. 账户注册
  2. 留守儿童管理
  3. 信息反馈
  4. 信息统计

二,环境介绍


语言环境:Java:  jdk1.8


数据库:Mysql: mysql5.7


应用服务器:Tomcat:  tomcat8.5.31


开发工具:IDEA或eclipse


后台开发技术:Springboot+Mybatis   邮件发送通知


前台开发技术:BootStrap+Jquery+Echart

三,系统展示


管理员

image.png

首页统计及公告查看

image.png

管理员管理

image.png

留守儿童管理

image.png

社区工作人员管理

image.png

注册审核

image.png

账户注销审核

image.png

删除儿童审核

image.png

系统公告

image.png

信息反馈管理

image.png

社区工作人员

image.png

登陆管理首页

image.png

留守儿童管理

image.png

信息反馈

image.png

个人中心

image.png

账户管理

image.png

四,核心代码展示


package com.wj2y.lbcmsystem.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wj2y.lbcmsystem.mapper.RoleMapper;
import com.wj2y.lbcmsystem.mapper.UserMapper;
import com.wj2y.lbcmsystem.pojo.Role;
import com.wj2y.lbcmsystem.pojo.User;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.lang.reflect.Array;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * @author wj2y
 * @date 2022-01-06 15:49
 * @Version 1.0
 */
@Controller
public class AdminController {
    @Autowired
    UserMapper userMapper;
    @Autowired
    RoleMapper roleMapper;
    @RequestMapping("/adminList")
    public String adminList(Model model,@RequestParam(defaultValue = "1") Integer startPage,
                            @RequestParam(defaultValue = "10") Integer pageSize){
        PageHelper.startPage(startPage, pageSize);
        List<User> users = userMapper.queryUserList();
        PageInfo<User> usersPageInfo = new PageInfo<>(users);
        model.addAttribute("usersPageInfo", usersPageInfo);
        model.addAttribute("users",users);
        return "admin/adminList";
    }
    @RequestMapping("/searchUser")
    public String searchUser(String userName, Model model, @RequestParam(defaultValue = "1") Integer startPage,
                             @RequestParam(defaultValue = "10") Integer pageSize, HttpSession session){
        PageHelper.startPage(startPage, pageSize);
        List<User> users = userMapper.queryListUserByUserName(userName);
        PageInfo<User> usersPageInfo = new PageInfo<>(users);
        session.setAttribute("userName",userName);
        model.addAttribute("usersPageInfo", usersPageInfo);
        model.addAttribute("users",users);
        return "admin/adminSearchList";
    }
    @RequestMapping("/toAdminAdd")
    public String toAdminAdd(){
        return "admin/adminAdd";
    }
    @RequestMapping("/adminAdd")
    @ResponseBody
    public String adminAdd(String name, String username, String password,  String email, String tel, String role) {
        String msg = "";
        User user1 = userMapper.queryUserByUserName(username.replace(" ",""));
        if (StringUtils.isBlank(username) || username.equals("")){
            msg = "请输入用户名";
            return msg;
        }
        if (StringUtils.isBlank(name) || name.equals("")){
            msg = "请输入姓名";
            return msg;
        }
        if (StringUtils.isBlank(password) || password.equals("")){
            msg = "请输入密码";
            return msg;
        }
        if (StringUtils.isBlank(email) || email.equals("")){
            msg = "请输入邮箱";
            return msg;
        }
        if (StringUtils.isBlank(tel) || tel.equals("")){
            msg = "请输入电话号码";
            return msg;
        }
        if (user1 != null && !username.equals("")){
            msg = "用户名已存在,请重新输入";
            return msg;
        }
        String regEx4 = "^[A-Za-z0-9]+$";
        if (!username.matches(regEx4)){
            msg = "用户名只能由字母和数字组成";
            return msg;
        }
        String regEx3 = "^[\u4e00-\u9fa5]{0,6}$";
        if (!name.matches(regEx3)){
            msg = "姓名只能由汉字组成";
            return msg;
        }
        String regEx2 = "^[A-Za-z0-9]+$";
        if (!password.matches(regEx2)){
            msg = "密码只能由数字和字母组成";
            return msg;
        }
        String regEx1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
        Pattern p = Pattern.compile(regEx1);
        Matcher m = p.matcher(email);
        if (!m.matches() && !email.equals("")){
            msg = "邮箱格式错误,请重新输入";
            return msg;
        }
        String REG_EXP = "^([0-9]{3}-?[0-9]{8}|[0-9]{4}-?[0-9]{7})$";
        if (!tel.matches(REG_EXP) && !tel.equals("")){
            msg = "手机号码错误,请重新输入";
            return msg;
        }
        else {
            msg = "OK";
            User user = new User();
            user.setName(name.replace(" ",""));
            user.setUserName(username.replace(" ",""));
            user.setPassWord(password);
            user.setRole(role);
            user.setEmail(email);
            user.setTel(tel);
            SimpleDateFormat sft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date createTime = new Date();
            String time = sft.format(createTime);
            user.setCreateTime(time);
            //管理员添加账号直接通过审核 状态码设置为 1
            String examineStatus = "1";
            user.setExamineStatus(examineStatus);
            userMapper.addUser(user);
            return msg;
        }
    }
    @RequestMapping("/toAdminEdit/{id}")
    public String toAdminEdit(@PathVariable("id") Integer id, Model model){
        User user = userMapper.queryUserById(id);
        List<Role> roles = roleMapper.queryAll();
        model.addAttribute("roles",roles);
        model.addAttribute("user",user);
        return "admin/adminEdit";
    }
    @RequestMapping("/adminEdit")
    @ResponseBody
    public String adminEdit(Integer id, String name, String passWord,
                             String email, String tel, String role){
        String msg = "";
        if (StringUtils.isBlank(name) || name.equals("")){
            msg = "请输入姓名";
            return msg;
        }
        if (StringUtils.isBlank(passWord) || passWord.equals("")){
            msg = "请输入密码";
            return msg;
        }
        if (StringUtils.isBlank(email) || email.equals("")){
            msg = "请输入邮箱";
            return msg;
        }
        if (StringUtils.isBlank(tel) || tel.equals("")){
            msg = "请输入电话号码";
            return msg;
        }
        String regEx3 = "^[\u4e00-\u9fa5]{0,6}$";
        if (!name.matches(regEx3)){
            msg = "姓名只能由汉字组成";
            return msg;
        }
        String regEx2 = "^[A-Za-z0-9]+$";
        if (!passWord.matches(regEx2)){
            msg = "密码只能由数字和字母组成";
            return msg;
        }
        String regEx1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
        Pattern p = Pattern.compile(regEx1);
        Matcher m = p.matcher(email);
        if (!m.matches() && !email.equals("")){
            msg = "邮箱格式错误,请重新输入";
            return msg;
        }
        String REG_EXP = "^([0-9]{3}-?[0-9]{8}|[0-9]{4}-?[0-9]{7})$";
        if (!tel.matches(REG_EXP) && !tel.equals("")){
            msg = "手机号码错误,请重新输入";
            return msg;
        }
        else {
            userMapper.updateUserById(id,name,passWord,email,tel,role);
            msg = "OK";
            return msg;
        }
    }
    @RequestMapping("/adminDelete")
    @ResponseBody
    public String adminDelete(Integer id, Model model){
        String msg = "";
        try {
            userMapper.delUserById(id);
            msg = "OK";
            return msg;
        }catch (Exception e){
            msg = "删除失败";
            return msg;
        }
    }
    @RequestMapping("/enableUser")
    @ResponseBody
    public String enableUser( Integer id, Model model){
        String msg = "";
        try {
            userMapper.enableUserById(id);
            msg = "OK";
            return msg;
        }catch (Exception e){
            msg = "启用失败";
            return msg;
        }
    }
    @RequestMapping("/disableUser")
    @ResponseBody
    public String disableUser( Integer id, Model model){
        String msg = "";
        try {
            userMapper.disableUserById(id);
            msg = "OK";
            return msg;
        }catch (Exception e){
            msg = "禁用失败";
            return msg;
        }
    }
    //初始化密码
    @RequestMapping("/initializePwd")
    @ResponseBody
    public String initializePwd( Integer id, Model model){
        String msg = "";
        try {
            userMapper.initializePwdById(id);
            msg = "OK";
            return msg;
        }catch (Exception e){
            msg = "删除失败";
            return msg;
        }
    }
}
package com.wj2y.lbcmsystem.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wj2y.lbcmsystem.mapper.ChildrenMapper;
import com.wj2y.lbcmsystem.mapper.ExamineMapper;
import com.wj2y.lbcmsystem.mapper.UserMapper;
import com.wj2y.lbcmsystem.pojo.Children;
import com.wj2y.lbcmsystem.pojo.Delchildren;
import com.wj2y.lbcmsystem.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
 * @author znz
 * @date 2022-01-07 15:00
 * @Version 1.0
 */
@Controller
public class ChildrenController {
    @Autowired
    ChildrenMapper childrenMapper;
    @Autowired
    UserMapper userMapper;
    @Autowired
    ExamineMapper examineMapper;
    @RequestMapping("/childrenList")
    public String childrenList(Model model, @RequestParam(defaultValue = "1") Integer startPage,
                               @RequestParam(defaultValue = "10") Integer pageSize){
        PageHelper.startPage(startPage, pageSize);
        List<Children> childrens = childrenMapper.queryChildrenList();
        PageInfo<Children> childrensPageInfo = new PageInfo<>(childrens);
        model.addAttribute("childrensPageInfo", childrensPageInfo);
        model.addAttribute("childrens",childrens);
        return "children/childrenList";
    }
    @RequestMapping("/searchChildren")
    public String searchChildren(Model model, @RequestParam(defaultValue = "1") Integer startPage,
                                 @RequestParam(defaultValue = "10") Integer pageSize, String name, HttpSession session){
        PageHelper.startPage(startPage, pageSize);
        List<Children> childrens = childrenMapper.queryListChildrenByName(name);
        PageInfo<Children> childrensPageInfo = new PageInfo<>(childrens);
        session.setAttribute("name",name);
        model.addAttribute("childrensPageInfo", childrensPageInfo);
        model.addAttribute("childrens",childrens);
        return "children/childrenSearchList";
    }
    @RequestMapping("/childrenRecentlyList")
    public String childrenRecentlyList(){
        return "children/childrenRecentlyList";
    }
    @RequestMapping("/toChildrenAdd")
    public String tochildrenAdd(){
        return "children/childrenAdd";
    }
    @RequestMapping("/childrenAdd")
    @ResponseBody
    public String childrenAdd(Children children) {
        String msg = "";
        SimpleDateFormat sft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date createTime = new Date();
        String time = sft.format(createTime);
        children.setCreateTime(time);
        children.setDeleteStatus(0);
        try {
            childrenMapper.addChildren(children);
            msg = "OK";
            return msg;
        }catch (Exception e){
            msg = "新增失败";
            return msg;
        }
    }
    @RequestMapping("/childrenLookInfo/{id}")
    public String childrenLookInfo(@PathVariable("id") Integer id, Model model){
        Children children = childrenMapper.queryChildrenById(id);
        model.addAttribute("children",children);
        return "children/childrenLookInfo";
    }
    @RequestMapping("/toChildrenEdit/{id}")
    public String toChildrenEdit(@PathVariable("id") Integer id, Model model){
        Children children = childrenMapper.queryChildrenById(id);
        model.addAttribute("children",children);
        return "children/childrenEdit";
    }
    @RequestMapping("/childrenEdit")
    @ResponseBody
    public String childrenEdit(String name,Integer id,Integer age,String phone,String birthday,String school,String address,
                               String guardian,String guardianPhone,String healthCondition,Integer health
            ,Integer familyStatus){
        String msg = "";
        try{
            childrenMapper.updateChildrenById(id,name, phone,birthday, age,school, address
                    ,guardian, guardianPhone,healthCondition, health,familyStatus);
            msg = "OK";
            return msg;
        }catch (Exception e){
            System.out.println(e);
            msg = "修改失败";
            return msg;
        }
    }
    @RequestMapping("/childrenDelete")
    @ResponseBody
    public String childrenDelete(Integer id, Model model, String examineUser, Delchildren delchildren,String reason){
        String msg = "";
        try {
            User user = userMapper.queryUserByUserName(examineUser);
            Children children = childrenMapper.queryChildrenById(id);
            //工作人员删除 需要提交给管理员审核
            if (user.getRole().equals("1")){
                Integer deleteStatus = 2;//将删除状态码修改成 2   提交给管理员审核
                childrenMapper.delChildrenById(id,deleteStatus);
                Delchildren delchildren1 = examineMapper.queryDelChildren(id);
                if (delchildren1 != null){
                    msg = "该儿童信息已提交删除申请,请勿重复操作!";
                    return msg;
                }else {
                    delchildren.setDelUser(examineUser);
                    delchildren.setId(children.getId());
                    delchildren.setName(children.getName());
                    delchildren.setPhone(children.getPhone());
                    delchildren.setBirthday(children.getBirthday());
                    delchildren.setAge(children.getAge());
                    delchildren.setSchool(children.getSchool());
                    delchildren.setAddress(children.getAddress());
                    delchildren.setGuardian(children.getGuardian());
                    delchildren.setGuardianPhone(children.getGuardianPhone());
                    delchildren.setHealth(children.getHealth());
                    delchildren.setHealthCondition(children.getHealthCondition());
                    delchildren.setFamilyStatus(children.getFamilyStatus());
                    delchildren.setDeleteStatus(2);
                    delchildren.setReason(reason);
                    SimpleDateFormat sft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    Date createTime = new Date();
                    String time = sft.format(createTime);
                    delchildren.setCreateTime(time);
                    examineMapper.addDelChildren(delchildren);
                    msg = "OK";
                    return msg;
                }
            }else {
                Integer deleteStatus = 1;
                childrenMapper.delChildrenById(id,deleteStatus);
                msg = "OK";
                return msg;
            }
        }catch (Exception e){
            msg = "删除失败";
            return msg;
        }
    }
}

五,项目总结


信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对社区留守儿童帮扶系统等问题,对留守儿童帮扶进行研究分析,然后开发设计出社区留守儿童帮扶系统 以解决问题。


社区留守儿童帮扶系统主要功能模块包括用户管理、留守儿童、帮扶活动、捐献记录、机构捐献,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用springboot框架、Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对社区留守儿童帮扶系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现社区留守儿童帮扶系统和部署运行使用它。

相关文章
|
30天前
|
安全 前端开发 Java
基于springboot的微信公众号管理系统(支持多公众号接入)
基于springboot的微信公众号管理系统(支持多公众号接入)
34 2
|
1月前
|
存储 安全 前端开发
基于springboot的流浪动物救助管理系统
基于springboot的流浪动物救助管理系统
|
1月前
|
存储 Java 关系型数据库
基于springboot的学生管理系统
基于springboot的学生管理系统
|
1月前
|
存储 前端开发 Java
基于springboot的助农管理系统的设计与实现
基于springboot的助农管理系统的设计与实现
|
9天前
|
JavaScript 前端开发 Java
Springboot+vue地方废品回收机构管理系统
Spring Boot和Vue.js结合打造Web应用。Spring Boot简化企业级应用开发,Vue.js专注用户界面。示例展示了一个简单的废品回收系统,包含用户管理、废品分类和回收记录模块。后端提供获取废品分类的API,前端使用Vue.js和Axios展示分类列表。实际项目需扩展登录、权限等更多功能。
20 7
|
9天前
|
前端开发 JavaScript Java
Springboot+vue的医患档案管理系统
这是一个医患档案管理系统,包含用户管理、病历管理和预约管理模块。示例展示了一个Spring Boot后端接口,用于获取所有病历信息,以及一个Vue.js前端,使用Axios调用该接口显示病历列表。实际项目需考虑登录、权限及病历CRUD功能,可按需求和技术栈扩展。
26 7
|
16天前
|
JavaScript Java 关系型数据库
基于 java + Springboot + vue +mysql 大学生实习管理系统(含源码)
本文档介绍了基于Springboot的实习管理系统的设计与实现。系统采用B/S架构,旨在解决实习管理中的人工管理问题,提高效率。系统特点包括对用户输入的验证和数据安全性保障。功能涵盖首页、个人中心、班级管理、学生管理、教师管理、实习单位管理、实习作业管理、教师评分管理、单位成绩管理和系统管理等。用户分为管理员、教师和学生,各自有不同的操作权限。
|
22天前
|
存储 监控 NoSQL
SpringBoot 后台管理系统
SpringBoot 后台管理系统
8 0
|
1月前
|
JavaScript 安全 Java
Spring Boot 和 Vue.js 实现的前后端分离的用户权限管理系统
Spring Boot 和 Vue.js 实现的前后端分离的用户权限管理系统
52 0
|
1月前
|
存储 安全 Java
基于springboot的足球俱乐部管理系统的设计与实现
基于springboot的足球俱乐部管理系统的设计与实现