321
This commit is contained in:
parent
71c6380df4
commit
2d0a4f39d6
|
|
@ -49,7 +49,7 @@ public class SQController : ControllerBase
|
||||||
private readonly ICoreCmsUserBlacklistServices _coreCmsUserBlacklistServices;
|
private readonly ICoreCmsUserBlacklistServices _coreCmsUserBlacklistServices;
|
||||||
private readonly ISQReservationReputationServices _sQReservationReputationServices;
|
private readonly ISQReservationReputationServices _sQReservationReputationServices;
|
||||||
private readonly ISQReservationEvaluateServices _sQReservationEvaluateServices;
|
private readonly ISQReservationEvaluateServices _sQReservationEvaluateServices;
|
||||||
|
private readonly ISQRoomUnavailableTimesServices _sQRoomUnavailableTimesServices;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 构造函数
|
/// 构造函数
|
||||||
///</summary>
|
///</summary>
|
||||||
|
|
@ -68,6 +68,10 @@ public class SQController : ControllerBase
|
||||||
ISQReservationEvaluateServices sQReservationEvaluateServices
|
ISQReservationEvaluateServices sQReservationEvaluateServices
|
||||||
,
|
,
|
||||||
ISQReservationReputationServices sQReservationReputationServices
|
ISQReservationReputationServices sQReservationReputationServices
|
||||||
|
,
|
||||||
|
ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
@ -84,6 +88,7 @@ ISQReservationReputationServices sQReservationReputationServices
|
||||||
_coreCmsUserBlacklistServices = coreCmsUserBlacklistServices;
|
_coreCmsUserBlacklistServices = coreCmsUserBlacklistServices;
|
||||||
_sQReservationEvaluateServices = sQReservationEvaluateServices;
|
_sQReservationEvaluateServices = sQReservationEvaluateServices;
|
||||||
_sQReservationReputationServices = sQReservationReputationServices;
|
_sQReservationReputationServices = sQReservationReputationServices;
|
||||||
|
_sQRoomUnavailableTimesServices = sQRoomUnavailableTimesServices;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -341,7 +346,7 @@ ISQReservationReputationServices sQReservationReputationServices
|
||||||
[Authorize]
|
[Authorize]
|
||||||
public async Task<WebApiDto> GetReputationByUser([FromQuery] int pageIndex = 1, [FromQuery] int pageSize = 20)
|
public async Task<WebApiDto> GetReputationByUser([FromQuery] int pageIndex = 1, [FromQuery] int pageSize = 20)
|
||||||
{
|
{
|
||||||
var list = await _sQReservationReputationServices.QueryPageAsync(it => it.user_id == _user.ID , it => it.created_at, OrderByType.Desc, pageIndex, pageSize, true);
|
var list = await _sQReservationReputationServices.QueryPageAsync(it => it.user_id == _user.ID, it => it.created_at, OrderByType.Desc, pageIndex, pageSize, true);
|
||||||
|
|
||||||
var o = new List<object>();
|
var o = new List<object>();
|
||||||
foreach (var item in list)
|
foreach (var item in list)
|
||||||
|
|
@ -349,7 +354,7 @@ ISQReservationReputationServices sQReservationReputationServices
|
||||||
var c = new
|
var c = new
|
||||||
{
|
{
|
||||||
item.created_at,
|
item.created_at,
|
||||||
reputation_value=item.reputation_value.ToString("#.#"),
|
reputation_value = item.reputation_value.ToString("#.#"),
|
||||||
title = item.remark
|
title = item.remark
|
||||||
};
|
};
|
||||||
o.Add(c);
|
o.Add(c);
|
||||||
|
|
@ -391,5 +396,44 @@ ISQReservationReputationServices sQReservationReputationServices
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取可预约的房间列表
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="startTime">开始时间 时间戳</param>
|
||||||
|
/// <param name="endTime">结束时间 时间戳</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<WebApiDto> GetReservationRoomList([FromQuery] long startTime, [FromQuery] long endTime)
|
||||||
|
{
|
||||||
|
// 时间戳转DateTime
|
||||||
|
var start = DateTimeOffset.FromUnixTimeSeconds(startTime).DateTime;
|
||||||
|
var end = DateTimeOffset.FromUnixTimeSeconds(endTime).DateTime;
|
||||||
|
|
||||||
|
// 1. 查询所有可用房间
|
||||||
|
var allRooms = await _SQRoomsServices.QueryListByClauseAsync(r => r.status == true);
|
||||||
|
|
||||||
|
// 2. 查询有不可用时间段冲突的房间
|
||||||
|
var unavailableRoomIds = (await _sQRoomUnavailableTimesServices.QueryListByClauseAsync(
|
||||||
|
t => t.start_time < end && t.end_time > start
|
||||||
|
)).Select(t => t.room_id).Distinct().ToList();
|
||||||
|
|
||||||
|
// 3. 查询已被预约的房间(未取消的预约,时间有重叠)
|
||||||
|
var reservedRoomIds = (await _SQReservationsServices.QueryListByClauseAsync(
|
||||||
|
r => r.status < 3 && r.start_time < end && r.end_time > start
|
||||||
|
)).Select(r => r.room_id).Distinct().ToList();
|
||||||
|
|
||||||
|
// 4. 可预约房间 = 所有可用房间 - 不可用房间 - 已预约房间
|
||||||
|
var availableRooms = allRooms
|
||||||
|
.Where(r => !unavailableRoomIds.Contains(r.id) && !reservedRoomIds.Contains(r.id))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
return new WebApiDto()
|
||||||
|
{
|
||||||
|
Code = 0,
|
||||||
|
Data = availableRooms,
|
||||||
|
Msg = "ok"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user