using System; using System.Collections.Generic; using System.Linq; using System.Text; using CY.IDAL; using System.Data.SqlClient; using System.Data; using CY.Model; using System.Transactions; namespace CY.SQLDAL { public class CoreDeliverOrderDAL : ICoreDeliverOrderDAL { private Database _dataBase = null; #region 常量 /// /// 查询目标 /// const string SELECTTARGET = " t.* "; /// /// 查询来源 /// const string FROMSOUCEBEFORE = " ( select a.*,b.pianqu,b.shipAddress,c.BuyerName " + " from [CoreDeliverOrder] a inner join CoreCmsPlanOrder b on a.OrderId = b.id inner join [EC_OrderBasic] c on b.orderkeyid = c.Keyid where 0=0 "; const string FROMSOUCEEND = ") as t "; /// /// 分页默认排序字段 /// const string ORDERBY = " MakeTime desc "; #endregion public CoreDeliverOrderDAL() { _dataBase = new Database(); } /// /// 新增 /// /// /// public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { Model.CoreDeliverOrder trueModel = model as Model.CoreDeliverOrder; if (trueModel == null) { return false; } SqlParameter MakeTime = null; if (trueModel.MakeTime.HasValue) { MakeTime = new SqlParameter("@MakeTime", trueModel.MakeTime.Value); } else { MakeTime = new SqlParameter("@MakeTime", DBNull.Value); } SqlParameter StartTime = null; if (trueModel.StartTime.HasValue) { StartTime = new SqlParameter("@StartTime", trueModel.StartTime.Value); } else { StartTime = new SqlParameter("@StartTime", DBNull.Value); } SqlParameter OverTime = null; if (trueModel.OverTime.HasValue) { OverTime = new SqlParameter("@OverTime", trueModel.OverTime.Value); } else { OverTime = new SqlParameter("@OverTime", DBNull.Value); } IList sqlParms = new List() { new SqlParameter("@id",trueModel.id), new SqlParameter("@OrderId",trueModel.OrderId), new SqlParameter("@DeliveryMoble",trueModel.DeliveryMoble), new SqlParameter("@ContactName",string.IsNullOrEmpty(trueModel.ContactName)?"":trueModel.ContactName), new SqlParameter("@ContactPhone",string.IsNullOrEmpty(trueModel.ContactPhone)?"":trueModel.ContactPhone), new SqlParameter("@OrderState",trueModel.OrderState), MakeTime, StartTime, OverTime, new SqlParameter("@Remarke",string.IsNullOrEmpty(trueModel.Remarke)?"":trueModel.Remarke), new SqlParameter("@DriverId",trueModel.DriverId.HasValue? trueModel.DriverId.Value:0), new SqlParameter("@CreateTime",trueModel.CreateTime), new SqlParameter("@CreateBy",trueModel.CreateBy), }; string sql = "Insert Into CoreDeliverOrder ([id],[OrderId],[DeliveryMoble],[ContactName],[ContactPhone], [OrderState], [MakeTime],[StartTime], [OverTime],[Remarke], [DriverId],[CreateTime],[CreateBy] )" + " Values (@id,@OrderId,@DeliveryMoble,@ContactName, @ContactPhone, @OrderState, @MakeTime, @StartTime, @OverTime, @Remarke, @DriverId,@CreateTime,@CreateBy )"; try { _dataBase.ExecuteSql(sql, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 新增 /// /// /// public int InsertModelIden(CY.Model.CoreDeliverOrder trueModel) { //Model.CoreDeliverOrder trueModel = model as Model.CoreDeliverOrder; if (trueModel == null) { return 0; } SqlParameter MakeTime = null; if (trueModel.MakeTime.HasValue) { MakeTime = new SqlParameter("@MakeTime", trueModel.MakeTime.Value); } else { MakeTime = new SqlParameter("@MakeTime", DBNull.Value); } SqlParameter StartTime = null; if (trueModel.StartTime.HasValue) { StartTime = new SqlParameter("@StartTime", trueModel.StartTime.Value); } else { StartTime = new SqlParameter("@StartTime", DBNull.Value); } SqlParameter OverTime = null; if (trueModel.OverTime.HasValue) { OverTime = new SqlParameter("@OverTime", trueModel.OverTime.Value); } else { OverTime = new SqlParameter("@OverTime", DBNull.Value); } IList sqlParms = new List() { new SqlParameter("@id",trueModel.id), new SqlParameter("@OrderId",trueModel.OrderId), new SqlParameter("@DeliveryMoble",trueModel.DeliveryMoble), new SqlParameter("@ContactName",string.IsNullOrEmpty(trueModel.ContactName)?"":trueModel.ContactName), new SqlParameter("@ContactPhone",string.IsNullOrEmpty(trueModel.ContactPhone)?"":trueModel.ContactPhone), new SqlParameter("@OrderState",trueModel.OrderState), MakeTime, StartTime, OverTime, new SqlParameter("@Remarke",string.IsNullOrEmpty(trueModel.Remarke)?"":trueModel.Remarke), new SqlParameter("@DriverId",trueModel.DriverId.HasValue? trueModel.DriverId.Value:0), new SqlParameter("@CreateTime",trueModel.CreateTime), new SqlParameter("@CreateBy",trueModel.CreateBy), }; string sql = "Insert Into CoreDeliverOrder ([id],[OrderId],[DeliveryMoble],[ContactName],[ContactPhone], [OrderState], [MakeTime],[StartTime], [OverTime],[Remarke], [DriverId],[CreateTime],[CreateBy] )" + " Values (@id,@OrderId,@DeliveryMoble,@ContactName, @ContactPhone, @OrderState, @MakeTime, @StartTime, @OverTime, @Remarke, @DriverId,@CreateTime,@CreateBy )"; int id = 0; try { id = _dataBase.InsertDataAndGetId(sql, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return id; } /// /// 修改 /// /// /// public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { Model.CoreDeliverOrder trueModel = model as Model.CoreDeliverOrder; if (trueModel == null) { return false; } SqlParameter MakeTime = null; if (trueModel.MakeTime.HasValue) { MakeTime = new SqlParameter("@MakeTime", trueModel.MakeTime.Value); } else { MakeTime = new SqlParameter("@MakeTime", DBNull.Value); } SqlParameter StartTime = null; if (trueModel.StartTime.HasValue) { StartTime = new SqlParameter("@StartTime", trueModel.StartTime.Value); } else { StartTime = new SqlParameter("@StartTime", DBNull.Value); } SqlParameter OverTime = null; if (trueModel.OverTime.HasValue) { OverTime = new SqlParameter("@OverTime", trueModel.OverTime.Value); } else { OverTime = new SqlParameter("@OverTime", DBNull.Value); } IList sqlParms = new List() { new SqlParameter("@id",trueModel.id), new SqlParameter("@OrderId",trueModel.OrderId), new SqlParameter("@DeliveryMoble",trueModel.DeliveryMoble), new SqlParameter("@ContactName",string.IsNullOrEmpty(trueModel.ContactName)?"":trueModel.ContactName), new SqlParameter("@ContactPhone",string.IsNullOrEmpty(trueModel.ContactPhone)?"":trueModel.ContactPhone), new SqlParameter("@OrderState",trueModel.OrderState), MakeTime, StartTime, OverTime, new SqlParameter("@Remarke",string.IsNullOrEmpty(trueModel.Remarke)?"":trueModel.Remarke), new SqlParameter("@DriverId",trueModel.DriverId.HasValue? trueModel.DriverId.Value:0), new SqlParameter("@UpdataTime",trueModel.UpdataTime), new SqlParameter("@UpDataBy",trueModel.UpDataBy), }; string sql = "Update CoreDeliverOrder Set [OrderId]=@OrderId,[DeliveryMoble]=@DeliveryMoble,[ContactName]=@ContactName,[ContactPhone]=@ContactPhone, [OrderState]=@OrderState, [MakeTime]=@MakeTime,[StartTime]=@StartTime, [OverTime]=@OverTime,[Remarke]=@Remarke, [DriverId]=@DriverId,[UpdataTime]=@UpdataTime,[UpDataBy]=@UpDataBy where [id] =@id "; try { _dataBase.ExecuteSql(sql, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 根据编号获得信息 /// /// 编号 /// public CoreDeliverOrder GetModelByKeyid(string keyid) { try { string condition = " "; if (!keyid.Equals(Guid.Empty)) { condition = " id='" + keyid + "'"; } else { return null; } // return null;//错误数据返会空 IList result = _dataBase.SelectModel("*", "CoreDeliverOrder", condition) as IList;//执行查询 return (null == result || result.Count == 0) ? null : result[0];//返回结果 } catch (Exception ex) { throw ex; } } /// /// 全部查询 /// /// /// public IEnumerable SelectAllModel(Infrastructure.Query.Query query) { return _dataBase.SelectModel(" * ", " CoreDeliverOrder ") as IList;//执行查询 } /// /// 全部查询 /// /// /// public IEnumerable GetModelByformid(Guid FirmId) { return _dataBase.SelectModel(" * ", " CoreDeliverOrder ", " FirmId = '" + FirmId + "'") as IList;//执行查询 } /// /// 全部查询 /// /// /// public IEnumerable GetModelByorderid(int orderid) { return _dataBase.SelectModel(" * ", " CoreDeliverOrder ", " OrderId = " + orderid + " order by MakeTime desc ") as IList;//执行查询 } /// /// 全部查询 /// /// /// public IEnumerable GetModelByids(string ids) { return _dataBase.SelectModel(" * ", " CoreDeliverOrder ", " [id] in ( " + ids + ")") as IList;//执行查询 } /// /// 分页查询 /// /// /// /// public IEnumerable SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination) { if (null == pagination || null == query || null == query.Criteria || 1 > query.Criteria.Count) return null; //query.Criteria 首个元素必须是排序字段,其值为结果排序字段 int maxParamIndex = query.Criteria.Count - 1;//最大索引 string[] orderbys = new string[] { ORDERBY }; string resultOrderBy = "";//结果集排序方式 if ("@orderBy".Equals(query.Criteria[maxParamIndex].PropertyName)) { orderbys = string.Format("{0}", query.Criteria[maxParamIndex].Value).Split(','); resultOrderBy = query.Criteria[maxParamIndex].Value.ToString();//= 1 == orderbys.Length ? resultOrderBy : orderbys[1]; } string fromSouce = string.Format("{0}{1}{2}", FROMSOUCEBEFORE, query.Criteria[0].Value, FROMSOUCEEND);//拼装条件 return _dataBase.SelectModelPage(pagination, SELECTTARGET, fromSouce, orderbys[0], resultOrderBy); } /// /// 删除 /// /// /// public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { Model.CoreDeliverOrder trueModel = model as Model.CoreDeliverOrder; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.id), }; string sql = "Delete CoreDeliverOrder Where [id] = @Keyid;Delete [CoreDeliverOrderItem] Where [OrderID] = @Keyid; "; try { _dataBase.ExecuteSql(sql, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } } }