【Java开源代码栏目提醒】:网学会员在Java开源代码频道为大家收集整理了TicketBookAction.java提供大家参考,希望对大家有所帮助!
package atbs.view;
import javax.faces.model.SelectItem;
import javax.naming.Context;
import javax.naming.NamingException;
import atbs.entity.*;
import atbs.session.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.
sql.Timestamp;
/**
* <p>
* This class define the ticket book control
* </p>
*
* @author root
*
*/
public class TicketBookAction {
private Context ctx;
private TicketSessionRemote ticketSession;
private UserLogSessionRemote userLogSession;
private long searchAirplaneId;
private String searchAirlineId;
private Date searchStartDate;
private Date searchEndDate;
/**
* Search ticketList
*/
private List<Ticket> ticketList;
private String ticketListError;
private String searchAirplaneError;
private String searchAirlineError;
private AirlineSessionRemote airlineSession;
private static SelectItem[] airlineItems;
private String bookTicketError;
/**
* book ticket count
*/
private int bookCount;
private long bookAirplaneId;
private String classType;
private static SelectItem[] classItems;
/**
* <p>
* customer can book ticket max count
* </p>
* <p>
* if he/she is individual ,it is 6;if he/she is enterprise ,it is 300.Of Course it must have so number ticket
*/
private int maxBookCount = 0;
public TicketBookAction() {
try {
ctx = RemoteContext.getContextInstance();
} catch (NamingException ex) {
ex.printStackTrace();
}
try {
ticketSession = (TicketSessionRemote) ctx.lookup("atbs/TicketSession/remote");
airlineSession = (AirlineSessionRemote)ctx.lookup("atbs/AirlineSession/remote");
userLogSession = (UserLogSessionRemote)ctx.lookup("atbs/UserLogSession/remote");
} catch (NamingException ex1) {
ex1.printStackTrace();
}
List<Airline> airlineList = airlineSession.findAllAirline();
this.airlineItems = new SelectItem[airlineList.size()];
int i= 0;
for (Airline airline : airlineList) {
this.airlineItems[i] = new SelectItem(airline.getId().toString(),airline.toString());
i++;
}
classItems = new SelectItem[3];
classItems[0] = new SelectItem("0","First");
classItems[1] = new SelectItem("1","Business");
classItems[2] = new SelectItem("2","Economy");
SysUser user = (SysUser)ManageContext.getSessionScopeBean("user");
List oldBookList = this.ticketSession.getTicketByUserName(user.getUserName(), Ticket.Ticket_STATUS_BOOKING);
if(oldBookList!=null&&!oldBookList.isEmpty()){
this.maxBookCount = 0;
this.bookTicketError = "You have booked tickets,You must pay old booked tickets at first";
}else{
if(user!=null&&user.getRole().getId()==5){
this.maxBookCount = 6;
}
if(user!=null&&user.getRole().getId()==4){
this.maxBookCount = 300;
}
}
}
public String searchTicketByAirplaneId(){
ticketList = this.ticketSession.findTicketListByAirplaneId(searchAirplaneId,Ticket.Ticket_STATUS_INIT);
if(ticketList==null||ticketList.isEmpty()){
this.searchAirplaneError = "There is not any ticket about this airplane";
}else{
this.ticketListError = "There are "+ticketList.size()+" ticket in system";
}
SysUser user = (SysUser)ManageContext.getSessionScopeBean("user");
if(this.maxBookCount!=0){
if(user!=null&&user.getRole().getId()==5){
this.maxBookCount = ticketList.size()>6?6:ticketList.size();
}else{
if(user!=null&&user.getRole().getId()==4){
this.maxBookCount = ticketList.size()>300? 300:ticketList.size();
}
}
}
return null;
}
public String magicSearchTicket(){
Long airlineId = Long.parseLong(this.searchAirlineId);
Timestamp startTime = new Timestamp(this.searchStartDate.getTime()-8*60*60*1000);
Timestamp endTime = new Timestamp(this.searchEndDate.getTime()+16*60*60*1000);
ticketList = this.ticketSession.findTicketListByAirlineAndTime(airlineId, startTime, endTime, Ticket.Ticket_STATUS_INIT);
if(ticketList==null||ticketList.isEmpty()){
this.searchAirlineError = "There is not any ticket about this airplane";
}else{
this.ticketListError = "There are "+ticketList.size()+" ticket in system";
}
SysUser user = (SysUser)ManageContext.getSessionScopeBean("user");
if(this.maxBookCount!=0){
if(user!=null&&us