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.Model.Pay; using System.Transactions; using CY.Infrastructure.Query; namespace CY.SQLDAL { public class Pay_CashApplyDAL : IPay_CashApplyDAL { private Database _dataBase = null; #region 常量 /// /// 查询目标 /// const string SELECTTARGET = " t.* "; /// /// 查询来源 /// const string FROMSOUCEBEFORE = " ( select a.*,b.Name as CashStateName,c.Name as CashStateType,p.MemberName as MemberName,p.MemberId as MemberId from [Pay_CashApply] a left join [Sys_Dictionary] b on a.State=b.MeanValue and b.DicType ='提现申请' left join [Sys_Dictionary] c on a.CashTypeId=c.MeanValue and b.DicType ='提现类型' left join (select a.*,b.Name as MemberName from Pay_PaymentAccount a left join EC_MemberBasic b on a.MemberId=b.MemberId) as p on a.Payid = p.Keyid where 0=0 "; const string FROMSOUCEEND = ") as t "; /// /// 分页默认排序字段 /// const string ORDERBY = " Keyid "; #endregion public Pay_CashApplyDAL() { _dataBase = new Database(); } /// /// 新增 /// /// /// public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { Model.Pay_CashApply trueModel = model as Model.Pay_CashApply; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter("@Money",trueModel.Money), new SqlParameter("@CreateTime",trueModel.CreateTime), new SqlParameter("@Payid",trueModel.Payid), new SqlParameter("@State",trueModel.State), new SqlParameter("@TargetBankId",trueModel.TargetBankId), new SqlParameter("@Cardholder",trueModel.Cardholder), new SqlParameter("@TargetBankName",trueModel.TargetBankName), new SqlParameter("@CashTypeId",trueModel.CashTypeId), new SqlParameter("@Remark",trueModel.Remark), new SqlParameter("@AuditTime", DBNull.Value), new SqlParameter("@CompleteTime", DBNull.Value), new SqlParameter("@UPTime",DBNull.Value) }; try { _dataBase.Query("sp_Pay_CashApply_Insert", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 修改 /// /// /// public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { Model.Pay_CashApply trueModel = model as Model.Pay_CashApply; if (trueModel == null) { return false; } SqlParameter auditTimePar = null; if (trueModel.AuditTime.HasValue) { auditTimePar = new SqlParameter("@AuditTime", trueModel.AuditTime.Value); } else { auditTimePar = new SqlParameter("@AuditTime", DBNull.Value); } SqlParameter handleTimePar = null; if (trueModel.CompleteTime.HasValue) { handleTimePar = new SqlParameter("@CompleteTime", trueModel.CompleteTime.Value); } else { handleTimePar = new SqlParameter("@CompleteTime", DBNull.Value); } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.Keyid), new SqlParameter("@Money",trueModel.Money), new SqlParameter("@CreateTime",trueModel.CreateTime), new SqlParameter("@Payid",trueModel.Payid), new SqlParameter("@State",trueModel.State), new SqlParameter("@TargetBankId",trueModel.TargetBankId), new SqlParameter("@Cardholder",trueModel.Cardholder), new SqlParameter("@TargetBankName",trueModel.TargetBankName), new SqlParameter("@CashTypeId",trueModel.CashTypeId), new SqlParameter("@Remark",trueModel.Remark), auditTimePar, handleTimePar, new SqlParameter("@UPTime",trueModel.UPTime) }; try { _dataBase.Query("sp_Pay_CashApply_Update", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 处理提现 /// /// /// /// public bool HandleCash(Pay_CashApply m_Pay_CashApply, Pay_Request m_Pay_Request, Pay_PromotionRecord m_Pay_PromotionRecord, Pay_PaymentAccount m_Pay_PaymentAccount) { try { Pay_PaymentAccountDAL dal_Pay_PaymentAccountDAL = new Pay_PaymentAccountDAL(_dataBase); Pay_PromotionRecordDAL dal_Pay_PromotionRecordDAL = new Pay_PromotionRecordDAL(_dataBase); bool result = true; using (TransactionScope t_TransactionScope = new TransactionScope()) { result = UpdateModel(m_Pay_CashApply); if (result) { if (m_Pay_Request != null) { result= dal_Pay_PaymentAccountDAL.Pay(m_Pay_Request); } if (m_Pay_PromotionRecord != null) { result = dal_Pay_PromotionRecordDAL.InserModel(m_Pay_PromotionRecord); if (result) { result = dal_Pay_PaymentAccountDAL.UpdateModel(m_Pay_PaymentAccount); } } if (result) { t_TransactionScope.Complete(); } } } return result; } catch (Exception ex) { throw ex; } } /// /// 删除 /// /// /// public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { Model.Pay_CashApply trueModel = model as Model.Pay_CashApply; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.Keyid) }; try { _dataBase.Query("sp_Pay_CashApply_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; //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) { return _dataBase.SelectModel(" * ", " Pay_CashApply ") as IList;//执行查询 } /// /// 根据会员Id查询所有银行卡 /// /// /// public List SelectAllModelByMemberId(Guid MemberId) { return _dataBase.SelectModel(" * ", " Pay_CashApply", string.Format(" MemberId='{0}'", MemberId)) as List;//执行查询 } /// /// 单个查询 /// /// 编号 /// public Pay_CashApply SelectModelByKeyid(int? Keyid) { if (Keyid == null) return null;//错误数据返会空 IList result = _dataBase.SelectModel(" a.*,b.Name as CashStateName,c.Name as CashStateType,p.MemberName as MemberName,p.MemberId as MemberId ", " [Pay_CashApply] a left join [Sys_Dictionary] b on a.State=b.MeanValue and b.DicType ='提现申请' left join [Sys_Dictionary] c on a.CashTypeId=c.MeanValue and b.DicType ='提现类型' left join (select a.*,b.Name as MemberName from Pay_PaymentAccount a left join EC_MemberBasic b on a.MemberId=b.MemberId) as p on a.Payid = p.Keyid ", string.Format(" a.Keyid='{0}'", Keyid)) as IList;//执行查询 return (null == result || result.Count == 0) ? null : result[0];//返回结果 } /// /// 根据条件查询提现记录 /// /// /// /// /// /// /// /// /// public IEnumerable GetModelPageList(Pagination pa, int cashTypeId, string startDate, string endDate, string province, string city, string country) { IEnumerable list = null; string selectTarget = " a.*,c.Name as MemberName,d.Name as CashStateName "; string fromSouce = " dbo.Pay_CashApply a INNER JOIN Pay_PaymentAccount b ON a.Payid=b.Keyid inner join EC_MemberBasic c ON b.MemberId=c.MemberId inner join [Sys_Dictionary] d on a.State=d.MeanValue and d.DicType ='提现申请'"; fromSouce += " where 1=1 and a.State=2 "; fromSouce += " and a.cashTypeId=" + cashTypeId; if (!string.IsNullOrEmpty(startDate)) fromSouce += " And a.CreateTime >= '" + startDate + "' "; if (!string.IsNullOrEmpty(endDate)) fromSouce += " And a.CreateTime < '" + endDate + "' "; if (!string.IsNullOrEmpty(province)) { fromSouce += " and c.Province='" + province + "'"; } if (!string.IsNullOrEmpty(city)) { fromSouce += " and c.City='" + city + "'"; } if (!string.IsNullOrEmpty(country)) { fromSouce += " and c.County='" + country + "'"; } list = _dataBase.SelectModelPage(pa, selectTarget, fromSouce, " a.CreateTime desc ", " CreateTime desc ", string.Empty); return list; } } }