Commit ce74473f3d7c863116a80ccf7eac786a6fab757c

Authored by “wangming”
1 parent 24642f43

feat: 新增门店类别枚举和耗卡反馈功能

- 新增StoreTypeEnum门店类别枚举(200平门店、旗舰店)
- 新增耗卡反馈功能(lq_xh_feedback表及相关实体、DTO、Service)
- 优化开单记录和耗卡记录列表,增加品项明细返回
- 完善会员开单记录查询接口,支持分页和时间筛选
- 优化耗卡记录作废功能,增加备注参数
- 修复排序规则冲突问题
- 完善各种实体和DTO的字段定义
Showing 39 changed files with 1065 additions and 294 deletions
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkHytk/LqHytkHytkCrInput.cs
@@ -95,5 +95,10 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk @@ -95,5 +95,10 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk
95 /// 退卡品项明细列表 95 /// 退卡品项明细列表
96 /// </summary> 96 /// </summary>
97 public List<LqHytkMxCrInput> lqHytkMxList { get; set; } 97 public List<LqHytkMxCrInput> lqHytkMxList { get; set; }
  98 +
  99 + /// <summary>
  100 + /// 签名文件
  101 + /// </summary>
  102 + public string signatureFile { get; set; }
98 } 103 }
99 } 104 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkHytk/LqHytkHytkInfoOutput.cs
@@ -15,72 +15,72 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk @@ -15,72 +15,72 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk
15 /// 退卡编号 15 /// 退卡编号
16 /// </summary> 16 /// </summary>
17 public string id { get; set; } 17 public string id { get; set; }
18 - 18 +
19 /// <summary> 19 /// <summary>
20 /// 门店 20 /// 门店
21 /// </summary> 21 /// </summary>
22 public string md { get; set; } 22 public string md { get; set; }
23 - 23 +
24 /// <summary> 24 /// <summary>
25 /// 门店编号 25 /// 门店编号
26 /// </summary> 26 /// </summary>
27 public string mdbh { get; set; } 27 public string mdbh { get; set; }
28 - 28 +
29 /// <summary> 29 /// <summary>
30 /// 门店名称 30 /// 门店名称
31 /// </summary> 31 /// </summary>
32 public string mdmc { get; set; } 32 public string mdmc { get; set; }
33 - 33 +
34 /// <summary> 34 /// <summary>
35 /// 会员 35 /// 会员
36 /// </summary> 36 /// </summary>
37 public string hy { get; set; } 37 public string hy { get; set; }
38 - 38 +
39 /// <summary> 39 /// <summary>
40 /// 会员姓名 40 /// 会员姓名
41 /// </summary> 41 /// </summary>
42 public string hymc { get; set; } 42 public string hymc { get; set; }
43 - 43 +
44 /// <summary> 44 /// <summary>
45 /// 会员账号 45 /// 会员账号
46 /// </summary> 46 /// </summary>
47 public string hyzh { get; set; } 47 public string hyzh { get; set; }
48 - 48 +
49 /// <summary> 49 /// <summary>
50 /// 顾客类型 50 /// 顾客类型
51 /// </summary> 51 /// </summary>
52 public string gklx { get; set; } 52 public string gklx { get; set; }
53 - 53 +
54 /// <summary> 54 /// <summary>
55 /// 退卡总金额 55 /// 退卡总金额
56 /// </summary> 56 /// </summary>
57 public decimal? tkje { get; set; } 57 public decimal? tkje { get; set; }
58 - 58 +
59 /// <summary> 59 /// <summary>
60 /// 手工费用 60 /// 手工费用
61 /// </summary> 61 /// </summary>
62 public decimal? sgfy { get; set; } 62 public decimal? sgfy { get; set; }
63 - 63 +
64 /// <summary> 64 /// <summary>
65 /// 备注 65 /// 备注
66 /// </summary> 66 /// </summary>
67 public string bz { get; set; } 67 public string bz { get; set; }
68 - 68 +
69 /// <summary> 69 /// <summary>
70 /// 退卡时间 70 /// 退卡时间
71 /// </summary> 71 /// </summary>
72 public DateTime? tksj { get; set; } 72 public DateTime? tksj { get; set; }
73 - 73 +
74 /// <summary> 74 /// <summary>
75 /// 操作人员 75 /// 操作人员
76 /// </summary> 76 /// </summary>
77 public string czry { get; set; } 77 public string czry { get; set; }
78 - 78 +
79 /// <summary> 79 /// <summary>
80 /// 退卡状态 80 /// 退卡状态
81 /// </summary> 81 /// </summary>
82 public string tkzt { get; set; } 82 public string tkzt { get; set; }
83 - 83 +
84 /// <summary> 84 /// <summary>
85 /// 退卡原因 85 /// 退卡原因
86 /// </summary> 86 /// </summary>
@@ -92,6 +92,11 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk @@ -92,6 +92,11 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk
92 public string fileUrl { get; set; } 92 public string fileUrl { get; set; }
93 93
94 /// <summary> 94 /// <summary>
  95 + /// 签名文件
  96 + /// </summary>
  97 + public string signatureFile { get; set; }
  98 +
  99 + /// <summary>
95 /// 退卡品项明细列表 100 /// 退卡品项明细列表
96 /// </summary> 101 /// </summary>
97 public List<LqHytkMxInfoOutput> lqHytkMxList { get; set; } 102 public List<LqHytkMxInfoOutput> lqHytkMxList { get; set; }
@@ -105,6 +110,6 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk @@ -105,6 +110,6 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk
105 /// 科技部老师业绩列表 110 /// 科技部老师业绩列表
106 /// </summary> 111 /// </summary>
107 public List<LqHytkKjbsyjInfoOutput> lqHytkKjbsyjList { get; set; } 112 public List<LqHytkKjbsyjInfoOutput> lqHytkKjbsyjList { get; set; }
108 - 113 +
109 } 114 }
110 } 115 }
111 \ No newline at end of file 116 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqHytkHytk/LqHytkHytkUpInput.cs
@@ -15,72 +15,72 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk @@ -15,72 +15,72 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk
15 /// 退卡编号 15 /// 退卡编号
16 /// </summary> 16 /// </summary>
17 public string id { get; set; } 17 public string id { get; set; }
18 - 18 +
19 /// <summary> 19 /// <summary>
20 /// 门店 20 /// 门店
21 /// </summary> 21 /// </summary>
22 public string md { get; set; } 22 public string md { get; set; }
23 - 23 +
24 /// <summary> 24 /// <summary>
25 /// 门店编号 25 /// 门店编号
26 /// </summary> 26 /// </summary>
27 public string mdbh { get; set; } 27 public string mdbh { get; set; }
28 - 28 +
29 /// <summary> 29 /// <summary>
30 /// 门店名称 30 /// 门店名称
31 /// </summary> 31 /// </summary>
32 public string mdmc { get; set; } 32 public string mdmc { get; set; }
33 - 33 +
34 /// <summary> 34 /// <summary>
35 /// 会员 35 /// 会员
36 /// </summary> 36 /// </summary>
37 public string hy { get; set; } 37 public string hy { get; set; }
38 - 38 +
39 /// <summary> 39 /// <summary>
40 /// 会员姓名 40 /// 会员姓名
41 /// </summary> 41 /// </summary>
42 public string hymc { get; set; } 42 public string hymc { get; set; }
43 - 43 +
44 /// <summary> 44 /// <summary>
45 /// 会员账号 45 /// 会员账号
46 /// </summary> 46 /// </summary>
47 public string hyzh { get; set; } 47 public string hyzh { get; set; }
48 - 48 +
49 /// <summary> 49 /// <summary>
50 /// 顾客类型 50 /// 顾客类型
51 /// </summary> 51 /// </summary>
52 public string gklx { get; set; } 52 public string gklx { get; set; }
53 - 53 +
54 /// <summary> 54 /// <summary>
55 /// 退卡总金额 55 /// 退卡总金额
56 /// </summary> 56 /// </summary>
57 public decimal? tkje { get; set; } 57 public decimal? tkje { get; set; }
58 - 58 +
59 /// <summary> 59 /// <summary>
60 /// 手工费用 60 /// 手工费用
61 /// </summary> 61 /// </summary>
62 public decimal? sgfy { get; set; } 62 public decimal? sgfy { get; set; }
63 - 63 +
64 /// <summary> 64 /// <summary>
65 /// 备注 65 /// 备注
66 /// </summary> 66 /// </summary>
67 public string bz { get; set; } 67 public string bz { get; set; }
68 - 68 +
69 /// <summary> 69 /// <summary>
70 /// 退卡时间 70 /// 退卡时间
71 /// </summary> 71 /// </summary>
72 public DateTime? tksj { get; set; } 72 public DateTime? tksj { get; set; }
73 - 73 +
74 /// <summary> 74 /// <summary>
75 /// 操作人员 75 /// 操作人员
76 /// </summary> 76 /// </summary>
77 public string czry { get; set; } 77 public string czry { get; set; }
78 - 78 +
79 /// <summary> 79 /// <summary>
80 /// 退卡状态 80 /// 退卡状态
81 /// </summary> 81 /// </summary>
82 public string tkzt { get; set; } 82 public string tkzt { get; set; }
83 - 83 +
84 /// <summary> 84 /// <summary>
85 /// 退卡原因 85 /// 退卡原因
86 /// </summary> 86 /// </summary>
@@ -90,21 +90,26 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk @@ -90,21 +90,26 @@ namespace NCC.Extend.Entitys.Dto.LqHytkHytk
90 /// 退卡附件 90 /// 退卡附件
91 /// </summary> 91 /// </summary>
92 public string fileUrl { get; set; } 92 public string fileUrl { get; set; }
93 - 93 +
  94 + /// <summary>
  95 + /// 签名文件
  96 + /// </summary>
  97 + public string signatureFile { get; set; }
  98 +
94 /// <summary> 99 /// <summary>
95 /// 退卡品项明细列表 100 /// 退卡品项明细列表
96 /// </summary> 101 /// </summary>
97 public List<LqHytkMxCrInput> lqHytkMxList { get; set; } 102 public List<LqHytkMxCrInput> lqHytkMxList { get; set; }
98 - 103 +
99 /// <summary> 104 /// <summary>
100 /// 退卡健康师业绩列表 105 /// 退卡健康师业绩列表
101 /// </summary> 106 /// </summary>
102 public List<LqHytkJksyjCrInput> lqHytkJksyjList { get; set; } 107 public List<LqHytkJksyjCrInput> lqHytkJksyjList { get; set; }
103 - 108 +
104 /// <summary> 109 /// <summary>
105 /// 退卡科技部老师业绩列表 110 /// 退卡科技部老师业绩列表
106 /// </summary> 111 /// </summary>
107 public List<LqHytkKjbsyjCrInput> lqHytkKjbsyjList { get; set; } 112 public List<LqHytkKjbsyjCrInput> lqHytkKjbsyjList { get; set; }
108 - 113 +
109 } 114 }
110 } 115 }
111 \ No newline at end of file 116 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingRecordQueryInput.cs 0 → 100644
  1 +using System.ComponentModel.DataAnnotations;
  2 +using NCC.Common.Filter;
  3 +
  4 +namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
  5 +{
  6 + /// <summary>
  7 + /// 会员开单记录查询输入
  8 + /// </summary>
  9 + public class BillingRecordQueryInput : PageInputBase
  10 + {
  11 + /// <summary>
  12 + /// 会员ID
  13 + /// </summary>
  14 + [Required(ErrorMessage = "会员ID不能为空")]
  15 + [Display(Name = "会员ID", Description = "查询开单记录的会员ID")]
  16 + public string MemberId { get; set; }
  17 +
  18 +
  19 + /// <summary>
  20 + /// 开始时间
  21 + /// </summary>
  22 + [Display(Name = "开始时间", Description = "查询开单记录的开始时间")]
  23 + public System.DateTime? StartTime { get; set; }
  24 +
  25 + /// <summary>
  26 + /// 结束时间
  27 + /// </summary>
  28 + [Display(Name = "结束时间", Description = "查询开单记录的结束时间")]
  29 + public System.DateTime? EndTime { get; set; }
  30 + }
  31 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbCrInput.cs
@@ -116,31 +116,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -116,31 +116,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
116 public string kdhy { get; set; } 116 public string kdhy { get; set; }
117 117
118 /// <summary> 118 /// <summary>
119 - /// 开单会员名称  
120 - /// </summary>  
121 - public string kdhyc { get; set; }  
122 -  
123 - /// <summary>  
124 - /// 开单会员手机号  
125 - /// </summary>  
126 - public string kdhysjh { get; set; }  
127 -  
128 - /// <summary>  
129 - /// 健康师业绩  
130 - /// </summary>  
131 - public string jksyj { get; set; }  
132 -  
133 - /// <summary>  
134 - /// 科技部老师业绩  
135 - /// </summary>  
136 - public string kjblsyj { get; set; }  
137 -  
138 - /// <summary>  
139 - /// 品项信息  
140 - /// </summary>  
141 - public string pxxx { get; set; }  
142 -  
143 - /// <summary>  
144 /// 方案其他 119 /// 方案其他
145 /// </summary> 120 /// </summary>
146 public string F_FIleUrl { get; set; } 121 public string F_FIleUrl { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbInfoOutput.cs
@@ -132,21 +132,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -132,21 +132,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
132 public string kdhysjh { get; set; } 132 public string kdhysjh { get; set; }
133 133
134 /// <summary> 134 /// <summary>
135 - /// 健康师业绩  
136 - /// </summary>  
137 - public string jksyj { get; set; }  
138 -  
139 - /// <summary>  
140 - /// 科技部老师业绩  
141 - /// </summary>  
142 - public string kjblsyj { get; set; }  
143 -  
144 - /// <summary>  
145 - /// 品项信息  
146 - /// </summary>  
147 - public string pxxx { get; set; }  
148 -  
149 - /// <summary>  
150 /// 方案其他 135 /// 方案其他
151 /// </summary> 136 /// </summary>
152 public string F_FIleUrl { get; set; } 137 public string F_FIleUrl { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs
@@ -124,21 +124,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -124,21 +124,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
124 public string kdhysjh { get; set; } 124 public string kdhysjh { get; set; }
125 125
126 /// <summary> 126 /// <summary>
127 - /// 健康师业绩  
128 - /// </summary>  
129 - public string jksyj { get; set; }  
130 -  
131 - /// <summary>  
132 - /// 科技部老师业绩  
133 - /// </summary>  
134 - public string kjblsyj { get; set; }  
135 -  
136 - /// <summary>  
137 - /// 品项信息  
138 - /// </summary>  
139 - public string pxxx { get; set; }  
140 -  
141 - /// <summary>  
142 /// 方案其他 127 /// 方案其他
143 /// </summary> 128 /// </summary>
144 public string F_FIleUrl { get; set; } 129 public string F_FIleUrl { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListQueryInput.cs
@@ -124,20 +124,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -124,20 +124,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
124 /// </summary> 124 /// </summary>
125 public string kdhysjh { get; set; } 125 public string kdhysjh { get; set; }
126 126
127 - /// <summary>  
128 - /// 健康师业绩  
129 - /// </summary>  
130 - public string jksyj { get; set; }  
131 -  
132 - /// <summary>  
133 - /// 科技部老师业绩  
134 - /// </summary>  
135 - public string kjblsyj { get; set; }  
136 -  
137 - /// <summary>  
138 - /// 品项信息  
139 - /// </summary>  
140 - public string pxxx { get; set; }  
141 127
142 /// <summary> 128 /// <summary>
143 /// 方案其他 129 /// 方案其他
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxCrInput.cs
@@ -23,10 +23,6 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx @@ -23,10 +23,6 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
23 /// </summary> 23 /// </summary>
24 public string sjh { get; set; } 24 public string sjh { get; set; }
25 25
26 - /// <summary>  
27 - /// 档案号  
28 - /// </summary>  
29 - public string dah { get; set; }  
30 26
31 /// <summary> 27 /// <summary>
32 /// 性别 28 /// 性别
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhFeedback/LqXhFeedbackCrInput.cs 0 → 100644
  1 +using System;
  2 +using System.ComponentModel.DataAnnotations;
  3 +
  4 +namespace NCC.Extend.Entitys.Dto.LqXhFeedback
  5 +{
  6 + /// <summary>
  7 + /// 耗卡反馈创建输入
  8 + /// </summary>
  9 + public class LqXhFeedbackCrInput
  10 + {
  11 + /// <summary>
  12 + /// 耗卡记录ID
  13 + /// </summary>
  14 + [Required(ErrorMessage = "耗卡记录ID不能为空")]
  15 + [Display(Name = "耗卡记录ID", Description = "关联的耗卡记录ID")]
  16 + public string ConsumeId { get; set; }
  17 +
  18 + /// <summary>
  19 + /// 前图片
  20 + /// </summary>
  21 + [Display(Name = "前图片", Description = "耗卡前的图片")]
  22 + public string BeforeImage { get; set; }
  23 +
  24 + /// <summary>
  25 + /// 后图片
  26 + /// </summary>
  27 + [Display(Name = "后图片", Description = "耗卡后的图片")]
  28 + public string AfterImage { get; set; }
  29 +
  30 + /// <summary>
  31 + /// 备注
  32 + /// </summary>
  33 + [Display(Name = "备注", Description = "反馈备注信息")]
  34 + public string Remark { get; set; }
  35 + }
  36 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhFeedback/LqXhFeedbackInfoOutput.cs 0 → 100644
  1 +using System;
  2 +
  3 +namespace NCC.Extend.Entitys.Dto.LqXhFeedback
  4 +{
  5 + /// <summary>
  6 + /// 耗卡反馈详情输出
  7 + /// </summary>
  8 + public class LqXhFeedbackInfoOutput
  9 + {
  10 + /// <summary>
  11 + /// 反馈记录ID
  12 + /// </summary>
  13 + public string id { get; set; }
  14 +
  15 + /// <summary>
  16 + /// 耗卡记录ID
  17 + /// </summary>
  18 + public string consumeId { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 前图片
  22 + /// </summary>
  23 + public string beforeImage { get; set; }
  24 +
  25 + /// <summary>
  26 + /// 后图片
  27 + /// </summary>
  28 + public string afterImage { get; set; }
  29 +
  30 + /// <summary>
  31 + /// 备注
  32 + /// </summary>
  33 + public string remark { get; set; }
  34 +
  35 + /// <summary>
  36 + /// 添加人ID
  37 + /// </summary>
  38 + public string createUser { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 添加人姓名
  42 + /// </summary>
  43 + public string createUserName { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 添加时间
  47 + /// </summary>
  48 + public DateTime createTime { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 更新时间
  52 + /// </summary>
  53 + public DateTime updateTime { get; set; }
  54 + }
  55 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhFeedback/LqXhFeedbackListOutput.cs 0 → 100644
  1 +using System;
  2 +
  3 +namespace NCC.Extend.Entitys.Dto.LqXhFeedback
  4 +{
  5 + /// <summary>
  6 + /// 耗卡反馈列表输出
  7 + /// </summary>
  8 + public class LqXhFeedbackListOutput
  9 + {
  10 + /// <summary>
  11 + /// 反馈记录ID
  12 + /// </summary>
  13 + public string id { get; set; }
  14 +
  15 + /// <summary>
  16 + /// 耗卡记录ID
  17 + /// </summary>
  18 + public string consumeId { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 前图片
  22 + /// </summary>
  23 + public string beforeImage { get; set; }
  24 +
  25 + /// <summary>
  26 + /// 后图片
  27 + /// </summary>
  28 + public string afterImage { get; set; }
  29 +
  30 + /// <summary>
  31 + /// 备注
  32 + /// </summary>
  33 + public string remark { get; set; }
  34 +
  35 + /// <summary>
  36 + /// 添加人ID
  37 + /// </summary>
  38 + public string createUser { get; set; }
  39 +
  40 + /// <summary>
  41 + /// 添加人姓名
  42 + /// </summary>
  43 + public string createUserName { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 添加时间
  47 + /// </summary>
  48 + public DateTime createTime { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 更新时间
  52 + /// </summary>
  53 + public DateTime updateTime { get; set; }
  54 + }
  55 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhFeedback/LqXhFeedbackListQueryInput.cs 0 → 100644
  1 +using System;
  2 +
  3 +namespace NCC.Extend.Entitys.Dto.LqXhFeedback
  4 +{
  5 + /// <summary>
  6 + /// 耗卡反馈列表查询输入
  7 + /// </summary>
  8 + public class LqXhFeedbackListQueryInput : NCC.Common.Filter.PageInputBase
  9 + {
  10 + /// <summary>
  11 + /// 耗卡记录ID
  12 + /// </summary>
  13 + public string ConsumeId { get; set; }
  14 +
  15 + /// <summary>
  16 + /// 添加人ID
  17 + /// </summary>
  18 + public string CreateUser { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 开始时间
  22 + /// </summary>
  23 + public DateTime? StartTime { get; set; }
  24 +
  25 + /// <summary>
  26 + /// 结束时间
  27 + /// </summary>
  28 + public DateTime? EndTime { get; set; }
  29 + }
  30 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhFeedback/LqXhFeedbackUpInput.cs 0 → 100644
  1 +using System;
  2 +using System.ComponentModel.DataAnnotations;
  3 +
  4 +namespace NCC.Extend.Entitys.Dto.LqXhFeedback
  5 +{
  6 + /// <summary>
  7 + /// 耗卡反馈更新输入
  8 + /// </summary>
  9 + public class LqXhFeedbackUpInput : LqXhFeedbackCrInput
  10 + {
  11 + /// <summary>
  12 + /// 反馈记录ID
  13 + /// </summary>
  14 + [Required(ErrorMessage = "反馈记录ID不能为空")]
  15 + [Display(Name = "反馈记录ID", Description = "要更新的反馈记录ID")]
  16 + public new string id { get; set; }
  17 + }
  18 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs
@@ -75,6 +75,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk @@ -75,6 +75,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
75 public string czry { get; set; } 75 public string czry { get; set; }
76 76
77 /// <summary> 77 /// <summary>
  78 + /// 签名文件
  79 + /// </summary>
  80 + public string signatureFile { get; set; }
  81 +
  82 + /// <summary>
78 /// 耗卡_品项明细 83 /// 耗卡_品项明细
79 /// </summary> 84 /// </summary>
80 public List<LqXhPxmxCrInput> lqXhPxmxList { get; set; } 85 public List<LqXhPxmxCrInput> lqXhPxmxList { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkInfoOutput.cs
@@ -15,96 +15,116 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk @@ -15,96 +15,116 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
15 /// 耗卡编号 15 /// 耗卡编号
16 /// </summary> 16 /// </summary>
17 public string id { get; set; } 17 public string id { get; set; }
18 - 18 +
19 /// <summary> 19 /// <summary>
20 /// 门店 20 /// 门店
21 /// </summary> 21 /// </summary>
22 public string md { get; set; } 22 public string md { get; set; }
23 - 23 +
24 /// <summary> 24 /// <summary>
25 /// 门店编号 25 /// 门店编号
26 /// </summary> 26 /// </summary>
27 public string mdbh { get; set; } 27 public string mdbh { get; set; }
28 - 28 +
29 /// <summary> 29 /// <summary>
30 /// 门店名称 30 /// 门店名称
31 /// </summary> 31 /// </summary>
32 public string mdmc { get; set; } 32 public string mdmc { get; set; }
33 - 33 +
34 /// <summary> 34 /// <summary>
35 /// 会员 35 /// 会员
36 /// </summary> 36 /// </summary>
37 public string hy { get; set; } 37 public string hy { get; set; }
38 - 38 +
39 /// <summary> 39 /// <summary>
40 /// 会员账号 40 /// 会员账号
41 /// </summary> 41 /// </summary>
42 public string hyzh { get; set; } 42 public string hyzh { get; set; }
43 - 43 +
44 /// <summary> 44 /// <summary>
45 /// 会员名称 45 /// 会员名称
46 /// </summary> 46 /// </summary>
47 public string hymc { get; set; } 47 public string hymc { get; set; }
48 - 48 +
  49 + /// <summary>
  50 + /// 会员手机号
  51 + /// </summary>
  52 + public string memberPhone { get; set; }
  53 +
49 /// <summary> 54 /// <summary>
50 /// 顾客类型 55 /// 顾客类型
51 /// </summary> 56 /// </summary>
52 public string gklx { get; set; } 57 public string gklx { get; set; }
53 - 58 +
54 /// <summary> 59 /// <summary>
55 /// 消费金额 60 /// 消费金额
56 /// </summary> 61 /// </summary>
57 public string xfje { get; set; } 62 public string xfje { get; set; }
58 - 63 +
59 /// <summary> 64 /// <summary>
60 /// 手工费用 65 /// 手工费用
61 /// </summary> 66 /// </summary>
62 public string sgfy { get; set; } 67 public string sgfy { get; set; }
63 - 68 +
64 /// <summary> 69 /// <summary>
65 /// 是否有科技部 70 /// 是否有科技部
66 /// </summary> 71 /// </summary>
67 public string sfykjb { get; set; } 72 public string sfykjb { get; set; }
68 - 73 +
69 /// <summary> 74 /// <summary>
70 /// 健康师业绩 75 /// 健康师业绩
71 /// </summary> 76 /// </summary>
72 public string jksyj { get; set; } 77 public string jksyj { get; set; }
73 - 78 +
74 /// <summary> 79 /// <summary>
75 /// 科技部业绩 80 /// 科技部业绩
76 /// </summary> 81 /// </summary>
77 public string kjbyj { get; set; } 82 public string kjbyj { get; set; }
78 - 83 +
79 /// <summary> 84 /// <summary>
80 /// 品项信息 85 /// 品项信息
81 /// </summary> 86 /// </summary>
82 public string pxxx { get; set; } 87 public string pxxx { get; set; }
83 - 88 +
84 /// <summary> 89 /// <summary>
85 /// 耗卡时间 90 /// 耗卡时间
86 /// </summary> 91 /// </summary>
87 public DateTime? hksj { get; set; } 92 public DateTime? hksj { get; set; }
88 - 93 +
89 /// <summary> 94 /// <summary>
90 /// 操作人员 95 /// 操作人员
91 /// </summary> 96 /// </summary>
92 public string czry { get; set; } 97 public string czry { get; set; }
93 - 98 +
  99 + /// <summary>
  100 + /// 签名文件
  101 + /// </summary>
  102 + public string signatureFile { get; set; }
  103 +
  104 + /// <summary>
  105 + /// 是否有效
  106 + /// </summary>
  107 + public int isEffective { get; set; }
  108 +
  109 + /// <summary>
  110 + /// 作废备注
  111 + /// </summary>
  112 + public string cancelRemark { get; set; }
  113 +
94 /// <summary> 114 /// <summary>
95 /// 健康师业绩 115 /// 健康师业绩
96 /// </summary> 116 /// </summary>
97 public List<LqXhJksyjInfoOutput> lqXhJksyjList { get; set; } 117 public List<LqXhJksyjInfoOutput> lqXhJksyjList { get; set; }
98 - 118 +
99 /// <summary> 119 /// <summary>
100 /// 科技部老师业绩 120 /// 科技部老师业绩
101 /// </summary> 121 /// </summary>
102 public List<LqXhKjbsyjInfoOutput> lqXhKjbsyjList { get; set; } 122 public List<LqXhKjbsyjInfoOutput> lqXhKjbsyjList { get; set; }
103 - 123 +
104 /// <summary> 124 /// <summary>
105 /// 耗卡_品项明细 125 /// 耗卡_品项明细
106 /// </summary> 126 /// </summary>
107 public List<LqXhPxmxInfoOutput> lqXhPxmxList { get; set; } 127 public List<LqXhPxmxInfoOutput> lqXhPxmxList { get; set; }
108 - 128 +
109 } 129 }
110 } 130 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkListOutput.cs
1 using System; 1 using System;
  2 +using System.Collections.Generic;
  3 +using NCC.Extend.Entitys.Dto.LqXhPxmx;
2 4
3 namespace NCC.Extend.Entitys.Dto.LqXhHyhk 5 namespace NCC.Extend.Entitys.Dto.LqXhHyhk
4 { 6 {
@@ -77,5 +79,20 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk @@ -77,5 +79,20 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk
77 /// </summary> 79 /// </summary>
78 public string czry { get; set; } 80 public string czry { get; set; }
79 81
  82 + /// <summary>
  83 + /// 耗卡明细列表
  84 + /// </summary>
  85 + public List<LqXhPxmxInfoOutput> ConsumeDetails { get; set; }
  86 +
  87 + /// <summary>
  88 + /// 签名文件
  89 + /// </summary>
  90 + public string signatureFile { get; set; }
  91 +
  92 + /// <summary>
  93 + /// 是否有效
  94 + /// </summary>
  95 + public int isEffective { get; set; }
  96 +
80 } 97 }
81 } 98 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlListOutput.cs
@@ -11,97 +11,97 @@ namespace NCC.Extend.Entitys.Dto.LqXmzl @@ -11,97 +11,97 @@ namespace NCC.Extend.Entitys.Dto.LqXmzl
11 /// 主键 11 /// 主键
12 /// </summary> 12 /// </summary>
13 public string id { get; set; } 13 public string id { get; set; }
14 - 14 +
15 /// <summary> 15 /// <summary>
16 /// 项目编号 16 /// 项目编号
17 /// </summary> 17 /// </summary>
18 public string xmbh { get; set; } 18 public string xmbh { get; set; }
19 - 19 +
20 /// <summary> 20 /// <summary>
21 /// 项目名称 21 /// 项目名称
22 /// </summary> 22 /// </summary>
23 public string xmmc { get; set; } 23 public string xmmc { get; set; }
24 - 24 +
25 /// <summary> 25 /// <summary>
26 /// 标准价格 26 /// 标准价格
27 /// </summary> 27 /// </summary>
28 public decimal bzjg { get; set; } 28 public decimal bzjg { get; set; }
29 - 29 +
30 /// <summary> 30 /// <summary>
31 /// 项目时长(分钟) 31 /// 项目时长(分钟)
32 /// </summary> 32 /// </summary>
33 public int? xmsc { get; set; } 33 public int? xmsc { get; set; }
34 - 34 +
35 /// <summary> 35 /// <summary>
36 /// 基础服务提成 36 /// 基础服务提成
37 /// </summary> 37 /// </summary>
38 public decimal jcfwtc { get; set; } 38 public decimal jcfwtc { get; set; }
39 - 39 +
40 /// <summary> 40 /// <summary>
41 /// 分类①-汇总表 41 /// 分类①-汇总表
42 /// </summary> 42 /// </summary>
43 public string fl1 { get; set; } 43 public string fl1 { get; set; }
44 - 44 +
45 /// <summary> 45 /// <summary>
46 /// 分类②-汇总表 46 /// 分类②-汇总表
47 /// </summary> 47 /// </summary>
48 public string fl2 { get; set; } 48 public string fl2 { get; set; }
49 - 49 +
50 /// <summary> 50 /// <summary>
51 /// 分类③-工资用 51 /// 分类③-工资用
52 /// </summary> 52 /// </summary>
53 public string fl3 { get; set; } 53 public string fl3 { get; set; }
54 - 54 +
55 /// <summary> 55 /// <summary>
56 /// 分类④-统计品项用 56 /// 分类④-统计品项用
57 /// </summary> 57 /// </summary>
58 public string fl4 { get; set; } 58 public string fl4 { get; set; }
59 - 59 +
60 /// <summary> 60 /// <summary>
61 /// 统计类别 61 /// 统计类别
62 /// </summary> 62 /// </summary>
63 public string tjlb { get; set; } 63 public string tjlb { get; set; }
64 - 64 +
65 /// <summary> 65 /// <summary>
66 /// 折扣类别 66 /// 折扣类别
67 /// </summary> 67 /// </summary>
68 public string zklb { get; set; } 68 public string zklb { get; set; }
69 - 69 +
70 /// <summary> 70 /// <summary>
71 /// 分类 71 /// 分类
72 /// </summary> 72 /// </summary>
73 public string fl { get; set; } 73 public string fl { get; set; }
74 - 74 +
75 /// <summary> 75 /// <summary>
76 /// 其它1 76 /// 其它1
77 /// </summary> 77 /// </summary>
78 public string qt1 { get; set; } 78 public string qt1 { get; set; }
79 - 79 +
80 /// <summary> 80 /// <summary>
81 /// 其它2 81 /// 其它2
82 /// </summary> 82 /// </summary>
83 public string qt2 { get; set; } 83 public string qt2 { get; set; }
84 - 84 +
85 /// <summary> 85 /// <summary>
86 /// 溯源金额 86 /// 溯源金额
87 /// </summary> 87 /// </summary>
88 public decimal? syje { get; set; } 88 public decimal? syje { get; set; }
89 - 89 +
90 /// <summary> 90 /// <summary>
91 /// Cell金额 91 /// Cell金额
92 /// </summary> 92 /// </summary>
93 public decimal? cellje { get; set; } 93 public decimal? cellje { get; set; }
94 - 94 +
95 /// <summary> 95 /// <summary>
96 /// 手工费 96 /// 手工费
97 /// </summary> 97 /// </summary>
98 public decimal? sgf { get; set; } 98 public decimal? sgf { get; set; }
99 - 99 +
100 /// <summary> 100 /// <summary>
101 /// 项目次数 101 /// 项目次数
102 /// </summary> 102 /// </summary>
103 public int? projectNumber { get; set; } 103 public int? projectNumber { get; set; }
104 - 104 +
105 /// <summary> 105 /// <summary>
106 /// 来源类型 106 /// 来源类型
107 /// </summary> 107 /// </summary>
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/Dto/LqMdXdbhsj/LqMdXdbhsjCrInput.cs
@@ -38,5 +38,12 @@ namespace NCC.Extend.Entitys.Dto.LqMdXdbhsj @@ -38,5 +38,12 @@ namespace NCC.Extend.Entitys.Dto.LqMdXdbhsj
38 [Required(ErrorMessage = "是否启用不能为空")] 38 [Required(ErrorMessage = "是否启用不能为空")]
39 [Range(0, 1, ErrorMessage = "是否启用值必须在0-1之间")] 39 [Range(0, 1, ErrorMessage = "是否启用值必须在0-1之间")]
40 public int sfqy { get; set; } = 1; 40 public int sfqy { get; set; } = 1;
  41 +
  42 + /// <summary>
  43 + /// 阶段
  44 + /// </summary>
  45 + [Required(ErrorMessage = "阶段不能为空")]
  46 + [Range(0, 1, ErrorMessage = "阶段值必须在1-3之间")]
  47 + public int stage { get; set; } = 1;
41 } 48 }
42 } 49 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/Dto/LqMdXdbhsj/LqMdXdbhsjInfoOutput.cs
@@ -41,5 +41,10 @@ namespace NCC.Extend.Entitys.Dto.LqMdXdbhsj @@ -41,5 +41,10 @@ namespace NCC.Extend.Entitys.Dto.LqMdXdbhsj
41 /// 是否启用 41 /// 是否启用
42 /// </summary> 42 /// </summary>
43 public int sfqy { get; set; } 43 public int sfqy { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 阶段
  47 + /// </summary>
  48 + public int stage { get; set; }
44 } 49 }
45 } 50 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/Dto/LqMdXdbhsj/LqMdXdbhsjListOutput.cs
@@ -41,5 +41,10 @@ namespace NCC.Extend.Entitys.Dto.LqMdXdbhsj @@ -41,5 +41,10 @@ namespace NCC.Extend.Entitys.Dto.LqMdXdbhsj
41 /// 是否启用 41 /// 是否启用
42 /// </summary> 42 /// </summary>
43 public int sfqy { get; set; } 43 public int sfqy { get; set; }
  44 +
  45 + /// <summary>
  46 + /// 阶段
  47 + /// </summary>
  48 + public int stage { get; set; }
44 } 49 }
45 } 50 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/Dto/LqMdXdbhsj/LqMdXdbhsjUpInput.cs
@@ -38,5 +38,12 @@ namespace NCC.Extend.Entitys.Dto.LqMdXdbhsj @@ -38,5 +38,12 @@ namespace NCC.Extend.Entitys.Dto.LqMdXdbhsj
38 [Required(ErrorMessage = "是否启用不能为空")] 38 [Required(ErrorMessage = "是否启用不能为空")]
39 [Range(0, 1, ErrorMessage = "是否启用值必须在0-1之间")] 39 [Range(0, 1, ErrorMessage = "是否启用值必须在0-1之间")]
40 public int sfqy { get; set; } 40 public int sfqy { get; set; }
  41 +
  42 + /// <summary>
  43 + /// 阶段
  44 + /// </summary>
  45 + [Required(ErrorMessage = "阶段不能为空")]
  46 + [Range(0, 1, ErrorMessage = "阶段值必须在1-3之间")]
  47 + public int stage { get; set; } = 1;
41 } 48 }
42 } 49 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_hytk/LqHytkHytkEntity.cs
@@ -137,5 +137,11 @@ namespace NCC.Extend.Entitys.lq_hytk_hytk @@ -137,5 +137,11 @@ namespace NCC.Extend.Entitys.lq_hytk_hytk
137 /// </summary> 137 /// </summary>
138 [SugarColumn(ColumnName = "F_IsEffective")] 138 [SugarColumn(ColumnName = "F_IsEffective")]
139 public int IsEffective { get; set; } = StatusEnum.有效.GetHashCode(); 139 public int IsEffective { get; set; } = StatusEnum.有效.GetHashCode();
  140 +
  141 + /// <summary>
  142 + /// 签名文件
  143 + /// </summary>
  144 + [SugarColumn(ColumnName = "F_SignatureFile")]
  145 + public string SignatureFile { get; set; }
140 } 146 }
141 } 147 }
142 \ No newline at end of file 148 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kdjlb/LqKdKdjlbEntity.cs
@@ -157,24 +157,6 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb @@ -157,24 +157,6 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb
157 public string Kdhysjh { get; set; } 157 public string Kdhysjh { get; set; }
158 158
159 /// <summary> 159 /// <summary>
160 - /// 健康师业绩  
161 - /// </summary>  
162 - [SugarColumn(ColumnName = "jksyj")]  
163 - public string Jksyj { get; set; }  
164 -  
165 - /// <summary>  
166 - /// 科技部老师业绩  
167 - /// </summary>  
168 - [SugarColumn(ColumnName = "kjblsyj")]  
169 - public string Kjblsyj { get; set; }  
170 -  
171 - /// <summary>  
172 - /// 品项信息  
173 - /// </summary>  
174 - [SugarColumn(ColumnName = "pxxx")]  
175 - public string Pxxx { get; set; }  
176 -  
177 - /// <summary>  
178 /// 开单用户 160 /// 开单用户
179 /// </summary> 161 /// </summary>
180 [SugarColumn(ColumnName = "F_CreateUser")] 162 [SugarColumn(ColumnName = "F_CreateUser")]
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_md_xdbhsj/LqMdXdbhsjEntity.cs
@@ -16,42 +16,48 @@ namespace NCC.Extend.Entitys.lq_md_xdbhsj @@ -16,42 +16,48 @@ namespace NCC.Extend.Entitys.lq_md_xdbhsj
16 /// </summary> 16 /// </summary>
17 [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] 17 [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
18 public string Id { get; set; } 18 public string Id { get; set; }
19 - 19 +
20 /// <summary> 20 /// <summary>
21 /// 门店ID 21 /// 门店ID
22 /// </summary> 22 /// </summary>
23 - [SugarColumn(ColumnName = "mdid")] 23 + [SugarColumn(ColumnName = "mdid")]
24 public string Mdid { get; set; } 24 public string Mdid { get; set; }
25 - 25 +
26 /// <summary> 26 /// <summary>
27 /// 保护开始时间 27 /// 保护开始时间
28 /// </summary> 28 /// </summary>
29 - [SugarColumn(ColumnName = "bhkssj")] 29 + [SugarColumn(ColumnName = "bhkssj")]
30 public DateTime Bhkssj { get; set; } 30 public DateTime Bhkssj { get; set; }
31 - 31 +
32 /// <summary> 32 /// <summary>
33 /// 保护结束时间 33 /// 保护结束时间
34 /// </summary> 34 /// </summary>
35 - [SugarColumn(ColumnName = "bhjssj")] 35 + [SugarColumn(ColumnName = "bhjssj")]
36 public DateTime Bhjssj { get; set; } 36 public DateTime Bhjssj { get; set; }
37 - 37 +
38 /// <summary> 38 /// <summary>
39 /// 说明 39 /// 说明
40 /// </summary> 40 /// </summary>
41 - [SugarColumn(ColumnName = "sm")] 41 + [SugarColumn(ColumnName = "sm")]
42 public string Sm { get; set; } 42 public string Sm { get; set; }
43 - 43 +
44 /// <summary> 44 /// <summary>
45 /// 创建时间 45 /// 创建时间
46 /// </summary> 46 /// </summary>
47 - [SugarColumn(ColumnName = "cjsj")] 47 + [SugarColumn(ColumnName = "cjsj")]
48 public DateTime Cjsj { get; set; } 48 public DateTime Cjsj { get; set; }
49 - 49 +
50 /// <summary> 50 /// <summary>
51 /// 是否启用(1启用,0禁用) 51 /// 是否启用(1启用,0禁用)
52 /// </summary> 52 /// </summary>
53 - [SugarColumn(ColumnName = "sfqy")] 53 + [SugarColumn(ColumnName = "sfqy")]
54 public int Sfqy { get; set; } 54 public int Sfqy { get; set; }
55 - 55 +
  56 + /// <summary>
  57 + /// 阶段
  58 + /// </summary>
  59 + [SugarColumn(ColumnName = "F_Stage")]
  60 + public int Stage { get; set; }
  61 +
56 } 62 }
57 } 63 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_mdxx/LqMdxxEntity.cs
@@ -16,168 +16,174 @@ namespace NCC.Extend.Entitys.lq_mdxx @@ -16,168 +16,174 @@ namespace NCC.Extend.Entitys.lq_mdxx
16 /// </summary> 16 /// </summary>
17 [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] 17 [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
18 public string Id { get; set; } 18 public string Id { get; set; }
19 - 19 +
20 /// <summary> 20 /// <summary>
21 /// 门店编码 21 /// 门店编码
22 /// </summary> 22 /// </summary>
23 - [SugarColumn(ColumnName = "mdbm")] 23 + [SugarColumn(ColumnName = "mdbm")]
24 public string Mdbm { get; set; } 24 public string Mdbm { get; set; }
25 - 25 +
26 /// <summary> 26 /// <summary>
27 /// 单据门店编号 27 /// 单据门店编号
28 /// </summary> 28 /// </summary>
29 - [SugarColumn(ColumnName = "djmdbh")] 29 + [SugarColumn(ColumnName = "djmdbh")]
30 public string Djmdbh { get; set; } 30 public string Djmdbh { get; set; }
31 - 31 +
32 /// <summary> 32 /// <summary>
33 /// 单据门店 33 /// 单据门店
34 /// </summary> 34 /// </summary>
35 - [SugarColumn(ColumnName = "djmd")] 35 + [SugarColumn(ColumnName = "djmd")]
36 public string Djmd { get; set; } 36 public string Djmd { get; set; }
37 - 37 +
38 /// <summary> 38 /// <summary>
39 /// 店名 39 /// 店名
40 /// </summary> 40 /// </summary>
41 - [SugarColumn(ColumnName = "dm")] 41 + [SugarColumn(ColumnName = "dm")]
42 public string Dm { get; set; } 42 public string Dm { get; set; }
43 - 43 +
44 /// <summary> 44 /// <summary>
45 /// 城市 45 /// 城市
46 /// </summary> 46 /// </summary>
47 - [SugarColumn(ColumnName = "cs")] 47 + [SugarColumn(ColumnName = "cs")]
48 public string Cs { get; set; } 48 public string Cs { get; set; }
49 - 49 +
50 /// <summary> 50 /// <summary>
51 /// 地址 51 /// 地址
52 /// </summary> 52 /// </summary>
53 - [SugarColumn(ColumnName = "dz")] 53 + [SugarColumn(ColumnName = "dz")]
54 public string Dz { get; set; } 54 public string Dz { get; set; }
55 - 55 +
56 /// <summary> 56 /// <summary>
57 /// 姓名 57 /// 姓名
58 /// </summary> 58 /// </summary>
59 - [SugarColumn(ColumnName = "xm")] 59 + [SugarColumn(ColumnName = "xm")]
60 public string Xm { get; set; } 60 public string Xm { get; set; }
61 - 61 +
62 /// <summary> 62 /// <summary>
63 /// 电话号码 63 /// 电话号码
64 /// </summary> 64 /// </summary>
65 - [SugarColumn(ColumnName = "dhhm")] 65 + [SugarColumn(ColumnName = "dhhm")]
66 public string Dhhm { get; set; } 66 public string Dhhm { get; set; }
67 - 67 +
68 /// <summary> 68 /// <summary>
69 /// 座机 69 /// 座机
70 /// </summary> 70 /// </summary>
71 - [SugarColumn(ColumnName = "zj")] 71 + [SugarColumn(ColumnName = "zj")]
72 public string Zj { get; set; } 72 public string Zj { get; set; }
73 - 73 +
74 /// <summary> 74 /// <summary>
75 /// 开业时间 75 /// 开业时间
76 /// </summary> 76 /// </summary>
77 - [SugarColumn(ColumnName = "kysj")] 77 + [SugarColumn(ColumnName = "kysj")]
78 public DateTime? Kysj { get; set; } 78 public DateTime? Kysj { get; set; }
79 - 79 +
80 /// <summary> 80 /// <summary>
81 /// 最新状态 81 /// 最新状态
82 /// </summary> 82 /// </summary>
83 - [SugarColumn(ColumnName = "zxzt")] 83 + [SugarColumn(ColumnName = "zxzt")]
84 public string Zxzt { get; set; } 84 public string Zxzt { get; set; }
85 - 85 +
86 /// <summary> 86 /// <summary>
87 /// 工商名称 87 /// 工商名称
88 /// </summary> 88 /// </summary>
89 - [SugarColumn(ColumnName = "gsmc")] 89 + [SugarColumn(ColumnName = "gsmc")]
90 public string Gsmc { get; set; } 90 public string Gsmc { get; set; }
91 - 91 +
92 /// <summary> 92 /// <summary>
93 /// 法人 93 /// 法人
94 /// </summary> 94 /// </summary>
95 - [SugarColumn(ColumnName = "fr")] 95 + [SugarColumn(ColumnName = "fr")]
96 public string Fr { get; set; } 96 public string Fr { get; set; }
97 - 97 +
98 /// <summary> 98 /// <summary>
99 /// 有无社保 99 /// 有无社保
100 /// </summary> 100 /// </summary>
101 - [SugarColumn(ColumnName = "ywsb")] 101 + [SugarColumn(ColumnName = "ywsb")]
102 public string Ywsb { get; set; } 102 public string Ywsb { get; set; }
103 - 103 +
104 /// <summary> 104 /// <summary>
105 /// 事业部 105 /// 事业部
106 /// </summary> 106 /// </summary>
107 - [SugarColumn(ColumnName = "syb")] 107 + [SugarColumn(ColumnName = "syb")]
108 public string Syb { get; set; } 108 public string Syb { get; set; }
109 - 109 +
110 /// <summary> 110 /// <summary>
111 /// 教育部 111 /// 教育部
112 /// </summary> 112 /// </summary>
113 - [SugarColumn(ColumnName = "jyb")] 113 + [SugarColumn(ColumnName = "jyb")]
114 public string Jyb { get; set; } 114 public string Jyb { get; set; }
115 - 115 +
116 /// <summary> 116 /// <summary>
117 /// 科技部 117 /// 科技部
118 /// </summary> 118 /// </summary>
119 - [SugarColumn(ColumnName = "kjb")] 119 + [SugarColumn(ColumnName = "kjb")]
120 public string Kjb { get; set; } 120 public string Kjb { get; set; }
121 - 121 +
122 /// <summary> 122 /// <summary>
123 /// 大项目部 123 /// 大项目部
124 /// </summary> 124 /// </summary>
125 - [SugarColumn(ColumnName = "dxmb")] 125 + [SugarColumn(ColumnName = "dxmb")]
126 public string Dxmb { get; set; } 126 public string Dxmb { get; set; }
127 - 127 +
128 /// <summary> 128 /// <summary>
129 /// 归属起始时间 129 /// 归属起始时间
130 /// </summary> 130 /// </summary>
131 - [SugarColumn(ColumnName = "gsqssj")] 131 + [SugarColumn(ColumnName = "gsqssj")]
132 public DateTime? Gsqssj { get; set; } 132 public DateTime? Gsqssj { get; set; }
133 - 133 +
134 /// <summary> 134 /// <summary>
135 /// 归属终止时间 135 /// 归属终止时间
136 /// </summary> 136 /// </summary>
137 - [SugarColumn(ColumnName = "gszzsj")] 137 + [SugarColumn(ColumnName = "gszzsj")]
138 public DateTime? Gszzsj { get; set; } 138 public DateTime? Gszzsj { get; set; }
139 - 139 +
140 /// <summary> 140 /// <summary>
141 /// 状态 141 /// 状态
142 /// </summary> 142 /// </summary>
143 - [SugarColumn(ColumnName = "status")] 143 + [SugarColumn(ColumnName = "status")]
144 public int? Status { get; set; } 144 public int? Status { get; set; }
145 - 145 +
146 /// <summary> 146 /// <summary>
147 /// 目标-门店生命线 147 /// 目标-门店生命线
148 /// </summary> 148 /// </summary>
149 - [SugarColumn(ColumnName = "xsyj")] 149 + [SugarColumn(ColumnName = "xsyj")]
150 public decimal? Xsyj { get; set; } 150 public decimal? Xsyj { get; set; }
151 - 151 +
152 /// <summary> 152 /// <summary>
153 /// 目标-消耗业绩 153 /// 目标-消耗业绩
154 /// </summary> 154 /// </summary>
155 - [SugarColumn(ColumnName = "xhyj")] 155 + [SugarColumn(ColumnName = "xhyj")]
156 public decimal? Xhyj { get; set; } 156 public decimal? Xhyj { get; set; }
157 - 157 +
158 /// <summary> 158 /// <summary>
159 /// 目标-项目数 159 /// 目标-项目数
160 /// </summary> 160 /// </summary>
161 - [SugarColumn(ColumnName = "xms")] 161 + [SugarColumn(ColumnName = "xms")]
162 public int? Xms { get; set; } 162 public int? Xms { get; set; }
163 - 163 +
164 /// <summary> 164 /// <summary>
165 /// 目标-人头1 165 /// 目标-人头1
166 /// </summary> 166 /// </summary>
167 - [SugarColumn(ColumnName = "rt1")] 167 + [SugarColumn(ColumnName = "rt1")]
168 public int? Rt1 { get; set; } 168 public int? Rt1 { get; set; }
169 - 169 +
170 /// <summary> 170 /// <summary>
171 /// 目标-人头2 171 /// 目标-人头2
172 /// </summary> 172 /// </summary>
173 - [SugarColumn(ColumnName = "rt2")] 173 + [SugarColumn(ColumnName = "rt2")]
174 public int? Rt2 { get; set; } 174 public int? Rt2 { get; set; }
175 - 175 +
176 /// <summary> 176 /// <summary>
177 /// 目标-人次 177 /// 目标-人次
178 /// </summary> 178 /// </summary>
179 - [SugarColumn(ColumnName = "rc")] 179 + [SugarColumn(ColumnName = "rc")]
180 public int? Rc { get; set; } 180 public int? Rc { get; set; }
181 - 181 +
  182 + /// <summary>
  183 + /// 门店类型
  184 + /// </summary>
  185 + [SugarColumn(ColumnName = "F_StoreType")]
  186 + public int? StoreType { get; set; }
  187 +
182 } 188 }
183 } 189 }
184 \ No newline at end of file 190 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_feedback/LqXhFeedbackEntity.cs 0 → 100644
  1 +using System;
  2 +using NCC.Common.Const;
  3 +using SqlSugar;
  4 +
  5 +namespace NCC.Extend.Entitys.lq_xh_feedback
  6 +{
  7 + /// <summary>
  8 + /// 耗卡反馈表
  9 + /// </summary>
  10 + [SugarTable("lq_xh_feedback")]
  11 + [Tenant(ClaimConst.TENANT_ID)]
  12 + public class LqXhFeedbackEntity
  13 + {
  14 + /// <summary>
  15 + /// 反馈记录ID
  16 + /// </summary>
  17 + [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
  18 + public string Id { get; set; }
  19 +
  20 + /// <summary>
  21 + /// 耗卡记录ID
  22 + /// </summary>
  23 + [SugarColumn(ColumnName = "F_ConsumeId")]
  24 + public string ConsumeId { get; set; }
  25 +
  26 + /// <summary>
  27 + /// 前图片
  28 + /// </summary>
  29 + [SugarColumn(ColumnName = "F_BeforeImage")]
  30 + public string BeforeImage { get; set; }
  31 +
  32 + /// <summary>
  33 + /// 后图片
  34 + /// </summary>
  35 + [SugarColumn(ColumnName = "F_AfterImage")]
  36 + public string AfterImage { get; set; }
  37 +
  38 + /// <summary>
  39 + /// 备注
  40 + /// </summary>
  41 + [SugarColumn(ColumnName = "F_Remark")]
  42 + public string Remark { get; set; }
  43 +
  44 + /// <summary>
  45 + /// 添加人ID
  46 + /// </summary>
  47 + [SugarColumn(ColumnName = "F_CreateUser")]
  48 + public string CreateUser { get; set; }
  49 +
  50 + /// <summary>
  51 + /// 添加时间
  52 + /// </summary>
  53 + [SugarColumn(ColumnName = "F_CreateTime")]
  54 + public DateTime CreateTime { get; set; }
  55 +
  56 + /// <summary>
  57 + /// 更新时间
  58 + /// </summary>
  59 + [SugarColumn(ColumnName = "F_UpdateTime")]
  60 + public DateTime UpdateTime { get; set; }
  61 + }
  62 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_hyhk/LqXhHyhkEntity.cs
@@ -120,5 +120,11 @@ namespace NCC.Extend.Entitys.lq_xh_hyhk @@ -120,5 +120,11 @@ namespace NCC.Extend.Entitys.lq_xh_hyhk
120 /// </summary> 120 /// </summary>
121 [SugarColumn(ColumnName = "F_IsEffective")] 121 [SugarColumn(ColumnName = "F_IsEffective")]
122 public int IsEffective { get; set; } = StatusEnum.有效.GetHashCode(); 122 public int IsEffective { get; set; } = StatusEnum.有效.GetHashCode();
  123 +
  124 + /// <summary>
  125 + /// 作废备注
  126 + /// </summary>
  127 + [SugarColumn(ColumnName = "F_CancelRemark")]
  128 + public string CancelRemark { get; set; }
123 } 129 }
124 } 130 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/StoreTypeEnum.cs 0 → 100644
  1 +using System.ComponentModel;
  2 +
  3 +namespace NCC.Extend.Entitys.Enum
  4 +{
  5 + /// <summary>
  6 + /// 门店类别枚举
  7 + /// </summary>
  8 + public enum StoreTypeEnum
  9 + {
  10 + /// <summary>
  11 + /// 200平门店
  12 + /// </summary>
  13 + [Description("200平门店")]
  14 + 门店200平 = 1,
  15 +
  16 + /// <summary>
  17 + /// 旗舰店
  18 + /// </summary>
  19 + [Description("旗舰店")]
  20 + 旗舰店 = 2,
  21 + }
  22 +}
