public ActionResult Add(tb_messagequeue_model model, string node, string tablepartition, string daypartition) { DateTime serverdate = DateTime.Now; using (DbConn conn = DbConfig.CreateConn(DataConfig.MqManage)) { conn.Open(); serverdate = conn.GetServerDate(); } using (DbConn conn = DbConfig.CreateConn(DataConfig.DataNodeParConn(node))) { conn.Open(); model.sqlcreatetime = serverdate; model.mqcreatetime = DateTime.Now; string tablename = PartitionRuleHelper.GetTableName(Convert.ToInt32(tablepartition), DateTime.ParseExact(daypartition, "yyMMdd", CultureInfo.InvariantCulture)); var dal = new tb_messagequeue_dal(); dal.TableName = tablename; if (dal.Add(conn, tablename, model)) { return(RedirectToAction("index")); } else { ModelState.AddModelError("Error", "更新错误"); return(View(model)); } } }
public IList <tb_messagequeue_model> GetPageList(DbConn conn, int pageIndex, int pageSize, string id, ref int count) { int tempCount = 0; IList <tb_messagequeue_model> list = new List <tb_messagequeue_model>(); var result = SqlHelper.Visit((ps) => { StringBuilder where = new StringBuilder(" WHERE 1=1"); if (!string.IsNullOrWhiteSpace(id)) { where.AppendFormat(" AND id={0}", id); } string sql = string.Format("SELECT ROW_NUMBER() OVER(ORDER BY Id DESC) AS rownum,* FROM {0} WITH(NOLOCK)", TableName) + where; string countSql = string.Format("SELECT COUNT(1) FROM {0} WITH(NOLOCK)", TableName) + where; object obj = conn.ExecuteScalar(countSql, null); if (obj != DBNull.Value && obj != null) { tempCount = LibConvert.ObjToInt(obj); } string sqlPage = string.Concat("SELECT * FROM (", sql.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) { tb_messagequeue_model model = CreateModel(dr); list.Add(model); } } return(list); }); count = tempCount; return(result); }
public ActionResult Update(tb_messagequeue_model model, string node, long id) { ViewBag.node = node; var mqidinfo = XXF.BaseService.MessageQuque.BusinessMQ.SystemRuntime.PartitionRuleHelper.GetMQIDInfo(Convert.ToInt64(id)); ViewBag.tablepartition = mqidinfo.TablePartition; ViewBag.daypartition = mqidinfo.Day.ToString("yyMMdd"); string tablename = PartitionRuleHelper.GetTableName(mqidinfo.TablePartition, mqidinfo.Day); var dal = new tb_messagequeue_dal(); dal.TableName = tablename; using (DbConn conn = DbConfig.CreateConn(DataConfig.DataNodeParConn(node))) { conn.Open(); tb_messagequeue_model result = dal.GetModel(conn, id, tablename); if (result != null) { result.message = model.message; result.state = model.state; result.source = model.source; if (dal.Update(conn, result, tablename)) { return(RedirectToAction("Index", new { node = node, tablepartition = XXF.BaseService.MessageQuque.BusinessMQ.SystemRuntime.PartitionRuleHelper.PartitionNameRule(mqidinfo.TablePartition), daypartition = mqidinfo.Day.ToString("yyMMdd"), mqid = id })); } } ModelState.AddModelError("Error", "更新错误"); return(View(result)); } }
public ActionResult Update(long id, string node) { using (DbConn conn = DbConfig.CreateConn(DataConfig.DataNodeParConn(node))) { conn.Open(); ViewBag.node = node; var mqidinfo = XXF.BaseService.MessageQuque.BusinessMQ.SystemRuntime.PartitionRuleHelper.GetMQIDInfo(Convert.ToInt64(id)); ViewBag.tablepartition = mqidinfo.TablePartition; ViewBag.daypartition = mqidinfo.Day.ToString("yyMMdd"); string tablename = PartitionRuleHelper.GetTableName(mqidinfo.TablePartition, mqidinfo.Day); var dal = new tb_messagequeue_dal(); dal.TableName = tablename; tb_messagequeue_model model = dal.GetModel(conn, id, tablename); return(View(model)); } }
public tb_messagequeue_model GetModel(DbConn conn, long id, string tableName) { return(SqlHelper.Visit((ps) => { tb_messagequeue_model model = null; string sql = string.Format("SELECT TOP 1 * FROM {0} WITH(NOLOCK) WHERE id=@id", tableName); ps.Add("@id", id); DataTable dt = conn.SqlToDataTable(sql, ps.ToParameters()); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { model = CreateModel(dr); } } return model; })); }
public virtual bool Add2(DbConn PubConn, tb_messagequeue_model model) { List <ProcedureParameter> Par = new List <ProcedureParameter>() { //mq在生产者端的创建时间(生产者端时间可能跟服务器时间不一致) new ProcedureParameter("@mqcreatetime", model.mqcreatetime), //消息类型,0=可读消息,1=已迁移消息 new ProcedureParameter("@state", model.state), //来源类型:0 表示 正常发送,1 表示 迁移消息 new ProcedureParameter("@source", model.source), //消息体(消息内容,以json形式存储,为了阅读考虑) new ProcedureParameter("@message", model.message), //sql数据节点处的创建时间(以管理中心时间为准) new ProcedureParameter("@sqlcreatetime", model.sqlcreatetime) }; int rev = PubConn.ExecuteSql(string.Format(@"insert into {0}(mqcreatetime,sqlcreatetime,state,source,message) values(@mqcreatetime,@sqlcreatetime,@state,@source,@message)", TableName), Par); return(rev == 1); }
public virtual bool Edit(DbConn PubConn, tb_messagequeue_model model) { List <ProcedureParameter> Par = new List <ProcedureParameter>() { //mq在生产者端的创建时间(生产者端时间可能跟服务器时间不一致) new ProcedureParameter("@mqcreatetime", model.mqcreatetime), //sql数据节点处的创建时间 new ProcedureParameter("@sqlcreatetime", model.sqlcreatetime), //消息类型,0=可读消息,1=已迁移消息 new ProcedureParameter("@state", model.state), //来源类型:0 表示 正常发送,1 表示 迁移消息 new ProcedureParameter("@source", model.source), //消息体(消息内容,以json形式存储,为了阅读考虑) new ProcedureParameter("@message", model.message) }; Par.Add(new ProcedureParameter("@id", model.id)); int rev = PubConn.ExecuteSql("update tb_messagequeue set mqcreatetime=@mqcreatetime,sqlcreatetime=@sqlcreatetime,state=@state,source=@source,message=@message where id=@id", Par); return(rev == 1); }
public bool Add(DbConn conn, string tableName, tb_messagequeue_model model) { return(SqlHelper.Visit((ps) => { string sql = string.Format("insert into {0}(mqcreatetime,sqlcreatetime,state,source,message) values(@mqcreatetime,@sqlcreatetime,@state,@source,@message)", tableName); List <ProcedureParameter> Par = new List <ProcedureParameter>() { //mq在生产者端的创建时间(生产者端时间可能跟服务器时间不一致) new ProcedureParameter("@mqcreatetime", model.mqcreatetime), //sql数据节点处的创建时间 new ProcedureParameter("@sqlcreatetime", model.sqlcreatetime), //消息类型,0=可读消息,1=已迁移消息 new ProcedureParameter("@state", model.state), //来源类型:0 表示 正常发送,1 表示 迁移消息 new ProcedureParameter("@source", model.source), //消息体(消息内容,以json形式存储,为了阅读考虑) new ProcedureParameter("@message", model.message) }; int rev = conn.ExecuteSql(sql, Par); return rev == 1; })); }
public virtual tb_messagequeue_model CreateModel(DataRow dr) { var o = new tb_messagequeue_model(); //消息id号,规则1+数据节点编号+表分区编号+时间分区号+自增id if (dr.Table.Columns.Contains("id")) { o.id = dr["id"].Tolong(); } //mq在生产者端的创建时间(生产者端时间可能跟服务器时间不一致) if (dr.Table.Columns.Contains("mqcreatetime")) { o.mqcreatetime = dr["mqcreatetime"].ToDateTime(); } //sql数据节点处的创建时间 if (dr.Table.Columns.Contains("sqlcreatetime")) { o.sqlcreatetime = dr["sqlcreatetime"].ToDateTime(); } //消息类型,0=可读消息,1=已迁移消息 if (dr.Table.Columns.Contains("state")) { o.state = dr["state"].ToByte(); } //来源类型:0 表示 正常发送,1 表示 迁移消息 if (dr.Table.Columns.Contains("source")) { o.source = dr["source"].ToByte(); } //消息体(消息内容,以json形式存储,为了阅读考虑) if (dr.Table.Columns.Contains("message")) { o.message = dr["message"].Tostring(); } return(o); }
public bool Update(DbConn conn, tb_messagequeue_model model, string tableName) { return(SqlHelper.Visit((ps) => { List <ProcedureParameter> Par = new List <ProcedureParameter>() { //mq在生产者端的创建时间(生产者端时间可能跟服务器时间不一致) new ProcedureParameter("@mqcreatetime", model.mqcreatetime), //sql数据节点处的创建时间 new ProcedureParameter("@sqlcreatetime", model.sqlcreatetime), //消息类型,0=可读消息,1=已迁移消息 new ProcedureParameter("@state", model.state), //来源类型:0 表示 正常发送,1 表示 迁移消息 new ProcedureParameter("@source", model.source), //消息体(消息内容,以json形式存储,为了阅读考虑) new ProcedureParameter("@message", model.message) }; Par.Add(new ProcedureParameter("@id", model.id)); string sql = string.Format("update {0} set mqcreatetime=@mqcreatetime,sqlcreatetime=@sqlcreatetime,state=@state,source=@source,message=@message where id=@id", tableName); int rev = conn.ExecuteSql(sql, Par); return rev == 1; })); }