优化产品及产品分类,订单,对称加密,IP转地区名称
| | |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <ItemGroup> |
| | | <Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\web\Bin\Newtonsoft.Json.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>lib\Oracle.DataAccess.dll</HintPath> |
| | |
| | | |
| | | namespace Common |
| | | { |
| | | |
| | | public class DESEncrypt |
| | | { |
| | | public static string Encrypt(string Text) |
| | | //加密串 |
| | | //public static string encryptStr = "litianping"; |
| | | public static string encryptStr = "abcDEF123@$@"; |
| | | |
| | | public static string Encrypt(string Text) |
| | | { |
| | | return DESEncrypt.Encrypt(Text, "litianping"); |
| | | return DESEncrypt.Encrypt(Text, encryptStr ); |
| | | } |
| | | |
| | | public static string Encrypt(string Text, string sKey) |
| | | { |
| | | DESCryptoServiceProvider cryptoServiceProvider = new DESCryptoServiceProvider(); |
| | | byte[] bytes = Encoding.Default.GetBytes(Text); |
| | | cryptoServiceProvider.Key = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); |
| | | //c#的DES加密是key为8位 |
| | | cryptoServiceProvider.Key = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); |
| | | cryptoServiceProvider.IV = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); |
| | | MemoryStream memoryStream = new MemoryStream(); |
| | | CryptoStream cryptoStream = new CryptoStream((Stream) memoryStream, cryptoServiceProvider.CreateEncryptor(), CryptoStreamMode.Write); |
| | |
| | | |
| | | public static string Decrypt(string Text) |
| | | { |
| | | return DESEncrypt.Decrypt(Text, "litianping"); |
| | | return DESEncrypt.Decrypt(Text, encryptStr); |
| | | } |
| | | |
| | | public static string Decrypt(string Text, string sKey) |
| | |
| | | { |
| | | int num = Convert.ToInt32(Text.Substring(index * 2, 2), 16); |
| | | buffer[index] = (byte) num; |
| | | } |
| | | cryptoServiceProvider.Key = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); |
| | | cryptoServiceProvider.IV = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); |
| | | MemoryStream memoryStream = new MemoryStream(); |
| | | } |
| | | //c#的DES加密是key为8位 |
| | | cryptoServiceProvider.Key = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); |
| | | cryptoServiceProvider.IV = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); |
| | | MemoryStream memoryStream = new MemoryStream(); |
| | | CryptoStream cryptoStream = new CryptoStream((Stream) memoryStream, cryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Write); |
| | | cryptoStream.Write(buffer, 0, buffer.Length); |
| | | cryptoStream.FlushFinalBlock(); |
| | |
| | | using System; |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using System.IO; |
| | | using System.Net; |
| | | using System.Net.Mail; |
| | |
| | | using System.Text.RegularExpressions; |
| | | using System.Threading; |
| | | using System.Web; |
| | | using System.Xml; |
| | | |
| | | namespace Common |
| | | { |
| | |
| | | string str = string.Empty; |
| | | return HttpContext.Current.Request.ServerVariables["HTTP_VIA"] == null ? (HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] == null ? "0.0.0.0" : HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString()) : (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null ? HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString() : (HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"] == null ? (HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] == null ? "0.0.0.0" : HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString()) : HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"].ToString())); |
| | | } |
| | | /// <summary> |
| | | /// 获取客户端IP地址 |
| | | /// </summary> |
| | | /// <returns>若失败则返回回送地址</returns> |
| | | public static string GetCurrentUserIp() |
| | | { |
| | | //如果客户端使用了代理服务器,则利用HTTP_X_FORWARDED_FOR找到客户端IP地址 |
| | | string userHostAddress = string.IsNullOrEmpty(HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]) ? null : HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Split(',')[0].Trim(); |
| | | //否则直接读取REMOTE_ADDR获取客户端IP地址 |
| | | if (string.IsNullOrEmpty(userHostAddress)) |
| | | { |
| | | userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; |
| | | } |
| | | //前两者均失败,则利用Request.UserHostAddress属性获取IP地址,但此时无法确定该IP是客户端IP还是代理IP |
| | | if (string.IsNullOrEmpty(userHostAddress)) |
| | | { |
| | | userHostAddress = HttpContext.Current.Request.UserHostAddress; |
| | | } |
| | | //最后判断获取是否成功,并检查IP地址的格式(检查其格式非常重要) |
| | | if (!string.IsNullOrEmpty(userHostAddress) && IsIP(userHostAddress)) |
| | | { |
| | | return userHostAddress; |
| | | } |
| | | return "127.0.0.1"; |
| | | } |
| | | |
| | | public static string GetTrueWebSitePath() |
| | | |
| | | //获取本地IP地址,如:192.168.1.102 |
| | | public static string GetLocalIPAddress() |
| | | { |
| | | var host = Dns.GetHostEntry(Dns.GetHostName()); |
| | | foreach (var ip in host.AddressList) |
| | | { |
| | | if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) |
| | | { |
| | | return ip.ToString(); |
| | | } |
| | | } |
| | | throw new Exception("No network adapters with an IPv4 address in the system!"); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据IP 获取物理地址 |
| | | /// </summary> |
| | | /// <param name="ip">Ip地址</param> |
| | | /// <param name="AddressClasses">返回地址类别:0-全地址,1-国家编码, 2-国家,3-地区编码,4-地区名称,5-城市名称</param> |
| | | /// <returns></returns> |
| | | public static string GetIpAddress(string ip, string addressClasses) |
| | | { |
| | | string url = "http://ip-api.com/json/" + ip + "?lang=zh-CN"; |
| | | string result = ""; |
| | | WebRequest wrt = null; |
| | | WebResponse wrp = null; |
| | | try |
| | | { |
| | | wrt = WebRequest.Create(url); |
| | | wrt.Credentials = CredentialCache.DefaultCredentials; |
| | | |
| | | wrp = wrt.GetResponse(); |
| | | StreamReader sr = new StreamReader(wrp.GetResponseStream(), Encoding.UTF8); |
| | | //获取到的是Json数据 |
| | | string html = sr.ReadToEnd(); |
| | | |
| | | if (string.IsNullOrEmpty(html)) |
| | | return null; |
| | | |
| | | //Newtonsoft.Json读取数据 |
| | | JObject obj = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(html); |
| | | string countryCode = obj["countryCode"] == null ? "" : obj["countryCode"].ToString(); //国家编码 |
| | | string country = obj["country"] == null ? "" : obj["country"].ToString(); //国家 |
| | | string region = obj["region"] == null ? "" : obj["region"].ToString(); //地区编码 |
| | | string regionName = obj["regionName"] == null ? "" : obj["regionName"].ToString(); //地区名称 |
| | | string city = obj["city"] == null ? "" : obj["city"].ToString(); //城市名称 |
| | | //string province = obj["regionName"].ToString(); |
| | | |
| | | //地址全称 |
| | | if (addressClasses.Equals("0")) |
| | | return country + (city.Equals(regionName) ? city : (regionName + city)); |
| | | //国家编码 |
| | | if (addressClasses.Equals("1")) |
| | | return countryCode; |
| | | //国家名称 |
| | | if (addressClasses.Equals("2")) |
| | | return country; |
| | | //地区编码 |
| | | if (addressClasses.Equals("3")) |
| | | return region; |
| | | //地区名称 |
| | | if (addressClasses.Equals("4")) |
| | | return regionName; |
| | | //城市名称 |
| | | if (addressClasses.Equals("5")) |
| | | //return city.Equals(regionName) ? city : (regionName + city); |
| | | return city; |
| | | |
| | | else |
| | | return country + (city.Equals(regionName) ? city : (regionName + city)); |
| | | |
| | | } |
| | | catch (Exception) |
| | | { |
| | | } |
| | | finally |
| | | { |
| | | if (wrp != null) |
| | | wrp.Close(); |
| | | if (wrt != null) |
| | | wrt.Abort(); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 检查IP地址格式 |
| | | /// </summary> |
| | | /// <param name="ip"></param> |
| | | /// <returns></returns> |
| | | public static bool IsIP(string ip) |
| | | { |
| | | return System.Text.RegularExpressions.Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$"); |
| | | } |
| | | |
| | | public static string GetTrueWebSitePath() |
| | | { |
| | | string path = HttpContext.Current.Request.Path; |
| | | return path.LastIndexOf("/") == path.IndexOf("/") ? "/" : path.Substring(path.IndexOf("/"), path.LastIndexOf("/") + 1); |
| | |
| | | /// <param name="clientName">联系人</param> |
| | | /// <param name="telphone">联系电话</param> |
| | | /// <param name="agent">业务员</param> |
| | | /// <param name="company">公司名称</param> |
| | | /// <param name="salesman">归属业务员</param> |
| | | /// <param name="supportStaff">归属客服人员</param> |
| | | /// <param name="productId">产品ID</param> |
| | | /// <returns></returns> |
| | | //public List<GwClient> LoadInfoList(out int recordCount, int pageIndex, int pageSizestring, string clientID, string clientName, string telphone, string agent) |
| | | public List<GwClient> LoadInfoList(out int recordCount, int pageIndex, int pageSizestring, string clientID, string clientName, string telphone, string agent, string company, string salesman, string productId, string permissionsSQL ) |
| | | public List<GwClient> LoadInfoList(out int recordCount, int pageIndex, int pageSizestring, string clientID, string clientName, string telphone, string agent, string company, string salesman, string supportStaff, string productId, string permissionsSQL ) |
| | | { |
| | | |
| | | List<GwClient> list = new List<GwClient>(); |
| | |
| | | { |
| | | StringBuilder stringBuilder = new StringBuilder(); |
| | | stringBuilder.Append("from GW_CLIENT where 1=1"); |
| | | OracleParameter[] oracleParameterArray = new OracleParameter[6]; |
| | | OracleParameter[] oracleParameterArray = new OracleParameter[7]; |
| | | if (clientID != null && clientID != "") |
| | | { |
| | | oracleParameterArray[0] = new OracleParameter(":ClientID", (OracleDbType)126); |
| | |
| | | ((DbParameter)oracleParameterArray[5]).Value = (object)("%" + agent + "%"); |
| | | stringBuilder.Append(" and Agent like :Agent"); |
| | | } |
| | | if (supportStaff != null && supportStaff != "") |
| | | { |
| | | oracleParameterArray[6] = new OracleParameter(":SupportStaff", (OracleDbType)126); |
| | | ((DbParameter)oracleParameterArray[6]).Value = (object)(supportStaff); |
| | | stringBuilder.Append(" and SUPPORT_STAFF = :SupportStaff"); |
| | | } |
| | | |
| | | if (productId != null && productId != "") |
| | | { |
| | |
| | | |
| | | |
| | | //flag: 0-待审核订单(已提交、审核中);1-已完成订单(审核通过、审核不通过、取消) |
| | | public List<GwOrder> LoadInfoList(string spId, string clientId, string clientName, int flag, DateTime startDate, DateTime endDate, int pageSize, int PageIndex, string permissionsSQL, out int recordcount) |
| | | public List<GwOrder> LoadInfoList(string spId, string clientId, string compay, int flag, DateTime startDate, DateTime endDate, int pageSize, int PageIndex, string permissionsSQL, out int recordcount) |
| | | { |
| | | |
| | | List<GwOrder> list = new List<GwOrder>(); |
| | |
| | | { |
| | | StringBuilder stringBuilder = new StringBuilder(); |
| | | stringBuilder.Append(" FROM ( "); |
| | | stringBuilder.Append("SELECT GWO.*, GWC.CLIENT_NAME "); |
| | | stringBuilder.Append("SELECT GWO.*, GWC.CLIENT_NAME, GWC.COMPANY "); |
| | | stringBuilder.Append(" FROM GW_ORDER GWO "); |
| | | stringBuilder.Append(" LEFT JOIN GW_SP GWS ON GWS.SP_ID = GWO.SP_ID "); |
| | | stringBuilder.Append(" LEFT JOIN GW_CLIENT GWC ON GWC.CLIENT_ID = GWO.CLIENT_ID "); |
| | |
| | | { |
| | | stringBuilder.Append(" and GWO.CLIENT_ID like '%" + clientId + "%'"); |
| | | } |
| | | if ((clientName != null) && (clientName != "")) |
| | | if ((compay != null) && (compay != "")) |
| | | { |
| | | stringBuilder.Append(" and GWC.CLIENT_NAME like '%" + clientName + "%'"); |
| | | stringBuilder.Append(" and GWC.COMPANY like '%" + compay + "%'"); |
| | | } |
| | | //客户权限SQL脚本 |
| | | stringBuilder.Append(permissionsSQL); |
| | |
| | | OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader); |
| | | o.OrderId = oracleReaderWrapper.GetString("ORDER_ID", ""); |
| | | o.SpId = oracleReaderWrapper.GetString("SP_ID", ""); |
| | | o.ClientId = oracleReaderWrapper.GetString("CLIENT_ID", ""); |
| | | o.ClientId = oracleReaderWrapper.GetString("CLIENT_ID", ""); |
| | | o.Company = oracleReaderWrapper.GetString("COMPANY", ""); |
| | | o.ClientName = oracleReaderWrapper.GetString("CLIENT_NAME", ""); |
| | | o.ProductId = oracleReaderWrapper.GetString("PRODUCT_ID", ""); |
| | | o.ComboId = oracleReaderWrapper.GetString("COMBO_ID", ""); |
| | |
| | | } |
| | | if (sysFlowNode.UserId != null && sysFlowNode.UserId != "") |
| | | { |
| | | stringBuilder.Append(" AND INSTR(','||USER_ID||',','" + sysFlowNode.UserId + "') > 0"); |
| | | stringBuilder.Append(" AND INSTR(','||USER_ID||',', '" + sysFlowNode.UserId + "') > 0"); //对应MySql的FIND_IN_SET语法。 |
| | | } |
| | | stringBuilder.Append(" ORDER BY BUSINESS_TYPE "); |
| | | |
| | |
| | | |
| | | public string ClientId { get; set; } |
| | | |
| | | public string Company { get; set; } |
| | | |
| | | public string ClientName { get; set; } |
| | | |
| | | public string ProductId { get; set; } |
| | |
| | | private int _userId = -1; |
| | | private int _userType = -1; |
| | | private string _account = ""; |
| | | private string initPwd = ConfigurationManager.AppSettings["initPwd"]; |
| | | |
| | | public override JsonPageResult ProcessRequestInternal(PageContext<Model.SysUser> context) |
| | | { |
| | |
| | | //批量分配客户的个性产品 |
| | | case "batchUpdateClientProduct": |
| | | return BatchUpdateClientProduct(context); |
| | | //重置密码 |
| | | case "resetPwd": |
| | | return ResetPwd(context); |
| | | |
| | | default: |
| | | throw new Exception("Invalid Action=" + action); |
| | |
| | | string ClientName = context.GetString("ClientName"); |
| | | string Telephone = context.GetString("Telephone"); |
| | | string Salesman = context.GetString("Salesman"); |
| | | string SupportStaff = context.GetString("SupportStaff"); |
| | | string ProductId = context.GetString("ProductId"); |
| | | int pageIndex = context.GetInt("pageIndex", 1); |
| | | |
| | |
| | | using (GwClientDao dao = new GwClientDao()) |
| | | { |
| | | string permissionsSQL = dao.GetClientPermissions(_userId, _userType, null); |
| | | var list = dao.LoadInfoList(out recordCount, pageIndex, pageSize, ClientID, ClientName, Telephone, Agent, Company, Salesman, ProductId, permissionsSQL); |
| | | var list = dao.LoadInfoList(out recordCount, pageIndex, pageSize, ClientID, ClientName, Telephone, Agent, Company, Salesman, SupportStaff, ProductId, permissionsSQL); |
| | | |
| | | if (list != null && list.Count > 0) |
| | | { |
| | |
| | | //edit:yangzh by 20220511 |
| | | //str += @"<tr ><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Top_up_Amount_Total + "元</td><td>" + item.Agent + "</td><td>" + Certification_StatusResult + "</td>"; |
| | | //str += @"<tr ><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Balance/1000 + "元</td><td>" + item.Top_up_Amount_Total/1000 + "元</td><td>" + item.Agent + "</td><td>" + Certification_StatusResult + "</td>"; |
| | | str += @"<tr ><td rowspan='1' ><input type='checkbox' name='checkbox' value='" + item.ClientID + "'/></td><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Balance/1000 + "元</td><td>" + item.Top_up_Amount_Total/1000 + "元</td><td>" + SysUserName(string.IsNullOrEmpty(item.Salesman)? 0: int.Parse(item.Salesman) ) + "</td><td>" + Certification_StatusResult + "</td>"; |
| | | |
| | | //str += @"<tr ><td rowspan='1' ><input type='checkbox' name='checkbox' value='" + item.ClientID + "'/></td><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Balance/1000 + "元</td><td>" + item.Top_up_Amount_Total/1000 + "元</td><td>" + SysUserName(string.IsNullOrEmpty(item.Salesman)? 0: int.Parse(item.Salesman) ) + "</td><td>" + Certification_StatusResult + "</td>"; |
| | | str += @"<tr ><td rowspan='1' ><input type='checkbox' name='checkbox' value='" + item.ClientID + "'/></td><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Balance/1000 + "</td><td>" + item.Top_up_Amount_Total/1000 + "</td><td>" + SysUserName(string.IsNullOrEmpty(item.Salesman)? 0: int.Parse(item.Salesman) ) + "</td></td>"; |
| | | |
| | | str += @"<td>"; |
| | | string loginStr = "http://" + serverIp + ":" + clientPort + "/Attachedlogin.aspx?action=Attachedlogin&account=" + item.Account + "&password=" + item.Password; |
| | |
| | | str += @"黑名单"; |
| | | str += @"</a> "; |
| | | |
| | | str += string.Format(@"<a class=""action-modal-resetPwd btn btn-xs btn-primary"" href=""javascript:;"" data-id=""{0}"">", item.ClientID); |
| | | str += @"重置密码"; |
| | | str += @"</a> "; |
| | | |
| | | str += string.Format(@"<a class=""action-delete btn btn-xs btn-default"" href=""javascript:;"" data-id=""{0}"">", item.ClientID); |
| | | str += @"删除"; |
| | | str += @"</a>"; |
| | |
| | | } |
| | | else |
| | | { |
| | | str += @"<tr><td colspan=""10"">暂无信息</td></tr>"; |
| | | str += @"<tr><td colspan=""9"">暂无信息</td></tr>"; |
| | | } |
| | | |
| | | } |
| | |
| | | string clientID = context.GetString("clientID"); |
| | | |
| | | return new JsonPageResult(true, _Dao.GetBlackList(clientID)); |
| | | } |
| | | |
| | | //重置密码 |
| | | private JsonPageResult ResetPwd(PageContext<Model.SysUser> context) |
| | | { |
| | | string clientID = context.GetString("clientID"); |
| | | string password = string.IsNullOrEmpty(initPwd ) ? "123456" : initPwd; |
| | | |
| | | //密码MD5加密, |
| | | password = DataHelper.MD5Hex(password); |
| | | |
| | | _Dao.UpdatePassword(clientID, password); |
| | | |
| | | return new JsonPageResult(true, "重置密码成功!"); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | } |
| | | } |
| | | |
| | | //管理端账户名称 |
| | | //管理端用户ID转名称 |
| | | private string SysUserName(int userId) |
| | | { |
| | | if (this.SysUserList == null) |
| | | return string.Empty; |
| | | SysUser sysUser = this._SysUserList.Find((Predicate<SysUser>)(bean => bean.UserID == userId)); |
| | | if (sysUser != null) |
| | | return string.Format("{0}-{1}", (object)sysUser.UserID, (object)sysUser.UserName); |
| | | return string.Format("{0}", (object)sysUser.UserName); |
| | | return string.Empty; |
| | | } |
| | | } |
| | |
| | | var Telephone = $("#Telephone").val(); |
| | | var Agent = $("#Agent").val(); |
| | | var Salesman = $("#Salesman").val(); |
| | | var SupportStaff = $("#SupportStaff").val(); |
| | | var ProductId = $("#ProductId").val(); |
| | | $.ajax({ |
| | | url: "GwClient.ashx", |
| | | type: "POST", |
| | | data: { action: "loadGwClientPageList", ClientID: ClientID, Company: Company, ClientName: ClientName, Telephone: Telephone, Agent: Agent, Salesman: Salesman, ProductId: ProductId , pageSize: $("#pager").Pager("getPageSize"), pageIndex: $("#pager").Pager("getPageIndex") }, |
| | | data: { action: "loadGwClientPageList", ClientID: ClientID, Company: Company, ClientName: ClientName, Telephone: Telephone, Agent: Agent, Salesman: Salesman, SupportStaff: SupportStaff, ProductId: ProductId , pageSize: $("#pager").Pager("getPageSize"), pageIndex: $("#pager").Pager("getPageIndex") }, |
| | | success: function (result) { |
| | | if (result.OK) { |
| | | $("#gwclientTable tbody").html(result.Message.Table); |
| | |
| | | mytek.confirm("是否需要删除该客户?", "客户删除后将无法恢复,请谨慎操作!", function (b) { |
| | | if (b) { |
| | | $.post("gwclient.ashx", { action: "delete", clientID: id }, function (r) { |
| | | mytek.alert(r.Message, r.OK, function () { |
| | | window.location.reload(); |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | //重置密码 |
| | | $(document).on("click", ".action-modal-resetPwd", function () { |
| | | var id = $(this).data("id"); |
| | | mytek.confirm("重置密码?", "是否重置密码?请谨慎操作!", function (b) { |
| | | if (b) { |
| | | $.post("gwclient.ashx", { action: "resetPwd", clientID: id }, function (r) { |
| | | mytek.alert(r.Message, r.OK, function () { |
| | | window.location.reload(); |
| | | }); |
| | |
| | | <div class="modal-header"> |
| | | <button type="button" class="close" data-dismiss="modal"> |
| | | <span aria-hidden="true">×</span><span class="sr-only">Close</span></button> |
| | | <h4 class="modal-title">创建/修改客户 |
| | | <h4 class="modal-title">创建/修改客户信息 |
| | | </h4> |
| | | <input name="action" value="add" type="hidden" /> |
| | | <input name="id" id="id" type="hidden" value="" /> |
| | |
| | | |
| | | <div class="form-group"> |
| | | <label class="control-label col-sm-2"> |
| | | 客户名称 <span style="color:red">*</span> |
| | | 公司名称(全称) <span style="color:red">*</span> |
| | | </label> |
| | | <div class="col-sm-4"> |
| | | <input type="text" name="company" id="company" value="" class="form-control" /> |
| | |
| | | </div> |
| | | <div class="col-sm-6"> |
| | | <a class="btn btn-xs btn-primary action-generate-password ">生成密码</a> |
| | | <a class="btn btn-xs btn-success action-generate-password ">复制密码</a> |
| | | <a class="btn btn-xs btn-success action-copyPwd ">复制密码</a> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <!-- |
| | | <div class="form-group"> |
| | | <label class="control-label col-sm-2"> |
| | | 彩信是否支持显示状态报告 <span style="color:red">*</span> |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | --> |
| | | <!-- |
| | | <div class="form-group"> |
| | | <label class="control-label col-sm-2"> |
| | |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="control-label col-sm-2"> |
| | | 归属客户人员 <span style="color:red">*</span> |
| | | 归属客服人员 <span style="color:red">*</span> |
| | | </label> |
| | | <div class="col-sm-4"> |
| | | <select name="supportStaff" id="supportStaff" class="form-control"> |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <!-- |
| | | <div class="form-group"> |
| | | <label class="control-label col-sm-2">营业执照</label> |
| | | <div class="col-sm-4"> |
| | | <input type="file" name="txt_file" id="txt_file" class="file-loading" /> |
| | | </div> |
| | | </div> |
| | | --> |
| | | <!-- |
| | | <div class="form-group"> |
| | | <label class="control-label col-sm-2"> |
| | | 权限管理 |
| | | </label> |
| | | <div class="col-sm-10"> |
| | | <input type="checkbox" class="icheck-me" value="GwClientList.aspx" name="permissionData" />代理商管理(*是否支持创建下级代理) |
| | | <!-- |
| | | <!//-- |
| | | <input type="checkbox" class="icheck-me" value="LgSmsDetailReport.aspx" name="permissionData" />查看状态报告 |
| | | <input type="checkbox" class="icheck-me" value="1" name="permissionData" />发送权限 |
| | | <input type="checkbox" class="icheck-me" value="2" name="permissionData" />查看数据权限 |
| | | --> |
| | | --//> |
| | | </div> |
| | | </div> |
| | | --> |
| | | <div class="form-group"> |
| | | <label class="control-label col-sm-2"> |
| | | 备注 |
| | |
| | | </div> |
| | | <div class="form-group"> |
| | | <div class="input-group m-b"> |
| | | <span class="input-group-addon">客户名称</span> |
| | | <span class="input-group-addon">联系人</span> |
| | | <input type="text" name="ClientName" id="ClientName" class="form-control" /> |
| | | </div> |
| | | </div> |
| | |
| | | <span class="input-group-addon">归属业务员</span> |
| | | <select name="Salesman" id="Salesman" class="form-control"> |
| | | <%=salesmanOptions(-1)%> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <div class="input-group m-b"> |
| | | <span class="input-group-addon">归属客服人员</span> |
| | | <select name="SupportStaff" id="SupportStaff" class="form-control"> |
| | | <%=supportStaffOptions(-1)%> |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | <th>客户账号 |
| | | </th> |
| | | <th>公司名称</th> |
| | | <th>客户名称 |
| | | <th>联系人 |
| | | </th> |
| | | <th>联系电话 |
| | | </th> |
| | | <th>账户余额 |
| | | <th>账户余额(元) |
| | | </th> |
| | | <th>累计充值 |
| | | <th>累计充值(元) |
| | | </th> |
| | | |
| | | <th>业务员 |
| | | </th> |
| | | <!-- |
| | | <th>认证状态 |
| | | </th> |
| | | --> |
| | | <th>操作 |
| | | </th> |
| | | </tr> |
| | |
| | | using Dao; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | using System.Configuration; |
| | | |
| | | public partial class _GwClient : PageBase<SysUser>, IRequiresSessionState |
| | | { |
| | | |
| | | protected List<SysUser> SysUserList; |
| | | protected List<GwProduct> GwProductList; |
| | | |
| | | string addressClasses = ConfigurationManager.AppSettings["addressClasses"]; |
| | | |
| | | protected void Page_Load(object sender, EventArgs e) |
| | | { |
| | |
| | | } |
| | | |
| | | if (userId == bean.UserID) |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{0}-{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | else |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{0}-{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | } |
| | | return stringBuilder.ToString(); |
| | | } |
| | |
| | | } |
| | | |
| | | if (userId == bean.UserID) |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{0}-{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | else |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{0}-{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | } |
| | | return stringBuilder.ToString(); |
| | | } |
| | |
| | | } |
| | | |
| | | if (userId == bean.UserID) |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{0}-{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | else |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{0}-{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | } |
| | | return stringBuilder.ToString(); |
| | | } |
| | |
| | | } |
| | | |
| | | if (userId == bean.UserID) |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{0}-{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | else |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{0}-{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{1}</option>", (object)bean.UserID, (object)bean.UserName); |
| | | } |
| | | return stringBuilder.ToString(); |
| | | } |
| | |
| | | } |
| | | |
| | | if (productId.Equals(bean.Id)) |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{0}-{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | else |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{0}-{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | } |
| | | return stringBuilder.ToString(); |
| | | } |
| | |
| | | } |
| | | |
| | | if (productId.Equals(bean.Id)) |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{0}-{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | else |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{0}-{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | } |
| | | return stringBuilder.ToString(); |
| | | } |
| | |
| | | //Console.WriteLine("List.............[" + context.GetInt("name") + "][" + context.GetInt("classes") + "]"); |
| | | string spId = context.GetString("spId"); |
| | | string clientId = context.GetString("clientId"); |
| | | string clientName = context.GetString("clientName"); |
| | | string compay = context.GetString("compay"); |
| | | int flag = context.GetInt("flag"); |
| | | DateTime startDate = context.GetDateTime("startDate"); |
| | | DateTime endDate = context.GetDateTime("endDate"); |
| | |
| | | |
| | | string permissionsSQL = new GwClientDao().GetClientPermissions(_userId, _userType, "GWC"); |
| | | |
| | | List<GwOrder> list = _Dao.LoadInfoList(spId, clientId, clientName, flag, startDate, endDate, pageSize, pageIndex, permissionsSQL, out recordCount); |
| | | List<GwOrder> list = _Dao.LoadInfoList(spId, clientId, compay, flag, startDate, endDate, pageSize, pageIndex, permissionsSQL, out recordCount); |
| | | |
| | | string str1 = ""; |
| | | if (list != null && list.Count > 0) |
| | |
| | | //str1 = str1 + "<td>" + bean.ComboId + "</td>"; |
| | | str1 = str1 + "<td>" + bean.BasicNum + "</td>"; |
| | | str1 = str1 + "<td>" + bean.GivingNum + "</td>"; |
| | | str1 = str1 + string.Format("<td>{0}元/条</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000))); |
| | | str1 = str1 + "<td>" + bean.OrderNumTotal + "</td>"; |
| | | str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.PayAmount) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}</td>", (object)(Convert.ToDecimal(bean.PayAmount) / new Decimal(1000))); |
| | | str1 = str1 + "<td>" + bean.BeforeBalanceNum + "</td>"; |
| | | str1 = str1 + "<td>" + bean.Creator + "</td>"; |
| | | str1 = str1 + "<td>" + bean.CreateTime + "</td>"; |
| | |
| | | { |
| | | ++num; |
| | | |
| | | str1 += "<tr><td>" + bean.OrderId + "</td>"; |
| | | str1 = str1 + "<td>" + bean.SpId + "</td>"; |
| | | str1 = str1 + "<td>" + bean.ClientId + "-" + bean.ClientName + "</td>"; |
| | | //str1 += "<tr><td>" + bean.OrderId + "</td>"; |
| | | str1 = str1 + "<tr><td>" + bean.SpId + "</td>"; |
| | | str1 = str1 + "<td>" + bean.ClientId + "</td>"; |
| | | str1 = str1 + "<td>" + bean.Company + "</td>"; |
| | | str1 = str1 + "<td>" + ProductToName(bean.ProductId) + "</td>"; |
| | | //str1 = str1 + "<td>" + bean.ComboId + "</td>"; |
| | | str1 = str1 + "<td>" + bean.BasicNum + "</td>"; |
| | | str1 = str1 + "<td>" + bean.GivingNum + "</td>"; |
| | | str1 = str1 + string.Format("<td>{0}元/条</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000))); |
| | | str1 = str1 + "<td>" + bean.OrderNumTotal + "</td>"; |
| | | str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.PayAmount) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}</td>", (object)(Convert.ToDecimal(bean.PayAmount) / new Decimal(1000))); |
| | | str1 = str1 + "<td>" + bean.BeforeBalanceNum + "</td>"; |
| | | str1 = str1 + "<td>" + bean.Creator + "</td>"; |
| | | str1 = str1 + "<td>" + bean.CreateTime + "</td>"; |
| | |
| | | { |
| | | ++num; |
| | | |
| | | str1 += "<tr><td>" + bean.OrderId + "</td>"; |
| | | //str1 += "<tr><td>" + bean.OrderId + "</td>"; |
| | | str1 = str1 + "<td>" + bean.SpId + "</td>"; |
| | | str1 = str1 + "<td>" + bean.ClientId + "-" + bean.ClientName + "</td>"; |
| | | str1 = str1 + "<td>" + bean.ClientId + "</td>"; |
| | | str1 = str1 + "<td>" + bean.Company + "</td>"; |
| | | str1 = str1 + "<td>" + ProductToName(bean.ProductId) + "</td>"; |
| | | //str1 = str1 + "<td>" + bean.ComboId + "</td>"; |
| | | str1 = str1 + "<td>" + bean.BasicNum + "</td>"; |
| | | str1 = str1 + "<td>" + bean.GivingNum + "</td>"; |
| | | str1 = str1 + string.Format("<td>{0}元/条</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000))); |
| | | str1 = str1 + "<td>" + bean.OrderNumTotal + "</td>"; |
| | | str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.PayAmount) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000))); |
| | | str1 = str1 + string.Format("<td>{0}</td>", (object)(Convert.ToDecimal(bean.PayAmount) / new Decimal(1000))); |
| | | str1 = str1 + "<td>" + bean.BeforeBalanceNum + "</td>"; |
| | | str1 = str1 + "<td>" + bean.Creator + "</td>"; |
| | | str1 = str1 + "<td>" + bean.CreateTime + "</td>"; |
| | | str1 = str1 + "<td>" + StatusToName(bean.Status) + "</td>"; |
| | | //str1 = str1 + "<td>" + bean.Remark + "</td>"; |
| | | |
| | | str1 += "<td class=\"text-right\">"; |
| | | str1 += "<td class=\"text-center\">"; |
| | | str1 += string.Format("<a href=\"javascript:;\" data-orderid=\"{0}\" class=\"action-modal-detail btn btn-success btn-xs\"><i class=\"fa fa-search\"></i> 查看</a> ", (object) bean.OrderId); |
| | | //str1 += string.Format("<a href=\"javascript:;\" data-orderid=\"{0}\" class=\"action-modal-audit btn btn-success btn-xs\"><i class=\"fa fa-search\"></i> 审核</a> ", (object) bean.OrderId); |
| | | //if(bean.Status == 0) { |
| | |
| | | if (classes == -1) |
| | | return string.Empty; |
| | | else if(classes == 0) |
| | | return "0-产品分类"; |
| | | return "产品分类"; |
| | | else if(classes == 1) |
| | | return "1-产品"; |
| | | return "产品"; |
| | | |
| | | return string.Empty; |
| | | } |
| | |
| | | if (isDefault == -1) |
| | | return string.Empty; |
| | | else if(isDefault == 0) |
| | | return "0-个性化"; |
| | | return "个性化"; |
| | | else if(isDefault == 1) |
| | | return "1-系统默认"; |
| | | return "系统默认"; |
| | | |
| | | return string.Empty; |
| | | } |
| | |
| | | if (isEnable == -1) |
| | | return string.Empty; |
| | | else if(isEnable == 0) |
| | | return "0-停用"; |
| | | return "停用"; |
| | | else if(isEnable == 1) |
| | | return "1-启用"; |
| | | return "启用"; |
| | | |
| | | return string.Empty; |
| | | } |
| | |
| | | if (status == -1) |
| | | return string.Empty; |
| | | else if(status == 0) |
| | | return "0-待审核(已提交)"; |
| | | return "待审核(已提交)"; |
| | | else if(status == 1) |
| | | return "1-审核中"; |
| | | return "审核中"; |
| | | else if(status == 2) |
| | | return "2-审核通过"; |
| | | return "审核通过"; |
| | | else if(status == 3) |
| | | return "3-审核不通过"; |
| | | return "审核不通过"; |
| | | else if(status == 4) |
| | | return "4-取消"; |
| | | return "取消"; |
| | | |
| | | return string.Empty; |
| | | } |
| | |
| | | |
| | | function loadPageList() { |
| | | var clientId = $("#ClientId").val(); |
| | | var clientName = $("#ClientName").val(); |
| | | var compay = $("#Compay").val(); |
| | | var spId = $("#SpId").val(); |
| | | var startDate = $("#StartTime").val(); |
| | | var endDate = $("#EndTime").val(); |
| | | $.ajax({ |
| | | url: "GwOrder.ashx", |
| | | type: "POST", |
| | | data: { action: "listAudit", clientId: clientId, clientName: clientName, spId: spId, startDate: startDate, endDate: endDate, flag: 0, pageIndex: pagination.getPageIndex(), pageSize: pagination.getPageSize() }, |
| | | data: { action: "listAudit", clientId: clientId, compay: compay, spId: spId, startDate: startDate, endDate: endDate, flag: 0, pageIndex: pagination.getPageIndex(), pageSize: pagination.getPageSize() }, |
| | | success: function (result) { |
| | | if (result.OK) { |
| | | $("#orderTable tbody").html(result.Message.Table); |
| | |
| | | </div> |
| | | <div class="form-group"> |
| | | <div class="input-group m-b"> |
| | | <span class="input-group-addon">客户名称</span> |
| | | <input type="text" name="ClientName" id="ClientName" class="form-control col-md-2" /> |
| | | <span class="input-group-addon">公司名称</span> |
| | | <input type="text" name="Compay" id="Compay" class="form-control col-md-2" /> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | |
| | | <table class="table table-striped table-bordered table-hover" id="orderTable"> |
| | | <thead> |
| | | <tr class="header"> |
| | | <!-- |
| | | <th>订单ID |
| | | </th> |
| | | <th>账号ID |
| | | --> |
| | | <th>短信账号 |
| | | </th> |
| | | <th>客户ID |
| | | <th>客户账号 |
| | | </th> |
| | | <th>产品ID |
| | | <th>公司名称 |
| | | </th> |
| | | <th>产品名称 |
| | | </th> |
| | | <%--<th>套餐ID |
| | | </th> |
| | | --%> |
| | | <th>订单基本条数 |
| | | <th>订单基本条数(条) |
| | | </th> |
| | | <th>订单赠送条数 |
| | | <th>订单赠送条数(条) |
| | | </th> |
| | | <th>单价(元/条) |
| | | </th> |
| | | <th>订单总条数 |
| | | <th>订单总条数(条) |
| | | </th> |
| | | <th>订单总金额(元) |
| | | </th> |
| | |
| | | </th> |
| | | <th>状态 |
| | | </th> |
| | | <th class="text-right">操作 |
| | | <th class="text-center">操作 |
| | | </th> |
| | | </tr> |
| | | </thead> |
| | |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label"> |
| | | 账号ID</label> |
| | | 短信账号</label> |
| | | <div class="col-sm-4 "> |
| | | <input type="text" class="form-control" name="spId" id="spId" value="" /> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label"> |
| | | 客户ID</label> |
| | | 客户账号</label> |
| | | <div class="col-sm-4 "> |
| | | <select name="clientId" id="clientId" class="form-control"> |
| | | <%=GetClientOptions("0")%> |
| | |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label"> |
| | | 产品ID</label> |
| | | 产品名称</label> |
| | | <div class="col-sm-4 "> |
| | | <select name="productId" id="productId" class="form-control"> |
| | | <%=GetProductOptions("0")%> |
| | |
| | | |
| | | function loadPageList() { |
| | | var clientId = $("#ClientId").val(); |
| | | var clientName = $("#ClientName").val(); |
| | | var compay = $("#Compay").val(); |
| | | var spId = $("#SpId").val(); |
| | | var startDate = $("#StartTime").val(); |
| | | var endDate = $("#EndTime").val(); |
| | | $.ajax({ |
| | | url: "GwOrder.ashx", |
| | | type: "POST", |
| | | data: { action: "listComplete", clientId: clientId, clientName: clientName, spId: spId, startDate: startDate, endDate: endDate, flag: 1, pageIndex: pagination.getPageIndex(), pageSize: pagination.getPageSize() }, |
| | | data: { action: "listComplete", clientId: clientId, compay: compay, spId: spId, startDate: startDate, endDate: endDate, flag: 1, pageIndex: pagination.getPageIndex(), pageSize: pagination.getPageSize() }, |
| | | success: function(result) { |
| | | if (result.OK) { |
| | | $("#orderTable tbody").html(result.Message.Table); |
| | |
| | | </div> |
| | | <div class="form-group"> |
| | | <div class="input-group m-b"> |
| | | <span class="input-group-addon">客户名称</span> |
| | | <input type="text" name="ClientName" id="ClientName" class="form-control col-md-2" /> |
| | | <span class="input-group-addon">公司名称</span> |
| | | <input type="text" name="Compay" id="Compay" class="form-control col-md-2" /> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <div class="input-group m-b"> |
| | | <span class="input-group-addon">SP账号</span> |
| | | <span class="input-group-addon">短信账号</span> |
| | | <input type="text" name="SpId" id="SpId" class="form-control col-md-2" /> |
| | | </div> |
| | | </div> |
| | |
| | | <table class="table table-striped table-bordered table-hover" id="orderTable"> |
| | | <thead> |
| | | <tr class="header"> |
| | | <!-- |
| | | <th>订单ID |
| | | </th> |
| | | <th>账号ID |
| | | --> |
| | | <th>短信账号 |
| | | </th> |
| | | <th>客户ID |
| | | <th>客户账号 |
| | | </th> |
| | | <th>产品ID |
| | | <th>公司名称 |
| | | </th> |
| | | <th>产品名称 |
| | | </th> |
| | | <%--<th>套餐ID |
| | | </th> |
| | | --%> |
| | | <th>订单基本条数 |
| | | <th>订单基本条数(条) |
| | | </th> |
| | | <th>订单赠送条数 |
| | | <th>订单赠送条数(条) |
| | | </th> |
| | | <th>单价(元/条) |
| | | </th> |
| | | <th>订单总条数 |
| | | <th>订单总条数(条) |
| | | </th> |
| | | <th>订单总金额(元) |
| | | </th> |
| | |
| | | </th> |
| | | <th>状态 |
| | | </th> |
| | | <th class="text-right">操作 |
| | | <th class="text-center">操作 |
| | | </th> |
| | | </tr> |
| | | </thead> |
| | |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label"> |
| | | 账号ID</label> |
| | | 短信账号</label> |
| | | <div class="col-sm-4 "> |
| | | <input type="text" class="form-control" name="spId" id="spId" value="" /> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label"> |
| | | 客户ID</label> |
| | | 客户账号</label> |
| | | <div class="col-sm-4 "> |
| | | <select name="clientId" id="clientId" class="form-control"> |
| | | <%=GetClientOptions("0")%> |
| | |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label"> |
| | | 产品ID</label> |
| | | 产品名称</label> |
| | | <div class="col-sm-4 "> |
| | | <select name="productId" id="productId" class="form-control"> |
| | | <%=GetProductOptions("0")%> |
| | |
| | | //str1 = str1 + "<td>" + (object)this.ClassesToName(bean.Classes) + "</td>"; |
| | | if (bean.RouterType == 1) |
| | | { |
| | | str1 += "<td rowspan=\"1\"><div class=\"btn btn-primary btn-xs\">点路由</div>"; |
| | | str1 += "<td rowspan=\"1\"><span class='label label-primary'>通道</span>"; |
| | | str1 += string.Format("<div>移动:{0}</div><div>电信:{1}</div><div>联通:{2}</div>", (object)this.GetOpName(bean.CmOpId), (object)this.GetOpName(bean.CtOpId), (object)this.GetOpName(bean.CuOpId)); |
| | | } |
| | | else if (bean.RouterType == 3) |
| | | { |
| | | str1 += "<td rowspan=\"1\"><div class=\"btn btn-success btn-xs\">组路由</div>"; |
| | | str1 += "<td rowspan=\"1\"><span class='label label-success'>通道组</span>"; |
| | | str1 += string.Format("<div>移动:{0}</div><div>电信:{1}</div><div>联通:{2}</div>", (object)this.GetGroupName(bean.CmGroupid), (object)this.GetGroupName(bean.CtGroupid), (object)this.GetGroupName(bean.CuGroupid)); |
| | | } |
| | | else |
| | |
| | | "</td>" |
| | | }); |
| | | |
| | | str1 += string.Format("<td>{0}元/条</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000))); |
| | | str1 += string.Format("<td>{0}</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000))); |
| | | str1 = str1 + "<td>" + bean.CreateTime + "</td>"; |
| | | str1 = string.Concat(new object[4] |
| | | { |
| | |
| | | bean.Instructions, |
| | | "</td>" |
| | | }); |
| | | str1 += "<td class=\"text-right\">"; |
| | | str1 += "<td class=\"text-center \">"; |
| | | str1 = bean.IsEnable != 0 ? str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-is_enable=\"0\" class=\"action-update-status btn btn-primary btn-xs\"><i class=\"fa fa-toggle-off\"></i> 停用</a> ", (object) bean.Id ) : str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-is_enable=\"1\" class=\"action-update-status btn btn-default btn-xs\"><i class=\"fa fa-toggle-on\"/></i> 启用</a> ", (object) bean.Id ); |
| | | str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-modal-edit btn btn-success btn-xs\"><i class=\"fa fa-edit\"></i> 编辑</a> ", (object) bean.Id); |
| | | str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-delete btn btn-default btn-xs\"><i class=\"fa fa-trash\"></i> 删除</a> ", (object) bean.Id); |
| | |
| | | str1 = str1 + "<td>" + bean.CreateTime + "</td>"; |
| | | str1 = str1 + "<td>" + bean.Remark + "</td>"; |
| | | |
| | | str1 += "<td class=\"text-right\">"; |
| | | str1 += "<td class=\"text-center\">"; |
| | | str1 = bean.IsEnable != 0 ? str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-is_enable=\"0\" class=\"action-update-status btn btn-primary btn-xs\"><i class=\"fa fa-toggle-off\"></i> 停用</a> ", (object) bean.Id ) : str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-is_enable=\"1\" class=\"action-update-status btn btn-default btn-xs\"><i class=\"fa fa-toggle-on\"/></i> 启用</a> ", (object) bean.Id ); |
| | | str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-modal-edit btn btn-success btn-xs\"><i class=\"fa fa-edit\"></i> 编辑</a> ", (object) bean.Id); |
| | | str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-delete btn btn-default btn-xs\"><i class=\"fa fa-trash\"></i> 删除</a> ", (object) bean.Id); |
| | |
| | | if (classes == -1) |
| | | return string.Empty; |
| | | else if(classes == 0) |
| | | return "0-产品分类"; |
| | | return "产品分类"; |
| | | else if(classes == 1) |
| | | return "1-产品"; |
| | | return "产品"; |
| | | |
| | | return string.Empty; |
| | | } |
| | |
| | | if (isDefault == -1) |
| | | return string.Empty; |
| | | else if(isDefault == 0) |
| | | return "0-个性化"; |
| | | return "<span class='label label-warning'>个性化</span>"; |
| | | else if(isDefault == 1) |
| | | return "1-系统默认"; |
| | | return "<span class='label label-success'>系统默认</span>"; |
| | | |
| | | return string.Empty; |
| | | } |
| | |
| | | if (isEnable == -1) |
| | | return string.Empty; |
| | | else if(isEnable == 0) |
| | | return "0-停用"; |
| | | return "<span class='label label-default'>已停用</span>"; |
| | | else if(isEnable == 1) |
| | | return "1-启用"; |
| | | return "<span class='label label-primary'>已启用</span>"; |
| | | |
| | | return string.Empty; |
| | | } |
| | |
| | | //data的属性参数不能含有大写字母。 |
| | | var id = $(this).data("id"); |
| | | var isEnable = $(this).data("is_enable"); |
| | | $.post("gwProduct.ashx", { "action": "updateStatus", id: id, isEnable: isEnable }, function (r) { |
| | | mytek.alert(r.Message, r.OK, function () { |
| | | loadPageList(); |
| | | }); |
| | | var statusStr = ""; |
| | | if (isEnable == 0) { |
| | | statusStr = "【停用】"; |
| | | } |
| | | else { |
| | | statusStr = "【启用】"; |
| | | } |
| | | mytek.confirm("是否需要" + statusStr + "该信息?", "确认更新信息状态,请谨慎操作!", function (b) { |
| | | if (b) { |
| | | $.post("gwProduct.ashx", { "action": "updateStatus", id: id, isEnable: isEnable }, function (r) { |
| | | mytek.alert(r.Message, r.OK, function () { |
| | | loadPageList(); |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | |
| | | </th> |
| | | <th>产品类别 |
| | | </th> |
| | | <th>名称 |
| | | <th>产品名称 |
| | | </th> |
| | | <!-- |
| | | <th>类别 |
| | | </th> |
| | | --> |
| | | <th>通道 |
| | | <th>通道或通道组 |
| | | </th> |
| | | <th>是否默认 |
| | | </th> |
| | |
| | | --> |
| | | <th>赠送条数 |
| | | </th> |
| | | <th>参考单价 |
| | | <th>参考单价(元/条) |
| | | </th> |
| | | <th>创建时间 |
| | | </th> |
| | | <th>使用说明 |
| | | </th> |
| | | <th class="text-right">操作 |
| | | <th class="text-center">操作 |
| | | </th> |
| | | </tr> |
| | | </thead> |
| | |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label"> |
| | | 父级分类ID</label> |
| | | 父级分类</label> |
| | | <div class="col-sm-4 "> |
| | | <select name="parentId" id="parentId" class="form-control"> |
| | | <%=GetProductClassOptions("0")%> |
| | |
| | | <label class="col-sm-2 control-label"> |
| | | 排序</label> |
| | | <div class="col-sm-4"> |
| | | <div class="input-group"> |
| | | <input type="text" class="form-control" name="sort" id="sort" value="" |
| | | maxlength="5" onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" /> |
| | | </div> |
| | | <input type="text" class="form-control" name="sort" id="sort" value="" |
| | | maxlength="5" onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" /> |
| | | </div> |
| | | </div> |
| | | <div class="form-group classes-span classes-span-1"> |
| | | <label class="col-sm-2 control-label"> |
| | | 通道路由</label> |
| | | <div class="col-sm-10"> |
| | | <select name="RouterType" id="RouterType"> |
| | | <div class="col-sm-4"> |
| | | <select name="RouterType" id="RouterType" class="form-control"> |
| | | <option value="1" >指定通道路由</option> |
| | | <option value="3" >通道组路由模式</option> |
| | | </select> |
| | |
| | | |
| | | <div class="router-type-span router-type-span-1"> |
| | | <div style="padding: 5px"> |
| | | 移动:<select name="cmOpId" id="cmOpId"> |
| | | 移动:<select name="cmOpId" id="cmOpId" > |
| | | <%=GetOpOptions(0)%> |
| | | </select> 扩展参数:<input type="text" name="cmExtParams" id="cmExtParams" maxlength="600" |
| | | </select> |
| | | <!-- |
| | | 扩展参数:<input type="text" name="cmExtParams" id="cmExtParams" maxlength="600" |
| | | value="" style="width: 50%;" placeholder="移动扩展参数" /> |
| | | --> |
| | | </div> |
| | | <div style="padding: 5px"> |
| | | 联通:<select name="cuOpId" id="cuOpId"> |
| | | 联通:<select name="cuOpId" id="cuOpId" > |
| | | <%=GetOpOptions(0)%> |
| | | </select> 扩展参数:<input type="text" name="cuExtParams" id="cuExtParams" maxlength="600" |
| | | </select> |
| | | <!-- |
| | | 扩展参数:<input type="text" name="cuExtParams" id="cuExtParams" maxlength="600" |
| | | value="" style="width: 50%;" placeholder="联通扩展参数" /> |
| | | --> |
| | | </div> |
| | | <div style="padding: 5px"> |
| | | 电信:<select name="ctOpId" id="ctOpId"> |
| | | 电信:<select name="ctOpId" id="ctOpId" > |
| | | <%=GetOpOptions(0)%> |
| | | </select> 扩展参数:<input type="text" name="ctExtParams" id="ctExtParams" maxlength="600" |
| | | </select> |
| | | <!-- |
| | | 扩展参数:<input type="text" name="ctExtParams" id="ctExtParams" maxlength="600" |
| | | value="" style="width: 50%;" placeholder="电信扩展参数" /> |
| | | --> |
| | | </div> |
| | | <!-- |
| | | <span class="help-block m-b-none">CMPP2.0,CMPP3.0协议支持扩展参数有:SERVICEID(服务代码/业务代码(最长10位)),FEECODE(费用代码(最长6位)),FEETYPE(费用类型),FEEUSERTYPE,FEETERMINALID(计费号码) |
| | | SGIP支持扩展参数有:SERVICETYPE(业务代码(最长10位)),CHARGENUMBER(计费号码(最长21位)),FEEVALUE(收费值(最长6位)),GIVENVALUE,NODEID(节点(最长6位)),CONNTIMEOUT(连接超时) |
| | | SMGP支持扩展参数有:SERVICEID(服务代码/业务代码(最长10位)),FIXEDFEE(包月费/封顶费(最长6位)),FEECODE(费用代码/资费代码(最大6位));</span> |
| | | --> |
| | | </div> |
| | | <div class="router-type-span router-type-span-3"> |
| | | <div style="padding: 5px"> |
| | |
| | | 参考单价</label> |
| | | <div class="col-sm-4"> |
| | | <div class="input-group"> |
| | | <input type="text" class="form-control" name="price" id="price" value="" maxlength="5" |
| | | <input type="text" class="form-control" name="price" id="price" value="" maxlength="10" |
| | | onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')" |
| | | oncontextmenu="return false" /><span class="input-group-addon">元/条 </span> |
| | | </div> |
| | |
| | | 默认赠送条数</label> |
| | | <div class="col-sm-4"> |
| | | <div class="input-group"> |
| | | <input type="text" class="form-control" name="givingNum" id="givingNum" value="" maxlength="5" |
| | | <input type="text" class="form-control" name="givingNum" id="givingNum" value="" maxlength="10" |
| | | onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')" |
| | | oncontextmenu="return false" /><span class="input-group-addon">条 </span> |
| | | </div> |
| | |
| | | <div class="form-group"> |
| | | <label class="col-sm-2 control-label"> |
| | | 备注</label> |
| | | <div class="col-sm-10 input-group m-b"> |
| | | <input type="text" class="form-control" name="remark" id="remark" value="" /> |
| | | <div class="col-sm-4"> |
| | | <textarea class="form-control" name="remark" id="remark" rows="4" ></textarea> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | } |
| | | |
| | | if (productId.Equals(bean.Id) ) |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{0}-{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\" selected>{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | else |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{0}-{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | stringBuilder.AppendFormat("<option value=\"{0}\">{1}</option>", (object)bean.Id, (object)bean.Name); |
| | | } |
| | | return stringBuilder.ToString(); |
| | | } |
| | |
| | | if (idArray.length == 0) { |
| | | idArray.push(patternID); |
| | | if (idArray.length == 0) { |
| | | mytek.alert("请选择要修改的账号!", false); |
| | | mytek.alert("请选择要修改的短信账号!", false); |
| | | return; |
| | | } |
| | | } |
| | |
| | | <div class="listCanvas"> |
| | | <div class="ibox"> |
| | | <div class="input-group m-b"> |
| | | <span class="input-group-addon">客户ID</span> |
| | | <span class="input-group-addon">客户账号</span> |
| | | <input type="text" name="ClientID" id="ClientID" class="form-control col-md-2" /> |
| | | </div> |
| | | <div class="input-group m-b"> |
| | | <span class="input-group-addon">SPID</span> |
| | | <span class="input-group-addon">短信账号</span> |
| | | <input type="text" name="SpID" id="SpID" class="form-control col-md-2" /> |
| | | </div> |
| | | <div class="input-group m-b"> |
| | |
| | | <input type="checkbox" name="check-all-row" id="check-all-row" value="" /> |
| | | </th> |
| | | <th class="col-md-1"> |
| | | 客户ID |
| | | 客户账号 |
| | | </th> |
| | | <th class="col-md-1"> |
| | | SPID |
| | | 短信账号 |
| | | </th> |
| | | <th class="col-md-5"> |
| | | 报备内容 |
| | |
| | | <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GwStatisProfit.aspx.cs" Inherits="_GwStatisProfit" %>
|
| | |
|
| | | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
| | | <html xmlns="http://www.w3.org/1999/xhtml">
|
| | | <head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
| | | <meta name="renderer" content="webkit" />
|
| | | <meta http-equiv="Cache-Control" content="no-siteapp" />
|
| | | <title>利润统计</title>
|
| | | <!--[if lt IE 9]>
|
| | | <meta http-equiv="refresh" content="0;ie.html" />
|
| | | <![endif]-->
|
| | | <link rel="shortcut icon" href="favicon.ico" />
|
| | | <link href="css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet" />
|
| | | <link href="css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet" />
|
| | | <link href="css/plugins/iCheck/custom.css" rel="stylesheet" />
|
| | | <link href="css/animate.min.css" rel="stylesheet" />
|
| | | <link href="css/style.min862f.css?v=4.1.0" rel="stylesheet" />
|
| | | <link href="css/plugins/sweetalert/sweetalert.css" rel="stylesheet" />
|
| | | <link href="css/plugins/datapicker/datepicker3.css" rel="stylesheet" />
|
| | | <link href="css/jquery.numberedtextarea.css" rel="stylesheet" />
|
| | | <script src="js/loading.js" type="text/javascript"></script>
|
| | | <script src="js/jquery.min.js?v=2.1.4"></script>
|
| | | <script src="js/json.js"></script>
|
| | | <script src="js/bootstrap.min.js?v=3.3.6"></script>
|
| | | <script src="js/content.min.js?v=1.0.0"></script>
|
| | | <script src="js/plugins/iCheck/icheck.min.js"></script>
|
| | | <script src="js/plugins/sweetalert/sweetalert.min.js"></script>
|
| | | <script src="js/plugins/datapicker/bootstrap-datepicker.js"></script>
|
| | | <script type="text/javascript" src="/js/jquery-loading.js"></script>
|
| | | <script type="text/javascript" src="/js/jquery-form.js"></script>
|
| | | <script type="text/javascript" src="/js/jquery.numberedtextarea.js"></script>
|
| | | <script type="text/javascript" src="/js/mytek-pager.js"></script>
|
| | | <script src="js/mytek-pagination.js?r=11" type="text/javascript"></script>
|
| | | <style>
|
| | | body { font-size: 12px; color: #111111; }
|
| | | .mask { position: absolute; top: 0px; filter: alpha(opacity=60); background-color: #777; z-index: 1002; left: 0px; opacity: 0.5; -moz-opacity: 0.5; text-align: center; display: none; }
|
| | | .mask span { height: 70%; display: inline-block; vertical-align: middle; }
|
| | | .mask span img { vertical-align: middle; }
|
| | | </style>
|
| | | <script>
|
| | | (function ($) {
|
| | | $.ajaxBak = $.ajax;
|
| | |
|
| | | $.ajax = function (options) {
|
| | | options.timeout = 300000;
|
| | | options.url = options.url + (options.url.indexOf("?") > 0 ? "&" : "?") + "r=" + Math.random();
|
| | |
|
| | | options.complete = function (e) {
|
| | | $("body").hideLoading();
|
| | | }
|
| | |
|
| | | if (options.showloading !== false) {
|
| | | $("body").showLoading();
|
| | | }
|
| | |
|
| | | try {
|
| | | return $.ajaxBak.call(this, options);
|
| | | } catch (e) {
|
| | | if (options.showloading !== false) {
|
| | | $("body").hideLoading();
|
| | | }
|
| | | }
|
| | | return this;
|
| | | }
|
| | | })(jQuery);
|
| | |
|
| | | $(document).ready(function(){
|
| | | $(".icheck-me").iCheck({checkboxClass:"icheckbox_square-green",radioClass:"iradio_square-green",});
|
| | | $(".input-group.date").datepicker({todayBtn:"linked",keyboardNavigation:!1,forceParse:!1,calendarWeeks:!0,autoclose:!0});
|
| | | $("[data-toggle='tooltip']").tooltip();
|
| | | $("[data-toggle=popover]").popover()
|
| | | });
|
| | | </script>
|
| | | |
| | | <script type="text/javascript">
|
| | | $(function () {
|
| | |
|
| | | $(".action-query").on("click", function () {
|
| | | var clientid = $("#clientid").val();
|
| | | var spid = $("#spid").val();
|
| | | var apid = $("#apid").val();
|
| | | var opid = $("#opid").val();
|
| | | var begintime = $("#begintime").val();
|
| | | var endtime = $("#endtime").val();
|
| | | var statistype = $("#statistype").val();
|
| | |
|
| | | var statisoption = 0;
|
| | |
|
| | | $(".statusoption").each(function () {
|
| | | var me = $(this);
|
| | | if (me.is(":checked"))
|
| | | statisoption += parseInt(me.val());
|
| | | });
|
| | |
|
| | | $.post("GwStatisProfit.ashx", {action: "loadStatisProfit",
|
| | | clientid: clientid, spid: spid, apid: apid, opid: opid, statistype: statistype, statisoption: statisoption, begintime: begintime, endtime: endtime
|
| | | }, function (result) {
|
| | | if (!result.OK)
|
| | | alert(result.Message);
|
| | | else {
|
| | | $("#resultTable").html(result.Message);
|
| | | }
|
| | | }, "json");
|
| | | });
|
| | | });
|
| | | </script>
|
| | | </head>
|
| | | <body class="white-bg">
|
| | | |
| | | <div class="wrapper wrapper-content table-responsive">
|
| | | |
| | | <div class="searchCanvas form-inline">
|
| | | <div class="ibox">
|
| | | <div class="form-group ">
|
| | | <div class="input-group m-b">
|
| | | <span class="input-group-addon">通道</span>
|
| | | <select name="opid" id="opid" class="form-control"> |
| | | <%=this.GenerateOPIDOptions()%>
|
| | | </select>
|
| | | </div>
|
| | | </div>
|
| | | <div class="form-group ">
|
| | | <div class="input-group m-b">
|
| | | <span class="input-group-addon">帐号</span>
|
| | | <select name="spid" id="spid" class="form-control">
|
| | | <%=this.GenerateSpIDOptions()%>
|
| | | </select>
|
| | | </div>
|
| | | </div>
|
| | | <div class="form-group ">
|
| | | <div class="input-group m-b">
|
| | | <span class="input-group-addon">报表类型</span>
|
| | | <select name="statistype" id="statistype" class="form-control">
|
| | | |
| | | |
| | | <% |
| | | __w.Write("<option value='YYYY\"年\"MM\"月\"DD\"日\' ");
|
| | | __w.Write(this.StatisType == "YYYY\"年\"MM\"月\"DD\"日\"" ? "selected" : "");
|
| | | __w.Write(">\r\n 日报表</option>\r\n <option value='YYYY\"年\"MM\"月\"' ");
|
| | | __w.Write(this.StatisType == "YYYY\"年\"MM\"月\"" ? "selected" : "");
|
| | | __w.Write(">\r\n 月报表</option>\r\n <option value='YYYY\"年第\"WW\"周\"' ");
|
| | | __w.Write(this.StatisType == "YYYY\"年第\"WW\"周\"" ? "selected" : "");
|
| | | __w.Write(">\r\n 周报表</option>\r\n "); |
| | | |
| | | %> |
| | | |
| | | |
| | | <%-- <option value='YYYY"年"MM"月"DD"日"' >
|
| | | 日报表</option>
|
| | | <option value='YYYY"年"MM"月"' >
|
| | | 月报表</option>
|
| | | <option value='YYYY"年第"WW"周"' >
|
| | | 周报表</option> --%>
|
| | | |
| | | |
| | | </select>
|
| | | </div>
|
| | | </div> |
| | | <div class="input-group m-b" style="margin-bottom: 0px;">
|
| | | <div class="input-group date m-b">
|
| | | <span class="input-group-addon">时间范围 <i class="fa fa-calendar"></i></span>
|
| | | <input type="text" class="input-sm form-control" name="begintime" id="begintime"
|
| | | value="<%=this.StartTime.ToString("yyyy-MM-dd")%>" />
|
| | | <span class="input-group-addon">到</span>
|
| | | </div>
|
| | | <div class=" input-group date m-b" style="margin-left: -4px;">
|
| | | <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
| | | <input type="text" class="input-sm form-control" name="endtime" id="endtime" value="<%=this.EndTime.ToString("yyyy-MM-dd")%>" />
|
| | | </div>
|
| | | </div>
|
| | | <div class="form-group ">
|
| | | <div class="input-group m-b">
|
| | | |
| | | |
| | | <%
|
| | | |
| | | __w.Write("<input type=\"checkbox\" class=\"statusoption icheck-me\" data-color=\"blue\" data-skin=\"minimal\"\r\n name=\"StatisOption\" value=\"2\" ");
|
| | | __w.Write((this.SelectedOptions & Dao.StatisOption.OPID) == Dao.StatisOption.OPID ? "checked" : "");
|
| | | __w.Write(" />\r\n 通道\r\n <input type=\"checkbox\" class=\"statusoption icheck-me\" data-color=\"blue\" data-skin=\"minimal\"\r\n name=\"StatisOption\" value=\"4\" ");
|
| | | __w.Write((this.SelectedOptions & Dao.StatisOption.SpID) == Dao.StatisOption.SpID ? "checked" : "");
|
| | | __w.Write(" />\r\n 账号\r\n "); |
| | | |
| | | %> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | </div>
|
| | | </div>
|
| | | <div class="form-group ">
|
| | | <div class="input-group m-b">
|
| | | <input type="button" value="查询" class="btn-primary btn action-query " />
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="table-responsive">
|
| | | <table class="table table-striped table-bordered table-hover" id="resultTable">
|
| | | </table>
|
| | | </div>
|
| | | <div>
|
| | | <h4>
|
| | | 统计说明</h4>
|
| | | <ul>
|
| | | <li class="text-info">业务统计为非实时统计,由后台进程每2小时统计一次。</li>
|
| | | <li>AP接收总费用:代理商提交到网关的计费总数;</li>
|
| | | <li>AP成功费用:代理商提交成功到网关的计费总数;</li> |
| | | <li>OP提交总费用:此网关提交到运营商通道的计费总数;</li>
|
| | | <li>OP成功费用:此网关提交成功到运营商通道的计费总数;</li>
|
| | | <li>毛利润:AP接收总费用与OP提交总费用之间的差值;</li>
|
| | | <li>净利润:AP成功费用与OP成功费用之间的差值;</li>
|
| | | </ul>
|
| | | </div>
|
| | |
|
| | | <div id="mask" class="mask">
|
| | | <span></span>
|
| | | <img src="img/spinning-circles.svg" alt="载入中..." /></div>
|
| | | </div>
|
| | | </body>
|
| | | </html>
|
| | | <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GwStatisProfit.aspx.cs" Inherits="_GwStatisProfit" %> |
| | | |
| | | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| | | <html xmlns="http://www.w3.org/1999/xhtml"> |
| | | <head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" /> |
| | | <meta name="renderer" content="webkit" /> |
| | | <meta http-equiv="Cache-Control" content="no-siteapp" /> |
| | | <title>利润统计</title> |
| | | <!--[if lt IE 9]> |
| | | <meta http-equiv="refresh" content="0;ie.html" /> |
| | | <![endif]--> |
| | | <link rel="shortcut icon" href="favicon.ico" /> |
| | | <link href="css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet" /> |
| | | <link href="css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet" /> |
| | | <link href="css/plugins/iCheck/custom.css" rel="stylesheet" /> |
| | | <link href="css/animate.min.css" rel="stylesheet" /> |
| | | <link href="css/style.min862f.css?v=4.1.0" rel="stylesheet" /> |
| | | <link href="css/plugins/sweetalert/sweetalert.css" rel="stylesheet" /> |
| | | <link href="css/plugins/datapicker/datepicker3.css" rel="stylesheet" /> |
| | | <link href="css/jquery.numberedtextarea.css" rel="stylesheet" /> |
| | | <script src="js/loading.js" type="text/javascript"></script> |
| | | <script src="js/jquery.min.js?v=2.1.4"></script> |
| | | <script src="js/json.js"></script> |
| | | <script src="js/bootstrap.min.js?v=3.3.6"></script> |
| | | <script src="js/content.min.js?v=1.0.0"></script> |
| | | <script src="js/plugins/iCheck/icheck.min.js"></script> |
| | | <script src="js/plugins/sweetalert/sweetalert.min.js"></script> |
| | | <script src="js/plugins/datapicker/bootstrap-datepicker.js"></script> |
| | | <script type="text/javascript" src="/js/jquery-loading.js"></script> |
| | | <script type="text/javascript" src="/js/jquery-form.js"></script> |
| | | <script type="text/javascript" src="/js/jquery.numberedtextarea.js"></script> |
| | | <script type="text/javascript" src="/js/mytek-pager.js"></script> |
| | | <script src="js/mytek-pagination.js?r=11" type="text/javascript"></script> |
| | | <style> |
| | | body { font-size: 12px; color: #111111; } |
| | | .mask { position: absolute; top: 0px; filter: alpha(opacity=60); background-color: #777; z-index: 1002; left: 0px; opacity: 0.5; -moz-opacity: 0.5; text-align: center; display: none; } |
| | | .mask span { height: 70%; display: inline-block; vertical-align: middle; } |
| | | .mask span img { vertical-align: middle; } |
| | | </style> |
| | | <script> |
| | | (function ($) { |
| | | $.ajaxBak = $.ajax; |
| | | |
| | | $.ajax = function (options) { |
| | | options.timeout = 300000; |
| | | options.url = options.url + (options.url.indexOf("?") > 0 ? "&" : "?") + "r=" + Math.random(); |
| | | |
| | | options.complete = function (e) { |
| | | $("body").hideLoading(); |
| | | } |
| | | |
| | | if (options.showloading !== false) { |
| | | $("body").showLoading(); |
| | | } |
| | | |
| | | try { |
| | | return $.ajaxBak.call(this, options); |
| | | } catch (e) { |
| | | if (options.showloading !== false) { |
| | | $("body").hideLoading(); |
| | | } |
| | | } |
| | | return this; |
| | | } |
| | | })(jQuery); |
| | | |
| | | $(document).ready(function(){ |
| | | $(".icheck-me").iCheck({checkboxClass:"icheckbox_square-green",radioClass:"iradio_square-green",}); |
| | | $(".input-group.date").datepicker({todayBtn:"linked",keyboardNavigation:!1,forceParse:!1,calendarWeeks:!0,autoclose:!0}); |
| | | $("[data-toggle='tooltip']").tooltip(); |
| | | $("[data-toggle=popover]").popover() |
| | | }); |
| | | </script> |
| | | |
| | | <script type="text/javascript"> |
| | | $(function () { |
| | | |
| | | $(".action-query").on("click", function () { |
| | | var clientid = $("#clientid").val(); |
| | | var spid = $("#spid").val(); |
| | | var apid = $("#apid").val(); |
| | | var opid = $("#opid").val(); |
| | | var begintime = $("#begintime").val(); |
| | | var endtime = $("#endtime").val(); |
| | | var statistype = $("#statistype").val(); |
| | | |
| | | var statisoption = 0; |
| | | |
| | | $(".statusoption").each(function () { |
| | | var me = $(this); |
| | | if (me.is(":checked")) |
| | | statisoption += parseInt(me.val()); |
| | | }); |
| | | |
| | | $.post("GwStatisProfit.ashx", {action: "loadStatisProfit", |
| | | clientid: clientid, spid: spid, apid: apid, opid: opid, statistype: statistype, statisoption: statisoption, begintime: begintime, endtime: endtime |
| | | }, function (result) { |
| | | if (!result.OK) |
| | | alert(result.Message); |
| | | else { |
| | | $("#resultTable").html(result.Message); |
| | | } |
| | | }, "json"); |
| | | }); |
| | | }); |
| | | </script> |
| | | </head> |
| | | <body class="white-bg"> |
| | | |
| | | <div class="wrapper wrapper-content table-responsive"> |
| | | |
| | | <div class="searchCanvas form-inline"> |
| | | <div class="ibox"> |
| | | <div class="form-group "> |
| | | <div class="input-group m-b"> |
| | | <span class="input-group-addon">通道</span> |
| | | <select name="opid" id="opid" class="form-control"> |
| | | <%=this.GenerateOPIDOptions()%> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="form-group "> |
| | | <div class="input-group m-b"> |
| | | <span class="input-group-addon">帐号</span> |
| | | <select name="spid" id="spid" class="form-control"> |
| | | <%=this.GenerateSpIDOptions()%> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="form-group "> |
| | | <div class="input-group m-b"> |
| | | <span class="input-group-addon">报表类型</span> |
| | | <select name="statistype" id="statistype" class="form-control"> |
| | | |
| | | |
| | | <% |
| | | __w.Write("<option value='YYYY\"年\"MM\"月\"DD\"日\' "); |
| | | __w.Write(this.StatisType == "YYYY\"年\"MM\"月\"DD\"日\"" ? "selected" : ""); |
| | | __w.Write(">\r\n 日报表</option>\r\n <option value='YYYY\"年\"MM\"月\"' "); |
| | | __w.Write(this.StatisType == "YYYY\"年\"MM\"月\"" ? "selected" : ""); |
| | | __w.Write(">\r\n 月报表</option>\r\n <option value='YYYY\"年第\"WW\"周\"' "); |
| | | __w.Write(this.StatisType == "YYYY\"年第\"WW\"周\"" ? "selected" : ""); |
| | | __w.Write(">\r\n 周报表</option>\r\n "); |
| | | |
| | | %> |
| | | |
| | | |
| | | <%-- <option value='YYYY"年"MM"月"DD"日"' > |
| | | 日报表</option> |
| | | <option value='YYYY"年"MM"月"' > |
| | | 月报表</option> |
| | | <option value='YYYY"年第"WW"周"' > |
| | | 周报表</option> --%> |
| | | |
| | | |
| | | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="input-group m-b" style="margin-bottom: 0px;"> |
| | | <div class="input-group date m-b"> |
| | | <span class="input-group-addon">时间范围 <i class="fa fa-calendar"></i></span> |
| | | <input type="text" class="input-sm form-control" name="begintime" id="begintime" |
| | | value="<%=this.StartTime.ToString("yyyy-MM-dd")%>" /> |
| | | <span class="input-group-addon">到</span> |
| | | </div> |
| | | <div class=" input-group date m-b" style="margin-left: -4px;"> |
| | | <span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
| | | <input type="text" class="input-sm form-control" name="endtime" id="endtime" value="<%=this.EndTime.ToString("yyyy-MM-dd")%>" /> |
| | | </div> |
| | | </div> |
| | | <div class="form-group "> |
| | | <div class="input-group m-b"> |
| | | |
| | | |
| | | <% |
| | | |
| | | __w.Write("<input type=\"checkbox\" class=\"statusoption icheck-me\" data-color=\"blue\" data-skin=\"minimal\"\r\n name=\"StatisOption\" value=\"2\" "); |
| | | __w.Write((this.SelectedOptions & Dao.StatisOption.OPID) == Dao.StatisOption.OPID ? "checked" : ""); |
| | | __w.Write(" />\r\n 通道\r\n <input type=\"checkbox\" class=\"statusoption icheck-me\" data-color=\"blue\" data-skin=\"minimal\"\r\n name=\"StatisOption\" value=\"4\" "); |
| | | __w.Write((this.SelectedOptions & Dao.StatisOption.SpID) == Dao.StatisOption.SpID ? "checked" : ""); |
| | | __w.Write(" />\r\n 账号\r\n "); |
| | | |
| | | %> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="form-group "> |
| | | <div class="input-group m-b"> |
| | | <input type="button" value="查询" class="btn-primary btn action-query " /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="table-responsive"> |
| | | <table class="table table-striped table-bordered table-hover" id="resultTable"> |
| | | </table> |
| | | </div> |
| | | <div> |
| | | <h4> |
| | | 统计说明</h4> |
| | | <ul> |
| | | <li class="text-info">业务统计为非实时统计,由后台进程每2小时统计一次。</li> |
| | | <li>AP接收总费用:代理商提交到网关的计费总数;</li> |
| | | <li>AP成功费用:代理商提交成功到网关的计费总数;</li> |
| | | <li>OP提交总费用:此网关提交到运营商通道的计费总数;</li> |
| | | <li>OP成功费用:此网关提交成功到运营商通道的计费总数;</li> |
| | | <li>毛利润:AP接收总费用与OP提交总费用之间的差值;</li> |
| | | <li>净利润:AP成功费用与OP成功费用之间的差值;</li> |
| | | </ul> |
| | | </div> |
| | | |
| | | <div id="mask" class="mask"> |
| | | <span></span> |
| | | <img src="img/spinning-circles.svg" alt="载入中..." /></div> |
| | | </div> |
| | | </body> |
| | | </html> |
| | |
| | | <!--客户端IP和端口--> |
| | | <add key="serverIp" value="8.129.227.30"/> |
| | | <add key="clientPort" value="8888"/> |
| | | <add key="connectionString" value="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=8.129.227.30)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=SMGW)));User ID=smgw;Password=smgw2018"/> |
| | | |
| | | <!--IP转换地址返回的类别:0-全地址,1-国家编码, 2-国家,3-地区编码,4-地区名称,5-城市名称--> |
| | | <add key="addressClasses" value="3"/> |
| | | <!--初始密码:用于系统用户,客户--> |
| | | <add key="initPwd" value="123456"/> |
| | | |
| | | <!-- |
| | | <add key="connectionString" value="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=8.129.227.30)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=SMGW)));User ID=smgwtest;Password=smgwtest"/> |
| | | <add key="connectionString" value="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=8.129.227.30)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=SMGW)));User ID=smgw;Password=smgw2018"/> |
| | | --> |
| | | <add key="connectionString" value="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=8.129.227.30)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SID=SMGW)));User ID=smgwtest;Password=smgwtest"/> |
| | | |
| | | </appSettings> |
| | | <connectionStrings/> |
| | | <system.web> |