package cn.jcenterhome.web.action.admin;
import java.lang.reflect.Method;
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.service.StatService;
import cn.jcenterhome.util.BeanFactory;
import cn.jcenterhome.util.Common;
import cn.jcenterhome.web.action.BaseAction;
public class StatAction extends BaseAction {
private StatService statService = (StatService) BeanFactory.getBean("statService");
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
if (!Common.checkPerm(request, response, "managestat")) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
}
String turl = "admincp.jsp?ac=stat";
int perpage = Common.intval(request.getParameter("perpage"));
String countType = request.getParameter("counttype");
countType = Common.empty(countType) ? "" : countType.trim() + "Stat";
if (perpage > 0 && !Common.empty(countType)) {
int start = Common.intval(request.getParameter("start"));
if (start < 0) {
start = 0;
}
boolean isExecute = false;
try {
Class[] paramTypes = {int.class, int.class};
Object[] params = {start, perpage};
Method method = statService.getClass().getMethod(countType, paramTypes);
isExecute = (Boolean) method.invoke(statService, params);
} catch (Exception e) {
return cpMessage(request, mapping, "cp_choose_to_reconsider_statistical_data_types");
}
if (isExecute) {
String jump = turl + "&counttype=" + request.getParameter("counttype") + "&perpage="
+ request.getParameter("perpage") + "&start=" + (start + perpage);
return cpMessage(request, mapping, "cp_data_processing_please_wait_patiently", jump, 0, jump,
start, turl);
} else {
return cpMessage(request, mapping, "do_success", turl);
}
}
return mapping.findForward("stat");
}
}