From 41da425736871efbc388ed1b35349256092ffd45 Mon Sep 17 00:00:00 2001
From: “wangming” <“wangming@antissoft.com”>
Date: Wed, 24 Sep 2025 19:14:00 +0800
Subject: [PATCH] Refactor LqEventService and related DTOs to enhance event handling, including new endpoints for gold triangle statistics and member data retrieval. Update LqKdKdjlbService to incorporate deduct amount calculations and streamline data handling. Modify LqKhxxService to remove obsolete fields and improve data structure. Enhance LqYaoyjlService and LqYcsdJsjService for better data output consistency and clarity. Adjust launch settings to disable browser launch for both NCC.API and NCC.API.Tenant projects.
---
.vscode/settings.json | 2 +-
[已用]创建门店每日耗卡统计视图.sql | 2 +-
netcore/src/Application/NCC.API.Tenant/NCC.API.Tenant/Properties/launchSettings.json | 2 +-
netcore/src/Application/NCC.API/Properties/launchSettings.json | 2 +-
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/PersonDataOutput.cs | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/StoreDataOutput.cs | 40 ++++++++++++++++++++++++++++++++++++++++
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbCrInput.cs | 5 -----
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs | 6 +++---
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListQueryInput.cs | 7 +------
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxCrInput.cs | 4 ----
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxInfoOutput.cs | 4 ----
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListOutput.cs | 7 +------
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListQueryInput.cs | 5 -----
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYcsdJsj/LqYcsdJsjByUserMonthOutput.cs | 20 ++++++++++----------
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kdjlb/LqKdKdjlbEntity.cs | 13 +++++++------
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_khxx/LqKhxxEntity.cs | 8 +-------
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_statistics_gold_triangle/LqStatisticsGoldTriangleEntity.cs | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/MemberTypeEnum.cs | 35 +++++++++++++++++++++++++++++++++++
netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
netcore/src/Modularity/Extend/NCC.Extend/LqGzService.cs | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
netcore/src/Modularity/Extend/NCC.Extend/LqHzfService.cs | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs | 12 ++++++++----
netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs | 39 +++++++++++++++++++++++++++------------
netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs | 15 ++++++++++-----
netcore/src/Modularity/Extend/NCC.Extend/LqYaoyjlService.cs | 48 ++++++++++++++++++++++++------------------------
netcore/src/Modularity/Extend/NCC.Extend/LqYcsdJsjService.cs | 23 ++++++++++++-----------
26 files changed, 838 insertions(+), 171 deletions(-)
create mode 100644 netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/PersonDataOutput.cs
create mode 100644 netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/StoreDataOutput.cs
create mode 100644 netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_statistics_gold_triangle/LqStatisticsGoldTriangleEntity.cs
create mode 100644 netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/MemberTypeEnum.cs
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 3411ca7..e93ba44 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -7,6 +7,6 @@
"csharpier.endOfLine": "LF",
"[csharp]": {
"editor.formatOnSave": true,
- "editor.defaultFormatter": "csharpier.csharpier-vscode"
+ "editor.defaultFormatter": "ms-dotnettools.csharp"
}
}
diff --git a/[已用]创建门店每日耗卡统计视图.sql b/[已用]创建门店每日耗卡统计视图.sql
index 5f95f66..f573474 100644
--- a/[已用]创建门店每日耗卡统计视图.sql
+++ b/[已用]创建门店每日耗卡统计视图.sql
@@ -23,7 +23,7 @@ SELECT
COUNT(DISTINCT hk.hy) AS member_count, -- 消费会员数
hk.hksj AS create_time -- 创建时间
FROM lq_xh_hyhk hk
-LEFT JOIN lq_xh_pxmx px ON hk.F_Id = px.glkdbh
+LEFT JOIN lq_xh_pxmx px ON hk.F_Id = px.F_ConsumeInfoId
WHERE hk.hksj IS NOT NULL
GROUP BY hk.md, hk.mdbh, hk.mdmc, DATE(hk.hksj), hk.hksj
ORDER BY hk.md, DATE(hk.hksj) DESC;
diff --git a/netcore/src/Application/NCC.API.Tenant/NCC.API.Tenant/Properties/launchSettings.json b/netcore/src/Application/NCC.API.Tenant/NCC.API.Tenant/Properties/launchSettings.json
index 2039622..5e5090b 100644
--- a/netcore/src/Application/NCC.API.Tenant/NCC.API.Tenant/Properties/launchSettings.json
+++ b/netcore/src/Application/NCC.API.Tenant/NCC.API.Tenant/Properties/launchSettings.json
@@ -17,7 +17,7 @@
},
"NCC.API.Tenant": {
"commandName": "Project",
- "launchBrowser": true,
+ "launchBrowser": false,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
diff --git a/netcore/src/Application/NCC.API/Properties/launchSettings.json b/netcore/src/Application/NCC.API/Properties/launchSettings.json
index 35b2b58..589b2a6 100644
--- a/netcore/src/Application/NCC.API/Properties/launchSettings.json
+++ b/netcore/src/Application/NCC.API/Properties/launchSettings.json
@@ -18,7 +18,7 @@
"NCC.API": {
"commandName": "Project",
"dotnetRunMessages": "true",
- "launchBrowser": true,
+ "launchBrowser": false,
"applicationUrl": "http://localhost:2011", //58504
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/PersonDataOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/PersonDataOutput.cs
new file mode 100644
index 0000000..13105f6
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/PersonDataOutput.cs
@@ -0,0 +1,60 @@
+using System;
+
+namespace NCC.Extend.Entitys.Dto.LqEvent
+{
+ ///
+ /// 人员统计数据输出
+ ///
+ public class PersonDataOutput
+ {
+ ///
+ /// 用户ID
+ ///
+ public string UserId { get; set; }
+
+ ///
+ /// 用户姓名
+ ///
+ public string UserName { get; set; }
+
+ ///
+ /// 门店ID
+ ///
+ public string StoreId { get; set; }
+
+ ///
+ /// 门店名称
+ ///
+ public string StoreName { get; set; }
+
+ ///
+ /// 战队名称
+ ///
+ public string TeamName { get; set; }
+
+ ///
+ /// 个人目标数
+ ///
+ public int PersonalTarget { get; set; }
+
+ ///
+ /// 完成目标数
+ ///
+ public int CompletedTarget { get; set; }
+
+ ///
+ /// 完成率(百分比)
+ ///
+ public decimal CompletionRate { get; set; }
+
+ ///
+ /// 排名
+ ///
+ public int Ranking { get; set; }
+
+ ///
+ /// 最后拓客时间
+ ///
+ public DateTime? LastExpansionTime { get; set; }
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/StoreDataOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/StoreDataOutput.cs
new file mode 100644
index 0000000..897ede4
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/StoreDataOutput.cs
@@ -0,0 +1,40 @@
+using System;
+
+namespace NCC.Extend.Entitys.Dto.LqEvent
+{
+ ///
+ /// 门店统计数据输出
+ ///
+ public class StoreDataOutput
+ {
+ ///
+ /// 门店ID
+ ///
+ public string StoreId { get; set; }
+
+ ///
+ /// 门店名称
+ ///
+ public string StoreName { get; set; }
+
+ ///
+ /// 目前总目标数
+ ///
+ public int TotalTarget { get; set; }
+
+ ///
+ /// 门店完成目标数
+ ///
+ public int CompletedTarget { get; set; }
+
+ ///
+ /// 完成率(百分比)
+ ///
+ public decimal CompletionRate { get; set; }
+
+ ///
+ /// 排名
+ ///
+ public int Ranking { get; set; }
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbCrInput.cs
index 481ba5d..d389f03 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbCrInput.cs
@@ -49,7 +49,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
/// 实付业绩
///
public decimal sfyj { get; set; }
-
///
/// 欠款
///
@@ -60,10 +59,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
///
public string ckfs { get; set; }
- ///
- /// 储扣明细
- ///
- public string ckmx { get; set; }
///
/// 付款方式
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs
index caa07fa..1ac182f 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs
@@ -58,10 +58,10 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
public string ckfs { get; set; }
///
- /// 储扣明细
+ /// 储扣总金额
///
- public string ckmx { get; set; }
-
+ public decimal deductAmount { get; set; }
+
///
/// 付款方式
///
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListQueryInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListQueryInput.cs
index c471e4d..3ed6afb 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListQueryInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListQueryInput.cs
@@ -68,12 +68,7 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
/// 储扣方式
///
public string ckfs { get; set; }
-
- ///
- /// 储扣明细
- ///
- public string ckmx { get; set; }
-
+
///
/// 付款方式
///
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxCrInput.cs
index 74336e2..5a3e6d2 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxCrInput.cs
@@ -53,10 +53,6 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
///
public string zjdlsj { get; set; }
- ///
- /// 客户目前归属
- ///
- public string khmqgs { get; set; }
///
/// 归属门店
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxInfoOutput.cs
index 7da1058..b03f8b7 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxInfoOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxInfoOutput.cs
@@ -53,10 +53,6 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
///
public string zjdlsj { get; set; }
- ///
- /// 客户目前归属
- ///
- public string khmqgs { get; set; }
///
/// 归属门店
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListOutput.cs
index 8b4e5e7..2199d47 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListOutput.cs
@@ -53,11 +53,6 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
public string zjdlsj { get; set; }
///
- /// 客户目前归属
- ///
- public string khmqgs { get; set; }
-
- ///
/// 归属门店
///
public string gsmd { get; set; }
@@ -135,6 +130,6 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
///
/// 添加时间
///
- public string createTime { get; set; }
+ public DateTime createTime { get; set; }
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListQueryInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListQueryInput.cs
index 66b02bb..012cb17 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListQueryInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListQueryInput.cs
@@ -64,11 +64,6 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
public string zjdlsj { get; set; }
///
- /// 客户目前归属
- ///
- public string khmqgs { get; set; }
-
- ///
/// 归属门店
///
public string gsmd { get; set; }
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYcsdJsj/LqYcsdJsjByUserMonthOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYcsdJsj/LqYcsdJsjByUserMonthOutput.cs
index d751a3b..1fc3c1b 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYcsdJsj/LqYcsdJsjByUserMonthOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYcsdJsj/LqYcsdJsjByUserMonthOutput.cs
@@ -8,51 +8,51 @@ namespace NCC.Extend.Entitys.Dto.LqYcsdJsj
///
/// 金三角ID
///
- public string JsjId { get; set; }
+ public string jsjId { get; set; }
///
/// 金三角名称
///
- public string JsjName { get; set; }
+ public string jsjName { get; set; }
///
/// 月份
///
- public string Month { get; set; }
+ public string month { get; set; }
///
/// 门店ID
///
- public string StoreId { get; set; }
+ public string storeId { get; set; }
///
/// 门店名称
///
- public string StoreName { get; set; }
+ public string storeName { get; set; }
///
/// 用户ID
///
- public string UserId { get; set; }
+ public string userId { get; set; }
///
/// 用户姓名
///
- public string UserName { get; set; }
+ public string userName { get; set; }
///
/// 是否顾问
///
- public int IsLeader { get; set; }
+ public int isLeader { get; set; }
///
/// 状态
///
- public string Status { get; set; }
+ public string status { get; set; }
///
/// 排序
///
- public int SortOrder { get; set; }
+ public int sortOrder { get; set; }
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kdjlb/LqKdKdjlbEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kdjlb/LqKdKdjlbEntity.cs
index 2421d72..d50cb3a 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kdjlb/LqKdKdjlbEntity.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kdjlb/LqKdKdjlbEntity.cs
@@ -52,6 +52,7 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb
///
[SugarColumn(ColumnName = "zdyj")]
public decimal Zdyj { get; set; }
+
///
/// 实付业绩
@@ -60,6 +61,12 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb
public decimal Sfyj { get; set; }
///
+ /// 储扣总金额
+ ///
+ [SugarColumn(ColumnName = "F_DeductAmount")]
+ public decimal DeductAmount { get; set; }
+
+ ///
/// 欠款
///
[SugarColumn(ColumnName = "qk")]
@@ -72,12 +79,6 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb
public string Ckfs { get; set; }
///
- /// 储扣明细
- ///
- [SugarColumn(ColumnName = "ckmx")]
- public string Ckmx { get; set; }
-
- ///
/// 付款方式
///
[SugarColumn(ColumnName = "fkfs")]
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_khxx/LqKhxxEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_khxx/LqKhxxEntity.cs
index 23d62d4..e80fee5 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_khxx/LqKhxxEntity.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_khxx/LqKhxxEntity.cs
@@ -66,12 +66,6 @@ namespace NCC.Extend.Entitys.lq_khxx
public string Zjdlsj { get; set; }
///
- /// 客户目前归属
- ///
- [SugarColumn(ColumnName = "khmqgs")]
- public string Khmqgs { get; set; }
-
- ///
/// 归属门店
///
[SugarColumn(ColumnName = "gsmd")]
@@ -165,6 +159,6 @@ namespace NCC.Extend.Entitys.lq_khxx
/// 添加时间
///
[SugarColumn(ColumnName = "F_CreateTime")]
- public string CreateTime { get; set; }
+ public DateTime CreateTime { get; set; } = DateTime.Now;
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_statistics_gold_triangle/LqStatisticsGoldTriangleEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_statistics_gold_triangle/LqStatisticsGoldTriangleEntity.cs
new file mode 100644
index 0000000..4df28f4
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_statistics_gold_triangle/LqStatisticsGoldTriangleEntity.cs
@@ -0,0 +1,80 @@
+using NCC.Common.Const;
+using SqlSugar;
+using System;
+
+namespace NCC.Extend.Entitys.lq_statistics_gold_triangle
+{
+ ///
+ /// 金三角开卡业绩统计数据表
+ ///
+ [SugarTable("lq_statistics_gold_triangle")]
+ [Tenant(ClaimConst.TENANT_ID)]
+ public class LqStatisticsGoldTriangleEntity
+ {
+ ///
+ /// 主键ID
+ ///
+ [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
+ public string Id { get; set; }
+
+ ///
+ /// 金三角ID
+ ///
+ [SugarColumn(ColumnName = "F_GoldTriangleId")]
+ public string GoldTriangleId { get; set; }
+
+ ///
+ /// 金三角名称
+ ///
+ [SugarColumn(ColumnName = "F_GoldTriangleName")]
+ public string GoldTriangleName { get; set; }
+
+ ///
+ /// 统计月份(YYYYMM)
+ ///
+ [SugarColumn(ColumnName = "F_StatisticsMonth")]
+ public string StatisticsMonth { get; set; }
+
+ ///
+ /// 门店ID
+ ///
+ [SugarColumn(ColumnName = "F_StoreId")]
+ public string StoreId { get; set; }
+
+ ///
+ /// 门店名称
+ ///
+ [SugarColumn(ColumnName = "F_StoreName")]
+ public string StoreName { get; set; }
+
+ ///
+ /// 订单数量
+ ///
+ [SugarColumn(ColumnName = "F_OrderCount")]
+ public int OrderCount { get; set; }
+
+ ///
+ /// 总业绩金额
+ ///
+ [SugarColumn(ColumnName = "F_TotalPerformance")]
+ public decimal TotalPerformance { get; set; }
+
+ ///
+ /// 最后订单日期
+ ///
+ [SugarColumn(ColumnName = "F_LastOrderDate")]
+ public DateTime? LastOrderDate { get; set; }
+
+ ///
+ /// 首次订单日期
+ ///
+ [SugarColumn(ColumnName = "F_FirstOrderDate")]
+ public DateTime? FirstOrderDate { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "F_CreateTime")]
+ public DateTime CreateTime { get; set; } = DateTime.Now;
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/MemberTypeEnum.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/MemberTypeEnum.cs
new file mode 100644
index 0000000..f7e8b33
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/MemberTypeEnum.cs
@@ -0,0 +1,35 @@
+using System.ComponentModel;
+
+namespace NCC.Extend.Entitys.Enum
+{
+ ///
+ /// 会员类型
+ ///
+ public enum MemberTypeEnum
+ {
+ ///
+ /// 线索
+ ///
+ [Description("线索")]
+ 线索 = 0,
+
+ ///
+ /// 潜客
+ ///
+ [Description("潜客")]
+ 潜客 = 1,
+
+ ///
+ /// 新客
+ ///
+ [Description("新客")]
+ 新客 = 2,
+
+ ///
+ /// 老客
+ ///
+ [Description("老客")]
+ 老客 = 3,
+
+ }
+}
\ No newline at end of file
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs
index 4196825..7185b0d 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs
@@ -694,6 +694,212 @@ namespace NCC.Extend.LqEvent
}
#endregion
+ #region 根据活动ID获取门店的统计数据
+ ///
+ /// 根据活动ID获取门店的统计数据
+ ///
+ ///
+ /// 根据活动ID查询该活动下所有门店的统计数据
+ /// 返回门店的目标完成情况、完成率和排名信息
+ ///
+ /// 示例请求:
+ /// ```json
+ /// GET /api/Extend/LqEvent/store-data/{eventId}
+ /// ```
+ ///
+ /// 参数说明:
+ /// - eventId: 活动ID,必填参数
+ ///
+ /// 返回信息包括:
+ /// - 门店信息(门店ID、门店名称)
+ /// - 目标统计(总目标数、完成目标数、完成率)
+ /// - 排名信息(按完成率排序)
+ ///
+ /// 活动ID
+ /// 门店统计数据列表
+ /// 成功返回门店统计数据
+ /// 参数错误,活动ID不能为空
+ [HttpGet("store-data/{eventId}")]
+ public async Task GetStoreDataByEventId(string eventId)
+ {
+ if (string.IsNullOrEmpty(eventId))
+ {
+ throw NCCException.Oh("活动ID不能为空");
+ }
+
+ try
+ {
+ // 使用多表查询获取门店统计数据
+ var storeData = await _db.Queryable(
+ (eventUser, store, tkjlb) => eventUser.EventId == eventId && eventUser.StoreId == store.Id && eventUser.UserId == tkjlb.ExpansionUserId && tkjlb.EventId == eventId
+ )
+ .GroupBy((eventUser, store, tkjlb) => new { StoreId = store.Id, StoreName = store.Dm })
+ .Select(
+ (eventUser, store, tkjlb) =>
+ new StoreDataOutput
+ {
+ StoreId = store.Id,
+ StoreName = store.Dm,
+ TotalTarget = SqlFunc.AggregateSum(eventUser.EventTarget),
+ CompletedTarget = SqlFunc.AggregateCount(tkjlb.Id),
+ CompletionRate = 0, // 将在内存中计算
+ Ranking = 0, // 将在内存中计算
+ }
+ )
+ .ToListAsync();
+
+ // 计算完成率和排名
+ foreach (var store in storeData)
+ {
+ if (store.TotalTarget > 0)
+ {
+ store.CompletionRate = Math.Round((decimal)store.CompletedTarget / store.TotalTarget * 100, 2);
+ }
+ }
+
+ // 按完成率降序排序并设置排名
+ var rankedStores = storeData.OrderByDescending(s => s.CompletionRate).ThenByDescending(s => s.CompletedTarget).ToList();
+
+ for (int i = 0; i < rankedStores.Count; i++)
+ {
+ rankedStores[i].Ranking = i + 1;
+ }
+
+ return rankedStores;
+ }
+ catch (Exception ex)
+ {
+ throw NCCException.Oh($"查询活动 {eventId} 门店统计数据失败: {ex.Message}", ex);
+ }
+ }
+ #endregion
+
+ #region 根据活动ID获取人员统计数据
+
+ ///
+ /// 根据活动ID获取人员统计数据
+ ///
+ ///
+ /// 根据活动ID查询该活动下所有参与人员的统计数据
+ /// 返回人员的个人目标完成情况、完成率和排名信息
+ ///
+ /// 示例请求:
+ /// ```json
+ /// GET /api/Extend/LqEvent/person-data/{eventId}
+ /// ```
+ ///
+ /// 参数说明:
+ /// - eventId: 活动ID,必填参数
+ ///
+ /// 返回信息包括:
+ /// - 人员信息(用户ID、用户姓名、门店信息、战队信息)
+ /// - 目标统计(个人目标数、完成目标数、完成率)
+ /// - 排名信息(按完成率排序)
+ /// - 最后拓客时间
+ ///
+ /// 活动ID
+ /// 人员统计数据列表
+ /// 成功返回人员统计数据
+ /// 参数错误,活动ID不能为空
+ [HttpGet("person-data/{eventId}")]
+ public async Task GetPersonDataByEventId(string eventId)
+ {
+ if (string.IsNullOrEmpty(eventId))
+ {
+ throw NCCException.Oh("活动ID不能为空");
+ }
+
+ try
+ {
+ // 第一步:获取所有参与活动的人员基本信息
+ var eventUsers = await _db.Queryable(
+ (eventUser, user, store) => eventUser.EventId == eventId && eventUser.UserId == user.Id && eventUser.StoreId == store.Id
+ )
+ .Select(
+ (eventUser, user, store) =>
+ new
+ {
+ UserId = user.Id,
+ UserName = user.RealName,
+ StoreId = store.Id,
+ StoreName = store.Dm,
+ TeamName = eventUser.TeamName,
+ PersonalTarget = eventUser.EventTarget,
+ }
+ )
+ .ToListAsync();
+ // 第二步:获取每个用户的拓客统计数据
+ var userIds = eventUsers.Select(u => u.UserId).ToList();
+ var expansionStats = new Dictionary();
+ if (userIds.Any())
+ {
+ // 分批查询拓客数据,避免IN查询过大
+ const int batchSize = 500;
+ for (int i = 0; i < userIds.Count; i += batchSize)
+ {
+ var batch = userIds.Skip(i).Take(batchSize).ToList();
+ var stats = await _db.Queryable()
+ .Where(tkjlb => tkjlb.EventId == eventId && batch.Contains(tkjlb.ExpansionUserId))
+ .GroupBy(tkjlb => tkjlb.ExpansionUserId)
+ .Select(tkjlb => new
+ {
+ UserId = tkjlb.ExpansionUserId,
+ Count = SqlFunc.AggregateCount(tkjlb.Id),
+ LastTime = SqlFunc.AggregateMax(tkjlb.CreateTime),
+ })
+ .ToListAsync();
+
+ foreach (var stat in stats)
+ {
+ expansionStats[stat.UserId] = (stat.Count, stat.LastTime);
+ }
+ }
+ }
+
+ // 第三步:合并数据
+ var personData = eventUsers
+ .Select(eventUser => new PersonDataOutput
+ {
+ UserId = eventUser.UserId,
+ UserName = eventUser.UserName,
+ StoreId = eventUser.StoreId,
+ StoreName = eventUser.StoreName,
+ TeamName = eventUser.TeamName,
+ PersonalTarget = eventUser.PersonalTarget,
+ CompletedTarget = expansionStats.ContainsKey(eventUser.UserId) ? expansionStats[eventUser.UserId].Count : 0,
+ CompletionRate = 0, // 将在内存中计算
+ Ranking = 0, // 将在内存中计算
+ LastExpansionTime = expansionStats.ContainsKey(eventUser.UserId) ? expansionStats[eventUser.UserId].LastTime : null,
+ })
+ .ToList();
+
+ // 计算完成率和排名
+ foreach (var person in personData)
+ {
+ if (person.PersonalTarget > 0)
+ {
+ person.CompletionRate = Math.Round((decimal)person.CompletedTarget / person.PersonalTarget * 100, 2);
+ }
+ }
+
+ // 按完成率降序排序并设置排名
+ var rankedPersons = personData.OrderByDescending(p => p.CompletionRate).ThenByDescending(p => p.CompletedTarget).ToList();
+
+ for (int i = 0; i < rankedPersons.Count; i++)
+ {
+ rankedPersons[i].Ranking = i + 1;
+ }
+
+ return rankedPersons;
+ }
+ catch (Exception ex)
+ {
+ throw NCCException.Oh($"查询活动 {eventId} 人员统计数据失败: {ex.Message}", ex);
+ }
+ }
+
+ #endregion
+
#region Excel导入拓客活动用户
///
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqGzService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqGzService.cs
index 37fd74a..f64da8e 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqGzService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqGzService.cs
@@ -26,6 +26,7 @@ using NCC.Extend.Entitys.lq_kd_pxmx;
using NCC.Extend.Entitys.lq_mdxx;
using NCC.Extend.Entitys.lq_xmzl;
using NCC.Extend.Entitys.lq_ycsd_jsj;
+using NCC.Extend.Entitys.lq_statistics_gold_triangle;
using NCC.Extend.Interfaces.LqGz;
using NCC.FriendlyException;
using NCC.JsonSerialization;
@@ -57,6 +58,7 @@ namespace NCC.Extend.LqGz
_logger = logger;
}
+ #region 获取工资全字段
///
/// 获取工资全字段
///
@@ -69,7 +71,9 @@ namespace NCC.Extend.LqGz
var output = entity.Adapt();
return output;
}
+ #endregion
+ #region 获取工资全字段列表
///
/// 获取工资全字段列表
///
@@ -286,7 +290,9 @@ namespace NCC.Extend.LqGz
.ToPagedListAsync(input.currentPage, input.pageSize);
return PageResult.SqlSugarPageResult(data);
}
+ #endregion
+ #region 新建工资全字段
///
/// 新建工资全字段
///
@@ -302,7 +308,9 @@ namespace NCC.Extend.LqGz
if (!(isOk > 0))
throw NCCException.Oh(ErrorCode.COM1000);
}
+ #endregion
+ #region 获取工资全字段无分页列表
///
/// 获取工资全字段无分页列表
///
@@ -519,6 +527,9 @@ namespace NCC.Extend.LqGz
.ToListAsync();
return data;
}
+ #endregion
+
+ #region 导出工资全字段
///
/// 导出工资全字段
@@ -562,7 +573,9 @@ namespace NCC.Extend.LqGz
var output = new { name = excelconfig.FileName, url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC") };
return output;
}
+ #endregion
+ #region 批量删除工资全字段
///
/// 批量删除工资全字段
///
@@ -591,7 +604,9 @@ namespace NCC.Extend.LqGz
}
}
}
+ #endregion
+ #region 更新工资全字段
///
/// 更新工资全字段
///
@@ -606,7 +621,9 @@ namespace NCC.Extend.LqGz
if (!(isOk > 0))
throw NCCException.Oh(ErrorCode.COM1001);
}
+ #endregion
+ #region 删除工资全字段
///
/// 删除工资全字段
///
@@ -620,6 +637,7 @@ namespace NCC.Extend.LqGz
if (!(isOk > 0))
throw NCCException.Oh(ErrorCode.COM1002);
}
+ #endregion
#region 业绩计算相关方法
@@ -896,5 +914,237 @@ namespace NCC.Extend.LqGz
}
#endregion
+
+ #region 金三角统计数据保存
+
+ ///
+ /// 保存金三角开卡业绩统计数据
+ ///
+ ///
+ /// 根据金三角设定和开单记录统计金三角的业绩数据
+ /// 使用直接SQL查询提高效率,完全按照原始SQL逻辑实现
+ ///
+ /// 示例请求:
+ /// ```json
+ /// POST /api/Extend/LqGz/save-gold-triangle-statistics
+ /// {
+ /// "statisticsMonth": "202401"
+ /// }
+ /// ```
+ ///
+ /// 统计月份(YYYYMM格式)
+ /// 保存结果
+ /// 成功保存统计数据
+ /// 参数错误
+ /// 服务器内部错误
+ [HttpPost("save-gold-triangle-statistics")]
+ public async Task SaveGoldTriangleStatistics(string statisticsMonth)
+ {
+ if (string.IsNullOrEmpty(statisticsMonth) || statisticsMonth.Length != 6)
+ {
+ throw NCCException.Oh("统计月份格式错误,请使用YYYYMM格式");
+ }
+
+ try
+ {
+ // 使用直接SQL查询,完全按照原始SQL逻辑
+ var sql = @"
+ SELECT
+ jsj.F_Id AS JsjId,
+ jsj.jsj AS JsjName,
+ jsj.yf AS Month,
+ jsj.md AS StoreId,
+ md.dm AS StoreName,
+ COUNT(DISTINCT jksyj.glkdbh) AS OrderCount,
+ SUM(CAST(jksyj.jksyj AS DECIMAL(18,2))) AS TotalPerformance,
+ MAX(jksyj.yjsj) AS LastOrderDate,
+ MIN(jksyj.yjsj) AS FirstOrderDate
+ FROM lq_ycsd_jsj jsj
+ LEFT JOIN lq_kd_jksyj jksyj ON (
+ jsj.F_Id = jksyj.jsj_id
+ AND YEAR(jksyj.yjsj) = SUBSTRING(jsj.yf, 1, 4)
+ AND MONTH(jksyj.yjsj) = SUBSTRING(jsj.yf, 5, 2)
+ )
+ LEFT JOIN lq_mdxx md ON jsj.md = md.F_Id
+ WHERE jsj.yf = @statisticsMonth
+ AND jksyj.yjsj IS NOT NULL
+ AND jksyj.jksyj IS NOT NULL
+ AND jksyj.jksyj <> ''
+ AND jksyj.jksyj <> '0'
+ GROUP BY jsj.F_Id, jsj.jsj, jsj.yf, jsj.md, md.dm
+ ORDER BY jsj.yf DESC, TotalPerformance DESC";
+
+ var statisticsData = await _db.Ado.SqlQueryAsync(sql, new { statisticsMonth });
+
+ if (!statisticsData.Any())
+ {
+ return new
+ {
+ Success = true,
+ Message = $"未找到 {statisticsMonth} 月份的金三角统计数据",
+ SavedCount = 0
+ };
+ }
+
+ // 转换为实体对象并保存
+ var entities = statisticsData.Select(data => new LqStatisticsGoldTriangleEntity
+ {
+ Id = YitIdHelper.NextId().ToString(),
+ GoldTriangleId = data.JsjId?.ToString(),
+ GoldTriangleName = data.JsjName?.ToString(),
+ StatisticsMonth = data.Month?.ToString(),
+ StoreId = data.StoreId?.ToString(),
+ StoreName = data.StoreName?.ToString(),
+ OrderCount = Convert.ToInt32(data.OrderCount),
+ TotalPerformance = Convert.ToDecimal(data.TotalPerformance),
+ LastOrderDate = data.LastOrderDate as DateTime?,
+ FirstOrderDate = data.FirstOrderDate as DateTime?,
+ CreateTime = DateTime.Now
+ }).ToList();
+
+ // 先删除该月份的历史数据
+ await _db.Deleteable()
+ .Where(x => x.StatisticsMonth == statisticsMonth)
+ .ExecuteCommandAsync();
+
+ // 批量插入新数据
+ var savedCount = await _db.Insertable(entities).ExecuteCommandAsync();
+
+ _logger.LogInformation($"成功保存金三角统计数据 - 月份: {statisticsMonth}, 记录数: {savedCount}");
+
+ return new
+ {
+ Success = true,
+ Message = $"成功保存 {savedCount} 条金三角统计数据",
+ SavedCount = savedCount,
+ StatisticsMonth = statisticsMonth
+ };
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, $"保存金三角统计数据失败 - 月份: {statisticsMonth}");
+ throw NCCException.Oh($"保存金三角统计数据失败: {ex.Message}");
+ }
+ }
+
+ ///
+ /// 测试金三角统计SQL查询
+ ///
+ ///
+ /// 直接执行SQL查询,验证统计逻辑是否正确
+ ///
+ /// 示例请求:
+ /// ```json
+ /// GET /api/Extend/LqGz/test-gold-triangle-sql?statisticsMonth=202401
+ /// ```
+ ///
+ /// 统计月份(YYYYMM格式)
+ /// 原始SQL查询结果
+ /// 成功返回查询结果
+ /// 参数错误
+ [HttpGet("test-gold-triangle-sql")]
+ public async Task TestGoldTriangleSql(string statisticsMonth)
+ {
+ if (string.IsNullOrEmpty(statisticsMonth) || statisticsMonth.Length != 6)
+ {
+ throw NCCException.Oh("统计月份格式错误,请使用YYYYMM格式");
+ }
+
+ try
+ {
+ var sql = @"
+ SELECT
+ jsj.F_Id AS JsjId,
+ jsj.jsj AS JsjName,
+ jsj.yf AS Month,
+ jsj.md AS StoreId,
+ md.dm AS StoreName,
+ COUNT(DISTINCT jksyj.glkdbh) AS OrderCount,
+ SUM(CAST(jksyj.jksyj AS DECIMAL(18,2))) AS TotalPerformance,
+ MAX(jksyj.yjsj) AS LastOrderDate,
+ MIN(jksyj.yjsj) AS FirstOrderDate
+ FROM lq_ycsd_jsj jsj
+ LEFT JOIN lq_kd_jksyj jksyj ON (
+ jsj.F_Id = jksyj.jsj_id
+ AND YEAR(jksyj.yjsj) = SUBSTRING(jsj.yf, 1, 4)
+ AND MONTH(jksyj.yjsj) = SUBSTRING(jsj.yf, 5, 2)
+ )
+ LEFT JOIN lq_mdxx md ON jsj.md = md.F_Id
+ WHERE jsj.yf = @statisticsMonth
+ AND jksyj.yjsj IS NOT NULL
+ AND jksyj.jksyj IS NOT NULL
+ AND jksyj.jksyj <> ''
+ AND jksyj.jksyj <> '0'
+ GROUP BY jsj.F_Id, jsj.jsj, jsj.yf, jsj.md, md.dm
+ ORDER BY jsj.yf DESC, TotalPerformance DESC";
+
+ var result = await _db.Ado.SqlQueryAsync(sql, new { statisticsMonth });
+
+ return new
+ {
+ Success = true,
+ Data = result,
+ Count = result.Count,
+ StatisticsMonth = statisticsMonth,
+ Sql = sql
+ };
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, $"测试金三角统计SQL失败 - 月份: {statisticsMonth}");
+ throw NCCException.Oh($"测试金三角统计SQL失败: {ex.Message}");
+ }
+ }
+
+ ///
+ /// 获取金三角统计数据
+ ///
+ ///
+ /// 查询指定月份的金三角统计数据
+ ///
+ /// 示例请求:
+ /// ```json
+ /// GET /api/Extend/LqGz/get-gold-triangle-statistics?statisticsMonth=202401
+ /// ```
+ ///
+ /// 统计月份(YYYYMM格式)
+ /// 统计数据列表
+ /// 成功返回统计数据
+ /// 参数错误
+ [HttpGet("get-gold-triangle-statistics")]
+ public async Task GetGoldTriangleStatistics(string statisticsMonth)
+ {
+ if (string.IsNullOrEmpty(statisticsMonth))
+ {
+ throw NCCException.Oh("统计月份不能为空");
+ }
+
+ try
+ {
+ var statistics = await _db.Queryable()
+ .Where(x => x.StatisticsMonth == statisticsMonth)
+ .OrderBy(x => x.TotalPerformance, OrderByType.Desc)
+ .ToListAsync();
+
+ return new
+ {
+ Success = true,
+ Data = statistics,
+ Count = statistics.Count,
+ StatisticsMonth = statisticsMonth
+ };
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, $"查询金三角统计数据失败 - 月份: {statisticsMonth}");
+ throw NCCException.Oh($"查询金三角统计数据失败: {ex.Message}");
+ }
+ }
+
+ #endregion
+
+
+
+
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqHzfService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqHzfService.cs
index 96187a2..4a3b36a 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqHzfService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqHzfService.cs
@@ -1,34 +1,34 @@
-using NCC.Common.Core.Manager;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Mapster;
+using Microsoft.AspNetCore.Mvc;
+using NCC.ClayObject;
+using NCC.Common.Configuration;
+using NCC.Common.Core.Manager;
using NCC.Common.Enum;
using NCC.Common.Extension;
using NCC.Common.Filter;
+using NCC.Common.Helper;
+using NCC.Common.Model.NPOI;
+using NCC.DataEncryption;
using NCC.Dependency;
using NCC.DynamicApiController;
-using NCC.FriendlyException;
+using NCC.Extend.Entitys.Dto.LqHzf;
+using NCC.Extend.Entitys.lq_hzf;
using NCC.Extend.Interfaces.LqHzf;
-using Mapster;
-using Microsoft.AspNetCore.Mvc;
+using NCC.FriendlyException;
+using NCC.JsonSerialization;
using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using NCC.Extend.Entitys.lq_hzf;
-using NCC.Extend.Entitys.Dto.LqHzf;
using Yitter.IdGenerator;
-using NCC.Common.Helper;
-using NCC.JsonSerialization;
-using NCC.Common.Model.NPOI;
-using NCC.Common.Configuration;
-using NCC.DataEncryption;
-using NCC.ClayObject;
namespace NCC.Extend.LqHzf
{
///
/// 合作方服务
///
- [ApiDescriptionSettings(Tag = "Extend",Name = "LqHzf", Order = 200)]
+ [ApiDescriptionSettings(Tag = "Extend", Name = "LqHzf", Order = 200)]
[Route("api/Extend/[controller]")]
public class LqHzfService : ILqHzfService, IDynamicApiController, ITransient
{
@@ -39,11 +39,9 @@ namespace NCC.Extend.LqHzf
///
/// 初始化一个类型的新实例
///
- public LqHzfService(
- ISqlSugarRepository lqHzfRepository,
- IUserManager userManager)
+ public LqHzfService(ISqlSugarRepository lqHzfRepository, IUserManager userManager)
{
- _lqHzfRepository = lqHzfRepository;
+ _lqHzfRepository = lqHzfRepository;
_db = _lqHzfRepository.Context;
_userManager = userManager;
}
@@ -62,10 +60,10 @@ namespace NCC.Extend.LqHzf
}
///
- /// 获取合作方列表
- ///
- /// 请求参数
- ///
+ /// 获取合作方列表
+ ///
+ /// 请求参数
+ ///
[HttpGet("")]
public async Task GetList([FromQuery] LqHzfListQueryInput input)
{
@@ -75,14 +73,17 @@ namespace NCC.Extend.LqHzf
.WhereIF(!string.IsNullOrEmpty(input.hzmc), p => p.Hzmc.Contains(input.hzmc))
.WhereIF(!string.IsNullOrEmpty(input.hzfczb), p => p.Hzfczb.Equals(input.hzfczb))
.WhereIF(!string.IsNullOrEmpty(input.skf), p => p.Skf.Contains(input.skf))
- .Select(it=> new LqHzfListOutput
+ .Select(it => new LqHzfListOutput
{
id = it.Id,
- hzmc=it.Hzmc,
- hzfczb=it.Hzfczb,
- skf=it.Skf,
- }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize);
- return PageResult.SqlSugarPageResult(data);
+ hzmc = it.Hzmc,
+ hzfczb = it.Hzfczb,
+ skf = it.Skf,
+ })
+ .MergeTable()
+ .OrderBy(sidx + " " + input.sort)
+ .ToPagedListAsync(input.currentPage, input.pageSize);
+ return PageResult.SqlSugarPageResult(data);
}
///
@@ -97,14 +98,15 @@ namespace NCC.Extend.LqHzf
var entity = input.Adapt();
entity.Id = YitIdHelper.NextId().ToString();
var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();
- if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000);
+ if (!(isOk > 0))
+ throw NCCException.Oh(ErrorCode.COM1000);
}
///
- /// 获取合作方无分页列表
- ///
- /// 请求参数
- ///
+ /// 获取合作方无分页列表
+ ///
+ /// 请求参数
+ ///
[NonAction]
public async Task GetNoPagingList([FromQuery] LqHzfListQueryInput input)
{
@@ -114,21 +116,24 @@ namespace NCC.Extend.LqHzf
.WhereIF(!string.IsNullOrEmpty(input.hzmc), p => p.Hzmc.Contains(input.hzmc))
.WhereIF(!string.IsNullOrEmpty(input.hzfczb), p => p.Hzfczb.Equals(input.hzfczb))
.WhereIF(!string.IsNullOrEmpty(input.skf), p => p.Skf.Contains(input.skf))
- .Select(it=> new LqHzfListOutput
+ .Select(it => new LqHzfListOutput
{
id = it.Id,
- hzmc=it.Hzmc,
- hzfczb=it.Hzfczb,
- skf=it.Skf,
- }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync();
- return data;
+ hzmc = it.Hzmc,
+ hzfczb = it.Hzfczb,
+ skf = it.Skf,
+ })
+ .MergeTable()
+ .OrderBy(sidx + " " + input.sort)
+ .ToListAsync();
+ return data;
}
///
- /// 导出合作方
- ///
- /// 请求参数
- ///
+ /// 导出合作方
+ ///
+ /// 请求参数
+ ///
[HttpGet("Actions/Export")]
public async Task Export([FromQuery] LqHzfListQueryInput input)
{
@@ -143,7 +148,8 @@ namespace NCC.Extend.LqHzf
{
exportData = await this.GetNoPagingList(input);
}
- List paramList = "[{\"value\":\"合作编号\",\"field\":\"id\"},{\"value\":\"合作名称\",\"field\":\"hzmc\"},{\"value\":\"合作分成占比\",\"field\":\"hzfczb\"},{\"value\":\"收款方\",\"field\":\"skf\"},]".ToList();
+ List paramList =
+ "[{\"value\":\"合作编号\",\"field\":\"id\"},{\"value\":\"合作名称\",\"field\":\"hzmc\"},{\"value\":\"合作分成占比\",\"field\":\"hzfczb\"},{\"value\":\"收款方\",\"field\":\"skf\"},]".ToList();
ExcelConfig excelconfig = new ExcelConfig();
excelconfig.FileName = "合作方.xls";
excelconfig.HeadFont = "微软雅黑";
@@ -162,11 +168,7 @@ namespace NCC.Extend.LqHzf
var addPath = FileVariable.TemporaryFilePath + excelconfig.FileName;
ExcelExportHelper.Export(exportData, excelconfig, addPath);
var fileName = _userManager.UserId + "|" + addPath + "|xls";
- var output = new
- {
- name = excelconfig.FileName,
- url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC")
- };
+ var output = new { name = excelconfig.FileName, url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC") };
return output;
}
@@ -186,7 +188,7 @@ namespace NCC.Extend.LqHzf
//开启事务
_db.BeginTran();
//批量删除合作方
- await _db.Deleteable().In(d => d.Id,ids).ExecuteCommandAsync();
+ await _db.Deleteable().In(d => d.Id, ids).ExecuteCommandAsync();
//关闭事务
_db.CommitTran();
}
@@ -210,7 +212,8 @@ namespace NCC.Extend.LqHzf
{
var entity = input.Adapt();
var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
- if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001);
+ if (!(isOk > 0))
+ throw NCCException.Oh(ErrorCode.COM1001);
}
///
@@ -223,7 +226,8 @@ namespace NCC.Extend.LqHzf
var entity = await _db.Queryable().FirstAsync(p => p.Id == id);
_ = entity ?? throw NCCException.Oh(ErrorCode.COM1005);
var isOk = await _db.Deleteable().Where(d => d.Id == id).ExecuteCommandAsync();
- if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1002);
+ if (!(isOk > 0))
+ throw NCCException.Oh(ErrorCode.COM1002);
}
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
index 9a16689..5ad398a 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
@@ -25,6 +25,7 @@ using NCC.Extend.Entitys.lq_kd_jksyj;
using NCC.Extend.Entitys.lq_kd_kdjlb;
using NCC.Extend.Entitys.lq_kd_kjbsyj;
using NCC.Extend.Entitys.lq_kd_pxmx;
+using NCC.Extend.Entitys.lq_khxx;
using NCC.Extend.Entitys.lq_xmzl;
using NCC.Extend.Interfaces.LqKdKdjlb;
using NCC.Extend.Utils;
@@ -191,7 +192,6 @@ namespace NCC.Extend.LqKdKdjlb
.WhereIF(!string.IsNullOrEmpty(input.sfyj), p => p.Sfyj.Equals(input.sfyj))
.WhereIF(!string.IsNullOrEmpty(input.qk), p => p.Qk.Equals(input.qk))
.WhereIF(!string.IsNullOrEmpty(input.ckfs), p => p.Ckfs.Equals(input.ckfs))
- .WhereIF(!string.IsNullOrEmpty(input.ckmx), p => p.Ckmx.Contains(input.ckmx))
.WhereIF(!string.IsNullOrEmpty(input.fkfs), p => p.Fkfs.Equals(input.fkfs))
.WhereIF(!string.IsNullOrEmpty(input.fkyy), p => p.Fkyy.Equals(input.fkyy))
.WhereIF(!string.IsNullOrEmpty(input.fkpd), p => p.Fkpd.Contains(input.fkpd))
@@ -219,12 +219,12 @@ namespace NCC.Extend.LqKdKdjlb
sfyj = it.Sfyj,
qk = it.Qk,
ckfs = it.Ckfs,
- ckmx = it.Ckmx,
fkfs = it.Fkfs,
fkyy = it.Fkyy,
fkpd = it.Fkpd,
khly = it.Khly,
tjr = it.Tjr,
+ deductAmount = it.DeductAmount,
sfskdd = it.Sfskdd,
jj = it.Jj,
bz = it.Bz,
@@ -263,6 +263,7 @@ namespace NCC.Extend.LqKdKdjlb
_db.BeginTran();
//新增开单记录表记录
entity.CreateUser = userInfo.userId;
+ entity.DeductAmount = input.lqKdKdjlbDeductList.Sum(x => x.Amount ?? 0);//计算储扣总金额
var newEntity = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteReturnEntityAsync();
//循环品相信息
// 收集所有需要插入的实体,然后批量插入
@@ -347,6 +348,10 @@ namespace NCC.Extend.LqKdKdjlb
}
}
}
+ //通过会员id查询会员信息
+ var memberInfo = await _db.Queryable().Where(u => u.Id == entity.Kdhy).FirstAsync();
+ memberInfo.Khlx = "老客";
+ await _db.Updateable(memberInfo).ExecuteCommandAsync();
// 批量插入扣款信息
if (allDeductEntities.Any())
{
@@ -442,7 +447,6 @@ namespace NCC.Extend.LqKdKdjlb
.WhereIF(!string.IsNullOrEmpty(input.sfyj), p => p.Sfyj.Equals(input.sfyj))
.WhereIF(!string.IsNullOrEmpty(input.qk), p => p.Qk.Equals(input.qk))
.WhereIF(!string.IsNullOrEmpty(input.ckfs), p => p.Ckfs.Equals(input.ckfs))
- .WhereIF(!string.IsNullOrEmpty(input.ckmx), p => p.Ckmx.Contains(input.ckmx))
.WhereIF(!string.IsNullOrEmpty(input.fkfs), p => p.Fkfs.Equals(input.fkfs))
.WhereIF(!string.IsNullOrEmpty(input.fkyy), p => p.Fkyy.Equals(input.fkyy))
.WhereIF(!string.IsNullOrEmpty(input.fkpd), p => p.Fkpd.Contains(input.fkpd))
@@ -470,7 +474,7 @@ namespace NCC.Extend.LqKdKdjlb
sfyj = it.Sfyj,
qk = it.Qk,
ckfs = it.Ckfs,
- ckmx = it.Ckmx,
+ deductAmount = it.DeductAmount,
fkfs = it.Fkfs,
fkyy = it.Fkyy,
fkpd = it.Fkpd,
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
index b396a74..a7e0613 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
@@ -16,8 +16,10 @@ using NCC.Common.Model.NPOI;
using NCC.DataEncryption;
using NCC.Dependency;
using NCC.DynamicApiController;
+using NCC.Extend.Entitys.Dto.Common;
using NCC.Extend.Entitys.Dto.LqKhxx;
using NCC.Extend.Entitys.Dto.LqXhHyhk;
+using NCC.Extend.Entitys.Enum;
using NCC.Extend.Entitys.lq_hytk_hytk;
using NCC.Extend.Entitys.lq_hytk_mx;
using NCC.Extend.Entitys.lq_kd_kdjlb;
@@ -90,7 +92,6 @@ namespace NCC.Extend.LqKhxx
.WhereIF(!string.IsNullOrEmpty(input.gzhzt), p => p.Gzhzt.Equals(input.gzhzt))
.WhereIF(!string.IsNullOrEmpty(input.wxnc), p => p.Wxnc.Contains(input.wxnc))
.WhereIF(!string.IsNullOrEmpty(input.wxxcxzt), p => p.Wxxcxzt.Equals(input.wxxcxzt))
- .WhereIF(!string.IsNullOrEmpty(input.khmqgs), p => p.Khmqgs.Equals(input.khmqgs))
.WhereIF(!string.IsNullOrEmpty(input.gsmd), p => p.Gsmd.Contains(input.gsmd))
.WhereIF(!string.IsNullOrEmpty(input.khlx), p => p.Khlx.Equals(input.khlx))
.WhereIF(!string.IsNullOrEmpty(input.khjd), p => p.Khjd.Equals(input.khjd))
@@ -114,7 +115,6 @@ namespace NCC.Extend.LqKhxx
wxnc = it.Wxnc,
wxxcxzt = it.Wxxcxzt,
zjdlsj = it.Zjdlsj,
- khmqgs = it.Khmqgs,
gsmd = it.Gsmd,
zcsj = it.Zcsj,
khlx = it.Khlx,
@@ -157,7 +157,6 @@ namespace NCC.Extend.LqKhxx
}
var entity = input.Adapt();
entity.Id = YitIdHelper.NextId().ToString();
-
// 处理客户消费字段:将数组转换为逗号分隔的字符串
if (input.khxf != null && input.khxf.Count > 0)
{
@@ -203,7 +202,6 @@ namespace NCC.Extend.LqKhxx
.WhereIF(!string.IsNullOrEmpty(input.wxxcxzt), p => p.Wxxcxzt.Equals(input.wxxcxzt))
// .WhereIF(queryZjdlsj != null, p => p.Zjdlsj >= new DateTime(startZjdlsj.ToDate().Year, startZjdlsj.ToDate().Month, startZjdlsj.ToDate().Day, 0, 0, 0))
// .WhereIF(queryZjdlsj != null, p => p.Zjdlsj <= new DateTime(endZjdlsj.ToDate().Year, endZjdlsj.ToDate().Month, endZjdlsj.ToDate().Day, 23, 59, 59))
- .WhereIF(!string.IsNullOrEmpty(input.khmqgs), p => p.Khmqgs.Equals(input.khmqgs))
.WhereIF(!string.IsNullOrEmpty(input.gsmd), p => p.Gsmd.Contains(input.gsmd))
.WhereIF(queryZcsj != null, p => p.Zcsj >= new DateTime(startZcsj.ToDate().Year, startZcsj.ToDate().Month, startZcsj.ToDate().Day, 0, 0, 0))
.WhereIF(queryZcsj != null, p => p.Zcsj <= new DateTime(endZcsj.ToDate().Year, endZcsj.ToDate().Month, endZcsj.ToDate().Day, 23, 59, 59))
@@ -233,7 +231,6 @@ namespace NCC.Extend.LqKhxx
wxnc = it.Wxnc,
wxxcxzt = it.Wxxcxzt,
zjdlsj = it.Zjdlsj,
- khmqgs = it.Khmqgs,
gsmd = it.Gsmd,
zcsj = it.Zcsj,
khlx = it.Khlx,
@@ -282,7 +279,7 @@ namespace NCC.Extend.LqKhxx
DateTime? endYinlsr = queryYinlsr != null ? Ext.GetDateTime(queryYinlsr.Last()) : null;
var data = await _db.Queryable()
- .Where(p => p.Khmqgs == "线索池") // 固定查询线索池客户
+ .Where(p => p.Khlx == "线索") // 固定查询线索池客户
.WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))
.WhereIF(!string.IsNullOrEmpty(input.khmc), p => p.Khmc.Contains(input.khmc))
.WhereIF(!string.IsNullOrEmpty(input.sjh), p => p.Sjh.Contains(input.sjh))
@@ -291,7 +288,6 @@ namespace NCC.Extend.LqKhxx
.WhereIF(!string.IsNullOrEmpty(input.gzhzt), p => p.Gzhzt.Equals(input.gzhzt))
.WhereIF(!string.IsNullOrEmpty(input.wxnc), p => p.Wxnc.Contains(input.wxnc))
.WhereIF(!string.IsNullOrEmpty(input.wxxcxzt), p => p.Wxxcxzt.Equals(input.wxxcxzt))
- .WhereIF(!string.IsNullOrEmpty(input.khmqgs), p => p.Khmqgs.Equals(input.khmqgs))
.WhereIF(!string.IsNullOrEmpty(input.gsmd), p => p.Gsmd.Contains(input.gsmd))
.WhereIF(queryZcsj != null, p => p.Zcsj >= new DateTime(startZcsj.ToDate().Year, startZcsj.ToDate().Month, startZcsj.ToDate().Day, 0, 0, 0))
.WhereIF(queryZcsj != null, p => p.Zcsj <= new DateTime(endZcsj.ToDate().Year, endZcsj.ToDate().Month, endZcsj.ToDate().Day, 23, 59, 59))
@@ -321,7 +317,6 @@ namespace NCC.Extend.LqKhxx
wxnc = it.Wxnc,
wxxcxzt = it.Wxxcxzt,
zjdlsj = it.Zjdlsj,
- khmqgs = it.Khmqgs,
gsmd = it.Gsmd,
zcsj = it.Zcsj,
khlx = it.Khlx,
@@ -570,10 +565,10 @@ namespace NCC.Extend.LqKhxx
TotalPurchased = x.ProjectNumber,
ConsumedCount = SqlFunc.Subqueryable().Where(y => y.BillingItemId == x.Id).Sum(y => SqlFunc.ToDecimal(y.ProjectNumber)),
RefundedCount = SqlFunc.Subqueryable().Where(y => y.BillingItemId == x.Id).Sum(y => SqlFunc.ToDecimal(y.ProjectNumber)),
- RemainingCount =
- x.ProjectNumber
- - SqlFunc.Subqueryable().Where(y => y.BillingItemId == x.Id).Sum(y => SqlFunc.ToDecimal(y.ProjectNumber))
- - SqlFunc.Subqueryable().Where(y => y.BillingItemId == x.Id).Sum(y => SqlFunc.ToDecimal(y.ProjectNumber)),
+ })
+ .Mapper(x =>
+ {
+ x.RemainingCount = x.TotalPurchased - x.ConsumedCount - x.RefundedCount;
})
.ToListAsync();
return new MemberRemainingItemsOutput
@@ -590,5 +585,25 @@ namespace NCC.Extend.LqKhxx
}
}
#endregion
+
+ #region 获取会员类型枚举内容
+ ///
+ /// 获取会员类型枚举内容
+ ///
+ /// 扣款类型枚举列表
+ [HttpGet("deduct-types")]
+ public List GetDeductTypes()
+ {
+ return Enum.GetValues()
+ .Select(e => new EnumOutput
+ {
+ Value = (int)e,
+ Name = e.ToString(),
+ Description = e.GetDescription(),
+ })
+ .ToList();
+ }
+ #endregion
+
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
index d1026f3..912eceb 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
@@ -19,6 +19,7 @@ using NCC.Extend.Entitys.Dto.LqTkjlb;
using NCC.Extend.Entitys.lq_event;
using NCC.Extend.Entitys.lq_eventuser;
using NCC.Extend.Entitys.lq_khxx;
+using NCC.Extend.Entitys.lq_mdxx;
using NCC.Extend.Entitys.lq_ryzl;
using NCC.Extend.Entitys.lq_tkjlb;
using NCC.Extend.Interfaces.LqTkjlb;
@@ -145,14 +146,14 @@ namespace NCC.Extend.LqTkjlb
/// 参数
///
[HttpPost("")]
- public async Task Create([FromBody] LqTkjlbCrInput input)
+ public async Task Create([FromBody] LqTkjlbCrInput input)
{
var userInfo = await _userManager.GetUserInfo();
//通过input.dhhm去查询用户信息
var user = _db.Queryable().Where(u => u.Sjh == input.customerPhone).Any();
if (user)
{
- throw NCCException.Oh("该手机号码已存在于会员或线索池中");
+ return NCCException.Oh("该手机号码已存在于会员或线索池中");
}
// 使用事务确保数据一致性
var result = await _db.Ado.UseTranAsync(async () =>
@@ -179,18 +180,22 @@ namespace NCC.Extend.LqTkjlb
MemberInfo.Id = YitIdHelper.NextId().ToString();
MemberInfo.Khmc = entity.CustomerName;
MemberInfo.Sjh = input.customerPhone; // 设置手机号
- MemberInfo.Khmqgs = "线索池";
+ MemberInfo.Khlx = "线索";
MemberInfo.Dah = "GK" + DateTime.Now.ToString("yyyyMMddHHmmss");
var memberResult = await _db.Insertable(MemberInfo).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();
if (!(memberResult > 0))
+ {
throw NCCException.Oh("创建客户信息失败");
- return true;
+ }
+ var storeinfo = await _db.Queryable().Where(u => u.Id == eventUserInfo.StoreId).FirstAsync();
+ return new { entity = entity, storeinfo = storeinfo };
});
if (!result.IsSuccess)
{
- throw NCCException.Oh($"创建拓客记录失败:{result.ErrorMessage}");
+ return NCCException.Oh($"创建拓客记录失败:{result.ErrorMessage}");
}
+ return result.Data;
}
#endregion
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqYaoyjlService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqYaoyjlService.cs
index f2dee24..3a493e6 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqYaoyjlService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqYaoyjlService.cs
@@ -28,7 +28,7 @@ namespace NCC.Extend.LqYaoyjl
///
/// 邀约记录服务
///
- [ApiDescriptionSettings(Tag = "Extend",Name = "LqYaoyjl", Order = 200)]
+ [ApiDescriptionSettings(Tag = "Extend", Name = "LqYaoyjl", Order = 200)]
[Route("api/Extend/[controller]")]
public class LqYaoyjlService : ILqYaoyjlService, IDynamicApiController, ITransient
{
@@ -43,7 +43,7 @@ namespace NCC.Extend.LqYaoyjl
ISqlSugarRepository lqYaoyjlRepository,
IUserManager userManager)
{
- _lqYaoyjlRepository = lqYaoyjlRepository;
+ _lqYaoyjlRepository = lqYaoyjlRepository;
_db = _lqYaoyjlRepository.Context;
_userManager = userManager;
}
@@ -87,18 +87,18 @@ namespace NCC.Extend.LqYaoyjl
.WhereIF(queryLxsj != null, p => p.Lxsj >= new DateTime(startLxsj.ToDate().Year, startLxsj.ToDate().Month, startLxsj.ToDate().Day, 0, 0, 0))
.WhereIF(queryLxsj != null, p => p.Lxsj <= new DateTime(endLxsj.ToDate().Year, endLxsj.ToDate().Month, endLxsj.ToDate().Day, 23, 59, 59))
.WhereIF(!string.IsNullOrEmpty(input.lxjl), p => p.Lxjl.Contains(input.lxjl))
- .Select(it=> new LqYaoyjlListOutput
+ .Select(it => new LqYaoyjlListOutput
{
id = it.Id,
- yyr=it.Yyr,
- yysj=it.Yysj,
- yykh=it.Yykh,
- yykhxm=it.Yykhxm,
- dhsfyx=it.Dhsfyx,
- lxsj=it.Lxsj,
- lxjl=it.Lxjl,
- }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize);
- return PageResult.SqlSugarPageResult(data);
+ yyr = it.Yyr,
+ yysj = it.Yysj,
+ yykh = it.Yykh,
+ yykhxm = it.Yykhxm,
+ dhsfyx = it.Dhsfyx,
+ lxsj = it.Lxsj,
+ lxjl = it.Lxjl,
+ }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize);
+ return PageResult.SqlSugarPageResult(data);
}
///
@@ -142,18 +142,18 @@ namespace NCC.Extend.LqYaoyjl
.WhereIF(queryLxsj != null, p => p.Lxsj >= new DateTime(startLxsj.ToDate().Year, startLxsj.ToDate().Month, startLxsj.ToDate().Day, 0, 0, 0))
.WhereIF(queryLxsj != null, p => p.Lxsj <= new DateTime(endLxsj.ToDate().Year, endLxsj.ToDate().Month, endLxsj.ToDate().Day, 23, 59, 59))
.WhereIF(!string.IsNullOrEmpty(input.lxjl), p => p.Lxjl.Contains(input.lxjl))
- .Select(it=> new LqYaoyjlListOutput
+ .Select(it => new LqYaoyjlListOutput
{
id = it.Id,
- yyr=it.Yyr,
- yysj=it.Yysj,
- yykh=it.Yykh,
- yykhxm=it.Yykhxm,
- dhsfyx=it.Dhsfyx,
- lxsj=it.Lxsj,
- lxjl=it.Lxjl,
- }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync();
- return data;
+ yyr = it.Yyr,
+ yysj = it.Yysj,
+ yykh = it.Yykh,
+ yykhxm = it.Yykhxm,
+ dhsfyx = it.Dhsfyx,
+ lxsj = it.Lxsj,
+ lxjl = it.Lxjl,
+ }).MergeTable().OrderBy(sidx + " " + input.sort).ToListAsync();
+ return data;
}
///
@@ -175,7 +175,7 @@ namespace NCC.Extend.LqYaoyjl
{
exportData = await this.GetNoPagingList(input);
}
- List paramList = "[{\"value\":\"邀约编号\",\"field\":\"id\"},{\"value\":\"邀约人\",\"field\":\"yyr\"},{\"value\":\"邀约时间\",\"field\":\"yysj\"},{\"value\":\"邀约客户\",\"field\":\"yykh\"},{\"value\":\"邀约客户姓名\",\"field\":\"yykhxm\"},{\"value\":\"电话是否有效\",\"field\":\"dhsfyx\"},{\"value\":\"联系时间\",\"field\":\"lxsj\"},{\"value\":\"联系记录\",\"field\":\"lxjl\"},]".ToList();
+ List paramList = "[{\"value\":\"邀约编号\",\"field\":\"id\"},{\"value\":\"邀约人\",\"field\":\"yyr\"},{\"value\":\"邀约时间\",\"field\":\"yysj\"},{\"value\":\"邀约客户\",\"field\":\"yykh\"},{\"value\":\"邀约客户姓名\",\"field\":\"yykhxm\"},{\"value\":\"电话是否有效\",\"field\":\"dhsfyx\"},{\"value\":\"联系时间\",\"field\":\"lxsj\"},{\"value\":\"联系记录\",\"field\":\"lxjl\"},]".ToList();
ExcelConfig excelconfig = new ExcelConfig();
excelconfig.FileName = "邀约记录.xls";
excelconfig.HeadFont = "微软雅黑";
@@ -218,7 +218,7 @@ namespace NCC.Extend.LqYaoyjl
//开启事务
_db.BeginTran();
//批量删除邀约记录
- await _db.Deleteable().In(d => d.Id,ids).ExecuteCommandAsync();
+ await _db.Deleteable().In(d => d.Id, ids).ExecuteCommandAsync();
//关闭事务
_db.CommitTran();
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqYcsdJsjService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqYcsdJsjService.cs
index ad88e2f..8a180ce 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqYcsdJsjService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqYcsdJsjService.cs
@@ -180,13 +180,14 @@ namespace NCC.Extend.LqYcsdJsj
}
// 查询门店信息
var store = await _db.Queryable().Where(x => x.Id == jsj.Md).FirstAsync();
- return new
+ return new LqYcsdJsjByUserMonthOutput
{
jsjId = jsj.Id,
jsjName = jsj.Jsj,
month = jsj.Yf,
storeId = jsj.Md,
storeName = store?.Dm,
+ userId = jsjUser.UserId,
userName = jsjUser.UserName,
isLeader = jsjUser.IsLeader,
status = jsjUser.Status,
@@ -256,16 +257,16 @@ namespace NCC.Extend.LqYcsdJsj
return new LqYcsdJsjByUserMonthOutput
{
- JsjId = jsj.Id,
- JsjName = jsj.Jsj,
- Month = jsj.Yf,
- StoreId = jsj.Md,
- StoreName = store?.Dm,
- UserId = jsjUser.UserId,
- UserName = jsjUser.UserName,
- IsLeader = jsjUser.IsLeader,
- Status = jsjUser.Status,
- SortOrder = jsjUser.SortOrder,
+ jsjId = jsj.Id,
+ jsjName = jsj.Jsj,
+ month = jsj.Yf,
+ storeId = jsj.Md,
+ storeName = store?.Dm,
+ userId = jsjUser.UserId,
+ userName = jsjUser.UserName,
+ isLeader = jsjUser.IsLeader,
+ status = jsjUser.Status,
+ sortOrder = jsjUser.SortOrder,
};
}
#endregion
--
libgit2 0.21.4