<%@ WebHandler Language="C#" Class="gwdiverterHandler" %>
|
//这个页面新加的为了实现导流
|
|
//using App_Code;
|
using Common;
|
using Dao;
|
using Model;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
public class gwdiverterHandler : PageHandler<SysUser>
|
{
|
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)
|
{
|
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]
|
{
|
(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]
|
{
|
(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()
|
});
|
}
|
|
private string FormatContent(string content)
|
{
|
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();
|
}
|
|
public string ModeStr(int mode)
|
{
|
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 "未设置通道";
|
}
|
}
|