diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/EventTypeEnumOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/Common/EnumOutput.cs
index 588f003..375b2a5 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/EventTypeEnumOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/Common/EnumOutput.cs
@@ -1,11 +1,9 @@
-using System.ComponentModel;
-
-namespace NCC.Extend.Entitys.Dto.LqEvent
+namespace NCC.Extend.Entitys.Dto.Common
{
///
- /// 拓客类型枚举输出
+ /// 通用枚举输出
///
- public class EventTypeEnumOutput
+ public class EnumOutput
{
///
/// 枚举值
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/LqEventUpInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/LqEventUpInput.cs
index 9db7cf4..21d67b6 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/LqEventUpInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/LqEventUpInput.cs
@@ -14,7 +14,7 @@ namespace NCC.Extend.Entitys.Dto.LqEvent
/// 主键ID
///
[Required(ErrorMessage = "活动ID不能为空")]
- public new int? Id { get; set; }
+ public new string Id { get; set; }
///
/// 活动名称
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/StoreTeamDataOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/StoreTeamDataOutput.cs
new file mode 100644
index 0000000..6052ff2
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/StoreTeamDataOutput.cs
@@ -0,0 +1,25 @@
+using System.Collections.Generic;
+
+namespace NCC.Extend.Entitys.Dto.LqEvent
+{
+ ///
+ /// 门店战队数据输出
+ ///
+ public class StoreTeamDataOutput
+ {
+ ///
+ /// 门店ID
+ ///
+ public string StoreId { get; set; }
+
+ ///
+ /// 门店名称
+ ///
+ public string StoreName { get; set; }
+
+ ///
+ /// 战队列表
+ ///
+ public List TeamList { get; set; } = new List();
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/TeamInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/TeamInfoOutput.cs
new file mode 100644
index 0000000..8d9f78c
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/TeamInfoOutput.cs
@@ -0,0 +1,20 @@
+using System.Collections.Generic;
+
+namespace NCC.Extend.Entitys.Dto.LqEvent
+{
+ ///
+ /// 战队信息输出
+ ///
+ public class TeamInfoOutput
+ {
+ ///
+ /// 战队名称
+ ///
+ public string TeamName { get; set; }
+
+ ///
+ /// 战队用户信息列表
+ ///
+ public List TeamUserInfo { get; set; } = new List();
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/TeamUserInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/TeamUserInfoOutput.cs
new file mode 100644
index 0000000..98ab6bb
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/TeamUserInfoOutput.cs
@@ -0,0 +1,30 @@
+using System;
+
+namespace NCC.Extend.Entitys.Dto.LqEvent
+{
+ ///
+ /// 战队用户信息输出
+ ///
+ public class TeamUserInfoOutput
+ {
+ ///
+ /// 拓客用户ID
+ ///
+ public string ExpansionUserId { get; set; }
+
+ ///
+ /// 拓客用户姓名
+ ///
+ public string ExpansionUserName { get; set; }
+
+ ///
+ /// 拓客数量
+ ///
+ public int ExpansionCount { get; set; }
+
+ ///
+ /// 活动目标
+ ///
+ public int EventTarget { get; set; }
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEventUser/LqEventUserCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEventUser/LqEventUserCrInput.cs
index 48f73cc..8d6c268 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEventUser/LqEventUserCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEventUser/LqEventUserCrInput.cs
@@ -42,6 +42,6 @@ namespace NCC.Extend.Entitys.Dto.LqEventUser
///
/// 目标张数
///
- public int? TargetCount { get; set; }
+ public int TargetCount { get; set; } = 0;
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkHytk/LqHytkHytkCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkHytk/LqHytkHytkCrInput.cs
index ddc69d9..5765211 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkHytk/LqHytkHytkCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkHytk/LqHytkHytkCrInput.cs
@@ -95,15 +95,5 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk
/// 退卡品项明细列表
///
public List lqHytkMxList { get; set; }
-
- ///
- /// 退卡健康师业绩列表
- ///
- public List lqHytkJksyjList { get; set; }
-
- ///
- /// 退卡科技部老师业绩列表
- ///
- public List lqHytkKjbsyjList { get; set; }
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxCrInput.cs
index 7f73fc3..e7c406d 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxCrInput.cs
@@ -16,9 +16,14 @@ namespace NCC.Extend.Entitys.Dto.LqHytkMx
public string id { get; set; }
///
- /// 关联退卡编号
+ /// 关联退卡Id
///
- public string gltkbh { get; set; }
+ public string refundInfoId { get; set; }
+
+ ///
+ /// 退卡记录Id
+ ///
+ public string billingItemId { get; set; }
///
/// 品项
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxInfoOutput.cs
index c462028..c4628e7 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxInfoOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkMx/LqHytkMxInfoOutput.cs
@@ -16,9 +16,14 @@ namespace NCC.Extend.Entitys.Dto.LqHytkMx
public string id { get; set; }
///
- /// 关联退卡编号
+ /// 关联退卡Id
///
- public string gltkbh { get; set; }
+ public string refundInfoId { get; set; }
+
+ ///
+ /// 退卡记录Id
+ ///
+ public string billingItemId { get; set; }
///
/// 品项编号
@@ -43,22 +48,22 @@ namespace NCC.Extend.Entitys.Dto.LqHytkMx
///
/// 项目次数
///
- public int? F_ProjectNumber { get; set; }
+ public int projectNumber { get; set; }
///
/// 是否有效
///
- public int? F_IsEnabled { get; set; }
+ public int isEnabled { get; set; }
///
/// 来源类型(开卡/赠送/其他)
///
- public string F_SourceType { get; set; }
+ public string sourceType { get; set; }
///
/// 合计金额(品项价格 × 项目次数)
///
- public decimal? F_TotalPrice { get; set; }
+ public decimal? totalPrice { get; set; }
///
/// 健康师业绩列表
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoCrInput.cs
new file mode 100644
index 0000000..1c76346
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoCrInput.cs
@@ -0,0 +1,36 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+
+namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
+{
+ ///
+ /// 开单扣减信息创建输入
+ ///
+ public class LqKdDeductinfoCrInput
+ {
+ ///
+ /// 扣减类型
+ ///
+ [Required(ErrorMessage = "扣减类型不能为空")]
+ public int? DeductType { get; set; }
+
+ ///
+ /// 扣减关联ID
+ ///
+ [Required(ErrorMessage = "扣减关联ID不能为空")]
+ public string DeductId { get; set; }
+
+ ///
+ /// 开单id
+ ///
+ [Required(ErrorMessage = "开单id不能为空")]
+ public string BillingId { get; set; }
+
+ ///
+ /// 合计金额
+ ///
+ [Required(ErrorMessage = "合计金额不能为空")]
+ [Range(0.01, 999999.99, ErrorMessage = "合计金额必须在0.01到999999.99之间")]
+ public decimal? Amount { get; set; }
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoInfoOutput.cs
new file mode 100644
index 0000000..29ef734
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoInfoOutput.cs
@@ -0,0 +1,40 @@
+using System;
+
+namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
+{
+ ///
+ /// 开单扣减信息详情输出
+ ///
+ public class LqKdDeductinfoInfoOutput
+ {
+ ///
+ /// 主键
+ ///
+ public string Id { get; set; }
+
+ ///
+ /// 扣减类型
+ ///
+ public int? DeductType { get; set; }
+
+ ///
+ /// 扣减类型名称
+ ///
+ public string DeductTypeName { get; set; }
+
+ ///
+ /// 扣减关联ID
+ ///
+ public string DeductId { get; set; }
+
+ ///
+ /// 开单id
+ ///
+ public string BillingId { get; set; }
+
+ ///
+ /// 合计金额
+ ///
+ public decimal? Amount { get; set; }
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoListOutput.cs
new file mode 100644
index 0000000..fcd8bcf
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoListOutput.cs
@@ -0,0 +1,40 @@
+using System;
+
+namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
+{
+ ///
+ /// 开单扣减信息列表输出
+ ///
+ public class LqKdDeductinfoListOutput
+ {
+ ///
+ /// 主键
+ ///
+ public string Id { get; set; }
+
+ ///
+ /// 扣减类型
+ ///
+ public int? DeductType { get; set; }
+
+ ///
+ /// 扣减类型名称
+ ///
+ public string DeductTypeName { get; set; }
+
+ ///
+ /// 扣减关联ID
+ ///
+ public string DeductId { get; set; }
+
+ ///
+ /// 开单id
+ ///
+ public string BillingId { get; set; }
+
+ ///
+ /// 合计金额
+ ///
+ public decimal? Amount { get; set; }
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoListQueryInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoListQueryInput.cs
new file mode 100644
index 0000000..6565663
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoListQueryInput.cs
@@ -0,0 +1,35 @@
+using System;
+
+namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
+{
+ ///
+ /// 开单扣减信息列表查询输入
+ ///
+ public class LqKdDeductinfoListQueryInput
+ {
+ ///
+ /// 扣减类型
+ ///
+ public int? DeductType { get; set; }
+
+ ///
+ /// 扣减关联ID
+ ///
+ public string DeductId { get; set; }
+
+ ///
+ /// 开单id
+ ///
+ public string BillingId { get; set; }
+
+ ///
+ /// 最小金额
+ ///
+ public decimal? MinAmount { get; set; }
+
+ ///
+ /// 最大金额
+ ///
+ public decimal? MaxAmount { get; set; }
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoUpInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoUpInput.cs
new file mode 100644
index 0000000..e309233
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoUpInput.cs
@@ -0,0 +1,17 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+
+namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
+{
+ ///
+ /// 开单扣减信息更新输入
+ ///
+ public class LqKdDeductinfoUpInput : LqKdDeductinfoCrInput
+ {
+ ///
+ /// 主键
+ ///
+ [Required(ErrorMessage = "主键不能为空")]
+ public string Id { 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 18162ef..481ba5d 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
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using NCC.Common.Model;
+using NCC.Extend.Entitys.Dto.LqKdDeductinfo;
namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
{
@@ -150,6 +151,11 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
public string F_FIleUrl { get; set; }
///
+ /// 扣款信息
+ ///
+ public List lqKdKdjlbDeductList { get; set; }
+
+ ///
/// 开单_品项明细
///
public List lqKdPxmxList { get; set; }
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbCrInput.cs
index cbbfd13..3c4515a 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbCrInput.cs
@@ -16,42 +16,42 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb
///
/// 拓客时间
///
- public DateTime? tksj { get; set; }
+ public DateTime expansionTime { get; set; }
+
+ ///
+ /// 拓客人员
+ ///
+ public string expansionUserId { get; set; }
///
/// 顾客姓名
///
- public string gkxm { get; set; }
+ public string customerName { get; set; }
///
- /// 电话号码
+ /// 顾客电话号码
///
- public string dhhm { get; set; }
+ public string customerPhone { get; set; }
///
/// 购买张数
///
- public int? gmzs { get; set; }
+ public int buyNumber { get; set; }
///
/// 支付方式
///
- public string zffs { get; set; }
+ public string paymentMethod { get; set; }
///
/// 是否加微信
///
- public string sfjwx { get; set; }
+ public string isAddWeChat { get; set; }
///
/// 备注
///
- public string bz { get; set; }
-
- ///
- /// 拓客人员
- ///
- public string tkry { get; set; }
+ public string remarks { get; set; }
///
/// 拓客活动id
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbInfoOutput.cs
index f056394..0ec4db3 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbInfoOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbInfoOutput.cs
@@ -16,52 +16,57 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb
///
/// 拓客时间
///
- public DateTime? tksj { get; set; }
+ public DateTime expansionTime { get; set; }
///
/// 拓客人员
///
- public string tkry { get; set; }
+ public string expansionUserId { get; set; }
+
+ ///
+ /// 拓客人员
+ ///
+ public string expansionUserName { get; set; }
///
/// 顾客姓名
///
- public string gkxm { get; set; }
+ public string customerName { get; set; }
///
- /// 电话号码
+ /// 顾客电话号码
///
- public string dhhm { get; set; }
+ public string customerPhone { get; set; }
///
/// 购买张数
///
- public int? gmzs { get; set; }
+ public int buyNumber { get; set; }
///
/// 支付方式
///
- public string zffs { get; set; }
+ public string paymentMethod { get; set; }
///
/// 是否加微信
///
- public string sfjwx { get; set; }
+ public string isAddWeChat { get; set; }
///
/// 备注
///
- public string bz { get; set; }
+ public string remarks { get; set; }
///
- /// 所属门店
+ /// 所属门店ID
///
- public string ssmd { get; set; }
+ public string storeId { get; set; }
///
/// 所属战队
///
- public string sszd { get; set; }
+ public string teamName { get; set; }
///
/// 拓客活动id
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbListOutput.cs
index abfa230..a70ae5a 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbListOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbListOutput.cs
@@ -15,52 +15,57 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb
///
/// 拓客时间
///
- public DateTime? tksj { get; set; }
+ public DateTime expansionTime { get; set; }
///
/// 拓客人员
///
- public string tkry { get; set; }
+ public string expansionUserId { get; set; }
+
+ ///
+ /// 拓客人员
+ ///
+ public string expansionUserName { get; set; }
///
/// 顾客姓名
///
- public string gkxm { get; set; }
+ public string customerName { get; set; }
///
- /// 电话号码
+ /// 顾客电话号码
///
- public string dhhm { get; set; }
+ public string customerPhone { get; set; }
///
/// 购买张数
///
- public int? gmzs { get; set; }
+ public int buyNumber { get; set; }
///
/// 支付方式
///
- public string zffs { get; set; }
+ public string paymentMethod { get; set; }
///
/// 是否加微信
///
- public string sfjwx { get; set; }
+ public string isAddWeChat { get; set; }
///
/// 备注
///
- public string bz { get; set; }
+ public string remarks { get; set; }
///
- /// 所属门店
+ /// 所属门店ID
///
- public string ssmd { get; set; }
+ public string storeId { get; set; }
///
/// 所属战队
///
- public string sszd { get; set; }
+ public string teamName { get; set; }
///
/// 拓客活动id
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbListQueryInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbListQueryInput.cs
index 910eda6..a38de1b 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbListQueryInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbListQueryInput.cs
@@ -1,5 +1,5 @@
-using NCC.Common.Filter;
-using System.Collections.Generic;
+using System.Collections.Generic;
+using NCC.Common.Filter;
namespace NCC.Extend.Entitys.Dto.LqTkjlb
{
@@ -14,65 +14,68 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb
public string selectKey { get; set; }
///
- ///
+ ///
///
public int dataType { get; set; }
-
///
/// 拓客编号
///
public string id { get; set; }
-
+
///
/// 拓客时间
///
- public string tksj { get; set; }
-
+ public string expansionTime { get; set; }
+
///
/// 拓客人员
///
- public string tkry { get; set; }
-
+ public string expansionUserId { get; set; }
+
///
/// 顾客姓名
///
- public string gkxm { get; set; }
-
+ public string customerName { get; set; }
+
///
- /// 电话号码
+ /// 顾客电话号码
///
- public string dhhm { get; set; }
-
+ public string customerPhone { get; set; }
+
///
/// 购买张数
///
- public string gmzs { get; set; }
-
+ public string buyNumber { get; set; }
+
///
/// 支付方式
///
- public string zffs { get; set; }
-
+ public string paymentMethod { get; set; }
+
///
/// 是否加微信
///
- public string sfjwx { get; set; }
-
+ public string isAddWeChat { get; set; }
+
///
/// 备注
///
- public string bz { get; set; }
-
+ public string remarks { get; set; }
+
///
- /// 所属门店
+ /// 拓客活动id
///
- public string ssmd { get; set; }
-
+ public string eventId { get; set; }
+
+ ///
+ /// 所属门店ID
+ ///
+ public string storeId { get; set; }
+
///
/// 所属战队
///
- public string sszd { get; set; }
-
+ public string teamName { get; set; }
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbRankingOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbRankingOutput.cs
index 5672845..f8ee7cc 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbRankingOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbRankingOutput.cs
@@ -10,13 +10,13 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb
///
/// 所属战队
///
- public string sszd { get; set; }
-
+ public string teamName { get; set; }
+
///
/// 拓客人数
///
- public int tkrs { get; set; }
-
+ public int expansionUserCount { get; set; }
+
///
/// 排名
///
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs
index 32fe5e6..e3c80f8 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs
@@ -13,71 +13,70 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
/// 耗卡编号
///
public string id { get; set; }
-
+
///
/// 门店
///
public string md { get; set; }
-
+
///
/// 门店编号
///
public string mdbh { get; set; }
-
+
///
/// 门店名称
///
public string mdmc { get; set; }
-
+
///
/// 会员
///
public string hy { get; set; }
-
+
///
/// 会员账号
///
public string hyzh { get; set; }
-
+
///
/// 会员名称
///
public string hymc { get; set; }
-
+
///
/// 顾客类型
///
public string gklx { get; set; }
-
+
///
/// 消费金额
///
public string xfje { get; set; }
-
+
///
/// 手工费用
///
public string sgfy { get; set; }
-
+
///
/// 是否有科技部
///
public string sfykjb { get; set; }
-
+
///
/// 耗卡时间
///
public DateTime? hksj { get; set; }
-
+
///
/// 操作人员
///
public string czry { get; set; }
-
+
///
/// 耗卡_品项明细
///
public List lqXhPxmxList { get; set; }
-
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/MemberRemainingItemsOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/MemberRemainingItemsOutput.cs
index 0038e88..83144e0 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/MemberRemainingItemsOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/MemberRemainingItemsOutput.cs
@@ -17,13 +17,13 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
///
/// GK2025022100004
public string MemberId { get; set; }
-
+
///
/// 会员姓名
///
/// 张三
public string MemberName { get; set; }
-
+
///
/// 剩余品项列表
///
@@ -41,51 +41,56 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
public class RemainingItemInfo
{
///
+ /// 开单品项id
+ ///
+ public string BillingItemId { get; set; }
+
+ ///
/// 品项ID
///
/// 94
public string ItemId { get; set; }
-
+
///
/// 品项名称
///
/// 胶原宝宝-单部位
public string ItemName { get; set; }
-
+
///
/// 品项单价
///
/// 100.00
public decimal ItemPrice { get; set; }
-
+
///
/// 来源类型
///
/// 品项的来源类型,用于区分相同品项的不同来源
/// 开卡
public string SourceType { get; set; }
-
+
///
/// 总购买数量
///
/// 该品项的总购买次数
/// 3
public decimal TotalPurchased { get; set; }
-
+
///
/// 已耗卡数量
///
/// 该品项已消费的次数
/// 1
public decimal ConsumedCount { get; set; }
-
+
///
/// 已退卡数量
///
/// 该品项已退卡的次数
/// 0
public decimal RefundedCount { get; set; }
-
+
///
/// 剩余数量
///
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxCrInput.cs
index 4801ba6..5165762 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxCrInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxCrInput.cs
@@ -14,9 +14,9 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx
public string id { get; set; }
///
- /// 关联开单编号
+ /// 开单品项明细表id
///
- public string glkdbh { get; set; }
+ public string billingItemId { get; set; }
///
/// 品项
@@ -34,11 +34,6 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx
public decimal pxjg { get; set; }
///
- /// 是否赠送
- ///
- public string xfzs { get; set; }
-
- ///
/// 会员id
///
public string memberId { get; set; }
@@ -78,4 +73,4 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx
///
public List lqXhKjbsyjList { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxInfoOutput.cs
index bd7a991..d203e31 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxInfoOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxInfoOutput.cs
@@ -16,9 +16,14 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx
public string id { get; set; }
///
- /// 关联耗卡编号
+ /// 耗卡记录ID
///
- public string glkdbh { get; set; }
+ public string consumeInfoId { get; set; }
+
+ ///
+ /// 开单品项明细表id
+ ///
+ public string billingItemId { get; set; }
///
/// 品项编号
@@ -36,11 +41,6 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx
public decimal pxjg { get; set; }
///
- /// 是否赠送
- ///
- public string xfzs { get; set; }
-
- ///
/// 会员ID
///
public string memberId { get; set; }
@@ -80,4 +80,4 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx
///
public List lqXhKjbsyjList { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_mx/LqHytkMxEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_mx/LqHytkMxEntity.cs
index 928de33..303ed67 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_mx/LqHytkMxEntity.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_mx/LqHytkMxEntity.cs
@@ -1,6 +1,7 @@
-using NCC.Common.Const;
+using System;
+using NCC.Common.Const;
+using NCC.Extend.Entitys.Enum;
using SqlSugar;
-using System;
namespace NCC.Extend.Entitys.lq_hytk_mx
{
@@ -16,90 +17,95 @@ namespace NCC.Extend.Entitys.lq_hytk_mx
///
[SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
public string Id { get; set; }
-
+
///
- /// 关联退卡编号
+ /// 关联退卡Id
///
- [SugarColumn(ColumnName = "gltkbh")]
- public string Gltkbh { get; set; }
-
+ [SugarColumn(ColumnName = "F_RefundInfoId")]
+ public string RefundInfoId { get; set; }
+
+ ///
+ /// 退卡记录Id
+ ///
+ [SugarColumn(ColumnName = "F_BillingItemId")]
+ public string BillingItemId { get; set; }
+
///
/// 品项
///
- [SugarColumn(ColumnName = "px")]
+ [SugarColumn(ColumnName = "px")]
public string Px { get; set; }
-
+
///
/// 品项名称
///
- [SugarColumn(ColumnName = "pxmc")]
+ [SugarColumn(ColumnName = "pxmc")]
public string Pxmc { get; set; }
-
+
///
/// 品项价格
///
- [SugarColumn(ColumnName = "pxjg")]
+ [SugarColumn(ColumnName = "pxjg")]
public decimal? Pxjg { get; set; }
-
+
///
/// 退款金额
///
- [SugarColumn(ColumnName = "tkje")]
+ [SugarColumn(ColumnName = "tkje")]
public decimal? Tkje { get; set; }
-
+
///
/// 项目次数
///
- [SugarColumn(ColumnName = "F_ProjectNumber")]
- public int? F_ProjectNumber { get; set; }
-
+ [SugarColumn(ColumnName = "F_ProjectNumber")]
+ public int ProjectNumber { get; set; }
+
///
/// 是否有效
///
- [SugarColumn(ColumnName = "F_IsEnabled")]
- public int? F_IsEnabled { get; set; }
-
+ [SugarColumn(ColumnName = "F_IsEnabled")]
+ public int IsEnabled { get; set; } = StatusEnum.有效.GetHashCode();
+
///
/// 来源类型
///
- [SugarColumn(ColumnName = "F_SourceType")]
- public string F_SourceType { get; set; }
-
+ [SugarColumn(ColumnName = "F_SourceType")]
+ public string SourceType { get; set; }
+
///
/// 合计金额
///
- [SugarColumn(ColumnName = "F_TotalPrice")]
- public decimal? F_TotalPrice { get; set; }
-
+ [SugarColumn(ColumnName = "F_TotalPrice")]
+ public decimal? TotalPrice { get; set; }
+
///
/// 创建时间
///
- [SugarColumn(ColumnName = "F_CreateTime")]
- public DateTime? F_CreateTime { get; set; }
-
+ [SugarColumn(ColumnName = "F_CreateTime")]
+ public DateTime? CreateTime { get; set; }
+
///
/// 创建用户
///
- [SugarColumn(ColumnName = "F_CreateUser")]
- public string F_CreateUser { get; set; }
-
+ [SugarColumn(ColumnName = "F_CreateUser")]
+ public string CreateUser { get; set; }
+
///
/// 修改时间
///
- [SugarColumn(ColumnName = "F_ModifyTime")]
- public DateTime? F_ModifyTime { get; set; }
-
+ [SugarColumn(ColumnName = "F_ModifyTime")]
+ public DateTime? ModifyTime { get; set; }
+
///
/// 修改用户
///
- [SugarColumn(ColumnName = "F_ModifyUser")]
- public string F_ModifyUser { get; set; }
-
+ [SugarColumn(ColumnName = "F_ModifyUser")]
+ public string ModifyUser { get; set; }
+
///
/// 删除标记
///
- [SugarColumn(ColumnName = "F_DeleteMark")]
- public int? F_DeleteMark { get; set; }
-
+ [SugarColumn(ColumnName = "F_DeleteMark")]
+ public int? DeleteMark { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_deductinfo/LqKdDeductinfoEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_deductinfo/LqKdDeductinfoEntity.cs
new file mode 100644
index 0000000..22a02eb
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_deductinfo/LqKdDeductinfoEntity.cs
@@ -0,0 +1,44 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+using SqlSugar;
+
+namespace NCC.Extend.Entitys.lq_kd_deductinfo
+{
+ ///
+ /// 开单扣减信息表
+ ///
+ [SugarTable("lq_kd_deductinfo")]
+ public class LqKdDeductinfoEntity
+ {
+ ///
+ /// 主键
+ ///
+ [SugarColumn(IsPrimaryKey = true, ColumnName = "F_Id")]
+ public string Id { get; set; }
+
+ ///
+ /// 扣减类型
+ ///
+ [SugarColumn(ColumnName = "F_DeductType")]
+ public int? DeductType { get; set; }
+
+ ///
+ /// 扣减关联ID
+ ///
+ [SugarColumn(ColumnName = "F_DeductId")]
+ public string DeductId { get; set; }
+
+ ///
+ /// 开单id
+ ///
+ [SugarColumn(ColumnName = "F_BillingId")]
+ [Required]
+ public string BillingId { get; set; }
+
+ ///
+ /// 合计金额
+ ///
+ [SugarColumn(ColumnName = "F_Amount")]
+ public decimal? Amount { get; set; }
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_tkjlb/LqTkjlbEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_tkjlb/LqTkjlbEntity.cs
index 61b05fd..e668938 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_tkjlb/LqTkjlbEntity.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_tkjlb/LqTkjlbEntity.cs
@@ -18,50 +18,50 @@ namespace NCC.Extend.Entitys.lq_tkjlb
///
/// 拓客时间
///
- [SugarColumn(ColumnName = "tksj")]
- public DateTime? Tksj { get; set; }
+ [SugarColumn(ColumnName = "F_ExpansionTime")]
+ public DateTime ExpansionTime { get; set; }
///
/// 拓客人员
///
- [SugarColumn(ColumnName = "tkry")]
- public string Tkry { get; set; }
+ [SugarColumn(ColumnName = "F_ExpansionUserId")]
+ public string ExpansionUserId { get; set; }
///
/// 顾客姓名
///
- [SugarColumn(ColumnName = "gkxm")]
- public string Gkxm { get; set; }
+ [SugarColumn(ColumnName = "F_CustomerName")]
+ public string CustomerName { get; set; }
///
- /// 电话号码
+ /// 顾客电话号码
///
- [SugarColumn(ColumnName = "dhhm")]
- public string Dhhm { get; set; }
+ [SugarColumn(ColumnName = "F_CustomerPhone")]
+ public string CustomerPhone { get; set; }
///
/// 购买张数
///
- [SugarColumn(ColumnName = "gmzs")]
- public int? Gmzs { get; set; }
+ [SugarColumn(ColumnName = "F_BuyNumber")]
+ public int BuyNumber { get; set; } = 0;
///
/// 支付方式
///
- [SugarColumn(ColumnName = "zffs")]
- public string Zffs { get; set; }
+ [SugarColumn(ColumnName = "F_PaymentMethod")]
+ public string PaymentMethod { get; set; }
///
/// 是否加微信
///
- [SugarColumn(ColumnName = "sfjwx")]
- public string Sfjwx { get; set; }
+ [SugarColumn(ColumnName = "F_IsAddWeChat")]
+ public string IsAddWeChat { get; set; }
///
/// 备注
///
- [SugarColumn(ColumnName = "bz")]
- public string Bz { get; set; }
+ [SugarColumn(ColumnName = "F_Remarks")]
+ public string Remarks { get; set; }
///
/// 拓客活动id
@@ -70,15 +70,27 @@ namespace NCC.Extend.Entitys.lq_tkjlb
public string EventId { get; set; }
///
- /// 所属组织
+ /// 所属门店ID
///
- [SugarColumn(ColumnName = "ssmd")]
- public string Ssmd { get; set; }
+ [SugarColumn(ColumnName = "F_StoreId")]
+ public string StoreId { get; set; }
///
/// 所属战队
///
- [SugarColumn(ColumnName = "sszd")]
- public string Sszd { get; set; }
+ [SugarColumn(ColumnName = "F_TeamName")]
+ public string TeamName { get; set; }
+
+ ///
+ /// 所属部门id
+ ///
+ [SugarColumn(ColumnName = "F_DepId")]
+ public string DepId { get; set; }
+
+ ///
+ /// 添加时间
+ ///
+ [SugarColumn(ColumnName = "F_CreateTime")]
+ public DateTime CreateTime { get; set; } = DateTime.Now;
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_pxmx/LqXhPxmxEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_pxmx/LqXhPxmxEntity.cs
index f424831..9af0701 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_pxmx/LqXhPxmxEntity.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_pxmx/LqXhPxmxEntity.cs
@@ -1,6 +1,6 @@
-using NCC.Common.Const;
+using System;
+using NCC.Common.Const;
using SqlSugar;
-using System;
namespace NCC.Extend.Entitys.lq_xh_pxmx
{
@@ -16,71 +16,71 @@ namespace NCC.Extend.Entitys.lq_xh_pxmx
///
[SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
public string Id { get; set; }
-
+
///
- /// 关联开单编号
+ /// 耗卡记录ID
///
- [SugarColumn(ColumnName = "glkdbh")]
- public string Glkdbh { get; set; }
-
+ [SugarColumn(ColumnName = "F_ConsumeInfoId")]
+ public string ConsumeInfoId { get; set; }
+
+ ///
+ /// 开单品项明细表id
+ ///
+ [SugarColumn(ColumnName = "F_BillingItemId")]
+ public string BillingItemId { get; set; }
+
///
/// 品项
///
- [SugarColumn(ColumnName = "px")]
+ [SugarColumn(ColumnName = "px")]
public string Px { get; set; }
-
+
///
/// 品项名称
///
- [SugarColumn(ColumnName = "pxmc")]
+ [SugarColumn(ColumnName = "pxmc")]
public string Pxmc { get; set; }
-
+
///
/// 品项价格
///
- [SugarColumn(ColumnName = "pxjg")]
+ [SugarColumn(ColumnName = "pxjg")]
public decimal Pxjg { get; set; }
///
- /// 是否赠送
- ///
- [SugarColumn(ColumnName = "xfzs")]
- public string Xfzs { get; set; }
-
- ///
/// 会员id
///
- [SugarColumn(ColumnName = "F_MemberId")]
+ [SugarColumn(ColumnName = "F_MemberId")]
public string MemberId { get; set; }
///
/// 创建时间
///
- [SugarColumn(ColumnName = "F_CreateTIme")]
+ [SugarColumn(ColumnName = "F_CreateTIme")]
public DateTime? CreateTIme { get; set; }
///
/// 项目次数
///
- [SugarColumn(ColumnName = "F_ProjectNumber")]
- public int? ProjectNumber { get; set; }
+ [SugarColumn(ColumnName = "F_ProjectNumber")]
+ public int ProjectNumber { get; set; }
///
/// 是否有效
///
- [SugarColumn(ColumnName = "F_IsEnabled")]
+ [SugarColumn(ColumnName = "F_IsEnabled")]
public int? IsEnabled { get; set; }
///
/// 来源类型
///
- [SugarColumn(ColumnName = "F_SourceType")]
+ [SugarColumn(ColumnName = "F_SourceType")]
public string SourceType { get; set; }
///
/// 合计金额
///
- [SugarColumn(ColumnName = "F_TotalPrice")]
+ [SugarColumn(ColumnName = "F_TotalPrice")]
public decimal TotalPrice { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/DeductTypeEnum.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/DeductTypeEnum.cs
new file mode 100644
index 0000000..d9e4b7e
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/DeductTypeEnum.cs
@@ -0,0 +1,28 @@
+using System.ComponentModel;
+
+namespace NCC.Extend.Entitys.Enum
+{
+ ///
+ /// 扣款类型
+ ///
+ public enum DeductTypeEnum
+ {
+ ///
+ /// 储值卡
+ ///
+ [Description("储值卡")]
+ 储值卡 = 1,
+
+ ///
+ /// 扣项
+ ///
+ [Description("扣项")]
+ 扣项 = 2,
+
+ ///
+ /// 套餐
+ ///
+ [Description("套餐")]
+ 套餐 = 3,
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/StatusEnum.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/StatusEnum.cs
new file mode 100644
index 0000000..c71b3da
--- /dev/null
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/StatusEnum.cs
@@ -0,0 +1,28 @@
+using System.ComponentModel;
+
+namespace NCC.Extend.Entitys.Enum
+{
+ ///
+ /// 状态枚举
+ ///
+ public enum StatusEnum
+ {
+ ///
+ /// 有效
+ ///
+ [Description("有效")]
+ 有效 = 0,
+
+ ///
+ /// 无效
+ ///
+ [Description("无效")]
+ 无效 = 1,
+
+ ///
+ /// 删除
+ ///
+ [Description("删除")]
+ 删除 = 99,
+ }
+}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs
index 9e97358..e3c1db6 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs
@@ -9,16 +9,19 @@ using Mapster;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NCC.Common.Core.Manager;
+using NCC.Common.Extension;
using NCC.Common.Filter;
using NCC.Common.Helper;
using NCC.Dependency;
using NCC.DynamicApiController;
+using NCC.Extend.Entitys.Dto.Common;
using NCC.Extend.Entitys.Dto.LqEvent;
using NCC.Extend.Entitys.Dto.LqEventUser;
using NCC.Extend.Entitys.Enum;
using NCC.Extend.Entitys.lq_event;
using NCC.Extend.Entitys.lq_eventuser;
using NCC.Extend.Entitys.lq_mdxx;
+using NCC.Extend.Entitys.lq_tkjlb;
using NCC.Extend.Interfaces.LqEvent;
using NCC.FriendlyException;
using NCC.System.Entitys.Permission;
@@ -136,13 +139,36 @@ namespace NCC.Extend.LqEvent
throw NCCException.Oh("拓客活动不存在");
}
- var output = entity.Adapt();
-
- // 2. 获取拓客活动成员信息
- var members = await _db.Queryable().Where(u => u.EventId == id.ToString()).ToListAsync();
-
- // 3. 转换为输出格式
- output.Members = members.Adapt>();
+ // 2. 手动映射到输出格式
+ var output = new LqEventInfoOutput
+ {
+ id = entity.Id,
+ eventName = entity.EventName,
+ startTime = entity.StartTime,
+ endTime = entity.EndTime,
+ eventCoordinator = entity.EventCoordinator,
+ eventNumber = entity.EventNumber,
+ eventType = entity.EventType,
+ };
+
+ // 3. 获取拓客活动成员信息
+ var members = await _db.Queryable().Where(u => u.EventId == id).ToListAsync();
+
+ // 4. 手动映射成员信息
+ output.Members = members
+ .Select(m => new LqEventUserInfoOutput
+ {
+ id = m.Id,
+ eventId = m.EventId,
+ userId = m.UserId,
+ depId = m.DepId,
+ teamName = m.TeamName,
+ creationTime = m.CreationTime,
+ creationUser = m.CreationUser,
+ targetCount = m.EventTarget,
+ storeId = m.StoreId,
+ })
+ .ToList();
return output;
}
@@ -233,6 +259,7 @@ namespace NCC.Extend.LqEvent
CreationTime = DateTime.Now,
CreationUser = userInfo?.userName,
StoreId = member.StoreId,
+ EventTarget = member.TargetCount,
}
);
}
@@ -325,6 +352,7 @@ namespace NCC.Extend.LqEvent
CreationTime = DateTime.Now,
CreationUser = userInfo?.userName,
StoreId = member.StoreId,
+ EventTarget = member.TargetCount,
}
);
}
@@ -503,6 +531,188 @@ namespace NCC.Extend.LqEvent
}
#endregion
+ #region 根据用户ID获取当前参与的拓客活动
+ ///
+ /// 根据用户ID获取当前参与的拓客活动列表
+ ///
+ ///
+ /// 根据用户ID查询当前正在进行的拓客活动信息
+ /// 返回用户参与的所有活动详情,包括活动基本信息、用户目标、门店信息等
+ /// 如果没有当前活动,返回空列表
+ ///
+ /// 示例请求:
+ /// ```json
+ /// GET /api/Extend/LqEvent/user/{userId}/current
+ /// ```
+ ///
+ /// 参数说明:
+ /// - userId: 用户ID,必填参数
+ ///
+ /// 返回信息包括:
+ /// - 活动基本信息(ID、名称、编号、负责人、时间)
+ /// - 用户参与信息(用户ID、部门ID、战队名称、目标数量)
+ /// - 门店信息(门店ID、门店名称)
+ /// - 创建信息(创建时间、创建用户)
+ ///
+ /// 用户ID
+ /// 用户当前参与的拓客活动列表,无活动时返回空列表
+ /// 成功返回活动列表(可能为空)
+ /// 参数错误,用户ID不能为空
+ [HttpGet("user/{userId}/current")]
+ public async Task GetCurrentEvent(string userId)
+ {
+ if (string.IsNullOrEmpty(userId))
+ {
+ throw NCCException.Oh("用户ID不能为空");
+ }
+ try
+ {
+ var currentTime = DateTime.Now;
+ // 先检查用户是否有活动记录
+ var userEventCount = await _db.Queryable().Where(eu => eu.UserId == userId).CountAsync();
+ if (userEventCount == 0)
+ {
+ return null;
+ }
+ // 使用内存合并的方式,避免复杂的SqlFunc问题
+ // 1. 查询用户参与的活动信息
+ var userEvents = await _db.Queryable().Where(eventUser => eventUser.UserId == userId).ToListAsync();
+
+ if (userEvents == null || userEvents.Count == 0)
+ {
+ return new List();
+ }
+
+ // 2. 查询当前正在进行的活动详情
+ var eventIds = userEvents.Select(u => u.EventId).ToList();
+ var currentEvents = await _db.Queryable().Where(e => eventIds.Contains(e.Id) && e.StartTime <= currentTime && e.EndTime >= currentTime).ToListAsync();
+
+ if (currentEvents == null || currentEvents.Count == 0)
+ {
+ return new List();
+ }
+
+ // 3. 在内存中合并数据
+ var eventUsers = userEvents
+ .Where(userEvent => currentEvents.Any(e => e.Id == userEvent.EventId))
+ .Select(userEvent =>
+ {
+ var eventInfo = currentEvents.First(e => e.Id == userEvent.EventId);
+ return new LqEventUserEventOutput
+ {
+ EventId = userEvent.EventId,
+ EventName = eventInfo.EventName,
+ EventNumber = eventInfo.EventNumber,
+ EventCoordinator = eventInfo.EventCoordinator,
+ StartTime = eventInfo.StartTime,
+ EndTime = eventInfo.EndTime,
+ UserId = userEvent.UserId,
+ DepId = userEvent.DepId,
+ TeamName = userEvent.TeamName,
+ EventTarget = userEvent.EventTarget,
+ CreationTime = userEvent.CreationTime,
+ CreationUser = userEvent.CreationUser,
+ StoreId = userEvent.StoreId,
+ StoreName = null, // 不需要门店信息
+ };
+ })
+ .ToList();
+
+ // 如果没有查询到当前活动,返回空列表
+ return eventUsers ?? new List();
+ }
+ catch (Exception ex)
+ {
+ throw NCCException.Oh($"查询用户 {userId} 当前活动失败: {ex.Message}", ex);
+ }
+ }
+ #endregion
+
+ #region 根据活动ID获取战队统计数据
+ ///
+ /// 根据活动ID获取战队统计数据
+ ///
+ ///
+ /// 根据活动ID查询该活动下所有门店和战队的统计数据
+ /// 返回按门店和战队分组的拓客数据
+ ///
+ /// 示例请求:
+ /// ```json
+ /// GET /api/Extend/LqEvent/team-data/{eventId}
+ /// ```
+ ///
+ /// 参数说明:
+ /// - eventId: 活动ID,必填参数
+ ///
+ /// 返回信息包括:
+ /// - 门店信息(门店ID、门店名称)
+ /// - 战队信息(战队名称)
+ /// - 用户信息(用户ID、用户姓名、拓客数量、活动目标)
+ ///
+ /// 活动ID
+ /// 按门店和战队分组的统计数据
+ /// 成功返回统计数据
+ /// 参数错误,活动ID不能为空
+ [HttpGet("team-data/{eventId}")]
+ public async Task GetTeamDataByEventId(string eventId)
+ {
+ if (string.IsNullOrEmpty(eventId))
+ {
+ throw NCCException.Oh("活动ID不能为空");
+ }
+
+ try
+ {
+ // 使用SqlFunc子查询,一次性获取所有需要的数据,避免多次查询和内存合并
+ var teamData = await _db.Queryable()
+ .Where(eventUser => eventUser.EventId == eventId)
+ .Select(eventUser => new
+ {
+ StoreId = eventUser.StoreId,
+ StoreName = SqlFunc.Subqueryable().Where(md => md.Id == eventUser.StoreId).Select(md => md.Dm),
+ TeamName = eventUser.TeamName,
+ ExpansionUserId = eventUser.UserId,
+ ExpansionUserName = SqlFunc.Subqueryable().Where(u => u.Id == eventUser.UserId).Select(u => u.RealName),
+ EventTarget = eventUser.EventTarget,
+ ExpansionCount = SqlFunc.Subqueryable().Where(tkjlb => tkjlb.EventId == eventId && tkjlb.ExpansionUserId == eventUser.UserId).Count(),
+ })
+ .ToListAsync();
+
+ // 按门店和战队分组数据
+ var result = teamData
+ .GroupBy(x => new { x.StoreId, x.StoreName })
+ .Select(storeGroup => new StoreTeamDataOutput
+ {
+ StoreId = storeGroup.Key.StoreId,
+ StoreName = storeGroup.Key.StoreName,
+ TeamList = storeGroup
+ .GroupBy(x => x.TeamName)
+ .Select(teamGroup => new TeamInfoOutput
+ {
+ TeamName = teamGroup.Key,
+ TeamUserInfo = teamGroup
+ .Select(user => new TeamUserInfoOutput
+ {
+ ExpansionUserId = user.ExpansionUserId,
+ ExpansionUserName = user.ExpansionUserName,
+ ExpansionCount = user.ExpansionCount,
+ EventTarget = user.EventTarget,
+ })
+ .ToList(),
+ })
+ .ToList(),
+ })
+ .ToList();
+
+ return result;
+ }
+ catch (Exception ex)
+ {
+ throw NCCException.Oh($"查询活动 {eventId} 战队统计数据失败: {ex.Message}", ex);
+ }
+ }
+ #endregion
+
#region Excel导入拓客活动用户
///
@@ -698,7 +908,7 @@ namespace NCC.Extend.LqEvent
// 调试信息:输出每一行读取的数据
Console.WriteLine($"第{i + 1}行数据: 手机号={mobilePhone}, 姓名={name}, 战队={teamName}, 门店={storeName}, 目标={targetCountStr}");
- int? targetCount = null;
+ int targetCount = 0;
if (!string.IsNullOrEmpty(targetCountStr) && int.TryParse(targetCountStr, out int target))
{
targetCount = target;
@@ -746,7 +956,7 @@ namespace NCC.Extend.LqEvent
public string Name { get; set; }
public string TeamName { get; set; }
public string StoreName { get; set; }
- public int? TargetCount { get; set; }
+ public int TargetCount { get; set; } = 0;
}
#endregion
@@ -758,30 +968,16 @@ namespace NCC.Extend.LqEvent
///
/// 拓客类型枚举列表
[HttpGet("event-types")]
- public List GetEventTypes()
+ public List GetEventTypes()
{
- var result = new List();
-
- // 获取所有枚举值
- var enumValues = Enum.GetValues();
-
- foreach (var enumValue in enumValues)
- {
- // 获取枚举的Description特性
- var field = enumValue.GetType().GetField(enumValue.ToString());
- var descriptionAttribute = field?.GetCustomAttributes(typeof(DescriptionAttribute), false).FirstOrDefault() as DescriptionAttribute;
-
- result.Add(
- new EventTypeEnumOutput
- {
- Value = (int)enumValue,
- Name = enumValue.ToString(),
- Description = descriptionAttribute?.Description ?? enumValue.ToString(),
- }
- );
- }
-
- return result;
+ 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/LqHytkHytkService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqHytkHytkService.cs
index 85f44fb..7f8ba96 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqHytkHytkService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqHytkHytkService.cs
@@ -223,18 +223,19 @@ namespace NCC.Extend.LqHytkHytk
var lqHytkMxEntity = new LqHytkMxEntity
{
Id = YitIdHelper.NextId().ToString(),
- Gltkbh = newEntity.Id,
- F_CreateTime = DateTime.Now,
- F_CreateUser = userInfo.userId,
- F_DeleteMark = 0,
+ RefundInfoId = newEntity.Id,
+ BillingItemId = item.billingItemId,
+ CreateTime = DateTime.Now,
+ CreateUser = userInfo.userId,
+ DeleteMark = 0,
Px = item.px,
Pxmc = item.pxmc,
Pxjg = item.pxjg,
Tkje = item.tkje,
- F_ProjectNumber = item.F_ProjectNumber ?? 1,
- F_IsEnabled = item.F_IsEnabled ?? 1,
- F_SourceType = item.F_SourceType,
- F_TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)),
+ ProjectNumber = item.F_ProjectNumber ?? 1,
+ IsEnabled = item.F_IsEnabled ?? 1,
+ SourceType = item.F_SourceType,
+ TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)),
};
allMxEntities.Add(lqHytkMxEntity);
@@ -356,7 +357,7 @@ namespace NCC.Extend.LqHytkHytk
await _db.Updateable(entity).IgnoreColumns(true).ExecuteCommandAsync();
// 删除原有的关联数据
- await _db.Deleteable().Where(x => x.Gltkbh == id).ExecuteCommandAsync();
+ await _db.Deleteable().Where(x => x.RefundInfoId == id).ExecuteCommandAsync();
await _db.Deleteable().Where(x => x.Gltkbh == id).ExecuteCommandAsync();
await _db.Deleteable().Where(x => x.Gltkbh == id).ExecuteCommandAsync();
@@ -374,18 +375,19 @@ namespace NCC.Extend.LqHytkHytk
var lqHytkMxEntity = new LqHytkMxEntity
{
Id = YitIdHelper.NextId().ToString(),
- Gltkbh = id,
- F_CreateTime = DateTime.Now,
- F_CreateUser = userInfo.userId,
- F_DeleteMark = 0,
+ RefundInfoId = id,
+ BillingItemId = item.billingItemId,
+ CreateTime = DateTime.Now,
+ CreateUser = userInfo.userId,
+ DeleteMark = 0,
Px = item.px,
Pxmc = item.pxmc,
Pxjg = item.pxjg,
Tkje = item.tkje,
- F_ProjectNumber = item.F_ProjectNumber ?? 1,
- F_IsEnabled = item.F_IsEnabled ?? 1,
- F_SourceType = item.F_SourceType,
- F_TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)),
+ ProjectNumber = item.F_ProjectNumber ?? 1,
+ IsEnabled = item.F_IsEnabled ?? 1,
+ SourceType = item.F_SourceType,
+ TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)),
};
allMxEntities.Add(lqHytkMxEntity);
@@ -523,7 +525,7 @@ namespace NCC.Extend.LqHytkHytk
var output = entity.Adapt();
// 2. 查询品项明细列表
- var lqHytkMxList = await _db.Queryable().Where(w => w.Gltkbh == entity.Id).ToListAsync();
+ var lqHytkMxList = await _db.Queryable().Where(w => w.RefundInfoId == entity.Id).ToListAsync();
// 3. 查询健康师业绩列表
var lqHytkJksyjList = await _db.Queryable().Where(w => w.Gltkbh == entity.Id).ToListAsync();
@@ -538,15 +540,16 @@ namespace NCC.Extend.LqHytkHytk
var mxOutput = new LqHytkMxInfoOutput
{
id = mx.Id,
- gltkbh = mx.Gltkbh,
+ refundInfoId = mx.RefundInfoId,
+ billingItemId = mx.BillingItemId,
px = mx.Px,
pxmc = mx.Pxmc,
pxjg = mx.Pxjg,
tkje = mx.Tkje,
- F_ProjectNumber = mx.F_ProjectNumber,
- F_IsEnabled = mx.F_IsEnabled,
- F_SourceType = mx.F_SourceType,
- F_TotalPrice = mx.F_TotalPrice,
+ projectNumber = mx.ProjectNumber,
+ isEnabled = mx.IsEnabled,
+ sourceType = mx.SourceType,
+ totalPrice = mx.TotalPrice,
};
// 关联该品项的健康师业绩
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
index 6a71eac..9a16689 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
@@ -16,8 +16,11 @@ 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.LqKdKdjlb;
+using NCC.Extend.Entitys.Enum;
using NCC.Extend.Entitys.lq_jinsanjiao_user;
+using NCC.Extend.Entitys.lq_kd_deductinfo;
using NCC.Extend.Entitys.lq_kd_jksyj;
using NCC.Extend.Entitys.lq_kd_kdjlb;
using NCC.Extend.Entitys.lq_kd_kjbsyj;
@@ -266,7 +269,20 @@ namespace NCC.Extend.LqKdKdjlb
var allPxmxEntities = new List();
var allJksyjEntities = new List();
var allKjbsyjEntities = new List();
-
+ var allDeductEntities = new List();
+ // 处理扣款信息列表
+ foreach (var item in input.lqKdKdjlbDeductList)
+ {
+ var lqKdDeductEntity = new LqKdDeductinfoEntity
+ {
+ Id = YitIdHelper.NextId().ToString(),
+ BillingId = newEntity.Id,
+ DeductId = item.DeductId,
+ DeductType = item.DeductType,
+ Amount = item.Amount,
+ };
+ allDeductEntities.Add(lqKdDeductEntity);
+ }
// 处理品项明细列表
foreach (var item in input.lqKdPxmxList)
{
@@ -331,7 +347,11 @@ namespace NCC.Extend.LqKdKdjlb
}
}
}
-
+ // 批量插入扣款信息
+ if (allDeductEntities.Any())
+ {
+ await _db.Insertable(allDeductEntities).ExecuteCommandAsync();
+ }
// 批量插入品项明细
if (allPxmxEntities.Any())
{
@@ -347,6 +367,7 @@ namespace NCC.Extend.LqKdKdjlb
{
await _db.Insertable(allKjbsyjEntities).ExecuteCommandAsync();
}
+
//关闭事务
_db.CommitTran();
@@ -755,5 +776,24 @@ namespace NCC.Extend.LqKdKdjlb
}
}
#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/LqKhxxService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
index 53cca4c..b396a74 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
@@ -548,155 +548,34 @@ namespace NCC.Extend.LqKhxx
{
throw NCCException.Oh(ErrorCode.COM1000, "会员ID不能为空");
}
-
try
{
- _logger.LogInformation("开始查询会员剩余品项,会员ID:{MemberId}", memberId);
-
// 1. 查询会员基本信息
var memberInfo = await _db.Queryable().Where(x => x.Id == memberId).FirstAsync();
-
if (memberInfo == null)
{
_logger.LogWarning("会员不存在,会员ID:{MemberId}", memberId);
- throw NCCException.Oh(ErrorCode.COM1005, "会员不存在");
+ throw NCCException.Oh("会员不存在");
}
-
- _logger.LogInformation("会员信息查询成功,会员姓名:{MemberName}", memberInfo.Khmc);
-
// 2. 查询开单记录ID列表
- _logger.LogInformation("开始查询开单记录ID列表");
- var orderIds = await _db.Queryable().Where(kd => kd.Kdhy == memberId).Select(kd => kd.Id).ToListAsync();
-
- _logger.LogInformation("开单记录ID列表查询成功,数量:{Count}", orderIds.Count);
-
- // 3. 查询开单品项统计(按品项ID、名称、价格和来源类型分组)
- _logger.LogInformation("开始查询开单品项统计");
- var purchasedItems = new List();
- if (orderIds.Any())
- {
- var tempPurchasedItems = await _db.Queryable()
- .Where(px => orderIds.Contains(px.Glkdbh))
- .GroupBy(px => new
- {
- px.Px,
- px.Pxmc,
- px.Pxjg,
- px.SourceType,
- })
- .Select(px => new
- {
- ItemId = px.Px,
- ItemName = px.Pxmc,
- ItemPrice = px.Pxjg,
- SourceType = SqlFunc.IsNull(px.SourceType, "未知"),
- TotalPurchased = SqlFunc.AggregateSum(SqlFunc.ToDecimal(px.ProjectNumber)),
- })
- .ToListAsync();
-
- purchasedItems = tempPurchasedItems.Cast().ToList();
- _logger.LogInformation("开单品项统计查询成功,数量:{Count}", purchasedItems.Count);
-
- // 调试:输出前几条记录查看SourceType字段
- foreach (var item in purchasedItems.Take(3))
- {
- _logger.LogInformation($"调试 - 品项ID: {item.ItemId}, 品项名称: {item.ItemName}, 来源类型: {item.SourceType}");
- }
- }
-
- // 4. 查询耗卡记录ID列表
- _logger.LogInformation("开始查询耗卡记录ID列表");
- var consumeIds = await _db.Queryable().Where(hk => hk.Hy == memberId).Select(hk => hk.Id).ToListAsync();
-
- _logger.LogInformation("耗卡记录ID列表查询成功,数量:{Count}", consumeIds.Count);
-
- // 5. 查询耗卡品项统计(按品项ID和来源类型分组)
- _logger.LogInformation("开始查询耗卡品项统计");
- var consumedItems = new List();
- if (consumeIds.Any())
- {
- var tempConsumedItems = await _db.Queryable()
- .Where(px => consumeIds.Contains(px.Glkdbh))
- .GroupBy(px => new { px.Px, px.SourceType })
- .Select(px => new
- {
- ItemId = px.Px,
- SourceType = SqlFunc.IsNull(px.SourceType, "未知"),
- ConsumedCount = SqlFunc.AggregateSum(SqlFunc.ToDecimal(px.ProjectNumber)),
- })
- .ToListAsync();
-
- consumedItems = tempConsumedItems.Cast().ToList();
- _logger.LogInformation("耗卡品项统计查询成功,数量:{Count}", consumedItems.Count);
- }
-
- // 6. 查询退卡记录ID列表
- _logger.LogInformation("开始查询退卡记录ID列表");
- var refundIds = await _db.Queryable().Where(tk => tk.Hy == memberId && tk.F_DeleteMark != 1).Select(tk => tk.Id).ToListAsync();
-
- _logger.LogInformation("退卡记录ID列表查询成功,数量:{Count}", refundIds.Count);
-
- // 7. 查询退卡品项统计(按品项ID和来源类型分组)
- _logger.LogInformation("开始查询退卡品项统计");
- var refundedItems = new List();
- if (refundIds.Any())
- {
- var tempRefundedItems = await _db.Queryable()
- .Where(px => refundIds.Contains(px.Gltkbh) && px.F_DeleteMark != 1)
- .GroupBy(px => new { px.Px, px.F_SourceType })
- .Select(px => new
- {
- ItemId = px.Px,
- SourceType = SqlFunc.IsNull(px.F_SourceType, "未知"),
- RefundedCount = SqlFunc.AggregateSum(SqlFunc.ToDecimal(px.F_ProjectNumber)),
- })
- .ToListAsync();
-
- refundedItems = tempRefundedItems.Cast().ToList();
- _logger.LogInformation("退卡品项统计查询成功,数量:{Count}", refundedItems.Count);
- }
-
- // 8. 合并计算剩余品项(按品项ID和来源类型匹配)
- _logger.LogInformation("开始合并计算剩余品项");
- var remainingItems = new List();
-
- // 处理有购买记录的品项
- foreach (var purchased in purchasedItems)
- {
- // 按品项ID和来源类型匹配耗卡记录
- var consumed = consumedItems.FirstOrDefault(x => x.ItemId == purchased.ItemId && x.SourceType == purchased.SourceType);
- var consumedCount = consumed?.ConsumedCount ?? 0;
-
- // 按品项ID和来源类型匹配退卡记录
- var refunded = refundedItems.FirstOrDefault(x => x.ItemId == purchased.ItemId && x.SourceType == purchased.SourceType);
- var refundedCount = refunded?.RefundedCount ?? 0;
-
- // 计算剩余数量:购买数量 - 消费数量 - 退卡数量
- var remainingCount = purchased.TotalPurchased - consumedCount - refundedCount;
-
- if (remainingCount > 0)
+ var remainingItems = await _db.Queryable()
+ .Where(x => x.MemberId == memberId)
+ .Select(x => new RemainingItemInfo
{
- remainingItems.Add(
- new RemainingItemInfo
- {
- ItemId = purchased.ItemId,
- ItemName = purchased.ItemName,
- ItemPrice = purchased.ItemPrice,
- SourceType = purchased.SourceType?.ToString() ?? "未知",
- TotalPurchased = purchased.TotalPurchased,
- ConsumedCount = consumedCount,
- RefundedCount = refundedCount,
- RemainingCount = remainingCount,
- }
- );
- }
- }
-
- // 7. 按剩余数量降序排列
- remainingItems = remainingItems.OrderByDescending(x => x.RemainingCount).ToList();
-
- _logger.LogInformation("剩余品项计算完成,数量:{Count}", remainingItems.Count);
-
+ BillingItemId = x.Id,
+ ItemId = x.Px,
+ ItemName = x.Pxmc,
+ ItemPrice = x.Pxjg,
+ SourceType = x.SourceType,
+ 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)),
+ })
+ .ToListAsync();
return new MemberRemainingItemsOutput
{
MemberId = memberId,
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
index af48c14..d1026f3 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
@@ -33,7 +33,7 @@ namespace NCC.Extend.LqTkjlb
///
/// 拓客管理服务
///
- [ApiDescriptionSettings(Tag = "Extend", Name = "LqTkjlb", Order = 200)]
+ [ApiDescriptionSettings(Tag = "绿纤拓客管理服务", Name = "LqTkjlb", Order = 200)]
[Route("api/Extend/[controller]")]
public class LqTkjlbService : ILqTkjlbService, IDynamicApiController, ITransient
{
@@ -60,10 +60,29 @@ namespace NCC.Extend.LqTkjlb
[HttpGet("{id}")]
public async Task GetInfo(string id)
{
- var entity = await _db.Queryable().FirstAsync(p => p.Id == id);
- var output = entity.Adapt();
- output.eventName = SqlFunc.Subqueryable().Where(u => u.Id == entity.EventId).Select(u => u.EventName);
- return output;
+ // 使用SqlFunc在查询时直接获取用户名和活动名称
+ var result = await _db.Queryable()
+ .Where(p => p.Id == id)
+ .Select(p => new LqTkjlbInfoOutput
+ {
+ id = p.Id,
+ expansionTime = p.ExpansionTime,
+ expansionUserId = p.ExpansionUserId,
+ expansionUserName = SqlFunc.Subqueryable().Where(u => u.Id == p.ExpansionUserId).Select(u => u.RealName),
+ customerName = p.CustomerName,
+ customerPhone = p.CustomerPhone,
+ buyNumber = p.BuyNumber,
+ paymentMethod = p.PaymentMethod,
+ isAddWeChat = p.IsAddWeChat,
+ remarks = p.Remarks,
+ storeId = p.StoreId,
+ teamName = p.TeamName,
+ eventId = p.EventId,
+ eventName = SqlFunc.Subqueryable().Where(e => e.Id == p.EventId).Select(e => e.EventName),
+ })
+ .FirstAsync();
+
+ return result;
}
#endregion
@@ -78,36 +97,37 @@ namespace NCC.Extend.LqTkjlb
public async Task GetList([FromQuery] LqTkjlbListQueryInput input)
{
var sidx = input.sidx == null ? "id" : input.sidx;
- List queryTksj = input.tksj != null ? input.tksj.Split(',').ToObeject>() : null;
+ List queryTksj = input.expansionTime != null ? input.expansionTime.Split(',').ToObeject>() : null;
DateTime? startTksj = queryTksj != null ? Ext.GetDateTime(queryTksj.First()) : null;
DateTime? endTksj = queryTksj != null ? Ext.GetDateTime(queryTksj.Last()) : null;
var data = await _db.Queryable()
.WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))
- .WhereIF(queryTksj != null, p => p.Tksj >= new DateTime(startTksj.ToDate().Year, startTksj.ToDate().Month, startTksj.ToDate().Day, 0, 0, 0))
- .WhereIF(queryTksj != null, p => p.Tksj <= new DateTime(endTksj.ToDate().Year, endTksj.ToDate().Month, endTksj.ToDate().Day, 23, 59, 59))
- .WhereIF(!string.IsNullOrEmpty(input.tkry), p => p.Tkry.Equals(input.tkry))
- .WhereIF(!string.IsNullOrEmpty(input.gkxm), p => p.Gkxm.Contains(input.gkxm))
- .WhereIF(!string.IsNullOrEmpty(input.dhhm), p => p.Dhhm.Contains(input.dhhm))
- .WhereIF(!string.IsNullOrEmpty(input.gmzs), p => p.Gmzs.Equals(input.gmzs))
- .WhereIF(!string.IsNullOrEmpty(input.zffs), p => p.Zffs.Equals(input.zffs))
- .WhereIF(!string.IsNullOrEmpty(input.sfjwx), p => p.Sfjwx.Equals(input.sfjwx))
- .WhereIF(!string.IsNullOrEmpty(input.bz), p => p.Bz.Contains(input.bz))
- .WhereIF(!string.IsNullOrEmpty(input.ssmd), p => p.Ssmd.Contains(input.ssmd))
- .WhereIF(!string.IsNullOrEmpty(input.sszd), p => p.Sszd.Contains(input.sszd))
+ .WhereIF(queryTksj != null, p => p.ExpansionTime >= new DateTime(startTksj.ToDate().Year, startTksj.ToDate().Month, startTksj.ToDate().Day, 0, 0, 0))
+ .WhereIF(queryTksj != null, p => p.ExpansionTime <= new DateTime(endTksj.ToDate().Year, endTksj.ToDate().Month, endTksj.ToDate().Day, 23, 59, 59))
+ .WhereIF(!string.IsNullOrEmpty(input.expansionUserId), p => p.ExpansionUserId.Equals(input.expansionUserId))
+ .WhereIF(!string.IsNullOrEmpty(input.customerName), p => p.CustomerName.Contains(input.customerName))
+ .WhereIF(!string.IsNullOrEmpty(input.customerPhone), p => p.CustomerPhone.Contains(input.customerPhone))
+ .WhereIF(!string.IsNullOrEmpty(input.buyNumber), p => p.BuyNumber.Equals(input.buyNumber))
+ .WhereIF(!string.IsNullOrEmpty(input.paymentMethod), p => p.PaymentMethod.Equals(input.paymentMethod))
+ .WhereIF(!string.IsNullOrEmpty(input.isAddWeChat), p => p.IsAddWeChat.Equals(input.isAddWeChat))
+ .WhereIF(!string.IsNullOrEmpty(input.remarks), p => p.Remarks.Contains(input.remarks))
+ .WhereIF(!string.IsNullOrEmpty(input.storeId), p => p.StoreId.Contains(input.storeId))
+ .WhereIF(!string.IsNullOrEmpty(input.teamName), p => p.TeamName.Contains(input.teamName))
+ .WhereIF(!string.IsNullOrEmpty(input.eventId), p => p.EventId.Contains(input.eventId))
.Select(it => new LqTkjlbListOutput
{
id = it.Id,
- tksj = it.Tksj,
- // tkry=it.Tkry,
- tkry = SqlFunc.Subqueryable().Where(u => u.MobilePhone == it.Tkry).Select(u => u.RealName),
- gkxm = it.Gkxm,
- dhhm = it.Dhhm,
- gmzs = it.Gmzs,
- zffs = it.Zffs,
- sfjwx = it.Sfjwx,
- bz = it.Bz,
- ssmd = it.Ssmd,
- sszd = it.Sszd,
+ expansionTime = it.ExpansionTime,
+ expansionUserId = it.ExpansionUserId,
+ expansionUserName = SqlFunc.Subqueryable().Where(u => u.MobilePhone == it.ExpansionUserId).Select(u => u.RealName),
+ customerName = it.CustomerName,
+ customerPhone = it.CustomerPhone,
+ buyNumber = it.BuyNumber,
+ paymentMethod = it.PaymentMethod,
+ isAddWeChat = it.IsAddWeChat,
+ remarks = it.Remarks,
+ storeId = it.StoreId,
+ teamName = it.TeamName,
eventId = it.EventId,
eventName = SqlFunc.Subqueryable().Where(u => u.Id == it.EventId).Select(u => u.EventName),
})
@@ -129,7 +149,7 @@ namespace NCC.Extend.LqTkjlb
{
var userInfo = await _userManager.GetUserInfo();
//通过input.dhhm去查询用户信息
- var user = _db.Queryable().Where(u => u.Sjh == input.dhhm).Any();
+ var user = _db.Queryable().Where(u => u.Sjh == input.customerPhone).Any();
if (user)
{
throw NCCException.Oh("该手机号码已存在于会员或线索池中");
@@ -138,7 +158,7 @@ namespace NCC.Extend.LqTkjlb
var result = await _db.Ado.UseTranAsync(async () =>
{
//通过input.eventId去查询拓客活动信息
- var eventUserInfoList = await _db.Queryable().Where(u => u.EventId == input.eventId && u.UserId == input.tkry).ToListAsync();
+ var eventUserInfoList = await _db.Queryable().Where(u => u.EventId == input.eventId && u.UserId == input.expansionUserId).ToListAsync();
if (eventUserInfoList == null || eventUserInfoList.Count == 0)
{
throw NCCException.Oh("未找到对应的拓客活动用户信息,请确认活动ID和用户ID是否正确");
@@ -147,15 +167,18 @@ namespace NCC.Extend.LqTkjlb
// 创建拓客记录
var entity = input.Adapt();
entity.Id = YitIdHelper.NextId().ToString();
- entity.Sszd = eventUserInfo.TeamName;
+ entity.TeamName = eventUserInfo.TeamName;
+ entity.StoreId = eventUserInfo.StoreId;
+ entity.DepId = eventUserInfo.DepId;
+ entity.ExpansionTime = DateTime.Now;
var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();
if (!(isOk > 0))
throw NCCException.Oh("创建拓客记录失败");
// 创建客户信息
LqKhxxEntity MemberInfo = new LqKhxxEntity();
MemberInfo.Id = YitIdHelper.NextId().ToString();
- MemberInfo.Khmc = entity.Gkxm;
- MemberInfo.Sjh = input.dhhm; // 设置手机号
+ MemberInfo.Khmc = entity.CustomerName;
+ MemberInfo.Sjh = input.customerPhone; // 设置手机号
MemberInfo.Khmqgs = "线索池";
MemberInfo.Dah = "GK" + DateTime.Now.ToString("yyyyMMddHHmmss");
var memberResult = await _db.Insertable(MemberInfo).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();
@@ -181,35 +204,42 @@ namespace NCC.Extend.LqTkjlb
public async Task GetNoPagingList([FromQuery] LqTkjlbListQueryInput input)
{
var sidx = input.sidx == null ? "id" : input.sidx;
- List queryTksj = input.tksj != null ? input.tksj.Split(',').ToObeject>() : null;
- DateTime? startTksj = queryTksj != null ? Ext.GetDateTime(queryTksj.First()) : null;
- DateTime? endTksj = queryTksj != null ? Ext.GetDateTime(queryTksj.Last()) : null;
+ List queryExpansionTime = input.expansionTime != null ? input.expansionTime.Split(',').ToObeject>() : null;
+ DateTime? startExpansionTime = queryExpansionTime != null ? Ext.GetDateTime(queryExpansionTime.First()) : null;
+ DateTime? endExpansionTime = queryExpansionTime != null ? Ext.GetDateTime(queryExpansionTime.Last()) : null;
var data = await _db.Queryable()
.WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))
- .WhereIF(queryTksj != null, p => p.Tksj >= new DateTime(startTksj.ToDate().Year, startTksj.ToDate().Month, startTksj.ToDate().Day, 0, 0, 0))
- .WhereIF(queryTksj != null, p => p.Tksj <= new DateTime(endTksj.ToDate().Year, endTksj.ToDate().Month, endTksj.ToDate().Day, 23, 59, 59))
- .WhereIF(!string.IsNullOrEmpty(input.tkry), p => p.Tkry.Equals(input.tkry))
- .WhereIF(!string.IsNullOrEmpty(input.gkxm), p => p.Gkxm.Contains(input.gkxm))
- .WhereIF(!string.IsNullOrEmpty(input.dhhm), p => p.Dhhm.Contains(input.dhhm))
- .WhereIF(!string.IsNullOrEmpty(input.gmzs), p => p.Gmzs.Equals(input.gmzs))
- .WhereIF(!string.IsNullOrEmpty(input.zffs), p => p.Zffs.Equals(input.zffs))
- .WhereIF(!string.IsNullOrEmpty(input.sfjwx), p => p.Sfjwx.Equals(input.sfjwx))
- .WhereIF(!string.IsNullOrEmpty(input.bz), p => p.Bz.Contains(input.bz))
- .WhereIF(!string.IsNullOrEmpty(input.ssmd), p => p.Ssmd.Contains(input.ssmd))
- .WhereIF(!string.IsNullOrEmpty(input.sszd), p => p.Sszd.Contains(input.sszd))
+ .WhereIF(
+ queryExpansionTime != null,
+ p => p.ExpansionTime >= new DateTime(startExpansionTime.ToDate().Year, startExpansionTime.ToDate().Month, startExpansionTime.ToDate().Day, 0, 0, 0)
+ )
+ .WhereIF(queryExpansionTime != null, p => p.ExpansionTime <= new DateTime(endExpansionTime.ToDate().Year, endExpansionTime.ToDate().Month, endExpansionTime.ToDate().Day, 23, 59, 59))
+ .WhereIF(!string.IsNullOrEmpty(input.expansionUserId), p => p.ExpansionUserId.Equals(input.expansionUserId))
+ .WhereIF(!string.IsNullOrEmpty(input.customerName), p => p.CustomerName.Contains(input.customerName))
+ .WhereIF(!string.IsNullOrEmpty(input.customerPhone), p => p.CustomerPhone.Contains(input.customerPhone))
+ .WhereIF(!string.IsNullOrEmpty(input.buyNumber), p => p.BuyNumber.ToString().Equals(input.buyNumber))
+ .WhereIF(!string.IsNullOrEmpty(input.paymentMethod), p => p.PaymentMethod.Equals(input.paymentMethod))
+ .WhereIF(!string.IsNullOrEmpty(input.isAddWeChat), p => p.IsAddWeChat.Equals(input.isAddWeChat))
+ .WhereIF(!string.IsNullOrEmpty(input.remarks), p => p.Remarks.Contains(input.remarks))
+ .WhereIF(!string.IsNullOrEmpty(input.storeId), p => p.StoreId.Contains(input.storeId))
+ .WhereIF(!string.IsNullOrEmpty(input.teamName), p => p.TeamName.Contains(input.teamName))
+ .WhereIF(!string.IsNullOrEmpty(input.eventId), p => p.EventId.Equals(input.eventId))
.Select(it => new LqTkjlbListOutput
{
id = it.Id,
- tksj = it.Tksj,
- tkry = it.Tkry,
- gkxm = it.Gkxm,
- dhhm = it.Dhhm,
- gmzs = it.Gmzs,
- zffs = it.Zffs,
- sfjwx = it.Sfjwx,
- bz = it.Bz,
- ssmd = it.Ssmd,
- sszd = it.Sszd,
+ expansionTime = it.ExpansionTime,
+ expansionUserId = it.ExpansionUserId,
+ expansionUserName = it.ExpansionUserId, // 这里需要根据实际业务逻辑获取用户名
+ customerName = it.CustomerName,
+ customerPhone = it.CustomerPhone,
+ buyNumber = it.BuyNumber,
+ paymentMethod = it.PaymentMethod,
+ isAddWeChat = it.IsAddWeChat,
+ remarks = it.Remarks,
+ storeId = it.StoreId,
+ teamName = it.TeamName,
+ eventId = it.EventId,
+ eventName = it.EventId, // 这里需要根据实际业务逻辑获取活动名称
})
.MergeTable()
.OrderBy(sidx + " " + input.sort)
@@ -336,10 +366,13 @@ namespace NCC.Extend.LqTkjlb
[HttpGet("Actions/GetRanking")]
public async Task GetRanking()
{
- var data = await _db.Queryable().GroupBy(it => it.Sszd).Select(it => new LqTkjlbRankingOutput { sszd = it.Sszd, tkrs = SqlFunc.AggregateCount(it.Id) }).ToListAsync();
+ var data = await _db.Queryable()
+ .GroupBy(it => it.TeamName)
+ .Select(it => new LqTkjlbRankingOutput { teamName = it.TeamName, expansionUserCount = SqlFunc.AggregateCount(it.Id) })
+ .ToListAsync();
// 在内存中排序并添加排名
- var sortedData = data.OrderByDescending(it => it.tkrs).ToList();
+ var sortedData = data.OrderByDescending(it => it.expansionUserCount).ToList();
for (int i = 0; i < sortedData.Count; i++)
{
sortedData[i].ranking = i + 1;
@@ -360,18 +393,18 @@ namespace NCC.Extend.LqTkjlb
var result = new List();
// 获取所有战队
- var teams = await _db.Queryable().GroupBy(it => it.Sszd).Select(it => it.Sszd).ToListAsync();
+ var teams = await _db.Queryable().GroupBy(it => it.TeamName).Select(it => it.TeamName).ToListAsync();
foreach (var team in teams)
{
// 获取该战队所有人员的拓客数据
var teamMembers = await _db.Queryable()
- .Where(it => it.Sszd == team)
- .GroupBy(it => it.Tkry)
+ .Where(it => it.TeamName == team)
+ .GroupBy(it => it.ExpansionUserId)
.Select(it => new
{
// tkry = it.Tkry,
- tkry = SqlFunc.Subqueryable().Where(u => u.MobilePhone == it.Tkry).Select(u => u.RealName),
+ tkry = SqlFunc.Subqueryable().Where(u => u.Id == it.ExpansionUserId).Select(u => u.RealName),
tkrs = SqlFunc.AggregateCount(it.Id),
})
.ToListAsync();
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
index 5ba0a97..a8823b4 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
@@ -105,7 +105,7 @@ namespace NCC.Extend.LqXhHyhk
var output = entity.Adapt();
// 2. 查询品项明细列表
- var lqXhPxmxList = await _db.Queryable().Where(w => w.Glkdbh == entity.Id).ToListAsync();
+ var lqXhPxmxList = await _db.Queryable().Where(w => w.ConsumeInfoId == entity.Id).ToListAsync();
// 3. 查询健康师业绩列表
var lqXhJksyjList = await _db.Queryable().Where(w => w.Glkdbh == entity.Id).ToListAsync();
@@ -120,11 +120,11 @@ namespace NCC.Extend.LqXhHyhk
var pxmxOutput = new LqXhPxmxInfoOutput
{
id = pxmx.Id,
- glkdbh = pxmx.Glkdbh,
+ consumeInfoId = pxmx.ConsumeInfoId,
+ billingItemId = pxmx.BillingItemId,
px = pxmx.Px,
pxmc = pxmx.Pxmc,
pxjg = pxmx.Pxjg,
- xfzs = pxmx.Xfzs,
memberId = pxmx.MemberId,
createTime = pxmx.CreateTIme,
projectNumber = pxmx.ProjectNumber,
@@ -281,7 +281,8 @@ namespace NCC.Extend.LqXhHyhk
var lqXhPxmxEntity = new LqXhPxmxEntity
{
Id = YitIdHelper.NextId().ToString(),
- Glkdbh = newEntity.Id,
+ ConsumeInfoId = newEntity.Id,
+ BillingItemId = item.billingItemId,
CreateTIme = DateTime.Now,
MemberId = entity.Hy,
IsEnabled = 0,
@@ -290,7 +291,6 @@ namespace NCC.Extend.LqXhHyhk
Px = item.px,
Pxmc = item.pxmc,
Pxjg = item.pxjg,
- Xfzs = item.xfzs,
SourceType = item.sourceType,
};
allPxmxEntities.Add(lqXhPxmxEntity);
@@ -494,7 +494,7 @@ namespace NCC.Extend.LqXhHyhk
await _db.Deleteable().In(u => u.Glkdbh, ids).ExecuteCommandAsync();
//清空子表数据
- await _db.Deleteable().In(u => u.Glkdbh, ids).ExecuteCommandAsync();
+ await _db.Deleteable().In(u => u.ConsumeInfoId, ids).ExecuteCommandAsync();
//关闭事务
_db.CommitTran();
}
@@ -532,7 +532,7 @@ namespace NCC.Extend.LqXhHyhk
await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync();
//清空原有数据
- await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync();
+ await _db.Deleteable().Where(u => u.ConsumeInfoId == id).ExecuteCommandAsync();
// 收集所有需要插入的实体,然后批量插入
var allPxmxEntities = new List();
@@ -548,7 +548,8 @@ namespace NCC.Extend.LqXhHyhk
var lqXhPxmxEntity = new LqXhPxmxEntity
{
Id = YitIdHelper.NextId().ToString(),
- Glkdbh = entity.Id,
+ ConsumeInfoId = entity.Id,
+ BillingItemId = item.billingItemId,
CreateTIme = DateTime.Now,
MemberId = entity.Hy,
IsEnabled = 0,
@@ -557,7 +558,6 @@ namespace NCC.Extend.LqXhHyhk
Px = item.px,
Pxmc = item.pxmc,
Pxjg = item.pxjg,
- Xfzs = item.xfzs,
SourceType = item.sourceType,
};
allPxmxEntities.Add(lqXhPxmxEntity);
@@ -664,7 +664,7 @@ namespace NCC.Extend.LqXhHyhk
await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync();
//清空子表数据
- await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync();
+ await _db.Deleteable().Where(u => u.ConsumeInfoId == id).ExecuteCommandAsync();
//关闭事务
_db.CommitTran();
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqXhmxbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqXhmxbService.cs
index 5aaa4e8..02af8f3 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqXhmxbService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqXhmxbService.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.LqXhmxb;
+using NCC.Extend.Entitys.lq_xhmxb;
using NCC.Extend.Interfaces.LqXhmxb;
-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_xhmxb;
-using NCC.Extend.Entitys.Dto.LqXhmxb;
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.LqXhmxb
{
///
/// 消耗明细表服务
///
- [ApiDescriptionSettings(Tag = "Extend",Name = "LqXhmxb", Order = 200)]
+ [ApiDescriptionSettings(Tag = "Extend", Name = "LqXhmxb", Order = 200)]
[Route("api/Extend/[controller]")]
public class LqXhmxbService : ILqXhmxbService, IDynamicApiController, ITransient
{
@@ -39,11 +39,9 @@ namespace NCC.Extend.LqXhmxb
///
/// 初始化一个类型的新实例
///
- public LqXhmxbService(
- ISqlSugarRepository lqXhmxbRepository,
- IUserManager userManager)
+ public LqXhmxbService(ISqlSugarRepository lqXhmxbRepository, IUserManager userManager)
{
- _lqXhmxbRepository = lqXhmxbRepository;
+ _lqXhmxbRepository = lqXhmxbRepository;
_db = _lqXhmxbRepository.Context;
_userManager = userManager;
}
@@ -62,10 +60,10 @@ namespace NCC.Extend.LqXhmxb
}
///
- /// 获取消耗明细表列表
- ///
- /// 请求参数
- ///
+ /// 获取消耗明细表列表
+ ///
+ /// 请求参数
+ ///
[HttpGet("")]
public async Task GetList([FromQuery] LqXhmxbListQueryInput input)
{
@@ -85,24 +83,27 @@ namespace NCC.Extend.LqXhmxb
.WhereIF(!string.IsNullOrEmpty(input.qtsg2), p => p.Qtsg2.Contains(input.qtsg2))
.WhereIF(!string.IsNullOrEmpty(input.qtsg3), p => p.Qtsg3.Contains(input.qtsg3))
.WhereIF(!string.IsNullOrEmpty(input.sghj), p => p.Sghj.Contains(input.sghj))
- .Select(it=> new LqXhmxbListOutput
+ .Select(it => new LqXhmxbListOutput
{
id = it.Id,
- mdbh=it.Mdbh,
- mdmc=it.Mdmc,
- bmbh=it.Bmbh,
- bmmc=it.Bmmc,
- ygbh=it.Ygbh,
- ygmc=it.Ygmc,
- xms=it.Xms,
- xh=it.Xh,
- sg=it.Sg,
- qtsg1=it.Qtsg1,
- qtsg2=it.Qtsg2,
- qtsg3=it.Qtsg3,
- sghj=it.Sghj,
- }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize);
- return PageResult.SqlSugarPageResult(data);
+ mdbh = it.Mdbh,
+ mdmc = it.Mdmc,
+ bmbh = it.Bmbh,
+ bmmc = it.Bmmc,
+ ygbh = it.Ygbh,
+ ygmc = it.Ygmc,
+ xms = it.Xms,
+ xh = it.Xh,
+ sg = it.Sg,
+ qtsg1 = it.Qtsg1,
+ qtsg2 = it.Qtsg2,
+ qtsg3 = it.Qtsg3,
+ sghj = it.Sghj,
+ })
+ .MergeTable()
+ .OrderBy(sidx + " " + input.sort)
+ .ToPagedListAsync(input.currentPage, input.pageSize);
+ return PageResult.SqlSugarPageResult(data);
}
///
@@ -117,14 +118,15 @@ namespace NCC.Extend.LqXhmxb
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] LqXhmxbListQueryInput input)
{
@@ -144,31 +146,34 @@ namespace NCC.Extend.LqXhmxb
.WhereIF(!string.IsNullOrEmpty(input.qtsg2), p => p.Qtsg2.Contains(input.qtsg2))
.WhereIF(!string.IsNullOrEmpty(input.qtsg3), p => p.Qtsg3.Contains(input.qtsg3))
.WhereIF(!string.IsNullOrEmpty(input.sghj), p => p.Sghj.Contains(input.sghj))
- .Select(it=> new LqXhmxbListOutput
+ .Select(it => new LqXhmxbListOutput
{
id = it.Id,
- mdbh=it.Mdbh,
- mdmc=it.Mdmc,
- bmbh=it.Bmbh,
- bmmc=it.Bmmc,
- ygbh=it.Ygbh,
- ygmc=it.Ygmc,
- xms=it.Xms,
- xh=it.Xh,
- sg=it.Sg,
- qtsg1=it.Qtsg1,
- qtsg2=it.Qtsg2,
- qtsg3=it.Qtsg3,
- sghj=it.Sghj,
- }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync();
- return data;
+ mdbh = it.Mdbh,
+ mdmc = it.Mdmc,
+ bmbh = it.Bmbh,
+ bmmc = it.Bmmc,
+ ygbh = it.Ygbh,
+ ygmc = it.Ygmc,
+ xms = it.Xms,
+ xh = it.Xh,
+ sg = it.Sg,
+ qtsg1 = it.Qtsg1,
+ qtsg2 = it.Qtsg2,
+ qtsg3 = it.Qtsg3,
+ sghj = it.Sghj,
+ })
+ .MergeTable()
+ .OrderBy(sidx + " " + input.sort)
+ .ToListAsync();
+ return data;
}
///
- /// 导出消耗明细表
- ///
- /// 请求参数
- ///
+ /// 导出消耗明细表
+ ///
+ /// 请求参数
+ ///
[HttpGet("Actions/Export")]
public async Task Export([FromQuery] LqXhmxbListQueryInput input)
{
@@ -183,7 +188,8 @@ namespace NCC.Extend.LqXhmxb
{
exportData = await this.GetNoPagingList(input);
}
- List paramList = "[{\"value\":\"消耗编号\",\"field\":\"id\"},{\"value\":\"门店编号\",\"field\":\"mdbh\"},{\"value\":\"门店名称\",\"field\":\"mdmc\"},{\"value\":\"部门编号\",\"field\":\"bmbh\"},{\"value\":\"部门名称\",\"field\":\"bmmc\"},{\"value\":\"员工编号\",\"field\":\"ygbh\"},{\"value\":\"员工名称\",\"field\":\"ygmc\"},{\"value\":\"项目数\",\"field\":\"xms\"},{\"value\":\"消耗\",\"field\":\"xh\"},{\"value\":\"手工\",\"field\":\"sg\"},{\"value\":\"其它手工1\",\"field\":\"qtsg1\"},{\"value\":\"其它手工2\",\"field\":\"qtsg2\"},{\"value\":\"其它手工3\",\"field\":\"qtsg3\"},{\"value\":\"手工合计\",\"field\":\"sghj\"},]".ToList();
+ List paramList =
+ "[{\"value\":\"消耗编号\",\"field\":\"id\"},{\"value\":\"门店编号\",\"field\":\"mdbh\"},{\"value\":\"门店名称\",\"field\":\"mdmc\"},{\"value\":\"部门编号\",\"field\":\"bmbh\"},{\"value\":\"部门名称\",\"field\":\"bmmc\"},{\"value\":\"员工编号\",\"field\":\"ygbh\"},{\"value\":\"员工名称\",\"field\":\"ygmc\"},{\"value\":\"项目数\",\"field\":\"xms\"},{\"value\":\"消耗\",\"field\":\"xh\"},{\"value\":\"手工\",\"field\":\"sg\"},{\"value\":\"其它手工1\",\"field\":\"qtsg1\"},{\"value\":\"其它手工2\",\"field\":\"qtsg2\"},{\"value\":\"其它手工3\",\"field\":\"qtsg3\"},{\"value\":\"手工合计\",\"field\":\"sghj\"},]".ToList();
ExcelConfig excelconfig = new ExcelConfig();
excelconfig.FileName = "消耗明细表.xls";
excelconfig.HeadFont = "微软雅黑";
@@ -202,11 +208,7 @@ namespace NCC.Extend.LqXhmxb
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;
}
@@ -226,7 +228,7 @@ namespace NCC.Extend.LqXhmxb
//开启事务
_db.BeginTran();
//批量删除消耗明细表
- await _db.Deleteable().In(d => d.Id,ids).ExecuteCommandAsync();
+ await _db.Deleteable().In(d => d.Id, ids).ExecuteCommandAsync();
//关闭事务
_db.CommitTran();
}
@@ -250,7 +252,8 @@ namespace NCC.Extend.LqXhmxb
{
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);
}
///
@@ -263,7 +266,8 @@ namespace NCC.Extend.LqXhmxb
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);
}
}
}