📄 extendsaction.java
字号:
ranks.put(8, 1001);
ranks.put(9, 2001);
ranks.put(10, 5001);
ranks.put(11, 10001);
ranks.put(12, 20001);
ranks.put(13, 50001);
ranks.put(14, 100001);
ranks.put(15, 200001);
}
request.setAttribute("ranks",ranks);
request.setAttribute("maxcreditspermonth",maxcreditspermonth);
return mapping.findForward("toec_credit");
}else{
Map<String,Object> ec_credits=new HashMap<String,Object>();
ec_credits.put("maxcreditspermonth", Common.toDigit(request.getParameter("maxcreditspermonth")));
String[] ranks=request.getParameterValues("rank");
Map<Object,Object> rank=new TreeMap<Object,Object>();
if(ranks!=null) {
int size=ranks.length;
for (int i = 1; i <= size; i++) {
int mincredits=Common.toDigit(ranks[i-1]);
if(i==1&&mincredits <= 0){
request.setAttribute("errorInfo", "信用度必须大于 0 才能进行评级!请返回修改。");
return mapping.findForward("error");
}else if(i>1&&mincredits<=((Integer)rank.get(i-1))){
request.setAttribute("errorInfo", "信用等级 "+i+" 的信用度必须大于上一等级的信用度!请返回修改。");
return mapping.findForward("error");
}
rank.put(i, mincredits);
}
} else {
rank.put(1, 4);
rank.put(2, 11);
rank.put(3, 41);
rank.put(4, 91);
rank.put(5, 151);
rank.put(6, 251);
rank.put(7, 501);
rank.put(8, 1001);
rank.put(9, 2001);
rank.put(10, 5001);
rank.put(11, 10001);
rank.put(12, 20001);
rank.put(13, 50001);
rank.put(14, 100001);
rank.put(15, 200001);
}
ec_credits.put("rank", rank);
Map<String,String> settings=new HashMap<String,String>();
this.putValue("ec_credit", dataParse.combinationChar(ec_credits), oldSettings, settings);
this.updateSettings(settings,oldSettings);
request.setAttribute("resultInfo", "财付通功能成功设定。");
return mapping.findForward("result");
}
}
@SuppressWarnings("unchecked")
public ActionForward orders(ActionMapping mapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response){
Map<String,String> oldSettings=ForumInit.settings;
int creditstrans=Integer.valueOf(oldSettings.get("creditstrans"));
int ec_ratio=Integer.valueOf(oldSettings.get("ec_ratio"));
if(creditstrans==0||ec_ratio==0){
request.setAttribute("resultInfo", "您没有启用交易积分或支付宝积分充值功能,无法对订单进行管理。");
return mapping.findForward("result");
}
String ordersubmit=request.getParameter("ordersubmit");
if(ordersubmit!=null){
String[] validate=request.getParameterValues("validate");
if(validate!=null) {
HttpSession session = request.getSession();
int timeoffset=(int)((Float)session.getAttribute("timeoffset")*3600);
int timestamp = (Integer)(request.getAttribute("timestamp"));
SimpleDateFormat dateFormat = new SimpleDateFormat((String)session.getAttribute("dateformat")+" "+(String)session.getAttribute("timeformat"));
String confirmdate=Common.gmdate(dateFormat, timestamp+timeoffset);
List<Map<String,String>> orders=dataBaseService.executeQuery("SELECT o.*, m.username FROM jrun_orders o LEFT JOIN jrun_members m USING (uid) WHERE orderid IN ('"+Common.implodeids(validate).replaceAll(",", "','")+"') AND status='1'");
if(orders!=null&&orders.size()>0){
StringBuffer orderids=new StringBuffer();
String boardurl=(String)session.getAttribute("boardurl");
String jsprun_user=(String)session.getAttribute("jsprun_userss");
Map<String,Map> extcredits = ((DataParse) BeanFactory.getBean("dataParse")).characterParse(oldSettings.get("extcredits"), true);
Map creditstran=extcredits.get(creditstrans);
String creditsformula=oldSettings.get("creditsformula");
for (Map<String, String> order : orders) {
dataBaseService.runQuery("UPDATE jrun_members SET extcredits"+creditstrans+"=extcredits"+creditstrans+"+"+order.get("amount")+",credits="+creditsformula+" WHERE uid='"+order.get("uid")+"'", true);
dataBaseService.runQuery("INSERT INTO jrun_creditslog (uid, fromto, sendcredits, receivecredits, send, receive, dateline, operation) VALUES ('"+order.get("uid")+"', '"+order.get("username")+"', '"+creditstrans+"', '"+creditstrans+"', '0', '"+order.get("amount")+"', '"+timestamp+"', 'AFD')", true);
orderids.append(",'"+order.get("orderid")+"'");
String submitdate=Common.gmdate(dateFormat, Integer.valueOf(order.get("submitdate"))+timeoffset);
String message="这是由论坛系统自动发送的通知短消息。\n\n[b]您提交的积分充值请求已成功完成,相应数额的积分已经存入您的积分账户。[/b]\n\n[b]订单号:[/b] "+order.get("orderid")+"\n[b]提交时间:[/b] "+submitdate+"\n[b]确认时间:[/b] "+confirmdate+"\n\n[b]支出:[/b] 人民币 "+order.get("price")+" 元\n[b]收入:[/b] "+creditstran.get("title")+" "+order.get("amount")+" "+creditstran.get("unit")+"\n\n详情请[url="+boardurl+"memcp.jsp?action=creditslog&operation=creditslog]点击这里[/url]访问您的积分转账与兑换记录。";
Common.sendpm(order.get("uid"), "[系统消息] 积分充值成功完成", message, "0", "System Message", timestamp);
}
dataBaseService.runQuery("UPDATE jrun_orders SET status='3', admin='"+jsprun_user+"', confirmdate='"+timestamp+"' WHERE orderid IN ("+orderids.substring(1)+")", true);
}
}
request.setAttribute("successInfo","订单处理成功。");
request.setAttribute("requestPath", "admincp.jsp?action=orders&searchsubmit=yes&orderstatus=&orderid=&users=&buyer=&admin=&sstarttime=&sendtime=&cstarttime=&cendtime=");
return mapping.findForward("success");
}else{
String searchsubmit=request.getParameter("searchsubmit");
if(searchsubmit!=null){
HttpSession session = request.getSession();
int timeoffset=(int)((Float)session.getAttribute("timeoffset")*3600);
String orderstatus=request.getParameter("orderstatus");
String orderid=request.getParameter("orderid");
String users=request.getParameter("users").trim();
String buyer=request.getParameter("buyer");
String admin=request.getParameter("admin");
String sstarttime=request.getParameter("sstarttime");
String sendtime=request.getParameter("sendtime");
String cstarttime=request.getParameter("cstarttime");
String cendtime=request.getParameter("cendtime");
StringBuffer sql=new StringBuffer();
if(orderstatus.length()>0){
sql.append(" AND o.status='"+orderstatus+"'");
}
if(orderid.length()>0){
sql.append(" AND o.orderid='"+orderid+"'");
}
if(users.length()>0){
sql.append("AND m.username IN ('"+users.replaceAll(" ", "").replaceAll(",", "','")+"')");
}
if(buyer.length()>0){
sql.append(" AND o.buyer='"+buyer+"'");
}
if(admin.length()>0){
sql.append(" AND o.admin='"+admin+"'");
}
String pattern="yyyy-MM-dd";
if(sstarttime.length()>0){
sql.append(" AND o.submitdate>='"+(Common.dataToInteger(sstarttime,pattern)-timeoffset)+"'");
}
if(sendtime.length()>0){
sql.append(" AND o.submitdate<'"+(Common.dataToInteger(sendtime,pattern)-timeoffset)+"'");
}
if(cstarttime.length()>0){
sql.append(" AND o.confirmdate>='"+(Common.dataToInteger(cstarttime,pattern)-timeoffset)+"'");
}
if(cendtime.length()>0){
sql.append(" AND o.confirmdate<'"+(Common.dataToInteger(cendtime,pattern)-timeoffset)+"'");
}
Members member = (Members) session.getAttribute("user");
int tpp = member != null && member.getTpp() > 0 ? member.getTpp(): Integer.valueOf(oldSettings.get("topicperpage"));
int page =Common.toDigit(request.getParameter("page"),2147483647l,1l).intValue();
int ordercount=Integer.valueOf(dataBaseService.executeQuery("SELECT COUNT(*) count FROM jrun_orders o,jrun_members m WHERE m.uid=o.uid "+sql).get(0).get("count"));
Map<String,Integer> multiInfo=Common.getMultiInfo(ordercount, tpp, page);
page=multiInfo.get("curpage");
int start_limit=multiInfo.get("start_limit");
Map<String,Object> multi=Common.multi(ordercount, tpp, page, "admincp.jsp?action=orders&searchsubmit=yes&orderstatus="+orderstatus+"&orderid="+orderid+"&users="+users+"&buyer="+buyer+"&admin="+admin+"&sstarttime="+sstarttime+"&sendtime="+sendtime+"&cstarttime="+cstarttime+"&cendtime="+cendtime, 0, 10, true, false, null, false);
request.setAttribute("multi", multi);
List<Map<String,String>> orders = dataBaseService.executeQuery("SELECT o.*, m.username FROM jrun_orders o, jrun_members m WHERE m.uid=o.uid "+sql+" ORDER BY o.submitdate DESC LIMIT "+start_limit+","+tpp);
if (orders != null && orders.size() > 0) {
Map<Integer,Map> extcredits = ((DataParse) BeanFactory.getBean("dataParse")).characterParse(oldSettings.get("extcredits"), true);
Map creditstran=extcredits.get(creditstrans);
request.setAttribute("title", creditstran.get("title"));
String unit=" "+creditstran.get("unit");
SimpleDateFormat dateFormat = new SimpleDateFormat((String)session.getAttribute("dateformat")+" "+(String)session.getAttribute("timeformat"));
for (Map<String,String> order : orders) {
int status=Integer.valueOf(order.get("status"));
switch (status) {
case 1:
order.put("status", "等待付款");
break;
case 2:
order.put("status", "<b>成功在线支付</b>");
break;
case 3:
order.put("status", "<b>成功人工补单</b><br />(<a href=\"space.jsp?action=viewpro&username="+Common.encode(order.get("admin"))+"\" target=\"_blank\">"+order.get("admin")+"</a>)");
break;
}
order.put("amount",order.get("amount")+unit);
order.put("submitdate", Common.gmdate(dateFormat, Integer.valueOf(order.get("submitdate"))+timeoffset));
int confirmdate=Integer.valueOf(order.get("confirmdate"));
order.put("confirmdate", confirmdate>0?Common.gmdate(dateFormat, confirmdate+timeoffset):"N/A");
}
request.setAttribute("orders", orders);
}
Map<String,String> statusselect=new HashMap<String,String>();
statusselect.put(orderstatus, "selected");
request.setAttribute("statusselect", statusselect);
request.setAttribute("orderid", orderid);
request.setAttribute("users", users);
request.setAttribute("buyer", buyer);
request.setAttribute("admin", admin);
request.setAttribute("sstarttime", sstarttime);
request.setAttribute("sendtime", sendtime);
request.setAttribute("cstarttime", cstarttime);
request.setAttribute("cendtime", cendtime);
request.setAttribute("searchsubmit", searchsubmit);
}
}
return mapping.findForward("toorders");
}
@SuppressWarnings("unchecked")
public ActionForward tradelog(ActionMapping mapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response){
HttpSession session = request.getSession();
Members member = (Members) session.getAttribute("user");
Map<String,String> settings=ForumInit.settings;
int filter=Common.toDigit(request.getParameter("filter"),2147483647l,-1l).intValue();
String sqlfilter=filter>=0?"WHERE status='"+filter+"'":"";
Map<Integer,String> statuss = (Map<Integer,String>)Tenpayapi.trade_getstatus(0, -1);
request.setAttribute("statuss", statuss);
List<Map<String,String>> tradelog=dataBaseService.executeQuery("SELECT sum(price) as pricesum, sum(tax) as taxsum FROM jrun_tradelog status "+sqlfilter);
request.setAttribute("tradelog", tradelog.get(0));
List<Map<String,String>> count=dataBaseService.executeQuery("SELECT COUNT(*) as count FROM jrun_tradelog "+sqlfilter);
int num = Integer.valueOf(count.get(0).get("count"));
int page=Common.toDigit(request.getParameter("page"),2147483647l,1l).intValue();
int tpp = member != null && member.getTpp() > 0 ? member.getTpp(): Integer.valueOf(settings.get("topicperpage"));
Map<String,Integer> multiInfo=Common.getMultiInfo(num, tpp, page);
page=multiInfo.get("curpage");
int start_limit=multiInfo.get("start_limit");
Map<String,Object> multi=Common.multi(num, tpp, page, "admincp.jsp?action=tradelog&filter="+filter, 0, 10, true, false, null, false);
request.setAttribute("multi", multi);
List<Map<String,String>> tradelogs=dataBaseService.executeQuery("SELECT * FROM jrun_tradelog "+sqlfilter+" ORDER BY lastupdate DESC LIMIT "+start_limit+", "+tpp);
for (Map<String, String> log : tradelogs) {
log.put("status", (String)Tenpayapi.trade_getstatus(Integer.valueOf(log.get("status"))));
}
request.setAttribute("tradelogs", tradelogs);
request.setAttribute("filter", filter);
request.setAttribute("num", num);
return mapping.findForward("totradelog");
}
private void putValue(String variable,String value,Map<String,String> oldSettings,Map<String,String> settings){
if(value!=null&&!value.equals(oldSettings.get(variable))){
settings.put(variable,value);
}
}
private void updateSettings(Map<String,String> settings,Map<String,String> oldSettings){
if(settings!=null&&settings.size()>0){
Set<String> variables=settings.keySet();
StringBuffer sql=new StringBuffer();
sql.append("REPLACE INTO jrun_settings (variable, value) VALUES ");
for(String variable:variables){
sql.append("('"+variable+"', '"+settings.get(variable).replace("'", "''")+"'),");
}
sql.deleteCharAt(sql.length()-1);
dataBaseService.runQuery(sql.toString(),true);
oldSettings.putAll(settings);
ForumInit.setSettings(this.getServlet().getServletContext(), oldSettings);
}
}
private boolean isplugindir(String dir){
return dir==null||dir.length()==0||(!Common.matches(dir, "\\.\\.|[\\\\]+$")&&dir.endsWith("/"));
}
private boolean ispluginkey(String key) {
return key!=null&&key.length()>0&&Common.matches(key, "^[a-zA-Z]+[a-zA-Z0-9_]*$");
}
@SuppressWarnings("unchecked")
private Map<Integer,Map> sort(Map<Integer,Map> modules,Map modulenew){
int displayordernew=(Integer)modulenew.get("displayorder");
Map<Integer,Map> modulesnew=new HashMap<Integer,Map>();
boolean caninsert=true;
Set<Integer> keys=modules.keySet();
for (Integer key : keys) {
Map module=modules.get(key);
int ordertemp=(Integer)module.get("displayorder");
if(displayordernew<=ordertemp&&caninsert){
caninsert=false;
modulesnew.put(modulesnew.size(), modulenew);
}
modulesnew.put(modulesnew.size(), module);
}
if(caninsert){
modulesnew.put(modulesnew.size(), modulenew);
}
return modulesnew;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -