package cn.jcenterhome.web.action.admin; import java.util.List; import java.util.Map; 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.JavaCenterHome; import cn.jcenterhome.web.action.BaseAction; public class MagicLogAction extends BaseAction { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { int perPage = 50; boolean allowManage = Common.checkPerm(request, response, "managemagiclog"); Map<String, Object> sGlobal = (Map<String, Object>) request.getAttribute("sGlobal"); Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig"); Map<String, String[]> paramMap = request.getParameterMap(); if (!allowManage) { paramMap.put("uid", new String[] {sGlobal.get("supe_uid").toString()}); paramMap.put("username", new String[] {sGlobal.get("supe_username").toString()}); request.setAttribute("disabled", " disabled"); } String timeoffset = Common.getTimeOffset(sGlobal, sConfig); String view = request.getParameter("view"); if (Common.empty(view)) { view = "holdlog"; } request.setAttribute("actives_" + view, " class='active'"); if ("inlog".equals(view)) { StringBuffer mpUrl = new StringBuffer("admincp.jsp?ac=magiclog&view=inlog"); String[] intKeys = {"type"}; String[] strKeys = {"mid"}; String[] likeKeys = {"username"}; Map<String, String> wheres = getWheres(intKeys, strKeys, null, likeKeys, "", paramMap, null); StringBuffer tempSQL = new StringBuffer(); String startTime = request.getParameter("starttime"); if (!Common.empty(startTime)) { tempSQL.append(" AND dateline >= " + Common.strToTime(startTime, timeoffset, "yyyy-MM-dd HH:mm")); mpUrl.append("&starttime=" + startTime); } String endTime = request.getParameter("endtime"); if (!Common.empty(endTime)) { tempSQL.append(" AND dateline <= " + Common.strToTime(endTime, timeoffset, "yyyy-MM-dd HH:mm")); mpUrl.append("&endtime=" + endTime); } String countStr = request.getParameter("count"); if (!Common.empty(countStr)) { String[] temp = countStr.split("-"); tempSQL.append(" AND count >= '" + temp[0] + "' AND count <= '" + temp[1] + "'"); mpUrl.append("&count=" + countStr); } String whereSQL = wheres.get("sql"); if (whereSQL != null) { whereSQL += tempSQL; } else if (tempSQL.length() > 0) { whereSQL = tempSQL.substring(4); } else { whereSQL = "1"; } mpUrl.append(wheres.get("url")); mpUrl.append("&perPage=" + perPage); 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); } String sql = "SELECT COUNT(*) as thecount FROM " + JavaCenterHome.getTableName("magicinlog") + " WHERE " + whereSQL; int count = dataBaseService.findRows(sql); if (count > 0) { sql = "SELECT * FROM " + JavaCenterHome.getTableName("magicinlog") + " WHERE " + whereSQL + " ORDER BY dateline DESC LIMIT " + start + "," + perPage; List<Map<String, Object>> list = dataBaseService.executeQuery(sql); for (Map<String, Object> value : list) { value.put("dateline", Common.sgmdate(request, "yyyy-MM-dd HH:mm", (Integer) value .get("dateline"))); } String multi = Common.multi(request, count, perPage, page, maxPage, mpUrl.toString(), null, null); request.setAttribute("list", list); request.setAttribute("multi", multi); } } else if ("uselog".equals(view)) { StringBuffer mpUrl = new StringBuffer("admincp.jsp?ac=magiclog&view=uselog"); String[] intKeys = {"id"}; String[] strKeys = {"mid", "idtype"}; String[] likeKeys = {"username"}; Map<String, String> wheres = getWheres(intKeys, strKeys, null, likeKeys, "", paramMap, null); StringBuffer tempSQL = new StringBuffer(); String startTime = request.getParameter("starttime"); if (!Common.empty(startTime)) { tempSQL.append(" AND dateline >= " + Common.strToTime(startTime, timeoffset, "yyyy-MM-dd HH:mm")); mpUrl.append("&starttime=" + startTime); } String endTime = request.getParameter("endtime"); if (!Common.empty(endTime)) { tempSQL.append(" AND dateline <= " + Common.strToTime(endTime, timeoffset, "yyyy-MM-dd HH:mm")); mpUrl.append("&endtime=" + endTime); } String whereSQL = wheres.get("sql"); if (whereSQL != null) { whereSQL += tempSQL; } else if (tempSQL.length() > 0) { whereSQL = tempSQL.substring(4); } else { whereSQL = "1"; } mpUrl.append(wheres.get("url")); mpUrl.append("&perpage=" + perPage); 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); } String sql = "SELECT COUNT(*) as thecount FROM " + JavaCenterHome.getTableName("magicuselog") + " WHERE " + whereSQL; int count = dataBaseService.findRows(sql); if (count > 0) { sql = "SELECT * FROM " + JavaCenterHome.getTableName("magicuselog") + " WHERE " + whereSQL + " ORDER BY dateline DESC LIMIT " + start + "," + perPage; List<Map<String, Object>> list = dataBaseService.executeQuery(sql); for (Map<String, Object> value : list) { value.put("dateline", Common.sgmdate(request, "yyyy-MM-dd HH:mm", (Integer) value .get("dateline"))); } String multi = Common.multi(request, count, perPage, page, maxPage, mpUrl.toString(), null, null); request.setAttribute("list", list); request.setAttribute("multi", multi); } } else if ("storelog".equals(view)) { if (!allowManage) { return cpMessage(request, mapping, "cp_no_authority_management_operation"); } int totalCount = 0, totalCredit = 0; String sql = "SELECT * FROM " + JavaCenterHome.getTableName("magicstore") + " ORDER BY sellcount DESC"; List<Map<String, Object>> list = dataBaseService.executeQuery(sql); for (Map<String, Object> value : list) { totalCount += (Integer) value.get("sellcount"); totalCredit += (Integer) value.get("sellcredit"); } request.setAttribute("totalcount", totalCount); request.setAttribute("totalcredit", totalCredit); request.setAttribute("list", list); } else { StringBuffer mpUrl = new StringBuffer("admincp.jsp?ac=magiclog&view=holdlog"); String[] intKeys = {"uid"}; String[] strKeys = {"mid"}; String[] likeKeys = {"username"}; Map<String, String> wheres = getWheres(intKeys, strKeys, null, likeKeys, "", paramMap, null); String whereSQL = wheres.get("sql"); if (whereSQL == null) { whereSQL = "count > 0"; } else { whereSQL += " AND count > 0"; } mpUrl.append(wheres.get("url")); mpUrl.append("&perpage=" + perPage); 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); } String sql = "SELECT COUNT(*) as thecount FROM " + JavaCenterHome.getTableName("usermagic") + " WHERE " + whereSQL; int count = dataBaseService.findRows(sql); if (count > 0) { sql = "SELECT * FROM " + JavaCenterHome.getTableName("usermagic") + " WHERE " + whereSQL + " LIMIT " + start + "," + perPage; List<Map<String, Object>> list = dataBaseService.executeQuery(sql); String multi = Common.multi(request, count, perPage, page, maxPage, mpUrl.toString(), null, null); request.setAttribute("list", list); request.setAttribute("multi", multi); } } request.setAttribute("allowmanage", allowManage); request.setAttribute("view", view); return mapping.findForward("magiclog"); } }