【优化】优化【我的服务卡】界面效果,调整为'正常', '过期', '作废', '已核销',同时优化查询及核销验证方法。

This commit is contained in:
大灰灰
2022-10-16 21:23:14 +08:00
parent 66b78954cf
commit d8d564e5dd
7 changed files with 168 additions and 35 deletions

View File

@@ -338,16 +338,30 @@ namespace CoreCms.Net.Web.WebApi.Controllers
return jm;
}
if (ticket.status != (int)GlobalEnumVars.ServicesTicketStatus.)
var order = await _userServicesOrderServices.QueryByClauseAsync(p => p.serviceOrderId == ticket.serviceOrderId);
if (order == null)
{
jm.msg = "服务券状态不支持核销";
jm.msg = "订单信息获取失败";
return jm;
}
var service = await _servicesServices.QueryByIdAsync(ticket.serviceId);
var service = await _servicesServices.QueryByClauseAsync(p => p.id == order.servicesId, true);
if (service == null)
{
jm.msg = "服务项目获取失败";
jm.msg = "服务商品获取失败";
return jm;
}
var dt = DateTime.Now;
if (service.validityType == 2 && dt > ticket.validityEndTime)
{
jm.msg = "服务券已经过期";
return jm;
}
if (ticket.status != (int)GlobalEnumVars.ServicesTicketStatus.)
{
jm.msg = "服务券状态不支持核销";
return jm;
}

View File

@@ -1248,7 +1248,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
{
jm.msg = "数据处理异常";
jm.otherData = e;
NLogUtil.WriteFileLog(NLog.LogLevel.Error, LogType.ApiRequest, "用户支付支付",JsonConvert.SerializeObject(jm));
NLogUtil.WriteFileLog(NLog.LogLevel.Error, LogType.ApiRequest, "用户支付支付", JsonConvert.SerializeObject(jm));
}
finally
{
@@ -2092,19 +2092,19 @@ namespace CoreCms.Net.Web.WebApi.Controllers
#endregion
#region
#region
/// <summary>
/// 取得服务卡列表信息
/// 获取单个服务订单
/// </summary>
/// <returns></returns>
[HttpPost]
[Authorize]
public async Task<WebApiCallBack> GetServicesTickets([FromBody] FMPageByStringId entity)
public async Task<WebApiCallBack> GetServicesById([FromBody] FMStringId entity)
{
var jm = new WebApiCallBack();
var order = await _userServicesOrderServices.QueryByClauseAsync(p => p.serviceOrderId == entity.id);
var order = await _userServicesOrderServices.QueryByClauseAsync(p => p.serviceOrderId == entity.id && p.userId == _user.ID);
if (order == null)
{
jm.msg = "订单信息获取失败";
@@ -2139,10 +2139,65 @@ namespace CoreCms.Net.Web.WebApi.Controllers
}
}
var orders = await _userServicesTicketServices.QueryPageAsync(p => p.serviceOrderId == entity.id, p => p.createTime, OrderByType.Asc, entity.page, entity.limit);
if (orders.Any())
jm.status = true;
jm.data = model;
return jm;
}
#endregion
#region
/// <summary>
/// 取得服务卡列表信息
/// </summary>
/// <returns></returns>
[HttpPost]
[Authorize]
public async Task<WebApiCallBack> GetServicesTickets([FromBody] FMPageByStringIdWhitStatus entity)
{
var jm = new WebApiCallBack();
var order = await _userServicesOrderServices.QueryByClauseAsync(p => p.serviceOrderId == entity.id && p.userId == _user.ID);
if (order == null)
{
foreach (var item in orders)
jm.msg = "订单信息获取失败";
return jm;
}
var service = await _servicesServices.QueryByClauseAsync(p => p.id == order.servicesId, true);
if (service == null)
{
jm.msg = "服务商品获取失败";
return jm;
}
var status = entity.status switch
{
(int)GlobalEnumVars.ServicesTicketStatus. => (int)GlobalEnumVars.ServicesTicketStatus.,
(int)GlobalEnumVars.ServicesTicketStatus. => (int)GlobalEnumVars.ServicesTicketStatus.,
(int)GlobalEnumVars.ServicesTicketStatus. => (int)GlobalEnumVars.ServicesTicketStatus.,
_ => (int)GlobalEnumVars.ServicesTicketStatus.
};
var where = PredicateBuilder.True<CoreCmsUserServicesTicket>();
where = where.And(p => p.serviceOrderId == entity.id);
var dt = DateTime.Now;
if (service.validityType == 2 && status == (int)GlobalEnumVars.ServicesTicketStatus.)
{
where = where.And(p => dt > p.validityEndTime);
}
else if (service.validityType == 2 && status != (int)GlobalEnumVars.ServicesTicketStatus.)
{
where = where.And(p => p.validityStartTime < dt && p.validityEndTime > dt && p.status == status);
}
var tickets = await _userServicesTicketServices.QueryPageAsync(where, p => p.createTime, OrderByType.Asc, entity.page, entity.limit);
if (tickets.Any())
{
foreach (var item in tickets)
{
var entityModel = EnumHelper.GetEnumberEntity<GlobalEnumVars.ServicesTicketStatus>(item.status);
item.statusStr = entityModel.title;
@@ -2150,12 +2205,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
}
jm.status = true;
jm.data = new
{
model,
list = orders,
count = orders.TotalCount,
};
jm.data = tickets;
return jm;
}