【修复】修复首页【秒杀】【团购】优惠后价格计算显示异常的问题。修复【秒杀】【团购】列表页面优惠后价格计算显示异常的问。

【优化】取消首页【秒杀】【团购】【服务商品】自定义倒计时组件,使用组件原生数字倒计时,减少监听事件,去除内存可能泄露的风险。
This commit is contained in:
大灰灰
2022-11-04 04:54:30 +08:00
parent 9c96fb0538
commit 18acbe2bc0
6 changed files with 360 additions and 230 deletions

View File

@@ -498,7 +498,7 @@ namespace CoreCms.Net.Services
if (parameters != null && parameters.ContainsKey("list"))
{
var result = JArray.Parse(parameters["list"].ToString());
var newReslut = new JArray();
var ids = new List<int>();
foreach (var jToken in result)
{
var ss = (JObject)jToken;
@@ -509,47 +509,17 @@ namespace CoreCms.Net.Services
var promotionId = ss["id"].ObjectToInt(0);
if (promotionId > 0)
{
var promotionModel = await _promotionServices.QueryByClauseAsync(p => p.id == promotionId && p.isEnable == true && p.startTime <= dt && p.endTime > dt, true, true);
if (promotionModel != null)
{
var condition = await _promotionConditionServices.QueryByClauseAsync(p => p.promotionId == promotionId, true, true);
if (condition != null)
{
var goods = await _promotionServices.GetGroupDetail(promotionId, 0, (int)GlobalEnumVars.PromotionType.Group, false);
if (goods.status)
{
var goodJson = JsonConvert.SerializeObject(goods.data);
ss.Add("goods", JToken.Parse(goodJson));
}
}
int startStatus;
var lastTime = 0;
if (promotionModel.startTime > dt)
{
startStatus = (int)GlobalEnumVars.GroupSeckillStatus.Upcoming;
var ts = promotionModel.startTime.Subtract(dt);
lastTime = (int)ts.TotalSeconds;
}
else if (promotionModel.startTime <= dt && promotionModel.endTime > dt)
{
startStatus = (int)GlobalEnumVars.GroupSeckillStatus.InProgress;
var ts = promotionModel.endTime.Subtract(dt);
lastTime = (int)ts.TotalSeconds;
}
else
{
startStatus = (int)GlobalEnumVars.GroupSeckillStatus.Finished;
}
ss.Add("startStatus", startStatus);
ss.Add("lastTime", lastTime);
newReslut.Add(ss);
}
ids.Add(promotionId);
}
}
}
parameters.Remove("list");
parameters.Add("list", newReslut);
if (ids.Any())
{
var list = await _promotionServices.GetGroupListForPages(ids.ToArray());
parameters.Remove("list");
parameters.Add("list", JArray.FromObject(list));
}
}
dto.parameters = parameters;
@@ -561,7 +531,7 @@ namespace CoreCms.Net.Services
if (parameters != null && parameters.ContainsKey("list"))
{
var result = JArray.Parse(parameters["list"].ToString());
var newReslut = new JArray();
var ids = new List<int>();
foreach (var jToken in result)
{
var ss = (JObject)jToken;
@@ -572,53 +542,18 @@ namespace CoreCms.Net.Services
var promotionId = ss["id"].ObjectToInt(0);
if (promotionId > 0)
{
var promotionModel = await _promotionServices.QueryByClauseAsync(p => p.id == promotionId && p.isEnable == true && p.startTime <= dt && p.endTime > dt, true, true);
if (promotionModel != null)
{
var condition = await _promotionConditionServices.QueryByClauseAsync(p => p.promotionId == promotionId, true, true);
if (condition != null)
{
var goods = await _promotionServices.GetGroupDetail(promotionId, 0, (int)GlobalEnumVars.PromotionType.Seckill, false);
if (goods.status)
{
var goodJson = JsonConvert.SerializeObject(goods.data);
ss.Add("goods", JToken.Parse(goodJson));
}
}
int startStatus;
int lastTime = 0;
if (promotionModel.startTime > dt)
{
startStatus = (int)GlobalEnumVars.GroupSeckillStatus.Upcoming;
var ts = promotionModel.startTime.Subtract(dt);
lastTime = (int)ts.TotalSeconds;
}
else if (promotionModel.startTime <= dt && promotionModel.endTime > dt)
{
startStatus = (int)GlobalEnumVars.GroupSeckillStatus.InProgress;
var ts = promotionModel.endTime.Subtract(dt);
lastTime = (int)ts.TotalSeconds;
}
else
{
startStatus = (int)GlobalEnumVars.GroupSeckillStatus.Finished;
}
ss.Add("startStatus", startStatus);
ss.Add("lastTime", lastTime);
newReslut.Add(ss);
}
ids.Add(promotionId);
}
}
}
parameters.Remove("list");
parameters.Add("list", newReslut);
}
if (ids.Any())
{
var list = await _promotionServices.GetGroupListForPages(ids.ToArray());
parameters.Remove("list");
parameters.Add("list", JArray.FromObject(list));
}
}
dto.parameters = parameters;
break;
}