public ConsumerModel CreateModel(DataRow dr) { var o = new ConsumerModel(); // if (dr.Table.Columns.Contains("id")) { o.id = dr["id"].Toint(); } //消费者临时id(消费者启动后唯一,Guid转long) if (dr.Table.Columns.Contains("tempid")) { o.tempid = dr["tempid"].Tolong(); } //消费者clinet的id if (dr.Table.Columns.Contains("consumerclientid")) { o.consumerclientid = dr["consumerclientid"].Toint(); } //支持的分区顺序号(支持多个顺序号) if (dr.Table.Columns.Contains("partitionindexs")) { o.partitionindexs = dr["partitionindexs"].Tostring(); } //客户端名称 if (dr.Table.Columns.Contains("clientname")) { o.clientname = dr["clientname"].Tostring(); } //最后心跳时间(以当前库时间为准) if (dr.Table.Columns.Contains("lastheartbeat")) { o.lastheartbeat = dr["lastheartbeat"].ToDateTime(); } //上一次更新时间(以当前库时间为准) if (dr.Table.Columns.Contains("lastupdatetime")) { o.lastupdatetime = dr["lastupdatetime"].ToDateTime(); } //客户端创建时间(以当前库时间为准) if (dr.Table.Columns.Contains("createtime")) { o.createtime = dr["createtime"].ToDateTime(); } return o; }
public ConsumerModel CreateModel(DataRow dr) { var o = new ConsumerModel(); // if (dr.Table.Columns.Contains("id")) { o.id = dr["id"].Toint(); } //消费者临时id(消费者启动后唯一,Guid转long) if (dr.Table.Columns.Contains("tempid")) { o.tempid = dr["tempid"].Tolong(); } //消费者clinet的id if (dr.Table.Columns.Contains("consumerclientid")) { o.consumerclientid = dr["consumerclientid"].Toint(); } //支持的分区顺序号(支持多个顺序号) if (dr.Table.Columns.Contains("partitionindexs")) { o.partitionindexs = dr["partitionindexs"].Tostring(); } //客户端名称 if (dr.Table.Columns.Contains("clientname")) { o.clientname = dr["clientname"].Tostring(); } //最后心跳时间(以当前库时间为准) if (dr.Table.Columns.Contains("lastheartbeat")) { o.lastheartbeat = dr["lastheartbeat"].ToDateTime(); } //上一次更新时间(以当前库时间为准) if (dr.Table.Columns.Contains("lastupdatetime")) { o.lastupdatetime = dr["lastupdatetime"].ToDateTime(); } //客户端创建时间(以当前库时间为准) if (dr.Table.Columns.Contains("createtime")) { o.createtime = dr["createtime"].ToDateTime(); } return(o); }
public IList<RegisterdConsumersModel> GetPageList2(DbConn conn, string partitionid, string consumerclientid, string mqpathid, int pageIndex, int pageSize, ref int count) { int tempCount = 0; IList<RegisterdConsumersModel> list = new List<RegisterdConsumersModel>(); ConsumerModel cm = new ConsumerModel(); var result = SqlHelper.Visit((ps) => { StringBuilder where = new StringBuilder(" WHERE 1=1 "); if (!string.IsNullOrEmpty(consumerclientid)) { if (!consumerclientid.isint()) where.AppendFormat(" AND (c.client LIKE '%{0}%')", consumerclientid); else where.AppendFormat(" AND (c.id = '{0}')", consumerclientid); } if (!string.IsNullOrEmpty(partitionid)) { where.AppendFormat(" AND (p.partitionid='{0}')", partitionid); } if (!string.IsNullOrEmpty(mqpathid)) { if (!mqpathid.isint()) { where.AppendFormat(" AND (m.mqpath like '%{0}%')", mqpathid); } else { where.AppendFormat(" AND (m.id='{0}')", mqpathid); } } string sql = @"SELECT ROW_NUMBER() OVER(ORDER BY p.consumerclientid DESC,p.partitionindex desc) AS rownum, s.id as tb_consumer_id,tempid as tb_consumer_tempid,s.consumerclientid as tb_consumer_consumerclientid,s.partitionindexs as tb_consumer_partitionindexs ,s.clientname as tb_consumer_clientname,s.lastheartbeat as tb_consumer_lastheartbeat,s.lastupdatetime as tb_consumer_lastupdatetime,s.createtime as tb_consumer_createtime, c.id as tb_consumer_client_id, c.client as tb_consumer_client_client,c.createtime as tb_consumer_client_createtime, p.id as tb_consumer_partition_id,p.consumerclientid as tb_consumer_partition_consumerclientid ,p.partitionindex as tb_consumer_partition_partitionindex,p.partitionid as tb_consumer_partition_partitionid,p.lastconsumertempid as tb_consumer_partition_lastconsumertempid,p.lastmqid as tb_consumer_partition_lastmqid ,p.lastupdatetime as tb_consumer_partition_lastupdatetime,p.createtime as tb_consumer_partition_createtime,m.mqpath as tb_mqpath_mqpath,m.id as tb_mqpath_id from tb_consumer_partition p WITH(NOLOCK) left join tb_consumer s WITH(NOLOCK) on s.tempid=p.lastconsumertempid left join tb_consumer_client c WITH(NOLOCK) on p.consumerclientid=c.id left join tb_mqpath_partition mp with (nolock) on mp.partitionid=p.partitionid left join tb_mqpath m with (nolock) on m.id=mp.mqpathid "; string countSql = "SELECT COUNT(p.id) from tb_consumer_partition p WITH(NOLOCK) left join tb_consumer s WITH(NOLOCK) on s.tempid=p.lastconsumertempid left join tb_consumer_client c WITH(NOLOCK) on p.consumerclientid=c.id left join tb_mqpath_partition mp with (nolock) on mp.partitionid=p.partitionid left join tb_mqpath m with (nolock) on m.id=mp.mqpathid " + where.ToString(); object obj = conn.ExecuteScalar(countSql, null); if (obj != DBNull.Value && obj != null) { tempCount = LibConvert.ObjToInt(obj); } string sqlPage = string.Concat("SELECT * FROM (", sql.ToString(), where.ToString(), ") A WHERE rownum BETWEEN ", ((pageIndex - 1) * pageSize + 1), " AND ", pageSize * pageIndex); DataTable dt = conn.SqlToDataTable(sqlPage, null); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { RegisterdConsumersModel model = new RegisterdConsumersModel(dr); model.msgCount = reportDal.GetMsgCount(conn, model.consumerpartitionmodel.lastmqid); model.nonMsgCount = reportDal.GetNonMsgCount(conn, model.consumerpartitionmodel.lastmqid); model.mqpath = dr["tb_mqpath_mqpath"].Tostring(); model.mqpathid = dr["tb_mqpath_id"].Toint(); list.Add(model); } } return list; }); count = tempCount; return result; }
public IList<ConsumerModel> GetPageList(DbConn conn, string name, int pageIndex, int pageSize, ref int count) { int tempCount = 0; IList<ConsumerModel> list = new List<ConsumerModel>(); ConsumerModel cm = new ConsumerModel(); var result = SqlHelper.Visit((ps) => { StringBuilder where = new StringBuilder(" WHERE 1=1 "); if (!string.IsNullOrEmpty(name)) { where.AppendFormat(" AND clientname LIKE '%{0}%'", name); } string sql = "SELECT ROW_NUMBER() OVER(ORDER BY Id DESC) AS rownum,* FROM tb_consumer WITH(NOLOCK)"; string countSql = "SELECT COUNT(1) FROM tb_consumer WITH(NOLOCK) " + where.ToString(); object obj = conn.ExecuteScalar(countSql, null); if (obj != DBNull.Value && obj != null) { tempCount = LibConvert.ObjToInt(obj); } string sqlPage = string.Concat("SELECT * FROM (", sql.ToString(), where.ToString(), ") A WHERE rownum BETWEEN ", ((pageIndex - 1) * pageSize + 1), " AND ", pageSize * pageIndex); DataTable dt = conn.SqlToDataTable(sqlPage, null); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { ConsumerModel model = cm.CreateModel(dr); IList<tb_consumer_partition_model> consumerList = partitionDal.GetPartitionByConsumerId(conn, model.consumerclientid); if (consumerList != null && consumerList.Count > 0) { IList<ConsumerPartition> partitionList = new List<ConsumerPartition>(); foreach (var item in consumerList) { ConsumerPartition m = new ConsumerPartition(); m.PartitionId = item.partitionid; PartitionIDInfo partitionInfo = PartitionRuleHelper.GetPartitionIDInfo(item.partitionid); string node = string.Empty; if (partitionInfo.DataNodePartition < 10) { node = "0" + partitionInfo.DataNodePartition.Tostring(); } else { node = partitionInfo.DataNodePartition.Tostring(); } using (DbConn nodeConn = DbConfig.CreateConn(DataConfig.DataNodeParConn(node))) { nodeConn.Open(); tb_partition_model partitionModel = new tb_partition_dal().Get(conn, item.partitionid); if (partitionModel != null) { m.IsOnline = partitionModel.isused; } string table = msgDal.GetMaxMqTable(nodeConn, node); m.Msg = msgDal.GetMsgCount(nodeConn, table, 0); m.NonMsg = msgDal.GetMsgCount(nodeConn, table, 1); partitionList.Add(m); } } model.PartitionList = partitionList; } list.Add(model); } } return list; }); count = tempCount; return result; }