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

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

@@ -685,53 +685,49 @@ namespace CoreCms.Net.Services
}
else if (item.widgetCode == "service")
{
JObject parameters = (JObject)JsonConvert.DeserializeObject(item.parameters);
var parameters = (JObject)JsonConvert.DeserializeObject(item.parameters);
if (parameters != null && parameters.ContainsKey("list"))
{
JArray result = JArray.Parse(parameters["list"].ToString());
foreach (JObject ss in result)
var result = JArray.Parse(parameters["list"].ToString());
var ids = (from JObject ss in result where ss.ContainsKey("id") select ((JObject)ss)["id"].ObjectToInt(0) into id where id > 0 select id).ToList();
if (ids.Any())
{
if (ss.ContainsKey("id"))
var serviceObj = await _servicesServices.QueryListByClauseAsync(p => ids.Contains(p.id));
foreach (var jToken in result)
{
var ss = (JObject) jToken;
var id = ((JObject)ss)["id"].ObjectToInt(0);
if (id > 0)
var serviceInfo = serviceObj.Find(p => p.id == id);
if (serviceInfo != null)
{
var serviceInfo = await _servicesServices.QueryByIdAsync(id);
if (serviceInfo != null)
var openStatus = 1;
int lastTime = 0;
var dt = DateTime.Now;
if (serviceInfo.startTime > dt)
{
var pinTuanStartStatus = 1;
int lastTime = 0;
bool isOverdue = false;
//判断拼团状态
var dt = DateTime.Now;
if (serviceInfo.startTime > dt)
{
pinTuanStartStatus = (int)GlobalEnumVars.ServicesOpenStatus.notBegun;
TimeSpan ts = serviceInfo.startTime.Subtract(dt);
lastTime = (int)ts.TotalSeconds;
isOverdue = lastTime > 0;
}
else if (serviceInfo.startTime <= dt && serviceInfo.endTime > dt)
{
pinTuanStartStatus = (int)GlobalEnumVars.ServicesOpenStatus.begin;
TimeSpan ts = serviceInfo.endTime.Subtract(dt);
lastTime = (int)ts.TotalSeconds;
isOverdue = lastTime > 0;
}
else
{
pinTuanStartStatus = (int)GlobalEnumVars.ServicesOpenStatus.haveExpired;
}
((JObject)ss).Add("pinTuanStartStatus", pinTuanStartStatus);
((JObject)ss).Add("lastTime", lastTime);
((JObject)ss).Add("isOverdue", isOverdue);
openStatus = (int)GlobalEnumVars.ServicesOpenStatus.notBegun;
TimeSpan ts = serviceInfo.startTime.Subtract(dt);
lastTime = (int)ts.TotalSeconds;
}
else if (serviceInfo.startTime <= dt && serviceInfo.endTime > dt)
{
openStatus = (int)GlobalEnumVars.ServicesOpenStatus.begin;
TimeSpan ts = serviceInfo.endTime.Subtract(dt);
lastTime = (int)ts.TotalSeconds;
}
else
{
openStatus = (int)GlobalEnumVars.ServicesOpenStatus.haveExpired;
}
ss.Add("openStatus", openStatus);
ss.Add("lastTime", lastTime);
}
}
}
parameters.Remove("list");
parameters.Add("list", result);
}