feat 查询消费机总数、离线设备数量、营业点数量、可消费人数、人均日消费额
This commit is contained in:
@@ -7,43 +7,36 @@ namespace Dlhis.Basic.Device.Response
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 时间
|
/// 时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "时间")]
|
|
||||||
public string Timestamp { get; set; }
|
public string Timestamp { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 级别
|
/// 级别
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "级别")]
|
|
||||||
public string Level { get; set; }
|
public string Level { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 模板
|
/// 模板
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "模板")]
|
|
||||||
public string Template { get; set; }
|
public string Template { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 消息内容
|
/// 消息内容
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "消息内容")]
|
|
||||||
public string Message { get; set; }
|
public string Message { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 异常内容
|
/// 异常内容
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "异常内容")]
|
|
||||||
public string Exception { get; set; }
|
public string Exception { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 属性
|
/// 属性
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "属性")]
|
|
||||||
public string Properties { get; set; }
|
public string Properties { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 时间
|
/// 时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "时间")]
|
|
||||||
public DateTime _ts { get; set; }
|
public DateTime _ts { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,4 +27,5 @@ public interface IDeviceService : IScopeDependency
|
|||||||
Task<List<RecentNumberResponse>> GetRecentNumbersAsync();
|
Task<List<RecentNumberResponse>> GetRecentNumbersAsync();
|
||||||
|
|
||||||
Task<Pagination<ApiLogResponse>> GetLogsAsync(ApiLogRequest request);
|
Task<Pagination<ApiLogResponse>> GetLogsAsync(ApiLogRequest request);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,4 +132,14 @@ public class BalancesController : ControllerBase
|
|||||||
{
|
{
|
||||||
return await _balanceService.BalanceRecordAnalysisAsync(request);
|
return await _balanceService.BalanceRecordAnalysisAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取消费机总数、离线设备数量、营业点数量、可消费人数、人均日消费额
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("consumenumbers")]
|
||||||
|
public async Task<ConsumeNumberResponse> GetConsumeNumberAsync()
|
||||||
|
{
|
||||||
|
return await _balanceService.GetConsumeNumberAsync();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
30
Src/Dlhis.Canteen/Order/Response/ConsumeNumberResponse.cs
Normal file
30
Src/Dlhis.Canteen/Order/Response/ConsumeNumberResponse.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
namespace Dlhis.Canteen.Order.Response
|
||||||
|
{
|
||||||
|
public class ConsumeNumberResponse
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 消费机总数
|
||||||
|
/// </summary>
|
||||||
|
public int Total { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 消费机离线数
|
||||||
|
/// </summary>
|
||||||
|
public int OffNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 营业点总数
|
||||||
|
/// </summary>
|
||||||
|
public int PlaceNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 可消费人数
|
||||||
|
/// </summary>
|
||||||
|
public int ConsumerableNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 人均日消费额
|
||||||
|
/// </summary>
|
||||||
|
public int DailyNumber { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -23,4 +23,6 @@ public interface IBalanceService : IScopeDependency
|
|||||||
Task<Pagination<BalanceRecordSummaryRespones>> BalanceRecordSummaryByTidAsync(BalanceRecordSummaryRequest request);
|
Task<Pagination<BalanceRecordSummaryRespones>> BalanceRecordSummaryByTidAsync(BalanceRecordSummaryRequest request);
|
||||||
|
|
||||||
Task<Pagination<BalanceRecordAnalysisRespones>> BalanceRecordAnalysisAsync(BalanceRecordAnalysisRequest request);
|
Task<Pagination<BalanceRecordAnalysisRespones>> BalanceRecordAnalysisAsync(BalanceRecordAnalysisRequest request);
|
||||||
|
|
||||||
|
Task<ConsumeNumberResponse> GetConsumeNumberAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -547,6 +547,44 @@ public class BalanceService : IBalanceService
|
|||||||
}, 5);
|
}, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<ConsumeNumberResponse> GetConsumeNumberAsync()
|
||||||
|
{
|
||||||
|
var devices = await _dbContext.Queryable<DeviceEntity>()
|
||||||
|
.Where(x => x.Type == DeviceTypeEnumType.Meal)
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
var offCount = devices.Where(x => x.Enable == false).Count();
|
||||||
|
|
||||||
|
var places = await _dbContext.Queryable<CanteenBusinessPlaceEntity>()
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
var time = DateTime.Now.ToString("yyyy-MM-dd");
|
||||||
|
//所有消费数据
|
||||||
|
var bs = await _dbContext.Queryable<BalanceRecordEntity>()
|
||||||
|
.Where(x => x.Type == BalanceRecordTypeEnumType.Out)
|
||||||
|
.ToListAsync();
|
||||||
|
//可消费人数
|
||||||
|
var consumerable = bs.Select(x => x.UserCode).Distinct().Count();
|
||||||
|
|
||||||
|
//当日消费数据
|
||||||
|
var monthbs = bs
|
||||||
|
.Where(x => x.CostDateTime.ToString("yyyy-MM-dd") == time);
|
||||||
|
//当日消费额
|
||||||
|
var monthlySpending = monthbs.Sum(x => x.Amount);
|
||||||
|
//当日消费人数
|
||||||
|
var monthlyCount = monthbs.Select(x => x.UserCode).Distinct().Count();
|
||||||
|
var res = new ConsumeNumberResponse
|
||||||
|
{
|
||||||
|
Total = devices.Count(),
|
||||||
|
OffNumber = offCount,
|
||||||
|
PlaceNumber = places.Count(),
|
||||||
|
ConsumerableNumber = consumerable,
|
||||||
|
DailyNumber = monthlyCount != 0 ? (int)Math.Ceiling(monthlySpending / monthlyCount) : 0
|
||||||
|
};
|
||||||
|
return res;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//************************************************************** help methods ******************************************************************
|
//************************************************************** help methods ******************************************************************
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user