Procházet zdrojové kódy

工单类型加超时时间。故障报修提交一下

liyuanyuan %!s(int64=3) %!d(string=před) roky
rodič
revize
9e8fb1e80b

+ 2 - 2
RMYY_CallCenter_Api.Bll/T_FaultRepair_Base.cs

@@ -82,10 +82,10 @@ namespace RMYY_CallCenter_Api.BLL
82 82
 		/// <summary>
83 83
 		/// 得到一个对象实体
84 84
 		/// </summary>
85
-		public RMYY_CallCenter_Api.Model.T_FaultRepair_Base GetModel(int F_WorkOrderId)
85
+		public RMYY_CallCenter_Api.Model.T_FaultRepair_Base GetModel(string workordercode)
86 86
 		{
87 87
 			
88
-			return dal.GetModel(F_WorkOrderId);
88
+			return dal.GetModel(workordercode);
89 89
 		}
90 90
  
91 91
 		/// <summary>

+ 4 - 4
RMYY_CallCenter_Api.Dal/T_FaultRepair_Base.cs

@@ -265,16 +265,16 @@ namespace RMYY_CallCenter_Api.DAL
265 265
 		/// <summary>
266 266
 		/// 得到一个对象实体
267 267
 		/// </summary>
268
-		public RMYY_CallCenter_Api.Model.T_FaultRepair_Base GetModel(int F_WorkOrderId)
268
+		public RMYY_CallCenter_Api.Model.T_FaultRepair_Base GetModel(string workordercode)
269 269
 		{
270 270
 			
271 271
 			StringBuilder strSql=new StringBuilder();
272 272
 			strSql.Append("select  top 1 F_WorkOrderId,F_WorkOrderCode,F_Applicant,F_ApplicationDept,F_Applicantsphone,F_Phone,F_WorkOrderCategory,F_Content,F_PlaceOfRepair,F_WorkOrderState,F_Maintenancer,F_MaintenanceDept,F_AssignTime,F_Endtime,F_UpdateTime,F_Deadline,F_CreateUser,F_CreateTime,F_CreateUserDept,F_File,F_ReturnNum,F_InternalWorkOrderCode,F_ExternalWorkOrderCode,F_IsDelete from T_FaultRepair_Base ");
273
-			strSql.Append(" where F_WorkOrderId=SQL2012F_WorkOrderId");
273
+			strSql.Append(" where F_WorkOrderCode=SQL2012F_WorkOrderId");
274 274
 			SqlParameter[] parameters = {
275
-					new SqlParameter("SQL2012F_WorkOrderId", SqlDbType.Int,4)
275
+					new SqlParameter("SQL2012F_WorkOrderId", SqlDbType.VarChar)
276 276
 			};
277
-			parameters[0].Value = F_WorkOrderId;
277
+			parameters[0].Value = workordercode;
278 278
 
279 279
             RMYY_CallCenter_Api.Model.T_FaultRepair_Base model=new RMYY_CallCenter_Api.Model.T_FaultRepair_Base();
280 280
 			DataSet ds=DbHelperSQL.Query(strSql.ToString(),parameters);

+ 28 - 8
RMYY_CallCenter_Api.Dal/T_Sys_DictionaryValue.cs

@@ -38,9 +38,9 @@ namespace RMYY_CallCenter_Api.Dal
38 38
         {
39 39
             StringBuilder strSql = new StringBuilder();
40 40
             strSql.Append("insert into T_Sys_DictionaryValue(");
41
-            strSql.Append("F_DictionaryFlag,F_ValueCode,F_Name,F_Sort,F_Describe,F_State)");
41
+            strSql.Append("F_DictionaryFlag,F_ValueCode,F_Name,F_Sort,F_Describe,F_TimeOut,F_State)");
42 42
             strSql.Append(" values (");
43
-            strSql.Append("@F_DictionaryFlag,@F_ValueCode,@F_Name,@F_Sort,@F_Describe,@F_State)");
43
+            strSql.Append("@F_DictionaryFlag,@F_ValueCode,@F_Name,@F_Sort,@F_Describe,@F_TimeOut,@F_State)");
44 44
             strSql.Append(";select @@IDENTITY");
45 45
             SqlParameter[] parameters = {
46 46
                     new SqlParameter("@F_DictionaryFlag", SqlDbType.VarChar,50),
@@ -48,13 +48,17 @@ namespace RMYY_CallCenter_Api.Dal
48 48
                     new SqlParameter("@F_Name", SqlDbType.VarChar,50),
49 49
                     new SqlParameter("@F_Sort", SqlDbType.Int,4),
50 50
                     new SqlParameter("@F_Describe", SqlDbType.VarChar,-1),
51
-                    new SqlParameter("@F_State", SqlDbType.Bit,1)};
51
+                      new SqlParameter("@F_TimeOut", SqlDbType.Int,4),
52
+
53
+                new SqlParameter("@F_State", SqlDbType.Bit,1)};
52 54
             parameters[0].Value = model.F_DictionaryFlag;
53 55
             parameters[1].Value = model.F_ValueCode;
54 56
             parameters[2].Value = model.F_Name;
55 57
             parameters[3].Value = model.F_Sort;
56 58
             parameters[4].Value = model.F_Describe;
57
-            parameters[5].Value = model.F_State;
59
+
60
+            parameters[5].Value = model.F_TimeOut;
61
+            parameters[6].Value = model.F_State;
58 62
 
59 63
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
60 64
             if (obj == null)
@@ -78,6 +82,8 @@ namespace RMYY_CallCenter_Api.Dal
78 82
             strSql.Append("F_Name=@F_Name,");
79 83
             strSql.Append("F_Sort=@F_Sort,");
80 84
             strSql.Append("F_Describe=@F_Describe,");
85
+            strSql.Append("F_TimeOut=@F_TimeOut,");           
86
+
81 87
             strSql.Append("F_State=@F_State");
82 88
             strSql.Append(" where F_DictionaryValueId=@F_DictionaryValueId");
83 89
             SqlParameter[] parameters = {
@@ -86,15 +92,23 @@ namespace RMYY_CallCenter_Api.Dal
86 92
                     new SqlParameter("@F_Name", SqlDbType.VarChar,50),
87 93
                     new SqlParameter("@F_Sort", SqlDbType.Int,4),
88 94
                     new SqlParameter("@F_Describe", SqlDbType.VarChar,-1),
95
+                      new SqlParameter("@F_TimeOut", SqlDbType.Int,4),
96
+                    
89 97
                     new SqlParameter("@F_State", SqlDbType.Bit,1),
98
+
99
+
100
+
90 101
                     new SqlParameter("@F_DictionaryValueId", SqlDbType.Int,4)};
91 102
             parameters[0].Value = model.F_DictionaryFlag;
92 103
             parameters[1].Value = model.F_ValueCode;
93 104
             parameters[2].Value = model.F_Name;
94 105
             parameters[3].Value = model.F_Sort;
95 106
             parameters[4].Value = model.F_Describe;
96
-            parameters[5].Value = model.F_State;
97
-            parameters[6].Value = model.F_DictionaryValueId;
107
+
108
+            parameters[5].Value = model.F_TimeOut;
109
+
110
+            parameters[6].Value = model.F_State;
111
+            parameters[7].Value = model.F_DictionaryValueId;
98 112
 
99 113
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
100 114
             if (rows > 0)
@@ -158,7 +172,7 @@ namespace RMYY_CallCenter_Api.Dal
158 172
         {
159 173
 
160 174
             StringBuilder strSql = new StringBuilder();
161
-            strSql.Append("select  top 1 F_DictionaryValueId,F_DictionaryFlag,F_ValueCode,F_Name,F_Sort,F_Describe,F_State from T_Sys_DictionaryValue with(nolock)");
175
+            strSql.Append("select  top 1 F_DictionaryValueId,F_DictionaryFlag,F_ValueCode,F_Name,F_Sort,F_Describe,F_State,F_TimeOut from T_Sys_DictionaryValue with(nolock)");
162 176
             strSql.Append(" where F_DictionaryValueId=@F_DictionaryValueId");
163 177
             SqlParameter[] parameters = {
164 178
                     new SqlParameter("@F_DictionaryValueId", SqlDbType.Int,4)
@@ -206,6 +220,12 @@ namespace RMYY_CallCenter_Api.Dal
206 220
                 {
207 221
                     model.F_Sort = int.Parse(row["F_Sort"].ToString());
208 222
                 }
223
+
224
+                if (row["F_TimeOut"] != null && row["F_TimeOut"].ToString() != "")
225
+                {
226
+                    model.F_TimeOut = int.Parse(row["F_TimeOut"].ToString());
227
+                }
228
+
209 229
                 if (row["F_Describe"] != null)
210 230
                 {
211 231
                     model.F_Describe = row["F_Describe"].ToString();
@@ -231,7 +251,7 @@ namespace RMYY_CallCenter_Api.Dal
231 251
         public DataSet GetList(string strWhere)
232 252
         {
233 253
             StringBuilder strSql = new StringBuilder();
234
-            strSql.Append("select F_DictionaryValueId,F_DictionaryFlag,F_ValueCode,F_Name,F_Sort,F_Describe,F_State with(nolock) ");
254
+            strSql.Append("select F_DictionaryValueId,F_DictionaryFlag,F_ValueCode,F_Name,F_Sort,F_Describe,F_State,F_TimeOut with(nolock) ");
235 255
             strSql.Append(" FROM T_Sys_DictionaryValue ");
236 256
             if (strWhere.Trim() != "")
237 257
             {

+ 22 - 10
RMYY_CallCenter_Api.Dal/T_Sys_GongDan.cs

@@ -38,9 +38,9 @@ namespace RMYY_CallCenter_Api.Dal
38 38
         {
39 39
             StringBuilder strSql = new StringBuilder();
40 40
             strSql.Append("insert into T_Sys_GongDan(");
41
-            strSql.Append("F_ParentID,F_Name,F_Remark,F_Sort,F_CreateTime,F_TypeId,F_ImgUrl)");
41
+            strSql.Append("F_ParentID,F_Name,F_Remark,F_Sort,F_CreateTime,F_TypeId,F_ImgUrl,F_TimeOut)");
42 42
             strSql.Append(" values (");
43
-            strSql.Append("@F_ParentID,@F_Name,@F_Remark,@F_Sort,@F_CreateTime,@F_TypeId,@F_ImgUrl)");
43
+            strSql.Append("@F_ParentID,@F_Name,@F_Remark,@F_Sort,@F_CreateTime,@F_TypeId,@F_ImgUrl,@F_TimeOut)");
44 44
             strSql.Append(";select @@IDENTITY");
45 45
             SqlParameter[] parameters = {
46 46
                     new SqlParameter("@F_ParentID", SqlDbType.Int,4),
@@ -49,7 +49,9 @@ namespace RMYY_CallCenter_Api.Dal
49 49
                     new SqlParameter("@F_Sort", SqlDbType.Int,4),
50 50
                     new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
51 51
                     new SqlParameter("@F_TypeId", SqlDbType.Int,4),
52
-                    new SqlParameter("@F_ImgUrl", SqlDbType.VarChar,200)};
52
+                    new SqlParameter("@F_ImgUrl", SqlDbType.VarChar,200),
53
+                     new SqlParameter("@F_TimeOut", SqlDbType.Int,4)
54
+            };
53 55
             parameters[0].Value = model.F_ParentID;
54 56
             parameters[1].Value = model.F_Name;
55 57
             parameters[2].Value = model.F_Remark;
@@ -57,7 +59,7 @@ namespace RMYY_CallCenter_Api.Dal
57 59
             parameters[4].Value = model.F_CreateTime;
58 60
             parameters[5].Value = model.F_TypeId;
59 61
             parameters[6].Value = model.F_ImgUrl;
60
-
62
+            parameters[7].Value = model.F_TimeOut;
61 63
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
62 64
             if (obj == null)
63 65
             {
@@ -81,6 +83,8 @@ namespace RMYY_CallCenter_Api.Dal
81 83
             strSql.Append("F_Sort=@F_Sort,");
82 84
             strSql.Append("F_CreateTime=@F_CreateTime,");
83 85
             strSql.Append("F_TypeId=@F_TypeId,");
86
+            
87
+                  strSql.Append("F_TimeOut=@F_TimeOut,");
84 88
             strSql.Append("F_ImgUrl=@F_ImgUrl");
85 89
             strSql.Append(" where F_GDId=@F_GDId");
86 90
             SqlParameter[] parameters = {
@@ -90,6 +94,8 @@ namespace RMYY_CallCenter_Api.Dal
90 94
                     new SqlParameter("@F_Sort", SqlDbType.Int,4),
91 95
                     new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
92 96
                     new SqlParameter("@F_TypeId", SqlDbType.Int,4),
97
+                      new SqlParameter("@F_TimeOut", SqlDbType.Int,4),
98
+
93 99
                     new SqlParameter("@F_ImgUrl", SqlDbType.VarChar,200),
94 100
                     new SqlParameter("@F_GDId", SqlDbType.Int,4)};
95 101
             parameters[0].Value = model.F_ParentID;
@@ -98,8 +104,9 @@ namespace RMYY_CallCenter_Api.Dal
98 104
             parameters[3].Value = model.F_Sort;
99 105
             parameters[4].Value = model.F_CreateTime;
100 106
             parameters[5].Value = model.F_TypeId;
101
-            parameters[6].Value = model.F_ImgUrl;
102
-            parameters[7].Value = model.F_GDId;
107
+            parameters[6].Value = model.F_TimeOut;
108
+            parameters[7].Value = model.F_ImgUrl;
109
+            parameters[8].Value = model.F_GDId;
103 110
 
104 111
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
105 112
             if (rows > 0)
@@ -163,7 +170,7 @@ namespace RMYY_CallCenter_Api.Dal
163 170
         {
164 171
 
165 172
             StringBuilder strSql = new StringBuilder();
166
-            strSql.Append("select  top 1 F_GDId,F_ParentID,F_Name,F_Remark,F_Sort,F_CreateTime,F_TypeId,F_ImgUrl from T_Sys_GongDan with(nolock)");
173
+            strSql.Append("select  top 1 F_GDId,F_ParentID,F_Name,F_Remark,F_Sort,F_CreateTime,F_TypeId,F_ImgUrl ,F_TimeOut from T_Sys_GongDan with(nolock)");
167 174
             strSql.Append(" where F_GDId=@F_GDId");
168 175
             SqlParameter[] parameters = {
169 176
                     new SqlParameter("@F_GDId", SqlDbType.Int,4)
@@ -190,7 +197,7 @@ namespace RMYY_CallCenter_Api.Dal
190 197
         {
191 198
 
192 199
             StringBuilder strSql = new StringBuilder();
193
-            strSql.Append("select  top 1 F_GDId,F_ParentID,F_Name,F_Remark,F_Sort,F_CreateTime,F_TypeId,F_ImgUrl from T_Sys_GongDan with(nolock)");
200
+            strSql.Append("select  top 1 F_GDId,F_ParentID,F_Name,F_Remark,F_Sort,F_CreateTime,F_TypeId,F_ImgUrl,F_TimeOut from T_Sys_GongDan with(nolock)");
194 201
             strSql.Append(" where F_Name=@F_Name");
195 202
             SqlParameter[] parameters = {
196 203
                     new SqlParameter("@F_Name", SqlDbType.VarChar,100)
@@ -237,6 +244,11 @@ namespace RMYY_CallCenter_Api.Dal
237 244
                 {
238 245
                     model.F_Sort = int.Parse(row["F_Sort"].ToString());
239 246
                 }
247
+                
248
+   if (row["F_TimeOut"] != null && row["F_TimeOut"].ToString() != "")
249
+                {
250
+                    model.F_TimeOut = int.Parse(row["F_TimeOut"].ToString());
251
+                }
240 252
                 if (row["F_CreateTime"] != null && row["F_CreateTime"].ToString() != "")
241 253
                 {
242 254
                     model.F_CreateTime = DateTime.Parse(row["F_CreateTime"].ToString());
@@ -259,7 +271,7 @@ namespace RMYY_CallCenter_Api.Dal
259 271
         public DataSet GetList(string strWhere)
260 272
         {
261 273
             StringBuilder strSql = new StringBuilder();
262
-            strSql.Append("select F_GDId,F_ParentID,F_Name,F_Remark,F_Sort,F_CreateTime,F_TypeId,F_ImgUrl ");
274
+            strSql.Append("select F_GDId,F_ParentID,F_Name,F_Remark,F_Sort,F_CreateTime,F_TypeId,F_ImgUrl,F_TimeOut ");
263 275
             strSql.Append(" FROM T_Sys_GongDan with(nolock)");
264 276
             if (strWhere.Trim() != "")
265 277
             {
@@ -279,7 +291,7 @@ namespace RMYY_CallCenter_Api.Dal
279 291
             {
280 292
                 strSql.Append(" top " + Top.ToString());
281 293
             }
282
-            strSql.Append(" F_GDId,F_ParentID,F_Name,F_Remark,F_Sort,F_CreateTime,F_TypeId,F_ImgUrl ");
294
+            strSql.Append(" F_GDId,F_ParentID,F_Name,F_Remark,F_Sort,F_CreateTime,F_TypeId,F_ImgUrl ,F_TimeOut");
283 295
             strSql.Append(" FROM T_Sys_GongDan with(nolock)");
284 296
             if (strWhere.Trim() != "")
285 297
             {

+ 1 - 1
RMYY_CallCenter_Api.Model/T_FaultRepair_Base.cs

@@ -49,7 +49,7 @@ namespace RMYY_CallCenter_Api.Model
49 49
 		private int? _f_returnnum;
50 50
 		private string _f_internalworkordercode;
51 51
 		private string _f_externalworkordercode;
52
-		private int? _f_isdelete;
52
+		private int? _f_isdelete=0;
53 53
 		/// <summary>
54 54
 		/// 
55 55
 		/// </summary>

+ 2 - 2
RMYY_CallCenter_Api.Model/T_FaultRepair_Evaluate.cs

@@ -31,9 +31,9 @@ namespace RMYY_CallCenter_Api.Model
31 31
 		private int? _f_attitude;
32 32
 		private int? _f_quality;
33 33
 		private string _f_evaluatecontent;
34
-		private DateTime? _f_evaluationtime;
34
+		private DateTime? _f_evaluationtime=DateTime.Now;
35 35
 		private string _f_evaluator;
36
-		private int? _f_isdelete;
36
+		private int? _f_isdelete=0;
37 37
 		private DateTime? _f_updatetime;
38 38
 		/// <summary>
39 39
 		/// 

+ 2 - 2
RMYY_CallCenter_Api.Model/T_FaultRepair_OperationLog.cs

@@ -31,9 +31,9 @@ namespace RMYY_CallCenter_Api.Model
31 31
 		private string _f_operator;
32 32
 		private string _f_logcontent;
33 33
 		private int? _f_operationtype;
34
-		private DateTime? _f_operationtime;
34
+		private DateTime? _f_operationtime= DateTime.Now;
35 35
 		private DateTime? _f_updatetime;
36
-		private int? _f_isdelete;
36
+		private int? _f_isdelete=0;
37 37
 		/// <summary>
38 38
 		/// 
39 39
 		/// </summary>

+ 2 - 2
RMYY_CallCenter_Api.Model/T_FaultRepair_Process.cs

@@ -30,11 +30,11 @@ namespace RMYY_CallCenter_Api.Model
30 30
 		private string _f_workordercode;
31 31
 		private string _f_maintenancer;
32 32
 		private string _f_maintenancedept;
33
-		private DateTime? _f_processingtime;
33
+		private DateTime? _f_processingtime=DateTime.Now;
34 34
 		private string _f_result;
35 35
 		private string _f_file;
36 36
 		private string _f_returnreason;
37
-		private int? _f_isdelete;
37
+		private int? _f_isdelete=0;
38 38
 		private DateTime? _f_updatetime;
39 39
 		/// <summary>
40 40
 		/// 

+ 9 - 1
RMYY_CallCenter_Api.Model/T_Sys_DictionaryValue.cs

@@ -17,6 +17,14 @@ namespace RMYY_CallCenter_Api.Model
17 17
         private int? _f_sort;
18 18
         private string _f_describe;
19 19
         private bool _f_state;
20
+
21
+        private int _f_timeout;
22
+        public int  F_TimeOut
23
+        {
24
+            set { _f_timeout = value; }
25
+            get { return _f_timeout; }
26
+        }
27
+
20 28
         /// <summary>
21 29
         /// 
22 30
         /// </summary>
@@ -34,7 +42,7 @@ namespace RMYY_CallCenter_Api.Model
34 42
             get { return _f_dictionaryflag; }
35 43
         }
36 44
         /// <summary>
37
-        /// 
45
+        /// 超时时限设置
38 46
         /// </summary>
39 47
         public string F_ValueCode
40 48
         {

+ 7 - 0
RMYY_CallCenter_Api.Model/T_Sys_GongDan.cs

@@ -15,9 +15,16 @@ namespace RMYY_CallCenter_Api.Model
15 15
         private string _f_name;
16 16
         private string _f_remark;
17 17
         private int _f_sort = 0;
18
+        private int _f_timeout = 0;
18 19
         private DateTime? _f_createtime;
19 20
         private int? _f_typeid;
20 21
         private string _f_imgurl;
22
+
23
+        public int  F_TimeOut
24
+        {
25
+            set { _f_timeout = value; }
26
+            get { return _f_timeout; }
27
+        }
21 28
         /// <summary>
22 29
         /// 
23 30
         /// </summary>

+ 3 - 2
RMYY_CallCenter_Api/Controllers/DictionaryType/DictionaryController.cs

@@ -223,9 +223,9 @@ namespace RMYY_CallCenter_Api.Controllers
223 223
                 orderModel.F_ValueCode = "";
224 224
                 orderModel.F_DictionaryFlag = input.DicFlag;
225 225
                 orderModel.F_Sort = input.Sort;
226
+              orderModel.F_TimeOut = input.TimeOut;
226 227
 
227
-
228
-                if (dictionaryValueBLL.Add(orderModel) > 0)
228
+            if (dictionaryValueBLL.Add(orderModel) > 0)
229 229
                 return Success("字典值添加成功");
230 230
                 else
231 231
                 return Error("字典值添加失败");
@@ -244,6 +244,7 @@ namespace RMYY_CallCenter_Api.Controllers
244 244
                 orderModel.F_ValueCode = "";
245 245
                 orderModel.F_DictionaryFlag = input.DicFlag;
246 246
                 orderModel.F_Sort = input.Sort;
247
+               orderModel.F_TimeOut = input.TimeOut;
247 248
                 if (dictionaryValueBLL.Update(orderModel))
248 249
                 return Success("字典值编辑成功");
249 250
                 else

+ 3 - 0
RMYY_CallCenter_Api/Controllers/DictionaryType/GongDanTypeController.cs

@@ -69,12 +69,14 @@ namespace RMYY_CallCenter_Api.Controllers
69 69
         public ActionResult AddGongDan(T_Sys_GongDan input)
70 70
         {
71 71
             T_Sys_GongDan model = new T_Sys_GongDan();
72
+            model.F_TimeOut = input.F_TimeOut;
72 73
             model.F_Name = input.F_Name;
73 74
             model.F_Remark = input.F_Remark;
74 75
             model.F_Sort = input.F_Sort;
75 76
             model.F_ParentID = input.F_ParentID;
76 77
             model.F_CreateTime = DateTime.Now;
77 78
             model.F_TypeId = input.F_TypeId;
79
+
78 80
             if (gongdanBll.Add(model) > 0)
79 81
             {
80 82
                 return Success("类型添加成功!");
@@ -166,6 +168,7 @@ namespace RMYY_CallCenter_Api.Controllers
166 168
                 ModuleInfo.F_Remark = input.F_Remark;
167 169
                 ModuleInfo.F_Sort = input.F_Sort;
168 170
                 ModuleInfo.F_TypeId = input.F_TypeId;
171
+                ModuleInfo.F_TimeOut = input.F_TimeOut;
169 172
                 if (gongdanBll.Update(ModuleInfo))
170 173
                 {
171 174
                     return Success("修改成功");

+ 321 - 0
RMYY_CallCenter_Api/Controllers/FaultRepairController.cs

@@ -0,0 +1,321 @@
1
+using RMYY_CallCenter_Api.Models.Enum;
2
+using RMYY_CallCenter_Api.Models.Input;
3
+using RMYY_CallCenter_Api.Utility;
4
+using System;
5
+using System.Collections.Generic;
6
+using System.IO;
7
+using System.Linq;
8
+using System.Web;
9
+using System.Web.Mvc;
10
+
11
+namespace RMYY_CallCenter_Api.Controllers
12
+{
13
+    public class FaultRepairController : BaseController
14
+    {
15
+        private BLL .T_FaultRepair_Base baseBll = new BLL.T_FaultRepair_Base();
16
+        private BLL.T_FaultRepair_Evaluate evaBll = new BLL.T_FaultRepair_Evaluate();
17
+        private BLL.T_FaultRepair_OperationLog logBll = new BLL.T_FaultRepair_OperationLog();
18
+        private BLL.T_FaultRepair_Process dealBll = new BLL.T_FaultRepair_Process();
19
+        Bll.T_Sys_GongDan gdbll = new Bll.T_Sys_GongDan();
20
+
21
+        private  Bll.T_Sys_DictionaryValue dictionaryValueBLL = new  Bll.T_Sys_DictionaryValue();
22
+
23
+       
24
+        /// <summary>
25
+        /// 上传附件
26
+        /// </summary>
27
+        /// <returns></returns>
28
+        //[Authority]
29
+        public ActionResult UploadFile()
30
+        {
31
+            #region 多个上传
32
+            HttpFileCollectionBase files = Request.Files;
33
+            if (files.Count > 0)
34
+            {
35
+                List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
36
+                string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
37
+                for (int i = 0; i < files.Count; i++)
38
+                {
39
+                    HttpPostedFileBase file = files[i];
40
+                    string name = FileHelper.Upload(file, path);
41
+
42
+                    Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
43
+                    model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
44
+                    model_T_Sys_Accessories.F_FileName = name;//附件名称
45
+                    model_T_Sys_Accessories.F_FileType = Path.GetExtension(file.FileName);//附件类型
46
+                    model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
47
+                    model_T_Sys_Accessories.F_Size = file.ContentLength;
48
+                    model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人  
49
+                    int id = new Bll.T_Sys_Accessories().Add(model_T_Sys_Accessories);
50
+                    model_T_Sys_Accessories.F_FileId = id;
51
+                    acs.Add(model_T_Sys_Accessories);
52
+                }
53
+                return Success("成功", acs);
54
+            }
55
+            else
56
+            {
57
+                return Error("请选择要上传的文件");
58
+            }
59
+            #endregion
60
+
61
+        }
62
+
63
+
64
+        //添加工单
65
+        /// <summary>
66
+        ///添加
67
+        /// </summary>
68
+        /// <param name="input"></param>
69
+        /// <returns></returns>
70
+        public ActionResult AddFaultRepairWorkOrder(T_FaultRepairBaseinput input)
71
+        {
72
+            Model.T_FaultRepair_Base model = new Model.T_FaultRepair_Base();
73
+            model.F_Applicant = input.Applicant;
74
+            model.F_ApplicationDept = input.ApplicationDept;
75
+            model.F_Phone = input.Phone;
76
+            model.F_Applicantsphone = input.Applicantsphone;
77
+            model.F_WorkOrderCategory = input.WorkOrderCategory;
78
+            model.F_Content = input.Content;
79
+            model.F_PlaceOfRepair = input.PlaceOfRepair;
80
+            model.F_File = input.File;
81
+            model.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
82
+
83
+            if (!string.IsNullOrEmpty(input.Maintenancer) && !string.IsNullOrEmpty(input.MaintenanceDept))
84
+            {
85
+                model.F_AssignTime = DateTime.Now;
86
+               
87
+                List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_ParentID=0 and F_Name='故障报修'");
88
+                int timeout = listgd.First().F_TimeOut;
89
+                model.F_Deadline = DateTime.Now.AddHours(timeout);
90
+                model.F_MaintenanceDept = input.MaintenanceDept;
91
+                model.F_Maintenancer = input.Maintenancer;
92
+                model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.receive;
93
+            }
94
+            else
95
+            {
96
+                model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
97
+            }
98
+
99
+            model.F_CreateTime = DateTime.Now;
100
+            model.F_CreateUser = User.F_UserCode;
101
+            model.F_CreateUserDept = User.F_DeptId.ToString();
102
+
103
+            if (baseBll.Add(model) > 0)
104
+            {
105
+                AddAddlog(model.F_WorkOrderCode);
106
+               
107
+                if (!string.IsNullOrEmpty(input.Maintenancer) && !string.IsNullOrEmpty(input.MaintenanceDept))
108
+                {
109
+                    AddAssignlog(model.F_WorkOrderCode, input.Maintenancer);
110
+                   
111
+                }
112
+                return Success("添加成功!");
113
+            }
114
+            else return Error("添加失败!");
115
+
116
+        }
117
+
118
+
119
+        //查收
120
+        public ActionResult CheckWorkOrder(string WorkOrderCode)
121
+        {
122
+            Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
123
+            if (model != null)
124
+            {
125
+                if (model.F_Maintenancer == User.F_UserCode)
126
+                {
127
+                    model.F_UpdateTime = DateTime.Now;
128
+                    model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.dealing;
129
+                    AddOperatorLog("查收了工单", (int)EnumOperatorType.check, model.F_WorkOrderCode);
130
+
131
+                    return Success(" 查收成功!");
132
+                }
133
+                else
134
+                {
135
+                    return Error("你没有权限查收!");
136
+                }
137
+            }
138
+            return Error("工单不存在!");
139
+        }
140
+
141
+        //退单
142
+        public ActionResult  BackWorkOrder(string WorkOrderCode)
143
+        {
144
+            Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
145
+            if (model != null)
146
+            {
147
+                if (model.F_Maintenancer == User.F_UserCode)
148
+                {
149
+                    model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
150
+                    model.F_Maintenancer = "";
151
+                    model.F_MaintenanceDept = "";
152
+                    model.F_AssignTime = null;
153
+                    model.F_UpdateTime = DateTime.Now;
154
+                    model.F_Deadline = null;
155
+                    AddOperatorLog("退回了工单", (int)EnumOperatorType.back, model.F_WorkOrderCode);
156
+
157
+                    return Success(" 退回成功!");
158
+                }
159
+                else
160
+                {
161
+                    return Error("你没有权限退回!");
162
+                }
163
+            }
164
+            return Error("工单不存在!");
165
+        }
166
+
167
+
168
+
169
+        //处理完成 //异常完结
170
+
171
+
172
+        //协助.内外协助都生成新工单
173
+        //Type 0是内部协助 1是外部协助
174
+        public ActionResult AssistWorkOrder(string WorkOrderCode,string WorkOrderCategory, string Maintenancer,string Content,int Type)
175
+        {
176
+            Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
177
+            Model.T_FaultRepair_Base newmodel = new Model.T_FaultRepair_Base();
178
+            if (Type == 0)
179
+            {
180
+                if (!string.IsNullOrEmpty(Maintenancer))
181
+                {
182
+                    return Error("请选择维修人");
183
+                }
184
+
185
+
186
+                newmodel.F_Applicant = model.F_Applicant;
187
+                newmodel.F_Applicantsphone = model.F_Applicantsphone;
188
+                newmodel.F_ApplicationDept = model.F_ApplicationDept;
189
+                newmodel.F_Phone = model.F_Phone;
190
+                newmodel.F_WorkOrderCategory = WorkOrderCategory;
191
+                newmodel.F_Content = Content;
192
+                newmodel.F_PlaceOfRepair = model.F_PlaceOfRepair;
193
+
194
+                newmodel.F_Maintenancer = Maintenancer;
195
+                newmodel.F_MaintenanceDept = model.F_MaintenanceDept;
196
+                newmodel.F_AssignTime = DateTime.Now;
197
+                newmodel.F_File = model.F_File;
198
+
199
+                List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_ParentID=0 and F_Name='故障报修'");
200
+                int timeout = listgd.First().F_TimeOut;
201
+                newmodel.F_Deadline = DateTime.Now.AddHours(timeout);
202
+
203
+                newmodel.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.receive;
204
+                newmodel.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
205
+
206
+                newmodel.F_CreateTime = DateTime.Now;
207
+                newmodel.F_CreateUser = User.F_UserCode;
208
+                newmodel.F_CreateUserDept = User.F_DeptId.ToString();
209
+                if (baseBll.Add(newmodel) > 0)
210
+                {
211
+                    AddAddlog(newmodel.F_WorkOrderCode);
212
+                  
213
+                    if (!string.IsNullOrEmpty(Maintenancer))
214
+                    {
215
+                        AddAssignlog(newmodel.F_WorkOrderCode, Maintenancer);                      
216
+                    }
217
+                    //更新model
218
+
219
+                    model.F_InternalWorkOrderCode = newmodel.F_WorkOrderCode;
220
+                    model.F_UpdateTime = DateTime.Now;
221
+                    baseBll.Update(model);
222
+                   
223
+                    AddInternalasslog(model.F_WorkOrderCode, newmodel.F_WorkOrderCode);
224
+
225
+                    return Success("添加成功!");
226
+                }
227
+                else return Error("添加失败!");
228
+
229
+
230
+
231
+
232
+            }
233
+            //外协作
234
+            else
235
+            {
236
+                newmodel.F_Applicant = model.F_Applicant;
237
+                newmodel.F_Applicantsphone = model.F_Applicantsphone;
238
+                newmodel.F_ApplicationDept = model.F_ApplicationDept;
239
+                newmodel.F_Phone = model.F_Phone;
240
+
241
+                newmodel.F_WorkOrderCategory = WorkOrderCategory;
242
+                newmodel.F_Content = Content;
243
+                newmodel.F_PlaceOfRepair = model.F_PlaceOfRepair;
244
+
245
+                newmodel.F_Maintenancer = Maintenancer;
246
+                newmodel.F_MaintenanceDept = model.F_MaintenanceDept;
247
+       
248
+                newmodel.F_File = model.F_File;           
249
+
250
+                newmodel.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
251
+                newmodel.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
252
+
253
+                newmodel.F_CreateTime = DateTime.Now;
254
+                newmodel.F_CreateUser = User.F_UserCode;
255
+                newmodel.F_CreateUserDept = User.F_DeptId.ToString();
256
+                if (baseBll.Add(newmodel) > 0)
257
+                {
258
+                    AddOperatorLog("创建了工单", (int)EnumOperatorType.add, newmodel.F_WorkOrderCode);
259
+                  
260
+                    //更新原来的工单model
261
+
262
+                    model.F_ExternalWorkOrderCode = newmodel.F_WorkOrderCode;
263
+                    model.F_UpdateTime = DateTime.Now;
264
+                    baseBll.Update(model);
265
+
266
+                    AddExternalasslog(model.F_WorkOrderCode, newmodel.F_WorkOrderCode);
267
+
268
+                    return Success("添加成功!");
269
+                }
270
+                else return Error("添加失败!");
271
+
272
+            }
273
+           
274
+            
275
+        }
276
+
277
+
278
+        //维修员的列表 待接单 待完成 已完成 
279
+        //报修人的列表  已上报 已完结
280
+        //工单详情
281
+        //评价
282
+        // 返修
283
+
284
+        // 添加操作记录
285
+        public bool AddOperatorLog(string content,int type,string workordercode)
286
+        {
287
+            Model.T_FaultRepair_OperationLog model = new Model.T_FaultRepair_OperationLog();
288
+            model.F_LogContent = content;
289
+            model.F_OperationTime = DateTime.Now;
290
+            model.F_OperationType = type;
291
+            model.F_Operator = User.F_UserCode;
292
+            model.F_WorkOrderCode = workordercode;
293
+            logBll.Add(model);
294
+            return true;
295
+        }
296
+
297
+        public void AddAddlog(string workordercode)
298
+        {
299
+            AddOperatorLog("创建了工单", (int)EnumOperatorType.add, workordercode);
300
+        }
301
+
302
+        public void AddAssignlog(string workordercode,string maintenancer)
303
+        {
304
+            AddOperatorLog("指派工单给" + maintenancer, (int)EnumOperatorType.assign, workordercode);
305
+           
306
+        }
307
+        public void AddInternalasslog(string workordercode,  string newworkordercode)
308
+        {
309
+           
310
+            AddOperatorLog("创建内协作工单" + newworkordercode, (int)EnumOperatorType.internalassistance, workordercode);
311
+        }
312
+        public void AddExternalasslog(string workordercode, string newworkordercode)
313
+        {
314
+            AddOperatorLog("创建外协作工单" + newworkordercode, (int)EnumOperatorType.externalassistance, workordercode);
315
+            
316
+        }
317
+
318
+      
319
+
320
+    }
321
+}

+ 32 - 0
RMYY_CallCenter_Api/Models/Enum/EnumFaultRepairWorkOrderState.cs

@@ -0,0 +1,32 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.ComponentModel;
4
+using System.Linq;
5
+using System.Web;
6
+
7
+namespace RMYY_CallCenter_Api.Models.Enum
8
+{
9
+    public enum  EnumFaultRepairWorkOrderState
10
+    {
11
+        [Description("待派工")]
12
+        neworder,
13
+
14
+        [Description("待查收")]
15
+        receive,
16
+
17
+        [Description("待完成")]
18
+        dealing,
19
+
20
+        [Description("已处理")]
21
+        dealed,
22
+
23
+        [Description("异常完结")]
24
+
25
+        exceptionended,
26
+
27
+        [Description("已完结")]
28
+        finish,
29
+       
30
+
31
+    }
32
+}

+ 30 - 0
RMYY_CallCenter_Api/Models/Enum/EnumOperatorType.cs

@@ -0,0 +1,30 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.ComponentModel;
4
+using System.Linq;
5
+using System.Web;
6
+
7
+namespace RMYY_CallCenter_Api.Models.Enum
8
+{
9
+    public enum EnumOperatorType
10
+    {
11
+        [Description("创建工单")]
12
+        add,
13
+        [Description("更新工单")]
14
+        update,
15
+
16
+        [Description("派单")]
17
+        assign,
18
+        [Description("删除")]
19
+        delete,
20
+        [Description("查收")]
21
+        check,
22
+        [Description("内协作")]
23
+        internalassistance,
24
+        [Description("外协作")]
25
+        externalassistance,
26
+         [Description("退回")]
27
+        back
28
+
29
+    }
30
+}

+ 1 - 0
RMYY_CallCenter_Api/Models/Input/DictionaryInput.cs

@@ -17,6 +17,7 @@ namespace RMYY_CallCenter_Api.Models
17 17
     public class DictionaryValueInput
18 18
     {
19 19
         public int DicVid { get; set; }
20
+        public int TimeOut { get; set; }
20 21
         public string DicFlag { get; set; }
21 22
         public string DicvName { get; set; }
22 23
         public int Sort { get; set; } = 0;

+ 52 - 0
RMYY_CallCenter_Api/Models/Input/T_FaultRepairBaseinput.cs

@@ -0,0 +1,52 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
4
+using System.Web;
5
+
6
+namespace RMYY_CallCenter_Api.Models.Input
7
+{
8
+    public class T_FaultRepairBaseinput
9
+    {
10
+        /// <summary>
11
+        /// 申请人
12
+        /// </summary>
13
+        public string  Applicant { get; set; }
14
+        /// <summary>
15
+        /// 申请部门
16
+        /// </summary>
17
+        public string   ApplicationDept { get; set; }
18
+        /// <summary>
19
+        /// 申请电话
20
+        /// </summary>
21
+        public string  Applicantsphone { get; set; }
22
+        /// <summary>
23
+        /// 联系电话
24
+        /// </summary>
25
+        public string  Phone { get; set; }
26
+        /// <summary>
27
+        /// 工单类别
28
+        /// </summary>
29
+        public string  WorkOrderCategory { get; set; }
30
+        /// <summary>
31
+        /// 工单内容
32
+        /// </summary>
33
+        public string  Content { get; set; }
34
+        /// <summary>
35
+        /// 报修地点
36
+        /// </summary>
37
+        public string  PlaceOfRepair { get; set; }
38
+        /// <summary>
39
+        /// 文件
40
+        /// </summary>
41
+        public string  File { get; set; }
42
+        /// <summary>
43
+        /// 维修部门
44
+        /// </summary>
45
+        public string  MaintenanceDept { get; set; }
46
+        /// <summary>
47
+        /// 维修人
48
+        /// </summary>
49
+        public string  Maintenancer { get; set; }
50
+
51
+    }
52
+}

+ 7 - 3
RMYY_CallCenter_Api/RMYY_CallCenter_Api.csproj

@@ -131,6 +131,7 @@
131 131
     <Compile Include="Controllers\CallTel\CallrecordsController.cs" />
132 132
     <Compile Include="Controllers\CarManage\T_Car_MessageController.cs" />
133 133
     <Compile Include="Controllers\CarManage\T_Car_WorkOrderController.cs" />
134
+    <Compile Include="Controllers\FaultRepairController.cs" />
134 135
     <Compile Include="Controllers\information\NoticeController.cs" />
135 136
     <Compile Include="Controllers\Quality\DaysTalkTimeController.cs" />
136 137
     <Compile Include="Controllers\Quality\IndexBaseController.cs" />
@@ -165,8 +166,8 @@
165 166
     <Compile Include="Controllers\WorkOrder\T_Hos_WorkOrderController.cs" />
166 167
     <Compile Include="Controllers\WorkOrder\T_Mat_WorkOrderController.cs" />
167 168
     <Compile Include="Controllers\WorkOrder\WorkOrderReportController.cs" />
168
-    <Compile Include="Filter\AuthorizeFilter.cs" />
169
-    <Compile Include="Filter\ExceptionFilter.cs" />
169
+    <Compile Include="img\Filter\AuthorizeFilter.cs" />
170
+    <Compile Include="img\Filter\ExceptionFilter.cs" />
170 171
     <Compile Include="Global.asax.cs">
171 172
       <DependentUpon>Global.asax</DependentUpon>
172 173
     </Compile>
@@ -178,6 +179,8 @@
178 179
     <Compile Include="Models\Enum\EnumDisWorkOrderState.cs" />
179 180
     <Compile Include="Models\Enum\EnumHosWorkOrderState.cs" />
180 181
     <Compile Include="Models\Enum\EnumMatWorkOrderState.cs" />
182
+    <Compile Include="Models\Enum\EnumFaultRepairWorkOrderState.cs" />
183
+    <Compile Include="Models\Enum\EnumOperatorType.cs" />
181 184
     <Compile Include="Models\Enum\EnumWorkOrderState.cs" />
182 185
     <Compile Include="Models\Filter\FilterCategory.cs" />
183 186
     <Compile Include="Models\Filter\FilterDictionary.cs" />
@@ -191,6 +194,7 @@
191 194
     <Compile Include="Models\Input\ChatInput.cs" />
192 195
     <Compile Include="Models\Input\Con_WorkOrderInput.cs" />
193 196
     <Compile Include="Models\Input\DictionaryInput.cs" />
197
+    <Compile Include="Models\Input\T_FaultRepairBaseinput.cs" />
194 198
     <Compile Include="Models\Input\T_WowoRepair_Baseinput.cs" />
195 199
     <Compile Include="Properties\AssemblyInfo.cs" />
196 200
   </ItemGroup>
@@ -208,8 +212,8 @@
208 212
   </ItemGroup>
209 213
   <ItemGroup>
210 214
     <Folder Include="App_Data\" />
211
-    <Folder Include="img\" />
212 215
     <Folder Include="Views\AddressBook\" />
216
+    <Folder Include="Views\FaultRepair\" />
213 217
     <Folder Include="Views\Knowledge\" />
214 218
     <Folder Include="Views\SysWorkOFFDays\" />
215 219
     <Folder Include="Views\T_Acc_WorkOrder\" />

+ 94 - 0
RMYY_CallCenter_Api/img/Filter/AuthorizeFilter.cs

@@ -0,0 +1,94 @@
1
+using RMYY_CallCenter_Api.Models;
2
+using RMYY_CallCenter_Api.Utility;
3
+using System;
4
+using System.Collections.Generic;
5
+using System.Linq;
6
+using System.Web;
7
+using System.Web.Mvc;
8
+using System.Web.Security;
9
+
10
+namespace RMYY_CallCenter_Api.Filter
11
+{
12
+    public class AuthorizeFilter : AuthorizeAttribute
13
+    {
14
+        /// <summary>
15
+        /// 权限验证
16
+        /// </summary>
17
+        /// <param name="filterContext"></param>
18
+        public override void OnAuthorization(AuthorizationContext filterContext)
19
+        {
20
+            var ad = filterContext.ActionDescriptor;
21
+            if (ad.IsDefined(typeof(AllowAnonymousAttribute), true)
22
+                || ad.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true))
23
+            {
24
+                return;
25
+            }
26
+
27
+            var context = filterContext.RequestContext.HttpContext;
28
+            var header = context.Request.Headers;
29
+            string token = ""; //context.Request["token"];
30
+            if (header.AllKeys.Contains("Authorization"))
31
+            {
32
+                token = header["Authorization"].ToString().Substring(7);//Bearer token
33
+                //LogHelper.Info(header["Authorization"].ToString());
34
+            }
35
+            if (!string.IsNullOrEmpty(token))
36
+            {
37
+                try
38
+                {
39
+                    bool isAuth = false;
40
+                    //获取FormsAuthenticationTicket对象
41
+                    FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(token);
42
+                    if (ticket != null && !ticket.Expired && !string.IsNullOrEmpty(ticket.UserData))
43
+                    {
44
+                        Dictionary<string, string> userData = ticket.UserData.ToObject<Dictionary<string, string>>();
45
+                        if (userData != null)
46
+                        {
47
+                            var user = new Bll.T_Sys_UserAccount().GetModel(userData["F_UserCode"]);
48
+                            if (user != null && user.F_RoleId.ToString() == userData["F_RoleId"])
49
+                            {
50
+                                string action = ad.ControllerDescriptor.ControllerName + "/" + ad.ActionName;
51
+                                bool actionauth = Common.GetAuthActions().Contains(action.ToLower());
52
+                                if ((actionauth && Common.GetRoleActions(user.F_RoleId).Contains(action.ToLower()))|| !actionauth || user.F_UserCode=="8000")
53
+                                {
54
+                                    isAuth = true;
55
+                                    context.User = new FormsPrincipal<Model.T_Sys_UserAccount>(ticket, user);//重新给context.User赋值。
56
+                                }
57
+                                else
58
+                                {
59
+                                    context.Response.StatusCode = 200;
60
+                                    filterContext.Result = new ContentResult { Content = new AjaxResult { state = ResultTypes.error.ToString(), message = "无权限" }.ToJson() };
61
+                                    return;
62
+                                }
63
+                            }
64
+                        }
65
+                    }
66
+                    if (!isAuth)
67
+                    {
68
+                        context.Response.StatusCode = 200;
69
+                        filterContext.Result = new ContentResult { Content = new AjaxResult { state = ResultTypes.notoken.ToString(), message = "token无效或过期,请重新登录。" }.ToJson() };
70
+                        return;
71
+                    }
72
+                }
73
+                catch (Exception ex)
74
+                {
75
+                    LogHelper.Error("身份验证失败", ex);
76
+                    context.Response.StatusCode = 200;
77
+                    filterContext.Result = new ContentResult { Content = new AjaxResult { state = ResultTypes.notoken.ToString(), message = "token无效或过期,请重新登录。" }.ToJson() };
78
+                    return;
79
+                }
80
+            }
81
+            else
82
+            {
83
+                context.Response.StatusCode = 200;
84
+                filterContext.Result = new ContentResult { Content = new AjaxResult { state = ResultTypes.notoken.ToString(), message = "未传入token,请重新登录。" }.ToJson() };
85
+                return;
86
+            }
87
+
88
+            if (filterContext != null)
89
+            {
90
+                base.OnAuthorization(filterContext);
91
+            }
92
+        }
93
+    }
94
+}

+ 51 - 0
RMYY_CallCenter_Api/img/Filter/ExceptionFilter.cs

@@ -0,0 +1,51 @@
1
+using RMYY_CallCenter_Api.Utility;
2
+using System;
3
+using System.Collections.Generic;
4
+using System.IO;
5
+using System.Linq;
6
+using System.Text;
7
+using System.Web;
8
+using System.Web.Mvc;
9
+
10
+namespace RMYY_CallCenter_Api.Filter
11
+{
12
+    public class ExceptionFilter : HandleErrorAttribute
13
+    {
14
+        public override void OnException(ExceptionContext context)
15
+        {
16
+            base.OnException(context);
17
+
18
+            var cnt = context.RequestContext.HttpContext;
19
+            var rt = cnt.Request;
20
+
21
+            string param = string.Empty;
22
+            if (rt.QueryString != null && rt.QueryString.Count > 0)
23
+            {
24
+                param = rt.QueryString.ToJson();
25
+            }
26
+
27
+            if (rt.ContentLength > 0)
28
+            {
29
+                using (var ms = new MemoryStream())
30
+                {
31
+                    rt.InputStream.CopyTo(ms);
32
+                    param = Encoding.UTF8.GetString(ms.ToArray());
33
+                    //上传文件时截取
34
+                    if (param.IndexOf("\r\n\r\n") > 0)
35
+                    {
36
+                        param = param.Substring(0, param.IndexOf("\r\n\r\n"));
37
+                    }
38
+                }
39
+
40
+                rt.InputStream.Position = 0;
41
+            }
42
+
43
+            string usercode = cnt.User?.Identity.Name ?? "";
44
+            LogHelper.Error("系统异常,操作账号:" + usercode + ",请求地址:" + rt.Url.ToString() + ",参数:" + param + ",请求头:" + HttpUtility.UrlDecode(rt.Headers.ToString()), context.Exception);
45
+
46
+            context.ExceptionHandled = true;
47
+            context.HttpContext.Response.StatusCode = 200;
48
+            context.Result = new ContentResult { Content = new AjaxResult { state = ResultTypes.error.ToString(), message = "系统异常,请稍后重试" }.ToJson() };
49
+        }
50
+    }
51
+}