项目编号:BS-XX-149
一,项目简介
本项目基于Springboot+Mybatis开发实现一个儿童留守管理系统,主要为农村留守儿童做一个保障,进行关爱和关心。系统的用户主要有两个角色:管理员和社区工作人员
管理员:
- 管理员管理
- 留守儿童管理
- 社区工作人员管理
- 审核管理:人员注册审核、账户注销审核、删除儿童信息审核 审核结果发送到人员注册时的邮箱中
- 信息反馈
- 系统公告管理
- 信息反馈管理
- 信息统计
社区工作人员:
- 账户注册
- 留守儿童管理
- 信息反馈
- 信息统计
二,环境介绍
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
后台开发技术:Springboot+Mybatis 邮件发送通知
前台开发技术:BootStrap+Jquery+Echart
三,系统展示
管理员
首页统计及公告查看
管理员管理
留守儿童管理
社区工作人员管理
注册审核
账户注销审核
删除儿童审核
系统公告
信息反馈管理
社区工作人员
登陆管理首页
留守儿童管理
信息反馈
个人中心
账户管理
四,核心代码展示
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技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对社区留守儿童帮扶系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现社区留守儿童帮扶系统和部署运行使用它。