Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 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"]);
 }
Exemple #4
0
        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);
        }
Exemple #5
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);
        }
Exemple #6
0
 /// <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(), "");
     }
 }
Exemple #7
0
        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);
        }
Exemple #8
0
        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));
        }
Exemple #9
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);
        }
Exemple #10
0
        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));
        }