📄 boardserviceimp.java
字号:
Board pboard = this.getBoardDAO().getBoardByID(board.getParentID()); //取得父版区
this.getBoardDAO().removeBoard(board); //删除版区
this.getBoardPermissionDAO().removeBoardPermissionsByBid(board.getId().longValue());
if (pboard != null) { //父版区存在,对ChildIDs字段做矫正
List pcboards = this.getBoardDAO().findBoardsByParentID(pboard.getId().longValue(), 1, 0,
Constant.FIND_BOARDS_BY_ORDER);
List cids = this.getBoardIDs(pcboards);
pboard.setChildIDs(cids);
this.getBoardDAO().saveBoard(pboard);
}
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
/**
*
* @param boards List
* @return List
*/
public List getBoardIDs(List boards) {
List l = new ArrayList();
for (int i = 0; i < boards.size(); i++) {
Board b = (Board) boards.get(i);
l.add(b.getId());
}
return l;
}
/**
*
* @param bid long
* @param groupID int
* @return Map[]
*/
public Map[] getBoardPermission(long bid, int groupID) {
Map[] mapPermission = {new HashMap(), new HashMap()};
BoardPermission bp = this.getBoardPermissionDAO().findBoardPermissionByBidGid(bid, groupID);
List permissions = bp.getPermissions(); //取得权限ID列表
if (permissions != null && !permissions.isEmpty()) {
List permissionList = this.getPermissionDAO().findPermissionnIDs(permissions); //取得权限列表
for (int i = 0; i < permissionList.size(); i++) {
Permission permission = (Permission) permissionList.get(i);
if (permission.getTypeID() == 2) {
mapPermission[0].put(permission.getResource() + "," + permission.getAction(),
permission);
}
if (permission.getTypeID() == 3) {
mapPermission[1].put(permission.getId(), permission);
}
}
}
return mapPermission;
}
public Map[] getBoardMasterPermission(int roleID) {
Map[] mapPermission = {new HashMap(), new HashMap()};
Role role = this.getRoleDAO().findRoleByID(roleID);
List permissions = role.getPermissions(); //取得角色的权限ID列表
if (permissions != null && !permissions.isEmpty()) {
List permissionList = this.getPermissionDAO().findPermissionnIDs(permissions); //取得权限列表
for (int i = 0; i < permissionList.size(); i++) {
Permission permission = (Permission) permissionList.get(i);
if (permission.getTypeID() == 2) {
mapPermission[0].put(permission.getResource() + "," + permission.getAction(),
permission);
}
if (permission.getTypeID() == 3) {
mapPermission[1].put(permission.getId(), permission);
}
}
}
return mapPermission;
}
public boolean isBoardMaster(Board board, String userName) {
if (board.getBoardMaster().get(userName) == null) {
return false;
}
else {
return true;
}
}
public List findBoardsInIDsInSameLevel(List ids, int useStat, int hidden) {
return this.getBoardDAO().findBoardsInIDs(ids, useStat, hidden);
}
public List findBoardsInIDs(List ids) {
return this.getBoardDAO().findBoardsInIDs(ids, -1, -1);
}
public List findParentBoards(List ids) {
List l = this.getBoardDAO().findBoardsInIDs(ids, 1, -1);
List blist = new ArrayList();
for (int i = 0; i < ids.size(); i++) {
for (int j = 0; j < l.size(); j++) {
Board b = (Board) l.get(j);
if (b.getId().equals(ids.get(i))) {
blist.add(b);
}
}
}
return blist;
}
public List findBoardsNeedCount(int useStat, int hidden) {
return this.getBoardDAO().findBoardsNeedCount(useStat, hidden);
}
public List getBoardsNeedCount(List boardlist) {
List boardNeedCount = new ArrayList();
for (int i = 0; i < boardlist.size(); i++) {
Board b = (Board) boardlist.get(i);
if (b.getBoardType() == 3 || b.getBoardType() == 4) {
boardNeedCount.add(b);
}
}
return boardNeedCount;
}
public void saveBoardsPostNumCount() throws BbscsException {
List l = this.getBoardDAO().findBoardsNeedCount(1, 0);
for (int i = 0; i < l.size(); i++) {
Board b = (Board) l.get(i);
b.setMainPostNum(this.getForumDAO().getForumNum(b.getId().longValue(), 1, 0, 0) +
this.getForumHistoryDAO().getForumHistoryNum(b.getId().longValue(), 1, 0, 0));
b.setPostNum(this.getForumDAO().getForumNum(b.getId().longValue(), -1, 0, 0) +
this.getForumHistoryDAO().getForumHistoryNum(b.getId().longValue(), -1, 0, 0));
try {
this.getBoardDAO().saveBoard(b);
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
}
public void createBoardListFileInForumCover(long bid) {
List blist = this.getBoardDAO().findBoardsByParentID(bid, 1, 0, Constant.FIND_BOARDS_BY_ORDER);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < blist.size(); i++) {
Board b = (Board) blist.get(i);
sb.append("<tr>");
sb.append("<td width=\"20%\">·");
sb.append("<a href=\"");
sb.append(BBSCSUtil.getActionMappingURLWithoutPrefix("forum?action=index&bid=" + b.getId().longValue()));
sb.append("\">");
sb.append(b.getBoardName());
sb.append("</a>");
sb.append(">></td>");
sb.append("<td width=\"80%\">");
List blist1 = this.getBoardDAO().findBoardsByParentID(b.getId().longValue(), 1, 0,
Constant.FIND_BOARDS_BY_ORDER);
for (int j = 0; j < blist1.size(); j++) {
Board b1 = (Board) blist1.get(j);
sb.append("·");
sb.append("<a href=\"");
sb.append(BBSCSUtil.getActionMappingURLWithoutPrefix("forum?action=index&bid=" + b1.getId().longValue()));
sb.append("\">");
sb.append(b1.getBoardName());
sb.append("</a> ");
}
sb.append("</td>");
sb.append("</tr>");
}
File blistfile = new File(BBSCSUtil.getIncludePath() + "ForumCover_BoardList_" + bid + ".html");
try {
FileUtils.writeStringToFile(blistfile, sb.toString(), Constant.CHARSET);
}
catch (IOException ex) {
logger.error(ex);
}
}
public void createBoardHotListFileInForumCover(long bid) {
List bhotlist = this.findBoardsAllTree(bid, new ArrayList(), 1, 0, Constant.FIND_BOARDS_BY_ORDER);
List bhlist = this.getBoardsNeedCount(bhotlist);
StringBuffer sb = new StringBuffer();
Collections.sort(bhlist, new BoardsMainPostNumComparator());
int len = bhlist.size();
if (len >= 10) {
len = 10;
}
for (int i = 0; i < len; i++) {
Board b = (Board) bhlist.get(i);
sb.append("<tr>");
sb.append("<td width=\"70%\">");
sb.append("<a href=\"");
sb.append(BBSCSUtil.getActionMappingURLWithoutPrefix("forum?action=index&bid=" + b.getId().longValue()));
sb.append("\">");
sb.append(b.getBoardName());
sb.append("</a>");
sb.append("</td>");
sb.append("<td width=\"30%\">");
sb.append(b.getMainPostNum());
sb.append("</td>");
sb.append("</tr>");
}
File bhotlistfile = new File(BBSCSUtil.getIncludePath() + "ForumCover_BoardHotList_" + bid + ".html");
try {
FileUtils.writeStringToFile(bhotlistfile, sb.toString(), Constant.CHARSET);
}
catch (IOException ex) {
logger.error(ex);
}
}
public void createBoardFileInForumCover() {
List l = this.getBoardDAO().findBoardsByParentID(0);
for (int i = 0; i < l.size(); i++) {
Board b = (Board) l.get(i);
if (b.getBoardType() == 0) {
this.createBoardListFileInForumCover(b.getId().longValue());
this.createBoardHotListFileInForumCover(b.getId().longValue());
}
}
}
public BoardDAO getBoardDAO() {
return boardDAO;
}
public BoardPermissionDAO getBoardPermissionDAO() {
return boardPermissionDAO;
}
public UserGroupDAO getUserGroupDAO() {
return userGroupDAO;
}
public PermissionDAO getPermissionDAO() {
return permissionDAO;
}
public RoleDAO getRoleDAO() {
return roleDAO;
}
public ForumDAO getForumDAO() {
return forumDAO;
}
public ForumHistoryDAO getForumHistoryDAO() {
return forumHistoryDAO;
}
public void setBoardDAO(BoardDAO boardDAO) {
this.boardDAO = boardDAO;
}
public void setBoardPermissionDAO(BoardPermissionDAO boardPermissionDAO) {
this.boardPermissionDAO = boardPermissionDAO;
}
public void setUserGroupDAO(UserGroupDAO userGroupDAO) {
this.userGroupDAO = userGroupDAO;
}
public void setPermissionDAO(PermissionDAO permissionDAO) {
this.permissionDAO = permissionDAO;
}
public void setRoleDAO(RoleDAO roleDAO) {
this.roleDAO = roleDAO;
}
public void setForumDAO(ForumDAO forumDAO) {
this.forumDAO = forumDAO;
}
public void setForumHistoryDAO(ForumHistoryDAO forumHistoryDAO) {
this.forumHistoryDAO = forumHistoryDAO;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -