|
@@ -923,29 +923,36 @@ public abstract class SnapshotApplicationBase
|
|
|
var query = _pointsRecordRepository.Queryable()
|
|
|
.LeftJoin<Citizen>((points, citizen) => points.UserId == citizen.Id)
|
|
|
.Where((points, citizen) => points.CreationTime >= startTime && points.CreationTime <= endTime)
|
|
|
- .GroupBy((points, citizen) => new { points.UserId, citizen.IsSecurityMax, citizen.Name, citizen.PhoneNumber })
|
|
|
- .Select((points, citizen) => new PointsItemsOutDto
|
|
|
+ .GroupBy((points, citizen) => new { citizen.Id, points.UserId, citizen.IsSecurityMax, citizen.Name, citizen.PhoneNumber })
|
|
|
+ .Select((points, citizen) => new PointsRankUserDto
|
|
|
{
|
|
|
IsSecurityMax = citizen.IsSecurityMax ?? false,
|
|
|
Rank = SqlFunc.MappingColumn<int>($@"
|
|
|
CASE
|
|
|
- WHEN citizen.""Id"" = {_sessionContext.UserId} THEN 1
|
|
|
+ WHEN citizen.""Id"" = '{_sessionContext.UserId}' THEN 1
|
|
|
ELSE DENSE_RANK() OVER (ORDER BY SUM(CASE WHEN ""points"".""Direction"" = 1 THEN ""points"".""Points"" ELSE 0 END) DESC)
|
|
|
END"),
|
|
|
- //Rank = SqlFunc.MappingColumn<int>("DENSE_RANK() OVER (ORDER BY SUM(CASE WHEN \"points\".\"Direction\" = 1 THEN \"points\".\"Points\" ELSE 0 END) DESC)"),
|
|
|
- OutTotalPoint = SqlFunc.AggregateSum(SqlFunc.IIF(points.Direction == EPointsDirection.Out, points.Points, 0)),
|
|
|
- OutPoints = SqlFunc.AggregateSum(SqlFunc.IIF(points.Direction == EPointsDirection.Out && points.Source == EPointsSource.Audit, points.Points, 0)),
|
|
|
- TotalPoints = SqlFunc.AggregateSum(points.Points),
|
|
|
- InTotalPoint = SqlFunc.AggregateSum(SqlFunc.IIF(points.Direction == EPointsDirection.In, points.Points, 0)),
|
|
|
+ Points = SqlFunc.AggregateSum(points.Points),
|
|
|
UserName = citizen.Name!,
|
|
|
- PhoneNumber = citizen.PhoneNumber
|
|
|
- })
|
|
|
+ PhoneNumber = citizen.PhoneNumber,
|
|
|
+ CitizenId = citizen.Id,
|
|
|
+ }).MergeTable()
|
|
|
.OrderByDescending(points => points.Rank)
|
|
|
.Take(11);
|
|
|
+
|
|
|
#if DEBUG
|
|
|
var sql = query.ToSqlString();
|
|
|
#endif
|
|
|
var item = await query.ToListAsync();
|
|
|
+
|
|
|
+ item.ForEach(m =>
|
|
|
+ {
|
|
|
+ if (m.IsSecurityMax)
|
|
|
+ m.HeadUrl = _systemDicDataCacheManager.HeaderImages("aqws");
|
|
|
+ else
|
|
|
+ m.HeadUrl = _systemDicDataCacheManager.HeaderImages("default");
|
|
|
+ });
|
|
|
+ outDto.Ranks = item;
|
|
|
return outDto;
|
|
|
}
|
|
|
#endregion
|