/// <summary> /// 为会员分派奖金 /// </summary> /// <param name="memberphone"></param> /// <param name="money"></param> /// <returns></returns> public string FenPaiMoney(string memberphone, decimal money) { string result = "0"; MemberInfoModel member = MemberInfoDAL.GetMember(memberphone); if (member == null) { return("0无此会员"); } using (TransactionScope scope = new TransactionScope()) { int rowcount = MemberCapitalDetailDAL.UpdateMemberDynamicFunds(member.ID, money, member.TruethName, member.MobileNum); if (rowcount < 1) { return("0操作失败"); } AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = member.ID; logmodel.MemberName = member.TruethName; logmodel.MemberPhone = member.MobileNum; logmodel.OrderCode = ""; logmodel.OrderID = 0; logmodel.ProduceMoney = money; logmodel.Remark = "会员:" + member.MobileNum + " 得到系统派发的奖金"; logmodel.Type = 3; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return("0操作失败"); } scope.Complete(); result = "1"; } return(result); }
/// <summary> /// 根据类型得到分页的日志数据 /// </summary> /// <param name="page"></param> /// <param name="pagesize"></param> /// <param name="type"></param> /// <param name="totalcount"></param> /// <returns></returns> public static List <AmountChangeLogModel> GetAmountChangeLogByTypeForPage(int pageindex, int pagesize, int type, int memberid, out int totalrowcount) { List <AmountChangeLogModel> list = new List <AmountChangeLogModel>(); string columms = @"ID ,MemberID ,MemberPhone ,MemberName ,ProduceMoney ,Remark ,AddTime ,OrderID ,[Type] ,OrderCode"; string where = ""; if (type > 0) { where += " [Type]=" + type.ToString(); } if (memberid > 0) { where += " [MemberID]=" + memberid.ToString(); } PageProModel page = new PageProModel(); page.colums = columms; page.orderby = "AddTime"; page.pageindex = pageindex; page.pagesize = pagesize; page.tablename = @"dbo.AmountChangeLog"; page.where = where; DataTable dt = PublicHelperDAL.GetTable(page, out totalrowcount); foreach (DataRow item in dt.Rows) { AmountChangeLogModel model = new AmountChangeLogModel(); if (item["ID"].ToString() != "") { model.ID = int.Parse(item["ID"].ToString()); } if (item["AddTime"].ToString() != "") { model.AddTime = DateTime.Parse(item["AddTime"].ToString()); } if (item["MemberID"].ToString() != "") { model.MemberID = int.Parse(item["MemberID"].ToString()); } model.MemberPhone = item["MemberPhone"].ToString(); if (item["ProduceMoney"].ToString() != "") { model.ProduceMoney = decimal.Parse(item["ProduceMoney"].ToString()); } model.MemberName = item["MemberName"].ToString(); if (item["AddTime"].ToString() != "") { model.AddTime = DateTime.Parse(item["AddTime"].ToString()); } model.Remark = item["Remark"].ToString(); if (item["OrderID"].ToString() != "") { model.OrderID = int.Parse(item["OrderID"].ToString()); } model.OrderCode = item["OrderCode"].ToString(); model.Type = int.Parse(item["Type"].ToString()); list.Add(model); } return(list); }
/// <summary> /// 查询会员的资金变动记录 /// </summary> /// <param name="memberid"></param> /// <param name="top"></param> /// <returns></returns> public static List <AmountChangeLogModel> GetAmontChangeLogByMemberID(int memberid, int top = 10) { List <AmountChangeLogModel> list = new List <AmountChangeLogModel>(); string sqltxt = @"SELECT TOP ( @topnum ) ID , MemberID , MemberPhone , MemberName , ProduceMoney , Remark , AddTime , OrderID , [Type] , OrderCode, CASE [Type] WHEN 1 THEN '提供帮助' WHEN 2 THEN '接受帮助' WHEN 3 THEN '奖金派发' WHEN 4 THEN '利息结余' WHEN 5 THEN '系统返还' END AS TypeName FROM dbo.AmountChangeLog WHERE MemberID = @memberid Order by ID desc"; SqlParameter[] paramter = { new SqlParameter("@memberid", memberid), new SqlParameter("@topnum", top) }; DataTable dt = helper.Query(sqltxt, paramter).Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow item in dt.Rows) { AmountChangeLogModel model = new AmountChangeLogModel(); model.AddTime = item["AddTime"].ToString().ParseToDateTime(DateTime.Now); model.ID = item["ID"].ToString().ParseToInt(0); model.MemberID = item["MemberID"].ToString().ParseToInt(0); model.MemberName = item["MemberName"].ToString(); model.MemberPhone = item["MemberPhone"].ToString(); model.OrderCode = item["OrderCode"].ToString(); model.OrderID = item["OrderID"].ToString().ParseToInt(0); model.ProduceMoney = item["ProduceMoney"].ToString().ParseToDecimal(0); model.Remark = item["Remark"].ToString(); model.Type = item["Type"].ToString().ParseToInt(0); model.TypeName = item["TypeName"].ToString(); list.Add(model); } } return(list); }
/// <summary> /// 惩罚会员静态金额 /// </summary> /// <param name="memberphone"></param> /// <param name="money"></param> /// <returns></returns> public string punishmentStaticMoney(int memberid, decimal money, string reason) { string result = "0"; MemberInfoModel member = MemberInfoDAL.GetMember(memberid); if (member == null) { return("0无此会员"); } using (TransactionScope scope = new TransactionScope()) { int rowcount = MemberCapitalDetailDAL.UpdateStaticPunishMoney(member.ID, money, member.TruethName, member.MobileNum); if (rowcount < 1) { return("0操作失败"); } AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = member.ID; logmodel.MemberName = member.TruethName; logmodel.MemberPhone = member.MobileNum; logmodel.OrderCode = ""; logmodel.OrderID = 0; logmodel.ProduceMoney = (0 - money); logmodel.Remark = "会员:" + member.MobileNum + " 被平台惩罚:" + money.ToString() + " 元,原因:" + reason; logmodel.Type = 3; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return("0操作失败"); } try { UserBehaviorLogModel log = new UserBehaviorLogModel(); log.AOrderCode = ""; log.BehaviorSource = 2; log.BehaviorType = 10; log.HOrderCode = ""; log.MemberID = member.ID; log.MemberName = member.TruethName; log.MemberPhone = member.MobileNum; log.ProcAmount = money; log.Remark = "会员:" + member.MobileNum + " 被惩罚静态资金" + money + "元"; rowcount = UserBehaviorLogDAL.AddUserBehaviorLog(log); } catch { } scope.Complete(); result = "1"; } return(result); }
/// <summary> /// 为会员分派动态奖金 /// </summary> /// <param name="memberphone"></param> /// <param name="money"></param> /// <returns></returns> public string FenPaiMoneyToDynamic(int memberid, decimal money) { string result = "0"; MemberInfoModel member = MemberInfoDAL.GetMember(memberid); if (member == null) { return("0无此会员"); } using (TransactionScope scope = new TransactionScope()) { int rowcount = MemberCapitalDetailDAL.UpdateMemberDynamicFunds(member.ID, money, member.TruethName, member.MobileNum); if (rowcount < 1) { return("0操作失败"); } AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = member.ID; logmodel.MemberName = member.TruethName; logmodel.MemberPhone = member.MobileNum; logmodel.OrderCode = ""; logmodel.OrderID = 0; logmodel.ProduceMoney = money; logmodel.Remark = "会员:" + member.MobileNum + " 得到系统派发的奖金"; logmodel.Type = 3; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return("0操作失败"); } try { UserBehaviorLogModel log = new UserBehaviorLogModel(); log.AOrderCode = ""; log.BehaviorSource = 2; log.BehaviorType = 9; log.HOrderCode = ""; log.MemberID = member.ID; log.MemberName = member.TruethName; log.MemberPhone = member.MobileNum; log.ProcAmount = money; log.Remark = "会员:" + member.MobileNum + " 获得系统奖励动态资金" + money + "元"; rowcount = UserBehaviorLogDAL.AddUserBehaviorLog(log); } catch { } scope.Complete(); result = "1"; } return(result); }
/// <summary> /// 增加资金变动日志 /// </summary> public static int AddAmountChangeLog(AmountChangeLogModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into AmountChangeLog("); strSql.Append("Type,OrderCode,MemberID,MemberPhone,MemberName,ProduceMoney,Remark,AddTime,OrderID"); strSql.Append(") values ("); strSql.Append("@Type,@OrderCode,@MemberID,@MemberPhone,@MemberName,@ProduceMoney,@Remark,GETDATE(),@OrderID"); strSql.Append(") "); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@Type", SqlDbType.Int), new SqlParameter("@OrderCode", SqlDbType.NVarChar), new SqlParameter("@MemberID", SqlDbType.Int), new SqlParameter("@MemberPhone", SqlDbType.NVarChar), new SqlParameter("@MemberName", SqlDbType.NVarChar), new SqlParameter("@ProduceMoney", SqlDbType.Decimal), new SqlParameter("@Remark", SqlDbType.NVarChar), new SqlParameter("@OrderID", SqlDbType.Int) }; parameters[0].Value = model.Type; parameters[1].Value = model.OrderCode; parameters[2].Value = model.MemberID; parameters[3].Value = model.MemberPhone; parameters[4].Value = model.MemberName; parameters[5].Value = model.ProduceMoney; parameters[6].Value = model.Remark; parameters[7].Value = model.OrderID; object obj = helper.GetSingle(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToInt32(obj)); } }
/// <summary> ///注册会员(已追加注册返还金额功能) /// </summary> public string AddMemberInfo(MemberInfoModel model) { string result = "1"; string value = SysAdminConfigDAL.GetConfigsByID(4);//得到注册返还金额 #region 验证用户真实姓名 和手机 int rows = MemberInfoDAL.GetMemberCountInfoByName(model.TruethName.Trim()); if (rows > 2) { return("0用户姓名重复"); } rows = MemberInfoDAL.GetMemberCountInfoByMobile(model.MobileNum.Trim()); if (rows > 0) { return("0手机号已被注册"); } //rows = MemberInfoDAL.GetMemberCountInfoByAlipayNum(model.AliPayNum.Trim()); //if (rows > 0) //{ // return "0支付宝ID已被注册"; //} rows = MemberInfoDAL.GetMemberCountInfoByAliPayName(model.AliPayName.Trim()); if (rows > 0) { return("0支付宝账户已被注册"); } #endregion using (TransactionScope scope = new TransactionScope()) { int memberid = dal.AddMemberInfo(model); if (memberid < 1) { return("0注册失败"); } decimal amont = 0; if (!string.IsNullOrWhiteSpace(value)) { if (!decimal.TryParse(value, out amont)) { return("0注册失败"); } int row = MemberCapitalDetailDAL.UpdateMemberStaticFreezeMoney(memberid, amont, model.TruethName, model.MobileNum); if (row < 1) { return("0注册失败"); } } //返还激活码金额 AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = memberid; logmodel.MemberName = model.TruethName; logmodel.MemberPhone = model.MobileNum; logmodel.ProduceMoney = amont; logmodel.Remark = "会员注册激活码" + amont.ToString() + "元"; logmodel.Type = 5; int rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return("0注册失败"); } if (model.MemberPhone != model.MobileNum) { //插入推荐人信息表 MemberInfoModel soucemember = MemberInfoDAL.GetMember(model.MemberPhone); if (soucemember.MStatus == 3) { return("0推荐人账户被冻结"); } ReMemberRelationModel remodel = new ReMemberRelationModel(); remodel.MemberID = soucemember.ID; remodel.MemberTruthName = soucemember.TruethName; remodel.MemberPhone = soucemember.MobileNum; remodel.RecommMID = memberid; remodel.RecommMPhone = model.MobileNum; remodel.RecommMTruthName = model.TruethName; rowcount = ReMemberRelationDAL.AddReMemberRelation(remodel); if (rowcount < 1) { return("0注册失败"); } } //初始化会员扩展信息表 MemberExtendInfoModel extendinfo = new MemberExtendInfoModel(); extendinfo.MemberID = memberid; extendinfo.MemberHelpCount = 0; extendinfo.LastHelpMoney = 0; extendinfo.LastHelperTime = DateTime.Now.AddYears(-1); rowcount = MemberExtendInfoDAL.AddModelExtendinfo(extendinfo); if (rowcount < 1) { return("0注册失败"); } scope.Complete(); result = "1"; } return(result); }
/// <summary> /// 取消提供帮助的订单 /// </summary> /// <param name="hid"></param> /// <param name="ispipei">单据是否已经匹配</param> /// <returns></returns> public int UpdateToCancle(int hid, int ispipei = 0) { int result = 0; List <LeaderAmountModel> leaderlist = MemberCapitalDetailDAL.GetLeaderamountListByOrderID(hid); using (TransactionScope scope = new TransactionScope()) { //更改订单状态 int rowcount = HelpeOrderDAL.UpdateStatus(hid, 3); if (rowcount < 1) { return(0); } //返还会员追加的资金 HelpeOrderModel model = HelpeOrderDAL.GetHelpOrderInfo(hid); rowcount = MemberCapitalDetailDAL.UpdateMemberStaticFreezeMoneyAndinster(model.MemberID, (0 - model.Amount), 1, model.MemberName, model.MemberPhone); //rowcount = MemberCapitalDetailDAL.UpdateMemberStaticCapital(model.MemberID, (0 - model.Amount), model.MemberName, model.MemberPhone); if (rowcount < 1) { return(0); } //插入会员资金变动日志 AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = model.MemberID; logmodel.MemberName = model.MemberName; logmodel.MemberPhone = model.MemberPhone; logmodel.OrderCode = model.OrderCode; logmodel.OrderID = hid; logmodel.ProduceMoney = (0 - model.Amount); logmodel.Remark = "会员:" + model.MemberPhone + " 取消提供帮助,扣减静态冻结资金 " + model.Amount.ToString() + "元"; logmodel.Type = 1; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return(0); } if (model.Interest > 0) { //从账户扣减本次产生的利息 rowcount = MemberCapitalDetailDAL.UpdateStaticInterest(model.MemberID, (0 - model.Interest)); if (rowcount < 1) { return(0); } //插入日志 AmountChangeLogModel logmodel1 = new AmountChangeLogModel(); logmodel1.MemberID = model.MemberID; logmodel1.MemberName = model.MemberName; logmodel1.MemberPhone = model.MemberPhone; logmodel1.OrderCode = model.OrderCode; logmodel1.OrderID = hid; logmodel1.ProduceMoney = (0 - model.Amount); logmodel1.Remark = "会员:" + model.MemberPhone + " 取消提供帮助,扣减利息 " + model.Interest.ToString() + "元"; logmodel.Type = 4; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel1); if (rowcount < 1) { return(0); } } //撤销对会员领导人的推荐奖和领导奖 if (leaderlist != null) { foreach (var item in leaderlist) { if (item.LType == 0) { rowcount = MemberCapitalDetailDAL.UpdateDynamicInterest(item.MemberID, (0 - item.Amount), item.MemberName, item.MemberPhone); } else if (item.LType == 1) { rowcount = MemberCapitalDetailDAL.UpdateMemberDynamicFreezeMoney(item.MemberID, (0 - item.Amount), item.MemberName, item.MemberPhone); } } } //更新会员统计信息 rowcount = MemberExtendInfoDAL.CancleHelperOrder(model.MemberID, hid); if (rowcount < 1) { return(0); } if (ispipei == 1)//该单已经匹配 { List <MatchOrderModel> matchs = MatchOrderDAL.GetMatchOrderInfo(hid, 0); rowcount = MatchOrderDAL.UpdateStatus(hid, 0);//更改状态为取消 if (rowcount < 1) { return(0); } foreach (var item in matchs)//更改接受帮助订单的状态 { rowcount = AcceptHelpOrderDAL.CancleOrderForHelp(item.AcceptOrderID, item.MatchedMoney); if (rowcount < 1) { return(0); } } } scope.Complete(); result = 1; } return(result); }
/// <summary> /// 添加一条提供帮助单据 /// </summary> public string AddHelpeOrder(HelpeOrderModel model) { string result = "0"; string minhelpamont = SystemConfigs.GetminHelpAmont(); //得到最小的提供帮助限制 string maxhelpamont = SystemConfigs.GetmaxHelpAmont(); //得到最大的提供帮助限制 string interest = SysAdminConfigDAL.GetConfigsByID(5); //得到排单后的利率 string inteistlist = SysAdminConfigDAL.GetConfigsByID(11); //得到领导奖利率 decimal reinteist = SysAdminConfigDAL.GetConfigsByID(16).ParseToDecimal(10); //得到首次推荐的利率 decimal maxcount = SysAdminConfigDAL.GetConfigsByID(17).ParseToInt(1); //得到每日最大排单数 MemberExtendInfoModel meinfo = MemberExtendInfoDAL.GetMemberExtendInfo(model.MemberID); int helpcount = HelpeOrderDAL.GetTodayHelpCount(model.MemberID); if (model.Amount < minhelpamont.ParseToDecimal(0)) { return("0超出了平台规定的最小规定值"); } if (model.Amount > maxhelpamont.ParseToDecimal(0)) { return("0超出了平台规定的最大规定值"); } if (helpcount >= maxcount) { return("0今天已经提供过帮助"); } bool isfirst = false;//默认不是第一次 if (meinfo == null) { isfirst = true; } else { isfirst = meinfo.MemberHelpCount == 0; } if (string.IsNullOrWhiteSpace(model.ActiveCode)) { return("0没有填写排单币"); } ActiveCodeModel activemodel = ActiveCodeDAL.GetActiveCodeExtendModel(model.ActiveCode); if (activemodel == null)//没有该激活码信息为失败 { return("0排单币无效"); } if (activemodel.AStatus == 10)//改激活码已使用为失败 { return("0排单币已经被使用"); } if (model.Amount % 100 > 0) { return("0提供金额应为100的整数倍"); } ReMemberRelationModel remember = ReMemberRelationDAL.GetReMemberRelation(model.MemberID); using (TransactionScope scope = new TransactionScope()) { //更改激活码的使用状态 int rowcount = ActiveCodeDAL.UpdateStatus(activemodel.ID, 10); if (rowcount < 1) { return("0操作失败"); } rowcount = ActiveCodeDAL.UpdateMemberActiveToUse(model.MemberID, model.OrderCode, model.ActiveCode); if (rowcount < 1) { return("0操作失败"); } //插入激活码的使用日志 ActiveCodeLogModel aclogmodel = new ActiveCodeLogModel(); aclogmodel.ActiveCode = model.ActiveCode; aclogmodel.AID = model.ActiveCodeID; aclogmodel.MemberID = model.MemberID; aclogmodel.MemberName = model.MemberName; aclogmodel.MemberPhone = model.MemberPhone; aclogmodel.Remark = "会员:" + model.MemberName + " 使用排单币:" + model.ActiveCode + " 进行排单"; rowcount = OperateLogDAL.AddActiveCodeLog(aclogmodel); if (rowcount < 1) { return("0操作失败"); } //更改会员的资金信息和利率 decimal dinterest = 1; if (!string.IsNullOrWhiteSpace(interest)) { if (!decimal.TryParse(interest, out dinterest)) { return("0操作失败"); } } //rowcount = MemberCapitalDetailDAL.UpdateMemberStaticCapital(model.MemberID, model.Amount, dinterest,model.MemberName,model.MemberPhone); rowcount = MemberCapitalDetailDAL.UpdateMemberStaticFreezeMoneyAndinster(model.MemberID, model.Amount, dinterest, model.MemberName, model.MemberPhone); if (rowcount < 1) { return("0操作失败"); } //插入表记录 model.IsFristOrder = isfirst ? 1 : 0; int orderid = dal.AddHelpeOrder(model); if (orderid < 1) { return("0操作失败"); } //更新会员的统计信息 rowcount = MemberExtendInfoDAL.Update(model.MemberID, model.Amount); if (rowcount < 1) { return("0操作失败"); } //插入会员的资金变动纪录 AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = model.MemberID; logmodel.MemberName = model.MemberName; logmodel.MemberPhone = model.MemberPhone; logmodel.OrderCode = model.OrderCode; logmodel.OrderID = orderid; logmodel.ProduceMoney = model.Amount; logmodel.Remark = "会员:" + model.MemberPhone + " 申请提供帮助 " + model.Amount.ToString() + "元"; logmodel.Type = 1; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return("0操作失败"); } //为推荐人添加领导奖 rowcount = MemberCapitalDetailDAL.PaymentLeaderPrize(model.MemberID, model.Amount, inteistlist, model.OrderCode, orderid); if (rowcount < 1) { return("0操作失败"); } //若此会员第一次排单,则给推荐人奖励 if (isfirst) { rowcount = MemberCapitalDetailDAL.UpdateMemberDynamicFreezeMoney(remember.MemberID, (model.Amount * reinteist / 100), remember.MemberTruthName, remember.MemberPhone); if (rowcount < 1) { return("0操作失败"); } LeaderAmountModel leadermodel = new LeaderAmountModel();//插入领导奖记录 leadermodel.OrderID = orderid; leadermodel.OrderCode = model.OrderCode; leadermodel.MemberPhone = remember.MemberPhone; leadermodel.MemberName = remember.MemberTruthName; leadermodel.MemberID = remember.MemberID; leadermodel.LType = 1; leadermodel.Amount = (model.Amount * reinteist / 100); rowcount = MemberCapitalDetailDAL.AddLeaderAmount(leadermodel); if (rowcount < 1) { return("0操作失败"); } AmountChangeLogModel logmodel1 = new AmountChangeLogModel(); logmodel1.MemberID = remember.MemberID; logmodel1.MemberName = remember.MemberTruthName; logmodel1.MemberPhone = remember.MemberPhone; logmodel1.OrderCode = model.OrderCode; logmodel1.OrderID = orderid; logmodel1.ProduceMoney = (model.Amount * reinteist / 100); logmodel1.Remark = "会员:" + remember.MemberPhone + " 得到来自 " + model.MemberPhone + "的首单推荐奖(已冻结)" + (model.Amount * reinteist / 100).ToString() + "元"; logmodel1.Type = 3; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel1); if (rowcount < 1) { return("0操作失败"); } } try { UserBehaviorLogModel log = new UserBehaviorLogModel(); log.AOrderCode = ""; log.BehaviorSource = 1; log.BehaviorType = 2; log.HOrderCode = model.OrderCode; log.MemberID = model.MemberID; log.MemberName = model.MemberName; log.MemberPhone = model.MemberPhone; log.ProcAmount = model.Amount; log.Remark = "会员:" + model.MemberPhone + "提供帮助单号为:" + model.OrderCode; rowcount = UserBehaviorLogDAL.AddUserBehaviorLog(log); } catch { } scope.Complete(); result = "1"; } return(result); }
/// <summary> /// 更新状态为已取消(前端使用) /// </summary> /// <param name="aid"></param> /// <returns></returns> public int UpdateToCancle(int aid, int ispipei) { int result = 0; using (TransactionScope scope = new TransactionScope()) { //更改单据状态 int rowcount = AcceptHelpOrderDAL.UpdateStatus(aid, 3); if (rowcount < 1) { return(0); } //返还会员对应类型的资金 AcceptHelpOrderModel order = AcceptHelpOrderDAL.GetAcceptOrderInfo(aid); if (order.SourceType == 1)//静态资金 { rowcount = MemberCapitalDetailDAL.UpdateMemberStaticCapital(order.MemberID, order.Amount, order.MemberName, order.MemberPhone); } else if (order.SourceType == 2)//动态资金 { rowcount = MemberCapitalDetailDAL.UpdateMemberDynamicFunds(order.MemberID, order.Amount, order.MemberName, order.MemberPhone); } if (rowcount < 1) { return(0); } //插入会员资金变动日志 AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = order.MemberID; logmodel.MemberName = order.MemberName; logmodel.MemberPhone = order.MemberPhone; logmodel.OrderCode = order.OrderCode; logmodel.OrderID = aid; logmodel.ProduceMoney = order.Amount; logmodel.Remark = "会员:" + order.MemberPhone + " 取消提供帮助,返还扣减的资金 " + order.Amount.ToString() + "元"; logmodel.Type = 5; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return(0); } if (ispipei > 0)//若已经匹配则取消对应单据的信息 { List <MatchOrderModel> matchs = MatchOrderDAL.GetMatchOrderInfo(0, aid); rowcount = MatchOrderDAL.UpdateStatus(0, aid);//更改状态为取消 if (rowcount < 1) { return(0); } foreach (var item in matchs)//更改接受帮助订单的状态 { rowcount = HelpeOrderDAL.CancleOrderForHelp(item.HelperOrderID, item.MatchedMoney); if (rowcount < 1) { return(0); } } } scope.Complete(); result = 1; } return(result); }
/// <summary> /// 更新状态为已完成 /// </summary> /// <returns></returns> public int UpdateSingleOrderToComplete(int aid, int hid) { int result = 0; //List<MatchOrderModel> matchorders = MatchOrderDAL.GetMatchOrderInfo(0, aid); HelpeOrderModel helporder = HelpeOrderDAL.GetHelpOrderInfo(hid); //查询提供帮助的单据 AcceptHelpOrderModel accorder = AcceptHelpOrderDAL.GetAcceptOrderInfo(aid); //查询接受单据的信息 List <MatchOrderModel> matchinfo = MatchOrderDAL.GetMatchOrderInfo(hid, aid); //单据的匹配信息 string value = SysAdminConfigDAL.GetConfigsByID(4); //得到注册返还金额 string scvalue = SysAdminConfigDAL.GetConfigsByID(6); //得到注册返还金额 string inteistlist = SysAdminConfigDAL.GetConfigsByID(11); //得到领导奖利率 int day = SysAdminConfigDAL.GetConfigsByID(22).ParseToInt(20); //得到领导奖推荐奖冻结天数 string inteist = SysAdminConfigDAL.GetConfigsByID(7); //得到打款后利率 using (TransactionScope scope = new TransactionScope()) { //更改当前的接受单据状态和完成金额 int rowcount = AcceptHelpOrderDAL.UpdateStatusAndMoneyToComplete(aid, matchinfo[0].MatchedMoney); if (rowcount < 1) { return(0); } //更改匹配信息 rowcount = MatchOrderDAL.UpdateStatusToComplete(hid, aid); if (rowcount < 1) { return(0); } //更改匹配的提供帮助订单的状态 rowcount = HelpeOrderDAL.UpdateStatusForCompleteV1(helporder.ID, matchinfo[0].MatchedMoney); if (rowcount < 1) { return(0); } decimal diffamount = (helporder.Amount - helporder.PayedAmount - matchinfo[0].MatchedMoney); if (diffamount == 0) { //返还匹配会员的静态冻结资金和利息 rowcount = MemberCapitalDetailDAL.UpdateStaticInterestAndStaticFreezeMoney(helporder.MemberID, helporder.Amount, helporder.Interest); if (rowcount < 1) { return(0); } //更改单据利率为高利率 rowcount = HelpeOrderDAL.UpdateCurrentInterest(hid, inteist.ParseToInt(2)); if (rowcount < 1) { return(0); } //更改该单据的利息为0 rowcount = HelpeOrderDAL.UpdateHelperOrderClearInterest(helporder.ID); if (rowcount < 1) { return(0); } //返还推荐奖 if (helporder.IsFristOrder == 1 && helporder.IsRecommendBack == 0) { decimal inster = SysAdminConfigDAL.GetConfigsByID(16).ParseToInt(10);//得到首次推荐的利率 decimal money = helporder.Amount * inster / 100; ReMemberRelationModel model = ReMemberRelationDAL.GetReMemberRelation(helporder.MemberID); if (day == 0)//若为0,则当时返还 { //返还推荐奖 rowcount = MemberCapitalDetailDAL.UpdateDynamicInterestForComplete(model.MemberID, money); if (rowcount < 1) { return(0); } AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = model.MemberID; logmodel.MemberName = model.MemberTruthName; logmodel.MemberPhone = model.MemberPhone; logmodel.OrderCode = helporder.OrderCode; logmodel.OrderID = helporder.ID; logmodel.ProduceMoney = money; logmodel.Remark = "会员:" + model.MemberPhone + " 得到来自单据:" + helporder.OrderCode + "的推荐奖"; logmodel.Type = 3; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return(result); } } else { //返还推荐奖到待返还列表 WaitFreeLeaderAmountModel waitfreemodel = new WaitFreeLeaderAmountModel(); waitfreemodel.MemberID = model.MemberID; waitfreemodel.MemberName = model.MemberTruthName; waitfreemodel.MemberPhone = model.MemberPhone; waitfreemodel.Amount = money; waitfreemodel.AStatus = 1; waitfreemodel.TheoryFreeTime = DateTime.Now.AddDays(day); waitfreemodel.Type = 2; waitfreemodel.OrderCode = helporder.OrderCode; waitfreemodel.OrderID = helporder.ID; rowcount = MemberCapitalDetailDAL.AddWaitFreeMoney(waitfreemodel); if (rowcount < 1) { return(0); } } //返还激活码的钱 rowcount = MemberCapitalDetailDAL.UpdateStaticFreezeMoneyForReiger(helporder.MemberID, value.ParseToDecimal(0)); //更改单据为已经派发推荐奖 rowcount = HelpeOrderDAL.UpdateHelperOrderIsRecommendBack(helporder.ID); } if (helporder.IsLeaderBack == 0) { if (day == 0) { //返还领导奖 rowcount = MemberCapitalDetailDAL.PaymentLeaderPrizeForComplete(helporder.MemberID, inteistlist, helporder.OrderCode, helporder.ID); } else { //返还领导奖到待返还列表 rowcount = MemberCapitalDetailDAL.PaymentLeaderPrizeForComplete(helporder.MemberID, inteistlist, helporder.OrderCode, helporder.ID, day); } //更新单据状态 rowcount = HelpeOrderDAL.UpdateHelperOrderIsLeaderBack(helporder.ID); } //返还该单据排单币的金额 if (helporder.SchedulingAmount == 0) { rowcount = MemberCapitalDetailDAL.UpdateMemberStaticCapital(helporder.MemberID, scvalue.ParseToDecimal(0), helporder.MemberName, helporder.MemberPhone); if (rowcount < 1) { return(0); } rowcount = HelpeOrderDAL.UpdateHelperOrderIsRecommendBack(helporder.ID, scvalue.ParseToDecimal(0));//更新单据的排单币金额 if (rowcount < 1) { return(0); } AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = helporder.MemberID; logmodel.MemberName = helporder.MemberName; logmodel.MemberPhone = helporder.MemberPhone; logmodel.OrderCode = helporder.OrderCode; logmodel.OrderID = helporder.ID; logmodel.ProduceMoney = scvalue.ParseToDecimal(0); logmodel.Remark = "会员:" + helporder.MemberPhone + " 打款完成,返还排单币" + scvalue + "元"; logmodel.Type = 5; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return(0); } } } try { UserBehaviorLogModel log = new UserBehaviorLogModel(); log.AOrderCode = accorder.OrderCode; log.BehaviorSource = 1; log.BehaviorType = 5; log.HOrderCode = helporder.OrderCode; log.MemberID = accorder.MemberID; log.MemberName = accorder.MemberName; log.MemberPhone = accorder.MemberPhone; log.ProcAmount = matchinfo[0].MatchedMoney; log.Remark = "会员:" + accorder.MemberPhone + "为单据" + accorder.OrderCode + "确认收款"; rowcount = UserBehaviorLogDAL.AddUserBehaviorLog(log); } catch { } scope.Complete(); result = 1; } return(result); }
/// <summary> /// 增加一条数据 /// </summary> public string AddAcceptHelpOrder(AcceptHelpOrderModel model) { string result = "0"; MemberCapitalDetailModel moneydetail = MemberCapitalDetailDAL.GetMemberStaticCapital(model.MemberID); int rows = AcceptHelpOrderDAL.GetNotFinishOrderByMember(model.MemberID); if (rows > 0) { return("0还有未完成的接受帮助单据"); } string maxacceptamont = SystemConfigs.GetmaxAcceptAmont(); //得到最大的接受帮助限制 string minacceptamont = SystemConfigs.GetminAcceptAmont(); //得到最小的接受帮助限制 if (model.Amount > maxacceptamont.ParseToDecimal(0)) { return("0超出了平台规定的最大接受值"); } if (model.Amount < minacceptamont.ParseToDecimal(0)) { return("0超出了平台规定的最小接受值"); } int daynum = SysAdminConfigBLL.GetConfigValue(24).ParseToInt(15); MemberExtendInfoModel extentmember = MemberExtendInfoDAL.GetMemberExtendInfo(model.MemberID); if (DateTime.Now < extentmember.LastHelperTime.AddDays(daynum)) { return("0会员提供帮助单据仍处于冻结期"); } using (TransactionScope scope = new TransactionScope()) { //插入表 int orderid = dal.AddAcceptHelpOrder(model); if (orderid < 1) { return("0操作失败"); } //扣减会员的相应金额记录 int rowcount = 0; if (model.SourceType == 1) { if (moneydetail.StaticCapital < model.Amount) { return("0操作失败"); } rowcount = MemberCapitalDetailDAL.DeductionMemberStaticCapital(model.MemberID, 0 - model.Amount, 0); //清空会员的利率(不判断结果,不排除没有这样单据的可能,因为存在特殊账户) int rowcounts = HelpeOrderDAL.UpdateCurrentInterestToClear(model.MemberID); } else { if (moneydetail.DynamicFunds < model.Amount) { return("0操作失败"); } rowcount = MemberCapitalDetailDAL.DeductionMemberDynamicFunds(model.MemberID, 0 - model.Amount, 0); } if (rowcount < 1) { return("0操作失败"); } //点击接受帮助后不再为会员计算利息 //增加会员的资金变动记录 AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = model.MemberID; logmodel.MemberName = model.MemberName; logmodel.MemberPhone = model.MemberPhone; logmodel.OrderCode = model.OrderCode; logmodel.OrderID = orderid; logmodel.ProduceMoney = 0 - model.Amount; logmodel.Remark = "会员:" + model.MemberPhone + " 申请接受帮助 " + model.Amount.ToString() + "元"; logmodel.Type = 1; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return("0操作失败"); } try { UserBehaviorLogModel log = new UserBehaviorLogModel(); log.AOrderCode = model.OrderCode; log.BehaviorSource = 1; log.BehaviorType = 3; log.HOrderCode = ""; log.MemberID = model.MemberID; log.MemberName = model.MemberName; log.MemberPhone = model.MemberPhone; log.ProcAmount = model.Amount; log.Remark = "会员:" + model.MemberPhone + "接受帮助单号为:" + model.OrderCode; rowcount = UserBehaviorLogDAL.AddUserBehaviorLog(log); } catch { } scope.Complete(); result = "1"; } return(result); }