netcore/src/Modularity/Extend/NCC.Extend.Interfaces/LqXhFeedback/ILqXhFeedbackService.cs 0 → 100644
  1 +using System.Threading.Tasks;
  2 +using NCC.Extend.Entitys.Dto.LqXhFeedback;
  3 +
  4 +namespace NCC.Extend.Interfaces.LqXhFeedback
  5 +{
  6 + /// <summary>
  7 + /// 耗卡反馈服务接口
  8 + /// </summary>
  9 + public interface ILqXhFeedbackService
  10 + {
  11 +
  12 + }
  13 +}
netcore/src/Modularity/Extend/NCC.Extend/LqHytkHytkService.cs
@@ -544,24 +544,16 @@ namespace NCC.Extend.LqHytkHytk @@ -544,24 +544,16 @@ namespace NCC.Extend.LqHytkHytk
544 _db.BeginTran(); 544 _db.BeginTran();
545 545
546 // 1. 删除退卡品项明细记录 546 // 1. 删除退卡品项明细记录
547 - await _db.Deleteable<LqHytkMxEntity>()  
548 - .Where(x => x.RefundInfoId == id)  
549 - .ExecuteCommandAsync(); 547 + await _db.Deleteable<LqHytkMxEntity>().Where(x => x.RefundInfoId == id).ExecuteCommandAsync();
550 548
551 // 2. 删除退卡健康师业绩记录 549 // 2. 删除退卡健康师业绩记录
552 - await _db.Deleteable<LqHytkJksyjEntity>()  
553 - .Where(x => x.Gltkbh == id)  
554 - .ExecuteCommandAsync(); 550 + await _db.Deleteable<LqHytkJksyjEntity>().Where(x => x.Gltkbh == id).ExecuteCommandAsync();
555 551
556 // 3. 删除退卡科技部老师业绩记录 552 // 3. 删除退卡科技部老师业绩记录
557 - await _db.Deleteable<LqHytkKjbsyjEntity>()  
558 - .Where(x => x.Gltkbh == id)  
559 - .ExecuteCommandAsync(); 553 + await _db.Deleteable<LqHytkKjbsyjEntity>().Where(x => x.Gltkbh == id).ExecuteCommandAsync();
560 554
561 // 4. 删除退卡主表记录 555 // 4. 删除退卡主表记录
562 - await _db.Deleteable<LqHytkHytkEntity>()  
563 - .Where(x => x.Id == id)  
564 - .ExecuteCommandAsync(); 556 + await _db.Deleteable<LqHytkHytkEntity>().Where(x => x.Id == id).ExecuteCommandAsync();
565 557
566 // 提交事务 558 // 提交事务
567 _db.CommitTran(); 559 _db.CommitTran();
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
@@ -113,7 +113,10 @@ namespace NCC.Extend.LqKdKdjlb @@ -113,7 +113,10 @@ namespace NCC.Extend.LqKdKdjlb
113 } 113 }
114 114
115 var output = entity.Adapt<LqKdKdjlbInfoOutput>(); 115 var output = entity.Adapt<LqKdKdjlbInfoOutput>();
116 - 116 + //获取会员信息
  117 + var MemberInfo = await _db.Queryable<LqKhxxEntity>().FirstAsync(p => p.Id == entity.Kdhy);
  118 + output.kdhyc = MemberInfo.Khmc;
  119 + output.kdhysjh = MemberInfo.Sjh;
