This commit is contained in:
parent
22d61509d1
commit
1787de99e2
|
|
@ -379,6 +379,86 @@ const getTenantRentalStats = async (req, res) => {
|
|||
}
|
||||
};
|
||||
|
||||
// 即将到期房间分布统计(按公寓分组)
|
||||
const getSoonExpireRoomsByApartment = async (req, res) => {
|
||||
try {
|
||||
// 获取所有公寓(排除已删除的)
|
||||
const apartments = await Apartment.findAll({ where: { isDeleted: 0 } });
|
||||
|
||||
// 获取所有即将到期的房间(排除已删除的)
|
||||
const soonExpireRooms = await Room.findAll({
|
||||
where: {
|
||||
status: 'rented',
|
||||
subStatus: 'soon_expire',
|
||||
isDeleted: 0
|
||||
}
|
||||
});
|
||||
|
||||
// 构建按公寓分组的即将到期房间数据
|
||||
const soonExpireRoomsByApartment = apartments.map(apartment => {
|
||||
const apartmentSoonExpireRooms = soonExpireRooms
|
||||
.filter(room => room.apartmentId === apartment.id)
|
||||
.map(room => ({
|
||||
id: room.id,
|
||||
roomNumber: room.roomNumber,
|
||||
type: room.type,
|
||||
area: room.area
|
||||
}));
|
||||
|
||||
return {
|
||||
apartmentId: apartment.id,
|
||||
apartmentName: apartment.name,
|
||||
soonExpireRooms: apartmentSoonExpireRooms
|
||||
};
|
||||
});
|
||||
|
||||
res.status(200).json(soonExpireRoomsByApartment);
|
||||
} catch (error) {
|
||||
console.error('获取即将到期分布数据时出错:', error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
};
|
||||
|
||||
// 已到期房间分布统计(按公寓分组)
|
||||
const getExpiredRoomsByApartment = async (req, res) => {
|
||||
try {
|
||||
// 获取所有公寓(排除已删除的)
|
||||
const apartments = await Apartment.findAll({ where: { isDeleted: 0 } });
|
||||
|
||||
// 获取所有已到期的房间(排除已删除的)
|
||||
const expiredRooms = await Room.findAll({
|
||||
where: {
|
||||
status: 'rented',
|
||||
subStatus: 'expired',
|
||||
isDeleted: 0
|
||||
}
|
||||
});
|
||||
|
||||
// 构建按公寓分组的已到期房间数据
|
||||
const expiredRoomsByApartment = apartments.map(apartment => {
|
||||
const apartmentExpiredRooms = expiredRooms
|
||||
.filter(room => room.apartmentId === apartment.id)
|
||||
.map(room => ({
|
||||
id: room.id,
|
||||
roomNumber: room.roomNumber,
|
||||
type: room.type,
|
||||
area: room.area
|
||||
}));
|
||||
|
||||
return {
|
||||
apartmentId: apartment.id,
|
||||
apartmentName: apartment.name,
|
||||
expiredRooms: apartmentExpiredRooms
|
||||
};
|
||||
});
|
||||
|
||||
res.status(200).json(expiredRoomsByApartment);
|
||||
} catch (error) {
|
||||
console.error('获取已到期分布数据时出错:', error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
getRentStatistics,
|
||||
getRoomStatusStatistics,
|
||||
|
|
@ -386,5 +466,7 @@ module.exports = {
|
|||
getApartmentRoomStatusStatistics,
|
||||
getEmptyRoomsByApartment,
|
||||
getRentedRoomsByApartment,
|
||||
getSoonExpireRoomsByApartment,
|
||||
getExpiredRoomsByApartment,
|
||||
getTenantRentalStats
|
||||
};
|
||||
|
|
@ -9,6 +9,8 @@ router.get('/dashboard', statisticsController.getDashboardStatistics);
|
|||
router.get('/apartment-room-status', statisticsController.getApartmentRoomStatusStatistics);
|
||||
router.get('/empty-rooms-by-apartment', statisticsController.getEmptyRoomsByApartment);
|
||||
router.get('/rented-rooms-by-apartment', statisticsController.getRentedRoomsByApartment);
|
||||
router.get('/soon-expire-rooms-by-apartment', statisticsController.getSoonExpireRoomsByApartment);
|
||||
router.get('/expired-rooms-by-apartment', statisticsController.getExpiredRoomsByApartment);
|
||||
router.get('/tenant-rental-stats', statisticsController.getTenantRentalStats);
|
||||
|
||||
module.exports = router;
|
||||
Loading…
Reference in New Issue