diff --git a/Src/Dlhis.Basic/Device/Response/ApiLogResponse.cs b/Src/Dlhis.Basic/Device/Response/ApiLogResponse.cs
index f2a3f501..3d51efae 100644
--- a/Src/Dlhis.Basic/Device/Response/ApiLogResponse.cs
+++ b/Src/Dlhis.Basic/Device/Response/ApiLogResponse.cs
@@ -7,43 +7,36 @@ namespace Dlhis.Basic.Device.Response
///
/// 时间
///
- [SugarColumn(ColumnDescription = "时间")]
public string Timestamp { get; set; }
///
/// 级别
///
- [SugarColumn(ColumnDescription = "级别")]
public string Level { get; set; }
///
/// 模板
///
- [SugarColumn(ColumnDescription = "模板")]
public string Template { get; set; }
///
/// 消息内容
///
- [SugarColumn(ColumnDescription = "消息内容")]
public string Message { get; set; }
///
/// 异常内容
///
- [SugarColumn(ColumnDescription = "异常内容")]
public string Exception { get; set; }
///
/// 属性
///
- [SugarColumn(ColumnDescription = "属性")]
public string Properties { get; set; }
///
/// 时间
///
- [SugarColumn(ColumnDescription = "时间")]
public DateTime _ts { get; set; }
}
}
diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceService.cs
index 889fb755..8af87410 100644
--- a/Src/Dlhis.Basic/Device/Services/IDeviceService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDeviceService.cs
@@ -27,4 +27,5 @@ public interface IDeviceService : IScopeDependency
Task> GetRecentNumbersAsync();
Task> GetLogsAsync(ApiLogRequest request);
+
}
diff --git a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs
index c2fbc53b..608fbfbc 100644
--- a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs
+++ b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs
@@ -132,4 +132,14 @@ public class BalancesController : ControllerBase
{
return await _balanceService.BalanceRecordAnalysisAsync(request);
}
+
+ ///
+ /// 获取消费机总数、离线设备数量、营业点数量、可消费人数、人均日消费额
+ ///
+ ///
+ [HttpGet("consumenumbers")]
+ public async Task GetConsumeNumberAsync()
+ {
+ return await _balanceService.GetConsumeNumberAsync();
+ }
}
diff --git a/Src/Dlhis.Canteen/Order/Response/ConsumeNumberResponse.cs b/Src/Dlhis.Canteen/Order/Response/ConsumeNumberResponse.cs
new file mode 100644
index 00000000..609b1a68
--- /dev/null
+++ b/Src/Dlhis.Canteen/Order/Response/ConsumeNumberResponse.cs
@@ -0,0 +1,30 @@
+namespace Dlhis.Canteen.Order.Response
+{
+ public class ConsumeNumberResponse
+ {
+ ///
+ /// 消费机总数
+ ///
+ public int Total { get; set; }
+
+ ///
+ /// 消费机离线数
+ ///
+ public int OffNumber { get; set; }
+
+ ///
+ /// 营业点总数
+ ///
+ public int PlaceNumber { get; set; }
+
+ ///
+ /// 可消费人数
+ ///
+ public int ConsumerableNumber { get; set; }
+
+ ///
+ /// 人均日消费额
+ ///
+ public int DailyNumber { get; set; }
+ }
+}
diff --git a/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs b/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs
index 8a12f2c4..6c78934d 100644
--- a/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs
@@ -23,4 +23,6 @@ public interface IBalanceService : IScopeDependency
Task> BalanceRecordSummaryByTidAsync(BalanceRecordSummaryRequest request);
Task> BalanceRecordAnalysisAsync(BalanceRecordAnalysisRequest request);
+
+ Task GetConsumeNumberAsync();
}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs
index eb6d36e4..256e9caf 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs
@@ -547,6 +547,44 @@ public class BalanceService : IBalanceService
}, 5);
}
+ public async Task GetConsumeNumberAsync()
+ {
+ var devices = await _dbContext.Queryable()
+ .Where(x => x.Type == DeviceTypeEnumType.Meal)
+ .ToListAsync();
+
+ var offCount = devices.Where(x => x.Enable == false).Count();
+
+ var places = await _dbContext.Queryable()
+ .ToListAsync();
+
+ var time = DateTime.Now.ToString("yyyy-MM-dd");
+ //所有消费数据
+ var bs = await _dbContext.Queryable()
+ .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 ******************************************************************