From b5d6ec8366c8ccbfaf3a9929afd386ad4bc017ce Mon Sep 17 00:00:00 2001
From: cheche <717840555@qq.com>
Date: Thu, 22 Feb 2024 14:04:01 +0800
Subject: [PATCH] =?UTF-8?q?feat=20=E6=9F=A5=E8=AF=A2=E6=B6=88=E8=B4=B9?=
=?UTF-8?q?=E6=9C=BA=E6=80=BB=E6=95=B0=E3=80=81=E7=A6=BB=E7=BA=BF=E8=AE=BE?=
=?UTF-8?q?=E5=A4=87=E6=95=B0=E9=87=8F=E3=80=81=E8=90=A5=E4=B8=9A=E7=82=B9?=
=?UTF-8?q?=E6=95=B0=E9=87=8F=E3=80=81=E5=8F=AF=E6=B6=88=E8=B4=B9=E4=BA=BA?=
=?UTF-8?q?=E6=95=B0=E3=80=81=E4=BA=BA=E5=9D=87=E6=97=A5=E6=B6=88=E8=B4=B9?=
=?UTF-8?q?=E9=A2=9D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Device/Response/ApiLogResponse.cs | 7 ----
.../Device/Services/IDeviceService.cs | 1 +
.../Order/Controllers/BalancesController.cs | 10 +++++
.../Order/Response/ConsumeNumberResponse.cs | 30 +++++++++++++++
.../Order/Services/IBalanceService.cs | 2 +
.../Services/Implements/BalanceService.cs | 38 +++++++++++++++++++
6 files changed, 81 insertions(+), 7 deletions(-)
create mode 100644 Src/Dlhis.Canteen/Order/Response/ConsumeNumberResponse.cs
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 ******************************************************************