package cn.jcenterhome.web.action.admin;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
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 org.apache.struts.action.DynaActionForm;
import org.apache.struts.upload.FormFile;
import cn.jcenterhome.util.Common;
import cn.jcenterhome.util.JavaCenterHome;
import cn.jcenterhome.web.action.BaseAction;
public class SpaceAction 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");
int supe_uid = (Integer) sGlobal.get("supe_uid");
boolean managename = Common.checkPerm(request, response, "managename");
boolean managespacegroup = Common.checkPerm(request, response, "managespacegroup");
boolean managespaceinfo = Common.checkPerm(request, response, "managespaceinfo");
boolean managespacecredit = Common.checkPerm(request, response, "managespacecredit");
boolean managespacenote = Common.checkPerm(request, response, "managespacenote");
boolean manageconfig = Common.checkPerm(request, response, "manageconfig");
boolean managedelspace = Common.checkPerm(request, response, "managedelspace");
boolean noprivilege = !managename && !managespacegroup && !managespaceinfo && !managespacecredit
&& !managespacenote && !managedelspace;
if (noprivilege) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
}
int uid = Common.intval(request.getParameter("uid"));
Map<String, Object> member = null;
String videopic = null;
if (uid > 0) {
List<Map<String, Object>> spaceList = dataBaseService.executeQuery("SELECT s.*, sf.* FROM "
+ JavaCenterHome.getTableName("space") + " s LEFT JOIN "
+ JavaCenterHome.getTableName("spacefield") + " sf ON sf.uid=s.uid WHERE s.uid=" + uid);
if (spaceList.isEmpty()) {
return cpMessage(request, mapping, "cp_designated_users_do_not_exist");
}
member = spaceList.get(0);
member.put("addsize", (Integer) member.get("addsize") / (1024 * 1024));
String ip = member.get("ip").toString();
member.put("ip", Common.strlen(ip) < 9 ? "-" : Common.intval(ip.substring(0, 3)) + "."
+ Common.intval(ip.substring(3, 6)) + "." + Common.intval(ip.substring(6, 9)) + ".1~255");
if (!Common.empty(sConfig.get("videophoto")) && !Common.empty(member.get("videopic"))) {
videopic = cpService.getVideoPic((String) member.get("videopic"));
} else {
member.put("videostatus", 0);
}
}
if (uid != supe_uid && Common.ckFounder(uid)) {
return cpMessage(request, mapping, "cp_not_have_permission_to_operate_founder");
}
String timeoffset = Common.getTimeOffset(sGlobal, sConfig);
int timestamp = (Integer) sGlobal.get("timestamp");
SimpleDateFormat spaceSDF = Common.getSimpleDateFormat("yyyy-MM-dd HH:mm", timeoffset);
Map<Integer, Map<String, Object>> profilefields = Common.getCacheDate(request, response,
"/data/cache/cache_profilefield.jsp", "globalProfilefield");
try {
if (submitCheck(request, "usergroupsubmit")) {
if (Common.empty(member)) {
return cpMessage(request, mapping, "cp_designated_users_do_not_exist");
}
Map<String, Object> setarr = new HashMap<String, Object>();
if (managespacecredit) {
setarr.put("addsize", Common.intval(request.getParameter("addsize")) * 1024 * 1024);
setarr.put("credit", Common.intval(request.getParameter("credit")));
setarr.put("experience", Common.intval(request.getParameter("experience")));
} else {
setarr.put("credit", (Integer) member.get("credit"));
setarr.put("experience", (Integer) member.get("experience"));
}
String email = null;
int emailcheck = 0;
if (managespaceinfo) {
DynaActionForm actionForm = (DynaActionForm) form;
FormFile formFile = (FormFile) actionForm.get("newvideopic");
if (formFile != null && formFile.getFileSize() > 0) {
if (formFile.getFileName().matches(".*\\.(jpg|jpeg|gif|bmp)$")) {
String newvideopic = cpService.videoPicUpload(formFile, uid, timestamp);
if (newvideopic != null) {
if (!Common.empty(member.get("videopic"))) {
File file = new File(JavaCenterHome.jchRoot + "/"
+ cpService.getVideoPic((String) member.get("videopic")));
if (file.exists()) {
file.delete();
}
}
member.put("videopic", newvideopic);
}
}
}
int videostatus = Common.intval(request.getParameter("videostatus"));
if (Common.empty(member.get("videopic"))) {
videostatus = 0;
}
if(videostatus==2){
File file = new File(JavaCenterHome.jchRoot + "/"
+ cpService.getVideoPic((String) member.get("videopic")));
if (file.exists()) {
file.delete();
}
member.put("videopic", "");
videostatus=0;
}
setarr.put("videostatus", videostatus);
try {
email = Common.getStr(request.getParameter("email"), 100, true, true, false, 0, 0,
request, response);
} catch (Exception e) {
return showMessage(request, response, e.getMessage());
}
emailcheck = Common.intval(request.getParameter("emailcheck"));
if (emailcheck > 0 && !Common.empty(email)) {
Map<String, Integer> reward = Common.getReward("realemail", false, uid, "", false,
request, response);
if (reward.get("credit") > 0) {
setarr.put("credit", (Integer) setarr.get("credit") + reward.get("credit"));
}
if (reward.get("experience") > 0) {
setarr.put("experience", (Integer) setarr.get("experience")
+ reward.get("experience"));
}
}
setarr.put("domain", Common.trim(request.getParameter("domain")));
setarr.put("addfriend", Common.intval(request.getParameter("addfriend")));
}
if (managespacegroup) {
if ((Integer) member.get("flag") != -1) {
int flag = Common.intval(request.getParameter("flag"));
int result = 0;
if (flag == 1) {
result = 1;
} else {
flag = 0;
result = 1;
}
if (result != 0) {
setarr.put("flag", flag);
}
}
if (uid != supe_uid || Common.ckFounder(supe_uid)) {
int groupId = Common.intval(request.getParameter("groupid"));
int expiration = 0;
if (groupId == 0) {
groupId = Common.getGroupid(request, response, Common.intval(request
.getParameter("experience")), groupId);
} else {
expiration = Common.strToTime(request.getParameter("expiration"), timeoffset,
"yyyy-MM-dd HH:mm");
if (expiration > 0 && expiration <= timestamp) {
return cpMessage(request, mapping, "time_expired_error");
}
}
Map<String, Object> group = Common.getCacheDate(request, response,
"/data/cache/usergroup_" + groupId + ".jsp", "usergroup" + groupId);
if ((Integer) group.get("manageconfig") > 0 && !Common.ckFounder(supe_uid)) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
}
if (expiration > 0) {
dataBaseService.executeUpdate("REPLACE INTO "
+ JavaCenterHome.getTableName("spacelog")
+ " (uid,username,opuid,opusername,expiration,dateline,flag) VALUES ("
+ member.get("uid") + ",'"
+ Common.addSlashes((String) member.get("username")) + "'," + supe_uid
+ ",'" + sGlobal.get("supe_username") + "'," + expiration + ","
+ timestamp + ",1)");
}
setarr.put("groupid", groupId);
}
}
if (managename) {
try {
setarr.put("name", Common.getStr(request.getParameter("name"), 20, true, true, false,
0, 0, request, response));
} catch (Exception e) {
return showMessage(request, response, e.getMessage());
}
int nameStatus = Common.intval(request.getParameter("namestatus"));
if (nameStatus > 0 && !Common.empty(setarr.get("name"))) {
Map<String, Integer> reward = Common.getReward("realname", false, uid, "", false,
request, response);
if (reward.get("credit") > 0) {
setarr.put("credit", (Integer) setarr.get("credit") + reward.get("credit"));
}
if (reward.get("experience") > 0) {
setarr.put("experience", (Integer) setarr.get("experience")
+ reward.get("experience"));
}
}
setarr.put("namestatus", nameStatus);
}
if (setarr.size() > 0) {
Set<String> keys = setarr.keySet();
StringBuffer updateStr = new StringBuffer();
for (String key : keys) {
updateStr.append(key + "='" + setarr.get(key) + "',");
}
String sql = "UPDATE " + JavaCenterHome.getTableName("space") + " SET "
+ updateStr.substring(0, updateStr.length() - 1) + " WHERE uid=" + uid;
dataBaseService.executeUpdate(sql);
}
if (managespaceinfo) {
setarr = new HashMap<String, Object>();
setarr.put("email", email == null ? "" : email);
setarr.put("emailcheck", emailcheck);
try {
setarr.put("qq", Common.getStr(request.getParameter("qq"), 20, true, true, false, 0,
0, request, response));
setarr.put("msn", Common.getStr(request.getParameter("msn"), 80, true, true, false,
0, 0, request, response));
setarr.put("blood", Common.getStr(request.getParameter("blood"), 5, true, true,
false, 0, 0, request, response));
setarr.put("birthprovince", Common.getStr(request.getParameter("birthprovince"), 20,
true, true, false, 0, 0, request, response));
setarr.put("birthcity", Common.getStr(request.getParameter("birthcity"), 20, true,
true, false, 0, 0, request, response));
setarr.put("resideprovince", Common.getStr(request.getParameter("resideprovince"),
20, true, true, false, 0, 0, request, response));
setarr.put("residecity", Common.getStr(request.getParameter("residecity"), 20, true,
true, false, 0, 0, request, response));
} catch (Exception e) {
return showMessage(request, response, e.getMessage());
}
setarr.put("sex", Common.intval(request.getParameter("sex")));
setarr.put("birthyear", Common.intval(request.getParameter("birthyear")));
setarr.put("birthmonth", Common.intval(request.getParameter("birthmonth")));
setarr.put("birthday", Common.intval(request.getParameter("birthday")));
setarr.put("marry", Common.intval(request.getParameter("marry")));
setarr.put("videopic", member.get("videopic"));
Set<Integer> fields = profilefields.keySet();
for (Integer field : fields) {
Map<String, Object> value = profilefields.get(field);
int maxSize = (Integer) value.get("maxsize");
if ("formtype".equals(value.get("formtype"))) {
maxSize = 255;
}
try {
setarr.put("field_" + field, Common.getStr(
request.getParameter("field_" + field), maxSize, true, true, false, 0, 0,
request, response));
} catch (Exception e) {
return showMessage(request, response, e.getMessage());
}
}
if (!Common.empty(request.getParameter("clearcss"))) {
setarr.put("css", "");
}
Set<String> updateKeys = setarr.keySet();
StringBuffer updateStr = new StringBuffer();
for (String key : updateKeys) {
updateStr.append(key + "='" + setarr.get(key) + "',");
}
String sql = "UPDATE " + JavaCenterHome.getTableName("spacefield") + " SET "
+ updateStr.substring(0, updateStr.length() - 1) + " WHERE uid=" + uid;
dataBaseService.executeUpdate(sql);
}
if ((!Common.empty(sConfig.get("my_status")))) {
String sql = "REPLACE INTO " + JavaCenterHome.getTableName("userlog")
+ " (uid, action, dateline) VALUES (" + uid + ",'update'," + timestamp + ")";
dataBaseService.executeUpdate(sql);
}
return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=space&op=manage&uid=" + uid);
} else if (submitCheck(request, "listsubmit")) {
int optype = Common.intval(request.getParameter("optype"));
String[] uids = request.getParameterValues("uids");
String mpurl = request.getParameter("mpurl");
if (uids != null) {
boolean createLog = false;
switch (optype) {
case 1:
if (managename) {
mpurl += "&namestatus=0";
Map<String, Integer> reward = null;
for (String uidKey : uids) {
int val = Common.intval(uidKey);
reward = Common.getReward("realname", false, val, "", false, request,
response);
dataBaseService.executeUpdate("UPDATE "
+ JavaCenterHome.getTableName("space")
+ " SET namestatus=1, credit=credit+" + reward.get("credit")
+ ", experience=experience+" + reward.get("experience")
+ " WHERE uid=" + val + " AND name!=''");
}
createLog = true;
}
break;
case 2:
if (managename) {
dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("space")
+ " SET namestatus=0 WHERE uid IN (" + Common.sImplode(uids) + ")");
mpurl += "&namestatus=1";
createLog = true;
}
break;
case 3:
if (managename) {
dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("space")
+ " SET name='',namestatus=0 WHERE uid IN (" + Common.sImplode(uids)
+ ")");
}
break;
case 4:
case 5:
if (managespacenote) {
request.setAttribute("optype", optype);
request.setAttribute("uids", Common.implode(uids, ","));
request.setAttribute("FORMHASH", formHash(request));
request.setAttribute("mpurl", mpurl);
return mapping.findForward("space_manage");
}
break;
case 6:
if (managespaceinfo) {
dataBaseService.executeUpdate("UPDATE "
+ JavaCenterHome.getTableName("spacefield")
+ " SET css='' WHERE uid IN (" + Common.sImplode(uids) + ")");
createLog = true;
}
break;
case 7:
if (manageconfig) {
request.setAttribute("optype", optype);
request.setAttribute("uids", Common.implode(uids, ","));
request.setAttribute("FORMHASH", formHash(request));
request.setAttribute("mpurl", mpurl);
return mapping.findForward("space_manage");
}
break;
default:
return cpMessage(request, mapping, "cp_choice_batch_action");
}
if (createLog && !Common.empty(sConfig.get("my_status"))) {
String comma = "";
StringBuffer values = new StringBuffer();
for (String uidStr : uids) {
values.append(comma + "(" + Common.intval(uidStr) + ",'update'," + timestamp);
comma = ",";
}
dataBaseService.executeUpdate("REPLACE INTO "
+ JavaCenterHome.getTableName("userlog") + " (uid, action, dateline) VALUES "
+ values.toString());
}
return cpMessage(request, mapping, "do_success", mpurl);
} else {
return cpMessage(request, mapping, "cp_choose_to_operate_space");
}
} else if (submitCheck(request, "sendemailsubmit")) {
if (!managespacenote) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
}
String[] touids = null;
String subject = Common.trim(request.getParameter("subject"));
String message = Common.trim(request.getParameter("message"));
if (!Common.empty(subject) || !Common.empty(message)) {
String uids = Common.trim(request.getParameter("uids"));
touids = Common.empty(uids) ? null : uids.split(",");
}
if (touids != null && touids.length > 0) {
List<Map<String, Object>> spacefieldList = dataBaseService
.executeQuery("SELECT email, emailcheck FROM "
+ JavaCenterHome.getTableName("spacefield") + " WHERE uid IN ("
+ Common.sImplode(touids) + ")");
try {
for (Map<String, Object> value : spacefieldList) {
if (!Common.empty(value.get("email"))) {
cpService.sendMail(request, response, 0, (String) value.get("email"),
subject, message, "");
}
}
} catch (Exception e) {
return showMessage(request, response, e.getMessage());
}
}
return cpMessage(request, mapping, "do_success", request.getParameter("mpurl"));
} else if (submitCheck(request, "pokesubmit")) {
if (!managespacenote) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
}
String uids = Common.trim(request.getParameter("uids"));
String[] touids = Common.empty(uids) ? null : uids.split(",");
String note = null;
try {
note = Common.getStr(request.getParameter("note"), 50, true, true, false, 0, 0, request,
response);
} catch (Exception e) {
return showMessage(request, response, e.getMessage());
}
if (touids != null && touids.length > 0) {
Map<String, String> uidsMap = new HashMap<String, String>();
List<String> replaces = new ArrayList<String>();
String supe_username = (String) sGlobal.get("supe_username");
for (String touid : touids) {
int temp = Common.intval(touid);
if (temp > 0 && temp != supe_uid) {
replaces.add("(" + temp + "," + supe_uid + ",'" + supe_username + "','" + note
+ "'," + timestamp + ")");
uidsMap.put(touid, touid);
}
}
if (replaces.size() > 0) {
List<String> pokeList = dataBaseService.executeQuery("SELECT uid FROM "
+ JavaCenterHome.getTableName("poke") + " WHERE uid IN ("
+ Common.sImplode(uidsMap) + ") AND fromuid=" + supe_uid, 1);
for (String value : pokeList) {
uidsMap.remove(value);
}
dataBaseService.executeUpdate("REPLACE INTO " + JavaCenterHome.getTableName("poke")
+ " (uid,fromuid,fromusername,note,dateline) VALUES "
+ Common.implode(replaces, ","));
if (uidsMap.size() > 0) {
String sql = "UPDATE " + JavaCenterHome.getTableName("space")
+ " SET pokenum=pokenum+1 WHERE uid IN(" + Common.sImplode(uidsMap) + ")";
dataBaseService.executeUpdate(sql);
}
}
}
return cpMessage(request, mapping, "do_success", request.getParameter("mpurl"));
} else if (submitCheck(request, "magicsubmit")) {
if (!manageconfig) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
}
String uids = Common.trim(request.getParameter("uids"));
String[] touids = Common.empty(uids) ? null : uids.split(",");
String[] magicaward = request.getParameterValues("magicaward");
Map<String, Integer> presents = new HashMap<String, Integer>();
List<String> mids = new ArrayList<String>();
if (magicaward != null) {
for (String value : magicaward) {
String[] list = value.split(",");
if (list.length > 0) {
String mid = list[0];
int count = 0;
if (list.length > 1) {
count = Common.intval(list[1]);
}
mids.add(mid);
presents.put(mid, count);
}
}
}
if (touids != null && touids.length > 0 && mids.size() > 0) {
Map<Integer, String> names = new HashMap<Integer, String>();
Map<Integer, Map<String, Integer>> owns = new HashMap<Integer, Map<String, Integer>>();
List<Map<String, Object>> userMagicList = dataBaseService
.executeQuery("SELECT uid,mid,count FROM "
+ JavaCenterHome.getTableName("usermagic") + " WHERE uid IN ("
+ Common.sImplode(touids) + ") AND mid IN (" + Common.sImplode(mids)
+ ")");
for (Map<String, Object> userMagic : userMagicList) {
Map<String, Integer> own = owns.get((Integer) userMagic.get("uid"));
if (own == null) {
own = new HashMap<String, Integer>();
owns.put((Integer) userMagic.get("uid"), own);
}
own.put((String) userMagic.get("mid"), (Integer) userMagic.get("count"));
}
List<Map<String, Object>> memberList = dataBaseService
.executeQuery("SELECT uid,username FROM " + JavaCenterHome.getTableName("member")
+ " WHERE uid IN (" + Common.sImplode(touids) + ")");
for (Map<String, Object> value : memberList) {
names.put((Integer) value.get("uid"), (String) Common.sAddSlashes(value
.get("username")));
}
List<String> note_presents = null;
List<String> log_inserts = new ArrayList<String>();
List<String> inserts = new ArrayList<String>();
List<String> note_inserts = new ArrayList<String>();
Map<String, String> magic = (Map<String, String>) request.getAttribute("globalMagic");
Set<String> keys = presents.keySet();
for (String touid : touids) {
note_presents = new ArrayList<String>();
for (String mid : keys) {
int count = presents.get(mid);
note_presents.add("<a href=\"cp.jsp?ac=magic&view=me&mid=" + mid
+ "\" target=\"_blank\">" + magic.get(mid) + "</a>(" + count
+ Common.getMessage(request, "cp_magicunit") + ")");
log_inserts.add("(" + touid + ", '" + names.get(touid) + "', '" + mid + "', "
+ count + ", 2, " + supe_uid + ", 0, " + timestamp + ")");
count = count
+ (owns.get(touid) != null ? (Integer) (owns.get(touid).get(mid)) : 0);
inserts.add("(" + touid + ", '" + names.get(touid) + "', '" + mid + "', " + count
+ ")");
}
String note = Common.getMessage(request, "cp_present_user_magics", Common.implode(
note_presents, "; "));
note_inserts.add("(" + touid + ",'system',1,0,'','" + note + "'," + timestamp + ")");
}
dataBaseService.executeUpdate("REPLACE INTO " + JavaCenterHome.getTableName("usermagic")
+ " (uid, username, mid, count) VALUES " + Common.implode(inserts, ","));
dataBaseService.executeUpdate("INSERT INTO " + JavaCenterHome.getTableName("magicinlog")
+ " (uid, username, mid, count, type, fromid, credit, dateline) VALUES "
+ Common.implode(log_inserts, ","));
dataBaseService.executeUpdate("INSERT INTO "
+ JavaCenterHome.getTableName("notification")
+ " (uid, type, new, authorid, author, note, dateline) VALUES "
+ Common.implode(note_inserts, ","));
dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("space")
+ " SET notenum = notenum + 1 WHERE uid IN (" + Common.sImplode(touids) + ")");
}
return cpMessage(request, mapping, "do_success", request.getParameter("mpurl"));
}
} catch (Exception e) {
return showMessage(request, response, e.getMessage());
}
String op = request.getParameter("op");
if ("delete".equals(op)) {
if (!managedelspace) {
cpMessage(request, mapping, "cp_no_authority_management_operation");
}
try {
if (uid > 0 && adminDeleteService.deleteSpace(request, response, uid, false)) {
return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=space");
} else {
return cpMessage(request, mapping, "cp_choose_to_delete_the_space");
}
} catch (Exception e) {
return showMessage(request, response, e.getMessage());
}
} else if ("close".equals(op)) {
if (!managespaceinfo) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
} else if (Common.empty(member)) {
return cpMessage(request, mapping, "cp_designated_users_do_not_exist");
}
int flag = (Integer) member.get("flag") == -1 ? 0 : -1;
dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("space") + " SET flag="
+ flag + " WHERE uid=" + uid);
return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=space&op=manage&uid=" + uid);
} else if ("deleteavatar".equals(op)) {
if (!managespaceinfo) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
}
Common.deleteAvatar(sGlobal, uid);
Map<String, Integer> reward = Common.getReward("delavatar", false, uid, "", true, request,
response);
dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("space")
+ " SET avatar=0, credit=credit-" + reward.get("credit") + ", experience=experience-"
+ reward.get("experience") + " WHERE uid=" + uid);
return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=space&op=manage&uid=" + uid);
} else if ("manage".equals(op)) {
if (Common.empty(member)) {
return cpMessage(request, mapping, "cp_designated_users_do_not_exist");
}
if (managespaceinfo) {
int nowy = Common.intval(Common.sgmdate(request, "yyyy", 0));
StringBuffer birthyeayHtml = new StringBuffer();
for (int i = 0; i < 80; i++) {
int they = nowy - i;
birthyeayHtml.append("<option value=\"" + they + "\""
+ (they == (Integer) member.get("birthyear") ? " selected" : "") + ">" + they
+ "</option>");
}
request.setAttribute("birthyeayhtml", birthyeayHtml);
StringBuffer birthmonthHtml = new StringBuffer();
for (int i = 1; i < 13; i++) {
birthmonthHtml.append("<option value=\"" + i + "\""
+ (i == (Integer) member.get("birthmonth") ? " selected" : "") + ">" + i
+ "</option>");
}
request.setAttribute("birthmonthhtml", birthmonthHtml);
StringBuffer birthdayHtml = new StringBuffer();
for (int i = 1; i < 32; i++) {
birthdayHtml.append("<option value=\"" + i + "\""
+ (i == (Integer) member.get("birthday") ? " selected" : "") + ">" + i
+ "</option>");
}
request.setAttribute("birthdayhtml", birthdayHtml);
StringBuffer bloodHtml = new StringBuffer();
String[] array = new String[] { "A", "B", "O", "AB" };
for (String value : array) {
bloodHtml.append("<option value=\"" + value + "\""
+ (value.equals(member.get("blood")) ? " selected" : "") + ">" + value
+ "</option>");
}
request.setAttribute("bloodhtml", bloodHtml);
List<Map<String, Object>> profileFields = dataBaseService.executeQuery("SELECT * FROM "
+ JavaCenterHome.getTableName("profilefield") + " ORDER BY displayorder");
for (Map<String, Object> value : profileFields) {
int fieldid = (Integer) value.get("fieldid");
StringBuffer formHtml = new StringBuffer();
if ("text".equals(value.get("formtype"))) {
formHtml.append("<input type=\"text\" name=\"field_" + fieldid + "\" value=\""
+ member.get("field_" + fieldid) + "\" class=\"t_input\">");
} else {
formHtml.append("<select name=\"field_" + fieldid + "\">");
if (Common.empty(value.get("required"))) {
formHtml.append("<option value=\"\">---</option>");
}
String[] options = ((String) value.get("choice")).split("\n");
for (String ov : options) {
ov = ov.trim();
if (!Common.empty(ov)) {
formHtml.append("<option value=\"" + ov + "\""
+ (ov.equals(member.get("field_" + fieldid)) ? " selected" : "")
+ ">" + ov + "</option>");
}
}
formHtml.append("</select>");
}
value.put("formhtml", formHtml.toString());
}
request.setAttribute("profileFields", profileFields);
}
if (managespacegroup) {
List<String> expirations = dataBaseService.executeQuery("SELECT expiration FROM "
+ JavaCenterHome.getTableName("spacelog") + " WHERE uid=" + member.get("uid"), 1);
if (expirations.size() > 0) {
int expiration = Integer.parseInt(expirations.get(0));
member.put("expiration", expiration > 0 ? Common.sgmdate(request, "yyyy-MM-dd HH:mm",
expiration) : "");
}
String expirationStyle = " style=\"display:none;\"";
List<Map<String, Object>> userGroups = dataBaseService
.executeQuery("SELECT gid,grouptitle FROM "
+ JavaCenterHome.getTableName("usergroup") + " WHERE system!=0");
for (Map<String, Object> userGroup : userGroups) {
int gid = (Integer) userGroup.get("gid");
if (gid == (Integer) member.get("groupid")) {
expirationStyle = null;
}
}
request.setAttribute("userGroups", userGroups);
request.setAttribute("expirationStyle", expirationStyle);
}
member.put("dateline", Common.gmdate(spaceSDF, (Integer) member.get("dateline")));
if ((Integer) member.get("updatetime") > 0) {
member.put("updatetime", Common.gmdate(spaceSDF, (Integer) member.get("updatetime")));
} else {
member.put("updatetime", "-");
}
member.put("lastlogin", Common.gmdate(spaceSDF, (Integer) member.get("lastlogin")));
member.put("avatar", Common.avatar((Integer) member.get("uid"), "big", false, sGlobal, sConfig));
request.setAttribute("managename", managename);
request.setAttribute("managedelspace", managedelspace);
request.setAttribute("managespaceinfo", managespaceinfo);
request.setAttribute("managespacecredit", managespacecredit);
request.setAttribute("managespacegroup", managespacegroup);
request.setAttribute("uid", uid);
request.setAttribute("member", member);
request.setAttribute("videopic", videopic);
request.setAttribute("FORMHASH", formHash(request));
return mapping.findForward("space_manage");
}
StringBuffer mpurl = new StringBuffer("admincp.jsp?ac=space");
String pre = "s.";
String[] intkeys = new String[] { "uid", "groupid", "namestatus", "avatar", "videostatus", "opuid", "flag" };
String[] strkeys = new String[] { "username", "opusername" };
List<String[]> randkeys = new ArrayList<String[]>();
randkeys.add(new String[] { "sstrtotime", "dateline" });
randkeys.add(new String[] { "sstrtotime", "updatetime" });
randkeys.add(new String[] { "sstrtotime", "lastpost" });
randkeys.add(new String[] { "sstrtotime", "lastlogin" });
randkeys.add(new String[] { "intval", "credit" });
randkeys.add(new String[] { "intval", "experience" });
String[] likekeys = new String[] { "name" };
Map<String, String[]> paramMap = request.getParameterMap();
Map<String, String> wheres = getWheres(intkeys, strkeys, randkeys, likekeys, pre, paramMap,
timeoffset);
String whereSQL = wheres.get("sql") == null ? "1" : wheres.get("sql");
mpurl.append(wheres.get("url"));
if ("1".equals(request.getParameter("namestatus"))) {
whereSQL += " AND s.name!=''";
}
String tab = request.getParameter("tab");
if (tab == null) {
tab = "all";
} else {
mpurl.append("&tab=" + tab);
}
request.setAttribute("active_" + tab, " class=\"active\"");
String fieldSQL="";
if("0".equals(request.getParameter("videostatus")) && "4".equals(tab)){
fieldSQL="LEFT JOIN "+ JavaCenterHome.getTableName("spacefield") + " sf ON s.uid=sf.uid ";
whereSQL += " AND sf.videopic!=''";
}
Map<String, String> orders = getOrders(
new String[] { "dateline", "updatetime", "friendnum", "credit", "viewnum", "experience" },
"uid", pre, paramMap);
String ordersql = orders.get("sql");
mpurl.append(orders.get("url"));
request.setAttribute("orderby_" + request.getParameter("orderby"), " selected");
request.setAttribute("ordersc_" + request.getParameter("ordersc"), " selected");
int perpage = Common.intval(request.getParameter("perpage"));
if (!Common.in_array(new Integer[] { 20, 50, 100 }, perpage)) {
perpage = 20;
}
mpurl.append("&perpage=" + perpage);
request.setAttribute("perpage_" + perpage, " selected");
int page = Math.max(Common.intval(request.getParameter("page")), 1);
int start = (page - 1) * perpage;
int maxPage = (Integer) sConfig.get("maxpage");
String result = Common.ckStart(start, perpage, maxPage);
if (result != null) {
return showMessage(request, response, result);
}
Map<Object, String> userGroups = new HashMap<Object, String>();
List<Map<String, Object>> userGroupList = dataBaseService.executeQuery("SELECT gid, grouptitle FROM "
+ JavaCenterHome.getTableName("usergroup"));
for (Map<String, Object> value : userGroupList) {
userGroups.put(value.get("gid"), (String) value.get("grouptitle"));
}
int count = dataBaseService.findRows("SELECT COUNT(*) FROM " + JavaCenterHome.getTableName("space")
+ " s "+fieldSQL+"WHERE " + whereSQL);
if (count > 0) {
Map<Integer, String> flags = new HashMap<Integer, String>();
flags.put(-1, "<span style=\"color:blue;\">����</span>");
flags.put(0, "����");
flags.put(1, "<span style=\"color:red;\">����</span>");
List<Object> uids = new ArrayList<Object>();
List<Map<String, Object>> list = dataBaseService.executeQuery("SELECT s.* FROM "
+ JavaCenterHome.getTableName("space") + " s "+fieldSQL+"WHERE " + whereSQL + " " + ordersql
+ " LIMIT " + start + "," + perpage);
for (Map<String, Object> value : list) {
value.put("grouptitle", userGroups.get(value.get("groupid")));
value.put("addsize", Common.formatSize((Integer) value.get("addsize")));
value.put("attachsize", Common.formatSize((Integer) value.get("attachsize")));
value.put("avatar", Common.avatar((Integer) value.get("uid"), "small", false, sGlobal,
sConfig));
value.put("dateline", Common.gmdate(spaceSDF, (Integer) value.get("dateline")));
if ((Integer) value.get("updatetime") > 0) {
value.put("updatetime", Common.gmdate(spaceSDF, (Integer) value.get("updatetime")));
} else {
value.put("updatetime", "-");
}
value.put("flag", flags.get(value.get("flag")));
uids.add(value.get("uid"));
}
if (uids.size() > 0) {
Map<Object, Map<String, Object>> fusers = new HashMap<Object, Map<String, Object>>();
List<Map<String, Object>> spaceLogList = dataBaseService
.executeQuery("SELECT uid,opuid,opusername,expiration FROM "
+ JavaCenterHome.getTableName("spacelog") + " WHERE uid IN ("
+ Common.sImplode(uids) + ")");
for (Map<String, Object> spaceLog : spaceLogList) {
if ((Integer) spaceLog.get("expiration") > 0) {
spaceLog.put("expiration", Common.gmdate(spaceSDF, (Integer) spaceLog
.get("expiration")));
} else {
spaceLog.put("expiration", "-");
}
fusers.put(spaceLog.get("uid"), spaceLog);
}
request.setAttribute("fusers", fusers);
}
request.setAttribute("multi", Common.multi(request, count, perpage, page, maxPage, mpurl
.toString(), null, null));
request.setAttribute("list", list);
if(list.size()%perpage==1){
mpurl.append("&page="+(page-1));
}else{
mpurl.append("&page=" + page);
}
}
request.setAttribute("managename", managename);
request.setAttribute("managespacenote", managespacenote);
request.setAttribute("manageconfig", manageconfig);
request.setAttribute("managespaceinfo", managespaceinfo);
request.setAttribute("FORMHASH", formHash(request));
request.setAttribute("count", count);
request.setAttribute("mpurl", mpurl);
request.setAttribute("userGroups", userGroups);
return mapping.findForward("space");
}
}