基于javaweb+mysql的springboot蓝天幼儿园管理系统(java+springboot+thymeleaf+html+maven+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot蓝天幼儿园管理系统(java+springboot+thymeleaf+html+maven+mysql)
项目介绍
蓝天幼儿园管理系统,共分为三种角色,管理员、家长、教师。
管理员角色具有功能:
系统管理-用户管理、页面管理、角色管理,
校园管理-老师管理、工资管理、物资管理、菜谱管理、班级管理
班级管理-学生管理、公告管理、课程管理
考勤管理-老师考勤、学生考勤、老师考勤统计、学生考勤统计、签到签退
技术栈
-
Springboot
-
html+thymeleaf
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 8.0版本;
使用说明
运行项目,输入localhost:8081 登录
管理员账户admin 密码123456
教师账号wangjianlin 密码123456
noticeService.delNoticeById(Integer.parseInt(id));
}
return "SUCCESS";
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return "ERROR";
}
}
//考勤管理
/**
* Method name: lskq <BR>
* Description: 教师管理页面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/lskq")
public String lskq() {
return "ls/sign";
}
/**
* Method name: getAllSignByLimit <BR>
* Description: 根据条件获取所有教师 <BR>
*
* @param userParameter
* @return Object<BR>
*/
@RequestMapping("/getAllSignByLimit")
@ResponseBody
public Object getAllSignByLimit(Sign signParameter) {
return signService.getAllSignByLimit(signParameter);
}
//打卡
@RequestMapping(value = "/qianDaoTui")
public String qianDaoTui() {
return "ls/daKa";
}
course.setCreateTime(new Date());
try {
courseService.addCourse(course);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
@ResponseBody
@RequestMapping("/delCourse")
public String delCourse(Integer id) {
try {
courseService.delCourse(id);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
}
@Controller
@RequestMapping(value = "/jz")
*
* @param ids
* @return String<BR>
*/
@RequestMapping(value = "delMaterial")
@ResponseBody
@Transactional
public String delMaterial(String[] ids) {
try {
for (String id : ids) {
materialService.delMaterialById(Integer.parseInt(id));
}
return "SUCCESS";
} catch (Exception e) {
logger.error("根据班级id删除异常", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return "ERROR";
}
}
//菜单管理
/**
* Method name: footMG <BR>
* Description: 物资管理页面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/footMG")
public String footMG() {
return "sa/foot";
}
/**
* Method name: getAllFootByLimit <BR>
* Description: 根据条件获取所有教师 <BR>
*
* @param userParameter
* @return Object<BR>
*/
@RequestMapping("/getAllFootByLimit")
@ResponseBody
public Object getAllFootByLimit(Foot foot) {
return footService.getAllFootByLimit(foot);
}
/**
* Method name: addFootPage <BR>
* Description: 增加教师界面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/addFootPage")
public String addFootPage(Integer id, Model model) {
@Controller
@RequestMapping(value = "/jz")
@ResponseBody
public class JiaZhangController {
@Autowired
NoticeService noticeService;
@Autowired
JiaZhangService jiaZhangService;
@Autowired
SignService signService;
@RequestMapping(value = "/notices")
public Object notices() {
List<Notice> notices = new ArrayList<>();
notices = noticeService.getAllNotice();
return JSON.toJSONString(notices);
}
@RequestMapping(value = "/xy")
public Object xy(String userId) {
XiaoYuan xy = new XiaoYuan();
if(userId==null || userId.equals("null")) {
return JSON.toJSONString(xy);
}
//获取当天食物
Foot foot = jiaZhangService.getFoot();
}
/**
* Method name: updateUser <BR>
* Description: 更新用户 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/updateUser")
public String updateUser(User user, String oldId) {
return userService.updateUser(oldId, user);
}
/**
* Method name: delUserPage <BR>
* Description: 已删除用户列表 <BR>
*
* @return String<BR>
*/
@RequestMapping("/delUserPage")
public String delUserPage() {
return "sa/userDelPage";
}
/**
* Method name: recoverUser <BR>
* Description: 恢复用户 <BR>
*
* @param ids
* @return String<BR>
*/
@RequestMapping("/recoverUser")
@ResponseBody
public String recoverUser(String[] ids) {
try {
for (String id : ids) {
userService.recoverUser(id);
}
return "SUCCESS";
} catch (Exception e) {
return "ERROR";
/**
* Method name: login <BR>
* Description: 登录页面 <BR>
*
* @return String login.html<BR>
*/
@RequestMapping(value = "/index")
public String login() {
return "login";
}
/**
* Method name: index <BR>
* Description: 登录页面 <BR>
*
* @return String login.html<BR>
*/
@RequestMapping(value = "/")
public String index(Model model) {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
if (null != user) {
model.addAttribute("user", user);
List<Page> pageList = pageService.getAllRolePageByUserId(user.getUserId());
model.addAttribute("pageList", pageList);
return "index";
} else {
return "login";
}
}
/**
* Method name: main <BR>
* Description: 进入主页面 <BR>
*
* @param model
* @return String<BR>
*/
@RequestMapping(value = "/main")
public String main(Model model) {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
if (null != user) {
return "sa/classesAdd";
}
/**
* Method name: addClasses <BR>
* Description: 班级添加 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/addClasses")
public String addClasses(Classes classes) {
try {
classes.setCreateTime(new Date());
classService.addClasses(classes);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
/**
* Method name: updateClasses <BR>
* Description: 更新班级 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/updateClasses")
public String updateClasses(Classes classes) {
return classService.updateClasses(classes);
}
/**
* Method name: delUser <BR>
* Description: 批量删除班级 <BR>
*
* @param ids
* @return String<BR>
*/
@RequestMapping(value = "delClasses")
@ResponseBody
@Transactional
public String delClasses(String[] ids) {
try {
Date date=new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
String time = formatter.format(date).split(" ")[2];
String time1 = formatter.format(date).split(" ")[1];
String s=PropertyUtil.getConfigureProperties("endTime");
if(time.equals("下午") && time1.compareTo(s)<0) {
sign.setState(1);
}else{
sign.setState(2);
}
sign.setType(2);
sign.setSignIn(date);
sign.setKqrId(user.getUserId());
sign.setKqrType(user.getUserState());
signService.addSign(sign);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
//学生考勤
@RequestMapping(value = "/xskq")
public String xskq() {
return "ls/childSign";
}
/**
* Method name: getAllSignByLimit <BR>
* Description: 根据条件获取所有教师 <BR>
* @param userParameter
* @return Object<BR>
*/
@RequestMapping("/getAllChildSignByLimit")
@ResponseBody
public Object getAllChildSignByLimit(Sign signParameter) {
return signService.getAllChildSignByLimit(signParameter);
}
//所有老师签到的总次数统计
@RequestMapping(value = "/kqtj")
public String kqtj(Model model) {
List<TongJi> ts = signService.getAllTeacherCount();
List<String> names = new ArrayList<>();
List<Integer> zc = new ArrayList<>();
List<Integer> tq = new ArrayList<>();
List<Integer> cd = new ArrayList<>();
for (TongJi tongJi : ts) {
names.add(tongJi.getUserName());
@RequestMapping("/addPage")
@ResponseBody
public Page addPage(Page page) {
return pageService.addPage(page);
}
/**
* Method name: delPageById <BR>
* Description: 根据页面id删除页面 <BR>
*
* @param id
* @return ResultMap<BR>
*/
@RequestMapping("/delPageById")
@ResponseBody
public ResultMap delPageById(Integer id) {
if (null == id) {
return new ResultMap().fail().message("参数错误");
}
return pageService.delPageById(id);
}
/**
* Method name: addRole <BR>
* Description: 增加角色 <BR>
*
* @param name
* @return String<BR>
*/
@RequestMapping("/addRole")
@ResponseBody
public String addRole(String name) {
return roleService.addRole(name);
}
/**
* Method name: delManageRole <BR>
* Description: 根据角色id删除角色 <BR>
*
* @param id
* @return String<BR>
@Controller
@RequestMapping(value = "/sa")
public class SaController {
@Autowired
private PageService pageService;
@Autowired
private RoleService roleService;
@Autowired
private PageRoleService pageRoleService;
@Autowired
private UserRoleService userRoleService;
@Autowired
private UserService userService;
@Autowired
private IExcel2DB excel2db;
@Autowired
private ClassService classService;
@Autowired
private TeaService teaService;
@Autowired
private PayService payService;
@Autowired
private MaterialService materialService;
@Autowired
private FootService footService;
private final Logger logger = LoggerFactory.getLogger(SaController.class);
/**
* Method name: page <BR>
* Description: 跳转到页面设置页面 <BR>
*
* @param model
* @return String<BR>
*/
@RequestMapping("/page")
public String page(Model model) {
List<Page> pageList = pageService.getAllPage();
model.addAttribute("pageList", pageList);
return "sa/page";
}
@RequestMapping(value = "/upsub")
public Object upsub(Children child) {
child.setBirthday(MyUtils.getStringDate(child.getCsrq()));
String result = jiaZhangService.upChild(child);
if(result.equals("1")) {
return "SUCC";
}else {
return "ERR";
}
}
@RequestMapping(value = "/sigin")
public Object sigin(String uid, String type) {
if(uid==null && type==null) {
return "ERR";
}
if(type.equals("1")) {
//签到
Sign sign = new Sign();
sign.setKqrId(uid);
Date date=new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
String time = formatter.format(date).split(" ")[2];
String time1 = formatter.format(date).split(" ")[1];
String s=PropertyUtil.getConfigureProperties("startTime");
if(time.equals("上午") && time1.compareTo(s)>0) {
sign.setState(1);
}else {
sign.setState(3);
}
sign.setType(Integer.parseInt(type));
sign.setKqrType(2);
sign.setSignIn(new Date());
signService.addSign(sign);
}else {
//签退
Sign sign = new Sign();
sign.setKqrId(uid);
Date date=new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
String time = formatter.format(date).split(" ")[2];
}
return "SUCCESS";
} catch (Exception e) {
logger.error("根据班级id删除异常", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return "ERROR";
}
}
//菜单管理
/**
* Method name: footMG <BR>
* Description: 物资管理页面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/footMG")
public String footMG() {
return "sa/foot";
}
/**
* Method name: getAllFootByLimit <BR>
* Description: 根据条件获取所有教师 <BR>
*
* @param userParameter
* @return Object<BR>
*/
@RequestMapping("/getAllFootByLimit")
@ResponseBody
public Object getAllFootByLimit(Foot foot) {
return footService.getAllFootByLimit(foot);
}
/**
* Method name: addFootPage <BR>
* Description: 增加教师界面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/addFootPage")
public String addFootPage(Integer id, Model model) {
model.addAttribute("manageFoot", id);
if (null != id) {
Foot foot = footService.selectByPrimaryKey(id);
model.addAttribute("manageFoot", foot);
}
return "sa/footAdd";
}
/**
* Method name: addFoot <BR>
return layui.fail().message(msg);
}
/**
* Method name: checkUserId <BR>
* Description: 检测用户账号是否存在 <BR>
*
* @param userId
* @return User<BR>
*/
@ResponseBody
@RequestMapping("/checkUserId")
public User checkUserId(String userId) {
return userService.selectByPrimaryKey(userId);
}
/**
* Method name: addUser <BR>
* Description: 用户添加 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/addUser")
public String addUser(User user) {
try {
user.setUserPassword(MD5.md5(user.getUserPassword()));
user.setAccountCreateTime(new Date());
userService.addUser(user);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
/**
* Method name: updateUser <BR>
* Description: 更新用户 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/updateUser")
public String updateUser(User user, String oldId) {
return userService.updateUser(oldId, user);
private PageService pageService;
private final Logger logger = LoggerFactory.getLogger(LoginController.class);
@RequestMapping(value = "/notLogin", method = RequestMethod.GET)
@ResponseBody
public ResultMap notLogin() {
logger.warn("尚未登陆!");
return resultMap.success().message("您尚未登陆!");
}
@RequestMapping(value = "/notRole", method = RequestMethod.GET)
@ResponseBody
public ResultMap notRole() {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
if (user != null) {
logger.info("{}---没有权限!", user.getUserName());
}
return resultMap.success().message("您没有权限!");
}
/**
* Method name: logout <BR>
* Description: 退出登录 <BR>
* @return String<BR>
*/
@RequestMapping(value = "/logout", method = RequestMethod.GET)
public String logout() {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
if (null != user) {
logger.info("{}---退出登录!", user.getUserName());
}
subject.logout();
return "login";
}
/**
* Method name: login <BR>
* Description: 登录验证 <BR>
* Remark: <BR>
*
* @param username 用户名
* @param password 密码
* @return ResultMap<BR>
*/
@RequestMapping("/recoverUser")
@ResponseBody
public String recoverUser(String[] ids) {
try {
for (String id : ids) {
userService.recoverUser(id);
}
return "SUCCESS";
} catch (Exception e) {
return "ERROR";
}
}
//班级管理
/**
* Method name: classesPage <BR>
* Description: 班级管理页面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/classesPage")
public String classesPage() {
return "sa/Classes";
}
/**
* Method name: getAllClassByLimit <BR>
* Description: 根据条件获取所有用户 <BR>
*
* @param userParameter
* @return Object<BR>
*/
@RequestMapping("/getAllClassByLimit")
@ResponseBody
public Object getAllClassByLimit(Classes classParameter) {
return classService.getAllClassByLimit(classParameter);
}
/**
* Method name: addClassesPage <BR>
* Description: 增加班级界面 <BR>
*
/**
* Method name: login <BR>
* Description: 登录页面 <BR>
*
* @return String login.html<BR>
*/
@RequestMapping(value = "/index")
public String login() {
return "login";
}
/**
* Method name: index <BR>
* Description: 登录页面 <BR>
*
* @return String login.html<BR>
*/
@RequestMapping(value = "/")
public String index(Model model) {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
if (null != user) {
model.addAttribute("user", user);
List<Page> pageList = pageService.getAllRolePageByUserId(user.getUserId());
model.addAttribute("pageList", pageList);
return "index";
} else {
return "login";
}
}
/**
* Method name: main <BR>
* Description: 进入主页面 <BR>
*
* @param model
* @return String<BR>
*/
@RequestMapping(value = "/main")
public String main(Model model) {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
if (null != user) {
model.addAttribute("user", user);
} else {
return "login";
model.addAttribute("manageStu", id);
if (null != id) {
Children student = studentService.selectByPrimaryKey(id);
//UserChildren userChild = userChildrenService.selectById(id);
model.addAttribute("manageStu", student);
//model.addAttribute("manageChild", userChild);
UserChildren uc = userChildrenService.selectByUCId(student.getId());
model.addAttribute("uc", uc);
}
List<Classes> classes=classService.selectAllClasses();
model.addAttribute("cla", classes);
List<User> user=userService.selectAllJiazhang();
model.addAttribute("user", user);
return "ls/stuPageAdd";
}
/**
* Method name: addStu <BR>
* Description: 教师添加 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/addStu")
public String addStu(Children student) {
try {
studentService.addStudent(student);
addUserChildren(student);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
public void addUserChildren(Children student) {
UserChildren userChildern = new UserChildren();
userChildern.setChildrenId(student.getId());
userChildern.setUserId(student.getUserId());
* @param roleId
* @param pageIds
* @return String<BR>
*/
@RequestMapping("/addPageRoleByRoleId")
@ResponseBody
public String addPageRoleByRoleId(Integer roleId, Integer[] pageIds) {
if (null == roleId) {
return "ERROR";
}
// 先删除老的权限
boolean flag1 = pageRoleService.delPageRoleByRoleId(roleId);
boolean flag2 = pageRoleService.addPageRoles(roleId, pageIds);
if (flag1 && flag2) {
return "SUCCESS";
}
return "ERROR";
}
/**
* Method name: getAllUserByMap <BR>
* Description: 根据角色查询下面所有的人员/非角色下所有人员 <BR>
*
* @param paramUser
* @return Object<BR>
*/
@RequestMapping("/getAllUserByRoleId")
@ResponseBody
public Object getAllUserByRoleId(Integer roleId, String roleNot, Integer page, Integer limit) {
if (null == roleNot) {
return userService.getAllUserByRoleId(roleId, page, limit);
}
return userService.getAllUserByNotRoleId(roleId, page, limit);
}
/**
* Method name: delUserRoleByUserIdAndRoleId <BR>
* Description: 根据用户id权限id删除用户权限表 <BR>
*
* @param userId
* @param roleId
* @return ResultMap<BR>
*/
@RequestMapping("/delUserRoleByUserIdAndRoleId")
@ResponseBody
public ResultMap delUserRoleByUserIdAndRoleId(String userId, Integer roleId) {
return userRoleService.delUserRoleByUserIdAndRoleId(userId, roleId);
}