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

📄 usermodel.java

📁 个人认为是最好的Java论坛源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	    return this.loadKarma( this.selectAll(startFrom, count) );
	}

	
	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"));
			KarmaStatus karma = new KarmaStatus();
			karma.setKarmaPoints(rs.getInt("user_karma"));
			u.setKarma( karma );
			u.setFrom(rs.getString("user_from"));
			u.setWebSite(rs.getString("user_website"));
			u.setViewEmailEnabled(rs.getInt("user_viewemail") == 1);
			
			list.add(u);
		}
		
		return list;
	}
	
	/**
	 * @see net.jforum.model.UserModel#selectAllByGroup(int, int, int)
	 */
	public List selectAllByGroup(int groupId, int start, int count) throws Exception
	{
		List l = new ArrayList();
		
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.selectAllByGroup"));
		p.setInt(1, groupId);
		p.setInt(2, start);
		p.setInt(3, count);
		
		ResultSet rs = p.executeQuery();
		while (rs.next()) {
			User u = new User();
			u.setUsername(rs.getString("username"));
			u.setId(rs.getInt("user_id"));
			u.setRegistrationDate(rs.getTimestamp("user_regdate"));
			
			l.add(u);
		}
		
		return l;
	}

	/** 
	 * @see net.jforum.model.UserModel#getLastUserInfo()
	 */
	public User getLastUserInfo() throws Exception 
	{
		User u = new User();
		
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.lastUserRegistered"));
		ResultSet rs = p.executeQuery();
		rs.next();
		
		u.setUsername(rs.getString("username"));
		u.setId(rs.getInt("user_id"));
		
		rs.close();
		p.close();
		
		return u;
	}

	/** 
	 * @see net.jforum.model.UserModel#getTotalUsers()
	 */
	public int getTotalUsers() throws Exception 
	{	
		return this.getTotalUsersCommon(JForum.getConnection().prepareStatement(
				SystemGlobals.getSql("UserModel.totalUsers")));
	}
	
	/**
	 * @see net.jforum.model.UserModel#getTotalUsersByGroup(int)
	 */
	public int getTotalUsersByGroup(int groupId) throws Exception
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(
				SystemGlobals.getSql("UserModel.totalUsersByGroup"));
		p.setInt(1, groupId);
		
		return this.getTotalUsersCommon(p);
	}
	
	protected int getTotalUsersCommon(PreparedStatement p) throws Exception
	{
		ResultSet rs = p.executeQuery();
		rs.next();
		
		int total = rs.getInt(1);
		
		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
	{
		return loginAuthenticator.validateLogin(username, password);
	}

	/** 
	 * @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"));
		p.setString(1, exactMatch ? input : "%" + 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();
	}
	
	/** 
	 * @see net.jforum.model.UserModel#updateUsername(int, String)
	 */
	public void updateUsername(int userId, String username) throws Exception
	{
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.updateUsername"));
		p.setString(1, username);
		p.setInt(2, userId);
		p.executeUpdate();
		p.close();
	}
	
	/**
	 * @see net.jforum.model.UserModel#hasUsernameChanged(int, java.lang.String)
	 */
	public boolean hasUsernameChanged(int userId, String usernameToCheck) throws Exception
	{
		boolean status = false;
		
		PreparedStatement p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.getUsername"));
		p.setString(1, usernameToCheck);
		p.setInt(2, userId);
		
		String dbUsername = null;
		
		ResultSet rs = p.executeQuery();
		if (rs.next()) {
			dbUsername = rs.getString("username");
		}
		
		if (!usernameToCheck.equals(dbUsername)) {
			status = true;
		}
		
		rs.close();
		p.close();
		
		return status;
	}
	
	/**
	 * Load KarmaStatus from a list of users.
	 * @param users 
	 * @return
	 * @throws Exception
	 */
	protected List loadKarma(List users) throws Exception{
	    List result = new ArrayList(users.size());
	    
	    User user = null;
		Iterator iter = users.iterator(); 
		while (iter.hasNext()) {		    
		    user = (User) iter.next();
		    //load Karma
		    DataAccessDriver.getInstance().newKarmaModel().getUserTotalKarma(user);
		    result.add(user);
        }		
		return result;
	}
}

⌨️ 快捷键说明

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