diff --git a/CoreCms.Net.Model/Entities/SQ/SQReservations.cs b/CoreCms.Net.Model/Entities/SQ/SQReservations.cs index 8526cd8..119c46c 100644 --- a/CoreCms.Net.Model/Entities/SQ/SQReservations.cs +++ b/CoreCms.Net.Model/Entities/SQ/SQReservations.cs @@ -216,9 +216,9 @@ namespace CoreCms.Net.Model.Entities /// - /// 状态:0=待开始,1=进行中,2=已结束,3=取消 + /// 状态:0=待开始,1=锁定中,2=进行中,3=已结束,4=取消 /// - [Display(Name = "状态:0=待开始,1=进行中,2=已结束,3=取消")] + [Display(Name = "状态:0=待开始,1=锁定中,2=进行中,3=已结束,4=取消")] [Required(ErrorMessage = "请输入{0}")] diff --git a/CoreCms.Net.Task/HangfireDispose.cs b/CoreCms.Net.Task/HangfireDispose.cs index 042d6bb..3b63879 100644 --- a/CoreCms.Net.Task/HangfireDispose.cs +++ b/CoreCms.Net.Task/HangfireDispose.cs @@ -42,22 +42,22 @@ namespace CoreCms.Net.Task //自动取消订单任务 - RecurringJob.AddOrUpdate(s => s.Execute(), "0 0/5 * * * ? ", TimeZoneInfo.Local); // 每5分钟取消一次订单 + //RecurringJob.AddOrUpdate(s => s.Execute(), "0 0/5 * * * ? ", TimeZoneInfo.Local); // 每5分钟取消一次订单 //自动完成订单任务 - RecurringJob.AddOrUpdate(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单 + //RecurringJob.AddOrUpdate(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单 //自动评价订单任务 - RecurringJob.AddOrUpdate(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单 + //RecurringJob.AddOrUpdate(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单 //自动签收订单任务 - RecurringJob.AddOrUpdate(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单 + //RecurringJob.AddOrUpdate(s => s.Execute(), "0 0 0/1 * * ? ", TimeZoneInfo.Local); // 每小时自动完成订单 //催付款订单 - RecurringJob.AddOrUpdate(s => s.Execute(), "0 0/5 * * * ? ", TimeZoneInfo.Local); // 每5分钟催付款订单 + //RecurringJob.AddOrUpdate(s => s.Execute(), "0 0/5 * * * ? ", TimeZoneInfo.Local); // 每5分钟催付款订单 //拼团自动取消到期团(每分钟执行一次) - RecurringJob.AddOrUpdate(s => s.Execute(), "0 0/2 * * * ? ", TimeZoneInfo.Local); // 每分钟取消一次订单 + //RecurringJob.AddOrUpdate(s => s.Execute(), "0 0/2 * * * ? ", TimeZoneInfo.Local); // 每分钟取消一次订单 //每天凌晨5点定期清理7天前操作日志 RecurringJob.AddOrUpdate(s => s.Execute(), "0 0 5 * * ? ", TimeZoneInfo.Local); // 每天5点固定时间清理一次 diff --git a/CoreCms.Net.Web.WebApi/Controllers/SQController.cs b/CoreCms.Net.Web.WebApi/Controllers/SQController.cs index 753b29d..f90308e 100644 --- a/CoreCms.Net.Web.WebApi/Controllers/SQController.cs +++ b/CoreCms.Net.Web.WebApi/Controllers/SQController.cs @@ -161,7 +161,7 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices var roomList = await _SQRoomsServices.GetRoomList(); var where = PredicateBuilder.True(); 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 pageList = _mapper.Map>(list); if (pageList != null && pageList.Count > 0) @@ -431,7 +431,7 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices // 3. 查询已被预约的房间(未取消的预约,时间有重叠) 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(); // 4. 可预约房间 = 所有可用房间 - 不可用房间 - 已预约房间 @@ -514,7 +514,7 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices (p, r) => p.user_id == userId && p.status == 0 && // 只查未退出 - r.status < 2 && // 只查未取消/未结束 + r.status < 3 && // 只查未取消/未结束 r.end_time > now && // 只查未结束 r.start_time < end_time && r.end_time > start_time // 时间有重叠 ); @@ -652,7 +652,7 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices (p, r) => p.user_id == userId && p.status == 0 && // 只查未退出 - r.status < 2 && // 只查未取消/未结束 + r.status < 3 && // 只查未取消/未结束 r.end_time > now && // 只查未结束 r.start_time < reservation.end_time && r.end_time > reservation.start_time // 时间有重叠 ); @@ -764,9 +764,26 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices 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. 检查预约状态是否允许取消 - if (reservation.status >= 2) // 2=已结束,3=取消,4=用户取消 + if (reservation.status >= 3) // 3=已结束,4=取消 { return new WebApiDto() { @@ -806,7 +823,7 @@ ISQRoomUnavailableTimesServices sQRoomUnavailableTimesServices var updateResult = await _SQReservationsServices.UpdateAsync( it => new SQReservations { - status = 3, // 用户取消 + status = 4, // 用户取消 updated_at = DateTime.Now, remarks = string.IsNullOrEmpty(dto.cancel_reason) ? "未支付鸽子费" : dto.cancel_reason }, diff --git a/CoreCms.Net.Web.WebApi/appsettings.json b/CoreCms.Net.Web.WebApi/appsettings.json index 23e424e..f99de77 100644 --- a/CoreCms.Net.Web.WebApi/appsettings.json +++ b/CoreCms.Net.Web.WebApi/appsettings.json @@ -11,8 +11,8 @@ //定时任务管理面板的账户密码 "HangFire": { "RoutePrefix": "/job", //路由地址,默认'/job' - "Login": "", //登录账号 - "PassWord": "", //登录密码 + "Login": "job", //登录账号 + "PassWord": "job", //登录密码 "JobExpirationTimeOut": "10080" //已经完成的任务过期时间,单位分钟(默认10080,7天时间) }, //Swagger授权访问设置