## 1.0.7(2021-10-14)

1、【修复】调整查询动态表达式组合Expression.And为Expression.AndAlso。
2、【升级】升级多个组件到最新版本。
3、【优化】去除发货单统计7天统计、支付单7天统计、按天统计新会员三个图表Sql执行语句,替换为使用SqlSugar检索语句。
This commit is contained in:
JianWeie
2021-10-14 11:35:39 +08:00
parent 58ff544eab
commit e79f5e164f
4 changed files with 38 additions and 69 deletions
@@ -51,7 +51,7 @@ namespace CoreCms.Net.Model.Entities.Expression
public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> first,
Expression<Func<T, bool>> second)
{
return first.Compose(second, System.Linq.Expressions.Expression.And);
return first.Compose(second, System.Linq.Expressions.Expression.AndAlso);
}
public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> first,
@@ -41,30 +41,21 @@ namespace CoreCms.Net.Repository
/// <returns></returns>
public async Task<List<StatisticsOut>> Statistics()
{
var dt = DateTime.Now.AddDays(-8).ToString("yyyy-MM-dd 00:00:00");
var dt = DateTime.Now.AddDays(-8);
var sqlStr = string.Empty;
string dbTypeString = AppSettingsConstVars.DbDbType;
if (dbTypeString == DbType.SqlServer.ToString())
{
sqlStr = @"SELECT count(1) AS nums,CONVERT(varchar(100),createTime, 23) AS day
FROM CoreCmsBillDelivery
WHERE createTime >= '" + dt + @"'
GROUP BY CONVERT(varchar(100),createTime, 23)";
}
else if (dbTypeString == DbType.MySql.ToString())
{
sqlStr = @"SELECT count(1) AS nums,date(createTime) AS day
FROM CoreCmsBillDelivery
WHERE createTime >= '" + dt + @"'
GROUP BY date(createTime)";
}
var list = await DbClient.Queryable<CoreCmsBillDelivery>()
.Where(p => p.createTime >= dt)
.Select(it => new
{
it.deliveryId,
createTime = it.createTime.Date
})
.MergeTable()
.GroupBy(it => it.createTime)
.Select(it => new StatisticsOut { day = it.createTime.ToString("yyyy-MM-dd"), nums = SqlFunc.AggregateCount(it.deliveryId) })
.ToListAsync();
if (string.IsNullOrEmpty(sqlStr))
{
return null;
}
return await DbClient.SqlQueryable<StatisticsOut>(sqlStr).ToListAsync();
return list;
}
}
@@ -41,31 +41,20 @@ namespace CoreCms.Net.Repository
/// <returns></returns>
public async Task<List<StatisticsOut>> Statistics()
{
var dt = DateTime.Now.AddDays(-8).ToString("yyyy-MM-dd 00:00:00");
var dt = DateTime.Now.AddDays(-8);
var sqlStr = string.Empty;
string dbTypeString = AppSettingsConstVars.DbDbType;
if (dbTypeString == DbType.SqlServer.ToString())
{
sqlStr = @"SELECT count(1) AS nums,CONVERT(varchar(100),createTime, 23) AS day
FROM CoreCmsBillPayments
WHERE createTime >= '" + dt + @"' AND status = " + (int)GlobalEnumVars.BillPaymentsStatus.Payed + @" AND type=" + (int)GlobalEnumVars.BillPaymentsType.Order + @"
GROUP BY CONVERT(varchar(100),createTime, 23)";
}
else if (dbTypeString == DbType.MySql.ToString())
{
sqlStr = @"SELECT count(1) AS nums,date(createTime) AS day
FROM CoreCmsBillPayments
WHERE createTime >= '" + dt + @"' AND status = " + (int)GlobalEnumVars.BillPaymentsStatus.Payed + @" AND type=" + (int)GlobalEnumVars.BillPaymentsType.Order + @"
GROUP BY date(createTime)";
}
var list = await DbClient.Queryable<CoreCmsBillPayments>()
.Where(p => p.createTime >= dt && p.status == (int)GlobalEnumVars.BillPaymentsStatus.Payed && p.type == (int)GlobalEnumVars.BillPaymentsType.Order)
.Select(it => new
{
it.paymentId,
createTime = it.createTime.Date
})
.MergeTable()
.GroupBy(it => it.createTime)
.Select(it => new StatisticsOut { day = it.createTime.ToString("yyyy-MM-dd"), nums = SqlFunc.AggregateCount(it.paymentId) })
.ToListAsync();
if (string.IsNullOrEmpty(sqlStr))
{
return null;
}
var list = await DbClient.SqlQueryable<StatisticsOut>(sqlStr).ToListAsync();
return list;
}
@@ -150,30 +150,19 @@ namespace CoreCms.Net.Repository
/// <returns></returns>
public async Task<List<StatisticsOut>> Statistics(int day)
{
var dt = DateTime.Now.AddDays(-day).ToString("yyyy-MM-dd");
var dt = DateTime.Now.AddDays(-day);
var list = await DbClient.Queryable<CoreCmsUser>()
.Where(p => p.createTime >= dt)
.Select(it => new
{
it.id,
createTime = it.createTime.Date
})
.MergeTable()
.GroupBy(it => it.createTime)
.Select(it => new StatisticsOut { day = it.createTime.ToString("yyyy-MM-dd"), nums = SqlFunc.AggregateCount(it.id) })
.ToListAsync();
var sqlStr = string.Empty;
string dbTypeString = AppSettingsConstVars.DbDbType;
if (dbTypeString == DbType.SqlServer.ToString())
{
sqlStr = @"SELECT count(1) AS nums,CONVERT(varchar(100),createTime, 23) AS day
FROM CoreCmsUser
WHERE createTime > '" + dt + @"'
GROUP BY CONVERT(varchar(100),createTime, 23)";
}
else if (dbTypeString == DbType.MySql.ToString())
{
sqlStr = @"SELECT count(1) AS nums,date(createTime) AS day
FROM CoreCmsUser
WHERE createTime > '" + dt + @"'
GROUP BY date(createTime)";
}
if (string.IsNullOrEmpty(sqlStr))
{
return null;
}
var list = await DbClient.SqlQueryable<StatisticsOut>(sqlStr).ToListAsync();
return list;
}