1550076451 3 年 前
コミット
2cc0e728d8

+ 2 - 1
RMYY_CallCenter_Api.QuartzWorker/PushWorkorder.cs

@@ -31,7 +31,8 @@ namespace RMYY_CallCenter_Api.QuartzWorker
31 31
             string Dataur4 = web.DownloadString(api + "InternalMessages/DingTalkGetMessage");
32 32
             string Dataur5 = web.DownloadString(api + "FaultRepair/AutoSendOverTimeMsg");
33 33
             string  Dataur6 = web.DownloadString(api + "FaultRepair/AutoChangeDealMan");
34
-            
34
+            ///获取短信
35
+            string Dataur7 = web.DownloadString(api + "SMS/GetSMSReceive");
35 36
 
36 37
 
37 38
         }

+ 1 - 1
RMYY_CallCenter_Api/Configs/system.config

@@ -56,7 +56,7 @@
56 56
  <add key="APPKEY" value="LQvkjjVAwS9xj6Gs19cssA" />
57 57
  <add key="MASTERSECRET" value="lURrawbPDa6CkDYFhNGSJ4" />
58 58
   <!--短信URL-->
59
- <add key="Smsurl" value="http://172.16.0.141:8080/emp/sms/v2/std/single_send" />
59
+ <add key="Smsurl" value="http://172.16.0.141:8080" />
60 60
  <!--短信账号-->
61 61
  <add key="Smsuserid" value="BZZXXT" />
62 62
  <!--短信密码-->

+ 201 - 22
RMYY_CallCenter_Api/Controllers/SMSController.cs

@@ -20,13 +20,22 @@ namespace RMYY_CallCenter_Api.Controllers
20 20
         private static string Smsuserid = ConfigHelper.GetValue("Smsuserid");
21 21
         static string Smspwd = ConfigHelper.GetValue("Smspwd");
22 22
         [AllowAnonymous]
23
-        public ActionResult SendSms()
23
+        public ActionResult SendSms(string content,string mobile)
24 24
         {
25 25
             
26
-            var obj = AddSmS(0, "12346", "17839539537", "");
26
+            var obj = AddSmS(0, content, mobile, "");
27 27
             return Success("", obj);
28 28
         }
29
+        [AllowAnonymous]
30
+        public ActionResult SnedUrl()
31
+        {
32
+           
33
+           var  byStr = HttpUtility.UrlDecode("%e6%b5%8b%e8%af%95%e5%9b%9e%e5%a4%8d8"); 
34
+
29 35
 
36
+            return Success("", byStr);
37
+        }
38
+       
30 39
         /// <summary>
31 40
         /// MD5加密
32 41
         /// </summary>
@@ -61,7 +70,7 @@ namespace RMYY_CallCenter_Api.Controllers
61 70
                 values.Add("content", Content);
62 71
                 values.Add("timestamp", currentTime);
63 72
                 
64
-                string responseString = HttpMethods .HttpPost (Smsurl, values.ToJson (), "application/json;charset=UTF-8");
73
+                string responseString = HttpMethods .HttpPost (Smsurl+ "/sms/v2/std/single_send", values.ToJson (), "application/json;charset=UTF-8");
65 74
                 JObject jo = (JObject)JsonConvert.DeserializeObject(responseString);
66 75
                 if (jo["result"].ToString() == "0")
67 76
                 {
@@ -100,34 +109,204 @@ namespace RMYY_CallCenter_Api.Controllers
100 109
 
101 110
         }
102 111
 
103
-        public ActionResult GetReceive(string mobile, string smsContent, string sendTime, string addSerial)
112
+        public class mos
113
+        {/// <summary>
114
+         /// 平台流水号
115
+         /// </summary>
116
+            public long msgid { set; get; }
117
+            /// <summary>
118
+            /// 手机号
119
+            /// </summary>
120
+            public string mobile { set; get; }
121
+            /// <summary>
122
+            /// 完整的通道号
123
+            /// </summary>
124
+            public string spno { set; get; }
125
+            /// <summary>
126
+            /// 下行时填写的exno
127
+            /// </summary>
128
+            public string exno { set; get; }
129
+            /// <summary>
130
+            /// 上行返回的时间:  YYYY-MM-DD HH:MM:SS
131
+            /// </summary>
132
+            public string rtime { set; get; }
133
+            /// <summary>
134
+            /// 短信内容:最大支持1000个字(含签名),一个字母或一个汉字都视为一个字。   编码方法:urlencode(UTF-8明文)
135
+            /// </summary>
136
+            public string content { set; get; }
137
+        }
138
+        [AllowAnonymous]
139
+        public ActionResult GetSMSReceive1()
140
+        {
141
+                var ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
142
+                var currentTime = Convert.ToInt64(ts.TotalSeconds).ToString();
143
+                Dictionary<string, string> values = new Dictionary<string, string>();
144
+                values.Add("userid", Smsuserid);
145
+                values.Add("pwd", Md5(Smsuserid + "00000000" + Smspwd + currentTime));
146
+                values.Add("timestamp", currentTime);
147
+               
148
+            string responseString = HttpMethods.HttpPost(Smsurl + "/sms/v2/std/get_mo", values.ToJson(), "application/json;charset=UTF-8");
149
+               JObject jo = (JObject)JsonConvert.DeserializeObject(responseString);
150
+                return Success("", responseString);
151
+
152
+         }
153
+        [AllowAnonymous]
154
+        public ActionResult GetSMSReceive()
104 155
         {
105 156
 
106
-            Model.T_SMS_RecvSMS dModel = new Model.T_SMS_RecvSMS();
107
-            dModel.CallerNum = mobile.Trim();
108
-            dModel.Content = smsContent.Trim();
109
-            dModel.RecvModemIMEI = addSerial;
110
-            // dModel.F_Name = workorderid;
111
-            dModel.State = 1;
112
-            // dModel.F_UserID = userId;
113 157
             try
114 158
             {
115
-                dModel.RecvTime = DateTime.Parse(addSerial);
159
+                var ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
160
+                var currentTime = Convert.ToInt64(ts.TotalSeconds).ToString();
161
+                Dictionary<string, string> values = new Dictionary<string, string>();
162
+                values.Add("userid", Smsuserid);
163
+                values.Add("pwd", Md5(Smsuserid + "00000000" + Smspwd + currentTime));
164
+                values.Add("timestamp", currentTime);
165
+                string responseString = HttpMethods.HttpPost(Smsurl + "/sms/v2/std/get_mo", values.ToJson(), "application/json;charset=UTF-8");
166
+                JObject jo = (JObject)JsonConvert.DeserializeObject(responseString);
167
+                if (jo["result"].ToString() == "0")
168
+                {
169
+
170
+                    List<mos> moslist = JsonConvert.DeserializeObject<List<mos>>(jo["mos"].ToString());
171
+                    if (moslist != null && moslist.Count > 0)
172
+                    {
173
+                        foreach (var it in moslist)
174
+                        {
175
+                            var RecvSMS = new BLL.T_SMS_RecvSMS().GetModelList($"RecvModemIMEI='{it.msgid.ToString()}'");
176
+                            if (RecvSMS != null && RecvSMS.Count > 0)
177
+                                continue;
178
+                            Model.T_SMS_RecvSMS dModel = new Model.T_SMS_RecvSMS();
179
+                            dModel.CallerNum = it.mobile;
180
+                            dModel.Content = HttpUtility.UrlDecode(it.content);
181
+                            dModel.RecvModemIMEI = it.msgid.ToString();
182
+                            dModel.State = 1;
183
+                            try
184
+                            {
185
+                                dModel.RecvTime = DateTime.Parse(it.rtime);
186
+                            }
187
+                            catch
188
+                            {
189
+                                dModel.RecvTime = DateTime.Now;
190
+                            }
191
+                            int b = new BLL.T_SMS_RecvSMS().Add(dModel);
192
+                            if (b > 0)
193
+                            {
194
+                                return Success("获取成功");
195
+                            }
196
+                            else
197
+                            {
198
+                                return Error("获取失败");
199
+                            }
200
+                        }
201
+                        return Error("暂无数据");
202
+                    }
203
+                    else
204
+                        return Error("暂无数据1");
205
+
206
+                }
207
+                else
208
+                {
209
+                    string desc = jo["result"].ToString();
210
+                    return Error("发送失败:错误码" + "(" + desc + ")");
211
+
212
+                }
116 213
             }
117
-            catch
214
+            catch (Exception e)
118 215
             {
119
-                dModel.RecvTime = DateTime.Now;
216
+                return Error("发送失败:" + "(" + e.Message + ")");
120 217
             }
121 218
 
122
-            int b = new BLL.T_SMS_RecvSMS().Add(dModel);
123
-            if (b > 0)
124
-            {
125
-                return Success("获取成功");
126
-            }
127
-            else
219
+
220
+        }
221
+
222
+
223
+
224
+
225
+
226
+
227
+        [AllowAnonymous]
228
+        public ActionResult GetReceive() 
229
+        {
230
+
231
+            StreamReader reader = new StreamReader( RequestString .GetInputStream());
232
+            var postString = reader.ReadToEnd();
233
+
234
+            JObject result = null;
235
+
236
+            LogHelper.Warn(postString);
237
+            result = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(postString);
238
+
239
+            string userid= result["userid"].ToString();
240
+            string seqid = result["seqid"].ToString();
241
+            string timestamp = result["timestamp"].ToString();
242
+            string pwd = result["pwd"].ToString();
243
+            string mos = result["mos"].ToString();
244
+            if (userid!= Smsuserid)
245
+                {
246
+                    var obj1 =
247
+                        new
248
+                        {
249
+                            cmd = "MO_RESP",
250
+                            seqid = seqid,
251
+                            result = "-100001"
252
+                        };
253
+                    return Content (obj1.ToJson());
254
+                }
255
+            
256
+            var password = Md5(Smsuserid + "00000000" + Smspwd + timestamp);
257
+           
258
+            if (password != pwd)
259
+                {
260
+                    var obj2 =
261
+                        new
262
+                        {
263
+                            cmd = "MO_RESP",
264
+                            seqid = seqid,
265
+                            result = "-100001"
266
+                        };
267
+                LogHelper.Warn(pwd);
268
+                return Content(obj2.ToJson());
269
+                }
270
+            LogHelper.Warn(mos);
271
+            if (!string .IsNullOrEmpty (mos))
128 272
             {
129
-                return Error("获取失败");
273
+                List<mos> moslist = JsonConvert.DeserializeObject<List<mos>>(mos);
274
+                if (moslist != null && moslist.Count > 0)
275
+                {
276
+                    foreach (var it in moslist)
277
+                    {
278
+                        Model.T_SMS_RecvSMS dModel = new Model.T_SMS_RecvSMS();
279
+                        dModel.CallerNum = it.mobile;
280
+                        dModel.Content = it.content;
281
+                        dModel.RecvModemIMEI = it.msgid.ToString();
282
+                        dModel.State = 1;
283
+                        try
284
+                        {
285
+                            dModel.RecvTime = DateTime.Parse(it.rtime);
286
+                        }
287
+                        catch
288
+                        {
289
+                            dModel.RecvTime = DateTime.Now;
290
+                        }
291
+                        int b = new BLL.T_SMS_RecvSMS().Add(dModel);
292
+
293
+                    }
294
+
295
+                }
130 296
             }
297
+          
298
+                var obj =
299
+                     new
300
+                     {
301
+                         cmd = "MO_RESP",
302
+                         seqid = seqid,
303
+                         result = "0"
304
+                     };
305
+                return Content(obj.ToJson());
306
+
307
+           
308
+
309
+
131 310
         }
132 311
         /// <summary>
133 312
         /// 指定Post地址
@@ -187,7 +366,7 @@ namespace RMYY_CallCenter_Api.Controllers
187 366
             int pageindex = 1;
188 367
             string strpagesize = RequestString.GetQueryString("pagesize");
189 368
             int pagesize = 10;
190
-             sql += " and State=  0  ";
369
+             sql += " and State= '"+ State + "'  ";
191 370
             if (strtel.Trim() != "" && strtel != "undefined")
192 371
             {
193 372
                 sql += " and CallerNum= '" + strtel.Trim() + "' ";

+ 31 - 2
RMYY_CallCenter_Api/Controllers/WorkOrder/WorkCommonController.cs

@@ -415,7 +415,11 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
415 415
                 //业务咨询
416 416
                 case 1000:
417 417
                    Model.T_Con_WorkOrder conmodel = conbll.GetModelByCode(workordercode);
418
-                   
418
+                    conmodel.F_State = (int)EnumWorkOrderState.finish; ;
419
+                    conmodel.F_HandleTime = DateTime.Now;
420
+                    conbll.Update(conmodel);
421
+                    var itemid = logbll.AddLog(conmodel.F_ID, (int)EnumWorkOrderState.finish, (int)conmodel.F_type1, content, 
422
+                        (int)EnumItemType.deal, (int)EnumItemOpt.end, "", 0, User .F_UserCode);
419 423
                     break;
420 424
                     //综合调度
421 425
                 case 2000:
@@ -437,7 +441,32 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
437 441
                     break;
438 442
                    //车辆
439 443
                 case 4000:
440
-
444
+                    var carWorkOrder = new Bll.T_Car_WorkOrder ().GetModelByCode(workordercode);
445
+                    carWorkOrder.F_EndTime = DateTime.Now;
446
+                    carWorkOrder.F_FinishTime = DateTime.Now;
447
+                    carWorkOrder.F_State = (int)EnumWorkOrderState.finish;//待评价
448
+                    new Bll.T_Car_WorkOrder().Update (carWorkOrder);
449
+                    T_Car_WorkOrderController carcc = new T_Car_WorkOrderController();
450
+                    carcc.AddOperation("完结了工单" + content,User .F_UserCode , (int)EnumOperatorType.finish, workordercode,0);
451
+                    var model = new BLL.T_Car_AssignWorkOrder().GetModelList ($"F_WorkOrderID like '%{workordercode}%' and F_State!=10 and F_IsDelete=0");
452
+                    if (model != null && model.Count > 0)
453
+                    {
454
+                        var carsql = $"select count(1) from T_Car_WorkOrder where F_WorkOrderCode in({string.Join(",", model.FirstOrDefault().F_WorkOrderID.Split(','))}) and F_State not in(7,10) and F_IsDel=0";
455
+                        var car = DbHelperSQL.GetSingle(carsql).ToString();
456
+                        if (int.Parse(car) <= 0)
457
+                        {
458
+                            var carmodel = new Bll.T_Car_Message().GetModel(model.FirstOrDefault().F_CarId.Value);
459
+                            if (carmodel != null)
460
+                            {
461
+                                carmodel.F_State = 0;
462
+                                new Bll.T_Car_Message().Update(carmodel);
463
+                            }
464
+
465
+                            model.FirstOrDefault().F_State = (int)EnumWorkOrderState.finish;
466
+                            new BLL.T_Car_AssignWorkOrder().Update(model.FirstOrDefault());
467
+                        }
468
+                      }
469
+                    
441 470
                     break;
442 471
 
443 472
             }