【修复】服务商品倒计时错误的问题,调整首页组件显示效果。

This commit is contained in:
大灰灰
2022-10-22 21:11:46 +08:00
parent c8175d1090
commit 3aacf52dbb
9 changed files with 212 additions and 94 deletions

View File

@@ -22,10 +22,12 @@ using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Essensoft.Paylink.Alipay.Domain;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using static SKIT.FlurlHttpClient.Wechat.Api.Models.WxaAddNearbyPOIResponse.Types;
namespace CoreCms.Net.Web.WebApi.Controllers
{
@@ -151,39 +153,66 @@ namespace CoreCms.Net.Web.WebApi.Controllers
{
var jm = new WebApiCallBack();
var data = await _servicesServices.QueryByClauseAsync(p => p.id == entity.id);
if (data != null)
var serviceInfo = await _servicesServices.QueryByClauseAsync(p => p.id == entity.id);
if (serviceInfo == null)
{
var dt = DateTime.Now;
TimeSpan ts = data.endTime.Subtract(dt);
data.timestamp = (int)ts.TotalSeconds;
jm.msg = "服务获取失败";
return jm;
}
if (!string.IsNullOrEmpty(data.consumableStore))
{
var consumableStoreStr = CommonHelper.GetCaptureInterceptedText(data.consumableStore, ",");
var consumableStoreIds = CommonHelper.StringToIntArray(consumableStoreStr);
if (consumableStoreIds.Any())
{
var stores = await _storeServices.QueryListByClauseAsync(p => consumableStoreIds.Contains(p.id));
data.consumableStores = stores.Select(p => p.storeName).ToList();
}
}
var dt = DateTime.Now;
if (!string.IsNullOrEmpty(data.allowedMembership))
if (!string.IsNullOrEmpty(serviceInfo.consumableStore))
{
var consumableStoreStr = CommonHelper.GetCaptureInterceptedText(serviceInfo.consumableStore, ",");
var consumableStoreIds = CommonHelper.StringToIntArray(consumableStoreStr);
if (consumableStoreIds.Any())
{
var allowedMembershipStr = CommonHelper.GetCaptureInterceptedText(data.allowedMembership, ",");
var allowedMembershipIds = CommonHelper.StringToIntArray(allowedMembershipStr);
if (allowedMembershipIds.Any())
{
var userGrades = await _userGradeServices.QueryListByClauseAsync(p => allowedMembershipIds.Contains(p.id));
data.allowedMemberships = userGrades.Select(p => p.title).ToList();
}
var stores = await _storeServices.QueryListByClauseAsync(p => consumableStoreIds.Contains(p.id));
serviceInfo.consumableStores = stores.Select(p => p.storeName).ToList();
}
}
if (!string.IsNullOrEmpty(serviceInfo.allowedMembership))
{
var allowedMembershipStr = CommonHelper.GetCaptureInterceptedText(serviceInfo.allowedMembership, ",");
var allowedMembershipIds = CommonHelper.StringToIntArray(allowedMembershipStr);
if (allowedMembershipIds.Any())
{
var userGrades = await _userGradeServices.QueryListByClauseAsync(p => allowedMembershipIds.Contains(p.id));
serviceInfo.allowedMemberships = userGrades.Select(p => p.title).ToList();
}
}
int openStatus;
var lastTime = 0;
if (serviceInfo.startTime > dt)
{
openStatus = (int)GlobalEnumVars.ServicesOpenStatus.notBegun;
var ts = serviceInfo.startTime.Subtract(dt);
lastTime = (int)ts.TotalSeconds;
}
else if (serviceInfo.startTime <= dt && serviceInfo.endTime > dt)
{
openStatus = (int)GlobalEnumVars.ServicesOpenStatus.begin;
var ts = serviceInfo.endTime.Subtract(dt);
lastTime = (int)ts.TotalSeconds;
}
else
{
openStatus = (int)GlobalEnumVars.ServicesOpenStatus.haveExpired;
}
jm.status = true;
jm.data = data;
jm.data = new
{
serviceInfo,
timer=new
{
openStatus,
lastTime,
}
};
return jm;
}