package com.jshop.action;
import java.sql.Date;
import java.text.SimpleDateFormat;
import javax.annotation.Resource;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.json.annotations.JSON;
import org.springframework.stereotype.Controller;
import com.jshop.action.tools.BaseTools;
import com.jshop.action.tools.PrintExpressParam;
import com.jshop.action.tools.Validate;
import com.jshop.entity.ExpresstempleteT;
import com.jshop.entity.OrderT;
import com.jshop.entity.ShippingAddressT;
import com.jshop.service.ExpresstempleteTService;
import com.jshop.service.JshopbasicInfoTService;
import com.jshop.service.OrderTService;
import com.jshop.service.ShippingAddressTService;
import com.jshop.service.impl.ExpresstempleteTServiceImpl;
import com.jshop.service.impl.JshopbasicInfoTServiceImpl;
import com.jshop.service.impl.OrderTServiceImpl;
import com.jshop.service.impl.ShippingAddressTServiceImpl;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@ParentPackage("jshop")
@Controller("printExpressSingleTAction")
public class PrintExpressSingleTAction extends ActionSupport {
private ExpresstempleteTService expresstempleteTService;
private OrderTService orderTService;
private JshopbasicInfoTService jshopbasicInfoTService;
private ShippingAddressTService shippingAddressTService;
private String orderid;
private PrintExpressParam pe = new PrintExpressParam();
private String logisticsid;
private boolean slogin = false;
private boolean sprintexpressflag = false;
@JSON(serialize = false)
public ExpresstempleteTService getExpresstempleteTService() {
return expresstempleteTService;
}
public void setExpresstempleteTService(ExpresstempleteTService expresstempleteTService) {
this.expresstempleteTService = expresstempleteTService;
}
@JSON(serialize = false)
public OrderTService getOrderTService() {
return orderTService;
}
public void setOrderTService(OrderTService orderTService) {
this.orderTService = orderTService;
}
@JSON(serialize = false)
public JshopbasicInfoTService getJshopbasicInfoTService() {
return jshopbasicInfoTService;
}
public void setJshopbasicInfoTService(JshopbasicInfoTService jshopbasicInfoTService) {
this.jshopbasicInfoTService = jshopbasicInfoTService;
}
@JSON(serialize = false)
public ShippingAddressTService getShippingAddressTService() {
return shippingAddressTService;
}
public void setShippingAddressTService(ShippingAddressTService shippingAddressTService) {
this.shippingAddressTService = shippingAddressTService;
}
public PrintExpressParam getPe() {
return pe;
}
public void setPe(PrintExpressParam pe) {
this.pe = pe;
}
public String getOrderid() {
return orderid;
}
public void setOrderid(String orderid) {
this.orderid = orderid;
}
public boolean isSprintexpressflag() {
return sprintexpressflag;
}
public void setSprintexpressflag(boolean sprintexpressflag) {
this.sprintexpressflag = sprintexpressflag;
}
public boolean isSlogin() {
return slogin;
}
public void setSlogin(boolean slogin) {
this.slogin = slogin;
}
public String getLogisticsid() {
return logisticsid;
}
public void setLogisticsid(String logisticsid) {
this.logisticsid = logisticsid;
}
/**
* 清理错误
*/
@Override
public void validate() {
this.clearErrorsAndMessages();
}
/**
* 验证登陆
*/
public void CheckLogin() {
String adminid = (String) ActionContext.getContext().getSession().get(BaseTools.BACK_USER_SESSION_KEY);
if (adminid != null) {
this.setSlogin(false);
} else {
this.setSlogin(true);
}
}
/**
* 获取商家信息作为快递单内容
*/
public void GetJshopSendInfo() {
// JshopbasicInfoT jbi=this.getJshopbasicinfotserviceimpl().findJshopbasicInfoSingleForExpress();
// if(jbi!=null){
// pe.setSendName(jbi.getSendName());
// pe.setSendCountry(jbi.getSendCountry());
// pe.setSendProvince(jbi.getSendProvince());
// pe.setSendCity(jbi.getSendCity());
// pe.setSendDistrict(jbi.getSendDistrict());
// pe.setSendStreet(jbi.getSendStreet());
// pe.setSendTelno(jbi.getSendTelno());
// pe.setSendMobile(jbi.getSendMobile());
// pe.setSendContactor(jbi.getSendContactor());
// }
}
/**
* 获取订单发货地址
*
* @param orderid
*/
public void GetOrderShippingAddress(String orderid) {
ShippingAddressT st = this.getShippingAddressTService().findShippingAddressByOrderid(orderid, "1");
if (st != null) {
pe.setRecipientName(st.getUsername());
pe.setRecipientCountry(st.getCountry());
pe.setRecipientProvince(st.getProvince());
pe.setRecipientCity(st.getCity());
pe.setRecipientDistrict(st.getDistrict());
pe.setRecipientStreet(st.getStreet());
pe.setRecipientTelno(st.getTelno());
pe.setRecipientMobile(st.getMobile());
pe.setRecipientPostcode(st.getPostcode());
pe.setRecipientContactor(st.getUsername());
}
}
public void GetChangeTime(Date t) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-hh-yy-ss");
String time = formatter.format(t.getTime()).toString();
String[] temptime = time.split("-");
pe.setYear(temptime[0]);
pe.setMonth(temptime[1]);
pe.setDay(temptime[2]);
pe.setHour(temptime[3]);
pe.setMinutes(temptime[4]);
}
/**
*根据id获取订单详细
*
* @param orderid
*/
public void GetOrderDetailByOrderId(String orderid) {
OrderT o = this.getOrderTService().findOrderDetailByorderid(orderid);
if (o != null) {
pe.setQuantity(o.getNeedquantity().toString());
pe.setNotes(o.getCustomernotes());
pe.setLogisticsid(o.getLogisticsid());
GetChangeTime(Date.valueOf(o.getPurchasetime().toString()));//这里修改了
}
}
/**
* 读取快递单模板
*/
public void GetPrintExpressValue() {
ExpresstempleteT et = this.getExpresstempleteTService().findExpresstempleteByLogisticsid(pe.getLogisticsid());
if (et != null) {
pe.setKindeditorCode(et.getKindeditorCode());
pe.setRighttag("勾");//需要用图片代替勾符号
}
}
/**
* 初始化快递单打印数据
*
* @return
*/
@Action(value = "InitPrintExpress", results = {
@Result(name = "json",type="json")
})
public String InitPrintExpress() {
this.CheckLogin();
if(!this.isSlogin()){
if (Validate.StrNotNull(this.getOrderid())) {
GetJshopSendInfo();
GetOrderShippingAddress(this.getOrderid().trim());
GetOrderDetailByOrderId(this.getOrderid().trim());
this.setSprintexpressflag(true);
//设定模板值
GetPrintExpressValue();
return "json";
} else {
this.setSprintexpressflag(false);
return "json";
}
}else{
this.setSprintexpressflag(false);
return "json";
}
}
}