/** * EC_SeckillBusinessDAL.cs * * 功 能: 特价业务数据访问实现 * 类 名: EC_SeckillBusinessDAL * * Ver 变更日期 负责人 变更内容 * ─────────────────────────────────── * V0.01 2013-4-3 16:03 吴辉 初版 * V0.02 2013-4-24 9:51 吴崎均 变更支付方法实现 * V0.03 2013-4-25 13:45 吴崎均 增加归并缓冲金额查看账户信息方法 * * * * * */ 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.IBaseDAL; using System.Transactions; using CY.Infrastructure.Common; using CY.Model.Pay; namespace CY.SQLDAL { public class Pay_PaymentAccountDAL : IPay_PaymentAccountDAL { private Database _dataBase = null; public Pay_PaymentAccountDAL() { _dataBase = new Database(); } public Pay_PaymentAccountDAL(Database database) { _dataBase = database; } /// /// 新增 /// /// /// public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { Model.Pay_PaymentAccount trueModel = model as Model.Pay_PaymentAccount; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter(){Direction=ParameterDirection.ReturnValue,SqlDbType = SqlDbType.Int}, new SqlParameter("@MemberId",trueModel.MemberId), new SqlParameter("@LevelRule",trueModel.LevelRule), new SqlParameter("@PayPwd",trueModel.PayPwd), new SqlParameter("@UseStatus",trueModel.UseStatus), new SqlParameter("@PayLevel",trueModel.PayLevel), new SqlParameter("@PayMoney",trueModel.PayMoney), new SqlParameter("@CreditLine",trueModel.CreditLine), new SqlParameter("@SurplusCredit",trueModel.SurplusCredit), new SqlParameter("@SurplusMoney",trueModel.SurplusMoney), new SqlParameter("@LockMoney",trueModel.LockMoney), new SqlParameter("@LockScore",trueModel.LockScore), new SqlParameter("@LockCredit",trueModel.LockCredit), new SqlParameter("@Score",trueModel.Score), new SqlParameter("@OrderCommissionMoney",trueModel.OrderCommissionMoney), new SqlParameter("@PromotionMoney",trueModel.PromotionMoney), new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime), new SqlParameter("@Operator",trueModel.Operator), new SqlParameter("@Remark",trueModel.Remark) , new SqlParameter("@ProxyMoney",trueModel.ProxyMoney) , new SqlParameter("@ProxyMoneyCash",trueModel.ProxyMoneyCash) , new SqlParameter("@ProxyMoneyAudit",trueModel.ProxyMoneyAudit) }; try { _dataBase.Query("sp_Pay_PaymentAccount_Insert", CommandType.StoredProcedure, sqlParms.ToArray()); trueModel.Keyid = (int)sqlParms[0].Value; } catch (Exception ex) { throw ex; } return true; } /// /// 修改 /// /// /// public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { Model.Pay_PaymentAccount trueModel = model as Model.Pay_PaymentAccount; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.Keyid), new SqlParameter("@MemberId",trueModel.MemberId), new SqlParameter("@LevelRule",trueModel.LevelRule), new SqlParameter("@PayPwd",trueModel.PayPwd), new SqlParameter("@UseStatus",trueModel.UseStatus), new SqlParameter("@PayLevel",trueModel.PayLevel), new SqlParameter("@PayMoney",trueModel.PayMoney), new SqlParameter("@CreditLine",trueModel.CreditLine), new SqlParameter("@SurplusCredit",trueModel.SurplusCredit), new SqlParameter("@SurplusMoney",trueModel.SurplusMoney), new SqlParameter("@LockMoney",trueModel.LockMoney), new SqlParameter("@LockScore",trueModel.LockScore), new SqlParameter("@LockCredit",trueModel.LockCredit), new SqlParameter("@Score",trueModel.Score), new SqlParameter("@OrderCommissionMoney",trueModel.OrderCommissionMoney), new SqlParameter("@PromotionMoney",trueModel.PromotionMoney), new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime), new SqlParameter("@Operator",trueModel.Operator), new SqlParameter("@Remark",trueModel.Remark) , new SqlParameter("@ProxyMoney",trueModel.ProxyMoney) , new SqlParameter("@ProxyMoneyCash",trueModel.ProxyMoneyCash) , new SqlParameter("@ProxyMoneyAudit",trueModel.ProxyMoneyAudit) }; try { _dataBase.Query("sp_Pay_PaymentAccount_Update", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 删除 /// /// /// public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { Model.Pay_PaymentAccount trueModel = model as Model.Pay_PaymentAccount; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.Keyid) }; try { _dataBase.Query("sp_Pay_PaymentAccount_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 SelectAllModel(Infrastructure.Query.Query query) { throw new NotImplementedException(); } /// /// 根据编号获取实体信息 /// /// 会员编号 /// public Pay_PaymentAccount SelectModleByMemberId(Guid MemberId) { if (MemberId == null) return null;//错误数据返会空 IList result = _dataBase.SelectModel("*", "Pay_PaymentAccount", " MemberId = '" + MemberId + "'") as IList;//执行查询 return (null == result || result.Count == 0) ? null : result[0];//返回结果 } /// /// 支付公共接口 /// /// 支付申请 /// public bool Pay(CY.Model.Pay.Pay_Request m_Pay_Request) { if (m_Pay_Request == null) { return false; } IList sqlParms = new List() { new SqlParameter("@payerid",m_Pay_Request.Payerid), new SqlParameter("@payeeid",m_Pay_Request.Payeeid), new SqlParameter("@paymoney",m_Pay_Request.Paymoney), new SqlParameter("@subject",m_Pay_Request.Subject){SqlDbType=SqlDbType.VarChar,Size=200}, new SqlParameter("@balanceAccount",m_Pay_Request.BalanceAccount){SqlDbType=SqlDbType.Int,Size=4}, new SqlParameter("@returnState", m_Pay_Request.State){SqlDbType=System.Data.SqlDbType.Int, Direction=ParameterDirection.Output}, new SqlParameter(){ParameterName="@usedCredit",Direction=ParameterDirection.InputOutput,SqlDbType=SqlDbType.Money,Size=8} }; try { if (m_Pay_Request.UsedCredit.HasValue) { sqlParms[6].Value = (m_Pay_Request.UsedCredit ?? (-1).ToDecimal2()).Value; } _dataBase.Query("sp_Pay", CommandType.StoredProcedure, sqlParms.ToArray()); m_Pay_Request.State = MyConvert.ConvertToInt32(sqlParms[5].Value); m_Pay_Request.UsedCredit = MyConvert.ConvertToDecimal(sqlParms[6].Value); } catch (Exception ex) { throw ex; } return m_Pay_Request.State.HasValue && 0 < m_Pay_Request.State.Value; } /// /// 归并用户缓冲金额并查看账户信息 /// /// 会员编号 /// public Pay_PaymentAccount MergeBufferMoneyByMemberId(Guid menberId) { using (IDataReader reader = _dataBase.QueryDataReader("sp_Pay_MergeMoney", CommandType.StoredProcedure, new SqlParameter() { ParameterName = "@memberId", Value = menberId, SqlDbType = SqlDbType.UniqueIdentifier })) { List result = _dataBase.ReadDataToModel(reader); return null == result || result.Count < 1 ? null : result[0]; } } /// /// 充值 /// /// /// /// public bool RechargeSucces(Pay_PaymentAccount m_Pay_PaymentAccount, CY.Model.Pay.Pay_Request m_Pay_Request, Pay_AccountedRecord m_Pay_AccountedRecord) { try { Pay_AccountedRecordDAL dal_Pay_AccountedRecordDAL = new Pay_AccountedRecordDAL(_dataBase); bool result = true; using (TransactionScope t_TransactionScope = new TransactionScope()) { if (result) { result = this.UpdateModel(m_Pay_PaymentAccount); if (result) { result = this.Pay(m_Pay_Request); if (result) { result = dal_Pay_AccountedRecordDAL.UpdateModel(m_Pay_AccountedRecord); if (result) { t_TransactionScope.Complete(); } } } } } if (result) { m_Pay_PaymentAccount = MergeBufferMoneyByMemberId(m_Pay_PaymentAccount.MemberId); SendPoOrMoToMember(m_Pay_PaymentAccount.MemberId, 86, m_Pay_AccountedRecord.AccountingMoney); } if (result) { decimal? CrditMoney = m_Pay_PaymentAccount.CreditLine - m_Pay_PaymentAccount.SurplusCredit; decimal? TradMoney = m_Pay_PaymentAccount.SurplusMoney - CrditMoney; if (TradMoney >= 0) { TradMoney = CrditMoney; } else { TradMoney = m_Pay_PaymentAccount.SurplusMoney; } if (TradMoney > 0) { CY.Model.Pay.Pay_Request m_Pay_Request_critdit = new Model.Pay.Pay_Request(); m_Pay_Request_critdit.Payeeid = m_Pay_Request.Payerid; m_Pay_Request_critdit.Payerid = m_Pay_Request.Payeeid; m_Pay_Request_critdit.Paymoney = TradMoney ?? 0; m_Pay_Request_critdit.Subject = "授信返款"; m_Pay_Request_critdit.BalanceAccount = 14; m_Pay_Request_critdit.UsedCredit = -1; this.Pay(m_Pay_Request_critdit); } } if (result) { decimal? OrderMoney = m_Pay_PaymentAccount.OrderCommissionMoney; decimal? TradMoney = m_Pay_PaymentAccount.SurplusMoney - OrderMoney; if (TradMoney >= 0) { TradMoney = OrderMoney; if (TradMoney > 0) { CY.Model.Pay.Pay_Request m_Pay_Request_order = new Model.Pay.Pay_Request(); m_Pay_Request_order.Payeeid = m_Pay_Request.Payerid; m_Pay_Request_order.Payerid = m_Pay_Request.Payeeid; m_Pay_Request_order.Paymoney = TradMoney ?? 0; m_Pay_Request_order.Subject = "支付拖欠网站接单佣金"; m_Pay_Request_order.BalanceAccount = 10; m_Pay_Request_order.UsedCredit = -1; this.Pay(m_Pay_Request_order); IList sqlParms = new List() { new SqlParameter("@payerid",m_Pay_Request_order.Payerid) }; _dataBase.Query("sp_Order_Recharge", CommandType.StoredProcedure, sqlParms.ToArray()); } } } return result; } catch (Exception ex) { throw ex; } } /// /// 线下充值 /// /// /// /// public bool RechargeSuccesUnLine(Pay_PaymentAccount m_Pay_PaymentAccount, CY.Model.Pay.Pay_Request m_Pay_Request) { try { Pay_AccountedRecordDAL dal_Pay_AccountedRecordDAL = new Pay_AccountedRecordDAL(_dataBase); bool result = true; using (TransactionScope t_TransactionScope = new TransactionScope()) { if (result) { result = this.UpdateModel(m_Pay_PaymentAccount); if (result) { result = this.Pay(m_Pay_Request); if (result) { t_TransactionScope.Complete(); } } } } if (result) { m_Pay_PaymentAccount = MergeBufferMoneyByMemberId(m_Pay_PaymentAccount.MemberId); SendPoOrMoToMember(m_Pay_PaymentAccount.MemberId, 86, m_Pay_Request.Paymoney); } if (result) { decimal? CrditMoney = m_Pay_PaymentAccount.CreditLine - m_Pay_PaymentAccount.SurplusCredit; decimal? TradMoney = m_Pay_PaymentAccount.SurplusMoney - CrditMoney; if (TradMoney >= 0) { TradMoney = CrditMoney; } else { TradMoney = m_Pay_PaymentAccount.SurplusMoney; } if (TradMoney > 0) { CY.Model.Pay.Pay_Request m_Pay_Request_critdit = new Model.Pay.Pay_Request(); m_Pay_Request_critdit.Payeeid = m_Pay_Request.Payerid; m_Pay_Request_critdit.Payerid = m_Pay_Request.Payeeid; m_Pay_Request_critdit.Paymoney = TradMoney ?? 0; m_Pay_Request_critdit.Subject = "授信还款"; m_Pay_Request_critdit.BalanceAccount = 14; m_Pay_Request_critdit.UsedCredit = -1; this.Pay(m_Pay_Request_critdit); } } if (result) { decimal? OrderMoney = m_Pay_PaymentAccount.OrderCommissionMoney; decimal? TradMoney = m_Pay_PaymentAccount.SurplusMoney - OrderMoney; if (TradMoney >= 0) { TradMoney = OrderMoney; if (TradMoney > 0) { CY.Model.Pay.Pay_Request m_Pay_Request_order = new Model.Pay.Pay_Request(); m_Pay_Request_order.Payeeid = m_Pay_Request.Payerid; m_Pay_Request_order.Payerid = m_Pay_Request.Payeeid; m_Pay_Request_order.Paymoney = TradMoney ?? 0; m_Pay_Request_order.Subject = "支付拖欠网站接单佣金"; m_Pay_Request_order.BalanceAccount = 10; m_Pay_Request_order.UsedCredit = -1; this.Pay(m_Pay_Request_order); IList sqlParms = new List() { new SqlParameter("@payerid",m_Pay_Request_order.Payerid) }; _dataBase.Query("sp_Order_Recharge", CommandType.StoredProcedure, sqlParms.ToArray()); } } } return result; } catch (Exception ex) { throw ex; } } /// /// 提现转账 /// /// /// /// public bool CashSucces(Pay_PaymentAccount m_Pay_PaymentAccount, CY.Model.Pay.Pay_Request m_Pay_Request, Pay_PromotionRecord m_Pay_PromotionRecord) { try { Pay_PromotionRecordDAL dal_Pay_PromotionRecordDAL = new Pay_PromotionRecordDAL(_dataBase); bool result = true; using (TransactionScope t_TransactionScope = new TransactionScope()) { if (result) { result = this.Pay(m_Pay_Request); if (result) { result = dal_Pay_PromotionRecordDAL.InserModel(m_Pay_PromotionRecord); if (result) { result = this.UpdateModel(m_Pay_PaymentAccount); if (result) { t_TransactionScope.Complete(); } } } } } return result; } catch (Exception ex) { throw ex; } } /// /// 给会员增加积分或现金(推广信息) /// 36 买家会员注册费 /// 393 个人网店注册费 /// 89 印刷厂商注册费 /// 391 登录 /// 38 发布印刷需求 /// 292 发布需求信息 /// 86 账户充值 /// 87 印刷订单 /// 88 纸张订单 /// 90 杂志广告费 /// 392 网站广告费 /// 91 管理软件费 /// 92 办公家具订单 /// 93 办公电脑设备订单 /// 94 办公文具订单 /// 95 其他商城订单 /// 96 发布求职简历 /// 290 发布秒杀业务 /// 291 发布特价信息 /// /// 使用人会员编号 /// 推广来源类型编号 /// /// public bool SendPoOrMoToMember(Guid Member_id, int? SourceTypeId, decimal? Money) { try { EC_MemberExtendDAL dal_EC_MemberExtendDAL = new EC_MemberExtendDAL(_dataBase); Pay_PaymentAccountDAL dal_Pay_PaymentAccountDAL = new Pay_PaymentAccountDAL(_dataBase); Promotion_IncomeRuleDAL dal_Promotion_IncomeRuleDAL = new Promotion_IncomeRuleDAL(_dataBase); Pay_PromotionRecordDAL dal_Pay_PromotionRecordDAL = new Pay_PromotionRecordDAL(_dataBase); Pay_ScoreRecordDAL dal_Pay_ScoreRecordDAL = new Pay_ScoreRecordDAL(_dataBase); Sys_DictionaryDAL dal_Sys_DictionaryDAL = new Sys_DictionaryDAL(_dataBase); EC_ProxyMemberDAL dal_EC_ProxyMemberDAL = new EC_ProxyMemberDAL(_dataBase); //获取积分配置信息 Model.Promotion_IncomeRule m_Promotion_IncomeRule = dal_Promotion_IncomeRuleDAL.GetModelBySourceTypeId(SourceTypeId); if (m_Promotion_IncomeRule == null || m_Promotion_IncomeRule.Keyid == null) return false; //如果不存在就跳出 //为了方便计算,无倍数即声明金额为1 if (m_Promotion_IncomeRule.IsRatio) Money = Money.ToDecimal2(); else Money = 1; DateTime nowTime = DateTime.Now; #region 使用人 //获取使用人 Model.EC_MemberExtend m_member = dal_EC_MemberExtendDAL.GetModelByMemberId(Member_id); Model.Pay_PaymentAccount m_Member_Account = new Pay_PaymentAccount(); Pay_PromotionRecord m_Pay_PromotionRecord_money = new Pay_PromotionRecord(); Pay_PromotionRecord m_Pay_PromotionRecord_score = new Pay_PromotionRecord(); Pay_ScoreRecord m_Pay_ScoreRecord = new Pay_ScoreRecord(); decimal? m_PromotionMoney = 0; int? m_Score = 0; if (m_member != null) { m_Member_Account = dal_Pay_PaymentAccountDAL.SelectModleByMemberId(Member_id); if (m_Member_Account != null && m_Member_Account.Keyid > 0) { //给使用人增加积分和金额 m_Score = (m_Promotion_IncomeRule.PopularizeScore * Money).ToInt32(); m_PromotionMoney = (m_Promotion_IncomeRule.PopularizeNoteMoney * Money).ToDecimal2(); //如果金额大于0 则增加金额记录 if ((m_Promotion_IncomeRule.PopularizeNoteMoney * Money).ToDecimal2() > 0) { m_Pay_PromotionRecord_money.PayId = m_Member_Account.Keyid; m_Pay_PromotionRecord_money.Remark = m_Member_Account.MemberId.ToString2(); m_Pay_PromotionRecord_money.ResidualMoney = m_Member_Account.PromotionMoney + m_PromotionMoney; m_Pay_PromotionRecord_money.TradingMoney = m_PromotionMoney; m_Pay_PromotionRecord_money.TradingName = m_Promotion_IncomeRule.SourceType.Name; switch (m_Promotion_IncomeRule.SourceType.Name) { case "注册": m_Pay_PromotionRecord_money.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(注册奖励)"; break; case "登录": m_Pay_PromotionRecord_money.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(每日奖励)"; break; case "发布印刷需求": m_Pay_PromotionRecord_money.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(每日奖励)"; break; case "发布求职简历": m_Pay_PromotionRecord_money.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(每日奖励)"; break; default: m_Pay_PromotionRecord_money.TardingRemark = m_Promotion_IncomeRule.SourceType.Name; break; } m_Pay_PromotionRecord_money.TradingState = -1;//已完成 m_Pay_PromotionRecord_money.TradingType = 1;//收入 m_Pay_PromotionRecord_money.CreateTime = nowTime; m_Pay_PromotionRecord_money.IsProxy = false; m_Pay_PromotionRecord_money.SendMemberId = Member_id; m_Pay_PromotionRecord_money.GetMemberId = m_member.Keyid; m_Pay_PromotionRecord_money.DataType = "奖励"; m_Pay_PromotionRecord_money.RewardType = "推广金"; } //如果积分大于0 则增加积分记录 if ((m_Promotion_IncomeRule.PopularizeScore * Money).ToInt32() > 0) { m_Pay_ScoreRecord.PayId = m_Member_Account.Keyid; m_Pay_ScoreRecord.Remark = m_Member_Account.MemberId.ToString2(); m_Pay_ScoreRecord.ResidualScore = m_Member_Account.Score + m_Score; m_Pay_ScoreRecord.TradingScore = m_Score; m_Pay_ScoreRecord.TradingName = m_Promotion_IncomeRule.SourceType.Name + (m_Promotion_IncomeRule.SourceType.Name == "登录" ? "(每日奖励)" : ""); m_Pay_ScoreRecord.TradingState = -1;//已完成 m_Pay_ScoreRecord.TradingType = 1;//收入 m_Pay_ScoreRecord.CreateTime = nowTime; m_Pay_PromotionRecord_score.PayId = m_Member_Account.Keyid; m_Pay_PromotionRecord_score.Remark = m_Member_Account.MemberId.ToString2(); m_Pay_PromotionRecord_score.ResidualMoney = m_Member_Account.Score + m_Score; m_Pay_PromotionRecord_score.TradingMoney = m_Score; m_Pay_PromotionRecord_score.TradingName = m_Promotion_IncomeRule.SourceType.Name; switch (m_Promotion_IncomeRule.SourceType.Name) { case "注册": m_Pay_PromotionRecord_score.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(注册奖励)"; break; case "登录": m_Pay_PromotionRecord_score.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(每日奖励)"; break; case "发布印刷需求": m_Pay_PromotionRecord_score.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(每日奖励)"; break; case "发布求职简历": m_Pay_PromotionRecord_score.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(每日奖励)"; break; default: m_Pay_PromotionRecord_score.TardingRemark = m_Promotion_IncomeRule.SourceType.Name; break; } m_Pay_PromotionRecord_score.TradingState = -1;//已完成 m_Pay_PromotionRecord_score.TradingType = 1;//收入 m_Pay_PromotionRecord_score.CreateTime = nowTime; m_Pay_PromotionRecord_score.IsProxy = false; m_Pay_PromotionRecord_score.SendMemberId = Member_id; m_Pay_PromotionRecord_score.GetMemberId = Member_id; m_Pay_PromotionRecord_score.DataType = "奖励"; m_Pay_PromotionRecord_score.RewardType = "积分"; } } } #endregion #region 推荐人 //获取推荐人 Model.EC_MemberExtend Re_member = dal_EC_MemberExtendDAL.GetModelByInviter(m_member.Inviter); Model.Pay_PaymentAccount Re_Member_Account = new Pay_PaymentAccount(); Pay_PromotionRecord Re_Pay_PromotionRecord_money = new Pay_PromotionRecord(); Pay_PromotionRecord Re_Pay_PromotionRecord_score = new Pay_PromotionRecord(); Pay_ScoreRecord Re_Pay_ScoreRecord = new Pay_ScoreRecord(); decimal? Re_PromotionMoney = 0; int? Re_Score = 0; //如果推荐人存在 就给推荐人增加金额 if (Re_member != null && m_member.Keyid != Re_member.Keyid) { Re_Member_Account = dal_Pay_PaymentAccountDAL.SelectModleByMemberId(Re_member.Keyid); if (Re_Member_Account != null && Re_Member_Account.Keyid > 0) { Re_Score = (m_Promotion_IncomeRule.SuperiorScore * Money).ToInt32(); Re_PromotionMoney = (m_Promotion_IncomeRule.SuperiorNoteMoney * Money).ToDecimal2(); //如果金额大于0 则增加金额记录 if ((m_Promotion_IncomeRule.SuperiorNoteMoney * Money).ToDecimal2() > 0) { Re_Pay_PromotionRecord_money.PayId = Re_Member_Account.Keyid; Re_Pay_PromotionRecord_money.Remark = m_Member_Account.MemberId.ToString2(); Re_Pay_PromotionRecord_money.ResidualMoney = Re_Member_Account.PromotionMoney + Re_PromotionMoney; Re_Pay_PromotionRecord_money.TradingMoney = Re_PromotionMoney; Re_Pay_PromotionRecord_money.TradingName = m_Promotion_IncomeRule.SourceType.Name; Re_Pay_PromotionRecord_money.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(推广奖励)"; Re_Pay_PromotionRecord_money.TradingState = -1;//已完成 Re_Pay_PromotionRecord_money.TradingType = 1;//收入 Re_Pay_PromotionRecord_money.CreateTime = nowTime; Re_Pay_PromotionRecord_money.IsProxy = false; Re_Pay_PromotionRecord_money.SendMemberId = Member_id; Re_Pay_PromotionRecord_money.GetMemberId = Re_member.Keyid; Re_Pay_PromotionRecord_money.DataType = "推广"; Re_Pay_PromotionRecord_money.RewardType = "推广金"; } //如果积分大于0 则增加积分记录 if ((m_Promotion_IncomeRule.SuperiorScore * Money).ToDecimal2() > 0) { Re_Pay_ScoreRecord.PayId = Re_Member_Account.Keyid; Re_Pay_ScoreRecord.Remark = m_Member_Account.MemberId.ToString2(); Re_Pay_ScoreRecord.ResidualScore = Re_Member_Account.Score + Re_Score; Re_Pay_ScoreRecord.TradingScore = Re_Score; Re_Pay_ScoreRecord.TradingName = m_Promotion_IncomeRule.SourceType.Name; Re_Pay_ScoreRecord.TradingState = -1;//已完成 Re_Pay_ScoreRecord.TradingType = 1;//收入 Re_Pay_ScoreRecord.CreateTime = nowTime; Re_Pay_PromotionRecord_score.PayId = Re_Member_Account.Keyid; Re_Pay_PromotionRecord_score.Remark = m_Member_Account.MemberId.ToString2(); Re_Pay_PromotionRecord_score.ResidualMoney = Re_Member_Account.Score + Re_Score; Re_Pay_PromotionRecord_score.TradingMoney = Re_Score; Re_Pay_PromotionRecord_score.TradingName = m_Promotion_IncomeRule.SourceType.Name; Re_Pay_PromotionRecord_score.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(推广奖励)"; Re_Pay_PromotionRecord_score.TradingState = -1;//已完成 Re_Pay_PromotionRecord_score.TradingType = 1;//收入 Re_Pay_PromotionRecord_score.CreateTime = nowTime; Re_Pay_PromotionRecord_score.IsProxy = false; Re_Pay_PromotionRecord_score.SendMemberId = Member_id; Re_Pay_PromotionRecord_score.GetMemberId = Re_member.Keyid; Re_Pay_PromotionRecord_score.DataType = "推广"; Re_Pay_PromotionRecord_score.RewardType = "积分"; } } } #endregion #region 市级代理 //获取市级代理 Model.EC_MemberBasic m_city_member = dal_EC_ProxyMemberDAL.GetCityProxyMember(Member_id); Model.Pay_PaymentAccount m_city_Member_Account = new Pay_PaymentAccount(); Pay_PromotionRecord m_city_Pay_PromotionRecord_money = new Pay_PromotionRecord(); Pay_PromotionRecord m_city_Pay_PromotionRecord_score = new Pay_PromotionRecord(); decimal? m_city_ProxyMoney = 0; decimal? m_city_ProxyMoneyCash = 0; decimal? m_city_ProxyMoneyAudit = 0; if (m_city_member != null && m_member.Keyid != m_city_member.MemberId) { m_city_Member_Account = dal_Pay_PaymentAccountDAL.SelectModleByMemberId(m_city_member.MemberId); if (m_city_Member_Account != null && m_city_Member_Account.Keyid > 0) { //给市级代理增加金额 m_city_ProxyMoney = (m_Promotion_IncomeRule.DeputyCityRevenue * Money).ToDecimal2(); m_city_ProxyMoneyCash = (m_Promotion_IncomeRule.DeputyCityRevenue * Money).ToDecimal2() * (0.7).ToDecimal2(); m_city_ProxyMoneyAudit = (m_Promotion_IncomeRule.DeputyCityRevenue * Money).ToDecimal2() * (0.3).ToDecimal2(); //如果金额大于0 则增加金额记录 if ((m_Promotion_IncomeRule.DeputyCityRevenue * Money).ToDecimal2() > 0) { m_city_Pay_PromotionRecord_money.PayId = m_city_Member_Account.Keyid; m_city_Pay_PromotionRecord_money.Remark = m_Member_Account.MemberId.ToString2(); m_city_Pay_PromotionRecord_money.ResidualMoney = m_city_Member_Account.ProxyMoney + m_city_ProxyMoney; m_city_Pay_PromotionRecord_money.TradingMoney = m_city_ProxyMoney; m_city_Pay_PromotionRecord_money.TradingName = m_Promotion_IncomeRule.SourceType.Name; m_city_Pay_PromotionRecord_money.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(市级代理奖励)"; m_city_Pay_PromotionRecord_money.TradingState = -1;//已完成 m_city_Pay_PromotionRecord_money.TradingType = 1;//收入 m_city_Pay_PromotionRecord_money.CreateTime = nowTime; m_city_Pay_PromotionRecord_money.IsProxy = true; m_city_Pay_PromotionRecord_money.SendMemberId = Member_id; m_city_Pay_PromotionRecord_money.GetMemberId = m_city_member.MemberId; m_city_Pay_PromotionRecord_money.DataType = "代理"; m_city_Pay_PromotionRecord_money.RewardType = "代理金"; } } } #endregion #region 区县代理 //获取区县代理 Model.EC_MemberBasic m_country_member = dal_EC_ProxyMemberDAL.GetCountryProxyMember(Member_id); Model.Pay_PaymentAccount m_country_Member_Account = new Pay_PaymentAccount(); Pay_PromotionRecord m_country_Pay_PromotionRecord_money = new Pay_PromotionRecord(); Pay_PromotionRecord m_country_Pay_PromotionRecord_score = new Pay_PromotionRecord(); decimal? m_country_ProxyMoney = 0; decimal? m_country_ProxyMoneyCash = 0; decimal? m_country_ProxyMoneyAudit = 0; if (m_country_member != null && m_member.Keyid != m_country_member.MemberId) { m_country_Member_Account = dal_Pay_PaymentAccountDAL.SelectModleByMemberId(m_country_member.MemberId); if (m_country_Member_Account != null && m_country_Member_Account.Keyid > 0) { //给区县代理增加金额 m_country_ProxyMoney = (m_Promotion_IncomeRule.DeputyDistrictRevenue * Money).ToDecimal2(); m_country_ProxyMoneyCash = (m_Promotion_IncomeRule.DeputyDistrictRevenue * Money).ToDecimal2() * (0.7).ToDecimal2(); m_country_ProxyMoneyAudit = (m_Promotion_IncomeRule.DeputyDistrictRevenue * Money).ToDecimal2() * (0.3).ToDecimal2(); //如果金额大于0 则增加金额记录 if ((m_Promotion_IncomeRule.DeputyDistrictRevenue * Money).ToDecimal2() > 0) { m_country_Pay_PromotionRecord_money.PayId = m_country_Member_Account.Keyid; m_country_Pay_PromotionRecord_money.Remark = m_Member_Account.MemberId.ToString2(); m_country_Pay_PromotionRecord_money.ResidualMoney = m_country_Member_Account.ProxyMoney + m_country_ProxyMoney; m_country_Pay_PromotionRecord_money.TradingMoney = m_country_ProxyMoney; m_country_Pay_PromotionRecord_money.TradingName = m_Promotion_IncomeRule.SourceType.Name; m_country_Pay_PromotionRecord_money.TardingRemark = m_Promotion_IncomeRule.SourceType.Name + "(区县代理奖励)"; m_country_Pay_PromotionRecord_money.TradingState = -1;//已完成 m_country_Pay_PromotionRecord_money.TradingType = 1;//收入 m_country_Pay_PromotionRecord_money.CreateTime = nowTime; m_country_Pay_PromotionRecord_money.IsProxy = true; m_country_Pay_PromotionRecord_money.SendMemberId = Member_id; m_country_Pay_PromotionRecord_money.GetMemberId = m_country_member.MemberId; m_country_Pay_PromotionRecord_money.DataType = "代理"; m_country_Pay_PromotionRecord_money.RewardType = "代理金"; } } } #endregion #region 执行事务 bool result = true; using (TransactionScope t_TransactionScope = new TransactionScope()) { if (result) { if (m_Pay_PromotionRecord_money.PayId == m_Member_Account.Keyid && m_Pay_PromotionRecord_money.PayId > 0) result = dal_Pay_PromotionRecordDAL.InserModel(m_Pay_PromotionRecord_money); if (result) { if (m_Pay_PromotionRecord_score.PayId == m_Member_Account.Keyid && m_Pay_PromotionRecord_score.PayId > 0) result = dal_Pay_PromotionRecordDAL.InserModel(m_Pay_PromotionRecord_score); } if (result) { if (m_Pay_ScoreRecord.PayId == m_Member_Account.Keyid && m_Pay_ScoreRecord.PayId > 0) result = dal_Pay_ScoreRecordDAL.InserModel(m_Pay_ScoreRecord); } if (result) { result = dal_Pay_PaymentAccountDAL.PayPaymentAccountPromotion(m_Member_Account.Keyid, m_PromotionMoney, m_Score, 0, 0, 0); } } if (result) { if (Re_Pay_PromotionRecord_money.PayId == Re_Member_Account.Keyid && Re_Pay_PromotionRecord_money.PayId > 0) result = dal_Pay_PromotionRecordDAL.InserModel(Re_Pay_PromotionRecord_money); if (result) { if (Re_Pay_PromotionRecord_score.PayId == Re_Member_Account.Keyid && Re_Pay_PromotionRecord_score.PayId > 0) result = dal_Pay_PromotionRecordDAL.InserModel(Re_Pay_PromotionRecord_score); } if (result) { if (Re_Pay_ScoreRecord.PayId == Re_Member_Account.Keyid && Re_Pay_ScoreRecord.PayId > 0) result = dal_Pay_ScoreRecordDAL.InserModel(Re_Pay_ScoreRecord); } if (result && Re_Member_Account != null && Re_Member_Account.Keyid > 0) { result = dal_Pay_PaymentAccountDAL.PayPaymentAccountPromotion(Re_Member_Account.Keyid, Re_PromotionMoney, Re_Score, 0, 0, 0); } } if (result) { if (m_city_Member_Account.MemberId != m_Member_Account.MemberId) { if (Re_Member_Account != null && m_city_Member_Account.MemberId != m_Member_Account.MemberId) { if (m_city_Pay_PromotionRecord_money.PayId == m_city_Member_Account.Keyid && m_city_Pay_PromotionRecord_money.PayId > 0) result = dal_Pay_PromotionRecordDAL.InserModel(m_city_Pay_PromotionRecord_money); if (result && m_city_Member_Account != null && m_city_Member_Account.Keyid > 0) { result = dal_Pay_PaymentAccountDAL.PayPaymentAccountPromotion(m_city_Member_Account.Keyid, 0, 0, m_city_ProxyMoney, m_city_ProxyMoneyCash, m_city_ProxyMoneyAudit); } } } } if (result) { if (m_country_Member_Account.MemberId != m_Member_Account.MemberId) { if (Re_Member_Account != null && m_country_Member_Account.MemberId != m_Member_Account.MemberId) { if (m_country_Pay_PromotionRecord_money.PayId == m_country_Member_Account.Keyid && m_country_Pay_PromotionRecord_money.PayId > 0) result = dal_Pay_PromotionRecordDAL.InserModel(m_country_Pay_PromotionRecord_money); if (result && m_country_Member_Account != null && m_country_Member_Account.Keyid > 0) { result = dal_Pay_PaymentAccountDAL.PayPaymentAccountPromotion(m_country_Member_Account.Keyid, 0, 0, m_country_ProxyMoney, m_country_ProxyMoneyCash, m_country_ProxyMoneyAudit); } } } } if (result) { t_TransactionScope.Complete(); } } return result; #endregion } catch (Exception ex) { throw ex; } } /// /// 根据类型和金额获取积分 /// 36 注册 /// 38 发布印刷需求 /// 292 发布需求信息 /// 86 账户充值 /// 87 印刷订单 /// 88 纸张订单 /// 89 印刷厂商注册费 /// 90 杂志广告费 /// 91 管理软件费 /// 92 办公家具订单 /// 93 办公电脑设备订单 /// 94 办公文具订单 /// 95 其他商城订单 /// 96 发布求职简历 /// 290 发布秒杀业务 /// 291 发布特价信息 /// /// /// /// public int? GetScoreBySourceTypeId(int? SourceTypeId, decimal? Money) { try { Promotion_IncomeRuleDAL dal_Promotion_IncomeRuleDAL = new Promotion_IncomeRuleDAL(); Sys_DictionaryDAL dal_Sys_DictionaryDAL = new Sys_DictionaryDAL(); //获取积分配置信息 Model.Promotion_IncomeRule m_Promotion_IncomeRule = dal_Promotion_IncomeRuleDAL.GetModelBySourceTypeId(SourceTypeId); int? result = 0; if (m_Promotion_IncomeRule == null || m_Promotion_IncomeRule.Keyid == null) return 0; //如果不存在就跳出 //为了方便计算,无倍数即声明金额为1 if (m_Promotion_IncomeRule.IsRatio) Money = Money.ToDecimal2(); else Money = 1; result = (Money * m_Promotion_IncomeRule.PopularizeScore).Value.ToString("0").ToInt32(); return result; } catch (Exception ex) { throw ex; } } /// /// 获取上周积分排名 /// /// 条数 /// public IEnumerable SelectModleByRows(int? rows) { try { if (rows == null) return null;//错误数据返会空 IList result = _dataBase.SelectModel(" top(" + rows + ") b.Name as MemberName,sum(c.TradingScore) as LastWeekScore ", " Pay_PaymentAccount as a left join EC_MemberBasic as b on a.MemberId = b.MemberId left join Pay_ScoreRecord as c on a.Keyid = c.PayId and c.CreateTime >='" + GetLastSunday().AddDays(-6) + "' and c.CreateTime <= '" + GetLastSunday().AddDays(1) + "'", " 1= 1 and (b.MemberType='个人网店' or b.MemberType='买家会员' or b.MemberType='印刷厂商') group by b.Name,b.MemberId order by sum(c.ResidualScore) DESC") as IList;//执行查询 return result;//返回结果 } catch (Exception ex) { throw ex; } } /// /// 获取上周周末日期 /// /// public DateTime GetLastSunday() { DateTime? time = DateTime.Now.ToString("yyyy-MM-dd").ToDateTime2(); if (time.Value.DayOfWeek == DayOfWeek.Sunday) { time = time.Value.AddDays(-2); } else time = time.Value.AddDays(-1); while (time.Value.DayOfWeek != DayOfWeek.Sunday) { time = time.Value.AddDays(-1); } return time.Value; } /// /// 根据时间查询当前人的账户统计信息 /// /// /// /// /// public PaymentAccountQueryModel GetPaymentAccountQueryResult(string startDate, string endDate, int currentPayId) { PaymentAccountQueryModel result = new PaymentAccountQueryModel(); string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; sqlStr = @" SELECT CASE WHEN TradingType=1 THEN SUM(TradingScore) END AS AllTradingScore, CASE WHEN TradingType=-1 THEN SUM(TradingScore) END AS UsedTradingScore FROM Pay_ScoreRecord WHERE TradingState=-1 AND PayId=@PayId "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and CreateTime>='" + startDate + "'"; } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and CreateTime<='" + endDate + "'"; } sqlStr += " GROUP BY TradingType "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["AllTradingScore"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["AllTradingScore"].ToString())) result.AllScore = dt.Rows[0]["AllTradingScore"].ToInt32().Value; } if (dt.Rows[0]["UsedTradingScore"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["UsedTradingScore"].ToString())) result.UsedScore = dt.Rows[0]["UsedTradingScore"].ToInt32().Value; } } dt = null; pars = new List(); par = null; sqlStr = @" SELECT CASE WHEN TradingType=1 THEN SUM(TradingMoney) END AS AllTradingMoney, CASE WHEN TradingType=-1 THEN SUM(TradingMoney) END AS UsedTradingMoney FROM Pay_PromotionRecord WHERE TradingState=-1 AND PayId=@PayId "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and CreateTime>='" + startDate + "'"; } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and CreateTime<='" + endDate + "'"; } sqlStr += " GROUP BY TradingType "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["AllTradingMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["AllTradingMoney"].ToString())) result.AllPromotionMoney = dt.Rows[0]["AllTradingMoney"].ToDecimal2().Value; } if (dt.Rows[0]["UsedTradingMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["UsedTradingMoney"].ToString())) result.UsedPromotionMoney = dt.Rows[0]["UsedTradingMoney"].ToDecimal2().Value; } } dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(TradingMoney) AS UsedCommissionMoney FROM dbo.Pay_IncExpRecord WHERE TradingType=-1 AND PayId=@PayId AND (BalanceAccount=3 OR BalanceAccount=10) "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and CreateTime>='" + startDate + "'"; } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and CreateTime<='" + endDate + "'"; } par = new SqlParameter("@PayId", currentPayId); pars.Add(par); dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["UsedCommissionMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["UsedCommissionMoney"].ToString())) result.UsedCommissionMoney = dt.Rows[0]["UsedCommissionMoney"].ToDecimal2().Value; } } decimal surplusCommissionMoney = 0; dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(OwedAmount) AS SurplusCommissionMoney FROM dbo.Pay_OwedMoney WHERE IsEffective=1 AND Payid=@PayId "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and CreateTime>='" + startDate + "'"; } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and CreateTime<='" + endDate + "'"; } par = new SqlParameter("@PayId", currentPayId); pars.Add(par); dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["SurplusCommissionMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["SurplusCommissionMoney"].ToString())) surplusCommissionMoney = dt.Rows[0]["SurplusCommissionMoney"].ToDecimal2().Value; } } result.AllCommissionMoney = result.UsedCommissionMoney + surplusCommissionMoney; dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(TradingMoney) AS PayMoneyByPrint FROM dbo.Pay_IncExpRecord WHERE TradingType=-1 AND PayId=@PayId AND (BalanceAccount=4 OR BalanceAccount=5) "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and CreateTime>='" + startDate + "'"; } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and CreateTime<='" + endDate + "'"; } par = new SqlParameter("@PayId", currentPayId); pars.Add(par); dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["PayMoneyByPrint"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["PayMoneyByPrint"].ToString())) result.PayMoneyByPrint = dt.Rows[0]["PayMoneyByPrint"].ToDecimal2().Value; } } return result; } /// /// 获取管理员当前账户信息 /// /// public PaymentAccountModelByAdmin GetPaymentAccountModelByAdmin(int currentPayId, decimal commission) { PaymentAccountModelByAdmin result = new PaymentAccountModelByAdmin(); string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; decimal allCredit = 0; decimal returnedCredit = 0; sqlStr = @"SELECT SUM(TradingMoney) AS AllCredit FROM dbo.Pay_IncExpRecord WHERE TradingType=-1 AND PayId=@PayId AND BalanceAccount=9"; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["AllCredit"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["AllCredit"].ToString())) allCredit = dt.Rows[0]["AllCredit"].ToDecimal2().Value; } } dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(TradingMoney) AS ReturnedCredit FROM dbo.Pay_IncExpRecord WHERE TradingType=1 AND PayeeId=@PayId AND BalanceAccount=14"; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["ReturnedCredit"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["ReturnedCredit"].ToString())) returnedCredit = dt.Rows[0]["ReturnedCredit"].ToDecimal2().Value; } } result.NoReturnCredit = allCredit - returnedCredit; dt = null; pars = new List(); par = null; sqlStr = @"SELECT TOP 1 ResidualMoney FROM Pay_IncExpRecord WHERE (TradingType=-1 AND PayId=@PayId) OR (TradingType=1 AND PayeeId=@PayId) ORDER BY CreateTime DESC,Keyid DESC"; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["ResidualMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["ResidualMoney"].ToString())) result.AllHaveMoney = dt.Rows[0]["ResidualMoney"].ToDecimal2().Value; } } // decimal noAcceptMoney = 0; // dt = null; // pars = new List(); // par = null; // sqlStr = @"SELECT SUM(SumPrice) as SumPrice // FROM dbo.EC_OrderBasic // WHERE OrderState=1 // AND OrderTypeId<1"; // dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, null); // if (dt != null && dt.Rows.Count > 0) // { // if (dt.Rows[0]["SumPrice"] != null) // { // if (!string.IsNullOrEmpty(dt.Rows[0]["SumPrice"].ToString())) // { // noAcceptMoney = dt.Rows[0]["SumPrice"].ToDecimal2().Value; // } // } // } // decimal canHaveCommissionMoney = noAcceptMoney * commission; decimal owedAmountAll = 0; dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(OwedAmount) AS OwedAmount FROM dbo.Pay_OwedMoney WHERE IsEffective=1"; dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, null); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["OwedAmount"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["OwedAmount"].ToString())) { owedAmountAll = dt.Rows[0]["OwedAmount"].ToDecimal2().Value; } } } result.CanHaveMoney = owedAmountAll; dt = null; pars = new List(); par = null; sqlStr = @"SELECT (SUM(b.OnlineMoney+b.UsedCredit)) AS CanPayMoney FROM dbo.EC_OrderBasic a INNER JOIN Pay_TradingSingle b ON a.Keyid=b.OrderId INNER JOIN dbo.EC_MemberBasic c ON b.PayerId=c.MemberId INNER JOIN dbo.Pay_PaymentAccount d ON d.MemberId=c.MemberId INNER JOIN Pay_CreditLineLevelRule e ON e.Keyid=d.LevelRule WHERE a.OrderState NOT IN (0,-1) AND (b.OnlineMoney+b.UsedCredit>0) AND OrderTypeId<1"; dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, null); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["CanPayMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["CanPayMoney"].ToString())) { result.CanPayMoney = dt.Rows[0]["CanPayMoney"].ToDecimal2().Value; } } } decimal totalCommission = 0; dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(TradingMoney) AS TotalCommission FROM dbo.Pay_IncExpRecord WHERE TradingType=1 AND PayeeId=@PayId AND BalanceAccount=3"; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["TotalCommission"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["TotalCommission"].ToString())) { totalCommission = dt.Rows[0]["TotalCommission"].ToDecimal2().Value; } } } decimal totalPayment = 0; dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(PayMoney) as TotalPayMoney FROM dbo.EC_PaymentRecord"; dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, null); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["TotalPayMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["TotalPayMoney"].ToString())) { totalPayment = dt.Rows[0]["TotalPayMoney"].ToDecimal2().Value; } } } result.TotalIncome = totalCommission + totalPayment; dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(TradingMoney) AS TotalReturn FROM dbo.Pay_IncExpRecord WHERE TradingType=-1 AND PayId=@PayId AND BalanceAccount=1 "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["TotalReturn"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["TotalReturn"].ToString())) { result.TotalExpend = dt.Rows[0]["TotalReturn"].ToDecimal2().Value; } } } return result; } /// /// 计算累计已收佣金 /// /// /// /// /// /// /// /// private decimal GetTotalCommission(int currentPayId, string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; decimal totalCommission = 0; sqlStr = @"SELECT SUM(a.TradingMoney) AS TotalCommission FROM dbo.Pay_IncExpRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.PayId=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingType=1 AND a.PayeeId=@PayId AND a.BalanceAccount=3 "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["TotalCommission"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["TotalCommission"].ToString())) { totalCommission = dt.Rows[0]["TotalCommission"].ToDecimal2().Value; } } } return totalCommission; } /// /// 计算累计已还授信 /// /// /// /// /// /// /// /// private decimal GetTotalReturnCredit(int currentPayId, string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; decimal totalReturnCredit = 0; sqlStr = @"SELECT SUM(a.TradingMoney) AS TotalReturnCredit FROM dbo.Pay_IncExpRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.PayId=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingType=-1 AND a.PayeeId=@PayeeId AND a.BalanceAccount=14 "; par = new SqlParameter("@PayeeId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["TotalReturnCredit"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["TotalReturnCredit"].ToString())) { totalReturnCredit = dt.Rows[0]["TotalReturnCredit"].ToDecimal2().Value; } } } return totalReturnCredit; } /// /// 计算累计已还交易佣金 /// /// /// /// /// /// /// /// private decimal GetTotalReturnCommission(int currentPayId, string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; decimal totalReturnCommission = 0; sqlStr = @"SELECT SUM(a.TradingMoney) AS TotalReturnCommission FROM dbo.Pay_IncExpRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.PayId=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingType=1 AND a.PayeeId=@PayId AND a.BalanceAccount=10 "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["TotalReturnCommission"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["TotalReturnCommission"].ToString())) { totalReturnCommission = dt.Rows[0]["TotalReturnCommission"].ToDecimal2().Value; } } } return totalReturnCommission; } /// /// 总其他收入(比如广告等) /// /// private decimal GetAllIncomeByorther(string payType, string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; decimal totalPayment = 0; sqlStr = @"SELECT SUM(a.PayMoney) as TotalPayMoney FROM dbo.EC_PaymentRecord a INNER JOIN EC_MemberBasic b ON a.MemberId=b.MemberId where 1=1 and a.PayMoney>0"; if (!string.IsNullOrEmpty(payType)) { sqlStr += " and a.PayType=@PayType"; par = new SqlParameter("@PayType", payType); pars.Add(par); } if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.LastUpdateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.LastUpdateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and b.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and b.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and b.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["TotalPayMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["TotalPayMoney"].ToString())) { totalPayment = dt.Rows[0]["TotalPayMoney"].ToDecimal2().Value; } } } return totalPayment; } /// /// 计算使用授信 /// /// private decimal GetUseCredit(int currentPayId, string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; decimal totalUseCredit = 0; sqlStr = @"SELECT SUM(a.TradingMoney) AS TotalUseCredit FROM dbo.Pay_IncExpRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.PayId=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingType=-1 AND a.PayId=@PayId AND a.BalanceAccount=9 "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["TotalUseCredit"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["TotalUseCredit"].ToString())) { totalUseCredit = dt.Rows[0]["TotalUseCredit"].ToDecimal2().Value; } } } return totalUseCredit; } /// /// 计算累计会员充值 /// /// /// /// /// /// /// /// public decimal GetMemberRecharge(int currentPayId, string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; decimal totalMemberRecharge = 0; sqlStr = @"SELECT SUM(a.TradingMoney) AS TotalMemberRecharge FROM dbo.Pay_IncExpRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.PayId=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingType=-1 AND a.PayId=@PayId AND a.BalanceAccount=0 "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["TotalMemberRecharge"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["TotalMemberRecharge"].ToString())) { totalMemberRecharge = dt.Rows[0]["TotalMemberRecharge"].ToDecimal2().Value; } } } return totalMemberRecharge; } /// /// 计算累计会员提现 /// /// /// /// /// /// /// private decimal GetWithdrawMoney(string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; dt = null; pars = new List(); par = null; decimal totalWithdrawMoney = 0; sqlStr = @"SELECT SUM(Money) AS WithdrawMoney FROM dbo.Pay_CashApply a INNER JOIN dbo.Pay_PaymentAccount b ON a.Payid=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.State=2 "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["WithdrawMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["WithdrawMoney"].ToString())) { totalWithdrawMoney = dt.Rows[0]["WithdrawMoney"].ToDecimal2().Value; } } } return totalWithdrawMoney; } /// /// 计算累计会员余额 /// /// /// /// /// /// /// /// public decimal GetSurplusMoney(int currentPayId, string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; dt = null; pars = new List(); par = null; decimal surplusMoney = 0; IList payIdList = new List(); dt = null; pars = new List(); par = null; sqlStr = @"SELECT a.Keyid FROM dbo.Pay_PaymentAccount a INNER JOIN dbo.EC_MemberBasic b ON a.MemberId=b.MemberId WHERE a.Keyid<>@PayId "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and b.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and b.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and b.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["Keyid"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["Keyid"].ToString())) { payIdList.Add(dt.Rows[0]["Keyid"].ToString().ToInt32().Value); } } } if (payIdList.Count > 0) { bool hasRcord = false; foreach (int payid in payIdList) { hasRcord = false; dt = null; pars = new List(); par = null; sqlStr = @"SELECT TOP 1 ResidualMoney FROM dbo.Pay_IncExpRecord WHERE (TradingType=1 AND PayeeId=@PayId) OR (TradingType=-1 AND PayId=@PayId) "; par = new SqlParameter("@PayId", payid); pars.Add(par); if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } sqlStr += " ORDER BY CreateTime DESC,Keyid DESC "; dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["ResidualMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["ResidualMoney"].ToString())) { hasRcord = true; surplusMoney += dt.Rows[0]["ResidualMoney"].ToString().ToDecimal2().Value; } } } if (!hasRcord) { dt = null; pars = new List(); par = null; sqlStr = @"SELECT SurplusMoney FROM dbo.Pay_PaymentAccount WHERE Keyid=@PayId "; par = new SqlParameter("@PayId", payid); pars.Add(par); if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and LastUpdateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and LastUpdateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["SurplusMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["SurplusMoney"].ToString())) { surplusMoney += dt.Rows[0]["SurplusMoney"].ToString().ToDecimal2().Value; } } } } } } return surplusMoney; } /// /// 计算累计授信 /// /// /// /// /// /// /// /// public decimal GetAllCredit(int currentPayId, string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; dt = null; pars = new List(); par = null; decimal allCredit = 0; sqlStr = @"select SUM(a.TradingMoney) as allCredit FROM dbo.Pay_CreditRecard a inner join Pay_PaymentAccount b on a.PayId=b.KeyId INNER JOIN dbo.EC_MemberBasic c ON b.MemberId=c.MemberId WHERE a.PayId<>@PayId"; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["allCredit"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["allCredit"].ToString())) { allCredit += dt.Rows[0]["allCredit"].ToString().ToDecimal2().Value; } } } return allCredit; } /// /// 计算授信余额 /// /// /// /// /// /// /// /// public decimal GetHasCredit(int currentPayId, string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; dt = null; pars = new List(); par = null; decimal surplusCredit = 0; //累计授信 decimal allCredit = GetAllCredit(currentPayId, startDate, endDate, selectProvince, selectCity, selectCounty); decimal totalUseCredit = 0; sqlStr = @"SELECT SUM(a.TradingMoney) AS TotalUseCredit FROM dbo.Pay_IncExpRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.PayId=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingType=-1 AND a.PayId=@PayId AND a.BalanceAccount=9 "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["TotalUseCredit"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["TotalUseCredit"].ToString())) { totalUseCredit += dt.Rows[0]["TotalUseCredit"].ToString().ToDecimal2().Value; } } } surplusCredit = allCredit - totalUseCredit; return surplusCredit; } /// /// 获取期初授信 /// /// /// /// /// /// /// public decimal GetCreditByBefore(int currentPayId, string startDate, string selectProvince, string selectCity, string selectCounty) { string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; dt = null; pars = new List(); par = null; decimal creditByBefore = 0; if (string.IsNullOrEmpty(startDate)) { return creditByBefore; } sqlStr = @"select SUM(a.TradingMoney) as allCreditByBefore FROM dbo.Pay_CreditRecard a inner join Pay_PaymentAccount b on a.PayId=b.KeyId INNER JOIN dbo.EC_MemberBasic c ON b.MemberId=c.MemberId WHERE a.PayId<>@PayId"; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime<@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["allCreditByBefore"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["allCreditByBefore"].ToString())) { creditByBefore += dt.Rows[0]["allCreditByBefore"].ToString().ToDecimal2().Value; } } } return creditByBefore; } /// /// 查询管理员的统计信息 /// /// /// /// public PaymentAccountQueryModelByAdmin GetPaymentAccountQueryModelByAdmin(int currentPayId, string startDate, string endDate, string selectProvince, string selectCity, string selectCounty) { PaymentAccountQueryModelByAdmin result = new PaymentAccountQueryModelByAdmin(); string sqlStr = string.Empty; IList pars = new List(); DataTable dt = null; SqlParameter par = null; #region 计算总收入 //计算累计已收交易佣金 result.AllIncomeByCommission = GetTotalCommission(currentPayId, startDate, endDate, selectProvince, selectCity, selectCounty); //已还授信 result.AllIncomeByReturnCredit = GetTotalReturnCredit(currentPayId, startDate, endDate, selectProvince, selectCity, selectCounty); //已还佣金 result.AllIncomeByReturnCommission = GetTotalReturnCommission(currentPayId, startDate, endDate, selectProvince, selectCity, selectCounty); //累计厂商注册费 result.AllIncomeByRegsiter = GetAllIncomeByorther("印刷厂商注册费", startDate, endDate, selectProvince, selectCity, selectCounty); //累计网店押金 result.AllIncomeByDeposit = GetAllIncomeByorther("个人网店押金", startDate, endDate, selectProvince, selectCity, selectCounty); //累计厂商续费 result.AllIncomeByDepositByRenewal = GetAllIncomeByorther("印刷厂商续费", startDate, endDate, selectProvince, selectCity, selectCounty); //累计网站广告 result.AllIncomeByWebAd = GetAllIncomeByorther("网站广告费", startDate, endDate, selectProvince, selectCity, selectCounty); //累计杂志广告 result.AllIncomeByNoteAd = GetAllIncomeByorther("杂志广告费", startDate, endDate, selectCity, selectProvince, selectCounty); //累计管理软件 result.AllIncomeByManageSoftware = GetAllIncomeByorther("管理软件费", startDate, endDate, selectProvince, selectCity, selectCounty); #endregion #region 计算总支出(使用授信) result.AllExpend = GetUseCredit(currentPayId, startDate, endDate, selectProvince, selectCity, selectCounty); #endregion #region 会员充值 result.RechargeMoney = GetMemberRecharge(currentPayId, startDate, endDate, selectProvince, selectCity, selectCounty); #endregion #region 会员提现 result.WithdrawMoney = GetWithdrawMoney(startDate, endDate, selectProvince, selectCity, selectCounty); #endregion #region 会员余额 result.SurplusMoney = GetSurplusMoney(currentPayId, startDate, endDate, selectProvince, selectCity, selectCounty); #endregion #region 累计授信 result.AllCredit = GetAllCredit(currentPayId, startDate, endDate, selectProvince, selectCity, selectCounty); #endregion #region 累计使用授信 result.CreditUsed = GetUseCredit(currentPayId, startDate, endDate, selectProvince, selectCity, selectCounty); #endregion #region 累计授信余额 result.HasCredit = GetHasCredit(currentPayId, startDate, endDate, selectProvince, selectCity, selectCounty); #endregion #region 累计期初授信 result.CreditByBefore = GetCreditByBefore(currentPayId, startDate, selectProvince, selectCity, selectCounty); #endregion #region 累计积分 dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(a.TradingScore) AS AllScore FROM dbo.Pay_ScoreRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.Payid=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingState=-1 AND a.TradingType=1 "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["AllScore"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["AllScore"].ToString())) { result.AllScore = dt.Rows[0]["AllScore"].ToString().ToInt32().Value; } } } #endregion #region 兑换积分 dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(a.TradingScore) AS UsedScore FROM dbo.Pay_ScoreRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.Payid=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingState=-1 AND a.TradingType=-1 "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["UsedScore"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["UsedScore"].ToString())) { result.UsedScore = dt.Rows[0]["UsedScore"].ToString().ToInt32().Value; } } } #endregion #region 累计推广佣金 dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(a.TradingMoney) AS AllPromotionMoney FROM dbo.Pay_PromotionRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.Payid=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingState=-1 AND a.TradingType=1 "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["AllPromotionMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["AllPromotionMoney"].ToString())) { result.AllPromotionMoney = dt.Rows[0]["AllPromotionMoney"].ToDecimal2().Value; } } } #endregion #region 兑换佣金 dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(a.TradingMoney) AS UsedPromotionMoney FROM dbo.Pay_PromotionRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.Payid=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingState=-1 AND a.TradingType=-1 "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["UsedPromotionMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["UsedPromotionMoney"].ToString())) { result.UsedPromotionMoney = dt.Rows[0]["UsedPromotionMoney"].ToDecimal2().Value; } } } #endregion #region 已付佣金 dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(a.TradingMoney) AS UsedCommissionMoney FROM dbo.Pay_IncExpRecord a INNER JOIN dbo.Pay_PaymentAccount b ON a.PayId=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.TradingType=1 AND a.PayeeId=@PayId AND (a.BalanceAccount=3 OR a.BalanceAccount=10) "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["UsedCommissionMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["UsedCommissionMoney"].ToString())) { result.UsedCommissionMoney = dt.Rows[0]["UsedCommissionMoney"].ToDecimal2().Value; } } } #endregion #region 未付佣金 dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(a.OwedAmount) AS SurplusCommissionMoney FROM dbo.Pay_OwedMoney a INNER JOIN dbo.Pay_PaymentAccount b ON a.Payid=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId WHERE a.IsEffective=1 "; if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["SurplusCommissionMoney"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["SurplusCommissionMoney"].ToString())) { result.SurplusCommissionMoney = dt.Rows[0]["SurplusCommissionMoney"].ToDecimal2().Value; } } } #endregion // #region 交易返点 // dt = null; // pars = new List(); // par = null; // sqlStr = @"SELECT SUM(a.TradingMoney) AS AllPayReturn // FROM dbo.Pay_IncExpRecord a INNER JOIN dbo.Pay_PaymentAccount b // ON a.PayeeId=b.Keyid INNER JOIN dbo.EC_MemberBasic c ON c.MemberId=b.MemberId // WHERE a.TradingType=-1 AND a.PayId=@PayId AND a.BalanceAccount=1 "; // par = new SqlParameter("@PayId", currentPayId); // pars.Add(par); // if (!string.IsNullOrEmpty(startDate)) // { // sqlStr += " and a.CreateTime>=@startDate "; // par = new SqlParameter("@startDate", startDate); // pars.Add(par); // } // if (!string.IsNullOrEmpty(endDate)) // { // sqlStr += " and a.CreateTime<=@endDate "; // par = new SqlParameter("@endDate", endDate); // pars.Add(par); // } // if (!string.IsNullOrEmpty(selectProvince)) // { // sqlStr += " and c.Province=@Province "; // par = new SqlParameter("@Province", selectProvince); // pars.Add(par); // } // if (!string.IsNullOrEmpty(selectCity)) // { // sqlStr += " and c.City=@City "; // par = new SqlParameter("@City", selectCity); // pars.Add(par); // } // if (!string.IsNullOrEmpty(selectCounty)) // { // sqlStr += " and c.County=@County "; // par = new SqlParameter("@County", selectCounty); // pars.Add(par); // } // dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); // if (dt != null && dt.Rows.Count > 0) // { // if (dt.Rows[0]["AllPayReturn"] != null) // { // if (!string.IsNullOrEmpty(dt.Rows[0]["AllPayReturn"].ToString())) // { // result.AllPayReturn = dt.Rows[0]["AllPayReturn"].ToDecimal2().Value; // } // } // } // #endregion #region 印刷交易额 dt = null; pars = new List(); par = null; sqlStr = @"SELECT SUM(b.OnlineMoney+b.UsedCredit) AS PayMoneyByPrint FROM dbo.EC_OrderBasic a INNER JOIN dbo.Pay_TradingSingle b ON a.Keyid=b.OrderId INNER JOIN dbo.EC_MemberBasic c ON b.PayerId=c.MemberId WHERE a.OrderState=-1 AND a.OrderTypeId<1 AND (b.OnlineMoney+b.UsedCredit)>0 "; par = new SqlParameter("@PayId", currentPayId); pars.Add(par); if (!string.IsNullOrEmpty(startDate)) { sqlStr += " and a.CreateTime>=@startDate "; par = new SqlParameter("@startDate", startDate); pars.Add(par); } if (!string.IsNullOrEmpty(endDate)) { sqlStr += " and a.CreateTime<@endDate "; par = new SqlParameter("@endDate", endDate); pars.Add(par); } if (!string.IsNullOrEmpty(selectProvince)) { sqlStr += " and c.Province=@Province "; par = new SqlParameter("@Province", selectProvince); pars.Add(par); } if (!string.IsNullOrEmpty(selectCity)) { sqlStr += " and c.City=@City "; par = new SqlParameter("@City", selectCity); pars.Add(par); } if (!string.IsNullOrEmpty(selectCounty)) { sqlStr += " and c.County=@County "; par = new SqlParameter("@County", selectCounty); pars.Add(par); } dt = _dataBase.QueryDataTable(sqlStr, CommandType.Text, pars.ToArray()); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows[0]["PayMoneyByPrint"] != null) { if (!string.IsNullOrEmpty(dt.Rows[0]["PayMoneyByPrint"].ToString())) { result.PayMoneyByPrint = dt.Rows[0]["PayMoneyByPrint"].ToDecimal2().Value; } } } #endregion return result; } /// /// 推广更新账户信息 /// /// /// /// /// /// /// /// public bool PayPaymentAccountPromotion(int? keyId, decimal? PromotionMoney, int? Score, decimal? ProxyMoney, decimal? ProxyMoneyCash, decimal? ProxyMoneyAudit) { IList sqlParms = new List() { new SqlParameter("@keyId",keyId), new SqlParameter("@PromotionMoney",PromotionMoney), new SqlParameter("@Score",Score), new SqlParameter("@ProxyMoney",ProxyMoney), new SqlParameter("@ProxyMoneyCash",ProxyMoneyCash), new SqlParameter("@ProxyMoneyAudit",ProxyMoneyAudit), new SqlParameter("@returnState",0){SqlDbType=System.Data.SqlDbType.Int, Direction=ParameterDirection.Output} }; try { _dataBase.Query("sp_PayPaymentAccountPromotion", CommandType.StoredProcedure, sqlParms.ToArray()); return 0 < (int)(sqlParms[6].Value); } catch (Exception ex) { throw ex; } } } }