|
|
|
|
@ -14,6 +14,9 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
// * OrderService接口的实现类
|
|
|
|
|
// * 处理订单相关的业务逻辑
|
|
|
|
|
// */
|
|
|
|
|
@Service
|
|
|
|
|
public class OrderServiceImpl implements OrderService {
|
|
|
|
|
@Autowired
|
|
|
|
|
@ -22,13 +25,27 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
RoomMapper roomMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
ConfigMapper configMapper;
|
|
|
|
|
|
|
|
|
|
// 自动注入相关Mapper
|
|
|
|
|
@Override
|
|
|
|
|
/**
|
|
|
|
|
* 添加新订单
|
|
|
|
|
* 包含房间状态检查、订单创建、系统配置更新等完整业务流程
|
|
|
|
|
*
|
|
|
|
|
* @param householdname 入住人姓名
|
|
|
|
|
* @param id 入住人身份证号
|
|
|
|
|
* @param starttime 入住开始时间
|
|
|
|
|
* @param endtime 入住结束时间
|
|
|
|
|
* @param roomid 房间ID
|
|
|
|
|
* @param userid 操作用户ID
|
|
|
|
|
* @return 订单创建成功返回true,失败返回false
|
|
|
|
|
*/
|
|
|
|
|
public boolean addOrder(String householdname, String id, String starttime, String endtime, int roomid, int userid) {
|
|
|
|
|
// 1. 检查房间状态是否为可预订(状态1)
|
|
|
|
|
Room room = roomMapper.selectByPrimaryKey(roomid);
|
|
|
|
|
if(room.getState()!=1){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
// 2. 创建订单对象
|
|
|
|
|
Order order = new Order();
|
|
|
|
|
order.setHouseholdname(householdname);
|
|
|
|
|
order.setId(id);
|
|
|
|
|
@ -37,15 +54,17 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
order.setRoomid(roomid);
|
|
|
|
|
order.setUserid(userid);
|
|
|
|
|
order.setState(0);
|
|
|
|
|
// 3. 计算订单金额
|
|
|
|
|
double money = TimeUtil.getBetweenDay(starttime,endtime)*room.getMoney();
|
|
|
|
|
order.setMoney(money);
|
|
|
|
|
|
|
|
|
|
// 4. 更新系统配置(总营业额和总房间数)
|
|
|
|
|
Config config = configMapper.selectByPrimaryKey(1);
|
|
|
|
|
config.setTotalroom(config.getTotalroom()+1);
|
|
|
|
|
config.setTotalmoney(config.getTotalmoney()+money);
|
|
|
|
|
configMapper.updateByPrimaryKeySelective(config);
|
|
|
|
|
|
|
|
|
|
// 5. 插入订单记录
|
|
|
|
|
int insert = orderMapper.insertSelective(order);
|
|
|
|
|
// 6. 如果订单插入成功,更新房间状态为已入住(状态2
|
|
|
|
|
if(insert>0){
|
|
|
|
|
Room room1 = new Room();
|
|
|
|
|
room1.setRoomid(roomid);
|
|
|
|
|
@ -60,7 +79,13 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除订单
|
|
|
|
|
* 同时更新房间状态为可预订
|
|
|
|
|
*
|
|
|
|
|
* @param orderid 订单ID
|
|
|
|
|
* @return 删除成功返回true,失败返回false
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public boolean delOrder(int orderid) {
|
|
|
|
|
Order order = orderMapper.selectByPrimaryKey(orderid);
|
|
|
|
|
@ -105,7 +130,14 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分页查询所有订单
|
|
|
|
|
* 使用PageHelper实现分页功能
|
|
|
|
|
*
|
|
|
|
|
* @param pageNum 页码
|
|
|
|
|
* @param pageSize 每页记录数
|
|
|
|
|
* @return 订单列表
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<Order> getAllOrder(int pageNum, int pageSize) {
|
|
|
|
|
PageHelper.startPage(pageNum,pageSize);
|
|
|
|
|
|