📄 order.java
字号:
package OrderPack;
import java.sql.Time;
import DataCenterPackage.DataCenter;
import DataCenterPackage.RoomCondition;
import RoomPackage.Room;
import RoomPackage.RoomManager;
public class Order
{
public final static int STATUS_ORDER = 0;
public final static int STATUS_WARNING = 1;
public final static int STATUS_PAYED = 2;
public final static int STATUS_NOTPAYED = 3;
public final static int INVALID_ID = -1;
private int _roomIDs [];
private int _status;
private int _id;
private int _roomType;
private Time _startTime;
private Time _endTime;
private int _roomCount;
private String _userName;
private float _needPay;
private Time _orderTime;
private float _nowPay;
private DataCenter _dataCenter;
public Order()
{
_id = INVALID_ID;
_dataCenter = DataCenter.get_INSTANCE();
}
public void set_roomIDs(int []ids)
{
_roomIDs = ids;
}
public int[] get_roomIDs()
{
return _roomIDs;
}
public int get_id()
{
return _id;
}
public void set_id(int a_id)
{
_id = a_id;
}
public int get_roomType()
{
return _roomType;
}
public void set_roomType(int a_roomType)
{
_roomType = a_roomType;
}
public java.sql.Time get_startTime()
{
return _startTime;
}
public void set_startTime(java.sql.Time a_startTime)
{
_startTime = a_startTime;
}
public java.sql.Time get_endTime()
{
return _endTime;
}
public void set_endTime(java.sql.Time a_endTime)
{
_endTime = a_endTime;
}
public int get_roomCount()
{
return _roomCount;
}
public void set_roomCount(int a_roomCount)
{
_roomCount = a_roomCount;
}
public String get_userName()
{
return _userName;
}
public void set_userName(String a_userName)
{
_userName = a_userName;
}
public float get_needPay()
{
return _needPay;
}
public void set_needPay(float a_needPay)
{
_needPay = a_needPay;
}
public java.sql.Time get_orderTime()
{
return _orderTime;
}
public void set_orderTime(java.sql.Time a_orderTime)
{
_orderTime = a_orderTime;
}
public float get_nowPay()
{
return _nowPay;
}
public void set_nowPay(float a_nowPay)
{
_nowPay = a_nowPay;
}
public DataCenter get_dataCenter()
{
return _dataCenter;
}
public void set_dataCenter(DataCenter a_dataCenter)
{
_dataCenter = a_dataCenter;
}
public boolean Submit()
{
int ret;
_roomIDs = GetAvalibleRooms();
if (_roomIDs == null) {
return false;
}
set_orderTime(new Time(System.currentTimeMillis()));
if (_id == INVALID_ID)
{
ret = _dataCenter.AddOrder(this);
_id = ret;
}
else
{
ret = _dataCenter.ModifyOrder(this);
}
if(ret<=0)
return false;
for (int i = 0; i < _roomCount; i++) {
Room room = _dataCenter.QueryRoom(_roomIDs[i]);
room.AddOrder(this);
}
return true;
}
public int [] GetAvalibleRooms() {
int avRooms[] = new int[_roomCount];
int index = 0;
RoomManager roomMgr = RoomManager.get_INSTANCE();
RoomCondition con1 = new RoomCondition(RoomCondition.RP_ROOMTYPE,
RoomCondition.CO_EQUAL,
new Integer(_roomType).toString());
int []rooms = roomMgr.SearchRoom(new RoomCondition[]{con1});
int len = rooms.length;
if (len < _roomCount) {
return null;
}
for (int i = 0; i < len; i ++) {
Room room = _dataCenter.QueryRoom(rooms[i]);
boolean avalible = true;
int []orders = room.get_roomOrderList();
if(orders != null){
int orderCount = orders.length;
for (int j = 0; j < orderCount; j ++) {
Order tmpOrder = _dataCenter.QueryOrder(orders[j]);
if(tmpOrder==null){
continue;
}
if (tmpOrder.get_endTime().getTime() < _startTime.getTime()
|| tmpOrder.get_startTime().getTime() > _endTime.getTime()) {
continue;
}else {
avalible = false;
break;
}
}
}
if (avalible) {
avRooms[index] = rooms[i];
index ++;
if (index == _roomCount) {
return avRooms;
}
}
}
return null;
}
public boolean Pay(float payment)
{
if (_id == INVALID_ID) {
return false;
}
GetInfo(_id);
_nowPay += payment;
return ModifyInfo();
}
public boolean ModifyInfo()
{
if (_id == INVALID_ID) {
return false;
}
Order tmpOrder = _dataCenter.QueryOrder(_id);
if (tmpOrder == null) {
return false;
}
tmpOrder.Cancel();
return Submit();
}
public boolean GetInfo(int orderID)
{
Order tmpOrder = _dataCenter.QueryOrder(orderID);
Copy(tmpOrder);
return true;
}
public void Copy(Order order)
{
_dataCenter = order.get_dataCenter();
_endTime = order.get_endTime();
_id = order.get_id();
_needPay = order.get_needPay();
_nowPay = order.get_nowPay();
_orderTime = order.get_orderTime();
_roomCount = order.get_roomCount();
_roomIDs = order.get_roomIDs();
_roomType = order.get_roomType();
_startTime = order.get_startTime();
_userName = order.get_userName();
}
public void Cancel()
{
if (_id == INVALID_ID) {
return;
}
_dataCenter.DeleteOrder(_id);
if (_roomIDs == null) {
return;
}else {
int len = _roomIDs.length;
for (int i = 0; i < len; i ++) {
Room room = _dataCenter.QueryRoom(_roomIDs[i]);
if(room!=null)
room.DeleteOrder(this);
}
}
}
public void set_status(int i) {
_status = i;
}
public int get_status() {
return _status;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -