/// <summary> /// 用户管理 /// </summary> /// <returns></returns> public ActionResult AllUser(string UserID = "") { //生成视图模型 List <AllUserViewModel> allUsers = new List <AllUserViewModel>(); //获取所有用户 using (var db = new AspNetUserDataContext()) { var users = db.AspNetUsers.Where(u => u.UserName != "XgHao"); foreach (var user in users) { allUsers.Add(new AllUserViewModel { isChoose = user.Id == UserID ? true : false, userInfo = new BasicUserInfo { UserID = user.Id, UserName = user.UserName, RealName = user.RealName, BirthDay = user.BirthDay.ToString("yyyy-MM-dd"), RegisterTime = user.RegisterTime, Gender = user.Gender } }); } } return(View(allUsers.AsEnumerable())); }
/// <summary> /// 物品管理 /// </summary> /// <returns></returns> public ActionResult AllTreasure() { //生成视图模型 List <AllTreasureViewModel> treasureholders = new List <AllTreasureViewModel>(); foreach (var trea in repository.Treasures) { using (var db = new AspNetUserDataContext()) { var user = db.AspNetUsers.Where(u => u.Id == trea.HolderID).FirstOrDefault(); if (user != null) { treasureholders.Add(new AllTreasureViewModel { TreasureInfo = trea, holderInfo = new BasicUserInfo { UserID = user.Id, UserName = user.UserName, RealName = user.RealName } }); } } } return(View(treasureholders.AsEnumerable())); }
public ActionResult Block(string UserID) { //获取用户对象 using (var db = new AspNetUserDataContext()) { var user = db.AspNetUsers.Where(u => u.Id == UserID).FirstOrDefault(); if (user != null) { //更改用户信息 user.PasswordHash = UserID + DateTime.Now; user.HeadPortrait = @"\images\usr_avatar.png"; user.UserName = "******"; user.RealName = "账户已注销"; db.SubmitChanges(); TempData["message"] = string.Format("用户“{0}({1})”已被注销", user.RealName, user.UserName); } else { TempData["error"] = string.Format("用户ID:{0} 不存在", UserID); } } //重定向到AllUser return(RedirectToAction("AllUser")); }
/// <summary> /// 检查当前手机号码是否已存在 /// </summary> /// <returns></returns> public JsonResult isExistPhoNum() { string PhoNum = Request["PhoNum"]; using (var db = new AspNetUserDataContext()) { var appUser = db.AspNetUsers.Where(a => a.PhoneNumber == PhoNum).FirstOrDefault(); //该邮箱已存在(即appUser不为空)返回YES,否则返回NO string result = appUser != null ? "YES" : "NO"; return(Json(result, JsonRequestBehavior.AllowGet)); } }
/// <summary> /// 检查当前电子邮件是否已存在 /// </summary> /// <returns></returns> public JsonResult isExistEmail() { string email = Request["Email"]; using (var db = new AspNetUserDataContext()) { var appUser = db.AspNetUsers.Where(a => a.Email == email).FirstOrDefault(); //该邮箱已存在(即appUser不为空)返回YES,否则返回NO string result = appUser != null ? "YES" : "NO"; return(Json(result, JsonRequestBehavior.AllowGet)); } }
/// <summary> /// 搜索 /// </summary> public ActionResult Search(string KeyWord) { if (!string.IsNullOrEmpty(KeyWord)) { //首先把用户全部过滤出来 using (var db = new AspNetUserDataContext()) { var users = db.AspNetUsers.Where(u => u.UserName.Contains(KeyWord)).ToList(); string usersIDs = string.Empty; foreach (var user in users) { usersIDs += "|" + user.Id; } //获取物品集合 var treasures = repository.Treasures.Where(t => (t.DetailContent.Contains(KeyWord) || t.TreasureName.Contains(KeyWord) || t.UploadTime.ToString("yyyy/MM/dd").Contains(KeyWord) || t.TreasureType.Contains(KeyWord) || usersIDs.Contains(t.HolderID))).ToList(); List <TreasureAndHolderInfo> model = new List <TreasureAndHolderInfo>(); foreach (var trea in treasures) { //是否被收藏 bool IsFavorite = false; using (var db2 = new FavoriteDataContext()) { var log = db2.Favorite.Where(f => (f.TreasureID == trea.TreasureUID.ToString() && f.UserID == CurrentUser.Id)).FirstOrDefault(); if (log != null) { IsFavorite = true; } } var holder = UserManager.FindById(trea.HolderID); if (holder != null) { model.Add(new TreasureAndHolderInfo { Holder = holder, IsFavorite = IsFavorite, Treasure = trea }); } } return(View(model.AsEnumerable())); } } return(View(new LinkedList <TreasureAndHolderInfo>().AsEnumerable())); }
public ActionResult Index() { //新建视图 IndexViewModel model = new IndexViewModel(); var Alltreasure = repository.Treasures.Where(t => t.DLogUID == null).ToList().AsEnumerable(); #region 随便看看 //判断数量,决定要显示的物品数量 int cnt = Alltreasure.Count() < 50 ? 4 : Alltreasure.Count() / 10; cnt = cnt > Alltreasure.Count() ? Alltreasure.Count() : cnt; List <Treasure> treasureRandom = new List <Treasure>(); for (int i = 0; i < cnt; i++) { var r = new Random(Guid.NewGuid().GetHashCode()); int res = r.Next(0, Alltreasure.Count()); treasureRandom.Add(Alltreasure.ElementAt(res)); } List <TreasureAndHolderInfo> treasuresRandomList = new List <TreasureAndHolderInfo>(); //去掉重复元素,然后遍历 foreach (var trea in treasureRandom.Distinct()) { //获取物品所属人对象 var holder = UserManager.FindById(trea.HolderID); //是否被收藏 bool IsFavorite = false; using (var db = new FavoriteDataContext()) { var log = db.Favorite.Where(f => (f.TreasureID == trea.TreasureUID.ToString() && f.UserID == CurrentUser.Id)).FirstOrDefault(); if (log != null) { IsFavorite = true; } } if (holder != null) { var detail = trea.DetailPic.Split('|'); trea.DetailPic = detail.Last(); treasuresRandomList.Add(new TreasureAndHolderInfo { Holder = holder, Treasure = trea, IsFavorite = IsFavorite }); } } model.RandomTrea = treasuresRandomList.AsEnumerable(); #endregion #region 每日推荐 using (var db = new LogDataContext()) { //获取当前用户的浏览记录 var log = db.LogBrowse.Where(b => b.BrowserID == CurrentUser.Id).Select(b => b.TreasureID).ToList(); //获取用户浏览过的物品类型集合 var treas = repository.Treasures.Where(t => log.Contains(t.TreasureUID.ToString())).ToList(); var types = treas.Select(t => t.TreasureType); //获取这些这些类型的浏览量 List <TreasureTypeCnt> treasuretypecnt = new List <TreasureTypeCnt>(); int AllCnt = 0; foreach (var type in types) { int Typecnt = treas.Where(t => t.TreasureType == type).Count(); TreasureTypeCnt treasureTypeCnt = new TreasureTypeCnt { }; treasureTypeCnt.type = type; treasureTypeCnt.cnt = Typecnt; treasuretypecnt.Add(treasureTypeCnt); AllCnt += Typecnt; } //排序 treasuretypecnt.OrderBy(t => t.cnt); //根据排序后的类型,进行推荐相同类型的物品 List <Treasure> trea = new List <Treasure>(); foreach (var ty in treasuretypecnt) { int TreaCnt = ty.cnt * 5 / AllCnt; var tr = repository.Treasures.Where(t => t.TreasureType == ty.type).Take(TreaCnt); trea.AddRange(tr); } //去掉重复元素,然后遍历 List <TreasureAndHolderInfo> RecommandTrea = new List <TreasureAndHolderInfo>(); foreach (var Rtrea in trea.Distinct()) { //获取物品所属人对象 var holder = UserManager.FindById(Rtrea.HolderID); //是否被收藏 bool IsFavorite = false; using (var db2 = new FavoriteDataContext()) { var log2 = db2.Favorite.Where(f => (f.TreasureID == Rtrea.TreasureUID.ToString() && f.UserID == CurrentUser.Id)).FirstOrDefault(); if (log2 != null) { IsFavorite = true; } } if (holder != null) { var detail = Rtrea.DetailPic.Split('|'); Rtrea.DetailPic = detail.Last(); RecommandTrea.Add(new TreasureAndHolderInfo { Holder = holder, Treasure = Rtrea, IsFavorite = IsFavorite }); } } model.RecommandTrea = RecommandTrea.AsEnumerable(); } #endregion #region 最新物品 int cnt2 = Alltreasure.Count() > 6 ? 6 : Alltreasure.Count(); Alltreasure.OrderBy(t => t.UploadTime); List <Treasure> treasuresNew = Alltreasure.Take(cnt2).ToList(); List <TreasureAndHolderInfo> treasuresNewList = new List <TreasureAndHolderInfo>(); foreach (var trea in treasuresNew) { //获取物品所属人 var holder = UserManager.FindById(trea.HolderID); //是否被收藏 bool IsFavorite = false; using (var db = new FavoriteDataContext()) { //获取七天内的收藏记录 var FavoriteTrea = db.Favorite.Where(f => (SqlMethods.DateDiffDay(f.FavoriteTime, DateTime.Now) <= 7)).Select(f => f.TreasureID); var Treas = repository.Treasures.Where(t => FavoriteTrea.Contains(t.TreasureUID.ToString())); //生成视图模型 List <TreasureFavoriteCnt> treafavos = new List <TreasureFavoriteCnt>(); foreach (var favo in FavoriteTrea.Distinct()) { var favorecnt = Treas.Where(t => t.TreasureUID == Guid.Parse(favo)).Count(); treafavos.Add(new TreasureFavoriteCnt { cnt = favorecnt, treauid = favo }); } //排序 treafavos.OrderBy(t => t.cnt); var log = db.Favorite.Where(f => (f.TreasureID == trea.TreasureUID.ToString() && f.UserID == CurrentUser.Id)).FirstOrDefault(); if (log != null) { IsFavorite = true; } } if (holder != null) { treasuresNewList.Add(new TreasureAndHolderInfo { Holder = holder, Treasure = trea, IsFavorite = IsFavorite }); } } model.NewestTrea = treasuresNewList.AsEnumerable(); #endregion #region 最近热门 var treaHot = repository.Treasures.Where(t => t.DLogUID == null).OrderBy(t => t.BrowseNum); int cnt3 = treaHot.Count() > 6 ? 6 : treaHot.Count(); var treaHotList = treaHot.Take(cnt3); List <TreasureAndHolderInfo> treasuresHotList = new List <TreasureAndHolderInfo>(); foreach (var trea in treaHotList) { var holder = UserManager.FindById(trea.HolderID); bool isFavorite = false; using (var db = new FavoriteDataContext()) { var log = db.Favorite.Where(f => (f.TreasureID == trea.TreasureUID.ToString() && f.UserID == CurrentUser.Id)).FirstOrDefault(); if (log != null) { isFavorite = true; } } if (holder != null) { treasuresHotList.Add(new TreasureAndHolderInfo { Holder = holder, Treasure = trea, IsFavorite = isFavorite }); } } model.HotTrea = treasuresHotList.AsEnumerable(); #endregion #region 数据 model.TreasureCnt = repository.Treasures.Count(); using (var db = new LogDealDataContext()) { var deallog = db.LogDeal.Where(l => (l.DealStatus == "交易中" || l.DealStatus == "待确认")); model.DealingCnt = deallog.Count(); } using (var db = new EvaluationDataContext()) { var Evaluation = db.Evaluation; model.EvaluationCnt = Evaluation.Count(); } using (var db = new AspNetUserDataContext()) { var user = db.AspNetUsers; model.UserCnt = user.Count(); } #endregion return(View(model)); }
public async Task <ActionResult> Create(CreateModel model, HttpPostedFileBase idcardImg = null) { //验证模型无误 if (ModelState.IsValid) { //检查有无上传图片 if (idcardImg != null) { //文件MimeType model.IDCardImageMimeType = idcardImg.ContentType; //文件数据 model.IDCardImageData = new byte[idcardImg.ContentLength]; //数据以二进制的形势写入到流中 idcardImg.InputStream.Read(model.IDCardImageData, 0, idcardImg.ContentLength); //转换base64格式 string base64 = Convert.ToBase64String(model.IDCardImageData); //使用API获取身份证信息 Dictionary <string, string> info = new Identity().IdentityORC(base64); //识别成功 if (info["Status"] == "SUCCESS") { //识别成功后,检查改身份证是否已经使用 using (var db = new AspNetUserDataContext()) { var idcard = db.AspNetUsers.Where(x => x.IDCardNO.ToString() == info["num"]).ToList(); //该身份证已被注册 if (idcard.Count > 0) { model.OCRresult = "该身份证已被注册"; return(View("ReUpLoadIdCard", model)); } } DateTime birth; //转换时间 if (DateTime.TryParseExact(info["birth"], "yyyyMMdd", null, DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AdjustToUniversal, out birth)) { model.BirthDay = birth; model.Age = DateTime.Now.Year - birth.Year; } model.NativePlace = info["address"]; model.RealName = info["name"]; model.IDCardNO = info["num"]; model.Gender = info["sex"]; //根据模型生成对应的用户实例 AppUser user = new AppUser { UserName = model.Name, //用户名 Email = model.Email, //电子邮箱 Age = model.Age, //年龄 BirthDay = model.BirthDay, //出生年月 RegisterTime = DateTime.Now, //注册时间 Gender = model.Gender, //性别 HeadPortrait = @"\images\usr_avatar.png", //默认头像 IDCardImageData = model.IDCardImageData, //身份证照 IDCardImageMimeType = model.IDCardImageMimeType, //身份证照格式 IDCardNO = model.IDCardNO, //身份证号码 NativePlace = model.NativePlace, //家庭住址 RealName = model.RealName, //真实姓名 PhoneNumber = model.PhoneNumber, //手机号码 EmailConfirmed = true, //电子邮箱验证是否通过 PhoneNumberConfirmed = true, //手机号码验证是否通过 Signature = model.Gender == "男" ? "他什么也没留下" : "她什么也没留下" //初始化个性签名 }; //创建用户,并返回结果 IdentityResult result = await UserManager.CreateAsync(user, model.Password); //成功 if (result.Succeeded) { model.OCRresult = "注册成功"; //页面重定向到注册页面 return(View("ReUpLoadIdCard", model)); } //失败 else { //添加错误模型 AddErrorsFromResult(result); //返回Error页面 return(View()); } } //识别失败,跳转页面重新上传身份证 else if (info["Status"] == "ERROR") { model.OCRresult = "识别失败"; return(View("ReUpLoadIdCard", model)); } } //无图片 else { model.OCRresult = "图片为空,请下方重新上传"; return(View("ReUpLoadIdCard", model)); } } return(View(model)); }