public int Add(List <UserInfo> t)
        {
            UserInfo user = new UserInfo()
            {
                Id       = GuidTool.GetGuid(),
                RealName = "Karroy1",
                UserName = "******",
                Pwd      = "123",
                // roleId = "1"
            };
            var users = new List <UserInfo>();

            users.Add(user);
            user = new UserInfo()
            {
                Id       = GuidTool.GetGuid(),
                RealName = "jay",
                UserName = "******",
                Pwd      = "123",
                //roleId = "1"
            };
            users.Add(user);
            _userRepository.Add(users);
            return(_userRepository.SaveChanges());
        }
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
0
        public void Add()
        {
            var user = new UserInfo()
            {
                Id       = GuidTool.GetGuid(),
                RealName = "Karroy",
                UserName = "******"
            };
            var i = _userService.Add(user);


            List <UserInfo> users = new List <UserInfo>();

            user = new UserInfo()
            {
                Id       = GuidTool.GetGuid(),
                RealName = "Karroy",
                UserName = "******"
            };
            users.Add(user);

            user = new UserInfo()
            {
                Id       = GuidTool.GetGuid(),
                RealName = "jay",
                UserName = "******"
            };
            users.Add(user);
            i = _userService.Add(users);
        }
 public void GenerateTest()
 {
     Enumerable.Range(0, 100)
     .Select(i => GuidTool.NewComb())
     .RunEach(guid => {
         Assert.IsInstanceOf <Guid>(guid);
         Assert.AreNotEqual(Guid.Empty, guid);
     });
 }
 public void GenerateParallel()
 {
     TestTool.RunTasks(100,
                       () => {
         var guid = GuidTool.NewComb();
         Assert.IsInstanceOf <Guid>(guid);
         Assert.AreNotEqual(Guid.Empty, guid);
     });
 }
        public void TestAES()
        {
            var str = "123456@xs";

            str = AESHelper.AESEncrypt(str);
            str = AESHelper.AESDecrypt(str);

            var key = GuidTool.GetGuid();

            str = AESHelper.AESEncrypt(str, key);
            str = AESHelper.AESDecrypt(str, key);
        }
Exemple #7
0
        /// <summary>
        /// http下载文件
        /// </summary>
        /// <param name="url">下载文件地址</param>
        /// <param name="file">文件存放地址,包含文件名</param>
        /// <param name="progress">回调进度</param>
        /// <returns></returns>
        public static bool Download(string url, string file, ProgressDelegate.ProgressHandler progress = null, object sender = null)
        {
            try
            {
                string path = Path.GetDirectoryName(file);
                DirTool.Create(path);                                                //创建文件目录

                string tempFile = DirTool.Combine(path, GuidTool.Short() + ".temp"); //临时文件
                if (File.Exists(tempFile))
                {
                    File.Delete(tempFile);                           //存在则删除
                }
                FileStream fs = new FileStream(tempFile, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
                // 设置参数
                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                //发送请求并获取相应回应数据
                HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                //直到request.GetResponse()程序才开始向目标网页发送Post请求
                Stream responseStream = response.GetResponseStream();
                //创建本地文件写入流
                //Stream stream = new FileStream(tempFile, FileMode.Create);
                byte[] buffer = new byte[100 * 1024];
                int    readCount = 0;
                long   filesize = response.ContentLength, current = 0;
                while ((readCount = responseStream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    fs.Write(buffer, 0, readCount);
                    current += readCount;
                    if (filesize <= 0 || filesize < current)
                    {
                        if (current > 0)
                        {
                            filesize = current;
                        }
                        else
                        {
                            filesize = 1;
                        }
                    }
                    progress?.Invoke(sender, new ProgressEventArgs(current, filesize));
                }
                //stream.Close();
                fs.Close();
                responseStream.Close();
                File.Delete(file);         //删除原始文件
                File.Move(tempFile, file); //下载的临时文件重命名
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Exemple #8
0
        /// <summary>
        /// 创建评论
        /// </summary>
        /// <param name="commentListApiModel"></param>
        public void CreateComment(CommentParamModel commentParamModel)
        {
            LoanMarketComment loanMarketComment = new LoanMarketComment()
            {
                CommentUserNo = commentParamModel.CommentUserNo,
                ContentBody   = commentParamModel.ContentBody,
                CreateTime    = DateTime.Now,
                ForumNo       = commentParamModel.ForumNo,
                Id            = GuidTool.GenerateKey(),
                No            = comment.FindComment() == null ? 1 : comment.FindComment().Count + 1
            };

            comment.CreateComment(loanMarketComment);
        }
Exemple #9
0
        const string Unknown = "Un";//未知型号相机

        /// <summary>
        /// 创建照片信息模型
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        public static Pictures CreateModel(string file)
        {
            try
            {
                DateTime createTime = File.GetCreationTime(file);
                DateTime writeTime  = File.GetLastWriteTime(file);

                FileCodeTool codetool = new FileCodeTool();
                string       md5      = codetool.GetMD5(file);
                string       sha1     = codetool.GetSHA1(file);

                Pictures picture = new Pictures()
                {
                    Id       = GuidTool.Short(),
                    ExtName  = Path.GetExtension(file).ToUpper(),
                    MD5      = md5,
                    SHA1     = sha1,
                    OrigTime = createTime < writeTime ? createTime : writeTime,
                };

                using (ExifHelper ex = new ExifHelper(file))
                {
                    string maker = ex.GetPropertyString((int)ExifTagNames.EquipMake).Trim().Replace(" ", "_");
                    string model = ex.GetPropertyString((int)ExifTagNames.EquipModel).Trim().Replace(" ", "_");
                    picture.Model = (Str.Ok(maker) ? maker : Unknown) + "@" + (Str.Ok(model) ? model : Unknown);

                    char GpsLongitudeRef = ex.GetPropertyChar((int)ExifTagNames.GpsLongitudeRef);
                    char GpsLatitudeRef  = ex.GetPropertyChar((int)ExifTagNames.GpsLatitudeRef);
                    picture.GpsLongitude = ex.GetPropertyDouble((int)ExifTagNames.GpsLongitude) * (GpsLongitudeRef.Equals('E') ? 1 : -1);
                    picture.GpsLatitude  = ex.GetPropertyDouble((int)ExifTagNames.GpsLatitude) * (GpsLatitudeRef.Equals('N') ? 1 : -1);

                    string[] exifDTOrig = ex.GetPropertyString((int)ExifTagNames.ExifDTOrig).Trim().Split(' ');
                    if (exifDTOrig != null && exifDTOrig.Count() == 2)
                    {
                        if (DateTime.TryParse(string.Format("{0} {1}", exifDTOrig[0].Replace(':', '-'), exifDTOrig[1]), out DateTime dt))
                        {
                            picture.OrigTime = dt;
                        }
                    }
                    picture.Name = string.Format("{0}-{1}{2}", picture.OrigTime.ToString("yyyyMMddhhmmss"), picture.MD5, picture.ExtName);
                }
                return(picture);
            }
            catch
            {
                return(null);
            }
        }
        /// <summary>
        /// 新增菜单
        /// </summary>
        /// <param name="requestModel">参数</param>
        /// <returns></returns>
        public ApiResultModel <int> Add(AddMenuRequestModel requestModel)
        {
            var result = new ApiResultModel <int>();

            if (requestModel.MenuName.IsNullOrEmpty())
            {
                result.Message = "菜单名称不能为空";
                return(result);
            }
            if (requestModel.ParentId.IsNullOrEmpty())
            {
                result.Message = "上级不能为空";
                return(result);
            }
            //if (requestModel.Path.IsNullOrEmpty())
            //{
            //    result.Message = "菜单路径不能为空";
            //    return result;
            //}
            if (requestModel.Type == MenuTypeEnum.Module || requestModel.Type == MenuTypeEnum.Function)
            {
                var menu = _menuRepository.FirstOrDefault(x => x.name == requestModel.MenuName && x.type == (int)requestModel.Type);
                if (menu != null)
                {
                    result.Message = "此菜单名已存在";
                    return(result);
                }
            }
            var item = new Menu()
            {
                id       = GuidTool.GetGuid(),
                name     = requestModel.MenuName,
                parentId = requestModel.ParentId,
                type     = (int)requestModel.Type,
                sort     = requestModel.Sort,
                path     = requestModel.Path ?? "",
                icon     = requestModel.Icon ?? "",
            };

            _menuRepository.Add(item);
            //_menuRepository.Entry(item).State = EntityState.Added;
            _menuRepository.SaveChanges();

            result.Code = ApiResultCode.Success;
            return(result);
        }
        /// <summary>
        /// 新增或者修改提现密码
        /// </summary>
        /// <param name="userNo"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public int Save(int userNo, string password)
        {
            LoanMarketUserWithdraw withdraw = db.LoanMarketUserWithdraw.Where(a => a.UserNo == userNo).FirstOrDefault();

            if (withdraw != null && withdraw.UserNo > 0)
            {
                withdraw.WithdrawPassword = password;
                return(db.SaveChanges());
            }
            else
            {
                withdraw                  = new LoanMarketUserWithdraw();
                withdraw.Id               = GuidTool.GenerateKey();
                withdraw.UserNo           = userNo;
                withdraw.WithdrawPassword = password;
                db.LoanMarketUserWithdraw.Add(withdraw);
                return(db.SaveChanges());
            }
        }
        /// <summary>
        /// 创建推广的用户
        /// </summary>
        /// <param name="userParamModel"></param>
        /// <returns></returns>
        public int CreateSpreadUser(RegisterParamModel userParamModel)
        {
            //判断手机号是否已经存在
            if (user.GetUser(userParamModel.Mobile) != null)
            {
                return(-1);
            }
            LoanMarketUser loanMarketUser = new LoanMarketUser()
            {
                Mobile = userParamModel.Mobile, Password = userParamModel.Password, NickName = userParamModel.NickName, RealName = userParamModel.RealName, Sex = userParamModel.Sex
            };

            loanMarketUser.Id   = GuidTool.GenerateKey();
            loanMarketUser.Icon = "";
            loanMarketUser.Sex  = "";
            var list = user.FindUser();

            loanMarketUser.No             = list == null ? 1 : list.Count + 1;
            loanMarketUser.IsPeculiarUser = 0;
            int userNo = user.CreateUser(loanMarketUser);

            log.Info("创建推广的用户,创建用户成功,新创建的用户编号为:" + userNo);
            if (userNo > 0)
            {
                SpreadBLL spreadBLL = new SpreadBLL();
                if (spreadBLL.CreateSpread(userParamModel.FromUserNo, userNo) > 0)
                {
                    log.Info("创建推广的用户,创建用户成功,绑定上级成功。");
                    return(userNo);
                }
                else
                {
                    log.Info("创建推广的用户,创建用户成功,绑定上级失败。");
                    return(-2);
                }
            }
            else
            {
                log.Info("创建推广的用户,创建用户失败。");
                return(0);
            }
        }
        /// <summary>
        /// 创建帖子
        /// </summary>
        public void CreateForum(ForumDetailApiModel detail)
        {
            detail.No = forum.FindForumList().Count + 1;
            LoanMarketForum loanMarketForum = new LoanMarketForum()
            {
                ContentBody  = detail.ContentBody,
                CreateTime   = DateTime.Now,
                CreateUserNo = detail.CreateUserNo,
                Id           = GuidTool.GenerateKey(),
                Title        = detail.Title,
                Type         = detail.Type,
                No           = detail.No,
                UpdateTime   = DateTime.Now,
                ViewCount    = 0,
                CommentCount = 0,
                LikeCount    = 0
            };

            forum.CreateForum(loanMarketForum);
        }
Exemple #14
0
        /// <summary>
        /// 创建提现申请
        /// </summary>
        /// <returns></returns>
        public int Create(WithdrawApplyApiModel applyModel)
        {
            if (applyModel == null)
            {
                return(0);
            }
            if (applyModel.UserNo <= 0)
            {
                return(0);
            }
            LoanMarketWithdrawApply model = new LoanMarketWithdrawApply();

            model.Id     = GuidTool.GenerateKey();
            model.Amount = applyModel.Amount;
            model.ApplyWithwrawAmount = applyModel.ApplyWithwrawAmount;
            model.CreateTime          = DateTime.Now;
            model.Status     = "提交申请";
            model.UpdateTime = DateTime.Now;
            model.UserNo     = applyModel.UserNo;
            UserBLL      userBLL  = new UserBLL();
            UserApiModel userInfo = userBLL.GetUserInfo(applyModel.UserNo);

            model.UserNickName = userInfo.NickName;
            model.UserRealName = userInfo.RealName;
            model.ZFBAccount   = applyModel.ZFBAccount;
            int          res = withdrawApply.Create(model);
            UserApiModel updateUserWithdrawAmount = new UserApiModel()
            {
                No             = applyModel.UserNo,
                WithdrawAmount = applyModel.Amount - applyModel.ApplyWithwrawAmount
            };

            if (userBLL.UpdateWithdrawAmount(updateUserWithdrawAmount) > 0)
            {
                return(res);
            }
            else
            {
                return(0);
            }
        }
        /// <summary>
        /// 创建用户
        /// </summary>
        /// <param name="userParamModel"></param>
        /// <returns></returns>
        public int CreateUser(UserParamModel userParamModel)
        {
            //判断手机号是否已经存在
            if (user.GetUser(userParamModel.Mobile) != null)
            {
                return(-1);
            }
            LoanMarketUser loanMarketUser = new LoanMarketUser()
            {
                Mobile = userParamModel.Mobile, Password = userParamModel.Password, NickName = userParamModel.NickName, RealName = userParamModel.RealName, Sex = userParamModel.Sex
            };

            loanMarketUser.Id   = GuidTool.GenerateKey();
            loanMarketUser.Icon = "";
            loanMarketUser.Sex  = "";
            var list = user.FindUser();

            loanMarketUser.No             = list == null ? 1 : list.Count + 1;
            loanMarketUser.IsPeculiarUser = 0;
            return(user.CreateUser(loanMarketUser));
        }
Exemple #16
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="info">新版本信息</param>
        /// <param name="tempPath">文件下载位置</param>
        /// <param name="dictionary">文件相对位置字典</param>
        /// <param name="downProgress">下载进度回调</param>
        /// <param name="downSender">下载进度事件数据</param>
        /// <param name="releaseProgress">释放进度回调</param>
        /// <param name="releaseSender">释放进度事件数据</param>
        /// <returns>
        /// -10000;//没有新版本
        /// -20000;//文件下载失败
        /// -30000;//文件释放失败
        /// </returns>
        public int Update(AppUpdateInfo info, string tempPath, Dictionary <string, string> dictionary,
                          ProgressDelegate.ProgressHandler downProgress    = null, object downSender    = null,
                          ProgressDelegate.ProgressHandler releaseProgress = null, object releaseSender = null)
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            //请求最新版本信息
            if (info != null)
            {
                string file = DirTool.Combine(tempPath, GuidTool.Short() + "-" + info.Version);
                //准备更新(下载)
                string downfile = Download(file, info, downProgress, downSender);
                if (!string.IsNullOrWhiteSpace(downfile) && File.Exists(downfile))
                {
                    //格式化释放文件目录(相对路径转换为绝对路径)
                    string releasepath = AppDirTool.Get(info.ReleasePath, dictionary);
                    //释放文件,释放完成后删除临时文件
                    int unpackCode = FilePackageTool.Unpack(downfile, releasepath, releaseProgress, releaseSender);
                    File.Delete(file);
                    if (unpackCode > 0)
                    {
                        stopwatch.Stop();
                        return((int)stopwatch.Elapsed.TotalSeconds);
                    }
                    else
                    {
                        return(-30000 + unpackCode);//文件释放失败
                    }
                }
                else
                {
                    return(-20000);//文件下载失败
                }
            }
            else
            {
                return(-10000);//没有新版本
            }
        }
Exemple #17
0
        /// <summary>
        /// 初始化Ini配置信息
        /// </summary>
        static void InitIni()
        {
            DirTool.Create(R.Paths.Settings);
            DirTool.Create(R.Paths.Projects);
            DirTool.Create(R.Paths.DefaultPublishStorage);
            DirTool.Create(R.Paths.DefaultNewStorage);

            R.Paths.PublishStorage = IniTool.GetString(R.Files.Settings, "Paths", "PublishStorage", R.Paths.DefaultPublishStorage);
            if (string.IsNullOrWhiteSpace(R.Paths.PublishStorage))
            {
                R.Paths.PublishStorage = R.Paths.DefaultPublishStorage;
            }

            R.Paths.NewStorage = IniTool.GetString(R.Files.Settings, "Paths", "NewStorage", R.Paths.DefaultNewStorage);
            if (string.IsNullOrWhiteSpace(R.Paths.NewStorage))
            {
                R.Paths.NewStorage = R.Paths.DefaultNewStorage;
            }

            R.Tx.IP                  = IniTool.GetString(R.Files.Settings, "Console", "IP", "");
            R.Tx.Port                = IniTool.GetInt(R.Files.Settings, "Console", "Port", 0);
            R.Tx.LocalIP             = IniTool.GetString(R.Files.Settings, "Local", "IP", "");
            R.Tx.LocalName           = IniTool.GetString(R.Files.Settings, "Local", "Name", "");
            R.IsAutoDeleteExpiredLog = IniTool.GetBool(R.Files.Settings, "Settings", "AutoDeleteExpiredLog", false);
            R.AppID                  = IniTool.GetString(R.Files.Settings, "App", "ID", "");

            if (!Str.Ok(R.AppID))
            {
                R.AppID = GuidTool.Short();
                IniTool.Set(R.Files.Settings, "App", "ID", R.AppID);
            }

            if (!File.Exists(R.Files.NewStorageReadme))
            {
                TxtTool.Create(R.Files.NewStorageReadme, R.NewStorageReadmeTxt);
            }
        }
Exemple #18
0
        /// <summary>
        /// 生成票据
        /// </summary>
        /// <param name="requestModel"></param>
        /// <returns></returns>
        public ApiResultModel <AddAppTicketResponseModel> GetAppTicket(AddAppTicketRequestModel requestModel)
        {
            var result = new ApiResultModel <AddAppTicketResponseModel>()
            {
                Message = "生成票据失败"
            };

            if (requestModel.AppId.IsNullOrEmpty())
            {
                result.Message = "AppId不能为空";
                return(result);
            }
            if (requestModel.DeviceNo.IsNullOrEmpty())
            {
                result.Message = "客户端设备号不能为空";
                return(result);
            }
            var clentType  = requestModel.ClientType.GetEnumDescription();
            var nonce      = Utils.GetNonce();
            var ticket     = AuthenticationHelper.GetTicket(requestModel.AppId, clentType, requestModel.DeviceNo, nonce);
            var secret     = AuthenticationHelper.GetAppSecret(requestModel.AppId, clentType, requestModel.DeviceNo, nonce);
            var resultData = new AddAppTicketResponseModel()
            {
                Ticket    = ticket,
                AppSecret = secret
            };
            AppTicket model = _db.AppTicket.FirstOrDefault(x => x.AppId == requestModel.AppId && x.ClientType == clentType && x.DeviceNo == requestModel.DeviceNo);

            if (model == null)
            {
                model = new AppTicket()
                {
                    Id             = GuidTool.GetGuid(),
                    AppId          = requestModel.AppId,
                    ClientType     = clentType,
                    DeviceNo       = requestModel.DeviceNo,
                    Noncestr       = nonce,
                    AppSecret      = secret,
                    Ticket         = ticket,
                    LastUpdateTime = DateTime.Now
                };
                _db.AppTicket.Add(model);
                _db.Entry(model).State = EntityState.Added;
                _db.SaveChanges();
            }
            else
            {
                model.Noncestr       = nonce;
                model.AppSecret      = secret;
                model.Ticket         = ticket;
                model.LastUpdateTime = DateTime.Now;

                _db.AppTicket.Attach(model);
                _db.Entry(model).Property(x => x.Noncestr).IsModified       = true;
                _db.Entry(model).Property(x => x.AppSecret).IsModified      = true;
                _db.Entry(model).Property(x => x.Ticket).IsModified         = true;
                _db.Entry(model).Property(x => x.LastUpdateTime).IsModified = true;
                _db.SaveChanges();
            }

            //缓存
            var redisKey  = RedisCommon.GetTicketKey(ticket);
            var redisData = model.MapTo <AppTicketModel>();

            RedisClient.Set(RedisDatabase.DB_AuthorityService, redisKey, redisData, 60);//1小时

            result.Data = resultData;
            result.Code = ApiResultCode.Success;
            return(result);
        }
Exemple #19
0
 /// <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);
 }