| 
					
				 | 
			
			
				@ -1,16 +1,23 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.manage.service.login; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.manage.cache.login.LoginCache; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.manage.dao.login.ManageLoginLogDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.manage.model.login.ManageLoginLog; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.manage.model.system.ManageMenu; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.manage.model.system.ManageRole; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.manage.model.system.ManageUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.manage.service.system.MenuService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.manage.service.system.RoleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.manage.service.system.UserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.exception.ManageException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.manage.ManageUserVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.security.MD5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.BeanUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.boot.autoconfigure.AutoConfigureOrder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -26,30 +33,62 @@ public class LoginService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private MenuService menuService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private RoleService roleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ManageLoginLogDao manageLoginLogDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ManageUser login(String username, String password) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * ManageException异常不回滚 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param username 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param password 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(noRollbackForClassName = "ManageException") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ManageUser login(String username, String password) throws ManageException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ManageLoginLog manageLoginLog = new ManageLoginLog(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        manageLoginLog.setLoginAccount(username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        manageLoginLog.setLoginTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, List> data = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //判断是否登陆信息是否正确 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ManageUser user = userService.findByAccount(username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(user==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("账号不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (user == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //保存登陆信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String message = "账号不存在"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            manageLoginLog.setType(ManageLoginLog.type_error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            manageLoginLog.setErrorMessage(message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            manageLoginLogDao.save(manageLoginLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new ManageException(message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!user.getPassword().equals(MD5.GetMD5Code(password + user.getSalt()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("密码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //保存登陆信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String message = "密码错误"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            manageLoginLog.setLoginUser(user.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            manageLoginLog.setLoginUserName(user.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            manageLoginLog.setType(ManageLoginLog.type_error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            manageLoginLog.setErrorMessage(message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            manageLoginLogDao.save(manageLoginLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new ManageException(message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //保存登陆信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        manageLoginLog.setType(ManageLoginLog.type_success); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        manageLoginLog.setLoginUser(user.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        manageLoginLog.setLoginUserName(user.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        manageLoginLogDao.save(manageLoginLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //添加登陆缓存中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ManageUserVO manageUserVO=new ManageUserVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BeanUtils.copyProperties(user,manageLoginLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        LoginCache.addCache(user.getCode(),manageUserVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Map<String,List> index(String usercode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Map<String, List> index(String usercode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, List> data = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //得到角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<ManageRole> roles=roleService.findByUserCode(usercode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<ManageRole> roles = roleService.findByUserCode(usercode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //得到用户所有菜单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<ManageMenu> menus=menuService.findByUserCode(usercode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        data.put("role",roles); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        data.put("menus",menus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<ManageMenu> menus = menuService.findByUserCode(usercode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        data.put("role", roles); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        data.put("menus", menus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |