Browse Source

Merge branch 'master' of http://192.168.1.222:3000/zhengbingbing/ZLJ_API_V6.0

Conflicts:
	.gitignore
zhengbingbing 5 years ago
parent
commit
2245ebe584
25 changed files with 1148 additions and 50 deletions
  1. 7 0
      .gitignore
  2. 26 3
      代码/System.Common/Helpers/ModelConvertHelper.cs
  3. 10 0
      代码/System.IRepositories/IBus_SMSLogRepository.cs
  4. 10 0
      代码/System.IRepositories/IBus_SMSTemplateRepository.cs
  5. 1 1
      代码/System.Model/T_Bus_Order.cs
  6. 137 0
      代码/System.Model/T_Bus_SMSLog.cs
  7. 90 0
      代码/System.Model/T_Bus_SMSTemplate.cs
  8. 13 0
      代码/System.Repositories/Bus_SMSLogRepository.cs
  9. 13 0
      代码/System.Repositories/Bus_SMSTemplateRepository.cs
  10. 29 9
      代码/TVShoppingCallCenter_ZLJ/Controllers/Customer/VIPInfoController.cs
  11. 2 0
      代码/TVShoppingCallCenter_ZLJ/Controllers/IndexCategory/IndexBaseController.cs
  12. 1 1
      代码/TVShoppingCallCenter_ZLJ/Controllers/IndexCategory/IndexCategoryController.cs
  13. 1 2
      代码/TVShoppingCallCenter_ZLJ/Controllers/InternalMessages/InternalMessagesController.cs
  14. 115 3
      代码/TVShoppingCallCenter_ZLJ/Controllers/Order/AfterSaleController.cs
  15. 3 1
      代码/TVShoppingCallCenter_ZLJ/Controllers/Order/KFOrderController.cs
  16. 2 2
      代码/TVShoppingCallCenter_ZLJ/Controllers/Order/KGOrderController.cs
  17. 8 6
      代码/TVShoppingCallCenter_ZLJ/Controllers/Product/ProductController.cs
  18. 418 0
      代码/TVShoppingCallCenter_ZLJ/Controllers/SMS/SMSController.cs
  19. 30 17
      代码/TVShoppingCallCenter_ZLJ/Controllers/TaskManagement/TaskManagementController.cs
  20. 1 1
      代码/TVShoppingCallCenter_ZLJ/Controllers/hangfire/HangfireController.cs
  21. 1 1
      代码/TVShoppingCallCenter_ZLJ/Controllers/knowledge/KnowledgeClassController.cs
  22. 3 1
      代码/TVShoppingCallCenter_ZLJ/Models/Inputs/Order/OrderInput.cs
  23. 134 0
      代码/TVShoppingCallCenter_ZLJ/Models/Inputs/SMSLogInput.cs
  24. 89 0
      代码/TVShoppingCallCenter_ZLJ/Models/Inputs/SMSTemplateInput.cs
  25. 4 2
      代码/TVShoppingCallCenter_ZLJ/Startup.cs

+ 7 - 0
.gitignore

@@ -2,3 +2,10 @@
2 2
 bin/
3 3
 obj/
4 4
 代码/TVShoppingCallCenter_ZLJ/Properties/launchSettings.json
5
+代码/.vs/TVShoppingCallCenter_ZLJ/v16/.suo
6
+文档/需求文档/~$20200610_足力健功能清单.xlsx
7
+文档/需求文档/~$健需求分析说明书0529持续.docx
8
+文档/开发文档/~$库设计说明书V1.0.0_孟洁.doc
9
+文档/需求文档/~$参考-足力健现用平台.xlsx
10
+代码/TVShoppingCallCenter_ZLJ/Properties/PublishProfiles/CustomProfile.pubxml
11
+代码/TVShoppingCallCenter_ZLJ/.config/dotnet-tools.json

+ 26 - 3
代码/System.Common/Helpers/ModelConvertHelper.cs

@@ -192,7 +192,25 @@ namespace System.Common.Helpers
192 192
             {
193 193
                 // 判断此属性是否有Getter      
194 194
                 if (!pi.CanRead) continue;
195
-                dt.Columns.Add(pi.Name, pi.PropertyType);
195
+
196
+                if (pi.PropertyType.FullName.Contains(typeof(System.DateTime).FullName))
197
+                {
198
+                    dt.Columns.Add(pi.Name, typeof(System.DateTime));
199
+                }
200
+                else if (pi.PropertyType.FullName.Contains(typeof(System.Int64).FullName))
201
+                {
202
+                    dt.Columns.Add(pi.Name, typeof(System.Int64));
203
+                }
204
+                else if (pi.PropertyType.FullName.Contains(typeof(System.Int32).FullName))
205
+                {
206
+                    dt.Columns.Add(pi.Name, typeof(System.Int32));
207
+                }
208
+                else if (pi.PropertyType.FullName.Contains(typeof(System.Decimal).FullName))
209
+                {
210
+                    dt.Columns.Add(pi.Name, typeof(System.Decimal));
211
+                }
212
+                else { dt.Columns.Add(pi.Name, pi.PropertyType); }
213
+
196 214
             }
197 215
             foreach (T item in list)
198 216
             {
@@ -201,7 +219,12 @@ namespace System.Common.Helpers
201 219
                 foreach (PropertyInfo pi in propertys)
202 220
                 {
203 221
                     if (!pi.CanRead) continue;
204
-                    newRow[pi.Name] = pi.GetValue(item);
222
+                    if (pi.GetValue(item) == DBNull.Value || pi.GetValue(item) == null)
223
+                    {
224
+                        newRow[pi.Name] = DBNull.Value;
225
+                    }
226
+                    else { newRow[pi.Name] = pi.GetValue(item); }
227
+                   
205 228
                 }
206 229
                 dt.Rows.Add(newRow);
207 230
             }
@@ -267,7 +290,7 @@ namespace System.Common.Helpers
267 290
                         }
268 291
                         else if (t1p.PropertyType.FullName.Contains(typeof(System.Decimal).FullName))
269 292
                         {
270
-                            t1p.SetValue(t1, t2value, null);
293
+                            t1p.SetValue(t1, t2value, null); 
271 294
                         }
272 295
                         else if (t1p.PropertyType.FullName.Contains(typeof(System.DateTime).FullName))
273 296
                         {

+ 10 - 0
代码/System.IRepositories/IBus_SMSLogRepository.cs

@@ -0,0 +1,10 @@
1
+using System.Common;
2
+using System;
3
+using System.Model;
4
+
5
+namespace System.IRepositories
6
+{
7
+    public interface IBus_SMSLogRepository : IRepository<T_Bus_SMSLog>
8
+    {
9
+    }
10
+}

+ 10 - 0
代码/System.IRepositories/IBus_SMSTemplateRepository.cs

@@ -0,0 +1,10 @@
1
+using System.Common;
2
+using System;
3
+using System.Model;
4
+
5
+namespace System.IRepositories
6
+{
7
+    public interface IBus_SMSTemplateRepository : IRepository<T_Bus_SMSTemplate>
8
+    {
9
+    }
10
+}

+ 1 - 1
代码/System.Model/T_Bus_Order.cs

@@ -359,7 +359,7 @@ namespace System.Model
359 359
 			get { return _f_paytime; }
360 360
 		}
361 361
 		/// <summary>
362
-		/// //0待回款1已支付 2待退款3已退款
362
+		/// 0待回款1已支付 2待退款3已退款
363 363
 		/// </summary>
364 364
 		public int F_PayState
365 365
 		{

+ 137 - 0
代码/System.Model/T_Bus_SMSLog.cs

@@ -0,0 +1,137 @@
1
+using System;
2
+namespace System.Model
3
+{
4
+	/// <summary>
5
+	/// 短信发送记录
6
+	/// </summary>
7
+	[Serializable]
8
+	public partial class T_Bus_SMSLog
9
+	{
10
+		public T_Bus_SMSLog()
11
+		{ }
12
+		#region Model
13
+		private string _f_id;
14
+		private int _f_adduser = 0;
15
+		private string _f_addusername;
16
+		private string _f_content = "";
17
+		private int _f_templateid;
18
+		private int _f_state;
19
+		private string _f_message = "";
20
+		private DateTime _f_addtime;
21
+		private DateTime _f_sendtime;
22
+		private DateTime _f_plansendtime;
23
+		private string _f_tel = "";
24
+		private int _f_type;
25
+
26
+		private string _f_name = "";
27
+
28
+		/// <summary>
29
+		/// 本批次名称
30
+		/// </summary>
31
+		public string F_Name
32
+		{
33
+			set { _f_name = value; }
34
+			get { return _f_name; }
35
+		}
36
+
37
+		/// <summary>
38
+		/// 
39
+		/// </summary>
40
+		public string F_Id
41
+		{
42
+			set { _f_id = value; }
43
+			get { return _f_id; }
44
+		}
45
+		/// <summary>
46
+		/// 记录添加人
47
+		/// </summary>
48
+		public int F_AddUser
49
+		{
50
+			set { _f_adduser = value; }
51
+			get { return _f_adduser; }
52
+		}
53
+		/// <summary>
54
+		/// 记录添加人姓名/发送人
55
+		/// </summary>
56
+		public string F_AddUserName
57
+		{
58
+			set { _f_addusername = value; }
59
+			get { return _f_addusername; }
60
+		}
61
+		/// <summary>
62
+		/// 发送内容
63
+		/// </summary>
64
+		public string F_Content
65
+		{
66
+			set { _f_content = value; }
67
+			get { return _f_content; }
68
+		}
69
+		/// <summary>
70
+		/// 模板id
71
+		/// </summary>
72
+		public int F_TemplateId
73
+		{
74
+			set { _f_templateid = value; }
75
+			get { return _f_templateid; }
76
+		}
77
+		/// <summary>
78
+		/// 发送状态 0没有获取状态 1成功2失败
79
+		/// </summary>
80
+		public int F_State
81
+		{
82
+			set { _f_state = value; }
83
+			get { return _f_state; }
84
+		}
85
+		/// <summary>
86
+		/// 发送状态信息,可不用
87
+		/// </summary>
88
+		public string F_Message
89
+		{
90
+			set { _f_message = value; }
91
+			get { return _f_message; }
92
+		}
93
+		/// <summary>
94
+		/// 发送时间
95
+		/// </summary>
96
+		public DateTime F_AddTime
97
+		{
98
+			set { _f_addtime = value; }
99
+			get { return _f_addtime; }
100
+		}
101
+		/// <summary>
102
+		/// 发送时间
103
+		/// </summary>
104
+		public DateTime F_SendTime
105
+		{
106
+			set { _f_sendtime = value; }
107
+			get { return _f_sendtime; }
108
+		}
109
+		/// <summary>
110
+		/// 计划发送时间
111
+		/// </summary>
112
+		public DateTime F_PlanSendTime
113
+		{
114
+			set { _f_plansendtime = value; }
115
+			get { return _f_plansendtime; }
116
+		}
117
+		/// <summary>
118
+		/// 发送的电话
119
+		/// </summary>
120
+		public string F_Tel
121
+		{
122
+			set { _f_tel = value; }
123
+			get { return _f_tel; }
124
+		}
125
+		/// <summary>
126
+		/// 0即时发送(模板),2定时发送(模板),3即时自定义 4定时自定义
127
+		/// </summary>
128
+		public int F_Type
129
+		{
130
+			set { _f_type = value; }
131
+			get { return _f_type; }
132
+		}
133
+		#endregion Model
134
+
135
+	}
136
+}
137
+

+ 90 - 0
代码/System.Model/T_Bus_SMSTemplate.cs

@@ -0,0 +1,90 @@
1
+using System;
2
+namespace System.Model
3
+{
4
+	/// <summary>
5
+	/// 手机短信模板
6
+	/// </summary>
7
+	[Serializable]
8
+	public partial class T_Bus_SMSTemplate
9
+	{
10
+		public T_Bus_SMSTemplate()
11
+		{ }
12
+		#region Model
13
+		private int _f_id;
14
+		private string _f_modelname = "";
15
+		private string _f_content = "";
16
+		private int _f_adduser;
17
+		private string _f_addusername = "";
18
+		private int _f_sort = 100;
19
+		private DateTime _f_addtime = DateTime.Now;
20
+		private string _f_tel = "";
21
+
22
+		/// <summary>
23
+		/// 
24
+		/// </summary>
25
+		public int F_Id
26
+		{
27
+			set { _f_id = value; }
28
+			get { return _f_id; }
29
+		}
30
+		/// <summary>
31
+		/// 短息模板名称
32
+		/// </summary>
33
+		public string F_ModelName
34
+		{
35
+			set { _f_modelname = value; }
36
+			get { return _f_modelname; }
37
+		}
38
+		/// <summary>
39
+		/// 模板内容
40
+		/// </summary>
41
+		public string F_Content
42
+		{
43
+			set { _f_content = value; }
44
+			get { return _f_content; }
45
+		}
46
+		/// <summary>
47
+		/// 添加人id
48
+		/// </summary>
49
+		public int F_AddUser
50
+		{
51
+			set { _f_adduser = value; }
52
+			get { return _f_adduser; }
53
+		}
54
+		/// <summary>
55
+		/// 添加人
56
+		/// </summary>
57
+		public string F_AddUserName
58
+		{
59
+			set { _f_addusername = value; }
60
+			get { return _f_addusername; }
61
+		}
62
+		/// <summary>
63
+		/// 排序
64
+		/// </summary>
65
+		public int F_Sort
66
+		{
67
+			set { _f_sort = value; }
68
+			get { return _f_sort; }
69
+		}
70
+		/// <summary>
71
+		/// 添加时间
72
+		/// </summary>
73
+		public DateTime F_AddTime
74
+		{
75
+			set { _f_addtime = value; }
76
+			get { return _f_addtime; }
77
+		}
78
+		/// <summary>
79
+		/// 绑定400电话
80
+		/// </summary>
81
+		public string F_Tel
82
+		{
83
+			set { _f_tel = value; }
84
+			get { return _f_tel; }
85
+		}
86
+		#endregion Model
87
+
88
+	}
89
+}
90
+

+ 13 - 0
代码/System.Repositories/Bus_SMSLogRepository.cs

@@ -0,0 +1,13 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Text;
4
+using System.IRepositories;
5
+using System.Model;
6
+using System.Common;
7
+
8
+namespace System.Repositories
9
+{
10
+    public class Bus_SMSLogRepository : BaseRepository<T_Bus_SMSLog>, IBus_SMSLogRepository
11
+    {
12
+    }
13
+}

+ 13 - 0
代码/System.Repositories/Bus_SMSTemplateRepository.cs

@@ -0,0 +1,13 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Text;
4
+using System.IRepositories;
5
+using System.Model;
6
+using System.Common;
7
+
8
+namespace System.Repositories
9
+{
10
+    public class Bus_SMSTemplateRepository : BaseRepository<T_Bus_SMSTemplate>, IBus_SMSTemplateRepository
11
+    {
12
+    }
13
+}

+ 29 - 9
代码/TVShoppingCallCenter_ZLJ/Controllers/Customer/VIPInfoController.cs

@@ -475,11 +475,10 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
475 475
                     var tb = ModelConvertHelper<T_Cus_VipInfo>.ConvertListToDataTable(dtNew);
476 476
                     //导出dtnew 
477 477
                     NPOIHelper npoi = new NPOIHelper();
478
-                    //string[] cols = { "姓名", "电话", "出生日期", "性别", "标签", "推荐人", "地址", "鞋码", "创建人", "创建时间" };
479
-                    //string[] colname = { "F_Name", "F_Phone", "F_Birthday", "F_Sex", "F_Label", "F_Recommender", "F_Address", "F_ShoeSize", "F_CreateBy", "F_CreateOn" };
480
-                    string[] cols = { "姓名", "生日", "年龄", "性别", "鞋码", "手机号1", "手机号2", "固定电话", "推荐人", "标签", "备注", "昵称", "注册时间", "省份", "城市", "县区", "乡镇", "邮编", "地址", "备用省份", "备用城市", "备用县区", "备用乡镇", "备用邮编", "备用地址", "会员积分", "累计消费", "累计积分", "销售负责人", "最近联系时间", "会员类型" };
481
-                    string[] colname = { "F_Name", "F_Birthday", "F_Age", "F_Sex", "F_ShoeSize", "F_Mobile", "F_Mobile1", "F_Phone", "F_Recommender", "F_Label", "F_Note", "F_Nickname", "F_RegTime", "F_Province", "F_City", "F_Area", "F_Town", "F_Postcode", "F_Address", "F_Province", "F_City", "F_Area", "F_Town", "F_Postcode", "F_Address1", "F_Score", "F_Money", "F_TotalScore", "F_Saleperson", "F_Contact", "F_Type" };
482
-
478
+                    string dbkeys = _configuration["Import:vipkey"].ToString();
479
+                    string title = _configuration["Import:vipvalue"].ToString();
480
+                    string[] cols = dbkeys.Split(",");
481
+                    string[] colname = title.Split(",");
483 482
                     byte[] sm = npoi.ExportToExcel1(tb, cols, colname);
484 483
                     if (sm != null)
485 484
                     {
@@ -487,10 +486,10 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
487 486
                     }
488 487
                     else
489 488
                     {
490
-                        return Error("导出失败");
489
+                        return Error("导出失败3");
491 490
                     }
492 491
                 }
493
-                return Error("导出失败");
492
+                return Error("导出失败2");
494 493
 
495 494
                 //return Success("根据条件获取数据成功", tasklist);
496 495
 
@@ -498,7 +497,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
498 497
             catch (Exception ex)
499 498
             {
500 499
                 //_logger.LogError(ex, "导出异常");
501
-                return Error("导出失败");
500
+                return Error("导出失败1");
502 501
             }
503 502
             //return Success("导出成功");
504 503
         }
@@ -549,7 +548,28 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
549 548
                     {
550 549
                         if (dbcolslist.Contains(item.Name))
551 550
                         {
552
-                            object v = Convert.ChangeType(dr[titlelist[dbcolslist.IndexOf(item.Name)]].ToString(), item.PropertyType);
551
+                            Type tType = null;
552
+                            object o = dr[titlelist[dbcolslist.IndexOf(item.Name)]]; 
553
+                            if (item.PropertyType.FullName.Contains(typeof(DateTime).FullName))
554
+                            {
555
+                                tType= typeof(DateTime);
556
+                            }
557
+                            else if (item.PropertyType.FullName.Contains(typeof(Int64).FullName))
558
+                            {
559
+                                tType = typeof(Int64);
560
+                            }
561
+                            else if (item.PropertyType.FullName.Contains(typeof(Int32).FullName))
562
+                            {
563
+                                tType = typeof(Int32);
564
+                            }
565
+                            else if (item.PropertyType.FullName.Contains(typeof(Decimal).FullName))
566
+                            {
567
+                                tType = typeof(Decimal);
568
+                            }
569
+                            else { tType = item.PropertyType; }
570
+                            object v = null;
571
+                            if (o!=null&&o!=DBNull.Value)
572
+                             v = Convert.ChangeType(dr[titlelist[dbcolslist.IndexOf(item.Name)]].ToString(), tType);
553 573
                             item.SetValue(model, v, null);                            
554 574
                         }
555 575
                     }

+ 2 - 0
代码/TVShoppingCallCenter_ZLJ/Controllers/IndexCategory/IndexBaseController.cs

@@ -177,6 +177,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.IndexCategory
177 177
                     x.F_Remark,
178 178
                     x.F_Title,
179 179
                     x.F_Score,
180
+                    x.F_Sort ,
180 181
                     x.F_IndexId,
181 182
                 });
182 183
                 var obj = new
@@ -200,6 +201,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.IndexCategory
200 201
                     x.F_Remark ,
201 202
                     x.F_Title ,
202 203
                     x.F_Score ,
204
+                    x.F_Sort,
203 205
                     x.F_IndexId ,
204 206
                 });
205 207
                 var obj = new

+ 1 - 1
代码/TVShoppingCallCenter_ZLJ/Controllers/IndexCategory/IndexCategoryController.cs

@@ -136,7 +136,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.IndexCategory
136 136
             var model =  _qc_indexcategoryreposytory.GetSingle(x => x.F_CategoryId == id).Result ;
137 137
             if (model == null)
138 138
                 return Error("该指标不存在");
139
-            var dt = _qc_indexbasereposytory.GetListALL(x => x.F_CategoryId == model.F_CategoryId && x.F_DeleteFlag != 0).Result ;
139
+            var dt = _qc_indexbasereposytory.GetListALL(x => x.F_CategoryId == model.F_CategoryId && x.F_DeleteFlag == 0).Result ;
140 140
             if (dt!=null )
141 141
             {
142 142
                 if (dt.Count >0)

+ 1 - 2
代码/TVShoppingCallCenter_ZLJ/Controllers/InternalMessages/InternalMessagesController.cs

@@ -96,12 +96,11 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.InternalMessages
96 96
         [HttpGet("getMsg")]
97 97
         public async Task<IActionResult> GetListMark(int istop=-1,int smstype=-1,int isread=-1, int pageindex = 0, int pagesize = 0)
98 98
         {
99
-           // string user = "8000";
99
+            //string user = "8000";
100 100
           string user = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
101 101
             List<IConditionalModel> conModels = new List<IConditionalModel>();
102 102
             #region 条件筛选
103 103
             conModels.Add(new ConditionalModel() { FieldName = "SMS_IsDelete", ConditionalType = ConditionalType.Equal, FieldValue = ((int)EnumUserCountState.Enabled).ToString() });
104
-            conModels.Add(new ConditionalModel() { FieldName = "SMS_IsRead", ConditionalType = ConditionalType.Equal, FieldValue = ((int)EnumUserCountState.Enabled).ToString() });
105 104
             if (smstype > -1)
106 105
             {
107 106
                 conModels.Add(new ConditionalModel() { FieldName = "SMS_Type", ConditionalType = ConditionalType.Equal, FieldValue = smstype.ToString() });

+ 115 - 3
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/AfterSaleController.cs

@@ -271,6 +271,118 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
271 271
 
272 272
         #endregion
273 273
 
274
+        /// <summary>
275
+        /// 获取订单分页列表(所有订单都可查,与来电相关)
276
+        /// </summary>
277
+        /// <param name="input"></param>
278
+        /// <returns></returns>
279
+        [HttpPost("getorderlistbypage")]
280
+        public async Task<IActionResult> GetOrderListByPage(OrderInput input)
281
+        {
282
+            List<IConditionalModel> conModels = new List<IConditionalModel>();
283
+            #region 条件筛选
284
+
285
+            conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = "6" });
286
+            
287
+
288
+            if (!string.IsNullOrEmpty(input.F_ADFrom))
289
+            {
290
+                conModels.Add(new ConditionalModel() { FieldName = "F_ADFrom", ConditionalType = ConditionalType.Equal, FieldValue = input.F_ADFrom });
291
+            }
292
+            if (!string.IsNullOrEmpty(input.F_Type))
293
+            {
294
+                conModels.Add(new ConditionalModel() { FieldName = "F_Type", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Type });
295
+            }
296
+            if (!string.IsNullOrEmpty(input.F_Id))
297
+            {
298
+                conModels.Add(new ConditionalModel() { FieldName = "F_Id", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Id });
299
+            }
300
+            if (!string.IsNullOrEmpty(input.F_Customer))
301
+            {
302
+                conModels.Add(new ConditionalModel() { FieldName = "F_Customer", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Customer });
303
+            }
304
+            if (!string.IsNullOrEmpty(input.F_CustomerPhone))
305
+            {
306
+                conModels.Add(new ConditionalModel() { FieldName = "F_CustomerPhone", ConditionalType = ConditionalType.Equal, FieldValue = input.F_CustomerPhone });
307
+            }
308
+            if (!string.IsNullOrEmpty(input.F_TrackingNo))
309
+            {
310
+                conModels.Add(new ConditionalModel() { FieldName = "F_TrackingNo", ConditionalType = ConditionalType.Equal, FieldValue = input.F_TrackingNo });
311
+            }
312
+            if (!string.IsNullOrEmpty(input.F_AddProvince))
313
+            {
314
+                conModels.Add(new ConditionalModel() { FieldName = "F_AddProvince", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddProvince });
315
+            }
316
+            if (!string.IsNullOrEmpty(input.F_AddCity))
317
+            {
318
+                conModels.Add(new ConditionalModel() { FieldName = "F_AddCity", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddCity });
319
+            }
320
+            if (!string.IsNullOrEmpty(input.F_AddArea))
321
+            {
322
+                conModels.Add(new ConditionalModel() { FieldName = "F_AddArea", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddArea });
323
+            }
324
+            if (!string.IsNullOrEmpty(input.F_AddTown))
325
+            {
326
+                conModels.Add(new ConditionalModel() { FieldName = "F_AddTown", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddTown });
327
+            }
328
+            if (!string.IsNullOrEmpty(input.F_Express))
329
+            {
330
+                conModels.Add(new ConditionalModel() { FieldName = "F_Express", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Express });
331
+            }
332
+            if (!string.IsNullOrEmpty(input.F_PayType))
333
+            {
334
+                conModels.Add(new ConditionalModel() { FieldName = "F_PayType", ConditionalType = ConditionalType.Equal, FieldValue = input.F_PayType });
335
+            }
336
+            if (input.F_PayState > -1)
337
+            {
338
+                conModels.Add(new ConditionalModel() { FieldName = "F_PayState", ConditionalType = ConditionalType.Equal, FieldValue = input.F_PayState.ToString() });
339
+            }
340
+            if (input.SearchEndTime != null)
341
+            {
342
+                conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.LessThan, FieldValue = input.SearchEndTime.GetValueOrDefault().ToString("yyyy-MM-dd 23:59:59") });
343
+            }
344
+            if (input.SearchStartTime != null)
345
+            {
346
+                conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.GreaterThan, FieldValue = input.SearchStartTime.GetValueOrDefault().ToString("yyyy-MM-dd 00:00:01") });
347
+            }
348
+
349
+
350
+
351
+
352
+            #endregion
353
+            RefAsync<int> recordCount = 0;
354
+            PageData<T_Bus_Order> list = await bus_OrderRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = input.pageindex, PageSize = input.pagesize, PageCount = recordCount }, " F_AddTime DESC");
355
+            PageData<OrderInput> returnobj = new PageData<OrderInput>() { Totals = list.Totals };
356
+            List<OrderInput> returnlist = new List<OrderInput>();
357
+            foreach (T_Bus_Order t in list.Rows)
358
+            {
359
+                OrderInput m = new OrderInput();
360
+                ModelConvertHelper<OrderInput, T_Bus_Order>.ModeToModel(m, t);
361
+
362
+                List<OrderDetailInput> orderDetailInputs = new List<OrderDetailInput>();
363
+                #region 遍历订单商品
364
+                List<T_Bus_OrderDetail> orderDetails = await bus_OrderDetailRepository.GetListALL(q => q.F_OrderId == t.F_Id);
365
+                if (orderDetails != null)
366
+                {
367
+                    foreach (T_Bus_OrderDetail t1 in orderDetails)
368
+                    {
369
+                        OrderDetailInput m1 = new OrderDetailInput();
370
+                        ModelConvertHelper<OrderDetailInput, T_Bus_OrderDetail>.ModeToModel(m1, t1);
371
+                        orderDetailInputs.Add(m1);
372
+                    }
373
+                }
374
+                #endregion
375
+                m.OrderDetailList = orderDetailInputs;
376
+
377
+                returnlist.Add(m);
378
+            }
379
+            returnobj.Rows = returnlist;
380
+
381
+            return Success("成功", returnobj);
382
+
383
+        }
384
+
385
+
274 386
         #region 售后操作
275 387
 
276 388
         /// <summary>
@@ -418,7 +530,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
418 530
                 {
419 531
                     if (input.F_CheckStateSH == 1)
420 532
                     {
421
-                        modelAfterSale.F_AboutOrderId = "BJ" + UserLogin.UserId + "T" + DateTimeConvert.ToTimetag(DateTime.Now);
533
+                        modelAfterSale.F_AboutOrderId = "BJ" + UserLogin.UserCode + "T" + DateTimeConvert.ToTimetag(DateTime.Now);
422 534
                         string addResult = await AddOrder(modelAfterSale, modeOrder);
423 535
                         if (addResult != "1")
424 536
                         {
@@ -656,7 +768,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
656 768
                 {
657 769
                     if (modelAfterSale.F_CheckStateSH == 1)
658 770
                     {
659
-                        modelAfterSale.F_AboutOrderId = "BJ" + UserLogin.UserId + "T" + DateTimeConvert.ToTimetag(DateTime.Now);
771
+                        modelAfterSale.F_AboutOrderId = "BJ" + UserLogin.UserCode + "T" + DateTimeConvert.ToTimetag(DateTime.Now);
660 772
                         string addResult = await AddOrder(modelAfterSale, modeOrder);
661 773
                         if (addResult != "1")
662 774
                         {
@@ -1108,7 +1220,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
1108 1220
                     }
1109 1221
                     else if (modelAfterSale.F_Type == 1)
1110 1222
                     {
1111
-                        modelAfterSale.F_AboutOrderId = "BJ" + UserLogin.UserId + "T" + DateTimeConvert.ToTimetag(DateTime.Now);
1223
+                        modelAfterSale.F_AboutOrderId = "BJ" + UserLogin.UserCode + "T" + DateTimeConvert.ToTimetag(DateTime.Now);
1112 1224
                         string addResult = await AddOrder(modelAfterSale, modeOrder);
1113 1225
                         if (addResult != "1")
1114 1226
                         {

+ 3 - 1
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/KFOrderController.cs

@@ -228,7 +228,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
228 228
             #region 条件筛选
229 229
 
230 230
 
231
-            conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThan, FieldValue = "-2" });
231
+            conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThan, FieldValue = "0" });
232 232
 
233 233
             //状态
234 234
             if (input.F_State > -2)
@@ -748,6 +748,8 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
748 748
 
749 749
                 T_Bus_AfterSale modelAfterSale = await busAfterSaleRepository.GetSingle(q => q.F_Id == input.F_Id);
750 750
 
751
+                if (modelAfterSale.F_State != 0)
752
+                { return Error("此售后状态不支持退款"); }
751 753
                 if (modelAfterSale.F_Type != 2 && modelAfterSale.F_Type != 3 && modelAfterSale.F_Type != 6)
752 754
                 {
753 755
                     return Error("售后类型不支持退款");

+ 2 - 2
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/KGOrderController.cs

@@ -66,9 +66,9 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
66 66
             #region 条件筛选
67 67
 
68 68
 
69
-            conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = "3" });
69
+            conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = "-2" });
70 70
 
71
-            if (input.F_State >= 0)
71
+            if (input.F_State > -2)
72 72
             {
73 73
                 conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.Equal, FieldValue = input.F_State.ToString() });
74 74
 

+ 8 - 6
代码/TVShoppingCallCenter_ZLJ/Controllers/Product/ProductController.cs

@@ -151,15 +151,17 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Product
151 151
         [HttpPost("deleteproductclass")]
152 152
         public async Task<IActionResult> DeleteProductClass(string ids)
153 153
         {
154
-
155
-
156 154
             if (string.IsNullOrEmpty(ids))
157 155
                 return Error("请输入删除id");
158
-            if (ids.Replace(",", "") == "")
156
+            ids = ids.Trim(',');
157
+            if (string.IsNullOrEmpty(ids))
159 158
                 return Error("请输入删除id");
160
-
161
-            //删除的时候  分类下有商品怎么处理  暂未处理  后续根据需求处理  可以指定规则,分类下没有商品才可以删除
162
-            if (await _productClassRepository.Delete(a => ids.Contains("," + a.F_ClassId.ToString() + ",")))
159
+            string[] idsarry = ids.Split(',');
160
+            if (await _productRepository.GetCount(q => q.F_ClassId == q.F_ClassId) > 0)
161
+            {
162
+                return Success("请先删除分类下商品");
163
+            }
164
+            if (await _productClassRepository.Delete(a => idsarry.Contains( a.F_ClassId.ToString())))
163 165
             {
164 166
                 return Success("删除商品分类成功");
165 167
             }

+ 418 - 0
代码/TVShoppingCallCenter_ZLJ/Controllers/SMS/SMSController.cs

@@ -0,0 +1,418 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Common;
4
+using System.Common.Helpers;
5
+using System.IRepositories;
6
+using System.Linq;
7
+using System.Linq.Expressions;
8
+using System.Model;
9
+using System.Threading.Tasks;
10
+using Microsoft.AspNetCore.Authorization;
11
+using Microsoft.AspNetCore.Mvc;
12
+using NPOI.SS.Formula.Atp;
13
+using SqlSugar;
14
+using TVShoppingCallCenter_ZLJ.Models.Inputs;
15
+
16
+namespace TVShoppingCallCenter_ZLJ.Controllers.SMS
17
+{
18
+    [Authorize]
19
+    [Produces("application/json")]
20
+    [Route("api/[controller]")]
21
+    public class SMSController : BaseController
22
+    {
23
+        [HttpGet("info")]
24
+        public string Index()
25
+        {
26
+            return "Hello World";
27
+        }
28
+
29
+        private readonly IBus_SMSTemplateRepository bus_SMSTemplateRepository;
30
+        private readonly IBus_SMSLogRepository bus_SMSLogRepository;
31
+
32
+       public SMSController(IBus_SMSTemplateRepository _bus_SMSTemplateRepository, IBus_SMSLogRepository _bus_SMSLogRepository)
33
+        {
34
+            bus_SMSTemplateRepository = _bus_SMSTemplateRepository;
35
+            bus_SMSLogRepository = _bus_SMSLogRepository;
36
+        }
37
+
38
+        #region 短信模板
39
+
40
+        /// <summary>
41
+        /// 新增
42
+        /// </summary>
43
+        /// <param name="input"></param>
44
+        /// <returns></returns>
45
+        [HttpPost("addtemplate")]
46
+        public async Task<IActionResult> AddTemplate(SMSTemplateInput input)
47
+        {
48
+
49
+            #region 验证 参数
50
+
51
+
52
+            if (string.IsNullOrEmpty(input.F_Content))
53
+                return Error("请输入模板内容");
54
+            if (string.IsNullOrEmpty(input.F_ModelName))
55
+                return Error("请输入模板名称");
56
+            if (string.IsNullOrEmpty(input.F_Tel))
57
+                return Error("请输入要绑定400电话");
58
+
59
+
60
+            #endregion
61
+
62
+            if (await bus_SMSTemplateRepository.GetCount(a => a.F_ModelName == input.F_ModelName) > 0)
63
+            {
64
+                return Error("模板名称不能重复");
65
+            }
66
+            T_Bus_SMSTemplate ModelAdd = new T_Bus_SMSTemplate();
67
+            ModelConvertHelper<T_Bus_SMSTemplate, SMSTemplateInput>.ModeToModelDefault(ModelAdd, input);
68
+            ModelAdd.F_AddUser = UserLogin.UserId.ObjToInt();
69
+            ModelAdd.F_AddUserName = UserLogin.UserName;
70
+            ModelAdd.F_AddTime = DateTime.Now;
71
+
72
+            if (await bus_SMSTemplateRepository.Add(ModelAdd) > 0)
73
+            {
74
+                return Success("新增成功");
75
+            }
76
+            else
77
+            {
78
+                return Error("新增失败,请重试!");
79
+            }
80
+        }
81
+
82
+
83
+        /// <summary>
84
+        /// 更新
85
+        /// </summary>
86
+        /// <param name="input"></param>
87
+        /// <returns></returns>
88
+        [HttpPost("updatetemplate")]
89
+        public async Task<IActionResult> UpdateTemplate(SMSTemplateInput input)
90
+        {
91
+
92
+            #region 验证 参数
93
+
94
+
95
+            if (string.IsNullOrEmpty(input.F_Content))
96
+                return Error("请输入模板内容");
97
+            if (string.IsNullOrEmpty(input.F_ModelName))
98
+                return Error("请输入模板名称");
99
+            if (string.IsNullOrEmpty(input.F_Tel))
100
+                return Error("请输入要绑定400电话");
101
+            if (input.F_Id<1)
102
+                return Error("参数缺失");
103
+
104
+            #endregion
105
+
106
+            if (await bus_SMSTemplateRepository.GetCount(q => q.F_ModelName == input.F_ModelName&&q.F_Id!= input.F_Id) > 0)
107
+            {
108
+                return Error("模板名称不能重复");
109
+            }
110
+            input.F_AddTime = DateTime.Now;
111
+            T_Bus_SMSTemplate ModelAdd = await bus_SMSTemplateRepository.GetSingle(q=>q.F_Id==input.F_Id);
112
+            ModelConvertHelper<T_Bus_SMSTemplate, SMSTemplateInput>.ModeToModelDefault(ModelAdd, input);
113
+            ModelAdd.F_AddUser = UserLogin.UserId.ObjToInt();
114
+            ModelAdd.F_AddUserName = UserLogin.UserName;
115
+
116
+            if (await bus_SMSTemplateRepository.Update(ModelAdd))
117
+            {
118
+                return Success("保存成功");
119
+            }
120
+
121
+            return Error("保存失败,请重试!");
122
+            
123
+        }
124
+
125
+        /// <summary>
126
+        /// 删除
127
+        /// </summary>
128
+        /// <param name="ids">格式   1,2,3,4</param>
129
+        /// <returns></returns>
130
+        [HttpPost("deletetemplate")]
131
+        public async Task<IActionResult> DeleteTemplate(string ids)
132
+        {
133
+            if (string.IsNullOrEmpty(ids))
134
+                return Error("请输入删除id");
135
+            ids = ids.Trim(',');
136
+            if (string.IsNullOrEmpty(ids))
137
+                return Error("请输入删除id");
138
+            string[] idsArry = ids.Split(',');
139
+            if (await bus_SMSTemplateRepository.Delete(q => idsArry.Contains( q.F_Id.ToString())))
140
+            {
141
+                return Success("删除成功");
142
+            }
143
+            else
144
+            {
145
+                return Error("删除失败,请重试!");
146
+            }
147
+        }
148
+
149
+        /// <summary>
150
+        /// 分页查询
151
+        /// </summary>
152
+        /// <param name="input"></param>
153
+        /// <returns></returns>
154
+        [HttpPost("gettemplatebypage")]
155
+        public async Task<IActionResult> GetTemplateByPage(SMSTemplateInput input)
156
+        {
157
+
158
+            List<IConditionalModel> conModels = new List<IConditionalModel>();
159
+            #region 条件筛选
160
+            if (!string.IsNullOrEmpty(input.F_ModelName))
161
+            {
162
+                conModels.Add(new ConditionalModel() { FieldName = "F_ModelName", ConditionalType = ConditionalType.Like, FieldValue = input.F_ModelName });
163
+            }
164
+            if (!string.IsNullOrEmpty(input.F_Tel))
165
+            {
166
+                conModels.Add(new ConditionalModel() { FieldName = "F_Tel", ConditionalType = ConditionalType.Like, FieldValue = input.F_Tel });
167
+            }
168
+            if (input.F_Id>0)
169
+            {
170
+                conModels.Add(new ConditionalModel() { FieldName = "F_Id", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Id.ToString() });
171
+            }
172
+
173
+            #endregion
174
+            RefAsync<int> count = 0;
175
+            PageData<T_Bus_SMSTemplate> productClasselist = await bus_SMSTemplateRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = input.pageindex, PageSize = input.pagesize, PageCount = count });
176
+
177
+            return Success("成功", productClasselist);
178
+        }
179
+
180
+
181
+        #endregion
182
+
183
+        #region 短信记录
184
+
185
+        /// <summary>
186
+        /// 新增
187
+        /// </summary>
188
+        /// <param name="input"></param>
189
+        /// <returns></returns>
190
+        [HttpPost("addsmslog")]
191
+        public async Task<IActionResult> AddSMSLog(SMSLogInput input)
192
+        {
193
+
194
+            #region 验证 参数
195
+
196
+
197
+            if (string.IsNullOrEmpty(input.F_Content))
198
+                return Error("没有内容");
199
+            if (string.IsNullOrEmpty(input.F_Name))
200
+                input.F_Name = DateTime.Now.ToString("yyyyMMddhhmmss");
201
+            if (input.F_Type == 1 || input.F_Type == 2)
202
+            { 
203
+                if(input.F_TemplateId<1)
204
+                return Error("请选择模板"); 
205
+
206
+            }
207
+            if (input.F_Type == 2 || input.F_Type == 4)
208
+            {
209
+                if (input.F_PlanSendTime <= DateTime.Now)
210
+                { return Error("定时发送时间无效"); }
211
+            } else
212
+            {
213
+                input.F_PlanSendTime = DateTime.Now;
214
+            }
215
+            if (string.IsNullOrEmpty(input.F_Tel))
216
+                return Error("请输入手机号码");
217
+
218
+
219
+            #endregion
220
+            List<T_Bus_SMSLog> modelAddList = new List<T_Bus_SMSLog>();
221
+
222
+            T_Bus_SMSLog ModelAdd = new T_Bus_SMSLog();
223
+            ModelConvertHelper<T_Bus_SMSLog, SMSLogInput>.ModeToModelDefault(ModelAdd, input);
224
+            ModelAdd.F_Content = input.F_Content.Replace("{phone}", input.F_Tel).Replace("{name}","");
225
+            ModelAdd.F_AddUser = UserLogin.UserId.ObjToInt();
226
+            ModelAdd.F_AddUserName = UserLogin.UserName;
227
+            ModelAdd.F_AddTime = DateTime.Now;            
228
+            ModelAdd.F_Id=Guid.NewGuid().ToString().Replace("-","");
229
+            ModelAdd.F_Message = "";
230
+            ModelAdd.F_State = 0;
231
+
232
+            //ModelAdd.F_Tel = input.F_Tel;
233
+            //ModelAdd.F_PlanSendTime = input.F_PlanSendTime;
234
+            //ModelAdd.F_TemplateId = input.F_TemplateId;
235
+            //ModelAdd.F_Type = input.F_Type;
236
+            modelAddList.Add(ModelAdd);
237
+            string retstr =await SendSMSLog(modelAddList);
238
+            if (retstr.StartsWith("成功"))
239
+            {
240
+                return Success(retstr);
241
+            }
242
+
243
+            return Error(retstr);
244
+            
245
+        }
246
+
247
+
248
+        /// <summary>
249
+        /// 更新
250
+        /// </summary>
251
+        /// <param name="input"></param>
252
+        /// <returns></returns>
253
+        [HttpPost("updatesmslog")]
254
+        public async Task<IActionResult> UpdateSMSLog(SMSLogInput input)
255
+        {
256
+
257
+            #region 验证 参数
258
+
259
+
260
+            if (string.IsNullOrEmpty(input.F_Id))
261
+                return Error("请输入ID");
262
+            if (input.F_State<1)
263
+                return Error("请输入状态");
264
+
265
+
266
+            #endregion
267
+
268
+
269
+            T_Bus_SMSLog ModelAdd = await bus_SMSLogRepository.GetSingle(q => q.F_Id == input.F_Id);
270
+            ModelAdd.F_State = input.F_State;
271
+            ModelAdd.F_AddUser = UserLogin.UserId.ObjToInt();
272
+            ModelAdd.F_AddUserName = UserLogin.UserName;
273
+
274
+            if (await bus_SMSLogRepository.Update(ModelAdd))
275
+            {
276
+                return Success("保存成功");
277
+            }
278
+
279
+            return Error("保存失败,请重试!");
280
+
281
+        }
282
+
283
+        /// <summary>
284
+        /// 删除
285
+        /// </summary>
286
+        /// <param name="ids">格式   1,2,3,4</param>
287
+        /// <returns></returns>
288
+        [HttpPost("deletesmslog")]
289
+        public async Task<IActionResult> DeleteSMSLog(string ids)
290
+        {
291
+            if (string.IsNullOrEmpty(ids))
292
+                return Error("请输入删除id");
293
+            ids = ids.Trim(',');
294
+            if (string.IsNullOrEmpty(ids))
295
+                return Error("请输入删除id");
296
+            string[] idsArry = ids.Split(',');
297
+            if (await bus_SMSLogRepository.Delete(q => idsArry.Contains(q.F_Id.ToString())))
298
+            {
299
+                return Success("删除成功");
300
+            }
301
+            else
302
+            {
303
+                return Error("删除失败,请重试!");
304
+            }
305
+        }
306
+
307
+        /// <summary>
308
+        /// 分页查询
309
+        /// </summary>
310
+        /// <param name="input"></param>
311
+        /// <returns></returns>
312
+        [HttpPost("getsmslogbypage")]
313
+        public async Task<IActionResult> GetSMSLogByPage(SMSLogInput input)
314
+        {
315
+
316
+            List<IConditionalModel> conModels = new List<IConditionalModel>();
317
+            #region 条件筛选
318
+            if (!string.IsNullOrEmpty(input.F_Name))
319
+            {
320
+                conModels.Add(new ConditionalModel() { FieldName = "F_Name", ConditionalType = ConditionalType.Like, FieldValue = input.F_Name });
321
+            }
322
+            if (!string.IsNullOrEmpty(input.F_Tel))
323
+            {
324
+                conModels.Add(new ConditionalModel() { FieldName = "F_Tel", ConditionalType = ConditionalType.Like, FieldValue = input.F_Tel });
325
+            }
326
+            if (input.SearchEndTime != null)
327
+            {
328
+                conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.LessThan, FieldValue = input.SearchEndTime.GetValueOrDefault().ToString("yyyy-MM-dd 23:59:59") });
329
+            }
330
+            if (input.F_TemplateId >0)
331
+            {
332
+                conModels.Add(new ConditionalModel() { FieldName = "F_TemplateId", ConditionalType = ConditionalType.Equal, FieldValue = input.F_TemplateId.ToString() });
333
+            }
334
+            if (input.SearchStartTime != null)
335
+            {
336
+                conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.GreaterThan, FieldValue = input.SearchStartTime.GetValueOrDefault().ToString("yyyy-MM-dd 00:00:01") });
337
+            }
338
+            if (input.F_State > 0)
339
+            {
340
+                conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.Equal, FieldValue = input.F_State.ToString() });
341
+            }
342
+
343
+            #endregion
344
+            RefAsync<int> count = 0;
345
+            PageData<T_Bus_SMSLog> productClasselist = await bus_SMSLogRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = input.pageindex, PageSize = input.pagesize, PageCount = count });
346
+
347
+            return Success("成功", productClasselist);
348
+        }
349
+
350
+
351
+        #endregion
352
+
353
+
354
+        #region 方法
355
+
356
+        private async Task<string> SendSMSLog(List<T_Bus_SMSLog> list)
357
+        {
358
+            if (list != null && list.Count > 0)
359
+            {
360
+                int n = list.Count;
361
+                int n1 = 0;
362
+                int n2 = 0;
363
+                bool bl = await bus_SMSLogRepository.AddMany(list);
364
+                //记录短信  可暂时不发 放任务中
365
+                if (bl)
366
+                {
367
+                    List<T_Bus_SMSLog> templist = new List<T_Bus_SMSLog>();
368
+                    foreach (T_Bus_SMSLog m in list)
369
+                    {
370
+
371
+                        string ret = SendMessage(m.F_Tel, m.F_Content);
372
+                        m.F_Message = ret;
373
+                        m.F_SendTime = DateTime.Now;
374
+                        if (ret == "success")
375
+                        {
376
+                            n1++;
377
+                            m.F_State = 1;
378
+                        }
379
+                        else
380
+                        {
381
+                            n2++;
382
+                            m.F_State = 2;
383
+                        }
384
+                        templist.Add(m);
385
+                        if (templist.Count > 10)
386
+                        {
387
+                            if (!await bus_SMSLogRepository.UpdateListToColumns(templist, s => new { s.F_State, s.F_SendTime, s.F_Message }))
388
+                            {
389
+                                templist = new List<T_Bus_SMSLog>();
390
+                                return string.Format("失败:全部/成功/失败-{0}/{1}/{2}", n, n1, n2);
391
+                            }
392
+                            templist = new List<T_Bus_SMSLog>();
393
+                        }
394
+
395
+                    }
396
+                    if (templist.Count > 0)
397
+                    {
398
+                        await bus_SMSLogRepository.UpdateListToColumns(templist, s => new { s.F_State, s.F_SendTime, s.F_Message });
399
+                    }
400
+                    return string.Format("成功:全部/成功/失败-{0}/{1}/{2}", n, n1, n2);
401
+                }
402
+                else
403
+                {
404
+                    return "失败:短信插入失败";
405
+                }
406
+            }
407
+
408
+            return "成功:" + 0;
409
+        }
410
+
411
+
412
+        private string SendMessage(string phone,string content)
413
+        {
414
+            return "success";
415
+        }
416
+        #endregion
417
+    }
418
+}

+ 30 - 17
代码/TVShoppingCallCenter_ZLJ/Controllers/TaskManagement/TaskManagementController.cs

@@ -274,31 +274,55 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.TaskManagement
274 274
             }
275 275
             if (!string.IsNullOrEmpty(tasker))
276 276
             {
277
-                if (_sys_useraccountRepository .GetSingle(x => x.F_UserName  == tasker).Result != null)
277
+                if (_sys_useraccountRepository .GetListALL(x => x.F_UserName  == tasker&&x.F_DeleteFlag ==0).Result .FirstOrDefault ()!= null)
278 278
                 {
279
-                    conModels.Add(new ConditionalModel() { FieldName = "F_Tasker", ConditionalType = ConditionalType.Like, FieldValue = _sys_useraccountRepository.GetSingle(x => x.F_UserName == tasker).Result.F_UserId .ToString ()  });
279
+                    conModels.Add(new ConditionalModel() { FieldName = "F_Tasker", ConditionalType = ConditionalType.Equal , FieldValue = _sys_useraccountRepository.GetListALL (x => x.F_UserName == tasker && x.F_DeleteFlag == 0).Result.FirstOrDefault ().F_UserId .ToString ()  });
280 280
                 }
281 281
                 else
282 282
                 {
283 283
                     return Error("请输入正确的任务人");
284 284
                 }
285 285
             }
286
+            if (string .IsNullOrEmpty (tasker)&& string.IsNullOrEmpty(parentname))
287
+            {
288
+                conModels.Add(new ConditionalModel() { FieldName = "F_Parentid", ConditionalType = ConditionalType.Equal, FieldValue = parentid.ToString() });
289
+            }
290
+           // string user = "8000";
291
+               string user = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
292
+            var dept = _sys_useraccountRepository.GetSingle(x => x.F_UserCode == user).Result != null ? _sys_useraccountRepository.GetSingle(x => x.F_UserCode == user).Result.F_DeptId : 0;
293
+            if (!string.IsNullOrEmpty(deptid))
294
+            {
295
+                conModels.Add(new ConditionalModel() { FieldName = "F_Deptid", ConditionalType = ConditionalType.Equal, FieldValue = deptid });
296
+            }
297
+            else
298
+            {
299
+                conModels.Add(new ConditionalModel() { FieldName = "F_CreateUser", ConditionalType = ConditionalType.Equal, FieldValue = user });
300
+                new KeyValuePair<WhereType, ConditionalModel>(WhereType.Or, new ConditionalModel() { FieldName = "F_Deptid", ConditionalType = ConditionalType.Like, FieldValue = dept.ToString() });
301
+                deptid = dept.ToString();
302
+            }
286 303
             if (!string.IsNullOrEmpty(parentname))
287 304
             {
288
-                if (_sys_taskmanagement_Repository.GetSingle (x=>x .F_Name == parentname).Result!=null  )
305
+                List<IConditionalModel> conModel = new List<IConditionalModel>();
306
+                conModel.Add(new ConditionalModel() { FieldName = "F_CreateUser", ConditionalType = ConditionalType.Equal, FieldValue = user });
307
+                new KeyValuePair<WhereType, ConditionalModel>(WhereType.Or, new ConditionalModel() { FieldName = "F_Deptid", ConditionalType = ConditionalType.Like, FieldValue = deptid.ToString() });
308
+                conModel.Add(new ConditionalModel() { FieldName = "F_IsDelete", ConditionalType = ConditionalType.Equal, FieldValue = ((int)EnumUserCountState.Enabled).ToString() });
309
+                conModel.Add(new ConditionalModel() { FieldName = "F_Name", ConditionalType = ConditionalType.Like, FieldValue = parentname });
310
+                var model = _sys_taskmanagement_Repository.GetListALL(conModel, "F_CreateTime desc ").Result.FirstOrDefault();
311
+                if (model != null  )
289 312
                 {
290
-                    conModels.Add(new ConditionalModel() { FieldName = "F_Parentid", ConditionalType = ConditionalType.Like, FieldValue = _sys_taskmanagement_Repository.GetSingle(x => x.F_Name == parentname).Result.F_ID .ToString ()    });
313
+                    conModels.Add(new ConditionalModel() { FieldName = "F_Parentid", ConditionalType = ConditionalType.Equal, FieldValue = model.F_ID .ToString ()    });
291 314
                 }
292 315
                 else
293 316
                 {
294 317
                     return Error("请输入正确的父级任务名称");
295 318
                 }
296 319
             }
320
+            
297 321
             if (type > -1)
298 322
             {
299 323
                 conModels.Add(new ConditionalModel() { FieldName = "F_Type", ConditionalType = ConditionalType.Like, FieldValue = type.ToString() });
300 324
             }
301
-            conModels.Add(new ConditionalModel() { FieldName = "F_Parentid", ConditionalType = ConditionalType.Equal , FieldValue = parentid.ToString() });
325
+           
302 326
             if (!string.IsNullOrEmpty(keyword))
303 327
             {
304 328
                 conModels.Add(new ConditionalCollections()
@@ -319,18 +343,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.TaskManagement
319 343
             {
320 344
                 conModels.Add(new ConditionalModel() { FieldName = "F_EndTime", ConditionalType = ConditionalType.LessThanOrEqual, FieldValue = endtime });
321 345
             }
322
-            string user = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
323
-            var dept = _sys_useraccountRepository.GetSingle(x => x.F_UserCode == user).Result != null ? _sys_useraccountRepository.GetSingle(x => x.F_UserCode == user).Result.F_DeptId : 0;
324
-            if (!string .IsNullOrEmpty (deptid))
325
-            {
326
-                conModels.Add(new ConditionalModel() { FieldName = "F_Deptid", ConditionalType = ConditionalType.Equal, FieldValue = deptid });
327
-            }
328
-            else
329
-            {
330
-                conModels.Add(new ConditionalModel() { FieldName = "F_CreateUser", ConditionalType = ConditionalType.Equal , FieldValue = user  });
331
-                new KeyValuePair<WhereType, ConditionalModel>(WhereType.Or, new ConditionalModel() { FieldName = "F_Deptid", ConditionalType = ConditionalType.Like, FieldValue = dept.ToString() });
332
-
333
-            }
346
+          
334 347
             #endregion
335 348
             int recordCount = 0;
336 349
             var list = await _sys_taskmanagement_Repository.GetListByPage(conModels, new MyPageModel() { PageIndex = pageindex, PageSize = pagesize, PageCount = recordCount });

+ 1 - 1
代码/TVShoppingCallCenter_ZLJ/Controllers/hangfire/HangfireController.cs

@@ -188,7 +188,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.hangfire
188 188
                         //必填
189 189
                         modelOrder.F_ADFrom = "生日单";
190 190
                         modelOrder.F_Type = "系统单";
191
-                        modelOrder.F_Id = "BJ" + modelvip.F_ID + "T" + DateTimeConvert.ToTimetag(DateTime.Now);
191
+                        modelOrder.F_Id = "BJ" + modelvip.F_Saleperson + "T" + DateTimeConvert.ToTimetag(DateTime.Now);
192 192
                         modelOrder.F_VipId = modelvip.F_ID;
193 193
                         modelOrder.F_UseActivity = "生日单";
194 194
                         //选填 快递属性

+ 1 - 1
代码/TVShoppingCallCenter_ZLJ/Controllers/knowledge/KnowledgeClassController.cs

@@ -110,7 +110,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.knowledge
110 110
             var model = _repositorycategoryreposytory.GetSingle(x => x.F_CategoryId == id).Result;
111 111
             if (model == null)
112 112
                 return Error("该分类不存在");
113
-            var dt = _repositoryinformationrepository.GetListALL(x => x.F_CategoryId == model.F_CategoryId&&x.F_DeleteFlag !=0).Result;
113
+            var dt = _repositoryinformationrepository.GetListALL(x => x.F_CategoryId == model.F_CategoryId&&x.F_DeleteFlag ==0).Result;
114 114
             if (dt != null)
115 115
             {
116 116
                 if (dt.Count > 0)

+ 3 - 1
代码/TVShoppingCallCenter_ZLJ/Models/Inputs/Order/OrderInput.cs

@@ -291,7 +291,9 @@ namespace TVShoppingCallCenter_ZLJ.Models.Inputs
291 291
             get { return _f_usescore; }
292 292
         }
293 293
 
294
-
294
+        /// <summary>
295
+        ///  0待回款1已支付 2待退款3已退款
296
+        /// </summary>
295 297
         public int F_PayState
296 298
         {
297 299
             set { _f_paystate = value; }

+ 134 - 0
代码/TVShoppingCallCenter_ZLJ/Models/Inputs/SMSLogInput.cs

@@ -0,0 +1,134 @@
1
+using System;
2
+namespace TVShoppingCallCenter_ZLJ.Models.Inputs
3
+{
4
+	/// <summary>
5
+	/// 短信模板表
6
+	/// </summary>
7
+	[Serializable]
8
+	public partial class SMSLogInput : BaseInput
9
+	{
10
+		public SMSLogInput()
11
+		{ }
12
+		#region Model
13
+		private string _f_id;
14
+		private int _f_adduser = 0;
15
+		private string _f_addusername;
16
+		private string _f_content = "";
17
+		private int _f_templateid;
18
+		private int _f_state;
19
+		private string _f_message = "";
20
+		private DateTime _f_addtime;
21
+		private DateTime _f_sendtime;
22
+		private DateTime _f_plansendtime;
23
+		private string _f_tel = "";
24
+		private int _f_type;
25
+		private string _f_name = "";
26
+		/// <summary>
27
+		/// 本批次名称
28
+		/// </summary>
29
+		public string F_Name
30
+		{
31
+			set { _f_name = value; }
32
+			get { return _f_name; }
33
+		}
34
+		/// <summary>
35
+		/// 
36
+		/// </summary>
37
+		public string F_Id
38
+		{
39
+			set { _f_id = value; }
40
+			get { return _f_id; }
41
+		}
42
+		/// <summary>
43
+		/// 记录添加人
44
+		/// </summary>
45
+		public int F_AddUser
46
+		{
47
+			set { _f_adduser = value; }
48
+			get { return _f_adduser; }
49
+		}
50
+		/// <summary>
51
+		/// 记录添加人姓名/发送人
52
+		/// </summary>
53
+		public string F_AddUserName
54
+		{
55
+			set { _f_addusername = value; }
56
+			get { return _f_addusername; }
57
+		}
58
+		/// <summary>
59
+		/// 发送内容
60
+		/// </summary>
61
+		public string F_Content
62
+		{
63
+			set { _f_content = value; }
64
+			get { return _f_content; }
65
+		}
66
+		/// <summary>
67
+		/// 模板id
68
+		/// </summary>
69
+		public int F_TemplateId
70
+		{
71
+			set { _f_templateid = value; }
72
+			get { return _f_templateid; }
73
+		}
74
+		/// <summary>
75
+		/// 发送状态 0没有获取状态 1成功2失败
76
+		/// </summary>
77
+		public int F_State
78
+		{
79
+			set { _f_state = value; }
80
+			get { return _f_state; }
81
+		}
82
+		/// <summary>
83
+		/// 发送状态信息,可不用
84
+		/// </summary>
85
+		public string F_Message
86
+		{
87
+			set { _f_message = value; }
88
+			get { return _f_message; }
89
+		}
90
+		/// <summary>
91
+		/// 发送时间
92
+		/// </summary>
93
+		public DateTime F_AddTime
94
+		{
95
+			set { _f_addtime = value; }
96
+			get { return _f_addtime; }
97
+		}
98
+		/// <summary>
99
+		/// 发送时间
100
+		/// </summary>
101
+		public DateTime F_SendTime
102
+		{
103
+			set { _f_sendtime = value; }
104
+			get { return _f_sendtime; }
105
+		}
106
+		/// <summary>
107
+		/// 计划发送时间
108
+		/// </summary>
109
+		public DateTime F_PlanSendTime
110
+		{
111
+			set { _f_plansendtime = value; }
112
+			get { return _f_plansendtime; }
113
+		}
114
+		/// <summary>
115
+		/// 发送的手机号
116
+		/// </summary>
117
+		public string F_Tel
118
+		{
119
+			set { _f_tel = value; }
120
+			get { return _f_tel; }
121
+		}
122
+		/// <summary>
123
+		/// 1即时发送(模板),2定时发送(模板),3即时自定义 4定时自定义
124
+		/// </summary>
125
+		public int F_Type
126
+		{
127
+			set { _f_type = value; }
128
+			get { return _f_type; }
129
+		}
130
+		#endregion Model
131
+
132
+	}
133
+}
134
+

+ 89 - 0
代码/TVShoppingCallCenter_ZLJ/Models/Inputs/SMSTemplateInput.cs

@@ -0,0 +1,89 @@
1
+using System;
2
+namespace TVShoppingCallCenter_ZLJ.Models.Inputs
3
+{
4
+	/// <summary>
5
+	/// 短信模板表
6
+	/// </summary>
7
+	[Serializable]
8
+	public partial class SMSTemplateInput:BaseInput
9
+	{
10
+		public SMSTemplateInput()
11
+		{ }
12
+		#region Model
13
+		private int _f_id;
14
+		private string _f_modelname = "";
15
+		private string _f_content = "";
16
+		private int _f_adduser;
17
+		private string _f_addusername = "";
18
+		private int _f_sort = 100;
19
+		private DateTime _f_addtime = DateTime.Now;
20
+		private string _f_tel = "";
21
+		/// <summary>
22
+		/// 
23
+		/// </summary>
24
+		public int F_Id
25
+		{
26
+			set { _f_id = value; }
27
+			get { return _f_id; }
28
+		}
29
+		/// <summary>
30
+		/// 短息模板名称
31
+		/// </summary>
32
+		public string F_ModelName
33
+		{
34
+			set { _f_modelname = value; }
35
+			get { return _f_modelname; }
36
+		}
37
+		/// <summary>
38
+		/// 模板内容
39
+		/// </summary>
40
+		public string F_Content
41
+		{
42
+			set { _f_content = value; }
43
+			get { return _f_content; }
44
+		}
45
+		/// <summary>
46
+		/// 添加人id
47
+		/// </summary>
48
+		public int F_AddUser
49
+		{
50
+			set { _f_adduser = value; }
51
+			get { return _f_adduser; }
52
+		}
53
+		/// <summary>
54
+		/// 添加人
55
+		/// </summary>
56
+		public string F_AddUserName
57
+		{
58
+			set { _f_addusername = value; }
59
+			get { return _f_addusername; }
60
+		}
61
+		/// <summary>
62
+		/// 排序
63
+		/// </summary>
64
+		public int F_Sort
65
+		{
66
+			set { _f_sort = value; }
67
+			get { return _f_sort; }
68
+		}
69
+		/// <summary>
70
+		/// 添加时间
71
+		/// </summary>
72
+		public DateTime F_AddTime
73
+		{
74
+			set { _f_addtime = value; }
75
+			get { return _f_addtime; }
76
+		}
77
+		/// <summary>
78
+		/// 绑定400电话
79
+		/// </summary>
80
+		public string F_Tel
81
+		{
82
+			set { _f_tel = value; }
83
+			get { return _f_tel; }
84
+		}
85
+		#endregion Model
86
+
87
+	}
88
+}
89
+

+ 4 - 2
代码/TVShoppingCallCenter_ZLJ/Startup.cs

@@ -46,7 +46,7 @@ namespace TVShoppingCallCenter_ZLJ
46 46
             #region Cors 配置
47 47
             services.AddCors(options =>
48 48
             {
49
-                options.AddPolicy("Cors",
49
+                options.AddPolicy("Cors",//CorsPolicy
50 50
                 builder => builder.AllowAnyOrigin()//builder.WithOrigins(Configuration["Cors"].Split(','))
51 51
                 .AllowAnyMethod()
52 52
                 .SetIsOriginAllowed(_=>true)//上线后删除此行 加入域列表 内网可忽略
@@ -139,7 +139,9 @@ namespace TVShoppingCallCenter_ZLJ
139 139
             services.AddTransient<IBus_OrderMergeRepository, Bus_OrderMergeRepository>();
140 140
             services.AddTransient<IBus_AfterSaleRepository, Bus_AfterSaleRepository>();
141 141
             services.AddTransient<IBus_OrderMoneyRepository, Bus_OrderMoneyRepository>();
142
-            
142
+            services.AddTransient<IBus_SMSLogRepository, Bus_SMSLogRepository>();
143
+            services.AddTransient<IBus_SMSTemplateRepository, Bus_SMSTemplateRepository>();
144
+
143 145
             services.AddHangfire(x => x.UseSqlServerStorage(BaseContext.DB_ConnectionString));
144 146
 
145 147
             services.AddTransient<ICus_VipInfoRepository, Cus_VipInfoRepository>();