| | |
| | | <%@ WebHandler Language="C#" Class="gwdiverterHandler" %> |
| | | //这个页面新加的为了实现导流 |
| | | //这个页面新加的为了实现导流 |
| | | |
| | | using com.softwee.smgw.common; |
| | | //using App_Code; |
| | | using Common; |
| | | using Dao; |
| | | using Model; |
| | |
| | | |
| | | public class gwdiverterHandler : PageHandler<SysUser> |
| | | { |
| | | private GwDiverterDao _Dao = new GwDiverterDao(); |
| | | //private SysOperationLogDao _OperationLogDao = new SysOperationLogDao(); |
| | | private List<GwOp> OpList; |
| | | private GwDiverterDao _Dao = new GwDiverterDao(); |
| | | //private SysOperationLogDao _OperationLogDao = new SysOperationLogDao(); |
| | | private List<GwOp> OpList; |
| | | |
| | | public override JsonPageResult ProcessRequestInternal(PageContext<SysUser> context) |
| | | { |
| | | string @string = context.GetString("action"); |
| | | switch (@string) |
| | | public override JsonPageResult ProcessRequestInternal(PageContext<SysUser> context) |
| | | { |
| | | case "loadGwDiverter": |
| | | return this.LoadGwDiverter(context); |
| | | case "delete": |
| | | return this.Delete(context); |
| | | case "editDeal": |
| | | return this.Update(context); |
| | | default: |
| | | throw new Exception("Invalid Action=" + @string); |
| | | } |
| | | } |
| | | |
| | | private JsonPageResult Delete(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("1064", FailedOperation.ErrorMsgOnly); |
| | | string @string = context.GetString("did"); |
| | | if (string.IsNullOrEmpty(@string)) |
| | | throw new ArgumentException("参数异常"); |
| | | this._Dao.Delete(@string); |
| | | //WriteSysLogHelper.WriteSysLog(context.SessionObject.Account, 1064, 106, string.Format("删除导流策略:策略编号:{0}", (object) @string), context.ClientIP); |
| | | return new JsonPageResult(true, (object) "删除成功"); |
| | | } |
| | | |
| | | private JsonPageResult Update(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("1062", FailedOperation.ErrorMsgOnly); |
| | | int @int = context.GetInt("DiverterID"); |
| | | string string1 = context.GetString("DiverterName"); |
| | | string string2 = context.GetString("Content"); |
| | | if (string.IsNullOrEmpty(string1)) |
| | | throw new ArgumentException("策略名称不能为空"); |
| | | GwDiverter diverter = new GwDiverter(); |
| | | diverter.DiverterID = @int; |
| | | diverter.DiverterName = string1; |
| | | List<GwDiverterItem> list1 = JsonConvert.DeserializeObject<List<GwDiverterItem>>(string2); |
| | | if (list1 == null) |
| | | throw new ArgumentException("策略数据异常,请重试"); |
| | | List<GwDiverterItem> items = new List<GwDiverterItem>(); |
| | | List<GwDiverterItem> list2 = new List<GwDiverterItem>(); |
| | | foreach (GwDiverterItem gwDiverterItem1 in list1) |
| | | { |
| | | GwDiverterItem gwDiverterItem2 = new GwDiverterItem() |
| | | { |
| | | Mode = gwDiverterItem1.Mode, |
| | | Keywords = "", |
| | | SmMaxLength = gwDiverterItem1.SmMaxLength, |
| | | SmMinLength = gwDiverterItem1.SmMinLength, |
| | | Segments = "", |
| | | ExtNoMode = gwDiverterItem1.ExtNoMode, |
| | | Province = "", |
| | | CMOPID = gwDiverterItem1.CMOPID, |
| | | CUOPID = gwDiverterItem1.CUOPID, |
| | | CTOPID = gwDiverterItem1.CTOPID, |
| | | CMExtNo = gwDiverterItem1.CMExtNo, |
| | | CUExtNo = gwDiverterItem1.CUExtNo, |
| | | CTExtNo = gwDiverterItem1.CTExtNo, |
| | | CMExtParams = gwDiverterItem1.CMExtParams, |
| | | CTExtParams = gwDiverterItem1.CTExtParams, |
| | | CUExtParams = gwDiverterItem1.CUExtParams |
| | | }; |
| | | GwDiverterItem gwDiverterItem3 = new GwDiverterItem() |
| | | { |
| | | Mode = gwDiverterItem1.Mode, |
| | | Keywords = gwDiverterItem1.Keywords, |
| | | SmMaxLength = gwDiverterItem1.SmMaxLength, |
| | | SmMinLength = gwDiverterItem1.SmMinLength, |
| | | Segments = SegmentHelper.Filrate(gwDiverterItem1.Segments), |
| | | Province = gwDiverterItem1.Province, |
| | | ExtNoMode = gwDiverterItem1.ExtNoMode, |
| | | CMOPID = gwDiverterItem1.CMOPID, |
| | | CUOPID = gwDiverterItem1.CUOPID, |
| | | CTOPID = gwDiverterItem1.CTOPID, |
| | | CMExtNo = gwDiverterItem1.CMExtNo, |
| | | CUExtNo = gwDiverterItem1.CUExtNo, |
| | | CTExtNo = gwDiverterItem1.CTExtNo, |
| | | CMExtParams = gwDiverterItem1.CMExtParams, |
| | | CTExtParams = gwDiverterItem1.CTExtParams, |
| | | CUExtParams = gwDiverterItem1.CUExtParams |
| | | }; |
| | | list2.Add(gwDiverterItem2); |
| | | items.Add(gwDiverterItem3); |
| | | } |
| | | string str = JsonConvert.SerializeObject((object) list2); |
| | | if (str.Length > 5000) |
| | | throw new ArgumentException("导流规则不能超过5000字符"); |
| | | diverter.Content = str; |
| | | if (this._Dao.Exists(diverter.DiverterID, diverter.DiverterName)) |
| | | throw new ArgumentException("该策略名称已经存在"); |
| | | this._Dao.UpdateInfo(diverter, items); |
| | | // WriteSysLogHelper.WriteSysLog(context.SessionObject.Account, 1062, 106, string.Format("导流策略:策略编号:{0}策略名称:{1}", (object) @int, (object) string1), context.ClientIP); |
| | | return new JsonPageResult(true, (object) "导流策略保存成功"); |
| | | } |
| | | |
| | | private JsonPageResult LoadGwDiverter(PageContext<SysUser> context) |
| | | { |
| | | List<GwDiverter> list = this._Dao.LoadList(); |
| | | string str = ""; |
| | | if (list != null && list.Count > 0) |
| | | { |
| | | int num = 0; |
| | | foreach (GwDiverter gwDiverter in list) |
| | | { |
| | | ++num; |
| | | str = string.Concat(new object[4] |
| | | string @string = context.GetString("action"); |
| | | switch (@string) |
| | | { |
| | | case "loadGwDiverter": |
| | | return this.LoadGwDiverter(context); |
| | | case "delete": |
| | | return this.Delete(context); |
| | | case "editDeal": |
| | | return this.Update(context); |
| | | default: |
| | | throw new Exception("Invalid Action=" + @string); |
| | | } |
| | | } |
| | | |
| | | private JsonPageResult Delete(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("1064", FailedOperation.ErrorMsgOnly); |
| | | string @string = context.GetString("did"); |
| | | if (string.IsNullOrEmpty(@string)) |
| | | throw new ArgumentException("参数异常"); |
| | | this._Dao.Delete(@string); |
| | | //WriteSysLogHelper.WriteSysLog(context.SessionObject.Account, 1064, 106, string.Format("删除导流策略:策略编号:{0}", (object) @string), context.ClientIP); |
| | | return new JsonPageResult(true, (object) "删除成功"); |
| | | } |
| | | |
| | | private JsonPageResult Update(PageContext<SysUser> context) |
| | | { |
| | | context.CheckRight("1062", FailedOperation.ErrorMsgOnly); |
| | | int @int = context.GetInt("DiverterID"); |
| | | string string1 = context.GetString("DiverterName"); |
| | | string string2 = context.GetString("Content"); |
| | | if (string.IsNullOrEmpty(string1)) |
| | | throw new ArgumentException("策略名称不能为空"); |
| | | GwDiverter diverter = new GwDiverter(); |
| | | diverter.DiverterID = @int; |
| | | diverter.DiverterName = string1; |
| | | List<GwDiverterItem> list1 = JsonConvert.DeserializeObject<List<GwDiverterItem>>(string2); |
| | | if (list1 == null) |
| | | throw new ArgumentException("策略数据异常,请重试"); |
| | | List<GwDiverterItem> items = new List<GwDiverterItem>(); |
| | | List<GwDiverterItem> list2 = new List<GwDiverterItem>(); |
| | | foreach (GwDiverterItem gwDiverterItem1 in list1) |
| | | { |
| | | GwDiverterItem gwDiverterItem2 = new GwDiverterItem() |
| | | { |
| | | Mode = gwDiverterItem1.Mode, |
| | | Keywords = "", |
| | | SmMaxLength = gwDiverterItem1.SmMaxLength, |
| | | SmMinLength = gwDiverterItem1.SmMinLength, |
| | | Segments = "", |
| | | ExtNoMode = gwDiverterItem1.ExtNoMode, |
| | | Province = "", |
| | | CMOPID = gwDiverterItem1.CMOPID, |
| | | CUOPID = gwDiverterItem1.CUOPID, |
| | | CTOPID = gwDiverterItem1.CTOPID, |
| | | CMExtNo = gwDiverterItem1.CMExtNo, |
| | | CUExtNo = gwDiverterItem1.CUExtNo, |
| | | CTExtNo = gwDiverterItem1.CTExtNo, |
| | | CMExtParams = gwDiverterItem1.CMExtParams, |
| | | CTExtParams = gwDiverterItem1.CTExtParams, |
| | | CUExtParams = gwDiverterItem1.CUExtParams |
| | | }; |
| | | GwDiverterItem gwDiverterItem3 = new GwDiverterItem() |
| | | { |
| | | Mode = gwDiverterItem1.Mode, |
| | | Keywords = gwDiverterItem1.Keywords, |
| | | SmMaxLength = gwDiverterItem1.SmMaxLength, |
| | | SmMinLength = gwDiverterItem1.SmMinLength, |
| | | Segments = SegmentHelper.Filrate(gwDiverterItem1.Segments), |
| | | Province = gwDiverterItem1.Province, |
| | | ExtNoMode = gwDiverterItem1.ExtNoMode, |
| | | CMOPID = gwDiverterItem1.CMOPID, |
| | | CUOPID = gwDiverterItem1.CUOPID, |
| | | CTOPID = gwDiverterItem1.CTOPID, |
| | | CMExtNo = gwDiverterItem1.CMExtNo, |
| | | CUExtNo = gwDiverterItem1.CUExtNo, |
| | | CTExtNo = gwDiverterItem1.CTExtNo, |
| | | CMExtParams = gwDiverterItem1.CMExtParams, |
| | | CTExtParams = gwDiverterItem1.CTExtParams, |
| | | CUExtParams = gwDiverterItem1.CUExtParams |
| | | }; |
| | | list2.Add(gwDiverterItem2); |
| | | items.Add(gwDiverterItem3); |
| | | } |
| | | string str = JsonConvert.SerializeObject((object) list2); |
| | | if (str.Length > 5000) |
| | | throw new ArgumentException("导流规则不能超过5000字符"); |
| | | diverter.Content = str; |
| | | if (this._Dao.Exists(diverter.DiverterID, diverter.DiverterName)) |
| | | throw new ArgumentException("该策略名称已经存在"); |
| | | this._Dao.UpdateInfo(diverter, items); |
| | | // WriteSysLogHelper.WriteSysLog(context.SessionObject.Account, 1062, 106, string.Format("导流策略:策略编号:{0}策略名称:{1}", (object) @int, (object) string1), context.ClientIP); |
| | | return new JsonPageResult(true, (object) "导流策略保存成功"); |
| | | } |
| | | |
| | | private JsonPageResult LoadGwDiverter(PageContext<SysUser> context) |
| | | { |
| | | List<GwDiverter> list = this._Dao.LoadList(); |
| | | string str = ""; |
| | | if (list != null && list.Count > 0) |
| | | { |
| | | int num = 0; |
| | | foreach (GwDiverter gwDiverter in list) |
| | | { |
| | | ++num; |
| | | str = string.Concat(new object[4] |
| | | { |
| | | (object) str, |
| | | (object) "<tr><td>", |
| | | (object) gwDiverter.DiverterID, |
| | | (object) "</td>" |
| | | }); |
| | | str = str + "<td>" + gwDiverter.DiverterName + "</td>"; |
| | | str = str + "<td>" + this.FormatContent(gwDiverter.Content) + "</td>"; |
| | | str += "<td nowrap=\"true\">"; |
| | | str = string.Concat(new object[4] |
| | | { |
| | | }); |
| | | str = str + "<td>" + gwDiverter.DiverterName + "</td>"; |
| | | str = str + "<td>" + this.FormatContent(gwDiverter.Content) + "</td>"; |
| | | str += "<td nowrap=\"true\">"; |
| | | str = string.Concat(new object[4] |
| | | { |
| | | (object) str, |
| | | (object) "<a href='javascript:;' data-id='", |
| | | (object) gwDiverter.DiverterID, |
| | | (object) "' class='action-edit btn btn-xs btn-success operator'><i class=\"fa fa-edit\"></i> 编辑</a> " |
| | | }); |
| | | str = string.Concat(new object[4] |
| | | { |
| | | }); |
| | | str = string.Concat(new object[4] |
| | | { |
| | | (object) str, |
| | | (object) "<a href='javascript:;' data-id='", |
| | | (object) gwDiverter.DiverterID, |
| | | (object) "' class='action-delete btn btn-xs btn-default operator'><i class=\"fa fa-trash\"></i> 删除</a>" |
| | | }); |
| | | str += "</td>"; |
| | | str += "</tr>"; |
| | | } |
| | | } |
| | | else |
| | | str += "<tr><td colspan=\"4\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>"; |
| | | return new JsonPageResult(true, (object) new |
| | | { |
| | | Table = str.ToString() |
| | | }); |
| | | str += "</td>"; |
| | | str += "</tr>"; |
| | | } |
| | | } |
| | | else |
| | | str += "<tr><td colspan=\"4\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>"; |
| | | return new JsonPageResult(true, (object) new |
| | | { |
| | | Table = str.ToString() |
| | | }); |
| | | } |
| | | |
| | | private string FormatContent(string content) |
| | | { |
| | | StringBuilder stringBuilder = new StringBuilder(); |
| | | try |
| | | private string FormatContent(string content) |
| | | { |
| | | foreach (GwDiverterItem gwDiverterItem in JsonConvert.DeserializeObject<List<GwDiverterItem>>(content)) |
| | | { |
| | | stringBuilder.AppendFormat("<div class=\"m-b\">"); |
| | | stringBuilder.AppendFormat("{0}", (object) this.ModeStr(gwDiverterItem.Mode)); |
| | | stringBuilder.AppendFormat("短信将从 移动 <span class=\"label label-success\">{0}</span> 联通 <span class=\"label label-primary\">{1}</span> 电信 <span class=\"label label-warning\"> {2} </span>导流。", (object) this.GetOpName(gwDiverterItem.CMOPID), (object) this.GetOpName(gwDiverterItem.CUOPID), (object) this.GetOpName(gwDiverterItem.CTOPID)); |
| | | stringBuilder.AppendLine("</div>"); |
| | | } |
| | | StringBuilder stringBuilder = new StringBuilder(); |
| | | try |
| | | { |
| | | foreach (GwDiverterItem gwDiverterItem in JsonConvert.DeserializeObject<List<GwDiverterItem>>(content)) |
| | | { |
| | | stringBuilder.AppendFormat("<div class=\"m-b\">"); |
| | | stringBuilder.AppendFormat("{0}", (object) this.ModeStr(gwDiverterItem.Mode)); |
| | | stringBuilder.AppendFormat("短信将从 移动 <span class=\"label label-success\">{0}</span> 联通 <span class=\"label label-primary\">{1}</span> 电信 <span class=\"label label-warning\"> {2} </span>导流。", (object) this.GetOpName(gwDiverterItem.CMOPID), (object) this.GetOpName(gwDiverterItem.CUOPID), (object) this.GetOpName(gwDiverterItem.CTOPID)); |
| | | stringBuilder.AppendLine("</div>"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex); |
| | | } |
| | | return stringBuilder.ToString(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex); |
| | | } |
| | | return stringBuilder.ToString(); |
| | | } |
| | | |
| | | public string ModeStr(int mode) |
| | | { |
| | | string str1 = ""; |
| | | string str2; |
| | | switch (mode) |
| | | public string ModeStr(int mode) |
| | | { |
| | | case 1: |
| | | return str2 = string.Format("当短信内容匹配【关键字】时,"); |
| | | case 2: |
| | | return str2 = string.Format("当短信内容匹配 “字数” 时,"); |
| | | case 3: |
| | | return str2 = string.Format("当短信号码匹配 “号段” 时,"); |
| | | case 4: |
| | | return str2 = string.Format("当短信号码匹配 “省份” 时,"); |
| | | default: |
| | | return str1.ToString(); |
| | | string str1 = ""; |
| | | string str2; |
| | | switch (mode) |
| | | { |
| | | case 1: |
| | | return str2 = string.Format("当短信内容匹配【关键字】时,"); |
| | | case 2: |
| | | return str2 = string.Format("当短信内容匹配 “字数” 时,"); |
| | | case 3: |
| | | return str2 = string.Format("当短信号码匹配 “号段” 时,"); |
| | | case 4: |
| | | return str2 = string.Format("当短信号码匹配 “省份” 时,"); |
| | | default: |
| | | return str1.ToString(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private string GetOpName(int opID) |
| | | { |
| | | using (GwOpDao gwOpDao = new GwOpDao()) |
| | | this.OpList = gwOpDao.LoadInfoList(); |
| | | if (this.OpList == null) |
| | | return string.Empty; |
| | | GwOp gwOp = this.OpList.Find((Predicate<GwOp>) (op => op.OpID == opID)); |
| | | if (gwOp != null) |
| | | return string.Format("{0}-{1}", (object) gwOp.OpID, (object) gwOp.OpName); |
| | | return "未设置通道"; |
| | | } |
| | | private string GetOpName(int opID) |
| | | { |
| | | using (GwOpDao gwOpDao = new GwOpDao()) |
| | | this.OpList = gwOpDao.LoadInfoList(); |
| | | if (this.OpList == null) |
| | | return string.Empty; |
| | | GwOp gwOp = this.OpList.Find((Predicate<GwOp>) (op => op.OpID == opID)); |
| | | if (gwOp != null) |
| | | return string.Format("{0}-{1}", (object) gwOp.OpID, (object) gwOp.OpName); |
| | | return "未设置通道"; |
| | | } |
| | | } |