From dc40332a99acaba66f4cb783a14e61296b4029a2 Mon Sep 17 00:00:00 2001 From: “wangming” <“wangming@antissoft.com”> Date: Thu, 9 Oct 2025 22:55:15 +0800 Subject: [PATCH] 新增设备相关功能,更新UavAdvertisementService以支持设备ID和设备名称,新增获取设备广告管理列表和订单金额统计的API,更新相关DTO以包含设备信息。 --- netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Dto/UavAdvertisementCrInput.cs | 5 +++++ netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Dto/UavAdvertisementListOutput.cs | 15 ++++++++++++++- netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Entity/UavAdvertisementEntity.cs | 6 +++++- netcore/src/Modularity/Extend/NCC.Extend/UavAdvertisementService.cs | 37 ++++++++++++++++++++++++++++++++++++- netcore/src/Modularity/Extend/NCC.Extend/UavOrderService.cs | 27 +++++++++++++++++++++++++++ 5 files changed, 87 insertions(+), 3 deletions(-) diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Dto/UavAdvertisementCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Dto/UavAdvertisementCrInput.cs index 465e84c..1e270d3 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Dto/UavAdvertisementCrInput.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Dto/UavAdvertisementCrInput.cs @@ -35,6 +35,11 @@ namespace NCC.Extend.Entitys.Dto.UavAdvertisement public string imageUrl { get; set; } /// + /// 设备ID + /// + public string deviceId { get; set; } + + /// /// 是否启用(1=启用,0=禁用) /// public string isEnabled { get; set; } diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Dto/UavAdvertisementListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Dto/UavAdvertisementListOutput.cs index ed8fa90..12449b8 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Dto/UavAdvertisementListOutput.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Dto/UavAdvertisementListOutput.cs @@ -33,7 +33,20 @@ namespace NCC.Extend.Entitys.Dto.UavAdvertisement /// public string imageUrl { get; set; } - public string type{get;set;} + /// + /// 广告类型 + /// + public string type { get; set; } + + /// + /// 设备ID + /// + public string deviceId { get; set; } + + /// + /// 设备名称 + /// + public string deviceName { get; set; } } } diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Entity/UavAdvertisementEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Entity/UavAdvertisementEntity.cs index dacbe3d..479be11 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Entity/UavAdvertisementEntity.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/uavAdvertisement/Entity/UavAdvertisementEntity.cs @@ -102,6 +102,10 @@ namespace NCC.Extend.Entitys [SugarColumn(ColumnName = "F_Name")] public string Name { get; set; } - + /// + /// 设备ID + /// + [SugarColumn(ColumnName = "F_DeviceId")] + public string DeviceId { get; set; } } } \ No newline at end of file diff --git a/netcore/src/Modularity/Extend/NCC.Extend/UavAdvertisementService.cs b/netcore/src/Modularity/Extend/NCC.Extend/UavAdvertisementService.cs index 6cf9321..d7dbb42 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/UavAdvertisementService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/UavAdvertisementService.cs @@ -78,6 +78,10 @@ namespace NCC.Extend.UavAdvertisement agentId = it.AgentId, imageUrl = it.ImageUrl, isEnabled = it.IsEnabled, + name = it.Name, + type = it.Type, + deviceId = it.DeviceId, + deviceName = SqlFunc.Subqueryable().Where(u => u.Id == it.DeviceId).Select(u => u.DeviceName), }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(data); } @@ -105,7 +109,10 @@ namespace NCC.Extend.UavAdvertisement agentId = it.AgentId, imageUrl = it.ImageUrl, isEnabled = it.IsEnabled, - name = it.Name + name = it.Name, + type = it.Type, + deviceId = it.DeviceId, + deviceName = SqlFunc.Subqueryable().Where(u => u.Id == it.DeviceId).Select(u => u.DeviceName), }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(data); } @@ -133,6 +140,8 @@ namespace NCC.Extend.UavAdvertisement isEnabled = it.IsEnabled, name = it.Name, type = it.Type, + deviceId = it.DeviceId, + deviceName = SqlFunc.Subqueryable().Where(u => u.Id == it.DeviceId).Select(u => u.DeviceName), }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(data); } @@ -153,6 +162,7 @@ namespace NCC.Extend.UavAdvertisement entity.AgentId = _userManager.UserId; entity.CreateUser = _userManager.UserId; entity.CreateTime = DateTime.Now; + entity.DeviceId = input.deviceId; // 字符串到整数的强制转换 if (!string.IsNullOrEmpty(input.isEnabled) && int.TryParse(input.isEnabled, out int isEnabledValue)) { @@ -202,5 +212,30 @@ namespace NCC.Extend.UavAdvertisement } #endregion + #region 获取某个设备的广告管理列表 + /// + /// 获取某个设备的广告管理列表 + /// + /// + /// + [HttpGet("GetAdvertisementListByDevice")] + public async Task GetAdvertisementListByDevice(string deviceId) + { + var data = await _db.Queryable() + .Where(p => p.DeviceId == deviceId) + .Select(it => new UavAdvertisementListOutput + { + id = it.Id, + agentId = it.AgentId, + imageUrl = it.ImageUrl, + isEnabled = it.IsEnabled, + name = it.Name, + type = it.Type, + deviceId = it.DeviceId, + deviceName = SqlFunc.Subqueryable().Where(u => u.Id == it.DeviceId).Select(u => u.DeviceName), + }).ToListAsync(); + return data; + } + #endregion } } diff --git a/netcore/src/Modularity/Extend/NCC.Extend/UavOrderService.cs b/netcore/src/Modularity/Extend/NCC.Extend/UavOrderService.cs index a3433bf..c54af91 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/UavOrderService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/UavOrderService.cs @@ -1482,6 +1482,33 @@ namespace NCC.Extend.UavOrder } #endregion + #region 获取某个设备的订单金额统计 + /// + /// 获取某个设备的订单金额统计 + /// + /// + /// + [HttpGet("GetOrderAmountByDevice")] + public async Task GetOrderAmountByDevice(string deviceId) + { + //本月金额 + var monthStart = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); + var monthData = await _db.Queryable() + .Where(p => p.DeviceId == deviceId && p.Status == UavOrderStatusEnum.已完成.GetHashCode() && p.CreateTime >= monthStart) + .SumAsync(p => p.ActualAmount); + //总金额 + var totalData = await _db.Queryable() + .Where(p => p.DeviceId == deviceId && p.Status == UavOrderStatusEnum.已完成.GetHashCode()) + .SumAsync(p => p.ActualAmount); + //返回数据 + return new + { + monthData = monthData, + totalData = totalData + }; + } + #endregion + #region 获取某个代理商的每天出货量 /// /// 获取某个代理商的每天出货量 -- libgit2 0.21.4