📄 trademanageaction.java
字号:
package cn.jsprun.struts.foreg.actions;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import cn.jsprun.api.Tenpayapi;
import cn.jsprun.domain.Members;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.FormDataCheck;
import cn.jsprun.utils.Md5Token;
public class TradeManageAction extends DispatchAction {
private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
private DataParse dataParse = (DataParse) BeanFactory.getBean("dataParse");
@SuppressWarnings("unchecked")
public ActionForward trade(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String orderid=request.getParameter("orderid");
HttpSession session=request.getSession();
int jsprun_uid=(Integer)session.getAttribute("jsprun_uid");
if(orderid==null){
int page=Common.toDigit(request.getParameter("page"),2147483647l,1l).intValue();
int tid=Common.toDigit(request.getParameter("tid"));
int pid=Common.toDigit(request.getParameter("pid"));
if(pid==0){
List<Map<String,String>> posts=dataBaseService.executeQuery("SELECT pid FROM jrun_posts WHERE tid='"+tid+"' AND first='1' LIMIT 1");
if(posts!=null&&posts.size()>0){
Common.toDigit(posts.get(0).get("pid"));
}
}
List<Map<String,String>> threads=dataBaseService.executeQuery("SELECT closed FROM jrun_threads WHERE tid='"+tid+"'");
if(threads==null||threads.size()==0){
request.setAttribute("errorInfo", "未定义的操作。");
return mapping.findForward("showMessage");
}
int closed=Common.toDigit(threads.get(0).get("closed"));
if(closed>0){
request.setAttribute("successInfo", "本交易已关闭");
request.setAttribute("requestPath", "viewthread.jsp?tid="+tid+"&page="+page);
return mapping.findForward("showMessage");
}
List<Map<String,String>> trades=dataBaseService.executeQuery("SELECT * FROM jrun_trades WHERE tid='"+tid+"' AND pid='"+pid+"'");
if(trades==null||trades.size()==0){
request.setAttribute("errorInfo", "未定义的操作。");
return mapping.findForward("showMessage");
}
Map<String,String> trade=trades.get(0);
closed=Common.toDigit(trade.get("closed"));
if(closed>0){
request.setAttribute("successInfo", "本交易已关闭");
request.setAttribute("requestPath", "viewthread.jsp?tid="+tid+"&page="+page);
return mapping.findForward("showMessage");
}
float price=Float.valueOf(trade.get("price"));
if(price<0){
request.setAttribute("successInfo", "无效的交易请求");
request.setAttribute("requestPath", "viewthread.jsp?tid="+tid+"&page="+page);
return mapping.findForward("showMessage");
}
String action=request.getParameter("trade");
String tradesubmit=request.getParameter("tradesubmit");
if(!"trade".equals(action)&&tradesubmit==null){
List<Map<String,String>> tradelogs=dataBaseService.executeQuery("SELECT buyername,buyercontact,buyerzip,buyerphone,buyermobile FROM jrun_tradelog WHERE buyerid='"+jsprun_uid+"' AND status!=0 AND buyername!='' ORDER BY lastupdate DESC LIMIT 1");
if(tradelogs!=null&&tradelogs.size()>0){
request.setAttribute("lastbuyerinfo", tradelogs.get(0));
}
request.setAttribute("trade", trade);
return mapping.findForward("totrade");
}else{
int number=Common.toDigit(request.getParameter("number"));
if(Integer.valueOf(trade.get("sellerid"))==jsprun_uid){
request.setAttribute("errorInfo", "您无法购买自己的商品,请返回修改。");
return mapping.findForward("showMessage");
}else if(number<=0){
request.setAttribute("errorInfo", "请输入正确的商品数,请返回修改。");
return mapping.findForward("showMessage");
}else if(number>Integer.valueOf(trade.get("amount"))){
request.setAttribute("errorInfo", "商品剩余数量不足,请返回修改。");
return mapping.findForward("showMessage");
}
Map<String,Object> pay=new HashMap<String,Object>();
pay.put("number", number);
pay.put("price", trade.get("price"));
price=price*number;
int buyercredits=0;
pay.put("commision",0);
int timeoffset=(int)((Float)session.getAttribute("timeoffset")*3600);
int timestamp = (Integer)(request.getAttribute("timestamp"));
orderid=Common.gmdate("yyyyMMddHHmmss", timestamp+timeoffset)+Common.getRandStr(18, false);
int transportfee=0;
int transport=Common.toDigit(request.getParameter("transport"));
Map<String,Object> data=new HashMap<String,Object>();
data.put("fee", Common.toDigit(request.getParameter("fee")));
data.put("trade",trade);
data.put("transport",transport);
Tenpayapi.trade_setprice(data, price, pay, transportfee);
String jsprun_userss=(String)session.getAttribute("jsprun_userss");
String buyermsg=Common.dhtmlspecialchars(request.getParameter("buyermsg"));
String buyerzip=Common.dhtmlspecialchars(request.getParameter("buyerzip"));
String buyerphone=Common.dhtmlspecialchars(request.getParameter("buyerphone"));
String buyermobile=Common.dhtmlspecialchars(request.getParameter("buyermobile"));
String buyername=Common.dhtmlspecialchars(request.getParameter("buyername"));
String buyercontact=Common.dhtmlspecialchars(request.getParameter("buyercontact"));
int offline=Common.toDigit(request.getParameter("offline"));
float tax=0;
dataBaseService.runQuery("INSERT INTO jrun_tradelog (tid, pid, orderid,tradeno, subject, price, quality, itemtype, number, tax, locus, sellerid, seller, selleraccount, buyerid, buyer, buyercontact, buyercredits, buyermsg, lastupdate, offline, buyerzip, buyerphone, buyermobile, buyername, transport, transportfee, baseprice, discount,message) VALUES('"+trade.get("tid")+"', '"+trade.get("pid")+"', '"+orderid+"','', '"+trade.get("subject")+"', '"+pay.get("price")+"', '"+trade.get("quality")+"', '"+trade.get("itemtype")+"', '"+number+"', '"+tax+"', '"+trade.get("locus")+"', '"+trade.get("sellerid")+"', '"+trade.get("seller")+"', '"+trade.get("account")+"', '"+jsprun_uid+"', '"+(jsprun_userss==null?"游客":jsprun_userss)+"', '"+buyercontact+"', 0, '"+buyermsg+"', '"+timestamp+"', '"+offline+"', '"+buyerzip+"', '"+buyerphone+"', '"+buyermobile+"', '"+buyername+"', '"+transport+"', '"+pay.get("transportfee")+"', '"+trade.get("price")+"', 0,'')");
dataBaseService.runQuery("UPDATE jrun_trades SET amount=amount-'"+number+"' WHERE tid='"+trade.get("tid")+"' AND pid='"+trade.get("pid")+"'");
request.setAttribute("successInfo", "交易单已创建,现在将转入交易单页面。");
request.setAttribute("requestPath", "trade.jsp?orderid="+orderid);
return mapping.findForward("showMessage");
}
}else{
List<Map<String,String>> tradelogs=dataBaseService.executeQuery("SELECT * FROM jrun_tradelog WHERE orderid='"+orderid+"'");
if(tradelogs==null||tradelogs.size()==0){
request.setAttribute("errorInfo", "未定义的操作。");
return mapping.findForward("showMessage");
}
Map<String,String> tradelog=tradelogs.get(0);
int sellerid=Common.toDigit(tradelog.get("sellerid"));
int buyerid=Common.toDigit(tradelog.get("buyerid"));
if(jsprun_uid!=sellerid&&jsprun_uid!=buyerid){
request.setAttribute("errorInfo", "未定义的操作。");
return mapping.findForward("showMessage");
}
Members member=(Members)session.getAttribute("user");
float price=Float.valueOf(tradelog.get("baseprice"))*Integer.valueOf(tradelog.get("number"));
Map<String,String> settings=(Map<String,String>)request.getAttribute("settings");
int creditstransid=Common.toDigit(settings.get("creditstrans"));
int currentcredit=creditstransid>0?(Integer)Common.getValues(member, "extcredits"+creditstransid):0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -