This commit is contained in:
zpc 2025-09-17 21:17:04 +08:00
parent 24b6e43b4e
commit 6f75dfbabd
4 changed files with 34 additions and 17 deletions

View File

@ -216,9 +216,9 @@ namespace CoreCms.Net.Model.Entities
/// <summary> /// <summary>
/// 状态0=待开始1=进行中2=已结束3=取消 /// 状态0=待开始1=锁定中2=进行中3=已结束,4=取消
/// </summary> /// </summary>
[Display(Name = "状态0=待开始1=进行中2=已结束3=取消")] [Display(Name = "状态0=待开始1=锁定中2=进行中3=已结束,4=取消")]
[Required(ErrorMessage = "请输入{0}")] [Required(ErrorMessage = "请输入{0}")]

View File

@ -42,22 +42,22 @@ namespace CoreCms.Net.Task
//自动取消订单任务 //自动取消订单任务
RecurringJob.AddOrUpdate<AutoCancelOrderJob>(s => s.Execute(), "0 0/5 * * * ? ", TimeZoneInfo.Local); // 每5分钟取消一次订单 //RecurringJob.AddOrUpdate<AutoCancelOrderJob>(s => s.Execute(), "0 0/5 * * * ? ", TimeZoneInfo.Local); // 每5分钟取消一次订单
//自动完成订单任务 //自动完成订单任务
RecurringJob.AddOrUpdate<CompleteOrderJob>(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单 //RecurringJob.AddOrUpdate<CompleteOrderJob>(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单
//自动评价订单任务 //自动评价订单任务
RecurringJob.AddOrUpdate<EvaluateOrderJob>(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单 //RecurringJob.AddOrUpdate<EvaluateOrderJob>(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单
//自动签收订单任务 //自动签收订单任务
RecurringJob.AddOrUpdate<AutoSignOrderJob>(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单 //RecurringJob.AddOrUpdate<AutoSignOrderJob>(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单
//催付款订单 //催付款订单
RecurringJob.AddOrUpdate<RemindOrderPayJob>(s => s.Execute(), "0 0/5 * * * ? ", TimeZoneInfo.Local); // 每5分钟催付款订单 //RecurringJob.AddOrUpdate<RemindOrderPayJob>(s => s.Execute(), "0 0/5 * * * ? ", TimeZoneInfo.Local); // 每5分钟催付款订单
//拼团自动取消到期团(每分钟执行一次) //拼团自动取消到期团(每分钟执行一次)
RecurringJob.AddOrUpdate<AutoCanclePinTuanJob>(s => s.Execute(), "0 0/2 * * * ? ", TimeZoneInfo.Local); // 每分钟取消一次订单 //RecurringJob.AddOrUpdate<AutoCanclePinTuanJob>(s => s.Execute(), "0 0/2 * * * ? ", TimeZoneInfo.Local); // 每分钟取消一次订单
//每天凌晨5点定期清理7天前操作日志 //每天凌晨5点定期清理7天前操作日志
RecurringJob.AddOrUpdate<RemoveOperationLogJob>(s => s.Execute(), "0 0 5 * * ? ", TimeZoneInfo.Local); // 每天5点固定时间清理一次 RecurringJob.AddOrUpdate<RemoveOperationLogJob>(s => s.Execute(), "0 0 5 * * ? ", TimeZoneInfo.Local); // 每天5点固定时间清理一次

View File

@ -161,7 +161,7 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices
var roomList = await _SQRoomsServices.GetRoomList(); var roomList = await _SQRoomsServices.GetRoomList();
var where = PredicateBuilder.True<SQReservations>(); var where = PredicateBuilder.True<SQReservations>();
where = where.And(it => it.end_time > now); where = where.And(it => it.end_time > now);
where = where.And(it => it.status < 2); where = where.And(it => it.status < 3);
var list = await _SQReservationsServices.QueryPageAsync(where, it => it.start_time, OrderByType.Asc, pageIndex, pageSize, true); var list = await _SQReservationsServices.QueryPageAsync(where, it => it.start_time, OrderByType.Asc, pageIndex, pageSize, true);
var pageList = _mapper.Map<List<SQReservationsApiDto>>(list); var pageList = _mapper.Map<List<SQReservationsApiDto>>(list);
if (pageList != null && pageList.Count > 0) if (pageList != null && pageList.Count > 0)
@ -431,7 +431,7 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices
// 3. 查询已被预约的房间(未取消的预约,时间有重叠) // 3. 查询已被预约的房间(未取消的预约,时间有重叠)
var reservedRoomIds = (await _SQReservationsServices.QueryListByClauseAsync( var reservedRoomIds = (await _SQReservationsServices.QueryListByClauseAsync(
r => r.status < 2 && r.start_time < end && r.end_time > start r => r.status < 3 && r.start_time < end && r.end_time > start
)).Select(r => r.room_id).Distinct().ToList(); )).Select(r => r.room_id).Distinct().ToList();
// 4. 可预约房间 = 所有可用房间 - 不可用房间 - 已预约房间 // 4. 可预约房间 = 所有可用房间 - 不可用房间 - 已预约房间
@ -514,7 +514,7 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices
(p, r) => (p, r) =>
p.user_id == userId && p.user_id == userId &&
p.status == 0 && // 只查未退出 p.status == 0 && // 只查未退出
r.status < 2 && // 只查未取消/未结束 r.status < 3 && // 只查未取消/未结束
r.end_time > now && // 只查未结束 r.end_time > now && // 只查未结束
r.start_time < end_time && r.end_time > start_time // 时间有重叠 r.start_time < end_time && r.end_time > start_time // 时间有重叠
); );
@ -652,7 +652,7 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices
(p, r) => (p, r) =>
p.user_id == userId && p.user_id == userId &&
p.status == 0 && // 只查未退出 p.status == 0 && // 只查未退出
r.status < 2 && // 只查未取消/未结束 r.status < 3 && // 只查未取消/未结束
r.end_time > now && // 只查未结束 r.end_time > now && // 只查未结束
r.start_time < reservation.end_time && r.end_time > reservation.start_time // 时间有重叠 r.start_time < reservation.end_time && r.end_time > reservation.start_time // 时间有重叠
); );
@ -764,9 +764,26 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices
Msg = "预约不存在" Msg = "预约不存在"
}; };
} }
if (reservation.start_time.AddMinutes(-30) > DateTime.Now)
{
return new WebApiDto()
{
Code = 400,
Data = null,
Msg = "预约开始前30分钟无法取消"
};
}
if (reservation.status == 1) //
{
return new WebApiDto()
{
Code = 400,
Data = null,
Msg = "该预约已组局成功锁定,无法取消"
};
}
// 3. 检查预约状态是否允许取消 // 3. 检查预约状态是否允许取消
if (reservation.status >= 2) // 2=已结束3=取消4=用户取消 if (reservation.status >= 3) // 3=已结束4=取消
{ {
return new WebApiDto() return new WebApiDto()
{ {
@ -806,7 +823,7 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices
var updateResult = await _SQReservationsServices.UpdateAsync( var updateResult = await _SQReservationsServices.UpdateAsync(
it => new SQReservations it => new SQReservations
{ {
status = 3, // 用户取消 status = 4, // 用户取消
updated_at = DateTime.Now, updated_at = DateTime.Now,
remarks = string.IsNullOrEmpty(dto.cancel_reason) ? "未支付鸽子费" : dto.cancel_reason remarks = string.IsNullOrEmpty(dto.cancel_reason) ? "未支付鸽子费" : dto.cancel_reason
}, },

View File

@ -11,8 +11,8 @@
// //
"HangFire": { "HangFire": {
"RoutePrefix": "/job", //'/job' "RoutePrefix": "/job", //'/job'
"Login": "", // "Login": "job", //
"PassWord": "", // "PassWord": "job", //
"JobExpirationTimeOut": "10080" //10080,7 "JobExpirationTimeOut": "10080" //10080,7
}, },
//Swagger访 //Swagger访