117 // 2. 查询品项明细列表 120 // 2. 查询品项明细列表
118 var lqKdPxmxList = await _db.Queryable<LqKdPxmxEntity>().Where(w => w.Glkdbh == entity.Id).ToListAsync(); 121 var lqKdPxmxList = await _db.Queryable<LqKdPxmxEntity>().Where(w => w.Glkdbh == entity.Id).ToListAsync();
119 122
@@ -217,9 +220,6 @@ namespace NCC.Extend.LqKdKdjlb @@ -217,9 +220,6 @@ namespace NCC.Extend.LqKdKdjlb
217 .WhereIF(!string.IsNullOrEmpty(input.kdhy), p => p.Kdhy.Equals(input.kdhy)) 220 .WhereIF(!string.IsNullOrEmpty(input.kdhy), p => p.Kdhy.Equals(input.kdhy))
218 .WhereIF(!string.IsNullOrEmpty(input.kdhyc), p => p.Kdhyc.Contains(input.kdhyc)) 221 .WhereIF(!string.IsNullOrEmpty(input.kdhyc), p => p.Kdhyc.Contains(input.kdhyc))
219 .WhereIF(!string.IsNullOrEmpty(input.kdhysjh), p => p.Kdhysjh.Contains(input.kdhysjh)) 222 .WhereIF(!string.IsNullOrEmpty(input.kdhysjh), p => p.Kdhysjh.Contains(input.kdhysjh))
220 - .WhereIF(!string.IsNullOrEmpty(input.jksyj), p => p.Jksyj.Contains(input.jksyj))  
221 - .WhereIF(!string.IsNullOrEmpty(input.kjblsyj), p => p.Kjblsyj.Contains(input.kjblsyj))  
222 - .WhereIF(!string.IsNullOrEmpty(input.pxxx), p => p.Pxxx.Contains(input.pxxx))  
223 .WhereIF(!string.IsNullOrEmpty(input.F_FIleUrl), p => p.F_FIleUrl.Contains(input.F_FIleUrl)) 223 .WhereIF(!string.IsNullOrEmpty(input.F_FIleUrl), p => p.F_FIleUrl.Contains(input.F_FIleUrl))
224 .WhereIF(!string.IsNullOrEmpty(input.CreateUser), p => p.CreateUser.Equals(input.CreateUser)) 224 .WhereIF(!string.IsNullOrEmpty(input.CreateUser), p => p.CreateUser.Equals(input.CreateUser))
225 .Select(it => new LqKdKdjlbListOutput 225 .Select(it => new LqKdKdjlbListOutput
@@ -244,11 +244,8 @@ namespace NCC.Extend.LqKdKdjlb @@ -244,11 +244,8 @@ namespace NCC.Extend.LqKdKdjlb
244 jj = it.Jj, 244 jj = it.Jj,
245 bz = it.Bz, 245 bz = it.Bz,
246 kdhy = it.Kdhy, 246 kdhy = it.Kdhy,
247 - kdhyc = it.Kdhyc,  
248 - kdhysjh = it.Kdhysjh,  
249 - jksyj = it.Jksyj,  
250 - kjblsyj = it.Kjblsyj,  
251 - pxxx = it.Pxxx, 247 + kdhyc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc),
  248 + kdhysjh = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh),
