/** * EC_DemandQuoteDAL.cs * * 功 能: 需求报价数据访问实现 * 类 名: EC_DemandQuoteDAL * * Ver 变更日期 负责人 变更内容 * ─────────────────────────────────── * V0.01 2013-4-12 9:23 吴崎均 更改InsertModel以及UpdateModel以与存储相匹配 * V0.02 吴崎均 新增分页实现、获取单个实体实现 * V0.03 2013-4-18 16:00 吴崎均 新增批量删除 * V0.04 2013-5-24 10:32 吴崎均 新增根据编号获取实体 * V0.5 2013-5-28 13:43 吴崎均 修改批量删除方法定义及实现 * * * * */ 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 CY.Infrastructure.Query; namespace CY.SQLDAL { /// /// 需求报价数据访问实现 /// public class EC_DemandQuoteDAL : IEC_DemandQuoteDAL { private Database _dataBase = null; #region 常量 /// /// 查询目标 /// const string SELECTTARGET = @" d.*, m.Name as QuoterName, q.DemandName as DemandName ,q.EndTime "; /// /// 查询来源 /// const string FROMSOUCEBEFORE = " EC_DemandQuote as d Inner Join EC_MemberBasic as m On(d.QuoterId=m.MemberId "; const string FROMSOUCEEND = " ) Inner Join EC_QuoteDemand as q On(d.DemandId=q.Keyid)"; /// /// 分页默认排序字段 /// const string ORDERBY = "d.Keyid desc "; #endregion public EC_DemandQuoteDAL() { _dataBase = new Database(); } /// /// 新增 /// /// /// public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { Model.EC_DemandQuote trueModel = model as Model.EC_DemandQuote; if (trueModel == null) { return false; } else { } IList sqlParms = new List() { new SqlParameter("@DemandId",trueModel.DemandId), new SqlParameter("@QuoteInfo",trueModel.QuoteInfo), new SqlParameter("@QuoterId",trueModel.QuoterId), new SqlParameter("@QuoterPrice",trueModel.QuoterPrice), new SqlParameter("@QuoteRemark",trueModel.QuoteRemark) }; try { _dataBase.Query("sp_EC_DemandQuote_Insert", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 修改 /// /// /// public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { return false; } /// /// 删除 /// /// /// public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { Model.EC_DemandQuote trueModel = model as Model.EC_DemandQuote; if (trueModel == null) { return false; } else { } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.Keyid) }; try { _dataBase.Query("sp_EC_DemandQuote_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 分页查询 /// /// /// /// 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; else { } //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 = 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 IEnumerable SelectAllModel(Infrastructure.Query.Query query) { throw new NotImplementedException(); } /// /// 根据需求编号查询报价(分页) /// /// 分页参数 /// 需求编号 /// 开始时间 /// 结束时间 /// public IEnumerable SelectModelPageByDemandId(Infrastructure.Query.Pagination pagination, int demandId, DateTime? beginDate, DateTime? endDate) { if (demandId < 1) return null;//错误数据返会空 else { } string condition = string.Format(" And d.DemandId= {0}", demandId); if (beginDate.HasValue) { condition += string.Format(" And d.QuoteTime >= '{0}' ", beginDate.Value); } else if (endDate.HasValue) { condition += string.Format(" And d.QuoteTime <= '{0}' ", endDate.Value); } else { } Query query = new Query(true); query.Criteria.Add(new Criterion("condition", condition)); return SelectModelPage(query, pagination); } /// /// 根据报价人编号查询报价(分页) /// /// 分页参数 /// 需求编号 /// 开始时间 /// 结束时间 /// public IEnumerable SelectModelPageByQuoterId(Infrastructure.Query.Pagination pagination, Guid quoterId, DateTime? beginDate, DateTime? endDate) { if (Guid.Empty == quoterId) return null;//错误数据返会空 else { } string condition = string.Format(" And d.QuoterId= '{0}' ", quoterId); if (beginDate.HasValue) { condition += string.Format(" And d.QuoteTime >= '{0}' ", beginDate.Value.ToString("yyyy-MM-dd")); } else if (endDate.HasValue) { condition += string.Format(" And d.QuoteTime <= '{0}' ", endDate.Value.ToString("yyyy-MM-dd")); } else { } Query query = new Query(true); query.Criteria.Add(new Criterion("condition", condition)); return SelectModelPage(query, pagination); } /// /// 根据编号批量删除数据 /// /// 当前操作人 /// 编号集合 /// public bool DeleteDataByIds(string currentOperator, params int[] ids) { return Database.DeleteDataByIds(this, currentOperator, ids); } /// /// 根据编号获取实体 /// /// 报价编号 /// public EC_DemandQuote SelectModelById(int id) { IList result = _dataBase.SelectModel(SELECTTARGET, string.Format("{0}{1}{2}", FROMSOUCEBEFORE,string.Format(" And d.Keyid={0}",id), FROMSOUCEEND)); return null==result||0==result.Count?null:result[0]; } } }