package com.mecol.dormitory.web;
import com.mecol.dormitory.entity.Admin;
import com.mecol.dormitory.entity.AdminLog;
import com.mecol.dormitory.entity.Menu;
import com.mecol.dormitory.entity.Role;
import com.mecol.dormitory.service.AdminService;
import com.mecol.dormitory.util.EncryptUtil;
import com.mecol.dormitory.util.GsonUtil;
import com.mecol.dormitory.util.ResultUtil;
import org.apache.commons.lang3.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 org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/admin")
public class AdminController
{
@Autowired
private AdminService adminService;
@RequestMapping("/login")
@ResponseBody
public ResultUtil login(String username, String password, HttpServletRequest request, HttpSession session)
throws ParseException
{
Admin admin=adminService.login(username, EncryptUtil.encrypt(password));
if(admin!=null)
{
session.setAttribute("user",admin); //在拦截器中使用
session.setAttribute("admin",admin); //在main.jsp中药取出admin
// 还有修改密码.jsp等都可以直接取出admin
String loginIp=request.getHeader("x-forwarded-for");
if(loginIp==null||loginIp.length()==0||"unknown".equalsIgnoreCase(loginIp))
{
loginIp=request.getHeader("Proxy-Client-IP");//获取代理的IP
}
if(loginIp==null||loginIp.length()==0||"unknown".equalsIgnoreCase(loginIp))
{
loginIp=request.getHeader("WL-Proxy-Client-IP");//获取代理的IP
}
if(loginIp==null||loginIp.length()==0||"unknown".equalsIgnoreCase(loginIp))
{
loginIp=request.getRemoteAddr();
}
Date date=new Date();
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime=simpleDateFormat.format(date);
Date loginTime=simpleDateFormat.parse(nowTime);
Date logoutTime=loginTime;
Integer isSafeExit=0; //logoutTime isSafeExit也要插入 不然在数据库中就是null
// 然后点击退出的时候会 adminLog.setIsSafeExit(1); 就会包空指针异常
adminService.insAdminLog(username,loginIp,loginTime,logoutTime,isSafeExit);
session.setAttribute("adminloginTime",loginTime); //点击退出的时候用的到
return ResultUtil.ok(admin.getAdmin_id());
}
else
return ResultUtil.error();
}
/*************登录Log相关**************/
//获取所有的登录日志
@RequestMapping("/getAdminLogList")
@ResponseBody
public ResultUtil getAdminLogList(Integer page,Integer limit,HttpSession session)
throws ParseException
{
return adminService.getAdminLogList(page,limit);
}
@RequestMapping("/getMenus")
@ResponseBody
public List<Menu> getMenus(HttpSession session)
{
//System.out.println("getmenus进来了");
List<Menu> menus=null;
Admin admin= (Admin) session.getAttribute("admin");
Admin admin1=adminService.getAdminById(admin.getAdmin_id());
if(admin1!=null)
{
menus=adminService.getMenus(admin1); //getMenus函数里只是取出来 并没有实现排序
}
return menus;
}
/********页面跳转*******/
@RequestMapping("/logOut")
public ModelAndView loginout(ModelAndView modelAndView,HttpSession session)
throws ParseException
{
// Admin admin= (Admin) session.getAttribute("user");
//AdminLog adminLog=adminService.getAdminLogByUsername(admin.getUsername());
Date loginTime= (Date) session.getAttribute("adminloginTime");
AdminLog adminLog=adminService.getAdminLogByLoginTime(loginTime);
adminLog.setIsSafeExit(1);
Date date=new Date();
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime=simpleDateFormat.format(date);
Date logoutTime=simpleDateFormat.parse(nowTime);
adminLog.setLogoutTime(logoutTime);
adminService.updateAdminLog(adminLog);
session.invalidate();
modelAndView.setViewName("redirect:/index.jsp");
return modelAndView;
}
/*******管理员相关******/
//查看管理员的个人信息
@RequestMapping("/personalDate")
public String personalDate(HttpSession session)
{
Admin admin= (Admin) session.getAttribute("admin");
Admin admin1=adminService.getAdminById(admin.getAdmin_id());
session.setAttribute("admin1",admin1);
return "/jsp/admin/personalInfo";
}
//更新管理员
@RequestMapping("/updateAdmin")
@ResponseBody
public ResultUtil updateAdmin(Admin admin)
{
try
{
adminService.updAdmin(admin);
return ResultUtil.ok();
}
catch (Exception e)
{
e.printStackTrace();
return ResultUtil.error();
}
}
//更新管理员
@RequestMapping("/updAdmin")
@ResponseBody
public ResultUtil updAdmin(Admin admin)//这里 前端发送过来的 自动赋值给admin中的同名字段 和之前的一样
{
// System.out.println("updAdmin命令进来了");
if(admin!=null&&admin.getAdmin_id()==1)
{
return ResultUtil.error("不允许修改");
}
try
{
adminService.updAdmin(admin);
return ResultUtil.ok();
}
catch (Exception e)
{
e.printStackTrace();
return ResultUtil.error();
}
}
//修改密码
@RequestMapping("/changeAdminPassword")
@ResponseBody
public ResultUtil changeAdminPassword(String oldPassword,String newPassword1,String username)
{
//System.out.println("猜猜"+username);
Admin admin=adminService.getAdminByUsername(username);
if(admin!=null)
{
if(admin.getPassword().equals(EncryptUtil.encrypt(oldPassword)))
{
admin.setPassword(EncryptUtil.encrypt(newPassword1));
adminService.updAdmin(admin);
return ResultUtil.ok();
}
else
{
return ResultUtil.error("旧密码错误,请重新填写");
}
}
return ResultUtil.error("请求出错!!");
}
@RequestMapping("/getAdminList")
@ResponseBody
//获取所有管理员列表 带分页
public ResultUtil getAdminList(Integer page,Integer limit)
{
// Tomcat Localhost Log 会输出错误信息 如果下面的sql语句有问题
ResultUtil admins=adminService.getAdminList(page,limit);
//System.out.println(".."+page+"..."+limit);
return admins;
}
//检查是否已经存在此用户名
@RequestMapping("/checkAdminName/{username}")
@ResponseBody
public ResultUtil checkAdminName(@PathVariable("username") String username)
{
Admin admin=adminService.get
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
可以远程帮忙调试运行 基于ssm的学生宿舍管理系统 开发环境 开发软件 idea 也可以用eclipse导入 前端 lyaui 后端 spring springmvc mybatis 分页用的pagehelper maven管理项目 tomcat 7 数据库库 mysql 5.7 具体项目介绍 https://blog.csdn.net/m0_46108627/article/details/107050842?spm=1001.2014.3001.5501
资源推荐
资源详情
资源评论
收起资源包目录
基于ssm的学生宿舍管理系统 (639个子文件)
AdminController.class 12KB
AdminController.class 12KB
AdminServiceImpl.class 10KB
AdminServiceImpl.class 10KB
DormitoryController.class 8KB
DormitoryController.class 8KB
CleanController.class 5KB
CleanController.class 5KB
StudentController.class 4KB
StudentController.class 4KB
ClassController.class 4KB
ClassController.class 4KB
Student.class 4KB
Student.class 4KB
FixController.class 4KB
FixController.class 4KB
Menu.class 3KB
Menu.class 3KB
AuthorizedInterceptor.class 3KB
AuthorizedInterceptor.class 3KB
ClassServiceImpl.class 3KB
ClassServiceImpl.class 3KB
StudentServiceImpl.class 3KB
StudentServiceImpl.class 3KB
Fix.class 3KB
Fix.class 3KB
Admin.class 3KB
Admin.class 3KB
DormitoryServiceImpl.class 3KB
DormitoryServiceImpl.class 3KB
Clean.class 3KB
Clean.class 3KB
CleanServiceImpl.class 2KB
CleanServiceImpl.class 2KB
Dormitory.class 2KB
Dormitory.class 2KB
ResultUtil.class 2KB
ResultUtil.class 2KB
FixServiceImpl.class 2KB
FixServiceImpl.class 2KB
DateUtil.class 2KB
DateUtil.class 2KB
AdminLog.class 2KB
AdminLog.class 2KB
StudentSearch.class 2KB
StudentSearch.class 2KB
Class.class 2KB
Class.class 2KB
CleanExcel.class 2KB
CleanExcel.class 2KB
AdminService.class 2KB
AdminService.class 2KB
Role.class 2KB
Role.class 2KB
EncryptUtil.class 1KB
EncryptUtil.class 1KB
AdminDao.class 1KB
AdminDao.class 1KB
RoleMenu.class 1KB
RoleMenu.class 1KB
AdminServiceImpl$1.class 1KB
AdminServiceImpl$1.class 1KB
StudentDao.class 1KB
StudentDao.class 1KB
GsonUtil.class 1010B
GsonUtil.class 1010B
ClassService.class 698B
ClassService.class 698B
StudentService.class 686B
StudentService.class 686B
DormitoryService.class 648B
DormitoryService.class 648B
DormitoryDao.class 564B
DormitoryDao.class 564B
CleanService.class 552B
CleanService.class 552B
RoleDao.class 548B
RoleDao.class 548B
ClassDao.class 538B
ClassDao.class 538B
CleanDao.class 437B
CleanDao.class 437B
FixDao.class 399B
RoleMenuDao.class 399B
FixDao.class 399B
RoleMenuDao.class 399B
FixService.class 395B
FixService.class 395B
MenuDao.class 314B
MenuDao.class 314B
TestDao.class 140B
TestDao.class 140B
layui.css 68KB
layui.css 68KB
layer.css 14KB
layer.css 14KB
main.css 10KB
main.css 10KB
layui.mobile.css 10KB
layui.mobile.css 10KB
共 639 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
- 我是奇宝2024-01-14非常有用的资源,有一定的参考价值,受益匪浅,值得下载。
小阿七Eason
- 粉丝: 209
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功