package cn.jcenterhome.web.action; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import cn.jcenterhome.util.Common; import cn.jcenterhome.util.CookieHelper; import cn.jcenterhome.util.JavaCenterHome; import cn.jcenterhome.util.Serializer; import cn.jcenterhome.vo.MessageVO; public class MagicAction extends BaseAction { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); String mid = request.getParameter("mid"); mid = Common.empty(mid) ? "" : mid.trim(); request.setAttribute("mid", mid); String op = request.getParameter("op"); op = Common.empty(op) ? "use" : op; int supe_uid = (Integer) sGlobal.get("supe_uid"); if (Common.empty(supe_uid)) { return showMessage(request, response, "to_login", "do.jsp?ac=" + sConfig.get("login_action")); } String message = Common.checkClose(request, response, supe_uid); if (message != null) { return showMessage(request, response, message); } if (Common.empty(mid)) { return showMessage(request, response, "unknown_magic"); } Map<String, Object> space = Common.getSpace(request, sGlobal, sConfig, supe_uid); if (Common.empty(space)) { return showMessage(request, response, "space_does_not_exist"); } Object result = magicService.magic_get(mid); if (result instanceof MessageVO) { return showMessage(request, response, (MessageVO) result); } Map<String, Object> magic = (Map<String, Object>) result; List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("usermagic") + " WHERE uid='" + supe_uid + "' AND mid='" + mid + "'"); Map<String, Object> usermagic = query.size() > 0 ? query.get(0) : new HashMap<String, Object>(); int magicCount; if (Common.empty(usermagic) || Common.empty(usermagic.get("count"))) { op = "buy"; magicCount = 0; } else { magicCount = (Integer) usermagic.get("count"); request.setAttribute("usermagic", usermagic); } boolean frombuy = false; boolean buysubmitB = false; try { buysubmitB = submitCheck(request, "buysubmit"); } catch (Exception e1) { e1.printStackTrace(); return showMessage(request, response, e1.getMessage()); } if (buysubmitB) { result = magicService.magic_buy_get(request, response, magic, sGlobal, space); if (result instanceof MessageVO) { return showMessage(request, response, (MessageVO) result); } Map<String, Object> datas = (Map<String, Object>) result; Map<String, Object> magicstore = (Map<String, Object>) datas.get("magicstore"); Map<String, Object> coupon = (Map<String, Object>) datas.get("coupon"); int discount = (Integer) datas.get("discount"); int charge = (Integer) datas.get("charge"); result = magicService .magic_buy_post(request, response, sGlobal, space, magic, magicstore, coupon); if (result instanceof MessageVO) { return showMessage(request, response, (MessageVO) result); } op = "use"; frombuy = true; String buynum = request.getParameter("buynum"); if (buynum != null) { usermagic.put("count", magicCount + Common.intval(buynum)); } request.setAttribute("usermagic", usermagic); } request.setAttribute("frombuy", frombuy); request.setAttribute("op", op); request.setAttribute("magic", magic); request.setAttribute("space", space); String idtype = request.getParameter("idtype"); idtype = Common.empty(idtype) ? "" : idtype.trim(); String idS = request.getParameter("id"); int id = Common.empty(idS) ? 0 : Common.intval(idS); request.setAttribute("id", id); request.setAttribute("idtype", idtype); if ("buy".equals(op)) { result = magicService.magic_buy_get(request, response, magic, sGlobal, space); if (result instanceof MessageVO) { return showMessage(request, response, (MessageVO) result); } Map<String, Object> datas = (Map<String, Object>) result; Map<String, Object> magicstore = (Map<String, Object>) datas.get("magicstore"); Map<String, Object> coupon = (Map<String, Object>) datas.get("coupon"); int discount = (Integer) datas.get("discount"); int charge = (Integer) datas.get("charge"); request.setAttribute("magicstore", magicstore); request.setAttribute("coupon", coupon); request.setAttribute("discount", discount); request.setAttribute("charge", charge); String extra = ""; if ("doodle".equals(mid)) { StringBuilder builder = new StringBuilder(); builder.append("&showid="); String tempS = request.getParameter("showid"); if (tempS != null) { builder.append(tempS); } builder.append("&target="); tempS = request.getParameter("target"); if (tempS != null) { builder.append(tempS); } builder.append("&from="); tempS = request.getParameter("from"); if (tempS != null) { builder.append(tempS); } extra = builder.toString(); } request.setAttribute("extra", extra); return include(request, response, sConfig, sGlobal, "cp_magic.jsp"); } int useperoid = (Integer) magic.get("useperoid"); if (useperoid > 0) { int time = (Integer) sGlobal.get("timestamp") - useperoid; List<Map<String, Object>> tempML = dataBaseService.executeQuery("SELECT COUNT(*) AS cout FROM " + JavaCenterHome.getTableName("magicuselog") + " WHERE uid='" + supe_uid + "' AND mid='" + mid + "' AND dateline > '" + time + "'"); int count = 0; if (tempML.size() > 0) { count = (Integer) tempML.get(0).get("cout"); } if (count >= (Integer) magic.get("usecount")) { query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("magicuselog") + " WHERE uid='" + supe_uid + "' AND mid='" + mid + "' AND dateline > '" + time + "' ORDER BY dateline LIMIT 1"); Map<String, Object> value = null; if (query != null && query.size() > 0) { value = query.get(0); } String nexttime = ""; if (value != null) { nexttime = Common.sgmdate(request, "MM-dd HH:mm:ss", (Integer) value.get("dateline") + (Integer) magic.get("useperoid")); } return showMessage(request, response, "magic_usecount_limit", null, 1, nexttime); } } String magicName = "magic_" + mid; boolean exit = false; try { exit = !accessMagic(magicName, request, response); } catch (Exception e) { e.printStackTrace(); return showMessage(request, response, e.getMessage()); } if (exit) { return null; } return include(request, response, sConfig, sGlobal, magicName + ".jsp"); } private boolean accessMagic(String methodName, HttpServletRequest request, HttpServletResponse response) throws Exception { Method method = this.getClass().getDeclaredMethod(methodName, HttpServletRequest.class, HttpServletResponse.class); return (Boolean) method.invoke(this, request, response); } private boolean magic_anonymous(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String idtype = (String) request.getAttribute("idtype"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); if ("uid".equals(idtype)) { List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("visitor") + " WHERE uid = '" + id + "' AND vuid = '" + supe_uid + "'"); Map<String, Object> value = null; if (query.size() > 0) { value = query.get(0); } if (Common.empty(value)) { showMessage(request, response, "magicuse_bad_object"); return false; } else if ("".equals(value.get("vusername"))) { showMessage(request, response, "magicuse_object_once_limit"); return false; } } else if ("cid".equals(idtype)) { List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("comment") + " WHERE cid = '" + id + "' AND authorid = '" + supe_uid + "'"); Map<String, Object> value = null; if (query.size() > 0) { value = query.get(0); } if (Common.empty(value)) { showMessage(request, response, "magicuse_bad_object"); return false; } else if ("".equals(value.get("author"))) { showMessage(request, response, "magicuse_object_once_limit"); return false; } } else { List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("clickuser") + " WHERE id = '" + id + "' AND idtype = '" + idtype + "' AND uid = '" + supe_uid + "'"); Map<String, Object> value = null; if (query.size() > 0) { value = query.get(0); } if (Common.empty(value)) { showMessage(request, response, "magicuse_bad_object"); return false; } else if ("".equals(value.get("username"))) { showMessage(request, response, "magicuse_object_once_limit"); return false; } } boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { int second = 1; if ("uid".equals(idtype)) { CookieHelper.setCookie(request, response, "anonymous_visit_" + supe_uid + "_" + id, "1"); Map<String, Object> setSQLArr = new HashMap<String, Object>(); setSQLArr.put("vusername", ""); Map<String, Object> whereSQLArr = new HashMap<String, Object>(); whereSQLArr.put("uid", id); whereSQLArr.put("vuid", supe_uid); dataBaseService.updateTable("visitor", setSQLArr, whereSQLArr); second = 0; } else if ("cid".equals(idtype)) { Map<String, Object> setSQLArr = new HashMap<String, Object>(); setSQLArr.put("author", ""); Map<String, Object> whereSQLArr = new HashMap<String, Object>(); whereSQLArr.put("cid", id); whereSQLArr.put("authorid", supe_uid); dataBaseService.updateTable("comment", setSQLArr, whereSQLArr); } else { Map<String, Object> setSQLArr = new HashMap<String, Object>(); setSQLArr.put("username", ""); Map<String, Object> whereSQLArr = new HashMap<String, Object>(); whereSQLArr.put("id", id); whereSQLArr.put("idtype", idtype); whereSQLArr.put("uid", supe_uid); dataBaseService.updateTable("clickuser", setSQLArr, whereSQLArr); } Map<String, Object> magicuselog = new HashMap<String, Object>(); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), second); return false; } return true; } private boolean magic_attachsize(HttpServletRequest request, HttpServletResponse response) { String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { int rate = operateMagicCustomInfo(request, "addsize", 10); int addsize = 1048576 * rate; dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("space") + " SET addsize = addsize + " + addsize + " WHERE uid='" + sGlobal.get("supe_uid") + "'"); magicService.magic_use(sGlobal, mid, new HashMap<String, Object>(), true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_bgimage(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); String idtype = "blogid"; Object result = magicService.magic_check_idtype(sGlobal, id, idtype); if (result instanceof MessageVO) { showMessage(request, response, (MessageVO) result); return false; } boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { int paper = Common.intval(request.getParameter("paper")); Map<String, Object> setSQLArr = new HashMap<String, Object>(); setSQLArr.put("magicpaper", paper); Map<String, Object> whereSQLArr = new HashMap<String, Object>(); whereSQLArr.put("blogid", id); dataBaseService.updateTable("blogfield", setSQLArr, whereSQLArr); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_call(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String idtype = (String) request.getAttribute("idtype"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); Map<String, String> mapping = new HashMap<String, String>(); mapping.put("blogid", "blog"); mapping.put("tid", "thread"); mapping.put("eventid", "event"); if (mapping.get(idtype) == null) { showMessage(request, response, "magicuse_bad_object"); return false; } Object result = magicService.magic_check_idtype(sGlobal, id, idtype); if (result instanceof MessageVO) { showMessage(request, response, (MessageVO) result); return false; } int custom_maxcall = operateMagicCustomInfo(request, "maxcall", 10); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { int supe_uid = (Integer) sGlobal.get("supe_uid"); String name = mapping.get(idtype); List<Integer> ids = new ArrayList<Integer>(); List<String> note_inserts = new ArrayList<String>(); List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("friend") + " WHERE uid='" + supe_uid + "' AND fusername IN (" + Common.sImplode(request.getParameterValues("fusername[]")) + ") LIMIT " + custom_maxcall); String note = Common.getMessage(request, "cp_magic_call", Common.getMessage(request, name), "space.jsp?uid=" + supe_uid + "&do=" + name + "&id=" + id); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); Map<Integer, String> sNames = (Map<Integer, String>) request.getAttribute("sNames"); String supe_username = (String) sGlobal.get("supe_username"); int timestamp = (Integer) sGlobal.get("timestamp"); StringBuilder builder = new StringBuilder(); for (Map<String, Object> value : query) { int fuid = (Integer) value.get("fuid"); Common.realname_set(sGlobal, sConfig, sNames, fuid, (String) value.get("fusername"), "", 0); ids.add(fuid); builder.append("('"); builder.append(fuid); builder.append("', '"); builder.append(name); builder.append("', '1', '"); builder.append(supe_uid); builder.append("', '"); builder.append(supe_username); builder.append("', '"); builder.append(note); builder.append("', '"); builder.append(timestamp); builder.append("')"); note_inserts.add(builder.toString()); builder.delete(0, builder.length()); } if (Common.empty(ids)) { showMessage(request, response, "magicuse_has_no_valid_friend"); return false; } request.setAttribute("list", query); dataBaseService.execute("INSERT INTO " + JavaCenterHome.getTableName("notification") + "(uid, type, new, authorid, author, note, dateline) VALUES " + Common.implode(note_inserts, ",")); dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("space") + " SET notenum = notenum + 1 WHERE uid IN (" + Common.sImplode(ids) + ")"); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); Map<String, Object> space = (Map<String, Object>) request.getAttribute("space"); Common.realname_get(sGlobal, sConfig, sNames, space); request.setAttribute("op", "show"); } return true; } private boolean magic_color(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String idtype = (String) request.getAttribute("idtype"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); Map<String, String> mapping = new HashMap<String, String>(); mapping.put("blogid", "blogfield"); mapping.put("tid", "thread"); if (mapping.get(idtype) == null) { showMessage(request, response, "magicuse_bad_object"); return false; } Object result = magicService.magic_check_idtype(sGlobal, id, idtype); if (result instanceof MessageVO) { showMessage(request, response, (MessageVO) result); return false; } boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { int supe_uid = (Integer) sGlobal.get("supe_uid"); String tablename = mapping.get(idtype); int color = Common.intval(request.getParameter("color")); Map<String, Object> setSQLArr = new HashMap<String, Object>(); Map<String, Object> whereSQLArr = new HashMap<String, Object>(); setSQLArr.put("magiccolor", color); whereSQLArr.put(idtype, id); whereSQLArr.put("uid", supe_uid); dataBaseService.updateTable(tablename, setSQLArr, whereSQLArr); List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("feed") + " WHERE id='" + id + "' AND idtype='" + idtype + "' AND uid='" + supe_uid + "'"); Map<String, Object> feed = query.size() > 0 ? query.get(0) : null; if (feed != null) { Map temp = Serializer.unserialize((String) feed.get("body_data"), false); if (!Common.isArray(temp)) { temp = new HashMap(); } temp.put("magic_color", color); String body_data = Serializer.serialize(temp); feed.put("body_data", body_data); setSQLArr.clear(); setSQLArr.put("body_data", body_data); whereSQLArr.clear(); whereSQLArr.put("feedid", feed.get("feedid")); dataBaseService.updateTable("feed", setSQLArr, whereSQLArr); } Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_detector(HttpServletRequest request, HttpServletResponse response) { String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int custom_maxdetect = operateMagicCustomInfo(request, "maxdetect", 10); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { magicService.magic_use(sGlobal, mid, new HashMap<String, Object>(), true); request.setAttribute("op", "show"); int limit = custom_maxdetect + 20; int supe_uid = (Integer) sGlobal.get("supe_uid"); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); Map<Integer, String> sNames = (Map<Integer, String>) request.getAttribute("sNames"); List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("magicuselog") + " WHERE uid != '" + supe_uid + "' AND mid = 'gift' LIMIT " + limit); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); int max = 1; Map<String, Object> dataValue = null; int left = 0; Object tempO = null; Map<Integer, Integer> receiver = null; for (Map<String, Object> value : query) { left = 0; tempO = null; dataValue = Serializer.unserialize((String) value.get("data"), false); value.put("data", dataValue); tempO = dataValue.get("left"); if (tempO != null) { left = (Integer) (tempO); } receiver = (Map<Integer, Integer>) dataValue.get("receiver"); if (left != 0 && (Common.empty(receiver) || !mapWithValue(receiver, supe_uid))) { Common.realname_set(sGlobal, sConfig, sNames, (Integer) value.get("uid"), (String) value .get("username"), "", 0); list.add(value); if (++max > custom_maxdetect) { break; } } } request.setAttribute("list", list); Map<String, Object> space = (Map<String, Object>) request.getAttribute("space"); Common.realname_get(sGlobal, sConfig, sNames, space); } return true; } private boolean magic_doodle(HttpServletRequest request, HttpServletResponse response) { boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { request.setAttribute("op", "show"); } return true; } private boolean magic_downdateline(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String idtype = (String) request.getAttribute("idtype"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); Object result = magicService.magic_check_idtype(sGlobal, id, idtype); if (result instanceof MessageVO) { showMessage(request, response, (MessageVO) result); return false; } Map<String, Object> blog = (Map<String, Object>) result; request.setAttribute("blog", blog); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { String newdatelineString = request.getParameter("newdateline"); int newdateline = 0; Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); String timeoffset = Common.getTimeOffset(sGlobal, sConfig); if (newdatelineString == null || (newdateline = Common.strToTime(newdatelineString, timeoffset, "yyyy-MM-dd HH:mm")) < Common .strToTime("1970-1-1", timeoffset) || newdateline > (Integer) blog.get("dateline")) { showMessage(request, response, "magicuse_bad_dateline"); return false; } String tablename = cpService.getTablebyIdType(idtype); int supe_uid = (Integer) sGlobal.get("supe_uid"); dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName(tablename) + " SET dateline='" + newdateline + "' WHERE " + idtype + "='" + id + "' AND uid='" + supe_uid + "'"); dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("feed") + " SET dateline='" + newdateline + "' WHERE id='" + id + "' AND idtype='" + idtype + "' AND uid='" + supe_uid + "'"); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_flicker(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); String idtype = "cid"; List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("comment") + " WHERE cid = '" + id + "' AND authorid = '" + supe_uid + "'"); Map<String, Object> value = query.size() > 0 ? query.get(0) : null; if (Common.empty(value)) { showMessage(request, response, "magicuse_bad_object"); return false; } else if ((Integer) value.get("magicflicker") == 1) { showMessage(request, response, "magicuse_object_once_limit"); return false; } boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { Map<String, Object> setSQLArr = new HashMap<String, Object>(); setSQLArr.put("magicflicker", 1); Map<String, Object> whereSQLArr = new HashMap<String, Object>(); whereSQLArr.put("cid", id); whereSQLArr.put("authorid", supe_uid); dataBaseService.updateTable("comment", setSQLArr, whereSQLArr); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer")); return false; } return true; } private boolean magic_frame(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); String idtype = "picid"; Object result = magicService.magic_check_idtype(sGlobal, id, idtype); if (result instanceof MessageVO) { showMessage(request, response, (MessageVO) result); return false; } boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { int frame = Common.intval(request.getParameter("frame")); Map<String, Object> setSQLArr = new HashMap<String, Object>(); setSQLArr.put("magicframe", frame); Map<String, Object> whereSQLArr = new HashMap<String, Object>(); whereSQLArr.put("picid", id); whereSQLArr.put("uid", (Integer) sGlobal.get("supe_uid")); dataBaseService.updateTable("pic", setSQLArr, whereSQLArr); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_friendnum(HttpServletRequest request, HttpServletResponse response) { String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { int addnum = operateMagicCustomInfo(request, "addnum", 10); dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("space") + " SET addfriend = addfriend + " + addnum + " WHERE uid = '" + (Integer) sGlobal.get("supe_uid") + "'"); magicService.magic_use(sGlobal, mid, new HashMap<String, Object>(), true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_gift(HttpServletRequest request, HttpServletResponse response) { String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); int leftcredit = 0; List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("magicuselog") + " WHERE uid='" + supe_uid + "' AND mid='" + mid + "'"); Map<String, Object> value = query.size() > 0 ? query.get(0) : null; Map<String, Object> data = null; if (value != null) { String dataTemp = (String) value.get("data"); if (dataTemp != null && !dataTemp.equals("")) { data = Serializer.unserialize(dataTemp, false); leftcredit = (Integer) data.get("left"); } } request.setAttribute("leftcredit", leftcredit); int custom_maxchunk = operateMagicCustomInfo(request, "maxchunk", 20); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { int creditPost = Common.intval(request.getParameter("credit")); int chunkPost = Common.intval(request.getParameter("chunk")); if (chunkPost < 1 || chunkPost > creditPost || chunkPost > custom_maxchunk) { showMessage(request, response, "magicuse_bad_chunk_given"); return false; } Map<String, Object> space = (Map<String, Object>) request.getAttribute("space"); if (creditPost < 1 || creditPost > (Integer) space.get("credit")) { showMessage(request, response, "magicuse_bad_credit_given"); return false; } dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("space") + " SET credit = credit - " + creditPost + " + " + leftcredit + " WHERE uid = '" + supe_uid + "'"); data = new HashMap<String, Object>(); data.put("credit", creditPost); data.put("chunk", chunkPost); data.put("left", creditPost); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("data", Serializer.serialize(data)); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer")); return false; } return true; } private boolean magic_hot(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String idtype = (String) request.getAttribute("idtype"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); Object result = magicService.magic_check_idtype(sGlobal, id, idtype); if (result instanceof MessageVO) { showMessage(request, response, (MessageVO) result); return false; } List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT COUNT(*) AS cont FROM " + JavaCenterHome.getTableName("magicuselog") + " WHERE id = '" + id + "' AND idtype = '" + idtype + "' AND uid = '" + supe_uid + "' AND mid = '" + mid + "'"); if (query.size() > 0 && (Integer) query.get(0).get("cont") != 0) { showMessage(request, response, "magicuse_object_once_limit"); return false; } boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { Object feedhotminOB = sConfig.get("feedhotmin"); int hot = feedhotminOB != null ? Common.intval(String.valueOf(feedhotminOB)) : 0; dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("feed") + " SET hot = hot + " + hot + " WHERE id = '" + id + "' AND idtype = '" + idtype + "' AND uid = '" + supe_uid + "'"); dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("blog") + " SET hot = hot + " + hot + " WHERE blogid = '" + id + "' AND uid = '" + supe_uid + "'"); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer")); return false; } return true; } private boolean magic_icon(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); String idtype = "tid"; Object result = magicService.magic_check_idtype(sGlobal, id, idtype); if (result instanceof MessageVO) { showMessage(request, response, (MessageVO) result); return false; } Map<String, Object> thread = (Map<String, Object>) result; if ((Integer) thread.get("magicegg") >= 8) { showMessage(request, response, "magicuse_object_count_limit", null, 1, "8"); return false; } boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("thread") + " SET magicegg = magicegg + 1 WHERE tid = '" + id + "' AND uid = '" + supe_uid + "'"); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_invisible(HttpServletRequest request, HttpServletResponse response) { String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { int custom_effectivetime = operateMagicCustomInfo(request, "effectivetime", 86400); int expire = (Integer) sGlobal.get("timestamp") + custom_effectivetime; dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("session") + " SET magichidden = 1 WHERE uid='" + supe_uid + "'"); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("expire", expire); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_reveal(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String idtype = (String) request.getAttribute("idtype"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT COUNT(*) AS cont FROM " + JavaCenterHome.getTableName("magicuselog") + " WHERE id = '" + id + "' AND idtype = '" + idtype + "' AND mid = 'anonymous'"); if (query.size() == 0 && (Integer) query.get(0).get("cont") == 0) { showMessage(request, response, "magicuse_bad_object"); return false; } boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); request.setAttribute("op", "show"); query = dataBaseService.executeQuery("SELECT uid, username FROM " + JavaCenterHome.getTableName("magicuselog") + " WHERE id = '" + id + "' AND idtype = '" + idtype + "' AND mid = 'anonymous'"); Map<Integer, String> sNames = (Map<Integer, String>) request.getAttribute("sNames"); for (Map<String, Object> value : query) { Common.realname_set(sGlobal, sConfig, sNames, (Integer) value.get("uid"), (String) value .get("username"), "", 0); } request.setAttribute("list", query); } return true; } private boolean magic_superstar(HttpServletRequest request, HttpServletResponse response) { String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { int starPost = Common.intval(request.getParameter("star")); int custom_effectivetime = operateMagicCustomInfo(request, "effectivetime", 604800); int expire = (Integer) sGlobal.get("timestamp") + custom_effectivetime; Map<String, Object> setSQLArr = new HashMap<String, Object>(); Map<String, Object> whereSQLArr = new HashMap<String, Object>(); setSQLArr.put("magicstar", starPost); setSQLArr.put("magicexpire", expire); whereSQLArr.put("uid", supe_uid); dataBaseService.updateTable("spacefield", setSQLArr, whereSQLArr); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("expire", expire); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_thunder(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String idtype = (String) request.getAttribute("idtype"); String mid = (String) request.getAttribute("mid"); Map<String, Object> space = (Map<String, Object>) request.getAttribute("space"); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { magicService.magic_use(sGlobal, mid, new HashMap<String, Object>(), true); int uid = supe_uid; String supe_username = (String) sGlobal.get("supe_username"); Map<Integer, String> sNames = (Map<Integer, String>) request.getAttribute("sNames"); Common.realname_set(sGlobal, sConfig, sNames, supe_uid, supe_username, "", 0); Common.realname_get(sGlobal, sConfig, sNames, space); sGlobal.put("supe_uid", 0); String avatar = cpService.ckavatar(sGlobal, sConfig, uid) ? Common.avatar(uid, "middle", true, sGlobal, sConfig) : "data/avatar/noavatar_middle.gif"; Map<String, Object> title_data = new HashMap<String, Object>(); title_data.put("uid", uid); title_data.put("username", "<a href=\"space.jsp?uid=" + uid + "\">" + sNames.get(uid) + "</a>"); Map<String, Object> body_data = new HashMap<String, Object>(); body_data.put("uid", uid); body_data.put("magic_thunder", 1); cpService.addFeed(sGlobal, "thunder", Common.getMessage(request, "cp_magicuse_thunder_announce_title"), title_data, Common.getMessage(request, "cp_magicuse_thunder_announce_body"), body_data, "", new String[] {avatar}, new String[] {"space.jsp?uid=" + uid}, "", 0, 0, id, idtype, false); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_updateline(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String idtype = (String) request.getAttribute("idtype"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); Object result = magicService.magic_check_idtype(sGlobal, id, idtype); if (result instanceof MessageVO) { showMessage(request, response, (MessageVO) result); return false; } boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { String tablename = cpService.getTablebyIdType(idtype); int timestamp = (Integer) sGlobal.get("timestamp"); dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName(tablename) + " SET dateline = '" + timestamp + "' WHERE " + idtype + " = '" + id + "' AND uid = '" + supe_uid + "'"); dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("feed") + " SET dateline = '" + timestamp + "' WHERE id = '" + id + "' AND idtype = '" + idtype + "' AND uid = '" + supe_uid + "'"); Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); showMessage(request, response, "magicuse_success", request.getHeader("referer"), 0); return false; } return true; } private boolean magic_viewmagic(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int custom_maxview = operateMagicCustomInfo(request, "maxview", 10); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { String idtype = "uid"; Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); request.setAttribute("op", "show"); List<Map<String, Object>> list = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("usermagic") + " WHERE uid='" + id + "' AND count > 0 LIMIT " + custom_maxview); request.setAttribute("list", list); } return true; } private boolean magic_viewmagiclog(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String mid = (String) request.getAttribute("mid"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { String idtype = "uid"; Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); request.setAttribute("op", "show"); List<Map<String, Object>> list = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("magicuselog") + " WHERE uid='" + id + "' ORDER BY dateline DESC LIMIT 10"); request.setAttribute("list", list); } return true; } private boolean magic_viewvisitor(HttpServletRequest request, HttpServletResponse response) { int id = (Integer) request.getAttribute("id"); String mid = (String) request.getAttribute("mid"); Map<String, Object> space = (Map<String, Object>) request.getAttribute("space"); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); int custom_maxview = operateMagicCustomInfo(request, "maxview", 10); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { String idtype = "uid"; Map<String, Object> magicuselog = new HashMap<String, Object>(); magicuselog.put("id", id); magicuselog.put("idtype", idtype); magicService.magic_use(sGlobal, mid, magicuselog, true); request.setAttribute("op", "show"); List<Map<String, Object>> list = dataBaseService.executeQuery("SELECT m.uid, m.username FROM " + JavaCenterHome.getTableName("visitor") + " v LEFT JOIN " + JavaCenterHome.getTableName("member") + " m ON v.uid = m.uid WHERE v.vuid = '" + id + "' AND v.vusername != '' ORDER BY v.dateline DESC LIMIT " + custom_maxview); Map<Integer, String> sNames = (Map<Integer, String>) request.getAttribute("sNames"); for (Map<String, Object> value : list) { Common.realname_set(sGlobal, sConfig, sNames, (Integer) value.get("uid"), (String) value .get("username"), "", 0); } request.setAttribute("list", list); Common.realname_get(sGlobal, sConfig, sNames, space); } return true; } private boolean magic_visit(HttpServletRequest request, HttpServletResponse response) { String mid = (String) request.getAttribute("mid"); Map<String, Object> space = (Map<String, Object>) request.getAttribute("space"); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); int supe_uid = (Integer) sGlobal.get("supe_uid"); boolean sc = false; try { sc = submitCheck(request, "usesubmit"); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } if (sc) { String[] friends = (String[]) space.get("friends"); String[] fids = null; int count = friends.length; if (count == 0) { showMessage(request, response, "magicuse_has_no_valid_friend"); return false; } else if (count == 1) { fids = new String[] {friends[0]}; } else { int custom_maxvisit = operateMagicCustomInfo(request, "maxvisit", 10); int getCount = Math.min(custom_maxvisit, count); fids = new String[getCount]; List<Integer> tempList = new ArrayList<Integer>(getCount); int tempI = 0; Random random = new Random(); for (int i = 0; i < getCount; i++) { tempI = random.nextInt(count); if (tempList.contains(tempI)) { i--; continue; } fids[i] = friends[tempI]; tempList.add(tempI); } } StringBuilder inserts = new StringBuilder(); String visitwayPost = request.getParameter("visitway"); if ("poke".equals(visitwayPost)) { String note = ""; int icon = Common.intval(request.getParameter("visitpoke")); String supe_username = (String) sGlobal.get("supe_username"); int timestamp = (Integer) sGlobal.get("timestamp"); String tempS = "', '"; for (String fid : fids) { inserts.append("('"); inserts.append(fid); inserts.append(tempS); inserts.append(supe_uid); inserts.append(tempS); inserts.append(supe_username); inserts.append(tempS); inserts.append(note); inserts.append(tempS); inserts.append(timestamp); inserts.append(tempS); inserts.append(icon); inserts.append("'),"); } int tempI = 0; if ((tempI = inserts.length()) > 0) { inserts.delete(tempI - 1, tempI); } List<String> repokeids = new ArrayList<String>(); List<Map<String, Object>> query = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("poke") + " WHERE fromuid = '" + supe_uid + "' AND uid IN (" + Common.sImplode(fids) + ")"); for (Map<String, Object> value : query) { repokeids.add(String.valueOf(value.get("uid"))); } dataBaseService .execute("REPLACE INTO " + JavaCenterHome.getTableName("poke") + "(uid, fromuid, fromusername, note, dateline, iconid) VALUES " + inserts.toString()); String[] ids = array_diff(fids, repokeids); dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("space") + " SET pokenum = pokenum + 1 WHERE uid IN (" + Common.sImplode(ids) + ")"); } else if ("comment".equals(visitwayPost)) { String message = null; try { message = Common.getStr(request.getParameter("visitmsg"), 255, true, true, true, 0, 0, request, response); } catch (Exception e) { showMessage(request, response, e.getMessage()); return false; } String ip = Common.getOnlineIP(request); StringBuilder note_inserts = new StringBuilder(); String supe_username = (String) sGlobal.get("supe_username"); int timestamp = (Integer) sGlobal.get("timestamp"); String tempS = "', '"; String note = null; StringBuilder arg = new StringBuilder(); for (String fid : fids) { inserts.append("('"); inserts.append(fid); inserts.append(tempS); inserts.append(fid); inserts.append("', 'uid', '"); inserts.append(supe_uid); inserts.append(tempS); inserts.append(supe_username); inserts.append(tempS); inserts.append(ip); inserts.append(tempS); inserts.append(timestamp); inserts.append(tempS); inserts.append(message); inserts.append("'),"); arg.append("space.jsp?uid="); arg.append(fid); arg.append("&do=wall"); note = Common.getMessage(request, "cp_magic_note_wall", arg.toString()); ; arg.delete(0, arg.length()); note_inserts.append("('"); note_inserts.append(fid); note_inserts.append("', 'comment', '1', '"); note_inserts.append(supe_uid); note_inserts.append(tempS); note_inserts.append(supe_username); note_inserts.append(tempS); note_inserts.append(note); note_inserts.append(tempS); note_inserts.append(timestamp); note_inserts.append("'),"); } int tempI = 0; if ((tempI = inserts.length()) > 0) { inserts.delete(tempI - 1, tempI); } if ((tempI = note_inserts.length()) > 0) { note_inserts.delete(tempI - 1, tempI); } dataBaseService.execute("INSERT INTO " + JavaCenterHome.getTableName("comment") + "(uid, id, idtype, authorid, author, ip, dateline, message) VALUES " + inserts.toString()); dataBaseService.execute("INSERT INTO " + JavaCenterHome.getTableName("notification") + "(uid, type, new, authorid, author, note, dateline) VALUES " + note_inserts.toString()); dataBaseService.execute("UPDATE " + JavaCenterHome.getTableName("space") + " SET notenum = notenum + 1 WHERE uid IN (" + Common.sImplode(fids) + ")"); } else { String supe_username = (String) sGlobal.get("supe_username"); int timestamp = (Integer) sGlobal.get("timestamp"); String tempS = "', '"; for (String fid : fids) { inserts.append("('"); inserts.append(fid); inserts.append(tempS); inserts.append(supe_uid); inserts.append(tempS); inserts.append(supe_username); inserts.append(tempS); inserts.append(timestamp); inserts.append("'),"); } int tempI = 0; if ((tempI = inserts.length()) > 0) { inserts.delete(tempI - 1, tempI); } dataBaseService.execute("REPLACE INTO " + JavaCenterHome.getTableName("visitor") + "(uid, vuid, vusername, dateline) VALUES " + inserts.toString()); } magicService.magic_use(sGlobal, mid, new HashMap<String, Object>(), true); List<Map<String, Object>> query = dataBaseService .executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("member") + " WHERE uid IN (" + Common.sImplode(fids) + ")"); int uid = 0; Map<Integer, String> sNames = (Map<Integer, String>) request.getAttribute("sNames"); for (Map<String, Object> value : query) { uid = (Integer) value.get("uid"); Common.realname_set(sGlobal, sConfig, sNames, uid, (String) value.get("username"), "", 0); } Common.realname_get(sGlobal, sConfig, sNames, space); request.setAttribute("users", query); request.setAttribute("op", "show"); } else { List<String> icons = new ArrayList<String>(13); icons.add("<img src=\"image/poke/cyx.gif\" /> ��һ��"); icons.add("<img src=\"image/poke/wgs.gif\" /> �ո���"); icons.add("<img src=\"image/poke/wx.gif\" /> ΢Ц"); icons.add("<img src=\"image/poke/jy.gif\" /> ����"); icons.add("<img src=\"image/poke/pmy.gif\" /> ������"); icons.add("<img src=\"image/poke/yb.gif\" /> ӵ��"); icons.add("<img src=\"image/poke/fw.gif\" /> ����"); icons.add("<img src=\"image/poke/nyy.gif\" /> ������"); icons.add("<img src=\"image/poke/gyq.gif\" /> ��һȭ"); icons.add("<img src=\"image/poke/dyx.gif\" /> ��һ��"); icons.add("<img src=\"image/poke/yw.gif\" /> ����"); icons.add("<img src=\"image/poke/ppjb.gif\" /> ���ļ��"); icons.add("<img src=\"image/poke/yyk.gif\" /> ҧһ��"); request.setAttribute("icons", icons); } return true; } private int operateMagicCustomInfo(HttpServletRequest request, String key, int defaultValue) { int customKeyInf = 0; Map<String, Object> magic = (Map<String, Object>) request.getAttribute("magic"); if (magic != null) { Map<String, String> custom = (Map<String, String>) magic.get("custom"); if (custom == null) { custom = new HashMap<String, String>(); magic.put("custom", custom); } String keyValue = custom.get(key); if (keyValue != null && !keyValue.equals("") && !keyValue.equals("0")) { customKeyInf = Common.intval(keyValue); } else { custom.put(key, defaultValue + ""); } } return customKeyInf == 0 ? defaultValue : customKeyInf; } private boolean mapWithValue(Map<Integer, Integer> sourceMap, int target) { Collection<Integer> collection = sourceMap.values(); return collection.contains(target); } private String[] array_diff(String[] searchArray, List<String> sourceList) { if (searchArray == null || sourceList == null) { return null; } String[] sourceArray = sourceList.toArray(new String[sourceList.size()]); List<String> resultList = new ArrayList<String>(); for (String tempS : searchArray) { if (!Common.in_array(sourceArray, tempS)) { resultList.add(tempS); } } return resultList.toArray(new String[0]); } }