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); } } }