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()); }
/// <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); } }
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); }
/// <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); } }
/// <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); }
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); }
/// <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)); }
/// <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);//没有新版本 } }
/// <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); } }
/// <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); }
/// <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); }