/**
 * 
 */
package Dao;

import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.Logger;

import Entities.UserEntity;
import Utils.DBUtil;

/**对当前登录账号进行操作的所有方法类
 * 
 * @author wentao
 */
public class AccoutDao implements Serializable {
	Logger log= Logger.getLogger("houseCaoZuo-log");
	
	/**用于登录验证时使用的方法。根据输入账号查询用户信息,不存在时返回一个空的userEntity,
	 * 存在时返回userEntity
	 * @author wentao
	 * @param user_accout
	 * @param user_pwd
	 * @return userEntity
	 */
	public UserEntity getUserInfo(String user_accout,String user_pwd) {
		UserEntity userInfo=new UserEntity();
		Connection conn=null;
		try {
			conn=DBUtil.getConnection();
			conn.setAutoCommit(false);
			String findUser="SELECT USER_ID,USER_NAME,USER_PASSWORD,AUTHORITY,DELETE_FLAG FROM USER_INFO WHERE USER_ACCOUT=?";
			PreparedStatement smt=conn.prepareStatement(findUser);
			smt.setString(1, user_accout);
			ResultSet rs=smt.executeQuery();
			conn.commit();
			if(rs.next()) {
				String n=rs.getString("user_password");
				if(n.equals(user_pwd)) {
				  userInfo.setUserID(rs.getString("user_id"));
				  userInfo.setUserName(rs.getString("user_name"));
				  userInfo.setUserAuthority(rs.getInt("authority"));
				  userInfo.setUserDeletflag(rs.getInt("delete_flag"));
				  return userInfo;
				}else {
					return userInfo;
				}
				
			}else {
				return userInfo;
			}
		
		} catch (SQLException e) {
			DBUtil.rollBack(conn);
			log.error("查询用户出错",e);
			e.printStackTrace();
			return userInfo;
		}finally {
			DBUtil.closeConnection(conn);
		}
	}
	
	
	/**编辑账号信息时先查询出具体信息的方法
	 * @author wentao
	 * @param user_id
	 * @return
	 */
	public UserEntity getAccountInfo(String user_id) {
		UserEntity accountInfo=new UserEntity();
		Connection conn=null;
		try {
			conn=DBUtil.getConnection();
			conn.setAutoCommit(false);
			String findUser="SELECT USER_NAME,PHONE,USER_ACCOUT,USER_PASSWORD FROM USER_INFO WHERE USER_ID=?";
			PreparedStatement smt=conn.prepareStatement(findUser);
			smt.setString(1, user_id);
			ResultSet rs=smt.executeQuery();
			conn.commit();
			if(rs.next()) {
				accountInfo.setUserID(user_id);
				accountInfo.setUserName(rs.getString("user_name"));
				accountInfo.setUserAccout(rs.getString("user_accout"));
				accountInfo.setUserPassword(rs.getString("user_password"));
				accountInfo.setUserPhone(rs.getString("phone"));
				  return accountInfo;
				}else {
					return accountInfo;
				}	
		} catch (SQLException e) {
			DBUtil.rollBack(conn);
			log.error("查询用户信息出错",e);
			e.printStackTrace();
			return accountInfo;
		}finally {
			DBUtil.closeConnection(conn);
		}
	}
	
	/**编辑用户信息方法
	 * @author wentao
	 * @param 
	 * @throws 
	 * @param editUser
	 * @return
	 */
	public boolean editAccountInfo(UserEntity editUser) {
		Connection conn=null;
		try {
			conn=DBUtil.getConnection();
			conn.setAutoCommit(false);
			String editUserSQL="UPDATE USER_INFO SET USER_NAME=?,PHONE=?,USER_ACCOUT=?,USER_PASSWORD=?"
					+ "WHERE USER_ID=?";
			PreparedStatement smt=conn.prepareStatement(editUserSQL);
			smt.setString(1, editUser.getUserName());
			smt.setString(2, editUser.getUserPhone());
			smt.setString(3, editUser.getUserAccout());
			smt.setString(4, editUser.getUserPassword());
			smt.setString(5, String.valueOf(editUser.getUserID()));
			int editResult=smt.executeUpdate();
			conn.commit();
			if(editResult==1){
				return true;
			}else{
				return false;
			}	
		} catch (SQLException e) {
			DBUtil.rollBack(conn);
			log.error("编辑用户信息出错",e);
			e.printStackTrace();
			return false;
		}finally {
			DBUtil.closeConnection(conn);
		}
	}


	/**用户登录成功后更新登录时间
	 * @author wentao
	 * @param 
	 * @throws 
	 * @param userID
	 */
	public void setLoginTime(Object userID) {
		Date updatetime=new Date();
		SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
		Connection conn=null;
		try {
			conn=DBUtil.getConnection();
			conn.setAutoCommit(false);
			String setLoginTimeSQL="UPDATE USER_INFO SET last_login_time=? "
					+ "WHERE USER_ID=?";
			PreparedStatement smt=conn.prepareStatement(setLoginTimeSQL);
			smt.setString(1, time.format(updatetime));
			smt.setString(2, String.valueOf(userID));
			smt.executeUpdate();
			conn.commit();		
		} catch (SQLException e) {
			DBUtil.rollBack(conn);
			log.error("更新用户登录时间出错",e);	
		}finally {
			DBUtil.closeConnection(conn);
		}
		
	}
}
最近下载更多
908701380  LV2 2023年6月3日
hqy966  LV5 2023年1月23日
mmmmmmppp  LV10 2022年12月7日
aqin_qin  LV1 2022年6月12日
edward_vic  LV2 2022年3月8日
asddff  LV1 2022年1月6日
swl137985246  LV7 2021年11月26日
2754137495  LV6 2021年7月20日
Azuki1  LV6 2021年6月20日
裤裆很帅  LV16 2021年5月28日
最近浏览更多
小黄同学  LV8 9月29日
123456cjj  LV1 6月2日
meiyou 5月14日
暂无贡献等级
2036495585  LV9 2023年10月15日
飞呀飞呀飞不放  LV7 2023年8月9日
asadda  LV2 2023年6月26日
chenranr  LV10 2023年6月26日
qazws123  LV1 2023年6月7日
908701380  LV2 2023年6月3日
what_the_fo  LV5 2023年4月7日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友