|
@@ -1,6 +1,7 @@
|
|
|
// nova-tourism/pages/homestay/homestay-detail/index.js
|
|
|
let Parse = getApp().Parse;
|
|
|
const company = getApp().globalData.company
|
|
|
+import dateServ from '../../../service/date';
|
|
|
Page({
|
|
|
|
|
|
/**
|
|
@@ -38,6 +39,7 @@ Page({
|
|
|
show: false,
|
|
|
date_start1: '',
|
|
|
date_end1:'',
|
|
|
+
|
|
|
},
|
|
|
|
|
|
/**
|
|
@@ -194,28 +196,57 @@ Page({
|
|
|
room.equalTo('company', company);
|
|
|
room.equalTo('shop', this.data.objectId);
|
|
|
room.equalTo('isEnabled', 'true');
|
|
|
- room.include('benefitMap')
|
|
|
+ room.include('benefitMap');
|
|
|
room.notEqualTo('isDeleted', 'true');
|
|
|
-
|
|
|
+
|
|
|
let room2 = await room.find();
|
|
|
- let roomList = room2.map(item => item.toJSON());
|
|
|
+ // 使用 Promise.all 来处理异步操作
|
|
|
+ let roomList = await Promise.all(room2.map(async item => {
|
|
|
+ let roomItem = item.toJSON();
|
|
|
+ let count = await this.checkOrderCount(roomItem.objectId, this.data.start, this.data.end);
|
|
|
+ console.log(count, roomItem.total);
|
|
|
+ roomItem.isroom = count < roomItem.total; // 简化判断
|
|
|
+ return roomItem;
|
|
|
+ }));
|
|
|
+
|
|
|
// 对 roomList 进行排序
|
|
|
roomList.sort((a, b) => {
|
|
|
- // 先比较 remaining,remaining 为 0 的排后面
|
|
|
- if (a.remaining === 0 && b.remaining !== 0) {
|
|
|
- return 1; // a 排后面
|
|
|
- }
|
|
|
- if (a.remaining !== 0 && b.remaining === 0) {
|
|
|
- return -1; // a 排前面
|
|
|
+ // 首先比较 isroom,true 排在前面
|
|
|
+ if (a.isroom === b.isroom) {
|
|
|
+ // 如果 isroom 相同,按 remaining 排序
|
|
|
+ if (a.remaining === 0 && b.remaining !== 0) {
|
|
|
+ return 1; // a 排后面
|
|
|
+ }
|
|
|
+ if (a.remaining !== 0 && b.remaining === 0) {
|
|
|
+ return -1; // a 排前面
|
|
|
+ }
|
|
|
+ // 如果两个房间的 remaining 都不为 0,按数量升序排列
|
|
|
+ return a.remaining - b.remaining;
|
|
|
}
|
|
|
- // 如果两个房间的 remaining 都不为 0,按数量升序排列
|
|
|
- return a.remaining - b.remaining;
|
|
|
+ return a.isroom ? -1 : 1; // true 排在前面,false 排在后面
|
|
|
});
|
|
|
+
|
|
|
this.setData({
|
|
|
roomList
|
|
|
- })
|
|
|
+ });
|
|
|
console.log('房间', this.data.roomList);
|
|
|
},
|
|
|
+ async checkOrderCount(roomId,start,end) {
|
|
|
+ const startTime = new Date(start);
|
|
|
+ const endTime = new Date(end);
|
|
|
+ let now = dateServ.changeDateTime(new Date(), '14:00:00')
|
|
|
+ let Order = new Parse.Query("RoomOrder")
|
|
|
+ Order.equalTo("room", roomId)
|
|
|
+ Order.equalTo("company", company)
|
|
|
+ Order.exists("status")
|
|
|
+ Order.notContainedIn('status',[100,400,601,700])
|
|
|
+ Order.greaterThanOrEqualTo("startTime", endTime) //20 23 21 22
|
|
|
+ Order.lessThanOrEqualTo("endTime", startTime)
|
|
|
+ Order.select("startTime", "endTime")
|
|
|
+ let count = await Order.count()
|
|
|
+ console.log(count);
|
|
|
+ return count
|
|
|
+ },
|
|
|
//收藏功能
|
|
|
async iscollect(object) {
|
|
|
const currentUser = Parse.User.current();
|