252 IsEffective = it.IsEffective, 249 IsEffective = it.IsEffective,
253 CreateUser = it.CreateUser, 250 CreateUser = it.CreateUser,
254 CreateUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), 251 CreateUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName),
@@ -476,7 +473,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -476,7 +473,7 @@ namespace NCC.Extend.LqKdKdjlb
476 //通过开单记录表查询这个会员开单金额 473 //通过开单记录表查询这个会员开单金额
477 var kdAmount = await _db.Queryable<LqKdKdjlbEntity>().Where(u => u.Kdhy == entity.Kdhy).SumAsync(u => u.Sfyj); 474 var kdAmount = await _db.Queryable<LqKdKdjlbEntity>().Where(u => u.Kdhy == entity.Kdhy).SumAsync(u => u.Sfyj);
478 //如果开单金额小于500,为散客,如果大于500,为会员 475 //如果开单金额小于500,为散客,如果大于500,为会员
479 - if (kdAmount < 500) 476 + if (kdAmount < 500 && kdAmount > 0)
480 { 477 {
481 memberInfo.Khlx = MemberTypeEnum.散客.GetHashCode().ToString(); 478 memberInfo.Khlx = MemberTypeEnum.散客.GetHashCode().ToString();
482 } 479 }
@@ -784,9 +781,6 @@ namespace NCC.Extend.LqKdKdjlb @@ -784,9 +781,6 @@ namespace NCC.Extend.LqKdKdjlb
784 .WhereIF(!string.IsNullOrEmpty(input.kdhy), p => p.Kdhy.Equals(input.kdhy)) 781 .WhereIF(!string.IsNullOrEmpty(input.kdhy), p => p.Kdhy.Equals(input.kdhy))
785 .WhereIF(!string.IsNullOrEmpty(input.kdhyc), p => p.Kdhyc.Contains(input.kdhyc)) 782 .WhereIF(!string.IsNullOrEmpty(input.kdhyc), p => p.Kdhyc.Contains(input.kdhyc))
786 .WhereIF(!string.IsNullOrEmpty(input.kdhysjh), p => p.Kdhysjh.Contains(input.kdhysjh)) 783 .WhereIF(!string.IsNullOrEmpty(input.kdhysjh), p => p.Kdhysjh.Contains(input.kdhysjh))
787 - .WhereIF(!string.IsNullOrEmpty(input.jksyj), p => p.Jksyj.Contains(input.jksyj))  
788 - .WhereIF(!string.IsNullOrEmpty(input.kjblsyj), p => p.Kjblsyj.Contains(input.kjblsyj))  
789 - .WhereIF(!string.IsNullOrEmpty(input.pxxx), p => p.Pxxx.Contains(input.pxxx))  
790 .WhereIF(!string.IsNullOrEmpty(input.F_FIleUrl), p => p.F_FIleUrl.Contains(input.F_FIleUrl)) 784 .WhereIF(!string.IsNullOrEmpty(input.F_FIleUrl), p => p.F_FIleUrl.Contains(input.F_FIleUrl))
791 .Select(it => new LqKdKdjlbListOutput 785 .Select(it => new LqKdKdjlbListOutput
792 { 786 {
@@ -812,9 +806,6 @@ namespace NCC.Extend.LqKdKdjlb @@ -812,9 +806,6 @@ namespace NCC.Extend.LqKdKdjlb
812 kdhy = it.Kdhy, 806 kdhy = it.Kdhy,
813 kdhyc = it.Kdhyc, 807 kdhyc = it.Kdhyc,
814 kdhysjh = it.Kdhysjh, 808 kdhysjh = it.Kdhysjh,
815 - jksyj = it.Jksyj,  
816 - kjblsyj = it.Kjblsyj,  
817 - pxxx = it.Pxxx,  
818 F_FIleUrl = it.F_FIleUrl, 809 F_FIleUrl = it.F_FIleUrl,
819 }) 810 })
820 .MergeTable() 811 .MergeTable()
@@ -1432,28 +1423,16 @@ namespace NCC.Extend.LqKdKdjlb @@ -1432,28 +1423,16 @@ namespace NCC.Extend.LqKdKdjlb
1432 await _db.Updateable(entity).ExecuteCommandAsync(); 1423 await _db.Updateable(entity).ExecuteCommandAsync();
1433 1424
1434 // 标记对应开单明细表为无效 1425 // 标记对应开单明细表为无效
1435 - await _db.Updateable<LqKdPxmxEntity>()  
1436 - .SetColumns(it => new LqKdPxmxEntity { IsEffective = StatusEnum.无效.GetHashCode() })  
1437 - .Where(it => it.Glkdbh == input.Id)  
1438 - .ExecuteCommandAsync(); 1426 + await _db.Updateable<LqKdPxmxEntity>().SetColumns(it => new LqKdPxmxEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(it => it.Glkdbh == input.Id).ExecuteCommandAsync();
1439 1427
1440 // 标记健康师业绩为无效 1428 // 标记健康师业绩为无效
1441 - await _db.Updateable<LqKdJksyjEntity>()  
1442 - .SetColumns(it => new LqKdJksyjEntity { IsEffective = StatusEnum.无效.GetHashCode() })  
1443 - .Where(it => it.Glkdbh == input.Id)  
1444 - .ExecuteCommandAsync(); 1429 + await _db.Updateable<LqKdJksyjEntity>().SetColumns(it => new LqKdJksyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(it => it.Glkdbh == input.Id).ExecuteCommandAsync();
1445 1430
1446 // 标记科技部老师业绩为无效 1431 // 标记科技部老师业绩为无效
1447 - await _db.Updateable<LqKdKjbsyjEntity>()  
1448 - .SetColumns(it => new LqKdKjbsyjEntity { IsEffective = StatusEnum.无效.GetHashCode() })  
1449 - .Where(it => it.Glkdbh == input.Id)  
1450 - .ExecuteCommandAsync(); 1432 + await _db.Updateable<LqKdKjbsyjEntity>().SetColumns(it => new LqKdKjbsyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(it => it.Glkdbh == input.Id).ExecuteCommandAsync();
1451 1433
1452 // 标记开单_储扣详细表为无效 1434 // 标记开单_储扣详细表为无效
1453 - await _db.Updateable<LqKdDeductinfoEntity>()  
1454 - .SetColumns(it => new LqKdDeductinfoEntity { IsEffective = StatusEnum.无效.GetHashCode() })  
1455 - .Where(it => it.BillingId == input.Id)  
1456 - .ExecuteCommandAsync(); 1435 + await _db.Updateable<LqKdDeductinfoEntity>().SetColumns(it => new LqKdDeductinfoEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(it => it.BillingId == input.Id).ExecuteCommandAsync();
1457 1436
1458 //关闭事务 1437 //关闭事务
1459 _db.CommitTran(); 1438 _db.CommitTran();
@@ -1715,11 +1694,8 @@ namespace NCC.Extend.LqKdKdjlb @@ -1715,11 +1694,8 @@ namespace NCC.Extend.LqKdKdjlb
1715 jj = it.Jj, 1694 jj = it.Jj,
1716 bz = it.Bz, 1695 bz = it.Bz,
1717 kdhy = it.Kdhy, 1696 kdhy = it.Kdhy,
1718 - kdhyc = it.Kdhyc,  
1719 - kdhysjh = it.Kdhysjh,  
1720 - jksyj = it.Jksyj,  
1721 - kjblsyj = it.Kjblsyj,  
1722 - pxxx = it.Pxxx, 1697 + kdhyc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc),
  1698 + kdhysjh = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh),
1723 IsEffective = it.IsEffective, 1699 IsEffective = it.IsEffective,
1724 CreateUser = it.CreateUser, 1700 CreateUser = it.CreateUser,
1725 CreateUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), 1701 CreateUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName),
@@ -1737,6 +1713,130 @@ namespace NCC.Extend.LqKdKdjlb @@ -1737,6 +1713,130 @@ namespace NCC.Extend.LqKdKdjlb
1737 } 1713 }
1738 #endregion 1714 #endregion
1739 1715
  1716 + #region 获取某个会员的开单记录
  1717 + /// <summary>
  1718 + /// 获取某个会员的开单记录
  1719 + /// </summary>
  1720 + /// <remarks>
  1721 + /// 根据会员ID查询该会员的所有开单记录,支持分页和时间筛选
  1722 + ///
  1723 + /// 示例请求:
  1724 + /// ```json
  1725 + /// {
  1726 + /// "memberId": "会员ID",
  1727 + /// "storeId": "门店ID",
  1728 + /// "startTime": "2025-01-01",
  1729 + /// "endTime": "2025-12-31",
  1730 + /// "currentPage": 1,
  1731 + /// "pageSize": 20
  1732 + /// }
  1733 + /// ```
  1734 + ///
  1735 + /// 参数说明:
  1736 + /// - memberId: 会员ID(必填)
  1737 + /// - storeId: 门店ID(可选)
  1738 + /// - startTime: 开始时间(可选)
  1739 + /// - endTime: 结束时间(可选)
  1740 + /// - currentPage: 当前页码
  1741 + /// - pageSize: 每页大小
  1742 + /// </remarks>
  1743 + /// <param name="input">查询参数</param>
  1744 + /// <returns>分页的开单记录列表</returns>
  1745 + /// <response code="200">成功返回会员开单记录列表</response>
  1746 + /// <response code="400">参数错误</response>
  1747 + /// <response code="500">服务器错误</response>
  1748 + [HttpGet("GetBillingRecordByMemberId")]
  1749 + public async Task<dynamic> GetBillingRecordByMemberId([FromQuery] BillingRecordQueryInput input)
  1750 + {
  1751 + try
  1752 + {
  1753 + var sidx = input.sidx == null ? "kdrq" : input.sidx;
  1754 +
  1755 + var data = await _db.Queryable<LqKdKdjlbEntity>()
  1756 + .Where(p => p.Kdhy == input.MemberId)
  1757 + .WhereIF(input.StartTime.HasValue, p => p.Kdrq >= input.StartTime.Value)
  1758 + .WhereIF(input.EndTime.HasValue, p => p.Kdrq <= input.EndTime.Value)
  1759 + .Select(it => new LqKdKdjlbListOutput
  1760 + {
  1761 + id = it.Id,
  1762 + djmd = it.Djmd,
  1763 + jsj = it.Jsj,
  1764 + kdrq = it.Kdrq,
  1765 + gjlx = it.Gjlx,
  1766 + hgjg = it.Hgjg,
  1767 + zdyj = it.Zdyj,
  1768 + sfyj = it.Sfyj,
  1769 + qk = it.Qk,
  1770 + ckfs = it.Ckfs,
  1771 + fkfs = it.Fkfs,
  1772 + fkyy = it.Fkyy,
  1773 + fkpd = it.Fkpd,
  1774 + khly = it.Khly,
  1775 + tjr = it.Tjr,
  1776 + deductAmount = it.DeductAmount,
  1777 + sfskdd = it.Sfskdd,
  1778 + jj = it.Jj,
  1779 + bz = it.Bz,
  1780 + kdhy = it.Kdhy,
  1781 + kdhyc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc),
  1782 + kdhysjh = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh),
  1783 + IsEffective = it.IsEffective,
  1784 + CreateUser = it.CreateUser,
  1785 + CreateUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName),
  1786 + })
  1787 + .MergeTable()
  1788 + .OrderBy(sidx + " " + input.sort)
  1789 + .ToPagedListAsync(input.currentPage, input.pageSize);
  1790 +
  1791 + // 获取当前页的开单记录ID列表
  1792 + var billingIds = data.list.Select(x => x.id).ToList();
  1793 +
  1794 + // 批量查询品项明细
  1795 + var itemDetails = new List<LqKdPxmxInfoOutput>();
  1796 + if (billingIds.Any())
  1797 + {
  1798 + itemDetails = await _db.Queryable<LqKdPxmxEntity>()
  1799 + .Where(x => billingIds.Contains(x.Glkdbh) && x.IsEffective == StatusEnum.有效.GetHashCode())
  1800 + .Select(x => new LqKdPxmxInfoOutput
  1801 + {
  1802 + id = x.Id,
  1803 + glkdbh = x.Glkdbh,
  1804 + px = x.Px,
  1805 + pxmc = x.Pxmc,
  1806 + pxjg = x.Pxjg,
  1807 + projectNumber = x.ProjectNumber,
  1808 + isEnabled = x.IsEnabled,
  1809 + sourceType = x.SourceType,
  1810 + memberId = x.MemberId,
  1811 + createTime = x.CreateTIme,
  1812 + totalPrice = x.TotalPrice,
  1813 + actualPrice = x.ActualPrice,
  1814 + remark = x.Remark,
  1815 + isEffective = x.IsEffective
  1816 + })
  1817 + .ToListAsync();
  1818 + }
  1819 + // 按开单ID分组品项明细
  1820 + var itemDetailsGrouped = itemDetails.GroupBy(x => x.glkdbh)
  1821 + .ToDictionary(g => g.Key, g => g.ToList());
  1822 +
  1823 + // 为每个开单记录分配品项明细
  1824 + foreach (var item in data.list)
  1825 + {
  1826 + item.ItemDetails = itemDetailsGrouped.ContainsKey(item.id)
  1827 + ? itemDetailsGrouped[item.id]
  1828 + : new List<LqKdPxmxInfoOutput>();
  1829 + }
  1830 +
  1831 + return PageResult<LqKdKdjlbListOutput>.SqlSugarPageResult(data);
  1832 + }
  1833 + catch (Exception ex)
  1834 + {
  1835 + throw NCCException.Oh($"获取会员开单记录失败: {ex.Message}");
  1836 + }
  1837 + }
  1838 + #endregion
  1839 +
