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

📄 usermodel.java

📁 一个论坛程序的简单实现
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	}

	/** 
	 * @see net.jforum.model.UserModel#selectAll(int, int)
	 */
	public List selectAll(int startFrom, int count) throws Exception 
	{
		PreparedStatement p;
		
		if (count > 0) {
			p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.selectAllByLimit"));
			p.setInt(1, startFrom);
			p.setInt(2, count);
		}
		else {
			p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.selectAll"));
		}
		
		ResultSet rs = p.executeQuery();
		List list = this.processSelectAll(rs);
		rs.close();
		p.close();
		
		return list;
	}
	
	protected List processSelectAll(ResultSet rs) throws Exception
	{
		List list = new ArrayList();
		while (rs.next()) {
			User u = new User();
			
			u.setEmail(rs.getString("user_email"));
			u.setId(rs.getInt("user_id"));
			u.setTotalPosts(rs.getInt("user_posts"));
			u.setRegistrationDate(rs.getTimestamp("user_regdate"));
			u.setUsername(rs.getString("username"));
			u.setDeleted(rs.getInt("deleted"));
			
			list.add(u);
		}
		
		return list;
	}

	/** 
	 * @see net.jforum.model.UserModel#getLastUserInfo()
	 */
	public HashMap getLastUserInfo() throws Exception 
	{
		HashMap m = new HashMap();
		
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.lastUserRegistered"));
		ResultSet rs = p.executeQuery();
		rs.next();
		
		m.put("userName", rs.getString("username"));
		m.put("userId", new Integer(rs.getInt("user_id")));
		
		rs.close();
		p.close();
		
		return m;
	}

	/** 
	 * @see net.jforum.model.UserModel#getTotalUsers()
	 */
	public int getTotalUsers() throws Exception 
	{	
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.totalUsers"));
		ResultSet rs = p.executeQuery();
		rs.next();
		
		int total = rs.getInt("total_users");
		
		rs.close();
		p.close();
		
		return total;

	}

	/** 
	 * @see net.jforum.model.UserModel#isDeleted(int user_id)
	 */
	public boolean isDeleted(int userId) throws Exception 
	{	
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.isDeleted"));
		p.setInt(1, userId);
		
		int deleted = 0;
		
		ResultSet rs = p.executeQuery();
		if (rs.next()) {	
			deleted = rs.getInt("deleted");
		}
		
		rs.close();
		p.close();
		
		return deleted == 1;
	}
	
	/** 
	 * @see net.jforum.model.UserModel#isUsernameRegistered(java.lang.String)
	 */
	public boolean isUsernameRegistered(String username) throws Exception 
	{
		boolean status = false;
		
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.isUsernameRegistered"));
		p.setString(1, username);
		
		ResultSet rs = p.executeQuery();
		if (rs.next() && rs.getInt("registered") > 0) {
			status = true;
		}
		
		rs.close();
		p.close();
		
		return status;
	}

	/** 
	 * @see net.jforum.model.UserModel#validateLogin(java.lang.String, java.lang.String)
	 */
	public User validateLogin(String username, String password) throws NoSuchAlgorithmException, Exception
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.login"));
		p.setString(1, username);
		p.setString(2, MD5.crypt(password));
		
		User user = null;
		
		ResultSet rs = p.executeQuery();
		if (rs.next() && rs.getInt("user_id") > 0) {
			user = this.selectById(rs.getInt("user_id"));
		}

		rs.close();
		p.close();
		
		if (user != null && !user.isDeleted() && (user.getActivationKey() == null || user.isActive())) {
			return user;
		}
		
		return null;
	}

	/** 
	 * @see net.jforum.model.UserModel#addToGroup(int, int[])
	 */
	public void addToGroup(int userId, int[] groupId) throws Exception 
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.addToGroup"));
		p.setInt(1, userId);
		
		for (int i = 0; i < groupId.length; i++) {
			p.setInt(2, groupId[i]);
			p.executeUpdate();
		}
		
		p.close();
	}

	/** 
	 * @see net.jforum.model.UserModel#removeFromGroup(int, int[])
	 */
	public void removeFromGroup(int userId, int[] groupId) throws Exception 
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.removeFromGroup"));
		p.setInt(1, userId);
		
		for (int i = 0; i < groupId.length; i++) {
			p.setInt(2, groupId[i]);
			p.executeUpdate();
		}
		
		p.close();
	}

	/** 
	 * @see net.jforum.model.UserModel#saveNewPassword(java.lang.String, java.lang.String)
	 */
	public void saveNewPassword(String password, String email) throws Exception
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.saveNewPassword"));
		p.setString(1, password);
		p.setString(2, email);
		p.executeUpdate();
		p.close();
	}
	
	/** 
	 * @see net.jforum.model.UserModel#validateLostPasswordHash(java.lang.String, java.lang.String)
	 */
	public boolean validateLostPasswordHash(String email, String hash) throws Exception
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.validateLostPasswordHash"));
		p.setString(1, hash);
		p.setString(2, email);
		
		boolean status = false;
		
		ResultSet rs = p.executeQuery();
		if (rs.next() && rs.getInt("valid") == 1) {
			status = true;
			
			this.writeLostPasswordHash(email, "");
		}
		
		rs.close();
		p.close();
		
		return status;		
	}
	
	/** 
	 * @see net.jforum.model.UserModel#writeLostPasswordHash(java.lang.String, java.lang.String)
	 */
	public void writeLostPasswordHash(String email, String hash) throws Exception
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.writeLostPasswordHash"));
		p.setString(1, hash);
		p.setString(2, email);
		p.executeUpdate();
		p.close();
	}
	
	/** 
	 * @see net.jforum.model.UserModel#getUsernameByEmail(java.lang.String)
	 */
	public String getUsernameByEmail(String email) throws Exception
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.getUsernameByEmail"));
		p.setString(1, email);
		
		String username = "";
		
		ResultSet rs = p.executeQuery();
		if (rs.next()) {
			username = rs.getString("username");
		}
		
		rs.close();
		p.close();
		
		return username;
	}

	/** 
	 * @see net.jforum.model.UserModel#findByName(java.lang.String, boolean)
	 */
	public List findByName(String input, boolean exactMatch) throws Exception
	{
		List namesList = new ArrayList();
		
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.findByName"));
		
		if (exactMatch) {
			p.setString(1, input);
		}
		else {
			p.setString(1, "%"+ input +"%");
		}
			
		
		ResultSet rs = p.executeQuery();
		while (rs.next()) {
			User u = new User();
			u.setId(rs.getInt("user_id"));
			u.setUsername(rs.getString("username"));
			u.setEmail(rs.getString("user_email"));

			namesList.add(u);
		}
		
		rs.close();
		p.close();
		
		return namesList;
	}

	/** 
	 * @see net.jforum.model.UserModel#validateActivationKeyHash(int, java.lang.String)
	 */
	public boolean validateActivationKeyHash(int userId , String hash) throws Exception
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.validateActivationKeyHash"));
		p.setString(1, hash);
		p.setInt(2, userId);

		boolean status = false;

		ResultSet rs = p.executeQuery();
		if (rs.next() && rs.getInt("valid") == 1) {
			status = true;
		}

		rs.close();
		p.close();

		return status;
	}

	/** 
	 * @see net.jforum.model.UserModel#writeUserActive(int)
	 */
	public void writeUserActive(int userId) throws Exception
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.writeUserActive"));
		p.setInt(1, userId);
		p.executeUpdate();
		p.close();
	}
}

⌨️ 快捷键说明

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