package com.jshoperx.action.frontstage.order; import com.jshoperx.action.backstage.base.DataCollectionTAction; import com.jshoperx.action.backstage.pay.thirdpartyplatform.alipay.AlipayConfig; import com.jshoperx.action.backstage.staticspage.FreeMarkervariable; import com.jshoperx.action.backstage.utils.Arith; import com.jshoperx.action.backstage.utils.BaseTools; import com.jshoperx.action.backstage.utils.enums.BaseEnums; import com.jshoperx.action.backstage.utils.statickey.PaymentCode; import com.jshoperx.action.backstage.utils.statickey.StaticKey; import com.jshoperx.entity.*; import com.jshoperx.service.*; import com.jshoperx.service.impl.Serial; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2.convention.annotation.*; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Restrictions; import javax.annotation.Resource; import java.util.Iterator; import java.util.List; @ParentPackage("jshoperx") @Namespace("") @InterceptorRefs({ @InterceptorRef("defaultStack") }) public class FrontOrderAction extends ActionSupport { @Resource private DeliverAddressTService deliverAddressTService; @Resource private Serial serial; @Resource private CartTService cartTService; @Resource private LogisticsBTService logisticsBTService; @Resource private PaymentMService paymentMService; @Resource private LogisticsBAreaTService logisticsBAreaTService; @Resource private ShippingAddressTService shippingAddressTService; @Resource private OrderTService orderTService; @Resource private OrderBaseProcessTService orderBaseProcessTService; @Resource private DataCollectionTAction dataCollectionTAction; /** * 收获地址区域变量 */ private String addressid; private String userid; private String username; private String province; private String city; private String district; private String street; private String postcode; private String telno; private String mobile; private String email; private String state; private String shippingusername; private String serialidorderid; private OrderT order = new OrderT(); private String paymentid; private String logisticsid; private String logisticswebaddress; private String totalfreight; private String vouchername; private String customernotes; private String orderTag; private Double total;//会员总价 private Double totalweight; private String defaultlogisticsid; private Double freight; private Double vouchercontent = 0.0; private Double totalpoints; private String usedvoucherid; private String cartgoodsname; private String cartgoodsid; private int cartneedquantity; private static String mainpicture;//订单中显示的主图片 private String cartid; private String hidurl; private String redirecturl; private PaymentM pm=new PaymentM(); private DeliverAddressT dt=new DeliverAddressT(); private boolean sflag = false; private boolean svoucher = false; private boolean spayment = false;//是否支付信息写入成功标记 private boolean sshoppingaddress = false;//是否发货地址写入成功 private boolean saddorder = false; private boolean supdatecart = false; private boolean slogin; private String paymentcode;//返回给前台的支付方式 private String paymentinterface;//反馈给前台的支付接口类型 private String basePath; public OrderT getOrder() { return order; } public void setOrder(OrderT order) { this.order = order; } public String getAddressid() { return addressid; } public void setAddressid(String addressid) { this.addressid = addressid; } public String getTotalfreight() { return totalfreight; } public void setTotalfreight(String totalfreight) { this.totalfreight = totalfreight; } public Double getTotalpoints() { return totalpoints; } public void setTotalpoints(Double totalpoints) { this.totalpoints = totalpoints; } public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getDistrict() { return district; } public void setDistrict(String district) { this.district = district; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getPostcode() { return postcode; } public void setPostcode(String postcode) { this.postcode = postcode; } public String getTelno() { return telno; } public void setTelno(String telno) { this.telno = telno; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getHidurl() { return hidurl; } public void setHidurl(String hidurl) { this.hidurl = hidurl; } public boolean isSflag() { return sflag; } public void setSflag(boolean sflag) { this.sflag = sflag; } public String getShippingusername() { return shippingusername; } public void setShippingusername(String shippingusername) { this.shippingusername = shippingusername; } public String getCartgoodsname() { return cartgoodsname; } public void setCartgoodsname(String cartgoodsname) { this.cartgoodsname = cartgoodsname; } public Double getTotal() { return total; } public void setTotal(Double total) { this.total = total; } public String getDefaultlogisticsid() { return defaultlogisticsid; } public void setDefaultlogisticsid(String defaultlogisticsid) { this.defaultlogisticsid = defaultlogisticsid; } public Double getTotalweight() { return totalweight; } public void setTotalweight(Double totalweight) { this.totalweight = totalweight; } public Double getFreight() { return freight; } public void setFreight(Double freight) { this.freight = freight; } public String getVouchername() { return vouchername; } public void setVouchername(String vouchername) { this.vouchername = vouchername; } public boolean isSvoucher() { return svoucher; } public void setSvoucher(boolean svoucher) { this.svoucher = svoucher; } public String getPaymentid() { return paymentid; } public void setPaymentid(String paymentid) { this.paymentid = paymentid; } public Double getVouchercontent() { return vouchercontent; } public void setVouchercontent(Double vouchercontent) { this.vouchercontent = vouchercontent; } public int getCartneedquantity() { return cartneedquantity; } public void setCartneedquantity(int cartneedquantity) { this.cartneedquantity = cartneedquantity; } public boolean isSupdatecart() { return supdatecart; } public void setSupdatecart(boolean supdatecart) { this.supdatecart = supdatecart; } public String getCartgoodsid() { return cartgoodsid; } public void setCartgoodsid(String cartgoodsid) { this.cartgoodsid = cartgoodsid; } public boolean isSaddorder() { return saddorder; } public void setSaddorder(boolean saddorder) { this.saddorder = saddorder; } public String getOrderTag() { return orderTag; } public void setOrderTag(String orderTag) { this.orderTag = orderTag; } public String getCustomernotes() { return customernotes; } public void setCustomernotes(String customernotes) { this.customernotes = customernotes; } public boolean isSshoppingaddress() { return sshoppingaddress; } public void setSshoppingaddress(boolean sshoppingaddress) { this.sshoppingaddress = sshoppingaddress; } public String getLogisticsid() { return logisticsid; } public void setLogisticsid(String logisticsid) { this.logisticsid = logisticsid; } public boolean isSpayment() { return spayment; } public void setSpayment(boolean spayment) { this.spayment = spayment; } public String getUsedvoucherid() { return usedvoucherid; } public void setUsedvoucherid(String usedvoucherid) { this.usedvoucherid = usedvoucherid; } public String getSerialidorderid() { return serialidorderid; } public void setSerialidorderid(String serialidorderid) { this.serialidorderid = serialidorderid; } public String getLogisticswebaddress() { return logisticswebaddress; } public void setLogisticswebaddress(String logisticswebaddress) { this.logisticswebaddress = logisticswebaddress; } public String getCartid() { return cartid; } public void setCartid(String cartid) { this.cartid = cartid; } public String getRedirecturl() { return redirecturl; } public void setRedirecturl(String redirecturl) { this.redirecturl = redirecturl; } public boolean isSlogin() { return slogin; } public void setSlogin(boolean slogin) { this.slogin = slogin; } public PaymentM getPm() { return pm; } public void setPm(PaymentM pm) { this.pm = pm; } public DeliverAddressT getDt() { return dt; } public void setDt(DeliverAddressT dt) { this.dt = dt; } public String getPaymentcode() { return paymentcode; } public void setPaymentcode(String paymentcode) { this.paymentcode = paymentcode; } public String getPaymentinterface() { return paymentinterface; } public void setPaymentinterface(String paymentinterface) { this.paymentinterface = paymentinterface; } public String getBasePath() { return basePath; } public void setBasePath(String basePath) { this.basePath = basePath; } public String getMainpicture() { return mainpicture; } public void setMainpicture(String mainpicture) { this.mainpicture = mainpicture; } /** * 清理错误 */ @Override public void validate() { this.clearErrorsAndMessages(); } /** * 事先获取订单编号 */ public void getSerialidorder() { this.setSerialidorderid(this.serial.Serialid(Serial.ORDER)); } /** * 初始化订单所需信息 * 1,获取用户收获地址列表,有就读取出来没有就增加新的,涉及保存新收获地址 * 2,获取物流商信息 * 3,获取支付方式 * 4,获取购物车中的商品数据并进行重量信息计算 * 5,计算运费 * 6,计算总金额包含运费 * 保存订单需要同时保存发货地址 * 发票初始化,支付宝对接 * @return */ @Action(value = "initOrder", results = { @Result(name = "success",type="freemarker",location = "/WEB-INF/theme/default/shop/confirmorder.ftl"), @Result(name = "input",type="redirect",location = "/html/default/shop/user/login.html?redirecturl=${redirecturl}") }) public String initOrder() { MemberT memberT = (MemberT) ActionContext.getContext().getSession().get(StaticKey.MEMBER_SESSION_KEY); if (memberT != null) { //获取用户收获地址 ActionContext.getContext().put(FreeMarkervariable.DELIVERADDRESS, orderBaseProcessTService.getMemberDeliverAddress(memberT)); //获取物流商 需要设定一个默认物流商来计算运费 ActionContext.getContext().put(FreeMarkervariable.LOGISTICS, orderBaseProcessTService.getLogisticstsBusiness(StaticKey.ONE)); //获取支付方式 ActionContext.getContext().put(FreeMarkervariable.PAYMENTS, orderBaseProcessTService.getPaymentM(StaticKey.ONE)); //获取购物车中的商品 List<CartT>list= orderBaseProcessTService.getMemberCart(memberT.getId(), StaticKey.ONE, StaticKey.ORDERTAG_NORMAL); ActionContext.getContext().put(FreeMarkervariable.MEMBERCART,list); //计算购物车信息 getMemberCartInfo(list); //获取总价 ActionContext.getContext().put(FreeMarkervariable.TOTALPRICE, total); //获取总积分 ActionContext.getContext().put(FreeMarkervariable.TOTALPOINTS, totalpoints); //获取购物车ID ActionContext.getContext().put(FreeMarkervariable.CARTID, cartid); //获取购物车中商品ID串 ActionContext.getContext().put(FreeMarkervariable.CARTGOODSID, cartgoodsid); //获取购物车中商品名称串 ActionContext.getContext().put(FreeMarkervariable.CARTGOODSNAME, cartgoodsname); //获取购物车中商品总数 ActionContext.getContext().put(FreeMarkervariable.CARTNEEDQUANTITY, cartneedquantity); //运费 ActionContext.getContext().put(FreeMarkervariable.FREIGHT, getLogisticsPrice()); //获取总金额+运费 Double totalfreight = this.getTotal() + this.getFreight(); ActionContext.getContext().put(FreeMarkervariable.TOTALFREIGHT, totalfreight); //路径获取 ActionContext.getContext().put(FreeMarkervariable.BASEPATH, BaseTools.getBasePath()); //获取导航数据 ActionContext.getContext().put(FreeMarkervariable.SITENAVIGATIONLIST, dataCollectionTAction.findSiteNavigation(BaseEnums.DataShowState.SHOW.getState())); //获取商城基本数据 ActionContext.getContext().put(FreeMarkervariable.JSHOPBASICINFO, dataCollectionTAction.findJshopbasicInfo(BaseEnums.DataShowState.SHOW.getState(), BaseEnums.JshopOpenState.OPEN.getOpenstate())); //获取页脚分类数据 ActionContext.getContext().put(FreeMarkervariable.FOOTCATEGORY, dataCollectionTAction.findFooterCateogyrT(BaseEnums.CategoryGrade.FIRST.getState(), BaseEnums.DataUsingState.USING.getState())); //获取页脚文章数据 ActionContext.getContext().put(FreeMarkervariable.FOOTERATRICLE, dataCollectionTAction.findFooterArticle(BaseEnums.DataShowState.SHOW.getState())); return SUCCESS; } return INPUT; } /** * 获取支付宝需要的订单信息 * 1,预先生成一个订单id * 2,增加收货地址信息到发货地址表中 * 3,获取支付通道信息 * 4,增加订单到数据表中 * 5,将支付信息绑定到支付宝接口中 * 6,更新购物车中的商品到已加入订单状态并将订单id和购物车记录绑定 * @return */ @Action(value = "InitAlipayneedInfo", results = { @Result(name = "json",type="json") }) public String initAlipayneedInfo() { this.setBasePath(BaseTools.getBasePath()); MemberT membert = (MemberT) ActionContext.getContext().getSession().get(StaticKey.MEMBER_SESSION_KEY); if (membert != null) { this.setSlogin(true); //预先生成订单编号 getSerialidorder(); //新增收货地址 DeliverAddressT da=getDeliverAddress(this.getAddressid()); if(da!=null){ //增加收获信息到发货地址表中 ShippingAddressT s=saveShippingAddress(da); //获取支付信息 PaymentM pm=getPayway(this.getPaymentid().trim()); if(pm!=null){ //增加订单到数据库 saveOrderInfo(membert,pm,da,s); if (isSaddorder()) { if(PaymentCode.PAYMENT_CODE_ALIPAY.equals(pm.getPaymentCode())){ BuildAlipayConfig(); }else if(PaymentCode.PAYMENT_CODE_TENPAY.equals(pm.getPaymentCode())){ //进行财付通的双接口虚拟即时到帐操作,采集即时到帐需要的数据 //BuildTenPayConfig(); } //更新购物车商品到3,表示已经在订单中。并把对应订单号更新 //检查如果购物已经有对应的订单号则不更新 //3表示加入订单的购物车 //TODO 修改成事务模式 Criterion criterion= Restrictions.eq("cartid",this.getCartid()); List<CartT>cartsList=this.cartTService.findByCriteria(CartT.class,criterion); for(CartT c:cartsList){ c.setState(BaseEnums.CartGoodstate.HAVE_ADDTOCART_THREE_NUM.getState()); c.setOrderid(this.getSerialidorderid()); this.cartTService.update(c); } } } } return "json"; } this.setSlogin(false); return "json"; } /** * 获取购物车中的商品作为订单商品处理 * * */ public void getMemberCartInfo(List<CartT> list) { if (!list.isEmpty()) { this.setTotal(0.0); this.setTotalweight(0.0); this.setTotalpoints(0.0); this.setCartgoodsname(StaticKey.EMPTY); this.setCartgoodsid(StaticKey.EMPTY); this.setCartneedquantity(0); for (Iterator<CartT> it = list.iterator(); it.hasNext();) { CartT ct =it.next(); total = Arith.add(total, Arith.mul(ct.getFavorable(), Double.parseDouble(String.valueOf(ct.getNeedquantity())))); if(ct.getWeight()!=null){ totalweight = Arith.add(totalweight, Arith.mul(Double.parseDouble(ct.getWeight()), Double.parseDouble(String.valueOf(ct.getNeedquantity())))); } totalpoints = Arith.add(totalpoints, Arith.mul(ct.getPoints(), Double.parseDouble(String.valueOf(ct.getNeedquantity())))); cartgoodsname=ct.getGoodsname(); cartgoodsid += ct.getGoodsid() + ","; cartneedquantity += ct.getNeedquantity(); cartid = ct.getCartid();//获取购物车中的cartid表示同一个cartid即在同一个订单中 mainpicture=ct.getPicture();//用于订单界面中显示一个主图 } } } /** * 计算运费 * //TODO 阶梯运费计算制度修正 */ private double getLogisticsPrice() { //Double temptotal = this.getTotal(); Double freight=0.0; List<LogisticsBusinessT>lblist=orderBaseProcessTService.getDefaultLogisticsBusinessT(BaseEnums.LogisticsUsingState.UNUSING.getState()); if(lblist!=null&&lblist.size()>0){ List<LogisticsbusinessareaT> list = orderBaseProcessTService.getDefaultLogisticsbusinessareaT(lblist.get(0).getLogisticsid()); if (list != null) { Double tempfreight = 0.0; int tempy = 0; for (Iterator it = list.iterator(); it.hasNext();) { // LogisticsbusinessareaT lbt = (LogisticsbusinessareaT) it.next(); // if (this.getTotal() > lbt.getNeedcostmin() && this.getTotal() < lbt.getNeedcostmax() && this.getTotalweight() < lbt.getOvervalue()) { // tempfreight = lbt.getNormalcost(); // tempy = (int) (this.getTotalweight() / 1000); // } else if (this.getTotal() > lbt.getNeedcostmin() && this.getTotal() < lbt.getNeedcostmax() && this.getTotalweight() < lbt.getOvervalue()) { // tempfreight = 0.0; // tempy = (int) (this.getTotalweight() / 1000); // } else { // tempfreight = 0.0; // tempy = (int) (this.getTotalweight() / 1000); // } } freight = tempfreight + tempy; this.setFreight(freight); } } return freight; } /** * 设置订单数据 * * @return */ public void saveOrderInfo(MemberT membert,PaymentM pm,DeliverAddressT da,ShippingAddressT s) { order.setOrderid(this.getSerialidorderid()); order.setUserid(membert.getId()); order.setUsername(membert.getLoginname()); order.setMemberid(membert.getId()); order.setMembername(membert.getLoginname()); //未来需要在这里处理是平邮还是快递或者是ems,这样物流商需要选择是平邮还是快递还是ems if (this.getPaymentid().trim().equals(StaticKey.PAY_ON_DELIVERY_TAG)) { order.setDelivermode(StaticKey.PAY_ON_DELIVERY); //未来获取特定的支付标记来标记货到付款 }else{ //快递 order.setDelivermode(StaticKey.DELIVERMODE_EXPRESS); } order.setDeliverynumber(StaticKey.EMPTY);//发货单号在发货后填写 order.setOrderstate(StaticKey.ORDERSTATE_UNCONFIRMED_ZERO_NUM);//待确认 order.setPaystate(StaticKey.PAYSTATE_NOT_PAID_ZERO_NUM);//未付款 order.setShippingstate(StaticKey.SHIPPINGSTATE_NOT_DELIVER_ZERO_NUM);//未发货 order.setLogisticsid(this.getLogisticsid().trim()); order.setLogisticswebaddress(this.getLogisticswebaddress());//物流商网站需要通过查询获得 //这部分的逻辑需要修改,需要组织json来填写productinfo order.setProductinfo(this.getCartgoodsid()); order.setOrdername(this.getCartgoodsname()); order.setMainpicture(this.getMainpicture()); order.setNeedquantity(this.getCartneedquantity()); order.setFreight(this.getFreight());//运费,在request中也有 // if(!this.isSvoucher()){ //不包含运费的订单价格 order.setAmount(Arith.sub(Arith.add(this.getTotal(), this.getFreight()), this.getVouchercontent())); // }else{ // order.setAmount(this.getTotal()+this.getFreight());//金额,含运费 // } order.setPoints(this.getTotalpoints()); order.setPurchasetime(BaseTools.getSystemTime()); order.setDeliverytime(null); order.setDeliverynumber(StaticKey.EMPTY); //发票处理 order.setIsinvoice(StaticKey.PINVOICE_NOT_PRINT_ZERO_NUM);//目前前台没有开票,如果要这里需要动态取得为1 order.setCustomerordernotes(this.getCustomernotes()); order.setPaytime(null); order.setOrderTag(this.getOrderTag()); order.setToBuyerNotes(StaticKey.EMPTY);//给用户的留言 // if(!this.isSvoucher()){ //包含运费的订单价格,此价格是用户需支付的 order.setShouldpay(Arith.sub(Arith.add(this.getTotal(), this.getFreight()), this.getVouchercontent())); // }else{ // order.setShouldpay(this.getTotal()+this.getFreight());//金额,含运费 // } order.setUsepoints(0.0);//用户没有使用积分 order.setVouchersid(this.getUsedvoucherid()); order.setCreatetime(BaseTools.getSystemTime()); order.setUpdatetime(order.getCreatetime()); order.setIsprintexpress(StaticKey.EXPRESS_NOT_PRINT_ZERO_NUM);//未打印快递单 order.setIsprintinvoice(StaticKey.INVOICE_NOT_PRINT_ZERO_NUM);//未打印发货单 order.setIsprintfpinvoice(StaticKey.PINVOICE_NOT_PRINT_ZERO_NUM);//未开具发票 order.setExpressnumber(StaticKey.EMPTY);//快递单号 order.setPaymentid(pm.getPaymentid()); order.setPaymentname(pm.getPaymentname()); order.setShippingaddressid(s.getShippingaddressid());//设置发货地址到订单中 order.setDeliveraddressid(da.getAddressid());//设置收货地址到订单中 order.setShippingusername(da.getShippingusername());//设置收货人 this.orderTService.save(order); this.setSaddorder(true); } /** * 在多支付方式情况下初始化订单采用的支付方式所需要的信息 */ public PaymentM getPayway(String paymentid){ PaymentM pm = orderBaseProcessTService.getSelectedPayMent(paymentid); if (pm != null) { this.setPm(pm); if(PaymentCode.PAYMENT_CODE_ALIPAY.equals(pm.getPaymentCode())){ this.setPaymentcode(PaymentCode.PAYMENT_CODE_ALIPAY); if(StaticKey.PAY_INTERFACE_CODE_TWOPAY.equals(pm.getPaymentInterface())){ this.setPaymentinterface(StaticKey.PAY_INTERFACE_CODE_TWOPAY);//双接口 } }else if(PaymentCode.PAYMENT_CODE_TENPAY.equals(pm.getPaymentCode())){ this.setPaymentcode(PaymentCode.PAYMENT_CODE_TENPAY); if(StaticKey.PAY_INTERFACE_CODE_TWOPAY.equals(pm.getPaymentInterface())){ //进行财付通的双接口虚拟即时到帐操作,采集即时到帐需要的数据 this.setPaymentinterface(StaticKey.PAY_INTERFACE_CODE_TWOPAY); } } this.setSpayment(true); } else { this.setSpayment(false); } return pm; } /** * 开始对支付宝采集数据 */ private void BuildAlipayConfig(){ AlipayConfig.partner = this.getPm().getPartnerid(); AlipayConfig.key = this.getPm().getSafecode(); AlipayConfig.seller_email = this.getPm().getAccount(); AlipayConfig.out_trade_no = order.getOrderid(); AlipayConfig.subject = order.getOrdername();//这里获取productinfo的第一个json的productname AlipayConfig.body = order.getOrdername();//获取productinfo所有的productname AlipayConfig.price = String.valueOf(order.getShouldpay()); AlipayConfig.logistics_fee = String.valueOf(order.getFreight()); //设置收货人信息给支付宝借口 AlipayConfig.receive_name = this.getDt().getShippingusername(); AlipayConfig.receive_address = this.getDt().getProvince() + this.getDt().getCity() + this.getDt().getDistrict() + this.getDt().getStreet(); AlipayConfig.reveive_zip = this.getDt().getPostcode(); AlipayConfig.reveive_phone = this.getDt().getTelno(); AlipayConfig.reveive_mobile = this.getDt().getMobile(); } /** * 开始对TenPay所需数据进行采集 */ // public void BuildTenPayConfig(){ // TenPayConfig.partner=this.getPm().getPartnerid();//商户号 // TenPayConfig.key=this.getPm().getSafecode();//密钥 // TenPayConfig.out_trade_no=order.getOrderid();//订单号 // int totalfee=(int)(order.getShouldpay()*100); // TenPayConfig.total_fee=String.valueOf(totalfee); // TenPayConfig.body=order.getOrdername(); // TenPayConfig.bank_type="DEFAULT"; // TenPayConfig.subject=order.getOrdername(); // TenPayConfig.goods_tag=order.getOrderTag();//手机充值虚拟卡 // TenPayConfig.trade_mode="1";//即时到帐 // TenPayConfig.trans_type="2";//虚拟交易 // TenPayConfig.mobile=this.getMobile(); // //TenPayConfig.return_url="http://"+this.getDataCollectionTAction().getBasePath()+"pay/tenpay_api_b2c/payReturnUrl.jsp"; // //TenPayConfig.notify_url="http://"+this.getDataCollectionTAction().getBasePath()+"pay/tenpay_api_b2c/payNotifyUrl.jsp"; // } /** * 获取收货地址信息 * @param addressid * @return */ public DeliverAddressT getDeliverAddress(String addressid){ return orderBaseProcessTService.getDeliverAddress(addressid); } /** * 增加发货地址 */ public ShippingAddressT saveShippingAddress(DeliverAddressT da) { ShippingAddressT s = new ShippingAddressT(); s.setShippingaddressid(this.serial.Serialid(Serial.SHIPPINGADDRESS)); s.setMemberid(da.getMemberid()); s.setShippingusername(da.getShippingusername()); s.setCountry(da.getCountry()); s.setProvince(da.getProvince()); s.setCity(da.getCity()); s.setDistrict(da.getDistrict()); s.setStreet(da.getStreet()); s.setPostcode(da.getPostcode()); s.setTelno(da.getTelno()); s.setMobile(da.getMobile()); s.setEmail(da.getEmail()); s.setCreatetime(BaseTools.getSystemTime()); s.setState(BaseEnums.DataUsingState.USING.getState()); s.setDeliveraddressid(da.getAddressid()); s.setIssend(BaseEnums.ShippingIsSend.SHIPPING_UNSEND.getState());//未发送到这个地址过 s.setOrderid(this.getSerialidorderid());//设置订单号 this.shippingAddressTService.save(s); this.setDt(da);//将收获地址信息存入dt this.setSshoppingaddress(true);//这里应该改成true比较好 return s; } }