package com.mecol.hotel.service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.mecol.hotel.dao.AdminDao;
import com.mecol.hotel.dao.MenuDao;
import com.mecol.hotel.dao.RoleDao;
import com.mecol.hotel.dao.RoleMenuDao;
import com.mecol.hotel.entity.*;
import com.mecol.hotel.util.EncryptUtil;
import com.mecol.hotel.util.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException;
import java.util.*;
@Service
@Transactional
public class AdminServiceImpl implements AdminService
{
@Autowired
private AdminDao adminDao;
@Autowired
private RoleMenuDao roleMenuDao;
@Autowired
private MenuDao menuDao;
@Autowired
private RoleDao roleDao;
@Override
public Admin login(String username, String password) {
return adminDao.login(username,password);
}
@Override
public void insAdminLog(String username, String loginIp, Date loginTime,Date logoutTime,Integer isSafeExit)
{
adminDao.insAdminLog(username,loginIp,loginTime,logoutTime,isSafeExit);
}
@Override
public Admin getAdminById(Integer id) {
return adminDao.getAdminById(id);
}
/*******Menu相关的一些***/
@Override
public List<Menu> getMenus(Admin admin) {
List<Menu> menuList=new ArrayList<>();
Long roleId=admin.getRoleId();
List<RoleMenu> roleMenus=roleMenuDao.selMenusByRoleId(roleId);
//rolemenu里面就是一个中间表 两个字段 roleId menuId 关联起来
if(roleMenus!=null&&roleMenus.size()>0)
{
List<Menu> noChildrenMenus=new ArrayList<>();
for(int i=0;i<roleMenus.size();i++)
{
Menu menu=menuDao.getMenuById(roleMenus.get(i).getMenuId()); //获取rolemenu中的menuId
noChildrenMenus.add(menu); //就是根据这个登陆者的roleid 所拥有的菜单取出来
}
for(int i=0;i<noChildrenMenus.size();i++)
{
if(noChildrenMenus.get(i).getParentId()==0)
{
Menu menu=new Menu();
menu=noChildrenMenus.get(i); //把这个一级菜单取出来
List<Menu> menus=new ArrayList<>();
for(int j=0;j<noChildrenMenus.size();j++) //把所有菜单过一遍
{
//如果有菜单属于这个一级菜单
if(noChildrenMenus.get(j).getParentId()==noChildrenMenus.get(i).getMenuId())
{
Menu menu2=new Menu();
menu2=noChildrenMenus.get(j);//取出这个二级菜单
menus.add(menu2);
}
}
menu.setChildren(menus);
menuList.add(menu);
}
}
}
Collections.sort(menuList, new Comparator<Menu>() {
@Override
public int compare(Menu o1, Menu o2) {
return o1.getSorting().compareTo(o2.getSorting());
}
});
return menuList;
}
@Override
public ResultUtil getAdminList(Integer page, Integer limit)
{
PageHelper.startPage(page,limit); //默认传过来的是1 和10
List<Admin> admins=adminDao.getAdminsList();
for(Admin admin:admins)
{
List<Role> roles=roleDao.selRoles();//取出所有的角色
for(Role role:roles)
{
if(role.getRoleId()==admin.getRoleId())
{
admin.setRoleName(role.getRoleName());
}
}
}
PageInfo<Admin> pageInfo=new PageInfo<Admin>(admins);
ResultUtil resultUtil=new ResultUtil();
resultUtil.setCode(0);//前段接收为0 代表成功
resultUtil.setCount(pageInfo.getTotal());//代表数据库中总条数
resultUtil.setData(pageInfo.getList());
return resultUtil;
}
@Override
public List<Role> getRoles() {
return roleDao.selRoles();
}
@Override
public ResultUtil getRoles(Integer page, Integer limit) {
PageHelper.startPage(page,limit);
List<Role> roles=roleDao.selRoles();
PageInfo<Role> pageInfo=new PageInfo<Role>(roles);
ResultUtil resultUtil=new ResultUtil();
resultUtil.setCode(0);
resultUtil.setCount(pageInfo.getTotal());
resultUtil.setData(pageInfo.getList());
return resultUtil;
}
@Override
public void updAdmin(Admin admin)
{
adminDao.updAdmin(admin);
}
@Override
public void delAdminById(Long id) {
adminDao.delAdminById(id);
}
@Override
public Admin getAdminByUsername(String username) {
return adminDao.getAdminByUsername(username);
}
@Override
public void insAdmin(Admin admin) {
admin.setPassword(EncryptUtil.encrypt(admin.getPassword()));//加密
adminDao.insAdmin(admin);
}
@Override
public void delRole(Long roleId) {
roleDao.delRole(roleId);
}
@Override
public Role getRoleById(Long roleId) {
return roleDao.getRoleById(roleId);
}
/*
@Override
public List<Menu> getXtreeData(Admin admin)
{
List<Menu> allMenus=menuDao.getAllMenus(); //获得所有的菜单
Long roleId=admin.getRoleId(); //中间用admin做介质 有必要吗??
if(!roleId.equals(Long.valueOf("-1")))//不是-1
{
List<RoleMenu> roleMenus=roleMenuDao.selMenusByRoleId(roleId); //选出此角色对应的菜单
for(Menu menu:allMenus) //遍历所有菜单
{
for(RoleMenu roleMenu:roleMenus)
{
if(roleMenu.getMenuId()==menu.getMenuId())
{
menu.setChecked("true"); //将所有菜单中 此角色有的菜单
// 设置为true状态 前面权限树 会体现出选中状态 看看那个tree的原理 为什么会选中?????
}
}
}
}
return allMenus;
}
*/
@Override
public List<Menu> getXtreeData(Long roleId) {
List<Menu> allMenus=menuDao.getAllMenus(); //获得所有的菜单
if(!roleId.equals(Long.valueOf("-1")))//不是-1
{
List<RoleMenu> roleMenus=roleMenuDao.selMenusByRoleId(roleId); //选出此角色对应的菜单
for(Menu menu:allMenus) //遍历所有菜单
{
for(RoleMenu roleMenu:roleMenus)
{
if(roleMenu.getMenuId()==menu.getMenuId())
{
menu.setChecked("true"); //将所有菜单中 此角色有的菜单
}
}
}
}
return allMenus;
}
@Override
public Role getRoleByRoleName(String roleName) {
return roleDao.getRoleByRoleName(roleName);
}
@Override
public void updRole(Role role, String m) {
roleDao.updateByKey(role);
roleMenuDao.deleteMenusByRoleId(role.getRoleId()); //把roleId对应的原来的菜单都删除
// 维护角色-菜单表 m中就是 1,2,3,4,5 这种格式
if(m!=null&&m.length()!=0)
{
String [] result=m.split(",");
//重新赋予权限
if(result!=null&&result.length>0)
{
for(int i=0;i<result.length;i++)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
java毕设-基于ssm的学生管理系统.zip (777个子文件)
AdminController.class 16KB
AdminController.class 16KB
AdminController.class 16KB
AdminController.class 16KB
UserController.class 13KB
UserController.class 13KB
AdminServiceImpl.class 11KB
AdminServiceImpl.class 11KB
AdminServiceImpl.class 11KB
AdminServiceImpl.class 11KB
RoomController.class 6KB
RoomController.class 6KB
UserServiceImpl.class 5KB
UserServiceImpl.class 5KB
RoomServiceImpl.class 4KB
RoomServiceImpl.class 4KB
StudentController.class 4KB
StudentController.class 4KB
User.class 4KB
User.class 4KB
Reservation.class 4KB
Reservation.class 4KB
RoomInfo.class 4KB
RoomInfo.class 4KB
ReservationServiceImpl.class 3KB
ReservationServiceImpl.class 3KB
Menu.class 3KB
Menu.class 3KB
Student.class 3KB
Student.class 3KB
Menu.class 3KB
Menu.class 3KB
StudentServiceImpl.class 3KB
StudentServiceImpl.class 3KB
AuthorizedInterceptor.class 3KB
AuthorizedInterceptor.class 3KB
TeacherController.class 3KB
TeacherController.class 3KB
CourseController.class 3KB
CourseController.class 3KB
PromotionController.class 3KB
PromotionController.class 3KB
AuthorizedInterceptor.class 3KB
AuthorizedInterceptor.class 3KB
Admin.class 3KB
Admin.class 3KB
Comment.class 3KB
Comment.class 3KB
Admin.class 3KB
Admin.class 3KB
Teacher.class 3KB
Teacher.class 3KB
TeacherServiceImpl.class 2KB
TeacherServiceImpl.class 2KB
CourseServiceImpl.class 2KB
CourseServiceImpl.class 2KB
AdminService.class 2KB
AdminService.class 2KB
StudentSearch.class 2KB
StudentSearch.class 2KB
CommentServiceImpl.class 2KB
CommentServiceImpl.class 2KB
ResultUtil.class 2KB
ResultUtil.class 2KB
ResultUtil.class 2KB
ResultUtil.class 2KB
AdminService.class 2KB
AdminService.class 2KB
DateUtil.class 2KB
DateUtil.class 2KB
DateUtil.class 2KB
DateUtil.class 2KB
AdminLog.class 2KB
AdminLog.class 2KB
PromotionServiceImpl.class 2KB
PromotionServiceImpl.class 2KB
AdminLog.class 2KB
AdminLog.class 2KB
UserSearch.class 2KB
UserSearch.class 2KB
Course.class 2KB
Course.class 2KB
Promotion.class 2KB
Promotion.class 2KB
RoomCatalog.class 2KB
RoomCatalog.class 2KB
Role.class 2KB
Role.class 2KB
Role.class 2KB
Role.class 2KB
EncryptUtil.class 1KB
EncryptUtil.class 1KB
EncryptUtil.class 1KB
EncryptUtil.class 1KB
AdminDao.class 1KB
AdminDao.class 1KB
RoleMenu.class 1KB
RoleMenu.class 1KB
RoleMenu.class 1KB
RoleMenu.class 1KB
共 777 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
ability
- 粉丝: 66
- 资源: 57
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OpenEuler22.03TLS-SP3系统ssh漏洞官方升级包
- Jmeter实现同一线程组内接口并行执行
- MySQL的安装与配置PDF
- python007-django疫情数据可视化分析系统(LW+PPT).zip
- python006-django基于python技术的学生管理系统的设计与开发.zip
- python005-基于Python爬虫的网络小说数据分析系统的设计与实现.zip
- vs2015 udp 广播 demo
- 创维42L20HW(8DA6)软件数据.rar
- gcc15交叉编译工具链windows版,用于编译龙芯应用,gcc version 15.0.0 20241119 (experimental) (GCC)
- python004-基于python的抑郁症患者看护系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功