List of usage examples for org.apache.commons.collections CollectionUtils addAll
public static void addAll(Collection collection, Object[] elements)
From source file:com.tmwsoft.sns.web.action.MainAction.java
public ActionForward cp_friend(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); Map<String, Object> space = (Map<String, Object>) request.getAttribute("space"); Map<Integer, String> sNames = (Map<Integer, String>) request.getAttribute("sNames"); String op = request.getParameter("op"); int uid = Common.intval(request.getParameter("uid")); space.put("key", Common.spaceKey(space, sConfig, 0)); Map<String, String> actives = new HashMap<String, String>(); actives.put(op, " class=\"active\""); request.setAttribute("actives", actives); try {//ww w . j a va 2 s . c o m if ("add".equals(op)) { if (!Common.checkPerm(request, response, "allowfriend")) { MessageVO msgVO = Common.ckSpaceLog(request); if (msgVO != null) { return showMessage(request, response, msgVO); } return showMessage(request, response, "no_privilege"); } if (uid == (Integer) sGlobal.get("supe_uid")) { return showMessage(request, response, "friend_self_error"); } if (Common.in_array((String[]) space.get("friends"), uid)) { return showMessage(request, response, "you_have_friends"); } if (!mainService.checkRealName(request, "friend")) { return showMessage(request, response, "no_privilege_realname"); } Map<String, Object> toSpace = Common.getSpace(request, sGlobal, sConfig, uid); if (Common.empty(toSpace)) { return showMessage(request, response, "space_does_not_exist"); } if (mainService.isBlackList((Integer) toSpace.get("uid"), (Integer) sGlobal.get("supe_uid")) != 0) { return showMessage(request, response, "is_blacklist"); } Map<Integer, String> groups = Common.getFriendGroup(request); int status = Common.getFriendStatus((Integer) sGlobal.get("supe_uid"), uid); if (status == 1) { return showMessage(request, response, "you_have_friends"); } else { int maxFriendNum = (Integer) Common.checkPerm(request, response, sGlobal, "maxfriendnum"); if (maxFriendNum != 0 && (Integer) space.get("friendnum") >= maxFriendNum + (Integer) space.get("addfriend")) { Map globalMagic = Common.getCacheDate(request, response, "cache/cache_magic.jsp", "globalMagic"); if (!Common.empty(globalMagic.get("friendnum"))) { return showMessage(request, response, "enough_of_the_number_of_friends_with_magic"); } else { return showMessage(request, response, "enough_of_the_number_of_friends"); } } int fStatus = Common.getFriendStatus(uid, (Integer) sGlobal.get("supe_uid")); int fu_requestfriendauditing = 0; try { fu_requestfriendauditing = ((Integer) ((Map) ((Map) toSpace.get("privacy")).get("view")) .get("requestfriendauditing")).intValue(); if (fu_requestfriendauditing == 1) { fStatus = 0; Map<String, String> parames = new HashMap<String, String>(); parames.put("op", "add"); parames.put("add2submit", "true"); parames.put("gid", "0"); parames.put("uid", uid + ""); request = new AddFriendHttpServletRequestWrapper(request, parames); } } catch (Exception ex) { ; } if (fStatus == -1) { if (status == -1) { if (!Common.empty(toSpace.get("videostatus"))) { if (!mainService.checkVideoPhoto(request, response, "friend", toSpace)) { return showMessage(request, response, "no_privilege_videophoto"); } } if (submitCheck(request, "addsubmit")) { Map<String, Object> serArr = new HashMap<String, Object>(); serArr.put("uid", sGlobal.get("supe_uid")); serArr.put("fuid", uid); serArr.put("fusername", Common.addSlashes((String) toSpace.get("username"))); serArr.put("gid", Common.intval(request.getParameter("gid"))); serArr.put("note", Common.getStr(request.getParameter("note"), 50, true, true, false, 0, 0, request, response)); serArr.put("dateline", sGlobal.get("timestamp")); dataBaseService.insertTable("sns_friend", serArr, false, false); mainService.sendMail(request, response, uid, "", Common.getMessage(request, "cp_friend_subject", new String[] { sNames.get(space.get("uid")), Common.getSiteUrl(request) + "main.action?ac=friend&op=request" }), "", "friend_add"); dataBaseService.executeUpdate( "UPDATE sns_space SET addfriendnum=addfriendnum+1 WHERE uid='" + uid + "'"); return showMessage(request, response, "request_has_been_sent"); } else { request.setAttribute("op", op); request.setAttribute("tospace", toSpace); request.setAttribute("groups", groups); return include(request, response, sConfig, sGlobal, "cp_friend.jsp"); } } else { return showMessage(request, response, "waiting_for_the_other_test"); } } else { boolean result = false; if (fu_requestfriendauditing == 0) { result = submitCheck(request, "add2submit"); } else { result = true; } if (result) { int gid = Common.intval(request.getParameter("gid")); if (fu_requestfriendauditing == 0) { mainService.updateFriend(request, sGlobal, sConfig, (Integer) space.get("uid"), (String) space.get("username"), (Integer) toSpace.get("uid"), (String) toSpace.get("username"), "add", gid); } else { mainService.updateFriend(request, sGlobal, sConfig, (Integer) space.get("uid"), (String) space.get("username"), (Integer) toSpace.get("uid"), (String) toSpace.get("username"), "invite", gid); } if (Common.ckPrivacy(sGlobal, sConfig, space, "friend", 1)) { Map<String, String> fs = new HashMap<String, String>(); fs.put("icon", "friend"); fs.put("title_template", Common.getMessage(request, "cp_feed_friend_title")); fs.put("body_template", ""); fs.put("body_general", ""); Map titleData = new HashMap(); titleData.put("touser", "<a href=\"zone.action?uid=" + toSpace.get("uid") + "\">" + sNames.get(toSpace.get("uid")) + "</a>"); mainService.addFeed(sGlobal, fs.get("icon"), fs.get("title_template"), titleData, fs.get("body_template"), null, fs.get("body_general"), null, null, "", 0, 0, 0, "", false); } dataBaseService .executeUpdate("UPDATE sns_space SET addfriendnum=addfriendnum-1 WHERE uid='" + space.get("uid") + "' AND addfriendnum>0"); mainService.addNotification(request, sGlobal, sConfig, uid, "friend", Common.getMessage(request, "cp_note_friend_add"), false); return showMessage(request, response, "friends_add", request.getParameter("refer"), 1, new String[] { sNames.get(toSpace.get("uid")) }); } else { op = "add2"; request.setAttribute("op", op); request.setAttribute("tospace", toSpace); request.setAttribute("groups", groups); return include(request, response, sConfig, sGlobal, "cp_friend.jsp"); } } } } else if ("ignore".equals(op)) { if (uid > 0) { if (submitCheck(request, "friendsubmit")) { int fStatus = Common.getFriendStatus(uid, (Integer) space.get("uid")); if (fStatus == 1) { mainService.updateFriend(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid"), (String) sGlobal.get("supe_username"), uid, "", "ignore", 0); } else if (fStatus == 0) { mainService.ignoreRequest(space, sConfig, uid); } return showMessage(request, response, "do_success", "main.action?ac=friend&op=request", 0); } } else if (space.get("key").toString().equals(request.getParameter("key"))) { List<Map<String, Object>> fUids = dataBaseService .executeQuery("SELECT uid FROM sns_friend WHERE fuid='" + space.get("uid") + "' AND status='0' LIMIT 0,1"); if (fUids.size() > 0) { Map<String, Object> value = fUids.get(0); uid = (Integer) value.get("uid"); Map whereArr = new HashMap(); whereArr.put("uid", uid); String userName = Common.getCount("sns_space", whereArr, "username"); mainService.ignoreRequest(space, sConfig, uid); return showMessage(request, response, "friend_ignore_next", "main.action?ac=friend&op=ignore&confirm=1&key=" + space.get("key"), 1, userName); } else { return showMessage(request, response, "do_success", "main.action?ac=friend&op=request", 0); } } else { return showMessage(request, response, "specified_user_is_not_your_friend"); } } else if ("addconfirm".equals(op)) { if (space.get("key").toString().equals(request.getParameter("key"))) { int maxFriendNum = (Integer) Common.checkPerm(request, response, sGlobal, "maxfriendnum"); if (maxFriendNum != 0 && (Integer) space.get("friendnum") >= maxFriendNum + (Integer) space.get("addfriend")) { Map globalMagic = Common.getCacheDate(request, response, "cache/cache_magic.jsp", "globalMagic"); if (!Common.empty(globalMagic.get("friendnum"))) { return showMessage(request, response, "enough_of_the_number_of_friends_with_magic"); } else { return showMessage(request, response, "enough_of_the_number_of_friends"); } } List<Map<String, Object>> uids = dataBaseService .executeQuery("SELECT uid FROM sns_friend WHERE fuid='" + space.get("uid") + "' AND status='0' LIMIT 0,1"); if (uids.size() > 0) { Map<String, Object> value = uids.get(0); uid = (Integer) value.get("uid"); Map whereArr = new HashMap(); whereArr.put("uid", uid); String userName = Common.getCount("sns_space", whereArr, "username"); mainService.updateFriend(request, sGlobal, sConfig, (Integer) space.get("uid"), (String) space.get("username"), uid, userName, "add", 0); dataBaseService.executeUpdate("UPDATE sns_space SET addfriendnum=addfriendnum-1 WHERE uid='" + space.get("uid") + "' AND addfriendnum>0"); return showMessage(request, response, "friend_addconfirm_next", "main.action?ac=friend&op=addconfirm&key=" + space.get("key"), 1, userName); } } return showMessage(request, response, "do_success", "main.action?ac=friend&op=request", 0); } else if ("syn".equals(op)) { return null; } else if ("find".equals(op)) { int maxNum = 18; List noUids = new ArrayList(); if (space.get("friends") != null) { CollectionUtils.addAll(noUids, (String[]) space.get("friends")); } noUids.add(space.get("uid").toString()); List<Map<String, Object>> nearList = new ArrayList<Map<String, Object>>(maxNum); int i = 0; String myIp = Common.getOnlineIP(request, true); List<Map<String, Object>> sessionList = dataBaseService .executeQuery("SELECT * FROM sns_session WHERE ip='" + myIp + "' LIMIT 0,200"); for (Map<String, Object> value : sessionList) { if (!noUids.contains(value.get("uid").toString())) { nearList.add(value); i++; if (i >= maxNum) { break; } } } request.setAttribute("nearList", nearList); i = 0; if (!Common.empty(space.get("feedfriend"))) { Map friendList = new HashMap(maxNum); List<Map<String, Object>> friends = dataBaseService .executeQuery("SELECT fuid AS uid, fusername AS username FROM " + " sns_friend WHERE uid IN (" + space.get("feedfriend") + ") LIMIT 0,200"); for (Map<String, Object> value : friends) { if (!noUids.contains(value.get("uid").toString()) && !Common.empty(value.get("username"))) { friendList.put(value.get("uid"), value); i++; if (i >= maxNum) { break; } } } request.setAttribute("friendList", friendList); } i = 0; List<Map<String, Object>> onLineList = new ArrayList<Map<String, Object>>(maxNum); List<Map<String, Object>> onLines = dataBaseService .executeQuery("SELECT * FROM sns_session LIMIT 0,200"); for (Map<String, Object> value : onLines) { if (!noUids.contains(value.get("uid").toString())) { onLineList.add(value); i++; if (i >= maxNum) { break; } } } request.setAttribute("onLineList", onLineList); } else if ("changegroup".equals(op)) { if (submitCheck(request, "changegroupsubmit")) { dataBaseService.executeUpdate( "UPDATE sns_friend SET gid='" + Common.intval(request.getParameter("group")) + "' WHERE uid='" + sGlobal.get("supe_uid") + "' AND fuid='" + uid + "'"); mainService.friendCache(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid")); return showMessage(request, response, "do_success", (String) sGlobal.get("refer")); } List<Map<String, Object>> friends = dataBaseService .executeQuery("SELECT * FROM sns_friend WHERE uid='" + sGlobal.get("supe_uid") + "' AND fuid='" + uid + "'"); if (friends.isEmpty()) { return showMessage(request, response, "specified_user_is_not_your_friend"); } Map<String, Object> friend = friends.get(0); Map groupSelect = new HashMap(); groupSelect.put(friend.get("gid"), " checked"); Map<Integer, String> groups = Common.getFriendGroup(request); request.setAttribute("groups", groups); request.setAttribute("groupSelect", groupSelect); } else if ("changenum".equals(op)) { if (submitCheck(request, "changenumsubmit")) { dataBaseService.executeUpdate( "UPDATE sns_friend SET num='" + Common.intval(request.getParameter("num")) + "' WHERE uid='" + sGlobal.get("supe_uid") + "' AND fuid='" + uid + "'"); mainService.friendCache(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid")); return showMessage(request, response, "do_success", (String) sGlobal.get("refer"), 0); } List<Map<String, Object>> friends = dataBaseService .executeQuery("SELECT * FROM sns_friend WHERE uid='" + sGlobal.get("supe_uid") + "' AND fuid='" + uid + "'"); if (friends.isEmpty()) { return showMessage(request, response, "specified_user_is_not_your_friend"); } request.setAttribute("friend", friends.get(0)); } else if ("group".equals(op)) { if (submitCheck(request, "groupsubmin")) { String[] fUids = request.getParameterValues("fuids"); if (Common.empty(fUids)) { return showMessage(request, response, "please_correct_choice_groups_friend"); } int groupId = Common.intval(request.getParameter("group")); dataBaseService.executeUpdate( "UPDATE sns_friend SET gid='" + groupId + "' WHERE uid='" + sGlobal.get("supe_uid") + "' AND fuid IN (" + Common.sImplode(fUids) + ") AND status='1'"); mainService.friendCache(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid")); return showMessage(request, response, "do_success", (String) sGlobal.get("refer")); } int perPage = 50; int page = Common.intval(request.getParameter("page")); if (page < 1) { page = 1; } int start = (page - 1) * perPage; if (!Common.empty(space.get("friendnum"))) { Map<Integer, String> groups = Common.getFriendGroup(request); String theURL = "main.action?ac=friend&op=group"; int group = request.getParameter("group") == null ? -1 : Common.intval(request.getParameter("group")); String whereSQL = ""; if (group > -1) { whereSQL = "AND main.gid='" + group + "'"; theURL += "&group=" + group; } int count = dataBaseService.findRows("SELECT COUNT(*) FROM sns_friend main WHERE main.uid='" + space.get("uid") + "' AND main.status='1' " + whereSQL); List<Map<String, Object>> list = dataBaseService.executeQuery( "SELECT main.fuid AS uid,main.fusername AS username, main.gid, main.num FROM sns_friend main WHERE main.uid='" + space.get("uid") + "' AND main.status='1' " + whereSQL + " ORDER BY main.dateline DESC LIMIT " + start + "," + perPage); for (Map<String, Object> value : list) { value.put("group", groups.get(value.get("gid"))); } request.setAttribute("list", list); request.setAttribute("multi", Common.multi(request, count, perPage, page, (Integer) sConfig.get("maxpage"), theURL, null, null)); } Map<Integer, String> groups = Common.getFriendGroup(request); request.setAttribute("groups", groups); actives.put("group", " class=\"active\""); } else if ("request".equals(op)) { if (submitCheck(request, "requestsubmin")) { return showMessage(request, response, "do_success", (String) sGlobal.get("refer")); } int maxFriendnum = (Integer) Common.checkPerm(request, response, sGlobal, "maxfriendnum"); if (maxFriendnum > 0) { maxFriendnum = maxFriendnum + (Integer) space.get("addfriend"); } int perPage = 20; int page = Common.intval(request.getParameter("page")); if (page < 1) { page = 1; } int start = (page - 1) * perPage; String[] friend1 = (String[]) space.get("friends"); Map whereArr = new HashMap(); whereArr.put("fuid", space.get("uid")); whereArr.put("status", 0); int count = Common.intval(Common.getCount("sns_friend", whereArr, null)); if (count > 0) { List<Map<String, Object>> list = dataBaseService .executeQuery("SELECT f.dateline,f.note,f.fuid, s.*, sf.friend FROM " + " sns_friend f LEFT JOIN sns_space s ON s.uid=f.uid LEFT JOIN sns_spacefield sf ON sf.uid=f.uid WHERE f.fuid='" + space.get("uid") + "' AND f.status='0' ORDER BY f.dateline DESC LIMIT " + start + "," + perPage); for (Map<String, Object> value : list) { String[] cFriend = {}; String[] friend2 = Common.empty(value.get("friend")) ? null : value.get("friend").toString().split(","); if (friend1 != null && friend2 != null) { cFriend = getArrayIntersect(friend1, friend2); } value.put("cfriend", Common.implode(cFriend, ",")); value.put("cfcount", cFriend.length); } request.setAttribute("list", list); } if (count != (Integer) space.get("addfriendnum")) { dataBaseService.executeUpdate("UPDATE sns_space SET addfriendnum='" + count + "' WHERE uid='" + space.get("uid") + "'"); } request.setAttribute("multi", Common.multi(request, count, perPage, page, (Integer) sConfig.get("maxpage"), "main.action?ac=friend&op=request", null, null)); request.setAttribute("maxfriendnum", maxFriendnum); } else if ("groupname".equals(op)) { Map<Integer, String> groups = Common.getFriendGroup(request); int group = Common.intval(request.getParameter("group")); if (groups.get(group) == null) { return showMessage(request, response, "change_friend_groupname_error"); } if (submitCheck(request, "groupnamesubmit")) { Map<String, Object> privacy = (Map<String, Object>) space.get("privacy"); Map<Integer, String> groupList = null; if (privacy != null) { groupList = (Map<Integer, String>) privacy.get("groupname"); } groupList = groupList == null ? new HashMap<Integer, String>() : groupList; String groupName = Common.getStr(request.getParameter("groupname"), 20, true, true, false, 0, 0, request, response); groupList.put(group, groupName); if (privacy != null) { privacy.put("groupname", groupList); space.put("privacy", privacy); } mainService.privacyUpdate(privacy, (Integer) sGlobal.get("supe_uid")); return showMessage(request, response, "do_success", request.getParameter("refer")); } request.setAttribute("group", group); request.setAttribute("groups", groups); } else if ("groupignore".equals(op)) { Map<Integer, String> groups = Common.getFriendGroup(request); int group = Common.intval(request.getParameter("group")); if (groups.get(group) == null) { return showMessage(request, response, "change_friend_groupname_error"); } if (submitCheck(request, "groupignoresubmit")) { Map<String, Object> privacy = (Map<String, Object>) space.get("privacy"); Map<Integer, Integer> filterGid = null; if (privacy != null) { filterGid = (Map<Integer, Integer>) privacy.get("filter_gid"); } filterGid = filterGid == null ? new HashMap<Integer, Integer>() : filterGid; if (filterGid.get(group) != null) { filterGid.remove(group); } else { filterGid.put(group, group); } if (privacy != null) { privacy.put("filter_gid", filterGid); space.put("privacy", privacy); } mainService.privacyUpdate(privacy, (Integer) sGlobal.get("supe_uid")); mainService.friendCache(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid")); return showMessage(request, response, "do_success", request.getParameter("refer"), 0); } request.setAttribute("group", group); } else if ("blacklist".equals(op)) { if ("delete".equals(request.getParameter("subop"))) { dataBaseService.executeUpdate("DELETE FROM sns_blacklist WHERE uid='" + space.get("uid") + "' AND buid='" + uid + "'"); return showMessage(request, response, "do_success", "zone.action?do=friend&view=blacklist&start=" + request.getParameter("start"), 0); } if (submitCheck(request, "blacklistsubmit")) { String userName = Common.trim(request.getParameter("username")); List<Map<String, Object>> spaceList = dataBaseService .executeQuery("SELECT * FROM sns_space WHERE username='" + userName + "'"); if (spaceList.isEmpty()) { return showMessage(request, response, "space_does_not_exist"); } Map<String, Object> toSpace = spaceList.get(0); if (toSpace.get("uid").equals(space.get("uid"))) { return showMessage(request, response, "unable_to_manage_self"); } if (Common.in_array((String[]) space.get("friends"), toSpace.get("uid"))) { mainService.updateFriend(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid"), (String) sGlobal.get("supe_username"), (Integer) toSpace.get("uid"), "", "ignore", 0); } Map insertData = new HashMap(); insertData.put("uid", space.get("uid")); insertData.put("buid", toSpace.get("uid")); insertData.put("dateline", sGlobal.get("timestamp")); dataBaseService.insertTable("sns_blacklist", insertData, false, true); return showMessage(request, response, "do_success", "zone.action?do=friend&view=blacklist&start=" + request.getParameter("start"), 0); } } else if ("rand".equals(op)) { Object[] randUids = null; if ((Integer) space.get("friendnum") < 5) { List<Map<String, Object>> sessionList = dataBaseService .executeQuery("SELECT uid FROM sns_session LIMIT 0,100"); List onlineList = new ArrayList(sessionList.size()); for (Map<String, Object> value : sessionList) { if (!value.get("uid").equals(space.get("uid"))) { onlineList.add(value.get("uid")); } } randUids = (Object[]) Common .sarrayRand(arrayMerge(onlineList.toArray(), (String[]) space.get("friends")), 1); } else { randUids = (Object[]) Common.sarrayRand(space.get("friends"), 1); } return showMessage(request, response, "do_success", "zone.action?uid=" + (randUids == null ? "" : randUids[randUids.length - 1]), 0); } else if ("getcfriend".equals(op)) { String[] fuids = Common.empty(request.getParameter("fuid")) ? null : request.getParameter("fuid").split(","); Map<Integer, Integer> newfUids = new HashMap<Integer, Integer>(fuids == null ? 0 : fuids.length); if (fuids != null) { for (String value : fuids) { int fuid = Common.intval(value); if (fuid != 0) { newfUids.put(fuid, fuid); } } } if (!newfUids.isEmpty()) { List<Map<String, Object>> list = dataBaseService .executeQuery("SELECT uid,username,name,namestatus FROM sns_space WHERE uid IN (" + Common.sImplode(newfUids) + ") LIMIT 0,15"); request.setAttribute("list", list); } } else if ("search".equals(op)) { Map<Integer, Map<String, Object>> fields = Common.getCacheDate(request, response, "cache/cache_profilefield.jsp", "globalProfilefield"); if (!Common.empty(request.getParameter("searchsubmit")) || !Common.empty(request.getParameter("searchmode"))) { Map<String, String[]> paramMap = request.getParameterMap(); paramMap.put("searchsubmit", new String[] { 1 + "" }); paramMap.put("searchmode", new String[] { 1 + "" }); List<String> whereArr = new ArrayList<String>(); Map<String, String> fromArr = new HashMap<String, String>(); String fSQL = ""; fromArr.put("space", " sns_space s"); String searchKey = request.getParameter("searchkey"); if (!Common.empty(Common.stripSearchKey(searchKey))) { whereArr.add("(s.name='" + searchKey + "' OR s.username='" + searchKey + "')"); } else { for (String value : new String[] { "uid", "username", "name", "videostatus", "avatar" }) { if (!Common.empty(request.getParameter(value))) { whereArr.add("s." + value + "='" + request.getParameter(value) + "'"); } } } String spaceField = null; for (String value : new String[] { "sex", "qq", "msn", "birthyear", "birthmonth", "birthday", "blood", "marry", "birthprovince", "birthcity", "resideprovince", "residecity" }) { if (!Common.empty(request.getParameter(value))) { fromArr.put("spacefield", " sns_spacefield sf"); spaceField = "sf.uid=s.uid"; whereArr.add("sf." + value + "='" + request.getParameter(value) + "'"); fSQL += ", sf." + value; } } int startAge, endAge; endAge = startAge = 0; if (!Common.empty(request.getParameter("endage"))) { startAge = Integer.valueOf(Common.sgmdate(request, "yyyy", 0)) - Common.intval(request.getParameter("endage")); } if (!Common.empty(request.getParameter("startage"))) { endAge = Integer.valueOf(Common.sgmdate(request, "yyyy", 0)) - Common.intval(request.getParameter("startage")); } if (startAge != 0 || endAge != 0) { fromArr.put("spacefield", " sns_spacefield sf"); spaceField = "sf.uid=s.uid"; } if (startAge != 0 && endAge != 0 && endAge > startAge) { whereArr.add("(sf.birthyear>=" + startAge + " AND sf.birthyear<=" + endAge + ")"); } else if (startAge != 0 && endAge == 0) { whereArr.add("sf.birthyear>=" + startAge); } else if (startAge == 0 && endAge != 0) { whereArr.add("sf.birthyear<=" + endAge); } boolean haveField = false; for (Entry<Integer, Map<String, Object>> e : fields.entrySet()) { if (!Common.empty(e.getValue().get("allowsearch"))) { String field = Common.stripSearchKey(request.getParameter("field_" + e.getKey())); if (!Common.empty(field)) { haveField = true; whereArr.add("sf.field_" + e.getKey() + " LIKE '%" + field + "%'"); } } } if (haveField) { fromArr.put("spacefield", " sns_spacefield sf"); spaceField = "sf.uid=s.uid"; } String type = request.getParameter("type"); String spaceInfo = null; if ("edu".equals(type) || "work".equals(type)) { for (String value : new String[] { "type", "title", "subtitle", "startyear" }) { if (!Common.empty(request.getParameter(value))) { fromArr.put("spaceinfo", " sns_spaceinfo si"); spaceInfo = "si.uid=s.uid"; whereArr.add("si." + value + "='" + request.getParameter(value) + "'"); } } } if (!whereArr.isEmpty()) { List<Map<String, Object>> searchList = dataBaseService .executeQuery("SELECT s.* " + fSQL + " FROM " + Common.implode(fromArr, ",") + " WHERE " + Common.implode(whereArr, " AND ") + (spaceField == null ? "" : " AND " + spaceField) + (spaceInfo == null ? "" : " AND " + spaceInfo) + " LIMIT 0,500"); Set<Map<String, Object>> list = new LinkedHashSet<Map<String, Object>>(searchList.size()); for (Map<String, Object> value : searchList) { value.put("isfriend", (value.get("uid").equals(space.get("uid")) || (Common.in_array((String[]) space.get("friends"), value.get("uid")))) ? true : false); value.put("gColor", Common.getColor(request, response, (Integer) value.get("groupid"))); value.put("gIcon", Common.getIcon(request, response, (Integer) value.get("groupid"))); list.add(value); } request.setAttribute("list", list); } } else { StringBuffer yearHTML = new StringBuffer(); int nowy = Integer.valueOf(Common.sgmdate(request, "yyyy", 0)); for (int i = 0; i < 50; i++) { int they = nowy - i; yearHTML.append("<option value=\"" + they + "\">" + they + "</option>"); } request.setAttribute("yearhtml", yearHTML); Map sexArr = new HashMap(); sexArr.put(space.get("sex").toString(), " checked"); request.setAttribute("sexarr", sexArr); String all = request.getParameter("all"); StringBuffer birthYearHTML = new StringBuffer(); for (int i = 0; i < 100; i++) { int they = nowy - i; String selectStr = ""; if (Common.empty(all)) { selectStr = they == (Integer) space.get("birthyear") ? " selected" : ""; } birthYearHTML .append("<option value=\"" + they + "\"" + selectStr + ">" + they + "</option>"); } request.setAttribute("birthyearhtml", birthYearHTML.toString()); String birthMonthHTML = ""; for (int i = 1; i < 13; i++) { String selectStr = ""; if (Common.empty(all)) { selectStr = i == (Integer) space.get("birthmonth") ? " selected" : ""; } birthMonthHTML += "<option value=\"" + i + "\"" + selectStr + ">" + i + "</option>"; } request.setAttribute("birthmonthhtml", birthMonthHTML.toString()); StringBuffer birthdayHTML = new StringBuffer(); for (int i = 1; i < 29; i++) { String selectStr = ""; if (Common.empty(all)) { selectStr = i == (Integer) space.get("birthday") ? " selected" : ""; } birthdayHTML.append("<option value=\"" + i + "\"" + selectStr + ">" + i + "</option>"); } request.setAttribute("birthdayhtml", birthdayHTML.toString()); String bloodHTML = ""; for (String value : new String[] { "A", "B", "O", "AB" }) { String selectStr = ""; if (Common.empty(all)) { selectStr = value.equals(space.get("blood")) ? " selected" : ""; } bloodHTML += "<option value=\"" + value + "\"" + selectStr + ">" + value + "</option>"; } request.setAttribute("bloodhtml", bloodHTML.toString()); Map marryArr = new HashMap(); marryArr.put(space.get("marry").toString(), " selected"); request.setAttribute("marryarr", marryArr); List<Integer> removeKeys = new ArrayList<Integer>(fields.size()); for (Entry<Integer, Map<String, Object>> e : fields.entrySet()) { Map<String, Object> fValue = e.getValue(); if (!Common.empty(fValue.get("allowsearch"))) { if ("text".equals(fValue.get("formtype"))) { fValue.put("html", "<input type=\"text\" name=\"field_" + e.getKey() + "\" value=\"\" class=\"t_input\">"); } else { StringBuffer HTML = new StringBuffer(); HTML.append("<select name=\"field_" + e.getKey() + "\"><option value=\"\">---</option>"); String[] optionArr = fValue.get("choice").toString().split("\n"); for (String ov : optionArr) { ov = ov.trim(); if (!"".equals(ov)) { HTML.append("<option value=\"" + ov + "\">" + ov + "</option>"); } } HTML.append("</select>"); fValue.put("html", HTML.toString()); } } else { removeKeys.add(e.getKey()); } } for (Integer removeKey : removeKeys) { fields.remove(removeKey); } request.setAttribute("fields", fields); } } } catch (Exception e) { e.printStackTrace(); return showMessage(request, response, e.getMessage()); } request.setAttribute("op", op); request.setAttribute("uid", uid); return include(request, response, sConfig, sGlobal, "cp_friend.jsp"); }
From source file:cn.jcenterhome.web.action.CpAction.java
public ActionForward cp_friend(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); Map<String, Object> space = (Map<String, Object>) request.getAttribute("space"); Map<Integer, String> sNames = (Map<Integer, String>) request.getAttribute("sNames"); String op = request.getParameter("op"); int uid = Common.intval(request.getParameter("uid")); space.put("key", Common.spaceKey(space, sConfig, 0)); Map<String, String> actives = new HashMap<String, String>(); actives.put(op, " class=\"active\""); request.setAttribute("actives", actives); try {//from w ww.j a v a2s . co m if ("add".equals(op)) { if (!Common.checkPerm(request, response, "allowfriend")) { MessageVO msgVO = Common.ckSpaceLog(request); if (msgVO != null) { return showMessage(request, response, msgVO); } return showMessage(request, response, "no_privilege"); } if (uid == (Integer) sGlobal.get("supe_uid")) { return showMessage(request, response, "friend_self_error"); } if (Common.in_array((String[]) space.get("friends"), uid)) { return showMessage(request, response, "you_have_friends"); } if (!cpService.checkRealName(request, "friend")) { return showMessage(request, response, "no_privilege_realname"); } Map<String, Object> toSpace = Common.getSpace(request, sGlobal, sConfig, uid); if (Common.empty(toSpace)) { return showMessage(request, response, "space_does_not_exist"); } if (cpService.isBlackList((Integer) toSpace.get("uid"), (Integer) sGlobal.get("supe_uid")) != 0) { return showMessage(request, response, "is_blacklist"); } Map<Integer, String> groups = Common.getFriendGroup(request); int status = Common.getFriendStatus((Integer) sGlobal.get("supe_uid"), uid); if (status == 1) { return showMessage(request, response, "you_have_friends"); } else { int maxFriendNum = (Integer) Common.checkPerm(request, response, sGlobal, "maxfriendnum"); if (maxFriendNum != 0 && (Integer) space.get("friendnum") >= maxFriendNum + (Integer) space.get("addfriend")) { Map globalMagic = Common.getCacheDate(request, response, "/data/cache/cache_magic.jsp", "globalMagic"); if (!Common.empty(globalMagic.get("friendnum"))) { return showMessage(request, response, "enough_of_the_number_of_friends_with_magic"); } else { return showMessage(request, response, "enough_of_the_number_of_friends"); } } int fStatus = Common.getFriendStatus(uid, (Integer) sGlobal.get("supe_uid")); if (fStatus == -1) { if (status == -1) { if (!Common.empty(toSpace.get("videostatus"))) { if (!cpService.checkVideoPhoto(request, response, "friend", toSpace)) { return showMessage(request, response, "no_privilege_videophoto"); } } if (submitCheck(request, "addsubmit")) { Map<String, Object> serArr = new HashMap<String, Object>(); serArr.put("uid", sGlobal.get("supe_uid")); serArr.put("fuid", uid); serArr.put("fusername", Common.addSlashes((String) toSpace.get("username"))); serArr.put("gid", Common.intval(request.getParameter("gid"))); serArr.put("note", Common.getStr(request.getParameter("note"), 50, true, true, false, 0, 0, request, response)); serArr.put("dateline", sGlobal.get("timestamp")); dataBaseService.insertTable("friend", serArr, false, false); cpService.sendMail(request, response, uid, "", Common.getMessage(request, "cp_friend_subject", new String[] { sNames.get(space.get("uid")), Common.getSiteUrl(request) + "cp.jsp?ac=friend&op=request" }), "", "friend_add"); dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("space") + " SET addfriendnum=addfriendnum+1 WHERE uid='" + uid + "'"); return showMessage(request, response, "request_has_been_sent"); } else { request.setAttribute("op", op); request.setAttribute("tospace", toSpace); request.setAttribute("groups", groups); return include(request, response, sConfig, sGlobal, "cp_friend.jsp"); } } else { return showMessage(request, response, "waiting_for_the_other_test"); } } else { if (submitCheck(request, "add2submit")) { int gid = Common.intval(request.getParameter("gid")); cpService.updateFriend(request, sGlobal, sConfig, (Integer) space.get("uid"), (String) space.get("username"), (Integer) toSpace.get("uid"), (String) toSpace.get("username"), "add", gid); if (Common.ckPrivacy(sGlobal, sConfig, space, "friend", 1)) { Map<String, String> fs = new HashMap<String, String>(); fs.put("icon", "friend"); fs.put("title_template", Common.getMessage(request, "cp_feed_friend_title")); fs.put("body_template", ""); fs.put("body_general", ""); Map titleData = new HashMap(); titleData.put("touser", "<a href=\"space.jsp?uid=" + toSpace.get("uid") + "\">" + sNames.get(toSpace.get("uid")) + "</a>"); cpService.addFeed(sGlobal, fs.get("icon"), fs.get("title_template"), titleData, fs.get("body_template"), null, fs.get("body_general"), null, null, "", 0, 0, 0, "", false); } dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("space") + " SET addfriendnum=addfriendnum-1 WHERE uid='" + space.get("uid") + "' AND addfriendnum>0"); cpService.addNotification(request, sGlobal, sConfig, uid, "friend", Common.getMessage(request, "cp_note_friend_add"), false); return showMessage(request, response, "friends_add", request.getParameter("refer"), 1, new String[] { sNames.get(toSpace.get("uid")) }); } else { op = "add2"; request.setAttribute("op", op); request.setAttribute("tospace", toSpace); request.setAttribute("groups", groups); return include(request, response, sConfig, sGlobal, "cp_friend.jsp"); } } } } else if ("ignore".equals(op)) { if (uid > 0) { if (submitCheck(request, "friendsubmit")) { int fStatus = Common.getFriendStatus(uid, (Integer) space.get("uid")); if (fStatus == 1) { cpService.updateFriend(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid"), (String) sGlobal.get("supe_username"), uid, "", "ignore", 0); } else if (fStatus == 0) { cpService.ignoreRequest(space, sConfig, uid); } return showMessage(request, response, "do_success", "cp.jsp?ac=friend&op=request", 0); } } else if (space.get("key").toString().equals(request.getParameter("key"))) { List<Map<String, Object>> fUids = dataBaseService .executeQuery("SELECT uid FROM " + JavaCenterHome.getTableName("friend") + " WHERE fuid='" + space.get("uid") + "' AND status='0' LIMIT 0,1"); if (fUids.size() > 0) { Map<String, Object> value = fUids.get(0); uid = (Integer) value.get("uid"); Map whereArr = new HashMap(); whereArr.put("uid", uid); String userName = Common.getCount("space", whereArr, "username"); cpService.ignoreRequest(space, sConfig, uid); return showMessage(request, response, "friend_ignore_next", "cp.jsp?ac=friend&op=ignore&confirm=1&key=" + space.get("key"), 1, userName); } else { return showMessage(request, response, "do_success", "cp.jsp?ac=friend&op=request", 0); } } else { return showMessage(request, response, "specified_user_is_not_your_friend"); } } else if ("addconfirm".equals(op)) { if (space.get("key").toString().equals(request.getParameter("key"))) { int maxFriendNum = (Integer) Common.checkPerm(request, response, sGlobal, "maxfriendnum"); if (maxFriendNum != 0 && (Integer) space.get("friendnum") >= maxFriendNum + (Integer) space.get("addfriend")) { Map globalMagic = Common.getCacheDate(request, response, "/data/cache/cache_magic.jsp", "globalMagic"); if (!Common.empty(globalMagic.get("friendnum"))) { return showMessage(request, response, "enough_of_the_number_of_friends_with_magic"); } else { return showMessage(request, response, "enough_of_the_number_of_friends"); } } List<Map<String, Object>> uids = dataBaseService .executeQuery("SELECT uid FROM " + JavaCenterHome.getTableName("friend") + " WHERE fuid='" + space.get("uid") + "' AND status='0' LIMIT 0,1"); if (uids.size() > 0) { Map<String, Object> value = uids.get(0); uid = (Integer) value.get("uid"); Map whereArr = new HashMap(); whereArr.put("uid", uid); String userName = Common.getCount("space", whereArr, "username"); cpService.updateFriend(request, sGlobal, sConfig, (Integer) space.get("uid"), (String) space.get("username"), uid, userName, "add", 0); dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("space") + " SET addfriendnum=addfriendnum-1 WHERE uid='" + space.get("uid") + "' AND addfriendnum>0"); return showMessage(request, response, "friend_addconfirm_next", "cp.jsp?ac=friend&op=addconfirm&key=" + space.get("key"), 1, userName); } } return showMessage(request, response, "do_success", "cp.jsp?ac=friend&op=request", 0); } else if ("syn".equals(op)) { return null; } else if ("find".equals(op)) { int maxNum = 18; List noUids = new ArrayList(); if (space.get("friends") != null) { CollectionUtils.addAll(noUids, (String[]) space.get("friends")); } noUids.add(space.get("uid").toString()); List<Map<String, Object>> nearList = new ArrayList<Map<String, Object>>(maxNum); int i = 0; String myIp = Common.getOnlineIP(request, true); List<Map<String, Object>> sessionList = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("session") + " WHERE ip='" + myIp + "' LIMIT 0,200"); for (Map<String, Object> value : sessionList) { if (!noUids.contains(value.get("uid").toString())) { Common.realname_set(sGlobal, sConfig, sNames, (Integer) value.get("uid"), (String) value.get("username"), "", 0); nearList.add(value); i++; if (i >= maxNum) { break; } } } request.setAttribute("nearList", nearList); i = 0; if (!Common.empty(space.get("feedfriend"))) { Map friendList = new HashMap(maxNum); List<Map<String, Object>> friends = dataBaseService .executeQuery("SELECT fuid AS uid, fusername AS username FROM " + JavaCenterHome.getTableName("friend") + " WHERE uid IN (" + space.get("feedfriend") + ") LIMIT 0,200"); for (Map<String, Object> value : friends) { if (!noUids.contains(value.get("uid").toString()) && !Common.empty(value.get("username"))) { Common.realname_set(sGlobal, sConfig, sNames, (Integer) value.get("uid"), (String) value.get("username"), "", 0); friendList.put(value.get("uid"), value); i++; if (i >= maxNum) { break; } } } request.setAttribute("friendList", friendList); } i = 0; List<Map<String, Object>> onLineList = new ArrayList<Map<String, Object>>(maxNum); List<Map<String, Object>> onLines = dataBaseService .executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("session") + " LIMIT 0,200"); for (Map<String, Object> value : onLines) { if (!noUids.contains(value.get("uid").toString())) { Common.realname_set(sGlobal, sConfig, sNames, (Integer) value.get("uid"), (String) value.get("username"), null, 0); onLineList.add(value); i++; if (i >= maxNum) { break; } } } request.setAttribute("onLineList", onLineList); Common.realname_get(sGlobal, sConfig, sNames, space); } else if ("changegroup".equals(op)) { if (submitCheck(request, "changegroupsubmit")) { dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("friend") + " SET gid='" + Common.intval(request.getParameter("group")) + "' WHERE uid='" + sGlobal.get("supe_uid") + "' AND fuid='" + uid + "'"); cpService.friendCache(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid")); return showMessage(request, response, "do_success", (String) sGlobal.get("refer")); } List<Map<String, Object>> friends = dataBaseService .executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("friend") + " WHERE uid='" + sGlobal.get("supe_uid") + "' AND fuid='" + uid + "'"); if (friends.isEmpty()) { return showMessage(request, response, "specified_user_is_not_your_friend"); } Map<String, Object> friend = friends.get(0); Map groupSelect = new HashMap(); groupSelect.put(friend.get("gid"), " checked"); Map<Integer, String> groups = Common.getFriendGroup(request); request.setAttribute("groups", groups); request.setAttribute("groupSelect", groupSelect); } else if ("changenum".equals(op)) { if (submitCheck(request, "changenumsubmit")) { dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("friend") + " SET num='" + Common.intval(request.getParameter("num")) + "' WHERE uid='" + sGlobal.get("supe_uid") + "' AND fuid='" + uid + "'"); cpService.friendCache(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid")); return showMessage(request, response, "do_success", (String) sGlobal.get("refer"), 0); } List<Map<String, Object>> friends = dataBaseService .executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("friend") + " WHERE uid='" + sGlobal.get("supe_uid") + "' AND fuid='" + uid + "'"); if (friends.isEmpty()) { return showMessage(request, response, "specified_user_is_not_your_friend"); } request.setAttribute("friend", friends.get(0)); } else if ("group".equals(op)) { if (submitCheck(request, "groupsubmin")) { String[] fUids = request.getParameterValues("fuids"); if (Common.empty(fUids)) { return showMessage(request, response, "please_correct_choice_groups_friend"); } int groupId = Common.intval(request.getParameter("group")); dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("friend") + " SET gid='" + groupId + "' WHERE uid='" + sGlobal.get("supe_uid") + "' AND fuid IN (" + Common.sImplode(fUids) + ") AND status='1'"); cpService.friendCache(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid")); return showMessage(request, response, "do_success", (String) sGlobal.get("refer")); } int perPage = 50; int page = Common.intval(request.getParameter("page")); if (page < 1) { page = 1; } int start = (page - 1) * perPage; if (!Common.empty(space.get("friendnum"))) { Map<Integer, String> groups = Common.getFriendGroup(request); String theURL = "cp.jsp?ac=friend&op=group"; int group = request.getParameter("group") == null ? -1 : Common.intval(request.getParameter("group")); String whereSQL = ""; if (group > -1) { whereSQL = "AND main.gid='" + group + "'"; theURL += "&group=" + group; } int count = dataBaseService.findRows("SELECT COUNT(*) FROM " + JavaCenterHome.getTableName("friend") + " main WHERE main.uid='" + space.get("uid") + "' AND main.status='1' " + whereSQL); List<Map<String, Object>> list = dataBaseService.executeQuery( "SELECT main.fuid AS uid,main.fusername AS username, main.gid, main.num FROM " + JavaCenterHome.getTableName("friend") + " main WHERE main.uid='" + space.get("uid") + "' AND main.status='1' " + whereSQL + " ORDER BY main.dateline DESC LIMIT " + start + "," + perPage); for (Map<String, Object> value : list) { Common.realname_set(sGlobal, sConfig, sNames, (Integer) value.get("uid"), (String) value.get("username"), "", 0); value.put("group", groups.get(value.get("gid"))); } request.setAttribute("list", list); request.setAttribute("multi", Common.multi(request, count, perPage, page, (Integer) sConfig.get("maxpage"), theURL, null, null)); } Map<Integer, String> groups = Common.getFriendGroup(request); request.setAttribute("groups", groups); actives.put("group", " class=\"active\""); Common.realname_get(sGlobal, sConfig, sNames, space); } else if ("request".equals(op)) { if (submitCheck(request, "requestsubmin")) { return showMessage(request, response, "do_success", (String) sGlobal.get("refer")); } int maxFriendnum = (Integer) Common.checkPerm(request, response, sGlobal, "maxfriendnum"); if (maxFriendnum > 0) { maxFriendnum = maxFriendnum + (Integer) space.get("addfriend"); } int perPage = 20; int page = Common.intval(request.getParameter("page")); if (page < 1) { page = 1; } int start = (page - 1) * perPage; String[] friend1 = (String[]) space.get("friends"); Map whereArr = new HashMap(); whereArr.put("fuid", space.get("uid")); whereArr.put("status", 0); int count = Common.intval(Common.getCount("friend", whereArr, null)); if (count > 0) { List<Map<String, Object>> list = dataBaseService .executeQuery("SELECT f.dateline,f.note,f.fuid, s.*, sf.friend FROM " + JavaCenterHome.getTableName("friend") + " f LEFT JOIN " + JavaCenterHome.getTableName("space") + " s ON s.uid=f.uid LEFT JOIN " + JavaCenterHome.getTableName("spacefield") + " sf ON sf.uid=f.uid WHERE f.fuid='" + space.get("uid") + "' AND f.status='0' ORDER BY f.dateline DESC LIMIT " + start + "," + perPage); for (Map<String, Object> value : list) { Common.realname_set(sGlobal, sConfig, sNames, (Integer) value.get("uid"), (String) value.get("username"), "", 0); String[] cFriend = {}; String[] friend2 = Common.empty(value.get("friend")) ? null : value.get("friend").toString().split(","); if (friend1 != null && friend2 != null) { cFriend = getArrayIntersect(friend1, friend2); } value.put("cfriend", Common.implode(cFriend, ",")); value.put("cfcount", cFriend.length); } request.setAttribute("list", list); } if (count != (Integer) space.get("addfriendnum")) { dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("space") + " SET addfriendnum='" + count + "' WHERE uid='" + space.get("uid") + "'"); } request.setAttribute("multi", Common.multi(request, count, perPage, page, (Integer) sConfig.get("maxpage"), "cp.jsp?ac=friend&op=request", null, null)); Common.realname_get(sGlobal, sConfig, sNames, space); request.setAttribute("maxfriendnum", maxFriendnum); } else if ("groupname".equals(op)) { Map<Integer, String> groups = Common.getFriendGroup(request); int group = Common.intval(request.getParameter("group")); if (groups.get(group) == null) { return showMessage(request, response, "change_friend_groupname_error"); } if (submitCheck(request, "groupnamesubmit")) { Map<String, Object> privacy = (Map<String, Object>) space.get("privacy"); Map<Integer, String> groupList = null; if (privacy != null) { groupList = (Map<Integer, String>) privacy.get("groupname"); } groupList = groupList == null ? new HashMap<Integer, String>() : groupList; String groupName = Common.getStr(request.getParameter("groupname"), 20, true, true, false, 0, 0, request, response); groupList.put(group, groupName); if (privacy != null) { privacy.put("groupname", groupList); space.put("privacy", privacy); } cpService.privacyUpdate(privacy, (Integer) sGlobal.get("supe_uid")); return showMessage(request, response, "do_success", request.getParameter("refer")); } request.setAttribute("group", group); request.setAttribute("groups", groups); } else if ("groupignore".equals(op)) { Map<Integer, String> groups = Common.getFriendGroup(request); int group = Common.intval(request.getParameter("group")); if (groups.get(group) == null) { return showMessage(request, response, "change_friend_groupname_error"); } if (submitCheck(request, "groupignoresubmit")) { Map<String, Object> privacy = (Map<String, Object>) space.get("privacy"); Map<Integer, Integer> filterGid = null; if (privacy != null) { filterGid = (Map<Integer, Integer>) privacy.get("filter_gid"); } filterGid = filterGid == null ? new HashMap<Integer, Integer>() : filterGid; if (filterGid.get(group) != null) { filterGid.remove(group); } else { filterGid.put(group, group); } if (privacy != null) { privacy.put("filter_gid", filterGid); space.put("privacy", privacy); } cpService.privacyUpdate(privacy, (Integer) sGlobal.get("supe_uid")); cpService.friendCache(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid")); return showMessage(request, response, "do_success", request.getParameter("refer"), 0); } request.setAttribute("group", group); } else if ("blacklist".equals(op)) { if ("delete".equals(request.getParameter("subop"))) { dataBaseService.executeUpdate("DELETE FROM " + JavaCenterHome.getTableName("blacklist") + " WHERE uid='" + space.get("uid") + "' AND buid='" + uid + "'"); return showMessage(request, response, "do_success", "space.jsp?do=friend&view=blacklist&start=" + request.getParameter("start"), 0); } if (submitCheck(request, "blacklistsubmit")) { String userName = Common.trim(request.getParameter("username")); List<Map<String, Object>> spaceList = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("space") + " WHERE username='" + userName + "'"); if (spaceList.isEmpty()) { return showMessage(request, response, "space_does_not_exist"); } Map<String, Object> toSpace = spaceList.get(0); if (toSpace.get("uid").equals(space.get("uid"))) { return showMessage(request, response, "unable_to_manage_self"); } if (Common.in_array((String[]) space.get("friends"), toSpace.get("uid"))) { cpService.updateFriend(request, sGlobal, sConfig, (Integer) sGlobal.get("supe_uid"), (String) sGlobal.get("supe_username"), (Integer) toSpace.get("uid"), "", "ignore", 0); } Map insertData = new HashMap(); insertData.put("uid", space.get("uid")); insertData.put("buid", toSpace.get("uid")); insertData.put("dateline", sGlobal.get("timestamp")); dataBaseService.insertTable("blacklist", insertData, false, true); return showMessage(request, response, "do_success", "space.jsp?do=friend&view=blacklist&start=" + request.getParameter("start"), 0); } } else if ("rand".equals(op)) { Object[] randUids = null; if ((Integer) space.get("friendnum") < 5) { List<Map<String, Object>> sessionList = dataBaseService.executeQuery( "SELECT uid FROM " + JavaCenterHome.getTableName("session") + " LIMIT 0,100"); List onlineList = new ArrayList(sessionList.size()); for (Map<String, Object> value : sessionList) { if (!value.get("uid").equals(space.get("uid"))) { onlineList.add(value.get("uid")); } } randUids = (Object[]) Common .sarrayRand(arrayMerge(onlineList.toArray(), (String[]) space.get("friends")), 1); } else { randUids = (Object[]) Common.sarrayRand(space.get("friends"), 1); } return showMessage(request, response, "do_success", "space.jsp?uid=" + (randUids == null ? "" : randUids[randUids.length - 1]), 0); } else if ("getcfriend".equals(op)) { String[] fuids = Common.empty(request.getParameter("fuid")) ? null : request.getParameter("fuid").split(","); Map<Integer, Integer> newfUids = new HashMap<Integer, Integer>(fuids == null ? 0 : fuids.length); if (fuids != null) { for (String value : fuids) { int fuid = Common.intval(value); if (fuid != 0) { newfUids.put(fuid, fuid); } } } if (!newfUids.isEmpty()) { List<Map<String, Object>> list = dataBaseService.executeQuery( "SELECT uid,username,name,namestatus FROM " + JavaCenterHome.getTableName("space") + " WHERE uid IN (" + Common.sImplode(newfUids) + ") LIMIT 0,15"); for (Map<String, Object> value : list) { Common.realname_set(sGlobal, sConfig, sNames, (Integer) value.get("uid"), (String) value.get("username"), (String) value.get("name"), (Integer) value.get("namestatus")); } request.setAttribute("list", list); Common.realname_get(sGlobal, sConfig, sNames, space); } } else if ("search".equals(op)) { Map<Integer, Map<String, Object>> fields = Common.getCacheDate(request, response, "/data/cache/cache_profilefield.jsp", "globalProfilefield"); if (!Common.empty(request.getParameter("searchsubmit")) || !Common.empty(request.getParameter("searchmode"))) { Map<String, String[]> paramMap = request.getParameterMap(); paramMap.put("searchsubmit", new String[] { 1 + "" }); paramMap.put("searchmode", new String[] { 1 + "" }); List<String> whereArr = new ArrayList<String>(); Map<String, String> fromArr = new HashMap<String, String>(); String fSQL = ""; fromArr.put("space", JavaCenterHome.getTableName("space") + " s"); String searchKey = request.getParameter("searchkey"); if (!Common.empty(Common.stripSearchKey(searchKey))) { whereArr.add("(s.name='" + searchKey + "' OR s.username='" + searchKey + "')"); } else { for (String value : new String[] { "uid", "username", "name", "videostatus", "avatar" }) { if (!Common.empty(request.getParameter(value))) { whereArr.add("s." + value + "='" + request.getParameter(value) + "'"); } } } String spaceField = null; for (String value : new String[] { "sex", "qq", "msn", "birthyear", "birthmonth", "birthday", "blood", "marry", "birthprovince", "birthcity", "resideprovince", "residecity" }) { if (!Common.empty(request.getParameter(value))) { fromArr.put("spacefield", JavaCenterHome.getTableName("spacefield") + " sf"); spaceField = "sf.uid=s.uid"; whereArr.add("sf." + value + "='" + request.getParameter(value) + "'"); fSQL += ", sf." + value; } } int startAge, endAge; endAge = startAge = 0; if (!Common.empty(request.getParameter("endage"))) { startAge = Integer.valueOf(Common.sgmdate(request, "yyyy", 0)) - Common.intval(request.getParameter("endage")); } if (!Common.empty(request.getParameter("startage"))) { endAge = Integer.valueOf(Common.sgmdate(request, "yyyy", 0)) - Common.intval(request.getParameter("startage")); } if (startAge != 0 || endAge != 0) { fromArr.put("spacefield", JavaCenterHome.getTableName("spacefield") + " sf"); spaceField = "sf.uid=s.uid"; } if (startAge != 0 && endAge != 0 && endAge > startAge) { whereArr.add("(sf.birthyear>=" + startAge + " AND sf.birthyear<=" + endAge + ")"); } else if (startAge != 0 && endAge == 0) { whereArr.add("sf.birthyear>=" + startAge); } else if (startAge == 0 && endAge != 0) { whereArr.add("sf.birthyear<=" + endAge); } boolean haveField = false; for (Entry<Integer, Map<String, Object>> e : fields.entrySet()) { if (!Common.empty(e.getValue().get("allowsearch"))) { String field = Common.stripSearchKey(request.getParameter("field_" + e.getKey())); if (!Common.empty(field)) { haveField = true; whereArr.add("sf.field_" + e.getKey() + " LIKE '%" + field + "%'"); } } } if (haveField) { fromArr.put("spacefield", JavaCenterHome.getTableName("spacefield") + " sf"); spaceField = "sf.uid=s.uid"; } String type = request.getParameter("type"); String spaceInfo = null; if ("edu".equals(type) || "work".equals(type)) { for (String value : new String[] { "type", "title", "subtitle", "startyear" }) { if (!Common.empty(request.getParameter(value))) { fromArr.put("spaceinfo", JavaCenterHome.getTableName("spaceinfo") + " si"); spaceInfo = "si.uid=s.uid"; whereArr.add("si." + value + "='" + request.getParameter(value) + "'"); } } } if (!whereArr.isEmpty()) { List<Map<String, Object>> searchList = dataBaseService .executeQuery("SELECT s.* " + fSQL + " FROM " + Common.implode(fromArr, ",") + " WHERE " + Common.implode(whereArr, " AND ") + (spaceField == null ? "" : " AND " + spaceField) + (spaceInfo == null ? "" : " AND " + spaceInfo) + " LIMIT 0,500"); Set<Map<String, Object>> list = new LinkedHashSet<Map<String, Object>>(searchList.size()); for (Map<String, Object> value : searchList) { Common.realname_set(sGlobal, sConfig, sNames, (Integer) value.get("uid"), (String) value.get("username"), (String) value.get("name"), (Integer) value.get("namestatus")); value.put("isfriend", (value.get("uid").equals(space.get("uid")) || (Common.in_array((String[]) space.get("friends"), value.get("uid")))) ? true : false); value.put("gColor", Common.getColor(request, response, (Integer) value.get("groupid"))); value.put("gIcon", Common.getIcon(request, response, (Integer) value.get("groupid"))); list.add(value); } request.setAttribute("list", list); } Common.realname_get(sGlobal, sConfig, sNames, space); } else { StringBuffer yearHTML = new StringBuffer(); int nowy = Integer.valueOf(Common.sgmdate(request, "yyyy", 0)); for (int i = 0; i < 50; i++) { int they = nowy - i; yearHTML.append("<option value=\"" + they + "\">" + they + "</option>"); } request.setAttribute("yearhtml", yearHTML); Map sexArr = new HashMap(); sexArr.put(space.get("sex").toString(), " checked"); request.setAttribute("sexarr", sexArr); String all = request.getParameter("all"); StringBuffer birthYearHTML = new StringBuffer(); for (int i = 0; i < 100; i++) { int they = nowy - i; String selectStr = ""; if (Common.empty(all)) { selectStr = they == (Integer) space.get("birthyear") ? " selected" : ""; } birthYearHTML .append("<option value=\"" + they + "\"" + selectStr + ">" + they + "</option>"); } request.setAttribute("birthyearhtml", birthYearHTML.toString()); String birthMonthHTML = ""; for (int i = 1; i < 13; i++) { String selectStr = ""; if (Common.empty(all)) { selectStr = i == (Integer) space.get("birthmonth") ? " selected" : ""; } birthMonthHTML += "<option value=\"" + i + "\"" + selectStr + ">" + i + "</option>"; } request.setAttribute("birthmonthhtml", birthMonthHTML.toString()); StringBuffer birthdayHTML = new StringBuffer(); for (int i = 1; i < 29; i++) { String selectStr = ""; if (Common.empty(all)) { selectStr = i == (Integer) space.get("birthday") ? " selected" : ""; } birthdayHTML.append("<option value=\"" + i + "\"" + selectStr + ">" + i + "</option>"); } request.setAttribute("birthdayhtml", birthdayHTML.toString()); String bloodHTML = ""; for (String value : new String[] { "A", "B", "O", "AB" }) { String selectStr = ""; if (Common.empty(all)) { selectStr = value.equals(space.get("blood")) ? " selected" : ""; } bloodHTML += "<option value=\"" + value + "\"" + selectStr + ">" + value + "</option>"; } request.setAttribute("bloodhtml", bloodHTML.toString()); Map marryArr = new HashMap(); marryArr.put(space.get("marry").toString(), " selected"); request.setAttribute("marryarr", marryArr); List<Integer> removeKeys = new ArrayList<Integer>(fields.size()); for (Entry<Integer, Map<String, Object>> e : fields.entrySet()) { Map<String, Object> fValue = e.getValue(); if (!Common.empty(fValue.get("allowsearch"))) { if ("text".equals(fValue.get("formtype"))) { fValue.put("html", "<input type=\"text\" name=\"field_" + e.getKey() + "\" value=\"\" class=\"t_input\">"); } else { StringBuffer HTML = new StringBuffer(); HTML.append("<select name=\"field_" + e.getKey() + "\"><option value=\"\">---</option>"); String[] optionArr = fValue.get("choice").toString().split("\n"); for (String ov : optionArr) { ov = ov.trim(); if (!"".equals(ov)) { HTML.append("<option value=\"" + ov + "\">" + ov + "</option>"); } } HTML.append("</select>"); fValue.put("html", HTML.toString()); } } else { removeKeys.add(e.getKey()); } } for (Integer removeKey : removeKeys) { fields.remove(removeKey); } request.setAttribute("fields", fields); } } } catch (Exception e) { e.printStackTrace(); return showMessage(request, response, e.getMessage()); } request.setAttribute("op", op); request.setAttribute("uid", uid); return include(request, response, sConfig, sGlobal, "cp_friend.jsp"); }
From source file:net.sourceforge.openutils.mgnlcriteria.tests.CriteriaTestUtils.java
public static Collection<Node> collectCollectionFromResult(AdvancedResult result) { ResultIterator<? extends Node> items = result.getItems(); ArrayList<Node> list = new ArrayList<Node>(); CollectionUtils.addAll(list, items); return list;/*from w w w .j a v a 2 s. co m*/ }
From source file:nl.strohalm.cyclos.dao.accounts.AccountDAOImpl.java
@Override public Iterator<MemberTransactionDetailsReportData> membersTransactionsDetailsReport( final MembersTransactionsReportParameters params) { final StringBuilder sql = new StringBuilder(); final Map<String, Object> parameters = new HashMap<String, Object>(); // Find the transfer types ids Set<Long> ttIds = null; if (CollectionUtils.isNotEmpty(params.getPaymentFilters())) { ttIds = new HashSet<Long>(); for (PaymentFilter pf : params.getPaymentFilters()) { pf = getFetchDao().fetch(pf, PaymentFilter.Relationships.TRANSFER_TYPES); final Long[] ids = EntityHelper.toIds(pf.getTransferTypes()); CollectionUtils.addAll(ttIds, ids); }//from w w w . j a v a 2 s. c om } // Get the member group ids Set<Long> groupIds = null; if (CollectionUtils.isNotEmpty(params.getMemberGroups())) { groupIds = new HashSet<Long>(); CollectionUtils.addAll(groupIds, EntityHelper.toIds(params.getMemberGroups())); } // Get the period final Period period = params.getPeriod(); final QueryParameter beginParameter = HibernateHelper.getBeginParameter(period); final QueryParameter endParameter = HibernateHelper.getEndParameter(period); // Set the parameters final boolean useTT = CollectionUtils.isNotEmpty(ttIds); if (useTT) { parameters.put("ttIds", ttIds); } if (beginParameter != null) { parameters.put("beginDate", beginParameter.getValue()); } if (endParameter != null) { parameters.put("endDate", endParameter.getValue()); } parameters.put("processed", Payment.Status.PROCESSED.getValue()); // Build the sql string sql.append( " select u.username, m.name, bu.username broker_username, b.name broker_name, h.account_type_name, h.date, h.amount, h.description, h.related_username, h.related_name, h.transfer_type_name, h.transaction_number"); sql.append( " from members m inner join users u on m.id = u.id left join members b on m.member_broker_id = b.id left join users bu on b.id = bu.id,"); sql.append(" ("); if (params.isCredits()) { appendMembersTransactionsDetailsReportSqlPart(sql, useTT, beginParameter, endParameter, true, true); sql.append(" union"); appendMembersTransactionsDetailsReportSqlPart(sql, useTT, beginParameter, endParameter, true, false); if (params.isDebits()) { sql.append(" union"); } } if (params.isDebits()) { appendMembersTransactionsDetailsReportSqlPart(sql, useTT, beginParameter, endParameter, false, true); sql.append(" union"); appendMembersTransactionsDetailsReportSqlPart(sql, useTT, beginParameter, endParameter, false, false); } sql.append(" ) h"); sql.append(" where m.id = h.member_id"); if (groupIds != null) { parameters.put("groupIds", groupIds); sql.append(" and m.group_id in (:groupIds)"); } sql.append(" order by m.name, u.username, h.account_type_name, h.date desc, h.transfer_id desc"); // Prepare the query final SQLQuery query = getSession().createSQLQuery(sql.toString()); final Map<String, Type> columns = new LinkedHashMap<String, Type>(); columns.put("username", StandardBasicTypes.STRING); columns.put("name", StandardBasicTypes.STRING); columns.put("broker_username", StandardBasicTypes.STRING); columns.put("broker_name", StandardBasicTypes.STRING); columns.put("account_type_name", StandardBasicTypes.STRING); columns.put("date", StandardBasicTypes.CALENDAR); columns.put("amount", StandardBasicTypes.BIG_DECIMAL); columns.put("description", StandardBasicTypes.STRING); columns.put("related_username", StandardBasicTypes.STRING); columns.put("related_name", StandardBasicTypes.STRING); columns.put("transfer_type_name", StandardBasicTypes.STRING); columns.put("transaction_number", StandardBasicTypes.STRING); for (final Map.Entry<String, Type> entry : columns.entrySet()) { query.addScalar(entry.getKey(), entry.getValue()); } getHibernateQueryHandler().setQueryParameters(query, parameters); // Create a transformer, which will read rows as Object[] and transform them to MemberTransactionDetailsReportData final Transformer<Object[], MemberTransactionDetailsReportData> transformer = new Transformer<Object[], MemberTransactionDetailsReportData>() { @Override public MemberTransactionDetailsReportData transform(final Object[] input) { final MemberTransactionDetailsReportData data = new MemberTransactionDetailsReportData(); int i = 0; for (final Map.Entry<String, Type> entry : columns.entrySet()) { final String columnName = entry.getKey(); // Column names are transfer_type_name, property is transferTypeName String propertyName = WordUtils.capitalize(columnName, COLUMN_DELIMITERS); propertyName = Character.toLowerCase(propertyName.charAt(0)) + propertyName.substring(1); propertyName = StringUtils.replace(propertyName, "_", ""); PropertyHelper.set(data, propertyName, input[i]); i++; } return data; } }; return new ScrollableResultsIterator<MemberTransactionDetailsReportData>(query, transformer); }
From source file:nl.strohalm.cyclos.dao.accounts.fee.account.MemberAccountFeeLogDAOImpl.java
@Override public int prepareCharge(final AccountFeeLog log) { final Long[] groupIds = EntityHelper.toIds(log.getAccountFee().getGroups()); if (ArrayUtils.isEmpty(groupIds)) { // No groups to charge return 0; }//from www. j a v a 2 s . co m final MutableInt result = new MutableInt(); runNative(new JDBCCallback() { @Override public void execute(final JDBCWrapper jdbc) throws SQLException { String[] placeHolders = new String[groupIds.length]; Arrays.fill(placeHolders, "?"); StringBuilder sql = new StringBuilder(); sql.append(" insert into members_pending_charge"); sql.append(" (account_fee_log_id, member_id)"); sql.append(" select ?, id"); sql.append(" from members m"); sql.append(" where m.subclass = ?"); sql.append(" and m.group_id in (").append(StringUtils.join(placeHolders, ",")).append(')'); List<Object> args = new ArrayList<Object>(groupIds.length + 2); args.add(log.getId()); args.add("M"); CollectionUtils.addAll(args, groupIds); int totalMembers = jdbc.execute(sql.toString(), args.toArray()); result.setValue(totalMembers); } }); return result.intValue(); }
From source file:nl.strohalm.cyclos.dao.members.ElementDAOImpl.java
@Override public void removeChannelsFromMembers(final MemberGroup group, final Collection<Channel> channels) { if (CollectionUtils.isNotEmpty(channels)) { final Map<String, Object> parameters = new HashMap<String, Object>(); final Set<Long> channelIds = new HashSet<Long>(); CollectionUtils.addAll(channelIds, EntityHelper.toIds(channels)); parameters.put("channelIds", channelIds); parameters.put("groupId", group.getId()); final String statement = " delete from members_channels " + " where channel_id in (:channelIds) " + " and member_id in (select id from members where group_id = :groupId) "; final SQLQuery query = getSession().createSQLQuery(statement); getHibernateQueryHandler().setQueryParameters(query, parameters); query.executeUpdate();//from w w w . jav a 2s . c o m } }
From source file:nl.strohalm.cyclos.dao.members.ReferenceDAOImpl.java
@Override public List<PaymentAwaitingFeedbackDTO> searchPaymentsAwaitingFeedback( final PaymentsAwaitingFeedbackQuery query) { final ResultType resultType = query.getResultType(); final PageParameters pageParameters = query.getPageParameters(); final boolean countOnly = resultType == ResultType.PAGE && pageParameters != null && pageParameters.getMaxResults() == 0; // There are 2 tables which contains payments that can have feedback: transfers and scheduled payments // As we need an union, we need a native SQL final Member member = query.getMember(); Boolean expired = query.getExpired(); final StringBuilder sql = new StringBuilder(); sql.append(" select "); if (countOnly) { sql.append(" count(*) as row_count"); } else {//from w ww. jav a 2s .c o m sql.append(" * "); } sql.append(" from ( "); { sql.append( " select t.id, t.type_id as transferTypeId, false as scheduled, t.date, t.amount, tm.id as memberId, tm.name as memberName, ta.owner_name as memberUsername"); sql.append( " from transfers t inner join transfer_types tt on t.type_id = tt.id inner join accounts ta on t.to_account_id = ta.id inner join members tm on ta.member_id = tm.id"); if (member != null) { sql.append(" inner join accounts a on t.from_account_id = a.id"); } sql.append(" left join refs tf on tf.transfer_id = t.id"); sql.append(" where tt.requires_feedback = true"); sql.append(" and t.date >= tt.feedback_enabled_since"); sql.append(" and t.parent_id is null"); sql.append(" and t.chargeback_of_id is null"); sql.append(" and t.scheduled_payment_id is null"); sql.append(" and t.process_date is not null"); if (expired != null) { sql.append(" and t.feedback_deadline " + (expired ? "<" : ">=") + " now()"); } sql.append(" and tf.id is null"); if (member != null) { sql.append(" and a.member_id = :memberId"); } sql.append(" union "); sql.append(" select sp.id, sp.type_id, true, sp.date, sp.amount, tm.id, tm.name, ta.owner_name"); sql.append( " from scheduled_payments sp inner join transfer_types tt on sp.type_id = tt.id inner join accounts ta on sp.to_account_id = ta.id inner join members tm on ta.member_id = tm.id"); if (member != null) { sql.append(" inner join accounts a on sp.from_account_id = a.id"); } sql.append(" left join refs tf on tf.scheduled_payment_id = sp.id"); sql.append(" where tt.requires_feedback = true"); if (expired != null) { sql.append(" and sp.feedback_deadline " + (expired ? "<" : ">=") + " now()"); } sql.append(" and sp.date >= tt.feedback_enabled_since"); sql.append(" and tf.id is null"); if (member != null) { sql.append(" and a.member_id = :memberId"); } } sql.append(") as awaiting "); if (!countOnly) { sql.append("order by date"); } SQLQuery sqlQuery = getSession().createSQLQuery(sql.toString()); if (member != null) { sqlQuery.setLong("memberId", member.getId()); } if (countOnly) { // Handle the special case for count only sqlQuery.addScalar("row_count", StandardBasicTypes.INTEGER); int count = ((Number) sqlQuery.uniqueResult()).intValue(); return new PageImpl<PaymentAwaitingFeedbackDTO>(pageParameters, count, Collections.<PaymentAwaitingFeedbackDTO>emptyList()); } else { // Execute the search sqlQuery.addScalar("id", StandardBasicTypes.LONG); sqlQuery.addScalar("transferTypeId", StandardBasicTypes.LONG); sqlQuery.addScalar("scheduled", StandardBasicTypes.BOOLEAN); sqlQuery.addScalar("date", StandardBasicTypes.CALENDAR); sqlQuery.addScalar("amount", StandardBasicTypes.BIG_DECIMAL); sqlQuery.addScalar("memberId", StandardBasicTypes.LONG); sqlQuery.addScalar("memberName", StandardBasicTypes.STRING); sqlQuery.addScalar("memberUsername", StandardBasicTypes.STRING); getHibernateQueryHandler().applyPageParameters(pageParameters, sqlQuery); // We'll always use an iterator, even if it is for later adding it to a list Iterator<PaymentAwaitingFeedbackDTO> iterator = new ScrollableResultsIterator<PaymentAwaitingFeedbackDTO>( sqlQuery, new Transformer<Object[], PaymentAwaitingFeedbackDTO>() { @Override public PaymentAwaitingFeedbackDTO transform(final Object[] input) { PaymentAwaitingFeedbackDTO dto = new PaymentAwaitingFeedbackDTO(); dto.setId((Long) input[0]); dto.setTransferTypeId((Long) input[1]); dto.setScheduled(Boolean.TRUE.equals(input[2])); dto.setDate((Calendar) input[3]); dto.setAmount((BigDecimal) input[4]); dto.setMemberId((Long) input[5]); dto.setMemberName((String) input[6]); dto.setMemberUsername((String) input[7]); TransferType transferType = (TransferType) getSession().load(TransferType.class, dto.getTransferTypeId()); dto.setCurrency(getFetchDao().fetch(transferType.getCurrency())); return dto; } }); if (resultType == ResultType.ITERATOR) { return new IteratorListImpl<PaymentAwaitingFeedbackDTO>(iterator); } else { List<PaymentAwaitingFeedbackDTO> list = new ArrayList<PaymentAwaitingFeedbackDTO>(); CollectionUtils.addAll(list, iterator); DataIteratorHelper.close(iterator); if (resultType == ResultType.PAGE) { // For page, we need another search for the total count query.setPageForCount(); int totalCount = PageHelper.getTotalCount(searchPaymentsAwaitingFeedback(query)); return new PageImpl<PaymentAwaitingFeedbackDTO>(pageParameters, totalCount, list); } else { return list; } } } }
From source file:nl.strohalm.cyclos.services.access.AbstractPermissionCheck.java
private List<Permission> join(final Permission[]... permissions) { List<Permission> result = new ArrayList<Permission>(); boolean hasNonNull = false; for (Permission[] current : permissions) { if (current != null) { hasNonNull = true;/*w ww . j ava 2s . c o m*/ CollectionUtils.addAll(result, current); } } if (!hasNonNull) { return null; } return result; }
From source file:nl.strohalm.cyclos.services.transfertypes.TransferTypeServiceImpl.java
@Override public Collection<TransferType> getAllowedTTs(Element element) { element = fetchService.fetch(element, RelationshipHelper.nested(Element.Relationships.GROUP, Group.Relationships.TRANSFER_TYPES), RelationshipHelper.nested(Element.Relationships.GROUP, AdminGroup.Relationships.TRANSFER_TYPES_AS_MEMBER), RelationshipHelper.nested(Element.Relationships.GROUP, Group.Relationships.CONVERSION_SIMULATION_TTS)); Group group = element.getGroup(); Set<TransferType> allowed = new HashSet<TransferType>(); CollectionUtils.addAll(allowed, group.getConversionSimulationTTs().iterator()); // Add the TTs with permission as member if (group instanceof AdminGroup) { CollectionUtils.addAll(allowed, ((AdminGroup) group).getTransferTypesAsMember().iterator()); } else if (group instanceof BrokerGroup) { CollectionUtils.addAll(allowed, ((BrokerGroup) group).getTransferTypesAsMember().iterator()); }/*from w w w. j ava2 s . c o m*/ // Add the TTs with permission if (group instanceof OperatorGroup) { // an operator doesn't have its own TT it inherits from member OperatorGroup operatorGroup = (OperatorGroup) group; group = fetchService.fetch(operatorGroup.getMember().getGroup(), Group.Relationships.TRANSFER_TYPES); } CollectionUtils.addAll(allowed, group.getTransferTypes().iterator()); // All TTs used to pay account fees should be accessible if (group instanceof MemberGroup) { MemberGroup memberGroup = (MemberGroup) group; Collection<AccountFee> accountFees = memberGroup.getAccountFees(); for (AccountFee accountFee : accountFees) { allowed.add(accountFee.getTransferType()); } } return allowed; }
From source file:nl.strohalm.cyclos.struts.access.policies.utils.ElementActionPolicy.java
private ElementActionPolicy(final Nature... natures) { this.natures = new HashSet<Nature>(); CollectionUtils.addAll(this.natures, natures); }