Spring Boot版蓝天幼儿园管理系统能否作为新手实践利器?

2026-05-22 10:472阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1911个文字,预计阅读时间需要8分钟。

Spring Boot版蓝天幼儿园管理系统能否作为新手实践利器?

项目介绍:蓝天幼儿园管理系统,分为三种角色:管理员、家长、教师。管理员角色具备以下功能:系统管理:用户管理、页面管理、角色管理;校园管理:老师管理、资产管理、物资管理。

项目介绍

蓝天幼儿园管理系统,共分为三种角色:

  • 管理员
  • 家长
  • 教师

管理员角色具有功能:

  • 系统管理:用户管理、页面管理、角色管理
  • 校园管理:老师管理、工资管理、物资管理、菜谱管理、班级管理
  • 班级管理:学生管理、公告管理、课程管理
  • 考勤管理:老师考勤、学生考勤、老师考勤统计、学生考勤统计、签到签退
技术栈

1、Springboot

Spring Boot 基础就不介绍了,推荐下这个实战教程:github.com/javastacks/spring-boot-best-practice

2、html+thymeleaf

环境需要
  1. 运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
  2. IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
  3. tomcat环境:Tomcat 7.x,8.x,9.x版本均可
  4. 硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
  5. 是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
  6. 数据库:MySql 8.0版本;
使用说明
  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
  2. 将项目中yml配置文件中的数据库配置改为自己的配置
  3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,
  4. 运行项目,输入localhost:8081 登录
  5. 管理员账户admin 密码123456
  6. 教师账号wangjianlin 密码123456

Spring Boot版蓝天幼儿园管理系统能否作为新手实践利器?

代码 用户管理控制层:

@Controller @RequestMapping("admin/system/user") public class UserController { @Autowired UserService userService; @Autowired RoleService roleService; @Autowired UploadService uploadService; @RequestMapping("list") @SysLog("跳转系统用户列表页面") public String list(){ return "admin/user/list"; } @RequiresPermissions("sys:user:list") @PostMapping("list") @ResponseBody public PageData<User> list(@RequestParam(value = "page",defaultValue = "1")Integer page, @RequestParam(value = "limit",defaultValue = "10")Integer limit, ServletRequest request){ Map map = WebUtils.getParametersStartingWith(request, "s_"); PageData<User> userPageData = new PageData<>(); QueryWrapper<User> userWrapper = new QueryWrapper<>(); if(!map.isEmpty()){ String type = (String) map.get("type"); if(StringUtils.isNotBlank(type)) { userWrapper.eq("is_admin", "admin".equals(type) ? true : false); } String keys = (String) map.get("key"); if(StringUtils.isNotBlank(keys)) { userWrapper.and(wrapper -> wrapper.like("login_name", keys).or().like("tel", keys).or().like("email", keys)); } } IPage<User> userPage = userService.page(new Page<>(page,limit),userWrapper); userPageData.setCount(userPage.getTotal()); userPageData.setData(userPage.getRecords()); return userPageData; } @RequestMapping("add") public String add(ModelMap modelMap){ List<Role> roleList = roleService.selectAll(); modelMap.put("roleList",roleList); return "admin/user/add"; } @RequiresPermissions("sys:user:add") @PostMapping("add") @ResponseBody @SysLog("保存新增系统用户数据") public ResponseEntity add(@RequestBody User user){ if(StringUtils.isBlank(user.getLoginName())){ return ResponseEntity.failure("登录名不能为空"); } if(user.getRoleLists() == null || user.getRoleLists().size() == 0){ return ResponseEntity.failure("用户角色至少选择一个"); } if(userService.userCount(user.getLoginName())>0){ return ResponseEntity.failure("登录名称已经存在"); } // if(StringUtils.isNotBlank(user.getEmail())){ // if(userService.userCount(user.getEmail())>0){ // return ResponseEntity.failure("该邮箱已被使用"); // } // } // if(StringUtils.isNoneBlank(user.getTel())){ // if(userService.userCount(user.getTel())>0){ // return ResponseEntity.failure("该手机号已被绑定"); // } // } //设置默认密码 if(StringUtils.isBlank(user.getPassword())){ user.setPassword(Constants.DEFAULT_PASSWORD); } userService.saveUser(user); if(StringUtils.isBlank(user.getId())){ return ResponseEntity.failure("保存用户信息出错"); } //保存用户角色关系 userService.saveUserRoles(user.getId(),user.getRoleLists()); return ResponseEntity.success("操作成功"); } @RequestMapping("edit") public String edit(String id,ModelMap modelMap){ User user = userService.findUserById(id); String roleIds = ""; if(user != null) { roleIds = user.getRoleLists().stream().map(role -> role.getId()).collect(Collectors.joining(",")); } List<Role> roleList = roleService.selectAll(); modelMap.put("localuser",user); modelMap.put("roleIds",roleIds); modelMap.put("roleList",roleList); return "admin/user/edit"; } @RequiresPermissions("sys:user:edit") @PostMapping("edit") @ResponseBody @SysLog("保存系统用户编辑数据") public ResponseEntity edit(@RequestBody User user){ if(StringUtils.isBlank(user.getId())){ return ResponseEntity.failure("用户ID不能为空"); } if(StringUtils.isBlank(user.getLoginName())){ return ResponseEntity.failure("登录名不能为空"); } if(user.getRoleLists() == null || user.getRoleLists().size() == 0){ return ResponseEntity.failure("用户角色至少选择一个"); } User oldUser = userService.findUserById(user.getId()); if(StringUtils.isNotBlank(user.getEmail())){ if(!user.getEmail().equals(oldUser.getEmail())){ if(userService.userCount(user.getEmail())>0){ return ResponseEntity.failure("该邮箱已被使用"); } } } if(StringUtils.isNotBlank(user.getLoginName())){ if(!user.getLoginName().equals(oldUser.getLoginName())) { if (userService.userCount(user.getLoginName()) > 0) { return ResponseEntity.failure("该登录名已存在"); } } } if(StringUtils.isNotBlank(user.getTel())){ if(!user.getTel().equals(oldUser.getTel())) { if (userService.userCount(user.getTel()) > 0) { return ResponseEntity.failure("该手机号已经被绑定"); } } } user.setIcon(oldUser.getIcon()); userService.updateUser(user); if(StringUtils.isBlank(user.getId())){ return ResponseEntity.failure("保存用户信息出错"); } userService.saveUserRoles(user.getId(),user.getRoleLists()); return ResponseEntity.success("操作成功"); } @RequiresPermissions("sys:user:lock") @PostMapping("lock") @ResponseBody @SysLog("锁定或开启系统用户") public ResponseEntity lock(@RequestParam(value = "id",required = false)String id){ if(StringUtils.isBlank(id)){ return ResponseEntity.failure("参数错误"); } User user = userService.getById(id); if(user == null){ return ResponseEntity.failure("用户不存在"); } userService.lockUser(user); return ResponseEntity.success("操作成功"); } @RequiresPermissions("sys:user:delete") @PostMapping("delete") @ResponseBody @SysLog("删除系统用户数据(单个)") public ResponseEntity delete(@RequestParam(value = "id",required = false)String id){ if(StringUtils.isBlank(id)){ return ResponseEntity.failure("参数错误"); } User user = userService.getById(id); if(user == null){ return ResponseEntity.failure("用户不存在"); }else if(user.getAdminUser()) { return ResponseEntity.failure("不能删除后台用户"); } userService.deleteUser(user); return ResponseEntity.success("操作成功"); } @RequiresPermissions("sys:user:delete") @PostMapping("deleteSome") @ResponseBody @SysLog("删除系统用户数据(多个)") public ResponseEntity deleteSome(@RequestBody List<User> users){ if(users == null || users.size()==0){ return ResponseEntity.failure("请选择需要删除的用户"); } for (User u : users){ if(u.getAdminUser()){ return ResponseEntity.failure("不能删除超级管理员"); }else{ userService.deleteUser(u); } } return ResponseEntity.success("操作成功"); } @RequestMapping("userinfo") public String toEditMyInfo(ModelMap modelMap){ String userId = MySysUser.id(); User user = userService.findUserById(userId); modelMap.put("userinfo",user); modelMap.put("userRole",user.getRoleLists()); return "admin/user/userInfo"; } @SysLog("系统用户个人信息修改") @PostMapping("saveUserinfo") @ResponseBody public ResponseEntity saveUserInfo(User user){ if(StringUtils.isBlank(user.getId())){ return ResponseEntity.failure("用户ID不能为空"); } if(StringUtils.isBlank(user.getLoginName())){ return ResponseEntity.failure("登录名不能为空"); } User oldUser = userService.findUserById(user.getId()); if(StringUtils.isNotBlank(user.getEmail())){ if(!user.getEmail().equals(oldUser.getEmail())){ if(userService.userCount(user.getEmail())>0){ return ResponseEntity.failure("该邮箱已被使用"); } } } if(StringUtils.isNotBlank(user.getTel())){ if(!user.getTel().equals(oldUser.getTel())) { if (userService.userCount(user.getTel()) > 0) { return ResponseEntity.failure("该手机号已经被绑定"); } } } userService.updateById(user); return ResponseEntity.success("操作成功"); } @RequestMapping("changePassword") public String changePassword(ModelMap modelMap){ modelMap.put("currentUser",userService.getById(MySysUser.id())); return "admin/user/changePassword"; } @CrossOrigin @SysLog("用户修改密码") @PostMapping("changePassword") @ResponseBody public ResponseEntity changePassword(@RequestParam(value = "userName",required = false)String userName, @RequestParam(value = "oldPwd",required = false)String oldPwd, @RequestParam(value = "newPwd",required = false)String newPwd, @RequestParam(value = "confirmPwd",required = false)String confirmPwd){ if(StringUtils.isBlank(oldPwd)){ return ResponseEntity.failure("旧密码不能为空"); } if(StringUtils.isBlank(newPwd)){ return ResponseEntity.failure("新密码不能为空"); } if(StringUtils.isBlank(confirmPwd)){ return ResponseEntity.failure("确认密码不能为空"); } if(!confirmPwd.equals(newPwd)){ return ResponseEntity.failure("确认密码与新密码不一致"); } //小程序修改密码 if(StringUtils.isBlank(userName)){ //PC修改密码 User user = userService.findUserById(MySysUser.id()); byte[] hashPassword = Encodes.sha1(oldPwd.getBytes(), Encodes.SHA1, Encodes.decodeHex(user.getSalt()), Constants.HASH_INTERATIONS); String password = Encodes.encodeHex(hashPassword); if(!user.getPassword().equals(password)){ return ResponseEntity.failure("旧密码错误"); } user.setPassword(newPwd); Encodes.entryptPassword(user); userService.updateById(user); return ResponseEntity.success("操作成功"); }else { //小程序修改密码 User user = userService.findUserByLoginName(userName); byte[] hashPassword = Encodes.sha1(oldPwd.getBytes(), Encodes.SHA1, Encodes.decodeHex(user.getSalt()), Constants.HASH_INTERATIONS); String password = Encodes.encodeHex(hashPassword); if(!user.getPassword().equals(password)){ return ResponseEntity.failure("旧密码错误"); } user.setPassword(newPwd); Encodes.entryptPassword(user); userService.updateById(user); return ResponseEntity.success("操作成功"); } } @SysLog("上传头像") @PostMapping("uploadFace") @ResponseBody public ResponseEntity uploadFile(@RequestParam("icon") MultipartFile file, HttpServletRequest blog.csdn.net/biyesheji250/article/details/120609186

近期热文推荐:

1.1,000+ 道 Java面试题及答案整理(2022最新版)

2.劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

本文共计1911个文字,预计阅读时间需要8分钟。

Spring Boot版蓝天幼儿园管理系统能否作为新手实践利器?

项目介绍:蓝天幼儿园管理系统,分为三种角色:管理员、家长、教师。管理员角色具备以下功能:系统管理:用户管理、页面管理、角色管理;校园管理:老师管理、资产管理、物资管理。

项目介绍

蓝天幼儿园管理系统,共分为三种角色:

  • 管理员
  • 家长
  • 教师

管理员角色具有功能:

  • 系统管理:用户管理、页面管理、角色管理
  • 校园管理:老师管理、工资管理、物资管理、菜谱管理、班级管理
  • 班级管理:学生管理、公告管理、课程管理
  • 考勤管理:老师考勤、学生考勤、老师考勤统计、学生考勤统计、签到签退
技术栈

1、Springboot

Spring Boot 基础就不介绍了,推荐下这个实战教程:github.com/javastacks/spring-boot-best-practice

2、html+thymeleaf

环境需要
  1. 运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
  2. IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
  3. tomcat环境:Tomcat 7.x,8.x,9.x版本均可
  4. 硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
  5. 是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
  6. 数据库:MySql 8.0版本;
使用说明
  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
  2. 将项目中yml配置文件中的数据库配置改为自己的配置
  3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,
  4. 运行项目,输入localhost:8081 登录
  5. 管理员账户admin 密码123456
  6. 教师账号wangjianlin 密码123456

Spring Boot版蓝天幼儿园管理系统能否作为新手实践利器?

代码 用户管理控制层:

@Controller @RequestMapping("admin/system/user") public class UserController { @Autowired UserService userService; @Autowired RoleService roleService; @Autowired UploadService uploadService; @RequestMapping("list") @SysLog("跳转系统用户列表页面") public String list(){ return "admin/user/list"; } @RequiresPermissions("sys:user:list") @PostMapping("list") @ResponseBody public PageData<User> list(@RequestParam(value = "page",defaultValue = "1")Integer page, @RequestParam(value = "limit",defaultValue = "10")Integer limit, ServletRequest request){ Map map = WebUtils.getParametersStartingWith(request, "s_"); PageData<User> userPageData = new PageData<>(); QueryWrapper<User> userWrapper = new QueryWrapper<>(); if(!map.isEmpty()){ String type = (String) map.get("type"); if(StringUtils.isNotBlank(type)) { userWrapper.eq("is_admin", "admin".equals(type) ? true : false); } String keys = (String) map.get("key"); if(StringUtils.isNotBlank(keys)) { userWrapper.and(wrapper -> wrapper.like("login_name", keys).or().like("tel", keys).or().like("email", keys)); } } IPage<User> userPage = userService.page(new Page<>(page,limit),userWrapper); userPageData.setCount(userPage.getTotal()); userPageData.setData(userPage.getRecords()); return userPageData; } @RequestMapping("add") public String add(ModelMap modelMap){ List<Role> roleList = roleService.selectAll(); modelMap.put("roleList",roleList); return "admin/user/add"; } @RequiresPermissions("sys:user:add") @PostMapping("add") @ResponseBody @SysLog("保存新增系统用户数据") public ResponseEntity add(@RequestBody User user){ if(StringUtils.isBlank(user.getLoginName())){ return ResponseEntity.failure("登录名不能为空"); } if(user.getRoleLists() == null || user.getRoleLists().size() == 0){ return ResponseEntity.failure("用户角色至少选择一个"); } if(userService.userCount(user.getLoginName())>0){ return ResponseEntity.failure("登录名称已经存在"); } // if(StringUtils.isNotBlank(user.getEmail())){ // if(userService.userCount(user.getEmail())>0){ // return ResponseEntity.failure("该邮箱已被使用"); // } // } // if(StringUtils.isNoneBlank(user.getTel())){ // if(userService.userCount(user.getTel())>0){ // return ResponseEntity.failure("该手机号已被绑定"); // } // } //设置默认密码 if(StringUtils.isBlank(user.getPassword())){ user.setPassword(Constants.DEFAULT_PASSWORD); } userService.saveUser(user); if(StringUtils.isBlank(user.getId())){ return ResponseEntity.failure("保存用户信息出错"); } //保存用户角色关系 userService.saveUserRoles(user.getId(),user.getRoleLists()); return ResponseEntity.success("操作成功"); } @RequestMapping("edit") public String edit(String id,ModelMap modelMap){ User user = userService.findUserById(id); String roleIds = ""; if(user != null) { roleIds = user.getRoleLists().stream().map(role -> role.getId()).collect(Collectors.joining(",")); } List<Role> roleList = roleService.selectAll(); modelMap.put("localuser",user); modelMap.put("roleIds",roleIds); modelMap.put("roleList",roleList); return "admin/user/edit"; } @RequiresPermissions("sys:user:edit") @PostMapping("edit") @ResponseBody @SysLog("保存系统用户编辑数据") public ResponseEntity edit(@RequestBody User user){ if(StringUtils.isBlank(user.getId())){ return ResponseEntity.failure("用户ID不能为空"); } if(StringUtils.isBlank(user.getLoginName())){ return ResponseEntity.failure("登录名不能为空"); } if(user.getRoleLists() == null || user.getRoleLists().size() == 0){ return ResponseEntity.failure("用户角色至少选择一个"); } User oldUser = userService.findUserById(user.getId()); if(StringUtils.isNotBlank(user.getEmail())){ if(!user.getEmail().equals(oldUser.getEmail())){ if(userService.userCount(user.getEmail())>0){ return ResponseEntity.failure("该邮箱已被使用"); } } } if(StringUtils.isNotBlank(user.getLoginName())){ if(!user.getLoginName().equals(oldUser.getLoginName())) { if (userService.userCount(user.getLoginName()) > 0) { return ResponseEntity.failure("该登录名已存在"); } } } if(StringUtils.isNotBlank(user.getTel())){ if(!user.getTel().equals(oldUser.getTel())) { if (userService.userCount(user.getTel()) > 0) { return ResponseEntity.failure("该手机号已经被绑定"); } } } user.setIcon(oldUser.getIcon()); userService.updateUser(user); if(StringUtils.isBlank(user.getId())){ return ResponseEntity.failure("保存用户信息出错"); } userService.saveUserRoles(user.getId(),user.getRoleLists()); return ResponseEntity.success("操作成功"); } @RequiresPermissions("sys:user:lock") @PostMapping("lock") @ResponseBody @SysLog("锁定或开启系统用户") public ResponseEntity lock(@RequestParam(value = "id",required = false)String id){ if(StringUtils.isBlank(id)){ return ResponseEntity.failure("参数错误"); } User user = userService.getById(id); if(user == null){ return ResponseEntity.failure("用户不存在"); } userService.lockUser(user); return ResponseEntity.success("操作成功"); } @RequiresPermissions("sys:user:delete") @PostMapping("delete") @ResponseBody @SysLog("删除系统用户数据(单个)") public ResponseEntity delete(@RequestParam(value = "id",required = false)String id){ if(StringUtils.isBlank(id)){ return ResponseEntity.failure("参数错误"); } User user = userService.getById(id); if(user == null){ return ResponseEntity.failure("用户不存在"); }else if(user.getAdminUser()) { return ResponseEntity.failure("不能删除后台用户"); } userService.deleteUser(user); return ResponseEntity.success("操作成功"); } @RequiresPermissions("sys:user:delete") @PostMapping("deleteSome") @ResponseBody @SysLog("删除系统用户数据(多个)") public ResponseEntity deleteSome(@RequestBody List<User> users){ if(users == null || users.size()==0){ return ResponseEntity.failure("请选择需要删除的用户"); } for (User u : users){ if(u.getAdminUser()){ return ResponseEntity.failure("不能删除超级管理员"); }else{ userService.deleteUser(u); } } return ResponseEntity.success("操作成功"); } @RequestMapping("userinfo") public String toEditMyInfo(ModelMap modelMap){ String userId = MySysUser.id(); User user = userService.findUserById(userId); modelMap.put("userinfo",user); modelMap.put("userRole",user.getRoleLists()); return "admin/user/userInfo"; } @SysLog("系统用户个人信息修改") @PostMapping("saveUserinfo") @ResponseBody public ResponseEntity saveUserInfo(User user){ if(StringUtils.isBlank(user.getId())){ return ResponseEntity.failure("用户ID不能为空"); } if(StringUtils.isBlank(user.getLoginName())){ return ResponseEntity.failure("登录名不能为空"); } User oldUser = userService.findUserById(user.getId()); if(StringUtils.isNotBlank(user.getEmail())){ if(!user.getEmail().equals(oldUser.getEmail())){ if(userService.userCount(user.getEmail())>0){ return ResponseEntity.failure("该邮箱已被使用"); } } } if(StringUtils.isNotBlank(user.getTel())){ if(!user.getTel().equals(oldUser.getTel())) { if (userService.userCount(user.getTel()) > 0) { return ResponseEntity.failure("该手机号已经被绑定"); } } } userService.updateById(user); return ResponseEntity.success("操作成功"); } @RequestMapping("changePassword") public String changePassword(ModelMap modelMap){ modelMap.put("currentUser",userService.getById(MySysUser.id())); return "admin/user/changePassword"; } @CrossOrigin @SysLog("用户修改密码") @PostMapping("changePassword") @ResponseBody public ResponseEntity changePassword(@RequestParam(value = "userName",required = false)String userName, @RequestParam(value = "oldPwd",required = false)String oldPwd, @RequestParam(value = "newPwd",required = false)String newPwd, @RequestParam(value = "confirmPwd",required = false)String confirmPwd){ if(StringUtils.isBlank(oldPwd)){ return ResponseEntity.failure("旧密码不能为空"); } if(StringUtils.isBlank(newPwd)){ return ResponseEntity.failure("新密码不能为空"); } if(StringUtils.isBlank(confirmPwd)){ return ResponseEntity.failure("确认密码不能为空"); } if(!confirmPwd.equals(newPwd)){ return ResponseEntity.failure("确认密码与新密码不一致"); } //小程序修改密码 if(StringUtils.isBlank(userName)){ //PC修改密码 User user = userService.findUserById(MySysUser.id()); byte[] hashPassword = Encodes.sha1(oldPwd.getBytes(), Encodes.SHA1, Encodes.decodeHex(user.getSalt()), Constants.HASH_INTERATIONS); String password = Encodes.encodeHex(hashPassword); if(!user.getPassword().equals(password)){ return ResponseEntity.failure("旧密码错误"); } user.setPassword(newPwd); Encodes.entryptPassword(user); userService.updateById(user); return ResponseEntity.success("操作成功"); }else { //小程序修改密码 User user = userService.findUserByLoginName(userName); byte[] hashPassword = Encodes.sha1(oldPwd.getBytes(), Encodes.SHA1, Encodes.decodeHex(user.getSalt()), Constants.HASH_INTERATIONS); String password = Encodes.encodeHex(hashPassword); if(!user.getPassword().equals(password)){ return ResponseEntity.failure("旧密码错误"); } user.setPassword(newPwd); Encodes.entryptPassword(user); userService.updateById(user); return ResponseEntity.success("操作成功"); } } @SysLog("上传头像") @PostMapping("uploadFace") @ResponseBody public ResponseEntity uploadFile(@RequestParam("icon") MultipartFile file, HttpServletRequest blog.csdn.net/biyesheji250/article/details/120609186

近期热文推荐:

1.1,000+ 道 Java面试题及答案整理(2022最新版)

2.劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!