1740 #region 私有方法 1840 #region 私有方法
1741 /// <summary> 1841 /// <summary>
1742 /// 检查开单记录是否可以操作 1842 /// 检查开单记录是否可以操作
netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
@@ -178,6 +178,7 @@ namespace NCC.Extend.LqKhxx @@ -178,6 +178,7 @@ namespace NCC.Extend.LqKhxx
178 } 178 }
179 var entity = input.Adapt<LqKhxxEntity>(); 179 var entity = input.Adapt<LqKhxxEntity>();
180 entity.Id = YitIdHelper.NextId().ToString(); 180 entity.Id = YitIdHelper.NextId().ToString();
  181 + entity.Dah = "LQ" + DateTime.Now.ToString("yyyyMMddHHmmssfff");
181 // 处理客户消费字段:将数组转换为逗号分隔的字符串 182 // 处理客户消费字段:将数组转换为逗号分隔的字符串
182 if (input.khxf != null && input.khxf.Count > 0) 183 if (input.khxf != null && input.khxf.Count > 0)
183 { 184 {
netcore/src/Modularity/Extend/NCC.Extend/LqMdXdbhsjService.cs
@@ -85,6 +85,7 @@ namespace NCC.Extend.LqMdXdbhsj @@ -85,6 +85,7 @@ namespace NCC.Extend.LqMdXdbhsj
85 sm = it.Sm, 85 sm = it.Sm,
86 cjsj = it.Cjsj, 86 cjsj = it.Cjsj,
87 sfqy = it.Sfqy, 87 sfqy = it.Sfqy,
  88 + stage = it.Stage,
88 }) 89 })
89 .MergeTable() 90 .MergeTable()
90 .OrderBy(sidx + " " + input.sort) 91 .OrderBy(sidx + " " + input.sort)
@@ -116,16 +117,12 @@ namespace NCC.Extend.LqMdXdbhsj @@ -116,16 +117,12 @@ namespace NCC.Extend.LqMdXdbhsj
116 // 检查是否存在重叠的保护时间 117 // 检查是否存在重叠的保护时间
117 var exists = await _db.Queryable<LqMdXdbhsjEntity>() 118 var exists = await _db.Queryable<LqMdXdbhsjEntity>()
118 .Where(p => p.Mdid == entity.Mdid && p.Sfqy == 1) 119 .Where(p => p.Mdid == entity.Mdid && p.Sfqy == 1)
119 - .Where(p =>  
120 - (p.Bhkssj <= entity.Bhkssj && p.Bhjssj > entity.Bhkssj) || (p.Bhkssj < entity.Bhjssj && p.Bhjssj >= entity.Bhjssj) || (p.Bhkssj >= entity.Bhkssj && p.Bhjssj <= entity.Bhjssj)  
121 - ) 120 + .Where(p => (p.Bhkssj <= entity.Bhkssj && p.Bhjssj > entity.Bhkssj) || (p.Bhkssj < entity.Bhjssj && p.Bhjssj >= entity.Bhjssj) || (p.Bhkssj >= entity.Bhkssj && p.Bhjssj <= entity.Bhjssj))
122 .AnyAsync(); 121 .AnyAsync();
123 -  
124 if (exists) 122 if (exists)
125 { 123 {
126 throw NCCException.Oh("该门店在指定时间段内已存在保护时间设置"); 124 throw NCCException.Oh("该门店在指定时间段内已存在保护时间设置");
127 } 125 }
128 -  
129 var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); 126 var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();
130 if (!(isOk > 0)) 127 if (!(isOk > 0))
131 throw NCCException.Oh(ErrorCode.COM1000); 128 throw NCCException.Oh(ErrorCode.COM1000);
@@ -201,6 +198,7 @@ namespace NCC.Extend.LqMdXdbhsj @@ -201,6 +198,7 @@ namespace NCC.Extend.LqMdXdbhsj
201 id = it.Id, 198 id = it.Id,
202 fullName = it.Mdid, 199 fullName = it.Mdid,
203 enCode = it.Id, 200 enCode = it.Id,
  201 + stage = it.Stage,
