/// <summary> /// 得到会员的激活码使用信息 /// </summary> /// <param name="model"></param> /// <param name="totalrowcount"></param> /// <returns></returns> public List <ActiveCodeLogModel> GetActiveCodeLogListForPage(int memberid, int pageindex, int pagesize, out int totalrowcount) { List <ActiveCodeLogModel> list = new List <ActiveCodeLogModel>(); string columms = @"ID ,MemberID ,MemberName ,MemberPhone ,ActiveCode ,AID ,Remark ,Addtime"; string where = ""; 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.ActiveCodeLog"; page.where = where; DataTable dt = PublicHelperDAL.GetTable(page, out totalrowcount); if (dt.Rows.Count > 0) { foreach (DataRow item in dt.Rows) { ActiveCodeLogModel activelog = new ActiveCodeLogModel(); if (item["ID"].ToString() != "") { activelog.ID = int.Parse(item["ID"].ToString()); } activelog.ActiveCode = item["ActiveCode"].ToString(); if (item["MemberID"].ToString() != "") { activelog.MemberID = int.Parse(item["MemberID"].ToString()); } activelog.MemberPhone = item["MemberPhone"].ToString(); activelog.MemberName = item["MemberName"].ToString(); if (item["AID"].ToString() != "") { activelog.AID = int.Parse(item["AID"].ToString()); } if (item["Addtime"].ToString() != "") { activelog.Addtime = DateTime.Parse(item["Addtime"].ToString()); } activelog.Remark = item["Remark"].ToString(); list.Add(activelog); } } return(list); }
/// <summary> /// 添加激活码操作记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public static int AddActiveCodeLog(ActiveCodeLogModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into ActiveCodeLog("); strSql.Append("MemberID,MemberName,MemberPhone,ActiveCode,AID,Remark,Addtime"); strSql.Append(") values ("); strSql.Append("@MemberID,@MemberName,@MemberPhone,@ActiveCode,@AID,@Remark,GETDATE()"); strSql.Append(") "); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@MemberID", SqlDbType.Int), new SqlParameter("@MemberName", SqlDbType.NVarChar), new SqlParameter("@MemberPhone", SqlDbType.NVarChar), new SqlParameter("@ActiveCode", SqlDbType.NVarChar), new SqlParameter("@AID", SqlDbType.Int), new SqlParameter("@Remark", SqlDbType.NVarChar) }; parameters[0].Value = model.MemberID; parameters[1].Value = model.MemberName; parameters[2].Value = model.MemberPhone; parameters[3].Value = model.ActiveCode; parameters[4].Value = model.AID; parameters[5].Value = model.Remark; object obj = helper.GetSingle(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToInt32(obj)); } }
/// <summary> /// 查询会员的机会码使用记录 /// </summary> /// <param name="memberid"></param> /// <param name="top"></param> /// <returns></returns> public static List <ActiveCodeLogModel> GetActiveCodeLogByMemberID(int memberid, int top = 10) { List <ActiveCodeLogModel> list = new List <ActiveCodeLogModel>(); string sqltxt = @"SELECT TOP ( @topnum ) ID , MemberID , MemberName , MemberPhone , ActiveCode , AID , Remark , Addtime FROM dbo.ActiveCodeLog WHERE MemberID = @memberid"; 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) { ActiveCodeLogModel model = new ActiveCodeLogModel(); model.ActiveCode = item["ActiveCode"].ToString(); model.Addtime = item["Addtime"].ToString().ParseToDateTime(DateTime.Now); model.AID = item["AID"].ToString().ParseToInt(0); 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.Remark = item["Remark"].ToString(); list.Add(model); } } return(list); }
/// <summary> /// 激活会员(外用) /// </summary> /// <param name="memberid"></param> /// <param name="phone"></param> /// <param name="activecode"></param> /// <returns></returns> public string ActiveMember(int memberid, string phone, string activecode, bool isauto, int souceid = 0) { string result = "0"; if (isauto) { activecode = ActiveCodeDAL.GetRedamActiveCode(1); } MemberInfoModel member = null; if (memberid != 0) { member = MemberInfoDAL.GetNotActiveMember(memberid); } if (!string.IsNullOrWhiteSpace(phone)) { member = MemberInfoDAL.GetMember(phone); } if (member == null) { result = "0无此会员"; return(result); } if (member.MStatus != 1) { result = "0会员状态不正确"; return(result); } ActiveCodeModel activecodemodel = ActiveCodeDAL.GetActiveCodeExtendModel(activecode); if (activecodemodel == null) { result = @"0无此激活码"; return(result); } if (activecodemodel.AType == 2) { result = @"0激活码类型选择不正确"; return(result); } if (activecodemodel.AStatus == 10) { result = @"0激活码已经使用"; return(result); } if (activecodemodel.AMStatus == 3) { result = @"0激活码已经过期"; return(result); } using (TransactionScope scope = new TransactionScope()) { //更改会员的状态 int rowcount = MemberInfoDAL.UpdateStatus(member.ID, 2); if (rowcount < 1) { result = "0更新会员状态失败"; return(result); } //更改激活码的状态 rowcount = ActiveCodeDAL.UpdateStatus(activecodemodel.ID, 10); if (rowcount < 1) { result = "0更新激活码状态失败"; return(result); } if (activecodemodel.MID > 0) { //更改会员机会码的使用状态 if (souceid > 0) { rowcount = ActiveCodeDAL.UpdateMemberActiveCodeToUse(souceid, member.MobileNum, activecodemodel.ActivationCode); if (rowcount < 1) { result = "0更新会员激活码表状态失败"; return(result); } } else { rowcount = ActiveCodeDAL.UpdateMemberActiveStatus(activecodemodel.MID, 2); if (rowcount < 1) { result = "0更新会员激活码表状态失败"; return(result); } } //插入使用日志 ActiveCodeLogModel logmodel = new ActiveCodeLogModel(); logmodel.ActiveCode = activecodemodel.ActivationCode; logmodel.Addtime = DateTime.Now; logmodel.AID = activecodemodel.ID; logmodel.MemberID = activecodemodel.MemberID; logmodel.MemberName = activecodemodel.MemberName; logmodel.MemberPhone = activecodemodel.MemberPhone; logmodel.Remark = "为会员:" + member.MobileNum + " 激活"; rowcount = OperateLogDAL.AddActiveCodeLog(logmodel); if (rowcount < 1) { result = "0写入日志失败"; return(result); } } scope.Complete(); result = "1"; } return(result); }
/// <summary> /// 会员间赠送激活码 /// </summary> /// <param name="soucememberID">原始会员ID</param> /// <param name="type">赠送激活码类型</param> /// <param name="acceptMemberPhone">接受会员电话</param> /// <param name="count">赠送数量</param> /// <returns>返回值(-1 接受会员不存在 -2 没有足够的激活币赠送 0 数据库操作失败 1 成功)</returns> public int GiveActiveCodeFromMember(int soucememberID, int type, string acceptMemberPhone, int count) { int result = 0; //读取接受会员信息 MemberInfoModel member = GetMember(acceptMemberPhone); if (member == null) { return(-1); } if (member.MStatus != 2) { return(-1); } //开启事务 using (TransactionScope scope = new TransactionScope()) { //查询该会员名下可用类型的激活码数量 List <MemberActiveCodeModel> aclist = GetMemberActiveCodeList(soucememberID, type); if (aclist.Count < count) { return(-2); } //修改激活码的所有者信息 string sqltxt = @"UPDATE TOP ( @count) MemberActiveCode SET MemberID = @memberid , MemberPhone = @MemberPhone , MemberName = @MemberName WHERE MemberID = @soucemid AND AMStatus = 1 AND AMType = @AMType"; SqlParameter[] paramter = { new SqlParameter("@memberid", member.ID), new SqlParameter("@MemberPhone", member.MobileNum), new SqlParameter("@MemberName", member.TruethName), new SqlParameter("@soucemid", soucememberID), new SqlParameter("@AMType", type), new SqlParameter("@count", count) }; int row = helper.ExecuteSql(sqltxt, paramter); if (row < 0) { return(0); } int rowcount = row; //记录转出者名下日志 MemberInfoModel sourcemodel = GetMember(soucememberID); ActiveCodeLogModel souce = new ActiveCodeLogModel(); souce.MemberID = soucememberID; souce.MemberName = sourcemodel.TruethName; souce.MemberPhone = sourcemodel.MobileNum; souce.ActiveCode = ""; souce.AID = 0; souce.Remark = " 转出" + rowcount.ToString() + "个" + (type == 1 ? "激活币" : "排单币"); row = OperateLogDAL.AddActiveCodeLog(souce); if (row < 0) { return(0); } //记录转入者名下日志 ActiveCodeLogModel accept = new ActiveCodeLogModel(); accept.MemberID = member.ID; accept.MemberName = member.TruethName; accept.MemberPhone = member.MobileNum; accept.ActiveCode = ""; accept.AID = 0; accept.Remark = "接收" + rowcount.ToString() + "个" + (type == 1 ? "激活币" : "排单币"); row = OperateLogDAL.AddActiveCodeLog(accept); if (row < 0) { return(0); } //记录系统操作日志 try { UserBehaviorLogModel log = new UserBehaviorLogModel(); log.AOrderCode = ""; log.BehaviorSource = 1; if (type == 1) { log.BehaviorType = 8; } else { log.BehaviorType = 7; } log.HOrderCode = ""; log.MemberID = member.ID; log.MemberName = member.TruethName; log.MemberPhone = member.MobileNum; log.ProcAmount = 0; log.Remark = "会员:" + member.MobileNum + " 得到来自" + sourcemodel.MobileNum + "转来的" + rowcount.ToString() + "个" + (type == 1 ? "激活币" : "排单币"); UserBehaviorLogDAL.AddUserBehaviorLog(log); } catch { } scope.Complete(); result = 1; } return(result); }
/// <summary> /// 分配激活码 /// </summary> /// <param name="codes"></param> /// <param name="memberphone"></param> /// <returns></returns> public int AssignedCode(List <string> codes, string memberphone) { int result = 0; //得到激活码信息 List <ActiveCodeModel> codelist = GetCodeMassage(codes); //得到被分配会员信息 MemberInfoModel member = GetMember(memberphone); if (member.MStatus != 2) { return(0); } //开启事务,分配激活码 try { using (TransactionScope scope = new TransactionScope()) { //更改原表状态 result = UpdateStatus(codelist); if (result < codelist.Count) { throw new Exception("更改激活码原表失败"); } List <MemberActiveCodeModel> maclist = new List <MemberActiveCodeModel>(); foreach (var item in codelist) { MemberActiveCodeModel mac = new MemberActiveCodeModel(); mac.ActiveCode = item.ActivationCode; mac.MemberID = member.ID; mac.MemberName = member.TruethName; mac.MemberPhone = member.MobileNum; mac.AMType = item.AType; maclist.Add(mac); } result = AddMemberActiveCode(maclist); if (result < 1) { return(0); } ActiveCodeLogModel activemodel = new ActiveCodeLogModel(); activemodel.ActiveCode = ""; activemodel.Addtime = DateTime.Now; activemodel.AID = 0; activemodel.MemberID = member.ID; activemodel.MemberName = member.TruethName; activemodel.MemberPhone = member.MobileNum; activemodel.Remark = "接收" + codelist.Count + "个" + (codelist[0].AType == 1 ? "激活币" : "排单币"); OperateLogDAL.AddActiveCodeLog(activemodel); try { UserBehaviorLogModel log = new UserBehaviorLogModel(); log.AOrderCode = ""; log.BehaviorSource = 2; if (codelist[0].AType == 1) { log.BehaviorType = 8; } else { log.BehaviorType = 7; } log.HOrderCode = ""; log.MemberID = member.ID; log.MemberName = member.TruethName; log.MemberPhone = member.MobileNum; log.ProcAmount = 0; log.Remark = "系统派发激活码/排单币" + codelist.Count + "个"; UserBehaviorLogDAL.AddUserBehaviorLog(log); } catch { } scope.Complete(); result = 1; } } catch { return(0); } 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); }