/// <summary> /// 添加延时订单 /// </summary> /// <param name="OrderId">订单ID</param> /// <returns></returns> public Boolean DelayedMethod(int OrderId) { int DelayedTime = Common.TypeHelper.StringToInt(WebFramework.GeneralMethodBase.GetKeyConfig(49).Val); if (DelayedTime > 0) { try { Model.DelayedAwardsModel DelayedAwardsModel = new Model.DelayedAwardsModel(); DelayedAwardsModel.OrderId = OrderId; DelayedAwardsModel.CreateTime = DateTime.Now; DelayedAwardsModel.DelayedTime = DateTime.Now.AddMinutes(DelayedTime); if (DelayedAwardsDal.Add(DelayedAwardsModel) <= 0) { WebFramework.GeneralMethodBase.SendErroEmail(OrderId + ":添加延时订单失败"); } ESLogMethod.ESLogInstance.Error("添加延时订单失败", OrderId.ToString()); } catch (Exception ex) { ESLogMethod.ESLogInstance.Error("添加延时订单失败", OrderId.ToString(), ex); } return(true); } return(false); }
protected Model.DelayedAwardsModel AutoBindDataReader(SqlDataReader dr, params string[] fields) { var model = new Model.DelayedAwardsModel(); if (DbTool.HasFields("Id", fields)) { model.Id = DbTool.ConvertObject <System.Int32>(dr["Id"]); } if (DbTool.HasFields("OrderId", fields)) { model.OrderId = DbTool.ConvertObject <System.Int32>(dr["OrderId"]); } if (DbTool.HasFields("StatusId", fields)) { model.StatusId = DbTool.ConvertObject <System.Int32>(dr["StatusId"]); } if (DbTool.HasFields("CreateTime", fields)) { model.CreateTime = DbTool.ConvertObject <System.DateTime>(dr["CreateTime"]); } if (DbTool.HasFields("DelayedTime", fields)) { model.DelayedTime = DbTool.ConvertObject <System.DateTime>(dr["DelayedTime"]); } if (DbTool.HasFields("UpdateTime", fields)) { model.UpdateTime = DbTool.ConvertObject <System.DateTime>(dr["UpdateTime"]); } if (DbTool.HasFields("Remark", fields)) { model.Remark = DbTool.ConvertObject <System.String>(dr["Remark"]); } return(model); }
protected void BindDataReader(Model.DelayedAwardsModel model, SqlDataReader dr) { model.Id = DbTool.ConvertObject <System.Int32>(dr["Id"]); model.OrderId = DbTool.ConvertObject <System.Int32>(dr["OrderId"]); model.StatusId = DbTool.ConvertObject <System.Int32>(dr["StatusId"]); model.CreateTime = DbTool.ConvertObject <System.DateTime>(dr["CreateTime"]); model.DelayedTime = DbTool.ConvertObject <System.DateTime>(dr["DelayedTime"]); model.UpdateTime = DbTool.ConvertObject <System.DateTime>(dr["UpdateTime"]); model.Remark = DbTool.ConvertObject <System.String>(dr["Remark"]); }
public int Edit(Model.DelayedAwardsModel model, Model.OrderInfoModel OrderModel) { int rtn = 0; using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionString)) { if (conn.State != ConnectionState.Open) { conn.Open(); } using (SqlTransaction trans = conn.BeginTransaction()) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("update OrderInfo set "); strSql.Append("IsGrant=@IsGrant,GrantTime=@GrantTime,States=@States"); strSql.Append(" where Id=@Id "); SqlParameter[] parameters = { new SqlParameter("@IsGrant", DbTool.FixSqlParameter(OrderModel.IsGrant)) , new SqlParameter("@GrantTime", DbTool.FixSqlParameter(OrderModel.GrantTime)) , new SqlParameter("@States", DbTool.FixSqlParameter(OrderModel.States)) , new SqlParameter("@Id", OrderModel.Id) }; rtn += SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strSql.ToString(), parameters); StringBuilder strSql2 = new StringBuilder(); strSql2.Append("update DelayedAwards set "); strSql2.Append("StatusId=@StatusId,UpdateTime=@UpdateTime"); strSql2.Append(" where Id=@Id "); SqlParameter[] parameters2 = { new SqlParameter("@StatusId", model.StatusId), new SqlParameter("@UpdateTime", model.UpdateTime), new SqlParameter("@Id", model.Id) }; rtn += SqlHelper.ExecuteNonQuery(trans, CommandType.Text, strSql2.ToString(), parameters2); if (rtn > 1) { trans.Commit(); return(rtn); } } catch (Exception) { trans.Rollback(); rtn = 0; } } } return(0); }
public Model.DelayedAwardsModel GetModel(int Id) { string sql = "select top 1 * from DelayedAwards where Id =" + Id; Model.DelayedAwardsModel model = new Model.DelayedAwardsModel(); SqlDataReader dr = SqlHelper.ExecuteReader(conn, CommandType.Text, sql.ToString()); if (dr.Read()) { //var fields = DbTool.GetReaderFieldNames(dr); //model = AutoBindDataReader(dr, fields); BindDataReader(model, dr); } dr.Close(); return(model); }
/// <summary> /// 执行指定方法 /// </summary> private static void ExecuteMethod(Model.DelayedAwardsModel DelayedModel, PrizeParameter Parameter) { try { if (DelayedModel.Id > 0 && DelayedModel.StatusId == 0) { Model.OrderInfoModel OrderModel = new Db.OrderInfoDal().GetModel(DelayedModel.OrderId); if (OrderModel.Id > 0) { //发放奖品 SendPrize(DelayedModel, OrderModel, Parameter); } } } catch (Exception ex) { Common.Email.EmailTool.sendEmail(System.Configuration.ConfigurationManager.AppSettings["LogErrorEmailTo"], "延时发奖异常", ex.ToString(), ""); } }
public List <Model.DelayedAwardsModel> GetModelList(int Top, string sqlwhere) { List <Model.DelayedAwardsModel> result = new List <Model.DelayedAwardsModel>(); string sql = "select " + (Top > 0 ? "Top " + Top : "") + " * from DelayedAwards where 1=1 " + sqlwhere; Model.DelayedAwardsModel model = new Model.DelayedAwardsModel(); SqlDataReader dr = SqlHelper.ExecuteReader(conn, CommandType.Text, sql.ToString()); //var fields = DbTool.GetReaderFieldNames(dr); while (dr.Read()) { //model = AutoBindDataReader(dr, fields); model = new Model.DelayedAwardsModel(); BindDataReader(model, dr); result.Add(model); } dr.Close(); return(result); }
public int Add(Model.DelayedAwardsModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into [DelayedAwards]"); strSql.Append("(OrderId,StatusId,CreateTime,DelayedTime,UpdateTime,Remark)"); strSql.Append(" values (@OrderId,@StatusId,@CreateTime,@DelayedTime,@UpdateTime,@Remark)"); strSql.Append(";select SCOPE_IDENTITY()"); SqlParameter[] parameters = { new SqlParameter("@OrderId", DbTool.FixSqlParameter(model.OrderId)) , new SqlParameter("@StatusId", DbTool.FixSqlParameter(model.StatusId)) , new SqlParameter("@CreateTime", DbTool.FixSqlParameter(model.CreateTime)) , new SqlParameter("@DelayedTime", DbTool.FixSqlParameter(model.DelayedTime)) , new SqlParameter("@UpdateTime", DbTool.FixSqlParameter(model.UpdateTime)) , new SqlParameter("@Remark", DbTool.FixSqlParameter(model.Remark)) }; return(DbTool.ConvertObject <int>(SqlHelper.ExecuteScalar(conn, CommandType.Text, strSql.ToString(), parameters), 0)); }
/// <summary> /// 发放奖品 /// </summary> /// <param name="OrderModel">订单</param> /// <returns></returns> private static void SendPrize(Model.DelayedAwardsModel DelayedModel, Model.OrderInfoModel OrderModel, PrizeParameter Parameter) { //具体发奖逻辑根据项目来 Common.RedPackHelper rp = new Common.RedPackHelper(); int moeny = OrderModel.RedPackMoney; if (Parameter.IsTest == 1) { moeny = 100; } if (Parameter.RedSwitch == 0) //红包开关 { return; } Common.RedPackHelper.result result = rp.send(Parameter.acid, Parameter.acid, OrderModel.OpenId, OrderModel.HbOrderCode, moeny, Parameter.ckey, Parameter.hkey); if (result.SendStatus) { DelayedModel.StatusId = 1; OrderModel.States = 1; OrderModel.IsGrant = 1; } else { DelayedModel.StatusId = -1; OrderModel.IsGrant = -1; } //执行时间 DelayedModel.UpdateTime = DateTime.Now; OrderModel.GrantTime = DelayedModel.UpdateTime; delayedAwardsDal.Edit(DelayedModel, OrderModel); }
public int Update(Model.DelayedAwardsModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update DelayedAwards set "); strSql.Append("OrderId=@OrderId,StatusId=@StatusId,CreateTime=@CreateTime,DelayedTime=@DelayedTime,UpdateTime=@UpdateTime,Remark=@Remark "); strSql.Append(" where Id=@Id "); SqlParameter[] parameters = { new SqlParameter("@OrderId", DbTool.FixSqlParameter(model.OrderId)) , new SqlParameter("@StatusId", DbTool.FixSqlParameter(model.StatusId)) , new SqlParameter("@CreateTime", DbTool.FixSqlParameter(model.CreateTime)) , new SqlParameter("@DelayedTime", DbTool.FixSqlParameter(model.DelayedTime)) , new SqlParameter("@UpdateTime", DbTool.FixSqlParameter(model.UpdateTime)) , new SqlParameter("@Remark", DbTool.FixSqlParameter(model.Remark)) , new SqlParameter("@Id", model.Id) }; return(SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSql.ToString(), parameters)); }