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

📄 loginuserdaoimpl.java

📁 oa办公系统
💻 JAVA
字号:
/**
 * FileName:LoginUserDaoImpl.java,v 1.0 created in 2008-11-7 下午12:00:56
 * Created by lv
 * Copyright (c) 2008 华东交通大学
 * All Rights Reserved.
 */
package cn.jx.ecjtu.oa.ps.dao.impl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import com.wanczy.dbutil.IResultSetHandler;
import cn.jx.ecjtu.oa.ps.dao.BaseDao;
import cn.jx.ecjtu.oa.ps.dao.LoginUserDao;
import cn.jx.ecjtu.oa.ps.pojo.LoginUser;
import cn.jx.ecjtu.oa.ps.pojo.Permission;
import cn.jx.ecjtu.oa.ps.pojo.Role;



/**
 * @todo:Description
 * @author lv
 * @version $Revision: 1.31 $
 * @since 1.0
 */

public class LoginUserDaoImpl extends BaseDao implements LoginUserDao {

	class ResultSet2LoginUser implements IResultSetHandler {//把结果集转化为LoginUser对象
		public Object handle(ResultSet rs) throws SQLException {

			return new LoginUser(
					rs.getInt("id"),
					rs.getString("login_name"),
					rs.getString("real_name"),
					rs.getString("password"),
					rs.getInt("dept_id"),
					rs.getInt("role_id"),
					rs.getLong("online_time")
			);
		}
	}

	class ResultSet2Role implements IResultSetHandler {//把结果集转化为Role对象

		public Object handle(ResultSet rs) throws SQLException {
			return new Role(rs.getInt("role_id"),
					rs.getString("name"));

		}
	}

	class ResultSet2Permission implements IResultSetHandler {//把结果集转化为Permission对象

		public Object handle(ResultSet rs) throws SQLException {
			return new Permission(rs.getInt("id"),
					rs.getString("name"),rs.getString("resource"));

		}
	}

	//声明一个ResultSet2LoginUser
	private ResultSet2LoginUser resultSet2LoginUser= new ResultSet2LoginUser();
	private ResultSet2Role      rsRole             = new ResultSet2Role();	
	private ResultSet2Permission rsPermission      = new ResultSet2Permission();


	/***
	 * 根据loginName查找一个登陆用户信息
	 * @return 一个登陆用户对象
	 * @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao#findByLoginName(java.lang.String)
	 */
	public LoginUser findByLoginName(final String loginName) {
		String sql="select * from oa_login_user where login_name=?";
		List list=dbAccess.executeQuery(sql,
				new Object[]{loginName},
				resultSet2LoginUser);
		if(list.size()>0)
			return (LoginUser)list.get(0);
		else 
			return null;

	}
	/***
	 * 根据id查找一个登陆用户信息
	 * @return 一个登陆用户对象
	 * @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao#findById(int)
	 */
	public LoginUser findById(int id) {
		String sql="select * from oa_login_user where id=?";
		List list=dbAccess.executeQuery(sql,
				new Object[]{id},
				resultSet2LoginUser);
		if(list.size()>0)
			return (LoginUser)list.get(0);
		else 
			return null;
	}
	
	/***
	 * 修改一个用户的在线时长
	 * @return 一个登陆用户对象
	 * @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao
	 */
	public int updateOnlineTime(LoginUser loginUser) {
		String sql="update oa_login_user set online_time=? where id=?";
		return dbAccess.executeUpdate(sql,new Object[]{loginUser.getOnlineTime(),loginUser.getId()});

	}
	/**方法功能:查询数据库中前n位用户
	 * created by sunyi
	 */
	public List<LoginUser> findTopUsers(int n) {
		String sql = "select  top "+ n + " *  from oa_login_user  order  by   online_time  desc";
		return dbAccess.executeQuery(sql,resultSet2LoginUser);
	}

	/**方法功能:根据部门id查找属于此部门的人员
	 */
	public List<LoginUser> findUserByDeptId(int deptId) {
		List list=dbAccess.executeQuery("select * from oa_login_user where dept_id=?",
				new Object[]{new Integer(deptId)},
				resultSet2LoginUser);
		return list;
	}


	/**方法功能:根据用户id删除用户
	 */
	public int removeUser(int id) {
		return dbAccess.executeUpdate("delete from oa_login_user where id=?",
				new Object[]{new Integer(id)});
	}
	
	/**方法功能:根据login对象将数据保存进oa_login_user表
	 */
	public int addUser(LoginUser loginUser) {

		return dbAccess.executeUpdate(
				"Insert into oa_login_user(login_name,real_name,password,dept_id,role_id,online_time) values (?,?,?,?,?,0)",
				new Object[]{loginUser.getLoginName(),
						loginUser.getRealName(),
						loginUser.getLoginName(),//用户的初始密码设置和登录名一样
						loginUser.getDeptID(),
						loginUser.getRoleId()
						}
		);
	}

