package com.opentravelsoft.action.booking;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import com.opentravelsoft.util.LabelValueBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import com.opentravelsoft.entity.Booking;
import com.opentravelsoft.service.order.BookingService;
import com.opentravelsoft.util.ConvertUtils;
import com.opentravelsoft.webapp.action.PortalAction;
/**
* 订单查询
*
* @author <a herf="mailto:zhangsitao@gmail.com">Steven Zhang</a>
* @version $Revision: 1.1 $ $Date: 2009/03/01 16:24:06 $
*/
public class BookSearchAction extends PortalAction {
private static final long serialVersionUID = -7625855842902512964L;
protected static final Log logger = LogFactory.getLog(BookSearchAction.class);
@Autowired
private BookingService bookService;
private List<Booking> bookList = new ArrayList<Booking>();
/** 线路名 */
private String lineName;
/** 出发日期 起始时间 */
private Date startDatePeriod;
/** 出发日期 截止时间 */
private Date endDatePeriod;
/** 预订日期 起始时间 */
private Date reserveStartDatePeriod;
/** 预订日期 截止时间 */
private Date reserveEndDatePeriod;
/** 合同号 */
private String contractNo;
/** 发票号 */
private String invoiceNo;
/** 客人姓名 */
private String touristName;
/**
* 订单状态
* <p>
* 1:已审核 2:未审核 %:所有
*/
private String bookState;
/**
* 取消标记
* <p>
* Y: 已取消 N:未取消 %:所有
*/
private String cancelState;
private List<LabelValueBean> bookStateList;
private List<LabelValueBean> cancelStateList;
private List<LabelValueBean> outCityList = new ArrayList<LabelValueBean>();
private String outCity = "All";
private int searchType = 0;
public void setBookService(BookingService bookService) {
this.bookService = bookService;
}
@Action(value = "/accounts/BookSearch", results = { @Result(location = "/includes/booking/BookingList.jsp") })
public String input() throws Exception {
bookStateList = getCodeList("ebiz_book_state");
cancelStateList = getCodeList("ebiz_cancel_state");
bookState = "%";
cancelState = "%";
buildSysdate();
return SUCCESS;
}
/**
* 提交查询
*
* @return
*/
@Action(value = "/accounts/BookSearchSubmit", results = {
@Result(name = "input", type = "chain", location = "BookSearch"),
@Result(location = "/includes/booking/BookingList.jsp") })
public String submit() {
bookStateList = getCodeList("ebiz_book_state");
cancelStateList = getCodeList("ebiz_cancel_state");
outCityList = getCodeList("ebiz_outcity_sky");
List<LabelValueBean> confirmStatus = getCodeList("ebiz_confirm_status");
Map<String, String> map = ConvertUtils.beansToMap(confirmStatus);
bookList = bookService.roFind(lineName, startDatePeriod, endDatePeriod,
reserveStartDatePeriod, reserveStartDatePeriod, contractNo, invoiceNo,
touristName, bookState, cancelState);
for (Booking book : bookList) {
book.setCfmKey(map.get(book.getCfmKey()));
}
buildSysdate();
return SUCCESS;
}
public List<Booking> getBookList() {
return bookList;
}
public String getRouteName() {
return lineName;
}
public void setRouteName(String routeName) {
this.lineName = routeName;
}
public Date getStartDatePeriod() {
return startDatePeriod;
}
public void setStartDatePeriod(Date startDatePeriod) {
this.startDatePeriod = startDatePeriod;
}
public Date getEndDatePeriod() {
return endDatePeriod;
}
public void setEndDatePeriod(Date endDatePeriod) {
this.endDatePeriod = endDatePeriod;
}
public Date getReserveEndDatePeriod() {
return reserveEndDatePeriod;
}
public void setReserveEndDatePeriod(Date reserveEndDatePeriod) {
this.reserveEndDatePeriod = reserveEndDatePeriod;
}
public Date getReserveStartDatePeriod() {
return reserveStartDatePeriod;
}
public void setReserveStartDatePeriod(Date reserveStartDatePeriod) {
this.reserveStartDatePeriod = reserveStartDatePeriod;
}
public String getContractNo() {
return contractNo;
}
public void setContractNo(String contractNo) {
this.contractNo = contractNo;
}
public String getInvoiceNo() {
return invoiceNo;
}
public void setInvoiceNo(String invoiceNo) {
this.invoiceNo = invoiceNo;
}
public String getTouristName() {
return touristName;
}
public void setTouristName(String touristName) {
this.touristName = touristName;
}
public String getBookState() {
return bookState;
}
public void setBookState(String bookState) {
this.bookState = bookState;
}
public String getCancelState() {
return cancelState;
}
public void setCancelState(String cancelState) {
this.cancelState = cancelState;
}
public List<LabelValueBean> getBookStateList() {
return bookStateList;
}
public List<LabelValueBean> getCancelStateList() {
return cancelStateList;
}
public List<LabelValueBean> getOutCityList() {
return outCityList;
}
public String getOutCity() {
return outCity;
}
public int getSearchType() {
return searchType;
}
private BookingService bookingService;
private String kenOrderNo;
private String kenTourist;
private double kenAccount;
private List<Booking> bookings;
@Override
public String execute() throws Exception {
if (!StringUtils.hasLength(kenOrderNo)
&& !StringUtils.hasLength(kenTourist)
|| (!StringUtils.hasLength(kenOrderNo) && kenAccount == 0)
|| (!StringUtils.hasLength(kenTourist) && kenAccount == 0)) {
addActionMessage("至少填写两条搜索条件.");
return INPUT;
}
bookings = bookingService.roSearch(kenOrderNo, kenTourist, kenAccount);
return SUCCESS;
}
public String getKenOrderNo() {
return kenOrderNo;
}
public void setKenOrderNo(String kenOrderNo) {
this.kenOrderNo = kenOrderNo;
}
public String getKenTourist() {
return kenTourist;
}
public void setKenTourist(String kenTourist) {
this.kenTourist = kenTourist;
}
public double getKenAccount() {
return kenAccount;
}
public void setKenAccount(double kenAccount) {
this.kenAccount = kenAccount;
}
public List<Booking> getBookings() {
return bookings;
}
}