📄 groupdao.java
字号:
package com.hongshee.ejforum.data;
/**
* <p>Title: GroupDAO.java</p>
* <p>Description: Forum group data access object</p>
* <p>Copyright: Hongshee Software (c) 2007</p>
* @author jackie du
* @version 1.0
*/
import java.util.ArrayList;
import java.util.Enumeration;
import java.sql.Connection;
//import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;
import com.hongshee.ejforum.common.CacheManager;
import com.hongshee.ejforum.util.PageUtils;
public class GroupDAO extends EntityDAO
{
private static GroupDAO _dao = null;
protected GroupDAO()
{}
public static GroupDAO getInstance()
{
if (_dao == null)
{
_dao = new GroupDAO();
}
return _dao;
}
/**
* Modify group rights
* @param
* request - HttpServletRequest
* @return none
* @throws SQLException
* @since 1.0
*/
public void modifyRights(HttpServletRequest request) throws SQLException
{
Enumeration params = request.getParameterNames();
StringBuilder rights = new StringBuilder();
String key = null;
while(params.hasMoreElements())
{
key = (String)params.nextElement();
if (key.equalsIgnoreCase("act")
|| key.equalsIgnoreCase("submit")
|| key.equalsIgnoreCase("groupID")
|| key.equalsIgnoreCase("fromPath"))
continue;
rights.append(request.getParameter(key));
}
String groupID = request.getParameter("groupID");
ArrayList<Object> paramValues = new ArrayList<Object>();
paramValues.add(rights.toString());
paramValues.add(groupID);
this.execUpdateSql(adapter.Group_ModRights, paramValues);
CacheManager cache = CacheManager.getInstance();
GroupVO aGroup = cache.getGroup(groupID.charAt(0));
aGroup.rights = rights.toString();
}
/**
* Update member groups
* @param
* request - HttpServletRequest
* @return none
* @throws SQLException
* @since 1.0
*/
public String updateMemberGroups(HttpServletRequest request) throws SQLException
{
String result = "OK";
int credits = 0;
ArrayList<Integer> seqnos = new ArrayList<Integer>();
ArrayList<Integer> sortedCredits = new ArrayList<Integer>();
String[] minCredits = request.getParameterValues("minCredits");
// Order by minCredits
for (int i=0; i<minCredits.length; i++)
{
if (minCredits[i].trim().length() > 0)
{
credits = Integer.parseInt(minCredits[i]);
boolean isSorted = false;
for (int j=0; j<sortedCredits.size(); j++)
{
if (credits < sortedCredits.get(j))
{
sortedCredits.add(j, credits);
seqnos.add(j, i);
isSorted = true;
break;
}
}
if (!isSorted)
{
sortedCredits.add(credits);
seqnos.add(i);
}
}
}
if (seqnos.size() > 9)
result = "会员用户组数量不能超过9个";
String[] rights = request.getParameterValues("rights");
String[] groupNames = request.getParameterValues("groupName");
String[] stars = request.getParameterValues("stars");
Connection conn = dbManager.getConnection();
PreparedStatement pstmtUpdate = null;
try
{
conn.setAutoCommit(false);
this.execUpdateSql(adapter.Group_RemoveMembers, null, conn);
pstmtUpdate = conn.prepareStatement(adapter.Group_Insert);
String right = null;
for (int i=0; i<seqnos.size(); i++)
{
pstmtUpdate.setString(1, String.valueOf(i+1));
pstmtUpdate.setString(2, PageUtils.decodeParam(groupNames[seqnos.get(i)]));
pstmtUpdate.setString(3, "M");
pstmtUpdate.setInt(4, sortedCredits.get(i));
pstmtUpdate.setString(5, stars[seqnos.get(i)].trim());
right = rights[seqnos.get(i)].trim();
if (right.length() == 0) right = "ACEFGJK";
pstmtUpdate.setString(6, right);
pstmtUpdate.addBatch();
}
pstmtUpdate.executeBatch();
conn.commit();
return result;
}
catch(SQLException se)
{
conn.rollback();
throw se;
}
finally
{
dbManager.closePStatement(pstmtUpdate);
dbManager.closeConnection(conn);
}
}
/**
* Delete member group from DB
* @param
* groupID - Group ID to be deleted
* @return none
* @throws SQLException
* @since 1.0
*/
public void deleteGroup(String groupID) throws SQLException
{
ArrayList<Object> paramValues = new ArrayList<Object>();
paramValues.add(groupID);
this.execUpdateSql(adapter.Group_Delete, paramValues);
CacheManager cache = CacheManager.getInstance();
cache.loadGroups();
}
/**
* Get all groups info
* @param none
* @return Group list
* @throws SQLException
* @since 1.0
*/
public ArrayList<GroupVO> getAllGroups() throws SQLException
{
Connection conn = null;
PreparedStatement pstmtQuery = null;
ResultSet rs = null;
try
{
conn = dbManager.getConnection();
pstmtQuery = conn.prepareStatement(adapter.Group_SelectAll);
rs = pstmtQuery.executeQuery();
ArrayList<GroupVO> result = new ArrayList<GroupVO>();
GroupVO aGroup = null;
GroupVO lastGroup = null;
while(rs.next())
{
aGroup = new GroupVO();
aGroup.groupID = rs.getString("groupID").charAt(0);
aGroup.groupName = rs.getString("groupName");
aGroup.groupType = rs.getString("groupType").charAt(0);
aGroup.minCredits = rs.getInt("minCredits");
aGroup.stars = rs.getInt("stars");
aGroup.rights = rs.getString("rights");
result.add(aGroup);
if (aGroup.groupType == 'M')
{
aGroup.maxCredits = 999999;
if (lastGroup != null)
lastGroup.maxCredits = aGroup.minCredits;
lastGroup = aGroup;
}
}
return result;
}
finally
{
dbManager.closeResultSet(rs);
dbManager.closePStatement(pstmtQuery);
dbManager.closeConnection(conn);
}
}
public static class GroupVO
{
public char groupID = '1';
public String groupName = null;
public char groupType = 'M';
public int minCredits = 0;
public int maxCredits = 0;
public int stars = 0;
public String rights = null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -