Selaa lähdekoodia

获取邮件信息接口,邮件审核,添加邮件订单。

lihai 8 vuotta sitten
vanhempi
commit
daf0635007

+ 8 - 0
CallCenterApi/CallCenterApi.BLL/T_Email_EmailMessage_Map.cs

@@ -29,6 +29,14 @@ namespace CallCenterApi.BLL
29 29
         {
30 30
             return dal.Exists(E_Id);
31 31
         }
32
+        
33
+        /// <summary>
34
+        /// 是否存在该记录
35
+        /// </summary>
36
+        public bool ExistsByEmailId(string EmailId)
37
+        {
38
+            return dal.ExistsByEmailId(EmailId);
39
+        }
32 40
 
33 41
         /// <summary>
34 42
         /// 增加一条数据

+ 64 - 40
CallCenterApi/CallCenterApi.DAL/T_Email_EmailMessage_Map.cs

@@ -38,23 +38,40 @@ namespace CallCenterApi.DAL
38 38
 
39 39
             return DbHelperSQL.Exists(strSql.ToString(), parameters);
40 40
         }
41
+        
42
+        /// <summary>
43
+        /// 是否存在该记录
44
+        /// </summary>
45
+        public bool ExistsByEmailId(string EmailId)
46
+        {
47
+            StringBuilder strSql = new StringBuilder();
48
+            strSql.Append("select count(1) from T_Email_EmailMessage_Map");
49
+            strSql.Append(" where E_EmailId=@EmailId");
50
+            SqlParameter[] parameters = {
51
+                    new SqlParameter("@EmailId", SqlDbType.VarChar,50)
52
+            };
53
+            parameters[0].Value = EmailId;
54
+
55
+            return DbHelperSQL.Exists(strSql.ToString(), parameters);
56
+        }
41 57
 
42 58
 
43 59
         /// <summary>
44
-        /// 增加一条数据
45
-        /// </summary>
46
-        public int Add(Model.T_Email_EmailMessage_Map model)
60
+		/// 增加一条数据
61
+		/// </summary>
62
+		public int Add(Model.T_Email_EmailMessage_Map model)
47 63
         {
48 64
             StringBuilder strSql = new StringBuilder();
49 65
             strSql.Append("insert into T_Email_EmailMessage_Map(");
50
-            strSql.Append("E_WorkOrderId,E_EmailId,E_IsWorkOrder,E_SendEmail,E_SendName,E_Title,E_Content,E_AttachmentsUrl,E_AddTime,E_EmailTime,F_UserId,F_UserName)");
66
+            strSql.Append("E_WorkOrderId,E_EmailId,E_IsWorkOrder,E_IsAudit,E_SendEmail,E_SendName,E_Title,E_Content,E_AttachmentsUrl,E_AddTime,E_EmailTime,F_UserId,F_UserName)");
51 67
             strSql.Append(" values (");
52
-            strSql.Append("@E_WorkOrderId,@E_EmailId,@E_IsWorkOrder,@E_SendEmail,@E_SendName,@E_Title,@E_Content,@E_AttachmentsUrl,@E_AddTime,@E_EmailTime,@F_UserId,@F_UserName)");
68
+            strSql.Append("@E_WorkOrderId,@E_EmailId,@E_IsWorkOrder,@E_IsAudit,@E_SendEmail,@E_SendName,@E_Title,@E_Content,@E_AttachmentsUrl,@E_AddTime,@E_EmailTime,@F_UserId,@F_UserName)");
53 69
             strSql.Append(";select @@IDENTITY");
54 70
             SqlParameter[] parameters = {
55 71
                     new SqlParameter("@E_WorkOrderId", SqlDbType.VarChar,20),
56 72
                     new SqlParameter("@E_EmailId", SqlDbType.VarChar,50),
57 73
                     new SqlParameter("@E_IsWorkOrder", SqlDbType.Int,4),
74
+                    new SqlParameter("@E_IsAudit", SqlDbType.Int,4),
58 75
                     new SqlParameter("@E_SendEmail", SqlDbType.VarChar,50),
59 76
                     new SqlParameter("@E_SendName", SqlDbType.NVarChar,20),
60 77
                     new SqlParameter("@E_Title", SqlDbType.VarChar,50),
@@ -67,15 +84,16 @@ namespace CallCenterApi.DAL
67 84
             parameters[0].Value = model.E_WorkOrderId;
68 85
             parameters[1].Value = model.E_EmailId;
69 86
             parameters[2].Value = model.E_IsWorkOrder;
70
-            parameters[3].Value = model.E_SendEmail;
71
-            parameters[4].Value = model.E_SendName;
72
-            parameters[5].Value = model.E_Title;
73
-            parameters[6].Value = model.E_Content;
74
-            parameters[7].Value = model.E_AttachmentsUrl;
75
-            parameters[8].Value = model.E_AddTime;
76
-            parameters[9].Value = model.E_EmailTime;
77
-            parameters[10].Value = model.F_UserId;
78
-            parameters[11].Value = model.F_UserName;
87
+            parameters[3].Value = model.E_IsAudit;
88
+            parameters[4].Value = model.E_SendEmail;
89
+            parameters[5].Value = model.E_SendName;
90
+            parameters[6].Value = model.E_Title;
91
+            parameters[7].Value = model.E_Content;
92
+            parameters[8].Value = model.E_AttachmentsUrl;
93
+            parameters[9].Value = model.E_AddTime;
94
+            parameters[10].Value = model.E_EmailTime;
95
+            parameters[11].Value = model.F_UserId;
96
+            parameters[12].Value = model.F_UserName;
79 97
 
80 98
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
81 99
             if (obj == null)
@@ -88,15 +106,16 @@ namespace CallCenterApi.DAL
88 106
             }
89 107
         }
90 108
         /// <summary>
91
-        /// 更新一条数据
92
-        /// </summary>
93
-        public bool Update(Model.T_Email_EmailMessage_Map model)
109
+		/// 更新一条数据
110
+		/// </summary>
111
+		public bool Update(Model.T_Email_EmailMessage_Map model)
94 112
         {
95 113
             StringBuilder strSql = new StringBuilder();
96 114
             strSql.Append("update T_Email_EmailMessage_Map set ");
97 115
             strSql.Append("E_WorkOrderId=@E_WorkOrderId,");
98 116
             strSql.Append("E_EmailId=@E_EmailId,");
99 117
             strSql.Append("E_IsWorkOrder=@E_IsWorkOrder,");
118
+            strSql.Append("E_IsAudit=@E_IsAudit,");
100 119
             strSql.Append("E_SendEmail=@E_SendEmail,");
101 120
             strSql.Append("E_SendName=@E_SendName,");
102 121
             strSql.Append("E_Title=@E_Title,");
@@ -111,6 +130,7 @@ namespace CallCenterApi.DAL
111 130
                     new SqlParameter("@E_WorkOrderId", SqlDbType.VarChar,20),
112 131
                     new SqlParameter("@E_EmailId", SqlDbType.VarChar,50),
113 132
                     new SqlParameter("@E_IsWorkOrder", SqlDbType.Int,4),
133
+                    new SqlParameter("@E_IsAudit", SqlDbType.Int,4),
114 134
                     new SqlParameter("@E_SendEmail", SqlDbType.VarChar,50),
115 135
                     new SqlParameter("@E_SendName", SqlDbType.NVarChar,20),
116 136
                     new SqlParameter("@E_Title", SqlDbType.VarChar,50),
@@ -124,16 +144,17 @@ namespace CallCenterApi.DAL
124 144
             parameters[0].Value = model.E_WorkOrderId;
125 145
             parameters[1].Value = model.E_EmailId;
126 146
             parameters[2].Value = model.E_IsWorkOrder;
127
-            parameters[3].Value = model.E_SendEmail;
128
-            parameters[4].Value = model.E_SendName;
129
-            parameters[5].Value = model.E_Title;
130
-            parameters[6].Value = model.E_Content;
131
-            parameters[7].Value = model.E_AttachmentsUrl;
132
-            parameters[8].Value = model.E_AddTime;
133
-            parameters[9].Value = model.E_EmailTime;
134
-            parameters[10].Value = model.F_UserId;
135
-            parameters[11].Value = model.F_UserName;
136
-            parameters[12].Value = model.E_Id;
147
+            parameters[3].Value = model.E_IsAudit;
148
+            parameters[4].Value = model.E_SendEmail;
149
+            parameters[5].Value = model.E_SendName;
150
+            parameters[6].Value = model.E_Title;
151
+            parameters[7].Value = model.E_Content;
152
+            parameters[8].Value = model.E_AttachmentsUrl;
153
+            parameters[9].Value = model.E_AddTime;
154
+            parameters[10].Value = model.E_EmailTime;
155
+            parameters[11].Value = model.F_UserId;
156
+            parameters[12].Value = model.F_UserName;
157
+            parameters[13].Value = model.E_Id;
137 158
 
138 159
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
139 160
             if (rows > 0)
@@ -189,7 +210,6 @@ namespace CallCenterApi.DAL
189 210
             }
190 211
         }
191 212
 
192
-
193 213
         /// <summary>
194 214
         /// 得到一个对象实体
195 215
         /// </summary>
@@ -197,7 +217,7 @@ namespace CallCenterApi.DAL
197 217
         {
198 218
 
199 219
             StringBuilder strSql = new StringBuilder();
200
-            strSql.Append("select  top 1 E_Id,E_WorkOrderId,E_EmailId,E_IsWorkOrder,E_SendEmail,E_SendName,E_Title,E_Content,E_AttachmentsUrl,E_AddTime,E_EmailTime,F_UserId,F_UserName from T_Email_EmailMessage_Map ");
220
+            strSql.Append("select  top 1 E_Id,E_WorkOrderId,E_EmailId,E_IsWorkOrder,E_IsAudit,E_SendEmail,E_SendName,E_Title,E_Content,E_AttachmentsUrl,E_AddTime,E_EmailTime,F_UserId,F_UserName from T_Email_EmailMessage_Map ");
201 221
             strSql.Append(" where E_Id=@E_Id");
202 222
             SqlParameter[] parameters = {
203 223
                     new SqlParameter("@E_Id", SqlDbType.Int,4)
@@ -218,9 +238,9 @@ namespace CallCenterApi.DAL
218 238
 
219 239
 
220 240
         /// <summary>
221
-        /// 得到一个对象实体
222
-        /// </summary>
223
-        public Model.T_Email_EmailMessage_Map DataRowToModel(DataRow row)
241
+		/// 得到一个对象实体
242
+		/// </summary>
243
+		public Model.T_Email_EmailMessage_Map DataRowToModel(DataRow row)
224 244
         {
225 245
             Model.T_Email_EmailMessage_Map model = new Model.T_Email_EmailMessage_Map();
226 246
             if (row != null)
@@ -241,6 +261,10 @@ namespace CallCenterApi.DAL
241 261
                 {
242 262
                     model.E_IsWorkOrder = int.Parse(row["E_IsWorkOrder"].ToString());
243 263
                 }
264
+                if (row["E_IsAudit"] != null && row["E_IsAudit"].ToString() != "")
265
+                {
266
+                    model.E_IsAudit = int.Parse(row["E_IsAudit"].ToString());
267
+                }
244 268
                 if (row["E_SendEmail"] != null)
245 269
                 {
246 270
                     model.E_SendEmail = row["E_SendEmail"].ToString();
@@ -282,12 +306,12 @@ namespace CallCenterApi.DAL
282 306
         }
283 307
 
284 308
         /// <summary>
285
-        /// 获得数据列表
286
-        /// </summary>
287
-        public DataSet GetList(string strWhere)
309
+		/// 获得数据列表
310
+		/// </summary>
311
+		public DataSet GetList(string strWhere)
288 312
         {
289 313
             StringBuilder strSql = new StringBuilder();
290
-            strSql.Append("select E_Id,E_WorkOrderId,E_EmailId,E_IsWorkOrder,E_SendEmail,E_SendName,E_Title,E_Content,E_AttachmentsUrl,E_AddTime,E_EmailTime,F_UserId,F_UserName ");
314
+            strSql.Append("select E_Id,E_WorkOrderId,E_EmailId,E_IsWorkOrder,E_IsAudit,E_SendEmail,E_SendName,E_Title,E_Content,E_AttachmentsUrl,E_AddTime,E_EmailTime,F_UserId,F_UserName ");
291 315
             strSql.Append(" FROM T_Email_EmailMessage_Map ");
292 316
             if (strWhere.Trim() != "")
293 317
             {
@@ -297,9 +321,9 @@ namespace CallCenterApi.DAL
297 321
         }
298 322
 
299 323
         /// <summary>
300
-        /// 获得前几行数据
301
-        /// </summary>
302
-        public DataSet GetList(int Top, string strWhere, string filedOrder)
324
+		/// 获得前几行数据
325
+		/// </summary>
326
+		public DataSet GetList(int Top, string strWhere, string filedOrder)
303 327
         {
304 328
             StringBuilder strSql = new StringBuilder();
305 329
             strSql.Append("select ");
@@ -307,7 +331,7 @@ namespace CallCenterApi.DAL
307 331
             {
308 332
                 strSql.Append(" top " + Top.ToString());
309 333
             }
310
-            strSql.Append(" E_Id,E_WorkOrderId,E_EmailId,E_IsWorkOrder,E_SendEmail,E_SendName,E_Title,E_Content,E_AttachmentsUrl,E_AddTime,E_EmailTime,F_UserId,F_UserName ");
334
+            strSql.Append(" E_Id,E_WorkOrderId,E_EmailId,E_IsWorkOrder,E_IsAudit,E_SendEmail,E_SendName,E_Title,E_Content,E_AttachmentsUrl,E_AddTime,E_EmailTime,F_UserId,F_UserName ");
311 335
             strSql.Append(" FROM T_Email_EmailMessage_Map ");
312 336
             if (strWhere.Trim() != "")
313 337
             {

+ 134 - 2
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/EmailSendController.cs

@@ -1,6 +1,7 @@
1 1
 using CallCenter.Utility;
2 2
 using CallCenterApi.Common;
3 3
 using CallCenterApi.Interface.Controllers.Base;
4
+using CallCenterApi.Interface.Controllers.workorder;
4 5
 using CallCenterApi.Model;
5 6
 using LumiSoft.Net.Mail;
6 7
 using LumiSoft.Net.MIME;
@@ -150,12 +151,12 @@ namespace CallCenterApi.Interface.Controllers
150 151
             return Success("导入成功", resultEmail.Trim(',').ToString());
151 152
         }
152 153
 
153
-        #region 批量获取,删除邮件
154
+        #region 批量获取邮件,删除,审核,创建邮件工单
154 155
         /// <summary>
155 156
         /// 获取邮件信息列表(可以分页)
156 157
         /// </summary>
157 158
         /// <returns></returns>
158
-        //[Authority]
159
+        [Authority]
159 160
         public ActionResult GetEmailMessage()
160 161
         {
161 162
             BLL.T_Email_EmailMessage_Map bll = new BLL.T_Email_EmailMessage_Map();
@@ -256,6 +257,7 @@ namespace CallCenterApi.Interface.Controllers
256 257
                             {
257 258
                                 model.E_WorkOrderId = listmodel.E_WorkOrderId;
258 259
                                 model.E_IsWorkOrder = listmodel.E_IsWorkOrder;
260
+                                model.E_IsAudit = listmodel.E_IsAudit;
259 261
                             }
260 262
                         }
261 263
 
@@ -276,8 +278,13 @@ namespace CallCenterApi.Interface.Controllers
276 278
         /// </summary>
277 279
         /// <param name="uid">邮件唯一标识ID</param>
278 280
         /// <returns></returns>
281
+        [Authority]
279 282
         public ActionResult DelEmailByID(string uid)
280 283
         {
284
+            if (string.IsNullOrEmpty(uid))
285
+            {
286
+                return Error("参数为空");
287
+            }
281 288
             using (POP3_Client pop3 = new POP3_Client())
282 289
             {
283 290
                 pop3.Connect(Configs.GetValue("Email_Server"), int.Parse(Configs.GetValue("Email_Port")), false);
@@ -305,6 +312,131 @@ namespace CallCenterApi.Interface.Controllers
305 312
             return Success("删除成功");
306 313
         }
307 314
 
315
+        /// <summary>
316
+        /// 邮件审核(0未审核,1已审核)
317
+        /// </summary>
318
+        /// <param name="uid">邮件ID</param>
319
+        /// <returns></returns>
320
+        [Authority]
321
+        public ActionResult IsAudit(EmailrReceive input)
322
+        {
323
+            BLL.T_Email_EmailMessage_Map bll = new BLL.T_Email_EmailMessage_Map();
324
+            Model.T_Email_EmailMessage_Map model = new Model.T_Email_EmailMessage_Map();
325
+            if (string.IsNullOrEmpty(input.E_EmailId))
326
+            {
327
+                return Error("邮件Id不能为空");
328
+            }
329
+            if (string.IsNullOrEmpty(input.E_Email))
330
+            {
331
+                return Error("邮件不能为空");
332
+            }
333
+            if (string.IsNullOrEmpty(input.E_Title))
334
+            {
335
+                return Error("邮件标题不能为空");
336
+            }
337
+            var listmodel = bll.GetModelList(" E_EmailId='" + input.E_EmailId + "' and E_IsAudit = 1 ").FirstOrDefault();
338
+            if (listmodel == null)
339
+            {
340
+                //邮件未审核 添加              
341
+                //model.E_Id = 0;
342
+                model.E_WorkOrderId = "";
343
+                model.E_EmailId = input.E_EmailId;
344
+                model.E_IsWorkOrder = 0;    //是否已发工单(0未发,1已发)
345
+                model.E_IsAudit = 1;    //0未审核,1已审核
346
+                model.E_SendEmail = input.E_Email;
347
+                model.E_SendName = input.E_Email.Split('@')[0].ToString(); ;
348
+                model.E_Title = input.E_Title;
349
+                model.E_Content = input.E_Content;
350
+                model.E_AttachmentsUrl = input.E_AttachmentsUrl;
351
+                model.E_AddTime = DateTime.Now;
352
+                model.E_EmailTime = input.E_EmailTime;
353
+                model.F_UserId = int.Parse(User.UserData["F_UserID"]);
354
+                model.F_UserName = User.UserData["F_UserCode"];
355
+                int b = bll.Add(model);
356
+                if (b > 0)
357
+                {
358
+                    return Success("审核成功");
359
+                }
360
+                else {
361
+                    return Error("审核失败");
362
+                }
363
+            }
364
+            else {
365
+                //邮件已审核
366
+                return Error("邮件已审核");
367
+
368
+            }
369
+        }
370
+
371
+        /// <summary>
372
+        /// 添加邮件工单(E_IsWorkOrder 0未创建工单,1已创建工单)
373
+        /// </summary>
374
+        /// <returns></returns>
375
+        [Authority]
376
+        public ActionResult AddWorkOrderByEmail()
377
+        {
378
+            string emailid = RequestString.GetFormString("emailid");             //邮件id
379
+            int source = RequestString.GetInt("source", 2);             //信息来源(2市长信箱)
380
+            string cusname = RequestString.GetFormString("cusname");    //投诉人姓名
381
+            string cussex = RequestString.GetFormString("cussex");      //投诉人性别
382
+            string cusphone = RequestString.GetFormString("cusphone");  //投诉人电话
383
+            string cusaddress = RequestString.GetFormString("cusaddress");    //投诉人详细地址
384
+            string email = RequestString.GetFormString("email");        //邮箱
385
+            string zipcode = RequestString.GetFormString("zipcode");    //邮编
386
+            string conname = RequestString.GetFormString("conname");    //联系人姓名
387
+            string conphone = RequestString.GetFormString("conphone");  //客户电话
388
+            string title = RequestString.GetFormString("title");        //标题
389
+            string content = RequestString.GetFormString("content");    //内容
390
+            int sourcearea = RequestString.GetInt("sourcearea", 0);      //事发地域id
391
+            string sourceaddress = RequestString.GetFormString("sourceaddress");    //事发详细地址
392
+            string keys = RequestString.GetFormString("keys");          //关键词id(多个用英文逗号, 隔开)
393
+            string splituser = RequestString.GetFormString("splituser");    //分管领导id(多个用英文逗号, 隔开)
394
+            int type = RequestString.GetInt("type", 9);              //类型(9咨询10求助11投诉12建议13表扬14其他)
395
+            int bigtype = RequestString.GetInt("bigtype", 0);        //大类别
396
+            int smalltype = RequestString.GetInt("smalltype", 0);    //小类别
397
+            int isprotect = RequestString.GetInt("isprotect", 0);    //0普通1保密
398
+            int level = RequestString.GetInt("level", 1);            //1普通2紧急3特急
399
+            WorkOrderController wo = new WorkOrderController();
400
+
401
+            BLL.T_Email_EmailMessage_Map bll = new BLL.T_Email_EmailMessage_Map();
402
+            Model.T_Email_EmailMessage_Map model = new Model.T_Email_EmailMessage_Map();
403
+
404
+            if (string.IsNullOrEmpty(emailid))
405
+            {
406
+                return Error("邮件Id不能为空");
407
+            }
408
+            if (string.IsNullOrEmpty(email))
409
+            {
410
+                return Error("邮件不能为空");
411
+            }
412
+            if (string.IsNullOrEmpty(title))
413
+            {
414
+                return Error("标题不能为空");
415
+            }
416
+            var modelemailid = bll.GetModelList(" E_EmailId='" + emailid + "' and E_IsAudit = 1 AND ISNULL(E_IsWorkOrder,0) = 0 ").FirstOrDefault();
417
+            //邮件关联表 信息存在时修改
418
+            if (modelemailid != null)
419
+            {
420
+                string WorkOrderId = wo.AddWorkOrderBySource(source, cusname, cussex, cusphone, cusaddress, email, zipcode, conname, conphone, title, content, sourcearea, sourceaddress, keys, splituser, type, bigtype, smalltype, isprotect, level);
421
+                if (string.IsNullOrEmpty(WorkOrderId))
422
+                    return Error("操作失败");
423
+                model = bll.GetModelList(" E_EmailId='" + emailid + "'").FirstOrDefault();
424
+                if (model != null)
425
+                {
426
+                    model.E_WorkOrderId = WorkOrderId;
427
+                    model.E_IsWorkOrder = 1;
428
+                    model.E_AddTime = DateTime.Now;
429
+                    if (!bll.Update(model))
430
+                    {
431
+                        return Error("操作失败");
432
+                    }
433
+                    return Success("操作成功");
434
+                }
435
+                return Error("信息不存在");
436
+            }
437
+            return Error("操作失败,请先审核信息");
438
+        }
439
+
308 440
         #endregion
309 441
 
310 442
         #region 内部邮件 - 已发送邮件管理

+ 4 - 0
CallCenterApi/CallCenterApi.Model/EmailrReceive.cs

@@ -44,5 +44,9 @@ namespace CallCenterApi.Model
44 44
         /// 是否已发工单(0未发,1已发)
45 45
         /// </summary>
46 46
         public int? E_IsWorkOrder { get; set; }
47
+        /// <summary>
48
+        /// 是否审核(0未审核,1已审核)
49
+        /// </summary>
50
+        public int? E_IsAudit { get; set; }
47 51
     }
48 52
 }

+ 10 - 1
CallCenterApi/CallCenterApi.Model/T_Email_EmailMessage_Map.cs

@@ -14,7 +14,8 @@ namespace CallCenterApi.Model
14 14
         private int _e_id;
15 15
         private string _e_workorderid;
16 16
         private string _e_emailid;
17
-        private int? _e_isworkorder;
17
+        private int? _e_isworkorder = 0;
18
+        private int? _e_isaudit = 0;
18 19
         private string _e_sendemail;
19 20
         private string _e_sendname;
20 21
         private string _e_title;
@@ -57,6 +58,14 @@ namespace CallCenterApi.Model
57 58
             get { return _e_isworkorder; }
58 59
         }
59 60
         /// <summary>
61
+        /// 是否审核
62
+        /// </summary>
63
+        public int? E_IsAudit
64
+        {
65
+            set { _e_isaudit = value; }
66
+            get { return _e_isaudit; }
67
+        }
68
+        /// <summary>
60 69
         /// 发送邮箱
61 70
         /// </summary>
62 71
         public string E_SendEmail