204 }) 202 })
205 .ToListAsync(); 203 .ToListAsync();
206 return new { list = list }; 204 return new { list = list };
netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
@@ -186,7 +186,7 @@ namespace NCC.Extend.LqTkjlb @@ -186,7 +186,7 @@ namespace NCC.Extend.LqTkjlb
186 MemberInfo.Khmc = entity.CustomerName; 186 MemberInfo.Khmc = entity.CustomerName;
187 MemberInfo.Sjh = input.customerPhone; // 设置手机号 187 MemberInfo.Sjh = input.customerPhone; // 设置手机号
188 MemberInfo.Khlx = MemberTypeEnum.线索.GetHashCode().ToString(); 188 MemberInfo.Khlx = MemberTypeEnum.线索.GetHashCode().ToString();
189 - MemberInfo.Dah = "GK" + DateTime.Now.ToString("yyyyMMddHHmmssfff"); 189 + MemberInfo.Dah = "LQ" + DateTime.Now.ToString("yyyyMMddHHmmssfff");
190 MemberInfo.Jdqd = "19.9卡"; 190 MemberInfo.Jdqd = "19.9卡";
191 191
192 //找到input.expansionUserId的用户信息 192 //找到input.expansionUserId的用户信息
@@ -526,6 +526,5 @@ namespace NCC.Extend.LqTkjlb @@ -526,6 +526,5 @@ namespace NCC.Extend.LqTkjlb
526 } 526 }
527 #endregion 527 #endregion
528 528
529 -  
530 } 529 }
531 } 530 }
netcore/src/Modularity/Extend/NCC.Extend/LqXhFeedbackService.cs 0 → 100644
  1 +using System;
  2 +using System.Collections.Generic;
  3 +using System.Linq;
  4 +using System.Threading.Tasks;
  5 +using Mapster;
  6 +using Microsoft.AspNetCore.Mvc;
  7 +using Microsoft.Extensions.Logging;
  8 +using NCC.Common.Core.Manager;
  9 +using NCC.Common.Enum;
  10 +using NCC.Common.Filter;
  11 +using NCC.Common.Helper;
  12 +using NCC.Dependency;
  13 +using NCC.DynamicApiController;
  14 +using NCC.Extend.Entitys.Dto.LqXhFeedback;
  15 +using NCC.Extend.Entitys.lq_xh_feedback;
  16 +using NCC.Extend.Entitys.lq_xh_hyhk;
  17 +using NCC.Extend.Interfaces.LqXhFeedback;
  18 +using NCC.FriendlyException;
  19 +using NCC.System.Entitys.Permission;
  20 +using SqlSugar;
  21 +using Yitter.IdGenerator;
  22 +
  23 +namespace NCC.Extend
  24 +{
  25 + /// <summary>
  26 + /// 绿纤耗卡服务日志服务
  27 + /// </summary>
  28 + [ApiDescriptionSettings(Tag = "绿纤耗卡服务日志", Name = "LqXhFeedback", Order = 200, Groups = new[] { "Default" })]
  29 + [Route("api/Extend/[controller]")]
  30 + public class LqXhFeedbackService : ILqXhFeedbackService, IDynamicApiController, ITransient
  31 + {
  32 + private readonly ISqlSugarClient _db;
  33 + private readonly IUserManager _userManager;
  34 + private readonly ILogger<LqXhFeedbackService> _logger;
  35 +
  36 + public LqXhFeedbackService(ISqlSugarClient db, IUserManager userManager, ILogger<LqXhFeedbackService> logger)
  37 + {
  38 + _db = db;
  39 + _userManager = userManager;
  40 + _logger = logger;
  41 + }
  42 +
  43 + #region 获取耗卡反馈详情
  44 + /// <summary>
  45 + /// 获取耗卡反馈详情
  46 + /// </summary>
  47 + /// <remarks>
  48 + /// 根据反馈记录ID获取详细信息
  49 + ///
  50 + /// 示例请求:
  51 + /// GET /api/Extend/LqXhFeedback/GetInfo/{id}
  52 + ///
  53 + /// 参数说明:
  54 + /// - id: 反馈记录ID(路径参数)
  55 + /// </remarks>
  56 + /// <param name="id">反馈记录ID</param>
  57 + /// <returns>耗卡反馈详情</returns>
  58 + /// <response code="200">成功返回耗卡反馈详情</response>
  59 + /// <response code="404">记录不存在</response>
  60 + /// <response code="500">服务器错误</response>
  61 + [HttpGet("GetInfo/{id}")]
  62 + public async Task<dynamic> GetInfo(string id)
  63 + {
  64 + try
  65 + {
  66 + var entity = await _db.Queryable<LqXhFeedbackEntity>().Where(p => p.Id == id).FirstAsync();
  67 + if (entity == null)
  68 + {
  69 + throw NCCException.Oh(ErrorCode.COM1005, "耗卡反馈记录不存在");
  70 + }
  71 + var output = entity.Adapt<LqXhFeedbackInfoOutput>();
  72 + // 获取添加人姓名
  73 + var createUser = await _db.Queryable<UserEntity>().Where(x => x.Id == entity.CreateUser).Select(x => x.RealName).FirstAsync();
  74 + output.createUserName = createUser;
  75 + return output;
  76 + }
  77 + catch (Exception ex)
  78 + {
  79 + throw NCCException.Oh($"获取耗卡反馈详情失败: {ex.Message}");
  80 + }
  81 + }
  82 + #endregion
  83 +
  84 + #region 创建耗卡反馈
  85 + /// <summary>
  86 + /// 创建耗卡反馈
  87 + /// </summary>
  88 + /// <remarks>
  89 + /// 创建新的耗卡反馈记录
  90 + ///
  91 + /// 示例请求:
  92 + /// ```json
  93 + /// {
  94 + /// "consumeId": "耗卡记录ID",
  95 + /// "beforeImage": "前图片路径或Base64",
  96 + /// "afterImage": "后图片路径或Base64",
  97 + /// "remark": "反馈备注"
  98 + /// }
  99 + /// ```
  100 + ///
  101 + /// 参数说明:
  102 + /// - consumeId: 耗卡记录ID(必填)
  103 + /// - beforeImage: 前图片(可选)
  104 + /// - afterImage: 后图片(可选)
  105 + /// - remark: 反馈备注(可选)
  106 + /// </remarks>
  107 + /// <param name="input">创建参数</param>
  108 + /// <returns>创建的耗卡反馈记录</returns>
  109 + /// <response code="200">成功创建耗卡反馈</response>
  110 + /// <response code="400">参数错误</response>
  111 + /// <response code="500">服务器错误</response>
  112 + [HttpPost("Create")]
  113 + public async Task<dynamic> Create([FromBody] LqXhFeedbackCrInput input)
  114 + {
  115 + try
  116 + {
  117 + // 验证耗卡记录是否存在
  118 + var consumeRecord = await _db.Queryable<LqXhHyhkEntity>().Where(p => p.Id == input.ConsumeId).FirstAsync();
  119 + if (consumeRecord == null)
  120 + {
  121 + throw NCCException.Oh(ErrorCode.COM1005, "耗卡记录不存在");
  122 + }
  123 + var entity = input.Adapt<LqXhFeedbackEntity>();
  124 + entity.Id = YitIdHelper.NextId().ToString();
  125 + entity.CreateUser = _userManager.UserId;
  126 + entity.CreateTime = DateTime.Now;
  127 + entity.UpdateTime = DateTime.Now;
  128 + await _db.Insertable(entity).ExecuteCommandAsync();
  129 + return entity.Adapt<LqXhFeedbackInfoOutput>();
  130 + }
  131 + catch (Exception ex)
  132 + {
  133 + throw NCCException.Oh($"创建耗卡反馈失败: {ex.Message}");
  134 + }
  135 + }
  136 + #endregion
  137 +
  138 + #region 更新耗卡反馈
  139 + /// <summary>
  140 + /// 更新耗卡反馈
  141 + /// </summary>
  142 + /// <remarks>
  143 + /// 更新现有的耗卡反馈记录
  144 + ///
  145 + /// 示例请求:
  146 + /// ```json
  147 + /// {
  148 + /// "id": "反馈记录ID",
  149 + /// "consumeId": "耗卡记录ID",
  150 + /// "beforeImage": "前图片路径或Base64",
  151 + /// "afterImage": "后图片路径或Base64",
  152 + /// "remark": "反馈备注"
  153 + /// }
  154 + /// ```
  155 + ///
  156 + /// 参数说明:
  157 + /// - id: 反馈记录ID(必填)
  158 + /// - consumeId: 耗卡记录ID(必填)
  159 + /// - beforeImage: 前图片(可选)
  160 + /// - afterImage: 后图片(可选)
  161 + /// - remark: 反馈备注(可选)
  162 + /// </remarks>
  163 + /// <param name="input">更新参数</param>
  164 + /// <returns>更新后的耗卡反馈记录</returns>
  165 + /// <response code="200">成功更新耗卡反馈</response>
  166 + /// <response code="400">参数错误</response>
  167 + /// <response code="404">记录不存在</response>
  168 + /// <response code="500">服务器错误</response>
  169 + [HttpPut("Update")]
  170 + public async Task<dynamic> Update([FromBody] LqXhFeedbackUpInput input)
  171 + {
  172 + try
  173 + {
  174 + var entity = await _db.Queryable<LqXhFeedbackEntity>().Where(p => p.Id == input.id).FirstAsync();
  175 + if (entity == null)
  176 + {
  177 + throw NCCException.Oh(ErrorCode.COM1005, "耗卡反馈记录不存在");
  178 + }
  179 + // 验证耗卡记录是否存在
  180 + var consumeRecord = await _db.Queryable<LqXhHyhkEntity>().Where(p => p.Id == input.ConsumeId).FirstAsync();
  181 +
  182 + if (consumeRecord == null)
  183 + {
  184 + throw NCCException.Oh(ErrorCode.COM1005, "耗卡记录不存在");
  185 + }
  186 + entity.ConsumeId = input.ConsumeId;
  187 + entity.BeforeImage = input.BeforeImage;
  188 + entity.AfterImage = input.AfterImage;
  189 + entity.Remark = input.Remark;
  190 + entity.UpdateTime = DateTime.Now;
  191 + await _db.Updateable(entity).ExecuteCommandAsync();
  192 + return entity.Adapt<LqXhFeedbackInfoOutput>();
  193 + }
  194 + catch (Exception ex)
  195 + {
  196 + throw NCCException.Oh($"更新耗卡反馈失败: {ex.Message}");
  197 + }
  198 + }
  199 + #endregion
  200 +
  201 + #region 删除耗卡反馈
  202 + /// <summary>
  203 + /// 删除耗卡反馈
  204 + /// </summary>
  205 + /// <remarks>
  206 + /// 根据反馈记录ID删除记录
  207 + ///
  208 + /// 示例请求:
  209 + /// DELETE /api/Extend/LqXhFeedback/Delete/{id}
  210 + ///
  211 + /// 参数说明:
  212 + /// - id: 反馈记录ID(路径参数)
  213 + /// </remarks>
  214 + /// <param name="id">反馈记录ID</param>
  215 + /// <returns>删除结果</returns>
  216 + /// <response code="200">成功删除耗卡反馈</response>
  217 + /// <response code="404">记录不存在</response>
  218 + /// <response code="500">服务器错误</response>
  219 + [HttpDelete("Delete/{id}")]
  220 + public async Task<dynamic> Delete(string id)
  221 + {
  222 + try
  223 + {
  224 + var entity = await _db.Queryable<LqXhFeedbackEntity>()
  225 + .Where(p => p.Id == id)
  226 + .FirstAsync();
  227 +
  228 + if (entity == null)
  229 + {
  230 + throw NCCException.Oh(ErrorCode.COM1005, "耗卡反馈记录不存在");
  231 + }
  232 +
  233 + await _db.Deleteable<LqXhFeedbackEntity>()
  234 + .Where(p => p.Id == id)
  235 + .ExecuteCommandAsync();
  236 +
  237 + return new { message = "删除成功" };
  238 + }
  239 + catch (Exception ex)
  240 + {
  241 + throw NCCException.Oh($"删除耗卡反馈失败: {ex.Message}");
  242 + }
  243 + }
  244 + #endregion
  245 +
  246 + #region 根据耗卡记录ID获取反馈
  247 + /// <summary>
  248 + /// 根据耗卡记录ID获取反馈
  249 + /// </summary>
  250 + /// <remarks>
  251 + /// 根据耗卡记录ID获取相关的所有反馈记录
  252 + ///
  253 + /// 示例请求:
  254 + /// GET /api/Extend/LqXhFeedback/GetByConsumeId/{consumeId}
  255 + ///
  256 + /// 参数说明:
  257 + /// - consumeId: 耗卡记录ID(路径参数)
  258 + /// </remarks>
  259 + /// <param name="consumeId">耗卡记录ID</param>
  260 + /// <returns>耗卡反馈列表</returns>
  261 + /// <response code="200">成功返回耗卡反馈列表</response>
  262 + /// <response code="500">服务器错误</response>
  263 + [HttpGet("GetByConsumeId/{consumeId}")]
  264 + public async Task<dynamic> GetByConsumeId(string consumeId)
  265 + {
  266 + try
  267 + {
  268 + var data = await _db.Queryable<LqXhFeedbackEntity>()
  269 + .Where(p => p.ConsumeId == consumeId)
  270 + .OrderBy(p => p.CreateTime, OrderByType.Desc)
  271 + .Select(it => new LqXhFeedbackListOutput
  272 + {
  273 + id = it.Id,
  274 + consumeId = it.ConsumeId,
  275 + beforeImage = it.BeforeImage,
  276 + afterImage = it.AfterImage,
  277 + remark = it.Remark,
  278 + createUser = it.CreateUser,
  279 + createUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName),
  280 + createTime = it.CreateTime,
  281 + updateTime = it.UpdateTime
  282 + })
  283 + .ToListAsync();
  284 +
  285 + return data;
  286 + }
  287 + catch (Exception ex)
  288 + {
  289 + throw NCCException.Oh($"获取耗卡反馈失败: {ex.Message}");
  290 + }
  291 + }
  292 + #endregion
  293 + }
  294 +}
netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
@@ -104,6 +104,10 @@ namespace NCC.Extend.LqXhHyhk @@ -104,6 +104,10 @@ namespace NCC.Extend.LqXhHyhk
104 } 104 }
105 105
106 var output = entity.Adapt<LqXhHyhkInfoOutput>(); 106 var output = entity.Adapt<LqXhHyhkInfoOutput>();
  107 + //获取会员信息
  108 + var MemberInfo = await _db.Queryable<LqKhxxEntity>().FirstAsync(p => p.Id == entity.Hy);
  109 + output.hymc = MemberInfo.Khmc;
  110 + output.memberPhone = MemberInfo.Sjh;
107 111
108 // 2. 查询品项明细列表 112 // 2. 查询品项明细列表
109 var lqXhPxmxList = await _db.Queryable<LqXhPxmxEntity>().Where(w => w.ConsumeInfoId == entity.Id).ToListAsync(); 113 var lqXhPxmxList = await _db.Queryable<LqXhPxmxEntity>().Where(w => w.ConsumeInfoId == entity.Id).ToListAsync();
@@ -197,18 +201,59 @@ namespace NCC.Extend.LqXhHyhk @@ -197,18 +201,59 @@ namespace NCC.Extend.LqXhHyhk
197 mdmc = it.Mdmc, 201 mdmc = it.Mdmc,
198 hy = it.Hy, 202 hy = it.Hy,
199 hyzh = it.Hyzh, 203 hyzh = it.Hyzh,
200 - hymc = it.Hymc, 204 + hymc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(w => w.Id == it.Hy).Select(w => w.Khmc),
201 gklx = it.Gklx, 205 gklx = it.Gklx,
202 xfje = SqlFunc.ToString(it.Xfje), 206 xfje = SqlFunc.ToString(it.Xfje),
203 sgfy = SqlFunc.ToString(it.Sgfy), 207 sgfy = SqlFunc.ToString(it.Sgfy),
204 sfykjb = it.Sfykjb, 208 sfykjb = it.Sfykjb,
205 hksj = it.Hksj, 209 hksj = it.Hksj,
206 czry = it.Czry, 210 czry = it.Czry,
207 - memberPhone = it.MemberPhone, 211 + memberPhone = SqlFunc.Subqueryable<LqKhxxEntity>().Where(w => w.Id == it.Hy).Select(w => w.Sjh),
  212 + isEffective = it.IsEffective,
208 }) 213 })
209 .MergeTable() 214 .MergeTable()
210 .OrderBy(sidx + " " + input.sort) 215 .OrderBy(sidx + " " + input.sort)
211 .ToPagedListAsync(input.currentPage, input.pageSize); 216 .ToPagedListAsync(input.currentPage, input.pageSize);
  217 +
  218 + // 获取当前页的耗卡记录ID列表
  219 + var consumeIds = data.list.Select(x => x.id).ToList();
  220 +
  221 + // 批量查询耗卡明细
  222 + var consumeDetails = new List<LqXhPxmxInfoOutput>();
  223 + if (consumeIds.Any())
  224 + {
  225 + consumeDetails = await _db.Queryable<LqXhPxmxEntity>()
  226 + .Where(x => consumeIds.Contains(x.ConsumeInfoId) && x.IsEffective == StatusEnum.有效.GetHashCode())
  227 + .Select(x => new LqXhPxmxInfoOutput
  228 + {
  229 + id = x.Id,
  230 + consumeInfoId = x.ConsumeInfoId,
  231 + billingItemId = x.BillingItemId,
  232 + px = x.Px,
  233 + pxmc = x.Pxmc,
  234 + pxjg = x.Pxjg,
  235 + memberId = x.MemberId,
  236 + createTime = x.CreateTIme,
  237 + projectNumber = x.ProjectNumber,
  238 + sourceType = x.SourceType,
  239 + totalPrice = x.TotalPrice,
  240 + isEffective = x.IsEffective
  241 + })
  242 + .ToListAsync();
  243 + }
  244 +
  245 + // 按耗卡记录ID分组耗卡明细
  246 + var consumeDetailsGrouped = consumeDetails.GroupBy(x => x.consumeInfoId)
  247 + .ToDictionary(g => g.Key, g => g.ToList());
  248 +
  249 + // 为每个耗卡记录分配耗卡明细
  250 + foreach (var item in data.list)
  251 + {
  252 + item.ConsumeDetails = consumeDetailsGrouped.ContainsKey(item.id)
  253 + ? consumeDetailsGrouped[item.id]
  254 + : new List<LqXhPxmxInfoOutput>();
  255 + }
  256 +
212 return PageResult<LqXhHyhkListOutput>.SqlSugarPageResult(data); 257 return PageResult<LqXhHyhkListOutput>.SqlSugarPageResult(data);
213 } 258 }
214 #endregion 259 #endregion
@@ -264,6 +309,8 @@ namespace NCC.Extend.LqXhHyhk @@ -264,6 +309,8 @@ namespace NCC.Extend.LqXhHyhk
264 entity.Czry = _userManager.UserId; 309 entity.Czry = _userManager.UserId;
265 entity.MemberPhone = _db.Queryable<LqKhxxEntity>().Where(w => w.Id == entity.Hy).First().Sjh; 310 entity.MemberPhone = _db.Queryable<LqKhxxEntity>().Where(w => w.Id == entity.Hy).First().Sjh;
266 entity.CreateTime = DateTime.Now; 311 entity.CreateTime = DateTime.Now;
  312 + entity.IsEffective = StatusEnum.有效.GetHashCode();
  313 + entity.UpdateTime = DateTime.Now;
267 try 314 try
268 { 315 {
269 // 开启事务 316 // 开启事务
@@ -407,7 +454,8 @@ namespace NCC.Extend.LqXhHyhk @@ -407,7 +454,8 @@ namespace NCC.Extend.LqXhHyhk
407 mdmc = it.Mdmc, 454 mdmc = it.Mdmc,
408 hy = it.Hy, 455 hy = it.Hy,
409 hyzh = it.Hyzh, 456 hyzh = it.Hyzh,
410 - hymc = it.Hymc, 457 + hymc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(w => w.Id == it.Hy).Select(w => w.Khmc),
  458 + memberPhone = SqlFunc.Subqueryable<LqKhxxEntity>().Where(w => w.Id == it.Hy).Select(w => w.Sjh),
411 gklx = it.Gklx, 459 gklx = it.Gklx,
412 xfje = SqlFunc.ToString(it.Xfje), 460 xfje = SqlFunc.ToString(it.Xfje),
413 sgfy = SqlFunc.ToString(it.Sgfy), 461 sgfy = SqlFunc.ToString(it.Sgfy),
@@ -509,7 +557,7 @@ namespace NCC.Extend.LqXhHyhk @@ -509,7 +557,7 @@ namespace NCC.Extend.LqXhHyhk
509 557
510 #region 更新会员耗卡 558 #region 更新会员耗卡
511 /// <summary> 559 /// <summary>
512 - /// 更新会员耗卡,不会删除品项明细,只会更新或新增 560 + /// 更新会员耗卡
513 /// </summary> 561 /// </summary>
514 /// <param name="id">主键</param> 562 /// <param name="id">主键</param>
515 /// <param name="input">参数</param> 563 /// <param name="input">参数</param>
@@ -758,9 +806,10 @@ namespace NCC.Extend.LqXhHyhk @@ -758,9 +806,10 @@ namespace NCC.Extend.LqXhHyhk
758 /// 耗卡记录作废 806 /// 耗卡记录作废
759 /// </summary> 807 /// </summary>
760 /// <param name="id">耗卡记录ID</param> 808 /// <param name="id">耗卡记录ID</param>
  809 + /// <param name="remarks">作废备注</param>
761 /// <returns></returns> 810 /// <returns></returns>
762 [HttpPut("CancelCardUsageRecord/{id}")] 811 [HttpPut("CancelCardUsageRecord/{id}")]
763 - public async Task<dynamic> CancelCardUsageRecord(string id) 812 + public async Task<dynamic> CancelCardUsageRecord(string id, [FromQuery] string remarks = null)
764 { 813 {
765 try 814 try
766 { 815 {
@@ -774,6 +823,8 @@ namespace NCC.Extend.LqXhHyhk @@ -774,6 +823,8 @@ namespace NCC.Extend.LqXhHyhk
774 } 823 }
775 //更新耗卡记录状态 824 //更新耗卡记录状态
776 LqhyhkInfo.IsEffective = StatusEnum.无效.GetHashCode(); 825 LqhyhkInfo.IsEffective = StatusEnum.无效.GetHashCode();
  826 + LqhyhkInfo.UpdateTime = DateTime.Now;
  827 + LqhyhkInfo.CancelRemark = remarks;
777 await _db.Updateable(LqhyhkInfo).ExecuteCommandAsync(); 828 await _db.Updateable(LqhyhkInfo).ExecuteCommandAsync();
778 //更新品项明细表状态 829 //更新品项明细表状态
779 await _db.Updateable<LqXhPxmxEntity>().SetColumns(it => new LqXhPxmxEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.ConsumeInfoId == id).ExecuteCommandAsync(); 830 await _db.Updateable<LqXhPxmxEntity>().SetColumns(it => new LqXhPxmxEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.ConsumeInfoId == id).ExecuteCommandAsync();
@@ -820,7 +871,7 @@ namespace NCC.Extend.LqXhHyhk @@ -820,7 +871,7 @@ namespace NCC.Extend.LqXhHyhk
820 { 871 {
821 Id = it.Id, 872 Id = it.Id,
822 MemberId = it.Hy, 873 MemberId = it.Hy,
823 - MemberName = it.Hymc, 874 + MemberName = SqlFunc.Subqueryable<LqKhxxEntity>().Where(w => w.Id == it.Hy).Select(w => w.Khmc),
824 StoreId = it.Md, 875 StoreId = it.Md,
825 StoreName = it.Mdmc, 876 StoreName = it.Mdmc,
826 UsageDate = it.Hksj, 877 UsageDate = it.Hksj,
netcore/src/Modularity/Extend/NCC.Extend/Utils/LqKdKdjlbStringGenerator.cs
@@ -51,7 +51,7 @@ namespace NCC.Extend.Utils @@ -51,7 +51,7 @@ namespace NCC.Extend.Utils
51 sb.AppendLine($"⏩健康师:{string.Join("、", healthTeachers)}"); 51 sb.AppendLine($"⏩健康师:{string.Join("、", healthTeachers)}");
52 52
53 // 活动方案:532工程 53 // 活动方案:532工程
54 - sb.AppendLine($"⏩活动方案:{entity.pxxx ?? "无"}"); 54 + // sb.AppendLine($"⏩活动方案:{entity.pxxx ?? "无"}");
55 // 跟单配合:王经理 竹主任 陈思思老师 55 // 跟单配合:王经理 竹主任 陈思思老师
56 var techTeachers = GetTechTeachers(entity.lqKdKjbsyjList); 56 var techTeachers = GetTechTeachers(entity.lqKdKjbsyjList);
57 sb.AppendLine($"⏩跟单配合:{techTeachers}"); 57 sb.AppendLine($"⏩跟单配合:{techTeachers}");
netcore/src/Modularity/Extend/NCC.Extend/Utils/WeChatBotTestController.cs
@@ -74,7 +74,7 @@ namespace NCC.Extend.Utils @@ -74,7 +74,7 @@ namespace NCC.Extend.Utils
74 jsj = "DEPT001", // 部门编码 74 jsj = "DEPT001", // 部门编码
75 kdhy = "CUSTOMER001", // 客户ID 75 kdhy = "CUSTOMER001", // 客户ID
76 kdhyc = "测试客户", 76 kdhyc = "测试客户",
77 - pxxx = "测试方案", 77 + // pxxx = "测试方案",
78 zdyj = 1000, 78 zdyj = 1000,
79 sfyj = 1000, 79 sfyj = 1000,
80 qk = 0, 80 qk = 0,