yzh
2022-06-20 97aa542d1a1cdcb46b2942026d28b7e5dca6c6c0
首页:通道状态
2个文件已添加
15个文件已修改
756 ■■■■■ 已修改文件
web/.vs/Web/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
web/Dao/Dao.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/Dao/GwAuditCacheDao.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/Dao/GwEventLogDao.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/Dao/GwOrderDao.cs 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/Dao/GwSpPrePatternDao.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/Dao/GwStatisV3Dao.cs 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/Lib/Dao.dll 补丁 | 查看 | 原始文档 | blame | 历史
web/Lib/Dao.pdb 补丁 | 查看 | 原始文档 | blame | 历史
web/web/Bin/Dao.dll 补丁 | 查看 | 原始文档 | blame | 历史
web/web/Bin/Dao.pdb 补丁 | 查看 | 原始文档 | blame | 历史
web/web/GwStatisV3.ashx 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/Index.aspx 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/SysDictData.ashx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/SysRoleMenu.ashx 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/Welcome.aspx 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/Welcome.aspx.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/.vs/Web/v16/.suo
Binary files differ
web/Dao/Dao.csproj
@@ -79,6 +79,7 @@
    <Compile Include="GwMobileAreaDao.cs" />
    <Compile Include="GwMoRouteDao.cs" />
    <Compile Include="GwOrderAuditDao.cs" />
    <Compile Include="GwEventLogDao.cs" />
    <Compile Include="GwOrderDao.cs" />
    <Compile Include="SysRoleMenuDao.cs" />
    <Compile Include="SysDictDataDao.cs" />
web/Dao/GwAuditCacheDao.cs
@@ -7,6 +7,7 @@
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.Common;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Text.RegularExpressions;
@@ -190,5 +191,52 @@
            OracleParameter[] parameterArray = new OracleParameter[] { new OracleParameter(":AUDITING_STATUS", (int)status), new OracleParameter(":HASH_CODE", hashCode), new OracleParameter(":OP_ID", opID) };
            return (OracleHelper.ExecuteSql(str, OracleHelper.Connection, parameterArray) > 0);
        }
        //发送内容:待审核统计
        public List<Dictionary<string, object>> GetSendAudit(string permissionsSQL)
        {
            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
            StringBuilder builder = new StringBuilder();
            builder.Append(" SELECT COUNT(1) COUNT  FROM GW_AUDIT_CACHE WHERE AUDITING_STATUS =0 ");
            builder.Append(permissionsSQL);
            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
            {
                while (reader != null && ((DbDataReader)reader).Read())
                {
                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
                    int count = oracleReaderWrapper.GetInt("COUNT", 0);
                    Dictionary<string, object> map = new Dictionary<string, object>();
                    map.Add("count", count);
                    list.Add(map);
    }
}
            return list;
        }
        //发送内容:二次待审核统计
        public List<Dictionary<string, object>> GetSendAuditTow(string permissionsSQL)
        {
            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
            StringBuilder builder = new StringBuilder();
            builder.Append(" SELECT COUNT(1) COUNT  FROM GW_AUDIT_CACHE WHERE AUDITING_STATUS =10 ");
            builder.Append(permissionsSQL);
            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
            {
                while (reader != null && ((DbDataReader)reader).Read())
                {
                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
                    int count = oracleReaderWrapper.GetInt("COUNT", 0);
                    Dictionary<string, object> map = new Dictionary<string, object>();
                    map.Add("count", count);
                    list.Add(map);
                }
            }
            return list;
        }
    }
}
web/Dao/GwEventLogDao.cs
New file
@@ -0,0 +1,80 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Model;
using Common;
using Oracle.DataAccess.Client;
using System.Data.Common;
namespace Dao
{
    /// <summary>
    /// 数据库事件通知表操作
    /// </summary>
    public class GwEventLogDao : IDisposable
    {
        public void Dispose()
        {
        }
        private static GwEventLogDao _instance;
        public static GwEventLogDao Instance
        {
            get {
                if (_instance == null)
                {
                    _instance = new GwEventLogDao();
                }
                return _instance;
            }
        }
        //通道状态
        public List<Dictionary<string, object>> GetOpStatus(string permissionsSQL)
        {
            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
            StringBuilder builder = new StringBuilder();
            builder.Append(" SELECT GEL.*, GWO.OP_NAME FROM GW_EVENT_LOG GEL ");
            builder.Append(" LEFT JOIN GW_OP GWO ON GWO.OP_ID = GEL.OP_ID ");
            builder.Append(" WHERE 1=1 ");
            //builder.Append(" AND EVENT_TYPE = 'OPWARING' AND ASSIGNED_TO = 'WEB' ");
            builder.Append(permissionsSQL);
            builder.Append(" ORDER BY HANDLE_FLAG, HANDLE_TIME DESC ");
            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
            {
                while (reader != null && ((DbDataReader)reader).Read())
                {
                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
                    int opId = oracleReaderWrapper.GetInt("OP_ID", 0);
                    string opName = oracleReaderWrapper.GetString("OP_NAME", "");
                    int apId = oracleReaderWrapper.GetInt("AP_ID", 0);
                    string clientId = oracleReaderWrapper.GetString("CLIENT_ID", "");
                    string spId = oracleReaderWrapper.GetString("SP_ID", "");
                    DateTime eventTime = oracleReaderWrapper.GetDateTime("EVENT_TIME");
                    string eventType = oracleReaderWrapper.GetString("EVENT_TYPE", "");
                    string content = oracleReaderWrapper.GetString("CONTENT", "");
                    int handleFlag = oracleReaderWrapper.GetInt("HANDLE_FLAG", 0);
                    DateTime handleTime = oracleReaderWrapper.GetDateTime("HANDLE_TIME");
                    Dictionary<string, object> map = new Dictionary<string, object>();
                    map.Add("opId", opId);
                    map.Add("opName", opName);
                    map.Add("apId", apId);
                    map.Add("clientId", clientId);
                    map.Add("spId", spId);
                    map.Add("eventTime", eventTime);
                    map.Add("eventType", eventType);
                    map.Add("content", content);
                    map.Add("handleFlag", handleFlag);
                    map.Add("handleTime", handleTime);
                    list.Add(map);
                }
            }
            return list;
        }
    }
}
web/Dao/GwOrderDao.cs
@@ -169,7 +169,7 @@
        }
        //添加产品或产品分类信息
        //添加信息
        public bool Add(GwOrder o)
        {
            StringBuilder stringBuilder = new StringBuilder();
@@ -241,7 +241,7 @@
                ) > 0;
        }
        //更新产品或产品分类信息
        //更新信息
        public bool Update(GwOrder o)
        {
            OracleParameter[] cmdParms = new OracleParameter[] {
@@ -296,6 +296,76 @@
            return o;
        }
        //今日已完成订单数及总额
        public List<Dictionary<string, object>> GetOrderDay(string permissionsSQL)
        {
            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
            StringBuilder builder = new StringBuilder();
            builder.Append(" SELECT COUNT(1) order_num, SUM(order_amount_total) order_amount_total FROM ( ");
            builder.Append(" SELECT a.order_id, a.client_id, a.status, a.order_amount_total ");
            builder.Append(" , CASE WHEN b.update_time is null then TO_CHAR(a.create_time, 'yyyyMMdd') ELSE TO_CHAR(b.update_time, 'yyyyMMdd') END AS update_time ");
            builder.Append(" FROM gw_order a ");
            builder.Append(" LEFT JOIN ( ");
            builder.Append(" SELECT order_id, max(audit_time) update_time FROM gw_order_audit goa ");
            builder.Append(" GROUP BY order_id ");
            builder.Append(" ) b ON b.order_id = a.order_id ");
            builder.Append(" ) ");
            builder.Append(" WHERE 1=1 AND status=2 ");
            //builder.Append(" AND update_time=:UPDATE_TIME ");
            builder.Append(permissionsSQL);
            //using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection, new OracleParameter(":UPDATE_TIME", (object)DateTime.Now.ToString("yyyyMMdd"))))
            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
            {
                while (reader != null && ((DbDataReader)reader).Read())
                {
                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
                    int orderNum = oracleReaderWrapper.GetInt("ORDER_NUM", 0);
                    int orderAmountTotal = oracleReaderWrapper.GetInt("ORDER_AMOUNT_TOTAL", 0);
                    Dictionary<string, object> map = new Dictionary<string, object>();
                    map.Add("orderNum", orderNum);
                    map.Add("orderAmountTotal", orderAmountTotal);
                    list.Add(map);
                }
            }
            return list;
        }
        //待审核订单数及总额
        public List<Dictionary<string, object>> GetOrderAudit(string permissionsSQL)
        {
            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
            StringBuilder builder = new StringBuilder();
            builder.Append(" SELECT COUNT(1) order_num, SUM(order_amount_total) order_amount_total FROM ( ");
            builder.Append(" SELECT a.order_id, a.client_id, a.status, a.order_amount_total ");
            //builder.Append(" , CASE WHEN b.update_time is null then TO_CHAR(a.create_time, 'yyyyMMdd') ELSE TO_CHAR(b.update_time, 'yyyyMMdd') END AS update_time ");
            builder.Append(" FROM gw_order a ");
            builder.Append(" LEFT JOIN ( ");
            builder.Append(" SELECT order_id, max(audit_time) update_time FROM gw_order_audit goa ");
            builder.Append(" GROUP BY order_id ");
            builder.Append(" ) b ON b.order_id = a.order_id ");
            builder.Append(" ) ");
            builder.Append(" WHERE 1=1 AND status IN (0,1) ");
            builder.Append(permissionsSQL);
            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
            {
                while (reader != null && ((DbDataReader)reader).Read())
                {
                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
                    int orderNum = oracleReaderWrapper.GetInt("ORDER_NUM", 0);
                    int orderAmountTotal = oracleReaderWrapper.GetInt("ORDER_AMOUNT_TOTAL", 0);
                    Dictionary<string, object> map = new Dictionary<string, object>();
                    map.Add("orderNum", orderNum);
                    map.Add("orderAmountTotal", orderAmountTotal);
                    list.Add(map);
                }
            }
            return list;
        }
        //统计记录数
        private int ReadCount(OracleDataReader reader)
        {
web/Dao/GwSpPrePatternDao.cs
@@ -125,6 +125,29 @@
            return list;
        }
        //账号报备内容待审核统计
        public List<Dictionary<string, object>> GetSpPrePatternAudit(string permissionsSQL)
        {
            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
            StringBuilder builder = new StringBuilder();
            builder.Append(" SELECT COUNT(1) COUNT  FROM GW_SP_PREPATTERN WHERE Audit_Status =0 ");
            builder.Append(permissionsSQL);
            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
            {
                while (reader != null && ((DbDataReader)reader).Read())
                {
                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
                    int count = oracleReaderWrapper.GetInt("COUNT", 0);
                    Dictionary<string, object> map = new Dictionary<string, object>();
                    map.Add("count", count);
                    list.Add(map);
                }
            }
            return list;
        }
        private int ReadCount(OracleDataReader reader)
        {
            return new OracleReaderWrapper(reader).GetInt("count", 0);
web/Dao/GwStatisV3Dao.cs
@@ -1,5 +1,6 @@
 
using Common;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Oracle.DataAccess.Client;
@@ -13,6 +14,10 @@
{
  public class GwStatisV3Dao : IDisposable
  {
        public void Dispose()
        {
        }
    public DataTable Query(string clientID)
    {
      return OracleHelper.Execute("SELECT * FROM\r\n(\r\nselect STATIS_TIME,\r\nNVL(SUM(AP_STATUS0),0) as AP_STATUS0,\r\nNVL(SUM(AP_STATUS1),0) as AP_STATUS1,\r\nNVL(SUM(AP_STATUS2),0) as AP_STATUS2,\r\nNVL(SUM(AP_STATUS3),0) as AP_STATUS3,\r\nNVL(SUM(AP_STATUS4),0) as AP_STATUS4,\r\nNVL(SUM(AP_STATUS5),0) as AP_STATUS5\r\n from GW_SM_STATIS_V3 where CLIENT_ID=:CLIENT_ID GROUP BY STATIS_TIME ORDER BY STATIS_TIME DESC) WHERE ROWNUM < 30 ORDER BY STATIS_TIME ASC", OracleHelper.Connection, new OracleParameter(":CLIENT_ID", (object) clientID));
@@ -148,9 +153,146 @@
      return list;
    }
    public void Dispose()
        //活动客户:客户-发送量【当日】
        public List<Dictionary<string, object>> GetActiveClientDay(string permissionsSQL)
    {
            List<Dictionary<string, object> > list = new List<Dictionary<string, object> >();
            StringBuilder builder = new StringBuilder();
            builder.Append(" SELECT client_id, company, create_time, SUM(ap_status0 ) ap_status0  FROM ( ");
            builder.Append(" SELECT V3.client_id, gc.COMPANY, TO_CHAR(V3.create_time, 'yyyyMMdd') create_time, (ap_status0 + ap_status1 + ap_status2 + ap_status3 + ap_status4 + ap_status5) ap_status0   ");
            builder.Append(" FROM (SELECT * FROM GW_SM_STATIS_V3  ");
            builder.Append(" WHERE 1=1 ");
            builder.Append(" AND TO_CHAR(create_time, 'yyyyMMdd')=:CREATE_TIME ");
            builder.Append( permissionsSQL );
            builder.Append(" ) V3 ");
            builder.Append(" LEFT JOIN gw_client gc on gc.client_id = V3.client_id ");
            builder.Append(" ) aa ");
            builder.Append(" GROUP BY client_id, company, create_time ");
            builder.Append(" ORDER BY ap_status0 DESC ");
            /**
            using (OracleDataReader reader = OracleHelper.ExecuteReader("select count(*) as count from (" + builder.ToString() + ") T", OracleHelper.Connection))
            {
                while (reader.Read())
                {
                    OracleReaderWrapper wrapper = new OracleReaderWrapper(reader);
                    recordcount = wrapper.GetInt("count", 0);
    }
            }**/
            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection, new OracleParameter(":CREATE_TIME", (object)DateTime.Now.ToString("yyyyMMdd"))) )
            //using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
            //using (OracleDataReader reader = OracleHelper.ExecuteReader(PubConstant.doOracleSql(PageIndex, pageSize, recordcount, builder.ToString()).ToString() , OracleHelper.Connection ))
            {
                while (reader != null && ((DbDataReader)reader).Read())
                {
                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
                    string clientId = oracleReaderWrapper.GetString("CLIENT_ID", "");
                    string company = oracleReaderWrapper.GetString("COMPANY", "");
                    int ap_status0 = oracleReaderWrapper.GetInt("AP_STATUS0", 0);
                    Dictionary<string, object> map = new Dictionary<string, object>();
                    map.Add("clientId", clientId);
                    map.Add("company", company);
                    map.Add("ap_status0", ap_status0);
                    list.Add(map);
                }
            }
            return list;
        }
        //通道-发送量【当日】
        public List<Dictionary<string, object>> GetOpSendDay(string permissionsSQL)
        {
            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
            StringBuilder builder = new StringBuilder();
            builder.Append(" SELECT OP_ID, OP_NAME, create_time, SUM(op_status0 ) op_status0  FROM ( ");
            builder.Append(" SELECT V3.op_id, gwo.op_name, TO_CHAR(V3.create_time, 'yyyyMMdd') create_time, (op_status0 + op_status1 + op_status2 + op_status3 + op_status4 + op_status5) op_status0   ");
            builder.Append(" FROM (SELECT * FROM GW_SM_STATIS_V3  ");
            builder.Append(" WHERE 1=1 ");
            builder.Append(" AND TO_CHAR(create_time, 'yyyyMMdd')=:CREATE_TIME ");
            builder.Append(permissionsSQL);
            builder.Append(" ) V3 ");
            builder.Append(" LEFT JOIN gw_op gwo on gwo.op_id = V3.op_id ");
            builder.Append(" ) aa ");
            builder.Append(" GROUP BY op_id, op_name, create_time ");
            builder.Append(" ORDER BY op_status0 DESC ");
            /**
            using (OracleDataReader reader = OracleHelper.ExecuteReader("select count(*) as count from (" + builder.ToString() + ") T", OracleHelper.Connection))
            {
                while (reader.Read())
                {
                    OracleReaderWrapper wrapper = new OracleReaderWrapper(reader);
                    recordcount = wrapper.GetInt("count", 0);
                }
            }**/
            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection, new OracleParameter(":CREATE_TIME", (object)DateTime.Now.ToString("yyyyMMdd"))))
            //using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
            {
                while (reader != null && ((DbDataReader)reader).Read())
                {
                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
                    string opId = oracleReaderWrapper.GetString("OP_ID", "");
                    string opName = oracleReaderWrapper.GetString("OP_NAME", "");
                    int op_status0 = oracleReaderWrapper.GetInt("OP_STATUS0", 0);
                    Dictionary<string, object> map = new Dictionary<string, object>();
                    map.Add("opId", opId);
                    map.Add("opName", opName);
                    map.Add("op_status0", op_status0);
                    list.Add(map);
                }
            }
            return list;
        }
        //产品-发送量【当日】
        public List<Dictionary<string, object>> GetProductSendDay(string permissionsSQL)
        {
            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
            StringBuilder builder = new StringBuilder();
            builder.Append(" SELECT PRODUCT_ID, PRODUCT_NAME, create_time, SUM(ap_status0 ) ap_status0  FROM ( ");
            builder.Append(" SELECT gs.product_id, gp.name product_name, TO_CHAR(V3.create_time, 'yyyyMMdd') create_time, (ap_status0 + ap_status1 + ap_status2 + ap_status3 + ap_status4 + ap_status5) ap_status0   ");
            builder.Append(" FROM (SELECT * FROM GW_SM_STATIS_V3  ");
            builder.Append(" WHERE 1=1 ");
            builder.Append(" AND TO_CHAR(create_time, 'yyyyMMdd')=:CREATE_TIME ");
            builder.Append(permissionsSQL);
            builder.Append(" ) V3 ");
            builder.Append(" LEFT JOIN gw_sp gs on gs.sp_id = V3.sp_id ");
            builder.Append(" LEFT JOIN gw_product gp on gp.id = gs.product_id ");
            builder.Append(" ) aa ");
            builder.Append(" GROUP BY PRODUCT_ID, PRODUCT_NAME, create_time ");
            builder.Append(" ORDER BY ap_status0 DESC ");
            /**
            using (OracleDataReader reader = OracleHelper.ExecuteReader("select count(*) as count from (" + builder.ToString() + ") T", OracleHelper.Connection))
            {
                while (reader.Read())
                {
                    OracleReaderWrapper wrapper = new OracleReaderWrapper(reader);
                    recordcount = wrapper.GetInt("count", 0);
                }
            }**/
            using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection, new OracleParameter(":CREATE_TIME", (object)DateTime.Now.ToString("yyyyMMdd"))))
            //using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection))
            {
                while (reader != null && ((DbDataReader)reader).Read())
                {
                    OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
                    string productId = oracleReaderWrapper.GetString("PRODUCT_ID", "");
                    string productName = oracleReaderWrapper.GetString("PRODUCT_NAME", "");
                    int ap_status0 = oracleReaderWrapper.GetInt("AP_STATUS0", 0);
                    Dictionary<string, object> map = new Dictionary<string, object>();
                    map.Add("productId", productId);
                    map.Add("productName", productName);
                    map.Add("ap_status0", ap_status0);
                    list.Add(map);
                }
            }
            return list;
        }
    public int GetTotalCount(string clientID, DateTime dateTime)
    {
web/Lib/Dao.dll
Binary files differ
web/Lib/Dao.pdb
Binary files differ
web/web/Bin/Dao.dll
Binary files differ
web/web/Bin/Dao.pdb
Binary files differ
web/web/GwStatisV3.ashx
@@ -10,6 +10,11 @@
public class GwStatisV3 : PageHandler<SysUser> 
{
    private GwStatisV3Dao _Dao = new GwStatisV3Dao();
    private GwOrderDao orderDao = new GwOrderDao();
    private GwSpPrePatternDao spPrePatternDao = new GwSpPrePatternDao();
    private GwAuditCacheDao gwAuditCacheDao = new GwAuditCacheDao();
    private GwEventLogDao gwEventLogDao = new GwEventLogDao();
    private int _userId = -1;
    private string _userType = "";
    private string _account = "";
@@ -34,10 +39,46 @@
    
    private JsonPageResult GetRealtimeStatis5m(PageContext<SysUser> context)
    {
        string permissionsSQL = new GwClientDao().GetClientPermissions(_userId, _userType, null);
        var oplist = _Dao.GetRealtimeStatis5mOut();
        var aplist = _Dao.GetRealtimeStatis5mIn();
        
        return new JsonPageResult(true, new { ApList = aplist, OpList = oplist } );
            //活动客户:客户-发送量【当日】
        var activeClientDayList = _Dao.GetActiveClientDay(permissionsSQL);
            //通道-发送量【当日】
        var opSendDayList = _Dao.GetOpSendDay(permissionsSQL);
            //产品-发送量【当日】
        var productSendDayList = _Dao.GetProductSendDay(permissionsSQL);
            //订单:今日已完成订单
        var orderDayList = orderDao.GetOrderDay(permissionsSQL);
            //订单:待审核订单
        var orderAuditList = orderDao.GetOrderAudit(permissionsSQL);
            //发送内容:待审核
        var sendAuditList = gwAuditCacheDao.GetSendAudit(permissionsSQL);
            //发送内容:二次待审核
        var sendAuditTowList = gwAuditCacheDao.GetSendAuditTow(permissionsSQL);
            //账号报备内容:待审核
        var spPrePatternAuditList = spPrePatternDao.GetSpPrePatternAudit(permissionsSQL);
            //通道状态
        var opStatusList = gwEventLogDao.GetOpStatus(permissionsSQL);
        return new JsonPageResult(true, new {
            ApList = aplist,
            OpList = oplist,
            ActiveClientDayList = activeClientDayList,
            OpSendDayList = opSendDayList,
            ProductSendDayList = productSendDayList,
            OrderDayList = orderDayList,
            OrderAuditList = orderAuditList,
            SendAuditList = sendAuditList,
            SendAuditTowList = sendAuditTowList,
            SpPrePatternAuditList = spPrePatternAuditList,
            OpStatusList = opStatusList
        } );
    }
    private string GetApName(List<GwAp>aplist, int apID)
    {
web/web/Index.aspx
@@ -120,9 +120,8 @@
                        </a>
                        <ul class="nav nav-second-level">
                            <li><a href="GwAuditCache.aspx?StatusFlag=0" class="J_menuItem">待审核内容</a> </li>
                            <li><a href="GwSpPrePattern.aspx" class="J_menuItem">帐号报备内容审核</a> </li>
                            <li><a href="GwAuditCache.aspx?StatusFlag=0" class="J_menuItem" id="MenuId_GwAuditCache">待审核内容</a> </li>
                            <li><a href="GwSpPrePattern.aspx" class="J_menuItem" id="MenuId_GwSpPrePattern">帐号报备内容审核</a> </li>
                        </ul>
                    </li>
@@ -182,8 +181,8 @@
                            <span class="fa arrow"></span>
                        </a>
                        <ul class="nav nav-second-level">
                            <li><a href="GwOrderComplete.aspx" class="J_menuItem">已完成订单</a> </li>
                            <li><a href="GwOrderAudit.aspx" class="J_menuItem">待审核订单</a> </li>
                            <li><a href="GwOrderComplete.aspx" class="J_menuItem" id="MenuId_GwOrderComplete">已完成订单</a> </li>
                            <li><a href="GwOrderAudit.aspx" class="J_menuItem" id="MenuId_GwOrderAudit">待审核订单</a> </li>
                        </ul>
                    </li>
web/web/SysDictData.ashx
@@ -68,7 +68,7 @@
                str1 += "<tr>";
                str1 += "<td>" + bean.DictValue + "</td>";
                str1 += "<td>" + bean.DictLabel + "</td>";
                str1 += "<td>" + bean.DictType + "</td>";
                str1 += "<td>" + SysDictTypeToName(bean.DictType) + "</td>";
                str1 += "<td>" + bean.DictSort + "</td>";
                str1 += "<td>" + (bean.ParanSource == 0 ? "系统内置" : "用户添加") + "</td>";
                str1 += "<td>" + SysUserName(string.IsNullOrEmpty(bean.CreateBy)? 0: int.Parse(bean.CreateBy) ) + "</td>";
web/web/SysRoleMenu.ashx
New file
@@ -0,0 +1,59 @@
<%@ WebHandler Language="C#" Class="SysRoleMenuHandler" %>
using Common;
using Dao;
using Model;
// using Newtonsoft.Json;
//using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
public class SysRoleMenuHandler : PageHandler<SysUser>
{
    private SysRoleMenuDao _Dao = new SysRoleMenuDao();
    private List<SysUser> _SysUserList;
    public override JsonPageResult ProcessRequestInternal(PageContext<SysUser> context)
    {
        string @string = context.GetString("action");
        switch (@string)
        {
            //case "update":
            //    return this.Update(context);    //修改
            case "loadRoleMenuList":
                return this.LoadRoleMenuList(context);      //获取角色权限列表
            case "updatePermission":
                return this.UpdatePermission(context);  //保存角色权限
            default:
                throw new Exception("Invalid Action=" + @string);
        }
    }
    private JsonPageResult LoadRoleMenuList(PageContext<SysUser> context)
    {
        //context.CheckRight("104", FailedOperation.PromptOnly);
        string roleId = context.GetString("roleId");
        if(string.IsNullOrEmpty(roleId))
            throw new ArgumentException("用户角色不能为空,请输入!");
       return new JsonPageResult(true, (object) this._Dao.LoadRoleMenuList(roleId).Keys);
    }
    private JsonPageResult UpdatePermission(PageContext<SysUser> context)
    {
        //context.CheckRight("1042", FailedOperation.PromptOnly);
        string @string = context.GetString("menuIDArray");
        string roleId = context.GetString("roleId");
        string[] menuIDArray = JsonConvert.DeserializeObject<string[]>(@string);
        if (menuIDArray == null)
            throw new ArgumentException("菜单数据异常!");
        if (string.IsNullOrEmpty(roleId) )
            throw new ArgumentException("用户角色参数异常!");
        this._Dao.UpdatePermission(roleId, menuIDArray);
        return new JsonPageResult(true, (object) "保存权限成功!");
    }
}
web/web/Welcome.aspx
@@ -1,6 +1,27 @@
<%@ Page Language="C#" masterpagefile="~/Main.master"  AutoEventWireup="true" CodeFile="Welcome.aspx.cs" Inherits="Welcome" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <script>
    <script type="text/javascript" src="js/contabs.min.js"></script>
    <style type="text/css">
        .dotRed {
          //position: absolute;
          width: 15px;
          height: 15px;
          border-radius: 100%;
          background: #FF0000;
          //box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .2);
        }
        .dotGreen {
          //position: absolute;
          width: 15px;
          height: 15px;
          border-radius: 100%;
          background: #00FF00;
          //box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .2);
        }
    </style>
    <script type="text/javascript">
        $(function () {
            function getClass(b) {
                return b ? "label m-b label-warning" : "label m-b label-primary";
@@ -11,8 +32,99 @@
                    setTimeout(refreshStatis, 50000);
                }
                else {
                    $.post("gwstatisv3.ashx", { action: "getRealtimeStatis5m" }, function (r) {
                        if (r.OK) {
                            //活动客户前X个:客户-发送量【当日】
                            var activeClientDayhtml = [];
                            $.each(r.Message.ActiveClientDayList, function (i) {
                                activeClientDayhtml.push("<tr>");
                                activeClientDayhtml.push("<td>" + this.clientId + "</td>");
                                activeClientDayhtml.push("<td>" + this.company + "</td>");
                                activeClientDayhtml.push("<td><span  class='" + getClass(false) + "'>" + this.ap_status0 + "</span></td>");
                                activeClientDayhtml.push("</tr>");
                            });
                            $("#activeClientDayTable tbody").html(activeClientDayhtml.join("\n"));
                            //通道-发送量【当日】
                            var opSendDayhtml = [];
                            $.each(r.Message.OpSendDayList, function (i) {
                                opSendDayhtml.push("<tr>");
                                opSendDayhtml.push("<td>" + this.opId + "</td>");
                                opSendDayhtml.push("<td>" + this.opName + "</td>");
                                opSendDayhtml.push("<td><span  class='" + getClass(false) + "'>" + this.op_status0 + "</span></td>");
                                opSendDayhtml.push("</tr>");
                            });
                            $("#opSendDayTable tbody").html(opSendDayhtml.join("\n"));
                            //产品-发送量【当日】
                            var productSendDayhtml = [];
                            $.each(r.Message.ProductSendDayList, function (i) {
                                productSendDayhtml.push("<tr>");
                                productSendDayhtml.push("<td>" + this.productName + "</td>");
                                productSendDayhtml.push("<td><span  class='" + getClass(false) + "'>" + this.ap_status0 + "</span></td>");
                                productSendDayhtml.push("</tr>");
                            });
                            $("#productSendDayTable tbody").html(productSendDayhtml.join("\n"));
                            //订单
                            var orderhtml = [];
                            $.each(r.Message.OrderDayList, function (i) {
                                orderhtml.push("<tr>");
                                orderhtml.push("<td>今日已完成 <a href='javascript:;' onclick='doTabOpen(\"MenuId_GwOrderComplete\")' data-id='{0}' class='btn  btn-success btn-xs'><u>" + this.orderNum + " </u></a>个订单,总金额:<span  class='" + getClass(false) + "'>" + this.orderAmountTotal/1000 + "</span> 元</td>");
                                orderhtml.push("</tr>");
                            });
                            $.each(r.Message.OrderAuditList, function (i) {
                                orderhtml.push("<tr>");
                                orderhtml.push("<td>待审批 <a href='javascript:;' onclick='doTabOpen(\"MenuId_GwOrderAudit\")' data-id='{0}' class='btn  btn-success btn-xs'><u>" + this.orderNum + " </u></a>个订单,总金额:<span  class='" + getClass(false) + "'>" + this.orderAmountTotal / 1000 + "</span> 元</td>");
                                orderhtml.push("</tr>");
                            });
                            $("#orderTable tbody").html(orderhtml.join("\n"));
                            //待审核发送
                            var sendAudithtml = [];
                            $.each(r.Message.SendAuditList, function (i) {
                                sendAudithtml.push("<tr>");
                                sendAudithtml.push("<td>待审核短信 <a href='javascript:;' onclick='doTabOpen(\"MenuId_GwAuditCache\")' data-id='{0}' class='btn  btn-success btn-xs'>" + this.count + " </a>条,请立即处理</td>");
                                sendAudithtml.push("</tr>");
                            });
                            $.each(r.Message.SendAuditTowList, function (i) {
                                sendAudithtml.push("<tr>");
                                //sendAudithtml.push("<td>待二次鉴定短信 <a href='GwAuditCache.aspx?StatusFlag=0&AuditingStatus=10' onclick='doTabOpen(\"MenuId_GwAuditCache\")' data-id='{0}' class='btn  btn-success btn-xs'>" + this.count + " </a>条,请立即处理</td>");
                                sendAudithtml.push("<td>待二次鉴定短信 <a href='javascript:;' onclick='doTabOpen(\"MenuId_GwAuditCache\")' data-id='{0}' class='btn  btn-success btn-xs'>" + this.count + " </a>条,请立即处理</td>");
                                sendAudithtml.push("</tr>");
                            });
                            $.each(r.Message.SpPrePatternAuditList, function (i) {
                                sendAudithtml.push("<tr>");
                                sendAudithtml.push("<td>账号报备内容待审核 <a href='javascript:;' onclick='doTabOpen(\"MenuId_GwSpPrePattern\")' data-id='{0}' class='btn  btn-success btn-xs'>" + this.count + " </a>条,请立即处理</td>");
                                sendAudithtml.push("</tr>");
                            });
                            $("#sendAuditTable tbody").html(sendAudithtml.join("\n"));
                            //通道状态
                            var opStatushtml = [];
                            $.each(r.Message.OpStatusList, function (i) {
                                opStatushtml.push("<tr>");
                                opStatushtml.push("<td>" + this.opId + "</td>");
                                opStatushtml.push("<td>" + this.opName + "</td>");
                                opStatushtml.push("<td>" + this.content + "</td>");
                                //opStatushtml.push("<td><span  class='" + getClass(false) + "'>" + this.handleFlag + "</span></td>");
                                opStatushtml.push("<td>" + ((this.handleFlag == 1) ? "<div class='dotGreen'>" : "<div  class='dotRed'>") + "</div></td>");
                                opStatushtml.push("</tr>");
                            });
                            $("#opStatusTable tbody").html(opStatushtml.join("\n"));
                            /**
                            var ophtml = [];
                            $.each(r.Message.OpList, function (i) {
@@ -46,6 +158,7 @@
                                aphtml.push("</tr>");
                            });
                            $("#apTable tbody").html(aphtml.join("\n"));
                            **/
                            setTimeout(refreshStatis, 3000);
                        }
@@ -55,13 +168,137 @@
            refreshStatis();
        });
        //链接TABS方式打开
        function doTabOpen(menuId) {
            //parent.$('#' + menuId).attr("href", "GwAuditCache.aspx?StatusFlag=0&AuditingStatus=10");
            //parent.$('#' + menuId).attr("data-id", "GwAuditCache.aspx?StatusFlag=0&AuditingStatus=10");
            //window.parent.document.getElementById(menuId).click();    //js方式
            //console.log(parent.$('#' + menuId).attr("data-id"));
            parent.$('#' + menuId).click();   //jquery方式
        }
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="content" runat="Server">
    <div class="ibox">
        <div class="ibox-title">
            <h3>
                接入点状态</h3>
            <h3>活动客户:客户-发送量【当日】</h3>
        </div>
        <div class="ibox-content">
            <table class="table table-striped table-bordered table-hover" id="activeClientDayTable">
                <thead>
                    <tr>
                        <td>
                            客户账号
                        </td>
                        <td>
                            客户公司
                        </td>
                        <td>
                            发送总量
                        </td>
                    </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
        <div id="activeClientDayPagination">
        </div>
        <div class="ibox-title">
            <h3>通道-发送量【当日】</h3>
        </div>
        <div class="ibox-content">
            <table class="table table-striped table-bordered table-hover" id="opSendDayTable">
                <thead>
                    <tr>
                        <td>
                            通道编号
                        </td>
                        <td>
                            通道名称
                        </td>
                        <td>
                            发送总量
                        </td>
                    </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
        <div class="ibox-title">
            <h3>产品-发送量【当日】</h3>
        </div>
        <div class="ibox-content">
            <table class="table table-striped table-bordered table-hover" id="productSendDayTable">
                <thead>
                    <tr>
                        <td>
                            产品
                        </td>
                        <td>
                            发送总量
                        </td>
                    </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
        <div class="ibox-title">
            <h3>订单</h3>
        </div>
        <div class="ibox-content">
            <table class="table table-striped table-bordered table-hover" id="orderTable">
                <tbody>
                </tbody>
            </table>
        </div>
        <div class="ibox-title">
            <h3>待审核发送</h3>
        </div>
        <div class="ibox-content">
            <table class="table table-striped table-bordered table-hover" id="sendAuditTable">
                <tbody>
                </tbody>
            </table>
        </div>
        <div class="ibox-title">
            <h3>通道状态</h3>
        </div>
        <div class="ibox-content">
            <table class="table table-striped table-bordered table-hover" id="opStatusTable">
                <thead>
                    <tr>
                        <td>
                            通道编号
                        </td>
                        <td>
                            通道名称
                        </td>
                        <td>
                            状态描述
                        </td>
                        <td>
                            状态
                        </td>
                    </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
        <!--
        <div class="ibox-title">
            <h3>接入点状态</h3>
        </div>
        <div class="ibox-content">
            <table class="table table-striped table-bordered table-hover" id="apTable">
@@ -91,9 +328,9 @@
                </tbody>
            </table>
        </div>
        <div class="ibox-title">
            <h3>
                通道状态</h3>
            <h3>通道状态</h3>
        </div>
        <div class="ibox-content">
            <table class="table table-striped table-bordered table-hover" id="opTable">
@@ -131,13 +368,14 @@
        </div>
                <div class="ibox-title">
            <h3>
                数据库表空间</h3>
            <h3>数据库表空间</h3>
        </div>
        <div class="ibox-content">
            <table class="table table-striped table-bordered table-hover">
                <%= RenderTableSpaceTable() %>
                <!%= RenderTableSpaceTable() %>
            </table>
        </div>
        -->
    </div>
</asp:Content>
web/web/Welcome.aspx.cs
@@ -3,6 +3,7 @@
using Dao;
using Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using System.Web;
@@ -11,10 +12,13 @@
public partial class Welcome : PageBase<SysUser>, IRequiresSessionState
{
    protected List<GwClient> GwClientList;
   
    protected void Page_Load(object sender, EventArgs e)
    {
        using (GwClientDao gwClientDao = new GwClientDao())
            this.GwClientList = gwClientDao.Clientlist();
    }
    public string RenderTableSpaceTable()
@@ -37,4 +41,19 @@
            return stringBuilder.ToString();
        }
    }
    //客户ID转换名称
    public string ClientIdToName(string clientId)
    {
        if (this.GwClientList.Count == 0)
            return clientId;
        foreach (GwClient bean in this.GwClientList)
        {
            if (clientId.Equals(bean.ClientID))
                return bean.Company;
            else
                continue;
        }
        return clientId;
    }
}