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 EC_ExchangeRecordDAL : IEC_ExchangeRecordDAL
{
private Database _dataBase = null;
public EC_ExchangeRecordDAL()
{
_dataBase = new Database();
}
///
/// 新增
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_ExchangeRecord trueModel = model as Model.EC_ExchangeRecord;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter(){Direction=ParameterDirection.ReturnValue,SqlDbType = SqlDbType.Int},
new SqlParameter("@MemberId",trueModel.MemberId),
new SqlParameter("@PrizeId",trueModel.PrizeId),
new SqlParameter("@ExchangeCount",trueModel.ExchangeCount),
new SqlParameter("@UseIntegral",trueModel.UseIntegral),
new SqlParameter("@ExchangeTime",trueModel.ExchangeTime),
new SqlParameter("@ShippingMethod",trueModel.ShippingMethod),
new SqlParameter("@AllUseIntegral",trueModel.AllUseIntegral),
new SqlParameter("@ExchangeStatus",trueModel.ExchangeStatus),
new SqlParameter("@AssociateAddress",trueModel.AssociateAddress),
new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime),
new SqlParameter("@Operator",trueModel.Operator),
new SqlParameter("@Remark",trueModel.Remark),
new SqlParameter("@RecivePeople",trueModel.RecivePeople),
new SqlParameter("@ReciveInfo",trueModel.ReciveInfo)
};
try
{
_dataBase.Query("sp_EC_ExchangeRecord_Insert", CommandType.StoredProcedure, sqlParms.ToArray());
trueModel.Keyid = (int)sqlParms[0].Value;
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 新增
///
///
///
///
///
///
public bool InserModel(EC_ExchangeRecord m_EC_ExchangeRecord, EC_PrizeInfo m_EC_PrizeInfo, Pay_PaymentAccount m_Pay_PaymentAccount, Pay_ScoreRecord m_Pay_ScoreRecord)
{
try
{
bool result = true;
EC_PrizeInfoDAL dal_EC_PrizeInfoDAL = new EC_PrizeInfoDAL(_dataBase);
Pay_PaymentAccountDAL dal_Pay_PaymentAccountDAL = new Pay_PaymentAccountDAL(_dataBase);
Pay_ScoreRecordDAL dal_Pay_ScoreRecordDAL = new Pay_ScoreRecordDAL(_dataBase);
using (TransactionScope t_TransactionScope = new TransactionScope())
{
if (result)
{
result = InserModel(m_EC_ExchangeRecord);
if (result)
{
result = dal_EC_PrizeInfoDAL.UpdateModel(m_EC_PrizeInfo);
if (result)
{
result = dal_Pay_PaymentAccountDAL.UpdateModel(m_Pay_PaymentAccount);
if (result)
{
result = dal_Pay_ScoreRecordDAL.InserModel(m_Pay_ScoreRecord);
if (result)
{
t_TransactionScope.Complete();
}
}
}
}
}
}
return result;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 修改
///
///
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_ExchangeRecord trueModel = model as Model.EC_ExchangeRecord;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
new SqlParameter("@MemberId",trueModel.MemberId),
new SqlParameter("@PrizeId",trueModel.PrizeId),
new SqlParameter("@ExchangeCount",trueModel.ExchangeCount),
new SqlParameter("@UseIntegral",trueModel.UseIntegral),
new SqlParameter("@ExchangeTime",trueModel.ExchangeTime),
new SqlParameter("@ShippingMethod",trueModel.ShippingMethod),
new SqlParameter("@AllUseIntegral",trueModel.AllUseIntegral),
new SqlParameter("@ExchangeStatus",trueModel.ExchangeStatus),
new SqlParameter("@AssociateAddress",trueModel.AssociateAddress),
new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime),
new SqlParameter("@Operator",trueModel.Operator),
new SqlParameter("@Remark",trueModel.Remark),
new SqlParameter("@RecivePeople",trueModel.RecivePeople),
new SqlParameter("@ReciveInfo",trueModel.ReciveInfo)
};
try
{
_dataBase.Query("sp_EC_ExchangeRecord_Update", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 删除
///
///
///
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_ExchangeRecord trueModel = model as Model.EC_ExchangeRecord;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid)
};
try
{
_dataBase.Query("sp_EC_ExchangeRecord_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 分页查询
///
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination)
{
throw new NotImplementedException();
}
///
/// 分页查询
///
///
///
///
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Pagination pagination, Guid MemberId, string MemberName,string PrizeName, int? Status)
{
try
{
string condition = " 1=1 ";
if (!string.IsNullOrEmpty(MemberName))
{
condition += "and m.Name like '%" + MemberName + "%'";
}
if (!string.IsNullOrEmpty(PrizeName))
{
condition += "and p.PrizeName like '%" + PrizeName + "%'";
}
if (MemberId != Guid.Empty)
{
condition += " and e.MemberId = '" + MemberId + "'";
}
if (Status != null)
{
condition += " and ExchangeStatus = '" + Status + "'";
}
return _dataBase.SelectModelPage(pagination, "e.*,s.Name as ApplicationStatusName,m.Name as MemberName,p.PrizeName as PrizeName",
" EC_ExchangeRecord as e left join Sys_Dictionary s on e.ExchangeStatus = s.MeanValue and s.DicType ='积分奖品兑换状态' left join EC_MemberBasic as m on e.MemberId = m.MemberId left join EC_PrizeInfo as p on e.PrizeId = p.Keyid",
" ExchangeStatus ASC ,ExchangeTime DESC ", " ExchangeStatus ASC ,ExchangeTime DESC ", condition);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 单个查询
///
///
///
public IEnumerable SelectAllModel(Infrastructure.Query.Query query)
{
throw new NotImplementedException();
}
///
/// 根据编号获得信息
///
/// 编号
///
public EC_ExchangeRecord GetModelByKeyid(int? Keyid)
{
try
{
if (Keyid == null || Keyid < 0)
return null;//错误数据返会空
IList result = _dataBase.SelectModel("*", "EC_ExchangeRecord", string.Format(" Keyid='{0}'", Keyid)) as IList;//执行查询
return (null == result || result.Count == 0) ? null : result[0];//返回结果
}
catch (Exception ex)
{
throw ex;
}
}
}
}