⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trademanageaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -