/// <summary> /// 查询已推广的用户 /// </summary> /// <param name="userNo"></param> /// <returns></returns> public List <SpreadUserApiModel> FindSpreadUser(int userNo) { List <LoanMarketSpread> list = spread.FindSpreadUser(userNo); List <SpreadUserApiModel> data = new List <SpreadUserApiModel>(); if (list != null && list.Count > 0) { foreach (LoanMarketSpread item in list) { SpreadUserApiModel spreadUserApiModel = new SpreadUserApiModel(); spreadUserApiModel.ToUserNo = item.ToUserNo; spreadUserApiModel.CreateTime = (DateTime)item.CreateTime; LoanMarketUser loanMarketUser = user.GetUser(item.ToUserNo); spreadUserApiModel.Mobile = loanMarketUser.Mobile; spreadUserApiModel.NickName = loanMarketUser.NickName; spreadUserApiModel.IsPeculiarUser = loanMarketUser.IsPeculiarUser > 0 ? true : false; LoanMarketGroup leaderUserGroup = userGroup.GetUserGroup(item.ToUserNo); if (leaderUserGroup != null) { spreadUserApiModel.UserGroupName = leaderUserGroup.Name; } data.Add(spreadUserApiModel); } } return(data); }
/// <summary> /// 创建推广佣金单 /// </summary> /// <param name="model"></param> /// <returns></returns> public string CreateBill(BillApiModel model) { if (model == null) { return(""); } LoanMarketGroup fromGroup = userGroup.GetUserGroup(Convert.ToInt32(model.FromUserNo)); LoanMarketGroup toGroup = userGroup.GetUserGroup(Convert.ToInt32(model.ToUserNo)); LoanMarketSpreadBill spreadBill = new LoanMarketSpreadBill() { No = model.FromUserNo + "|" + model.ToUserNo + "|" + model.BillType.ToString() + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), BillType = model.BillType, Amount = model.Amount, Id = GuidTool.GenerateKey(), FromUserNo = model.FromUserNo, FromUserGroupNo = fromGroup.No.ToString(), FromUserGroupName = fromGroup.Name, ToUserNo = model.ToUserNo, ToUserGroupNo = toGroup == null ? "0" : toGroup.No.ToString(), ToUserGroupName = toGroup == null ? "非会员,无用户组" : toGroup.Name, CreateTime = DateTime.Now, UpateTime = DateTime.Now }; string res = bill.CreateBill(spreadBill); //增加用户推广佣金 if (user.UpdateUserWithdrawAmount(Convert.ToInt32(model.FromUserNo), model.Amount) > 0) { return(res); } else { return(string.Empty); } }
/// <summary> /// 获取用户所属组 /// </summary> /// <param name="userNo"></param> /// <returns></returns> public LoanMarketGroup GetUserGroup(int userNo) { LoanMarketUserGroup userGroup = db.LoanMarketUserGroup.Where(a => a.UserNo == userNo).FirstOrDefault(); if (userGroup != null) { LoanMarketGroup group = db.LoanMarketGroup.Where(a => a.No == userGroup.GroupNo).FirstOrDefault(); if (group != null) { return(group); } else { return(null); } } else { return(null); } }
/// <summary> /// 创建推广记录 /// </summary> /// <param name="fromUserNo"></param> /// <param name="toUserNo"></param> /// <returns></returns> public int CreateSpread(int fromUserNo, int toUserNo) { spread.CreateSpread(new Models.LoanMarketSpread() { Id = GuidTool.GenerateKey(), FromUserNo = fromUserNo, ToUserNo = toUserNo, CreateTime = DateTime.Now, UpdateTime = DateTime.Now }); try { //fromUser 是否是会员 LoanMarketUser userInfo = user.GetUser(fromUserNo); if (userInfo.IsPeculiarUser == 1) { #region 会员升级 //fromUset 所属组的升级条件 LoanMarketGroup group = userGroup.GetUserGroup(fromUserNo); if (group != null) { //fromUser 已经推广人数 int alreadySpreadUserCount = GetSpreadCount(fromUserNo); if (alreadySpreadUserCount >= Convert.ToInt32(group.UpCondition)) { //fromUser 进行升级 userGroup.UpdateUserGroup(fromUserNo, (int)group.ParentNo); } else { log.Info("不满足升级条件。" + fromUserNo); } } else { log.Info("创建推广记录SpreadBLL-CreateSpread:根据用户No查询不到所属组。" + fromUserNo); } #endregion #region 创建推广返佣单 //推广人返佣30(直推) BillApiModel fromUserBillModel = new BillApiModel() { Amount = 30, FromUserNo = fromUserNo.ToString(), ToUserNo = toUserNo.ToString(), BillType = (int)BillTypeEnum.直推 }; string fromUserBillNo = billBLL.CreateBill(fromUserBillModel); if (!string.IsNullOrEmpty(fromUserBillNo)) { log.Info("推广返佣单,直推人返佣单创建成功。" + fromUserNo); } else { log.Info("推广返佣单,直推人返佣单创建失败。" + fromUserNo); } //推广人所属上级代理返佣 List <LoanMarketSpread> leaders = spread.FindUserLeaders(fromUserNo); if (leaders != null && leaders.Count > 0) { foreach (LoanMarketSpread item in leaders) { //上级代理的用户编号 int leaderUserNo = item.FromUserNo; //获取上级代理所属组 LoanMarketGroup leaderUserGroup = userGroup.GetUserGroup(leaderUserNo); //获取上级代理应返佣金 decimal amount = GetSpreadAmountByUserGroupNo(leaderUserGroup.No); BillApiModel leaderBillModel = new BillApiModel() { Amount = amount, FromUserNo = leaderUserNo.ToString(), ToUserNo = toUserNo.ToString(), BillType = (int)BillTypeEnum.级代理 }; string leaderBillNo = billBLL.CreateBill(leaderBillModel); if (!string.IsNullOrEmpty(leaderBillNo)) { log.Info("推广返佣单,上级代理返佣单创建成功。" + JsonConvert.SerializeObject(leaderBillModel)); } else { log.Info("推广返佣单,上级代理返佣单创建失败。" + JsonConvert.SerializeObject(leaderBillModel)); } } } else { log.Info("推广返佣金,推广人无上级代理." + fromUserNo); } #endregion } else { //非会员,不会升级,也无推广费用 log.Info("创建推广记录SpreadBLL-CreateSpread:非会员,不会升级,也无推广费用." + fromUserNo); } } catch (Exception e) { log.Info("创建推广记录SpreadBLL-CreateSpread异常,异常信息为:" + e.Message + ".用户:" + fromUserNo); } return(1); }