	/**方法功能:查询出所有角色列表
	 * 输入参数:
	 * 输出参数:
	 */
	public List<Role> findAllRole() {
		// TODO Auto-generated method stub
		List list=dbAccess.executeQuery("select * from oa_role",
				rsRole);	
		return list;
	}
	/**给角色分配权限
	 * created by lv
	 */
	public int addPermissionToRole(int roleId, List<Integer>permissionIds) {
		String sql = "insert into oa_permission_map(role_id,permission_id) values("+roleId+",?)";
		//return dbAccess.executeUpdate(sql);
		Object params[][] = new Object[permissionIds.size()][1];
		for (int i = 0; i < params.length; i++) {
			params[i][0]= permissionIds.get(i);
		}
		return dbAccess.executeBatch(sql, params);
	}
    /**
     * 根据一组用户id查询用户
     */
	public List<LoginUser> findByIds(List<Integer> ids) {
		String sql="select  * from oa_login_user where id  in(0";
		for(int i=0;i<ids.size();i++){
			sql=sql+","+ids.get(i);
		}
		sql=sql+")";
		return dbAccess.executeQuery(sql, resultSet2LoginUser);
	}
	
	public List<Permission> findPermissionIdByRoleId(int roleId) {
		return dbAccess.executeQuery("select t2.* from oa_permission_map t1 left join oa_permission t2 on t1.permission_id=t2.id where t1.role_id="+roleId, rsPermission);
	}
	
	/**根据给定的一组id查找对应的一组权限
	 * created by lv
	 */
	public List<Permission> findPermissionsByIds(List<Integer> ids) {
		String sql = "select * from oa_permission where id in(0";
		for(int i = 0 ;i<ids.size();i++){
			sql+=","+ids.get(i);
		}
		sql+=")";
		return dbAccess.executeQuery(sql, rsPermission);
	}
	
	/**清空用户密码
	 * created by yfjie
	 */
	public int setPwdNull(int id) {
		String sql = "update oa_login_user set password ='"+"'"+" where id="+id;
		return  dbAccess.executeUpdate(sql);
	}
	/**
	 * 修改用户信息
	 */
	public int updateUser(LoginUser loginUser) {
		return dbAccess.executeUpdate("update oa_login_user set login_name=?,real_name=?," +
				"password=?,dept_id=?,role_id=? where id=?",
				new Object[]{loginUser.getLoginName(),
				loginUser.getRealName(),
				loginUser.getPassWord(),
				loginUser.getDeptID(),
				loginUser.getRoleId(),
				loginUser.getId()}
		);
	}
	/**
	 * 方法功能:查询出所有权限列表
	 */
	public List<Permission> findAllPermissions() {
		List list=dbAccess.executeQuery("select * from oa_permission",
				rsPermission);
		return list;
	}
	
	/**
	 * 添加指定了目录的权限
	 */
	public int addPermission(Permission permission) {
		String sql = "insert into oa_permission(name,resource) values('"+permission.getName()+"','"+permission.getResource()+"')";
		return  dbAccess.executeUpdate(sql);
	}
	
	/**
	 * 添加新角色
	 */
	public int addRole(String name) {
		String sql = "insert into oa_role(name) values('"+name+"')";
		return dbAccess.executeUpdate(sql);
	}
	/**
	 * 用户更新自己的密码
	 */
	public int updatePassword(int id, String password) {
		String sql = "update oa_login_user  set password = ? where id = ?";
		Object []params = new Object[]{password,id};
		return dbAccess.executeUpdate(sql, params);
	}
	/**
	 * 根据角色id查询角色
	 */
	public Role findRole(int roleid){
		String sql="select * from oa_role where role_id=?";
		List list=dbAccess.executeQuery(sql,
				new Object[]{roleid},
				rsRole);
		if(list.size()>0)
			return (Role)list.get(0);
		else 
			return null;
	}
	
	public List<LoginUser> findAllUser(){
		String sql = "select * from oa_login_user";
		return  dbAccess.executeQuery(sql, resultSet2LoginUser);
	}
	public int deletePermission(int permissionId) {
		String sql = "delete from oa_permission where id="+permissionId;
		return dbAccess.executeUpdate(sql);
	}
	public int deleteRole(int roleId) {
		String sql = "delete from oa_role where role_id="+roleId;
		return dbAccess.executeUpdate(sql);
	}
	/* (non-Javadoc)
	 * @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao#deletePermissionFromRole(int, java.util.List)
	 */
	public int deletePermissionFromRole(int roleId) {
		String sql = "delete from oa_permission_map where role_id="+roleId;
		return dbAccess.executeUpdate(sql);
	}
	/* (non-Javadoc)
	 * @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao#updateRole(int)
	 */
	public int updateRole(int roleId) {
		String sql = "update oa_login_user set role_id=0 where role_id="+roleId;
		return dbAccess.executeUpdate(sql);
	}
	/* (non-Javadoc)
	 * @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao#delete_permission_map(int)
	 */
	public int delete_permission_map(int permissionId) {
		String sql =  "delete from oa_permission_map where permission_id="+permissionId;
		return dbAccess.executeUpdate(sql);
	}
	
	/**
	 * 测试用
	 *//*
	public  Object getNum(String sql){
		return  dbAccess.getSingleValue(sql);
	}*/
}

⌨️ 快捷键说明

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