Esempio n. 1
0
        /// <summary>
        /// 根据新车订单信息,生成任务
        /// </summary>
        /// <param name="tran"></param>
        /// <param name="model">新车订单信息</param>
        /// <returns>返回任务ID</returns>
        public long InsertByOrder(SqlTransaction tran, Entities.OrderNewCarLog model)
        {
            Entities.OrderTask otModel = new Entities.OrderTask();
            if (model.OrderType == 1)
            {
                otModel.Source = 3;
            }
            else
            {
                otModel.Source = 1;//1新车,2置换,3试驾
            }
            otModel.TaskStatus        = (int)TaskStatus.NoAllocation;
            otModel.RelationID        = model.RecID;
            otModel.BGID              = int.Parse(ConfigurationUtil.GetAppSettingValue("GenTaskDefaultGroupID"));
            otModel.AssignUserID      = null;
            otModel.AssignTime        = null;
            otModel.UserName          = model.UserName;
            otModel.IsSelectDMSMember = null;
            otModel.Status            = 0;
            otModel.SubmitTime        = null;
            otModel.CreateTime        = DateTime.Now;
            otModel.CreateUserID      = null;
            otModel.NoDealerReasonID  = -2;
            otModel.NoDealerReason    = "";
            otModel.DealerID          = model.DealerID;

            return(Insert(tran, otModel));
        }
        /// <summary>
        ///  增加一条数据
        /// </summary>
        public long Insert(SqlTransaction sqltran, Entities.OrderNewCarLog model)
        {
            SqlParameter[] parameters =
            {
                new SqlParameter("@RecID",           SqlDbType.BigInt,            8),
                new SqlParameter("@YPOrderID",       SqlDbType.Int,               4),
                new SqlParameter("@UserName",        SqlDbType.NVarChar,         64),
                new SqlParameter("@UserPhone",       SqlDbType.NVarChar,         64),
                new SqlParameter("@UserMobile",      SqlDbType.NVarChar,         64),
                new SqlParameter("@UserMail",        SqlDbType.NVarChar,         64),
                new SqlParameter("@UserGender",      SqlDbType.Int,               4),
                new SqlParameter("@LocationID",      SqlDbType.Int,               4),
                new SqlParameter("@LocationName",    SqlDbType.NVarChar,         64),
                new SqlParameter("@UserAddress",     SqlDbType.NVarChar,       1024),
                new SqlParameter("@OrderCreateTime", SqlDbType.SmallDateTime),
                new SqlParameter("@OrderPrice",      SqlDbType.Decimal,           9),
                new SqlParameter("@OrderQuantity",   SqlDbType.Int,               4),
                new SqlParameter("@OrderRemark",     SqlDbType.NVarChar,       1024),
                new SqlParameter("@CarID",           SqlDbType.Int,               4),
                new SqlParameter("@CarFullName",     SqlDbType.NVarChar,       1024),
                new SqlParameter("@CarPrice",        SqlDbType.Decimal,           9),
                new SqlParameter("@CarColor",        SqlDbType.NVarChar,         16),
                new SqlParameter("@CarPromotions",   SqlDbType.NVarChar,       1024),
                new SqlParameter("@DealerID",        SqlDbType.Int,               4),
                new SqlParameter("@OrderType",       SqlDbType.Int, 4)
            };
            //new SqlParameter("@CreateTime", SqlDbType.DateTime)};
            parameters[0].Direction = ParameterDirection.Output;
            parameters[1].Value     = model.YPOrderID;
            parameters[2].Value     = model.UserName;
            parameters[3].Value     = model.UserPhone;
            parameters[4].Value     = model.UserMobile;
            parameters[5].Value     = model.UserMail;
            parameters[6].Value     = model.UserGender;
            parameters[7].Value     = model.LocationID;
            parameters[8].Value     = model.LocationName;
            parameters[9].Value     = model.UserAddress;
            parameters[10].Value    = model.OrderCreateTime;
            parameters[11].Value    = model.OrderPrice;
            parameters[12].Value    = model.OrderQuantity;
            parameters[13].Value    = model.OrderRemark;
            parameters[14].Value    = model.CarID;
            parameters[15].Value    = model.CarFullName;
            parameters[16].Value    = model.CarPrice;
            parameters[17].Value    = model.CarColor;
            parameters[18].Value    = model.CarPromotions;
            parameters[19].Value    = model.DealerID;
            parameters[20].Value    = model.OrderType;
            //parameters[19].Value = model.CreateTime;

            SqlHelper.ExecuteNonQuery(sqltran, CommandType.StoredProcedure, P_ORDERNEWCARLOG_INSERT, parameters);
            model.RecID = (long)parameters[0].Value;
            return(model.RecID);
        }
        /// <summary>
        ///  更新一条数据
        /// </summary>
        public int Update(Entities.OrderNewCarLog model)
        {
            SqlParameter[] parameters =
            {
                new SqlParameter("@RecID",           SqlDbType.BigInt,            8),
                new SqlParameter("@YPOrderID",       SqlDbType.Int,               4),
                new SqlParameter("@UserName",        SqlDbType.NVarChar,         64),
                new SqlParameter("@UserPhone",       SqlDbType.NVarChar,         64),
                new SqlParameter("@UserMobile",      SqlDbType.NVarChar,         64),
                new SqlParameter("@UserMail",        SqlDbType.NVarChar,         64),
                new SqlParameter("@UserGender",      SqlDbType.Int,               4),
                new SqlParameter("@LocationID",      SqlDbType.Int,               4),
                new SqlParameter("@LocationName",    SqlDbType.NVarChar,         64),
                new SqlParameter("@UserAddress",     SqlDbType.NVarChar,       1024),
                new SqlParameter("@OrderCreateTime", SqlDbType.SmallDateTime),
                new SqlParameter("@OrderPrice",      SqlDbType.Decimal,           9),
                new SqlParameter("@OrderQuantity",   SqlDbType.Int,               4),
                new SqlParameter("@OrderRemark",     SqlDbType.NVarChar,       1024),
                new SqlParameter("@CarID",           SqlDbType.Int,               4),
                new SqlParameter("@CarFullName",     SqlDbType.NVarChar,       1024),
                new SqlParameter("@CarPrice",        SqlDbType.Decimal,           9),
                new SqlParameter("@CarColor",        SqlDbType.NVarChar,         16),
                new SqlParameter("@CarPromotions",   SqlDbType.NVarChar,       1024),
                new SqlParameter("@CreateTime",      SqlDbType.DateTime)
            };
            parameters[0].Value  = model.RecID;
            parameters[1].Value  = model.YPOrderID;
            parameters[2].Value  = model.UserName;
            parameters[3].Value  = model.UserPhone;
            parameters[4].Value  = model.UserMobile;
            parameters[5].Value  = model.UserMail;
            parameters[6].Value  = model.UserGender;
            parameters[7].Value  = model.LocationID;
            parameters[8].Value  = model.LocationName;
            parameters[9].Value  = model.UserAddress;
            parameters[10].Value = model.OrderCreateTime;
            parameters[11].Value = model.OrderPrice;
            parameters[12].Value = model.OrderQuantity;
            parameters[13].Value = model.OrderRemark;
            parameters[14].Value = model.CarID;
            parameters[15].Value = model.CarFullName;
            parameters[16].Value = model.CarPrice;
            parameters[17].Value = model.CarColor;
            parameters[18].Value = model.CarPromotions;
            parameters[19].Value = model.CreateTime;

            return(SqlHelper.ExecuteNonQuery(CONNECTIONSTRINGS, CommandType.StoredProcedure, P_ORDERNEWCARLOG_UPDATE, parameters));
        }
        private Entities.OrderNewCarLog LoadSingleOrderNewCarLog(DataRow row)
        {
            Entities.OrderNewCarLog model = new Entities.OrderNewCarLog();

            if (row["RecID"].ToString() != "")
            {
                model.RecID = long.Parse(row["RecID"].ToString());
            }
            if (row["YPOrderID"].ToString() != "")
            {
                model.YPOrderID = int.Parse(row["YPOrderID"].ToString());
            }
            model.UserName   = row["UserName"].ToString();
            model.UserPhone  = row["UserPhone"].ToString();
            model.UserMobile = row["UserMobile"].ToString();
            model.UserMail   = row["UserMail"].ToString();
            if (row["UserGender"].ToString() != "")
            {
                model.UserGender = int.Parse(row["UserGender"].ToString());
            }
            if (row["LocationID"].ToString() != "")
            {
                model.LocationID = int.Parse(row["LocationID"].ToString());
            }
            model.LocationName = row["LocationName"].ToString();
            model.UserAddress  = row["UserAddress"].ToString();
            if (row["OrderCreateTime"].ToString() != "")
            {
                model.OrderCreateTime = DateTime.Parse(row["OrderCreateTime"].ToString());
            }
            if (row["OrderPrice"].ToString() != "")
            {
                model.OrderPrice = decimal.Parse(row["OrderPrice"].ToString());
            }
            if (row["OrderQuantity"].ToString() != "")
            {
                model.OrderQuantity = int.Parse(row["OrderQuantity"].ToString());
            }
            model.OrderRemark = row["OrderRemark"].ToString();
            if (row["CarID"].ToString() != "")
            {
                model.CarID = int.Parse(row["CarID"].ToString());
            }
            model.CarFullName = row["CarFullName"].ToString();
            if (row["CarPrice"].ToString() != "")
            {
                model.CarPrice = decimal.Parse(row["CarPrice"].ToString());
            }
            model.CarColor      = row["CarColor"].ToString();
            model.CarPromotions = row["CarPromotions"].ToString();
            if (row["CreateTime"].ToString() != "")
            {
                model.CreateTime = DateTime.Parse(row["CreateTime"].ToString());
            }
            if (row.Table.Columns.Contains("DealerID") && row["DealerID"].ToString() != "")
            {
                model.DealerID = int.Parse(row["DealerID"].ToString());
            }
            if (row.Table.Columns.Contains("OrderType") && row["OrderType"].ToString() != "")
            {
                model.OrderType = int.Parse(row["OrderType"].ToString());
            }
            return(model);
        }
        /// <summary>
        /// 初始化新车订单日志信息
        /// </summary>
        /// <param name="dr"></param>
        /// <param name="ordertype">订单类型(0-新车订单[默认],1-试驾订单)</param>
        /// <returns></returns>
        private Entities.OrderNewCarLog InitOrderNewCarLog(DataRow dr, int orderType)
        {
            Entities.OrderNewCarLog model = new Entities.OrderNewCarLog();

            try
            {
                model.YPOrderID  = int.Parse(dr["OrderBusinessOpportunityID"].ToString());
                model.UserName   = dr["UserName"].ToString().Trim();
                model.UserPhone  = dr["UserPhone"].ToString().Trim();
                model.UserMobile = dr["UserMobile"].ToString().Trim();
                model.UserMail   = dr["UserMail"].ToString().Trim();
                int userGender = -1;
                if (int.TryParse(dr["UserGender"].ToString(), out userGender))
                {
                    model.UserGender = userGender;
                }
                else
                {
                    model.UserGender = null;
                }
                int locationID = -1;
                if (int.TryParse(dr["LocationID"].ToString(), out locationID))
                {
                    model.LocationID = locationID;
                }
                else
                {
                    model.LocationID = null;
                }
                model.LocationName    = dr["LocationName"].ToString().Trim();
                model.UserAddress     = dr["UserAddress"].ToString().Trim();
                model.OrderCreateTime = DateTime.Parse(dr["OrderBusinessOpportunityCreateTime"].ToString());
                model.OrderPrice      = (decimal?)GetColumnDefaultValue(dr, "OrderPrice", typeof(decimal));
                model.OrderQuantity   = (int?)GetColumnDefaultValue(dr, "OrderQuantity", typeof(int));
                model.OrderRemark     = (string)GetColumnDefaultValue(dr, "OrderRemark", typeof(string));
                model.CarID           = (int?)GetColumnDefaultValue(dr, "CarID", typeof(int));
                model.CarFullName     = (string)GetColumnDefaultValue(dr, "CarFullName", typeof(string));
                model.CarPrice        = (decimal?)GetColumnDefaultValue(dr, "CarPrice", typeof(decimal));
                model.CarColor        = (string)GetColumnDefaultValue(dr, "CarColor", typeof(string));
                model.CarPromotions   = (string)GetColumnDefaultValue(dr, "CarPromotions", typeof(string));
                model.DealerID        = (int?)GetColumnDefaultValue(dr, "DealerID", typeof(int));
                model.OrderType       = orderType;
                //if (dr.Table.Columns.Contains("OrderPrice"))
                //{
                //    decimal orderPrice = -1;
                //    if (decimal.TryParse(dr["OrderPrice"].ToString(), out orderPrice))
                //    {
                //        model.OrderPrice = orderPrice;
                //    }
                //    else
                //    {
                //        model.OrderPrice = null;
                //    }
                //}
                //int orderQuantity = -1;
                //if (int.TryParse(dr["OrderQuantity"].ToString(), out orderQuantity))
                //{
                //    model.OrderQuantity = orderQuantity;
                //}
                //else
                //{
                //    model.OrderQuantity = null;
                //}

                //int carID = -1;
                //if (int.TryParse(dr["CarID"].ToString(), out carID))
                //{
                //    model.CarID = carID;
                //}
                //else
                //{
                //    model.CarID = null;
                //}

                //model.CarPrice = null;
                //if (dr.Table.Columns.Contains("CarPrice"))
                //{
                //    decimal carPrice = -1;
                //    if (decimal.TryParse(dr["CarPrice"].ToString(), out carPrice))
                //    {
                //        model.CarPrice = carPrice;
                //    }
                //    else
                //    {
                //        model.CarPrice = null;
                //    }
                //}


                //int dealerID = -1;
                //if (int.TryParse(dr["DealerID"].ToString(), out dealerID))
                //{
                //    model.DealerID = dealerID;
                //}
                //else
                //{
                //    model.DealerID = null;
                //}
            }
            catch (Exception ex)
            {
                BLL.Util.InsertUserLogNoUser("初始化新车订单信息失败!失败原因:" + ex.Message);
                return(null);
            }
            return(model);
        }
        /// <summary>
        /// 生成任务
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="orderType">订单类型(0-新车订单[默认],1-试驾订单)</param>
        public void GenTask(DataTable dt, int orderType)
        {
            int taskCount  = 0;
            int existCount = 0;

            BLL.Loger.Log4Net.Info("生成_易湃_" + (orderType == 0 ? "新车" : "试驾") + "订单_开始:");
            DateTime  dtNow = DateTime.Now;
            DataTable dtNew = dt.Clone();

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                int YPOrderID = int.Parse(dt.Rows[i]["OrderBusinessOpportunityID"].ToString());
                int?DealerID  = (int?)GetColumnDefaultValue(dt.Rows[i], "DealerID", typeof(int));
                if (BLL.OrderNewCarLog.Instance.IsExistsByYPOrderID(YPOrderID))//存在
                {
                    BLL.Util.InsertUserLogNoUser("(" + (orderType == 0 ? "新车" : "试驾") + ")易湃订单ID:" + YPOrderID + "的记录已经存在,不在生成任务!"); existCount++;
                }
                else if (DealerID != null && DealerID.Value > 0)//Add=Masj,Date=2013-08-26,去掉免费订单的相关数据
                {
                    //BLL.Util.InsertUserLogNoUser("(" + (orderType == 0 ? "新车" : "试驾") + ")易湃订单ID:" + YPOrderID + "的记录经销商为0(免费订单),不生成任务!");
                    BLL.Loger.Log4Net.Info("(" + (orderType == 0 ? "新车" : "试驾") + ")易湃订单ID:" + YPOrderID + "的记录经销商为" + DealerID + "(免费订单),不生成任务!");
                }
                else//不存在
                {
                    dtNew.ImportRow(dt.Rows[i]);
                }
            }
            BLL.Loger.Log4Net.Info("检测拿到的订单数据中有" + existCount + "条数据在呼叫中心库中已经存在了");

            string        connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC");
            SqlConnection connection        = new SqlConnection(connectionstrings);

            connection.Open();
            SqlTransaction tran = connection.BeginTransaction("OrderNewCarLogTransaction");

            try
            {
                for (int i = 0; i < dtNew.Rows.Count; i++)
                {
                    Entities.OrderNewCarLog model = InitOrderNewCarLog(dtNew.Rows[i], orderType);
                    if (model != null)
                    {
                        long OrderNewCarLogID = Insert(tran, model); //插入 OrderNewCarLog 表
                        BLL.Loger.Log4Net.Info(string.Format((orderType == 0 ? "新车" : "试驾") + "任务生成表OrderNewCarLog成功,主键ID为:{0},无主订单ID为:{1},车款ID:{2}",
                                                             OrderNewCarLogID, model.YPOrderID, model.CarID));

                        if (model.CarID != Constant.INT_INVALID_VALUE && model.CarID != 0)
                        {
                            //Add By Chybin At 2013.2.13  如果Carid和OrderQuantity为空,就只插入OrderNewCarLog 表,不生成任务,不插入OrderNewCar 表
                            //Add By Masj At 2013.7.26 OrderQuantity为空去掉限制了
                            long taskID = BLL.OrderTask.Instance.InsertByOrder(tran, model); //根据接口得到的原始数据生成任务
                            if (BLL.OrderNewCar.Instance.IsExistsByTaskID(taskID))
                            {
                                BLL.Util.InsertUserLogNoUser(tran, "(" + (orderType == 0 ? "新车" : "试驾") + ")任务ID" + taskID + "的记录已经存在,不在生成任务!");
                            }
                            else if (BLL.OrderNewCar.Instance.InsertByTaskID(tran, taskID, model))
                            {
                                BLL.Util.InsertUserLogNoUser(tran, "(" + (orderType == 0 ? "新车" : "试驾") + ")任务ID" + taskID + "的记录生成成功!"); taskCount++;
                            }
                        }
                    }
                }
                //事务提交
                tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();
                string msg = "(新车)生成任务失败!失败原因:" + ex.Message;
                BLL.Util.InsertUserLogNoUser(msg);
                BLL.Loger.Log4Net.Error(msg, ex);
            }
            finally
            {
                connection.Close();
            }
            string msgTitle = "一共生成(新车)任务:" + taskCount + "个";

            BLL.Util.InsertUserLogNoUser(msgTitle);
            TimeSpan ts = new TimeSpan();

            ts = DateTime.Now - dtNow;
            BLL.Loger.Log4Net.Info("生成_易湃_新车订单_结束:" + msgTitle + ",用时" + ts.TotalSeconds + "秒。");
        }
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public int Update(SqlTransaction sqltran, Entities.OrderNewCarLog model)
 {
     return(Dal.OrderNewCarLog.Instance.Update(sqltran, model));
 }
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public int Update(Entities.OrderNewCarLog model)
 {
     return(Dal.OrderNewCarLog.Instance.Update(model));
 }
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public long Insert(SqlTransaction sqltran, Entities.OrderNewCarLog model)
 {
     return(Dal.OrderNewCarLog.Instance.Insert(sqltran, model));
 }
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public int Insert(Entities.OrderNewCarLog model)
 {
     return(Dal.OrderNewCarLog.Instance.Insert(model));
 }
Esempio n. 11
0
        /// <summary>
        /// 根据易湃新车订单实体信息,插入表OrderNewCar信息
        /// </summary>
        /// <param name="tran"></param>
        /// <param name="taskID">任务ID</param>
        /// <param name="model">易湃新车订单实体信息</param>
        /// <returns></returns>
        public bool InsertByTaskID(SqlTransaction tran, long taskID, Entities.OrderNewCarLog model)
        {
            Entities.OrderNewCar onModel = new Entities.OrderNewCar();
            onModel.TaskID     = taskID;
            onModel.YPOrderID  = model.YPOrderID;
            onModel.UserName   = model.UserName;
            onModel.UserPhone  = model.UserPhone;
            onModel.UserMobile = model.UserMobile;
            onModel.UserMail   = model.UserMail;
            if (model.UserGender != null && model.UserGender.Value == 0)
            {
                onModel.UserGender = 2;//性别“女”
            }
            else
            {
                onModel.UserGender = model.UserGender;
            }
            onModel.ProvinceID = null;
            onModel.CityID     = null;
            onModel.CountyID   = null;
            if (model.LocationID != null)
            {
                string locationName = BitAuto.YanFa.Crm2009.BLL.AreaInfo.Instance.GetAreaStrByAreaID(model.LocationID.Value.ToString());
                switch (locationName.Split(',').Length)
                {
                case 1: onModel.ProvinceID = int.Parse(locationName.Split(',')[0]);
                    break;

                case 2:
                    onModel.ProvinceID = int.Parse(locationName.Split(',')[0]);
                    onModel.CityID     = int.Parse(locationName.Split(',')[1]);
                    break;

                case 3:
                    onModel.ProvinceID = int.Parse(locationName.Split(',')[0]);
                    onModel.CityID     = int.Parse(locationName.Split(',')[1]);
                    onModel.CountyID   = int.Parse(locationName.Split(',')[2]);
                    break;

                default:
                    break;
                }
            }
            onModel.AreaID          = null;
            onModel.UserAddress     = model.UserAddress;
            onModel.OrderCreateTime = model.OrderCreateTime;
            onModel.OrderRemark     = model.OrderRemark;
            onModel.CarMasterID     = null;
            onModel.CarSerialID     = null;
            onModel.CarTypeID       = null;
            if (model.CarID != null)
            {
                onModel.CarTypeID = model.CarID;
                int CarMasterID = 0;
                int CarSerialID = 0;
                int brandID     = 0;
                BLL.CarTypeAPI.Instance.GetSerialIDAndMasterBrandIDByCarTypeID(model.CarID.Value, out CarSerialID, out CarMasterID, out brandID);
                //onModel.CarMasterID = CarMasterID;
                //onModel.CarSerialID = CarSerialID;
                if (CarMasterID > 0)
                {
                    onModel.CarMasterID = CarMasterID;
                }
                if (CarSerialID > 0)
                {
                    onModel.CarSerialID = CarSerialID;
                }
            }
            onModel.CarColor      = model.CarColor;
            onModel.DMSMemberCode = string.Empty;
            onModel.DMSMemberName = string.Empty;
            onModel.CallRecord    = string.Empty;
            onModel.Status        = 0;
            onModel.CreateTime    = DateTime.Now;
            onModel.DealerID      = model.DealerID;
            onModel.OrderType     = model.OrderType;

            int recid = Insert(tran, onModel);

            if (recid > 0)
            {
                BLL.Loger.Log4Net.Info(string.Format("新车任务生成表OrderNewCar成功,主键ID为:{0},无主订单ID为:{1},车款ID:{2},子品牌ID:{3},主品牌ID为:{4}",
                                                     recid, onModel.YPOrderID,
                                                     onModel.CarTypeID == null ? 0 : onModel.CarTypeID.Value,
                                                     onModel.CarSerialID == null ? 0 : onModel.CarSerialID.Value,
                                                     onModel.CarMasterID == null ? 0 : onModel.CarMasterID.Value
                                                     ));
                return(true);
            }
            return(false);
        }