⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systemuserserviceimpl.java

📁 q企业web应用 q企业web应用 q企业web应用
💻 JAVA
字号:
package com.meybosoft.microerp.business.impl;

import java.util.Collection;
import java.util.List;

import com.easyjf.util.Assert;
import com.easyjf.util.MD5;
import com.easyjf.web.tools.ActiveUser;
import com.easyjf.web.tools.DbPageList;
import com.easyjf.web.tools.IActiveUser;
import com.easyjf.web.tools.IPageList;
import com.meybosoft.microerp.business.CurrentUser;
import com.meybosoft.microerp.business.LogicException;
import com.meybosoft.microerp.business.SystemUserService;
import com.meybosoft.microerp.system.SystemRegion;
import com.meybosoft.microerp.system.SystemUser;

public class SystemUserServiceImpl extends AbstractDAOServiceSupport implements SystemUserService 
{
	private static SystemUserServiceImpl singleton=new SystemUserServiceImpl();
	public static SystemUserServiceImpl getInstance()
	{
		return singleton;
	}
	//添加一个用户,先在表中查询此用户是否存在
	public boolean addSystemUser(SystemUser user) {
		//先检测传入的对象中的用户名是否在数据库的表中存在
		SystemUser obj = (SystemUser) this.dao.getBy(SystemUser.class, "userName", user.getUserName());		
		if(obj != null) throw new LogicException("此用户以存在!");
		if(user.getPassword()==null)user.setPassword("123456");//设置默认密码
		//MD5加密密码		
		String md5 = MD5.encode(user.getPassword());
		user.setPassword(md5);
		user.setLoginTimes(new Integer(1));
		return this.dao.save(user);
	}
	//修改用户密码 先判断输入的原密码是否正确
	public boolean changePassword(SystemUser u, String newPassword,
			String oldPassword) {
		SystemUser user=getSystemUserByName(u.getUserName());//重新查询一次
		String md5=MD5.encode(oldPassword);
		if(!user.getPassword().equals(md5)) throw new LogicException("旧密码错误!");
		user.setPassword(MD5.encode(newPassword));
		return this.dao.update(user);
	}
	//删除用户
	public boolean delSystemUser(SystemUser user) {
		return this.dao.del(user);
	}
	//根据用户名读取用户
	public SystemUser getSystemUserByName(String userName) {
		return (SystemUser) this.dao.getBy(SystemUser.class, "userName",userName);
	}
	//根据ID读取用户
	public SystemUser getSystemUser(Long id) {
		return (SystemUser) this.dao.getBy(SystemUser.class, "id", id);
	}
	//用户登陆
	public IActiveUser login(String userName, String password, String ip) {	
		Assert.notNull(userName);
		Assert.notNull(password);		
		SystemUser system = (SystemUser) getSystemUserByName(userName);		
		if(system == null)throw new LogicException("用户不存在!");		
		String md5=MD5.encode(password);
		if(!md5.equals( system.getPassword() )) throw new LogicException("用户密码错误!");		
		system.setLoginTimes(new Integer(system.getLoginTimes().intValue()+1));//登陆次数+1
		system.setLastLoginTime(new java.util.Date());	//最后登陆时间
		system.setLastLoginIP(ip);		//最后登陆IP
		updateSystemUser(system);
		
		ActiveUser user=new ActiveUser();		
		user.setUserName(userName);
		user.setPassword(system.getPassword());
		user.setIp(ip);
		user.setLoginTime(system.getLastLoginTime());
		CurrentUser.setCurrnetUser(user);
		return user;

	}
	//用户注销
	public boolean logout(IActiveUser user) {
		CurrentUser.setCurrnetUser(null);
		return true;
	}
	//自定义查询用户信息
	public IPageList querySystemUser(String scope, Collection paras, int currentPage,
			int pageSize) {	
		DbPageList pageList=new DbPageList(SystemUser.class,scope,paras,dao);
		pageList.doList(currentPage, pageSize);	
		return pageList;
	}
	//修改用户信息
	public boolean updateSystemUser(SystemUser user) {
		SystemUser u=getSystemUser(user.getId());
		user.setPassword(u.getPassword());//恢复密码信息
		return this.dao.update(user);
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -