/**
|
* 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
|
{
|
|
|
/// <summary>
|
/// 需求报价数据访问实现
|
/// </summary>
|
public class EC_DemandQuoteDAL : IEC_DemandQuoteDAL
|
{
|
|
private Database _dataBase = null;
|
|
|
#region 常量
|
|
/// <summary>
|
/// 查询目标
|
/// </summary>
|
const string SELECTTARGET = @" d.*,
|
m.Name as QuoterName,
|
q.DemandName as DemandName ,q.EndTime
|
";
|
/// <summary>
|
/// 查询来源
|
/// </summary>
|
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)";
|
/// <summary>
|
/// 分页默认排序字段
|
/// </summary>
|
const string ORDERBY = "d.Keyid desc ";
|
#endregion
|
|
public EC_DemandQuoteDAL()
|
{
|
_dataBase = new Database();
|
}
|
|
/// <summary>
|
/// 新增
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.EC_DemandQuote trueModel = model as Model.EC_DemandQuote;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
else { }
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
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<SqlParameter>());
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 修改
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
|
return false;
|
}
|
|
/// <summary>
|
/// 删除
|
/// </summary>
|
/// <param name="id"></param>
|
/// <returns></returns>
|
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.EC_DemandQuote trueModel = model as Model.EC_DemandQuote;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
else { }
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
new SqlParameter("@Keyid",trueModel.Keyid)
|
};
|
try
|
{
|
_dataBase.Query("sp_EC_DemandQuote_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>());
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="query"></param>
|
/// <param name="pagination"></param>
|
/// <returns></returns>
|
public IEnumerable<EC_DemandQuote> 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<EC_DemandQuote>(pagination, SELECTTARGET, fromSouce, orderbys[0], resultOrderBy);
|
}
|
|
/// <summary>
|
/// 单个查询
|
/// </summary>
|
/// <param name="query"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.EC_DemandQuote> SelectAllModel(Infrastructure.Query.Query query)
|
{
|
throw new NotImplementedException();
|
}
|
|
/// <summary>
|
/// 根据需求编号查询报价(分页)
|
/// </summary>
|
/// <param name="pagination">分页参数</param>
|
/// <param name="demandId">需求编号</param>
|
/// <param name="beginDate">开始时间</param>
|
/// <param name="endDate">结束时间</param>
|
/// <returns></returns>
|
public IEnumerable<EC_DemandQuote> 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);
|
}
|
/// <summary>
|
/// 根据报价人编号查询报价(分页)
|
/// </summary>
|
/// <param name="pagination">分页参数</param>
|
/// <param name="demandId">需求编号</param>
|
/// <param name="beginDate">开始时间</param>
|
/// <param name="endDate">结束时间</param>
|
/// <returns></returns>
|
public IEnumerable<EC_DemandQuote> 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);
|
}
|
|
|
/// <summary>
|
/// 根据编号批量删除数据
|
/// </summary>
|
/// <param name="currentOperator">当前操作人</param>
|
/// <param name="ids">编号集合</param>
|
/// <returns></returns>
|
public bool DeleteDataByIds(string currentOperator, params int[] ids)
|
{
|
return Database.DeleteDataByIds<EC_DemandQuote>(this, currentOperator, ids);
|
}
|
|
|
/// <summary>
|
/// 根据编号获取实体
|
/// </summary>
|
/// <param name="id">报价编号</param>
|
/// <returns></returns>
|
public EC_DemandQuote SelectModelById(int id)
|
{
|
IList<EC_DemandQuote> result = _dataBase.SelectModel<EC_DemandQuote>(SELECTTARGET, string.Format("{0}{1}{2}", FROMSOUCEBEFORE,string.Format(" And d.Keyid={0}",id), FROMSOUCEEND));
|
return null==result||0==result.Count?null:result[0];
|
}
|
|
|
|
}
|
}
|