public SharedResultVM UpdateUserPhoto(string type, string source) { var vm = new SharedResultVM(); try { vm = Apps.LoginService.CompleteInfoValid(HttpContext); if (vm.Code == 200) { var uinfo = Apps.LoginService.Get(HttpContext); //物理根路径 var prp = GlobalTo.GetValue("StaticResource:PhysicalRootPath").Replace("~", GlobalTo.ContentRootPath); var ppath = PathTo.Combine(prp, GlobalTo.GetValue("StaticResource:AvatarPath")); if (!Directory.Exists(ppath)) { Directory.CreateDirectory(ppath); } if (string.IsNullOrWhiteSpace(uinfo.UserPhoto)) { uinfo.UserPhoto = UniqueTo.LongId() + ".jpg"; } var upname = uinfo.UserPhoto.Split('?')[0]; var npnew = upname + "?" + DateTime.Now.ToTimestamp(); switch (type) { case "file": { source = source[(source.LastIndexOf(",") + 1)..];
public ActionResultVM ListUserConn(int a) { var vm = new ActionResultVM(); int wid = Convert.ToInt32(RouteData.Values["id"]?.ToString()); var uinfo = new UserAuthAid(HttpContext).Get(); using (var db = new ContextBase()) { var uw = db.UserWriting.Find(wid); var uc = db.UserConnection.Where(x => x.Uid == uinfo.UserId && x.UconnTargetId == wid.ToString() && x.UconnAction == a).FirstOrDefault(); if (uc == null) { uc = new UserConnection() { UconnId = UniqueTo.LongId().ToString(), UconnAction = a, UconnCreateTime = DateTime.Now, UconnTargetId = wid.ToString(), UconnTargetType = EnumAid.ConnectionType.UserWriting.ToString(), Uid = uinfo.UserId }; db.UserConnection.Add(uc); if (a == 1) { uw.UwLaud += 1; } if (a == 2) { uw.UwMark += 1; } db.UserWriting.Update(uw); vm.data = "1"; } else { db.UserConnection.Remove(uc); if (a == 1) { uw.UwLaud -= 1; } if (a == 2) { uw.UwMark -= 1; } db.UserWriting.Update(uw); vm.data = "0"; } int num = db.SaveChanges(); vm.Set(num > 0); } return(vm); }
public ActionResultVM SaveRun(Blog.Data.Models.Run mo) { var vm = new ActionResultVM(); var uinfo = new Func.UserAuthAid(HttpContext).Get(); using (var db = new ContextBase()) { //add if (string.IsNullOrWhiteSpace(mo.RunCode)) { mo.RunId = Guid.NewGuid().ToString(); mo.RunCreateTime = DateTime.Now; mo.RunStatus = 1; mo.RunOpen = 1; mo.Uid = uinfo.UserId; mo.RunCode = UniqueTo.LongId().ToString(); db.Run.Add(mo); int num = db.SaveChanges(); vm.data = mo.RunCode; vm.Set(num > 0); } else { var oldmo = db.Run.Where(x => x.RunCode == mo.RunCode).FirstOrDefault(); if (oldmo != null) { if (oldmo.Uid == uinfo.UserId) { oldmo.RunContent1 = mo.RunContent1; oldmo.RunContent2 = mo.RunContent2; oldmo.RunContent3 = mo.RunContent3; oldmo.RunRemark = mo.RunRemark; oldmo.RunTheme = mo.RunTheme; db.Run.Update(oldmo); int num = db.SaveChanges(); vm.data = mo.RunCode; vm.Set(num > 0); } else { vm.Set(ARTag.refuse); } } else { vm.Set(ARTag.invalid); } } } return(vm); }
public SharedResultVM ListUserConn(int a) { var vm = new SharedResultVM(); int wid = Convert.ToInt32(RouteData.Values["id"]?.ToString()); var uinfo = Apps.LoginService.Get(HttpContext); var uw = db.UserWriting.Find(wid); var uc = db.UserConnection.FirstOrDefault(x => x.Uid == uinfo.UserId && x.UconnTargetId == wid.ToString() && x.UconnAction == a); if (uc == null) { uc = new UserConnection() { UconnId = UniqueTo.LongId().ToString(), UconnAction = a, UconnCreateTime = DateTime.Now, UconnTargetId = wid.ToString(), UconnTargetType = Application.EnumService.ConnectionType.UserWriting.ToString(), Uid = uinfo.UserId }; db.UserConnection.Add(uc); if (a == 1) { uw.UwLaud += 1; } if (a == 2) { uw.UwMark += 1; } db.UserWriting.Update(uw); vm.Data = "1"; } else { db.UserConnection.Remove(uc); if (a == 1) { uw.UwLaud -= 1; } if (a == 2) { uw.UwMark -= 1; } db.UserWriting.Update(uw); vm.Data = "0"; } int num = db.SaveChanges(); vm.Set(num > 0); return(vm); }
public ActionResultVM Save(DocSetDetail mo) { var vm = new ActionResultVM(); var uinfo = new UserAuthAid(HttpContext).Get(); using (var db = new ContextBase()) { var ds = db.DocSet.Find(mo.DsCode); if (ds?.Uid != uinfo.UserId) { vm.Set(ARTag.unauthorized); } else { mo.DsdUpdateTime = DateTime.Now; mo.Uid = uinfo.UserId; if (string.IsNullOrWhiteSpace(mo.DsdPid)) { mo.DsdPid = Guid.Empty.ToString(); } if (!mo.DsdOrder.HasValue) { mo.DsdOrder = 99; } if (string.IsNullOrWhiteSpace(mo.DsdId)) { mo.DsdId = UniqueTo.LongId().ToString(); mo.DsdCreateTime = mo.DsdUpdateTime; db.DocSetDetail.Add(mo); } else { //查询原创建时间 var currmo = db.DocSetDetail.AsNoTracking().FirstOrDefault(x => x.DsdId == mo.DsdId); mo.DsdCreateTime = currmo.DsdCreateTime; db.DocSetDetail.Update(mo); } int num = db.SaveChanges(); vm.Set(num > 0); vm.data = mo.DsdId; } } return(vm); }
public override void OnActionExecuting(ActionExecutingContext context) { //日志 try { var hc = context.HttpContext; string controller = context.RouteData.Values["controller"].ToString().ToLower(); string action = context.RouteData.Values["action"].ToString().ToLower(); string url = hc.Request.Path.ToString() + hc.Request.QueryString.Value; var referer = hc.Request.Headers["referer"].ToString(); var requestid = UniqueTo.LongId().ToString(); hc.Response.Headers.Add("X-Request-Id", requestid); //客户端信息 var ct = new ClientTo(hc); //用户信息 var userinfo = new UserAuthAid(hc).Get(); //日志保存 var mo = new LogsAid.LogsVM() { LogName = userinfo?.UserName, LogNickname = userinfo?.Nickname, LogRequestId = requestid, LogAction = controller + "/" + action, LogUrl = url, LogIp = ct.IPv4.Split(',')[0].Trim(), LogReferer = referer, LogCreateTime = DateTime.Now, LogBrowserName = ct.BrowserName, LogSystemName = ct.SystemName, LogGroup = 1, LogLevel = "info" }; mo.LogContent = DicDescription[mo.LogAction.ToLower()]; LogsAid.Insert(mo); } catch (Exception) { } base.OnActionExecuting(context); }
public ActionResultVM SaveDocSet(DocSet mo) { var vm = new ActionResultVM(); var uinfo = new UserAuthAid(HttpContext).Get(); using (var db = new ContextBase()) { if (string.IsNullOrWhiteSpace(mo.DsCode)) { mo.DsCode = UniqueTo.LongId().ToString(); mo.Uid = uinfo.UserId; mo.DsStatus = 1; mo.DsCreateTime = DateTime.Now; db.DocSet.Add(mo); } else { var currmo = db.DocSet.Find(mo.DsCode); if (currmo.Uid != uinfo.UserId) { vm.Set(ARTag.unauthorized); } currmo.DsName = mo.DsName; currmo.DsRemark = mo.DsRemark; currmo.DsOpen = mo.DsOpen; currmo.Spare1 = mo.Spare1; db.DocSet.Update(currmo); } var num = db.SaveChanges(); vm.Set(num > 0); } return(vm); }
public ActionResultVM API82(int?count = 10) { var vm = new ActionResultVM(); try { var list = new List <long>(); for (int i = 0; i < count; i++) { list.Add(UniqueTo.LongId()); } vm.data = list; vm.Set(ARTag.success); } catch (Exception ex) { vm.Set(ex); ConsoleTo.Log(ex); } return(vm); }
public SharedResultVM LsitReplySave(UserReply mo, UserMessage um) { var vm = new SharedResultVM(); vm = Apps.LoginService.CompleteInfoValid(HttpContext); if (vm.Code == 200) { if (!mo.Uid.HasValue || string.IsNullOrWhiteSpace(mo.UrContent) || string.IsNullOrWhiteSpace(mo.UrTargetId)) { vm.Set(SharedEnum.RTag.lack); } else { var uinfo = Apps.LoginService.Get(HttpContext); mo.Uid = uinfo.UserId; var now = DateTime.Now; //回复消息 um.UmId = UniqueTo.LongId().ToString(); um.UmTriggerUid = mo.Uid; um.UmType = Application.EnumService.MessageType.UserWriting.ToString(); um.UmTargetId = mo.UrTargetId; um.UmAction = 2; um.UmStatus = 1; um.UmContent = mo.UrContent; um.UmCreateTime = now; //回复内容 mo.UrCreateTime = now; mo.UrStatus = 1; mo.UrTargetPid = 0; mo.UrTargetType = Application.EnumService.ReplyType.UserWriting.ToString(); mo.UrAnonymousLink = ParsingTo.JsSafeJoin(mo.UrAnonymousLink); db.UserReply.Add(mo); //回填文章最新回复记录 var mow = db.UserWriting.FirstOrDefault(x => x.UwId.ToString() == mo.UrTargetId); if (mow != null) { mow.UwReplyNum += 1; mow.UwLastUid = mo.Uid; mow.UwLastDate = now; um.UmTargetIndex = mow.UwReplyNum; db.UserWriting.Update(mow); } if (um.Uid != um.UmTriggerUid) { db.UserMessage.Add(um); } int num = db.SaveChanges(); vm.Set(num > 0); } } return(vm); }
/// <summary> /// 登录授权回调 /// </summary> /// <param name="authorizeResult">获取授权码以及防伪标识</param> /// <returns></returns> public IActionResult AuthCallback(LoginBase.AuthorizeResult authorizeResult) { var vm = new ActionResultVM(); try { if (string.IsNullOrWhiteSpace(authorizeResult.code)) { vm.Set(ARTag.unauthorized); } else { //唯一标示 string openId = string.Empty; //注册信息 var mo = new UserInfo() { LoginLimit = 0, UserSex = 0, UserCreateTime = DateTime.Now }; //头像 string avatar = string.Empty; //头像(高清) string avatarhd = string.Empty; Enum.TryParse(RouteData.Values["id"]?.ToString(), true, out ValidateloginType vtype); switch (vtype) { case ValidateloginType.qq: { //获取 access_token var tokenEntity = QQ.AccessToken(new QQ_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 OpendId var openidEntity = QQ.OpenId(new QQ_OpenId_RequestEntity() { access_token = tokenEntity.access_token }); //获取 UserInfo var userEntity = QQ.OpenId_Get_User_Info(new QQ_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = openidEntity.openid }); //身份唯一标识 openId = openidEntity.openid; mo.OpenId1 = openId; mo.Nickname = userEntity.nickname; mo.UserSex = userEntity.gender == "男" ? 1 : 2; mo.UserSay = ""; mo.UserUrl = ""; avatar = userEntity.figureurl_qq_1; avatarhd = userEntity.figureurl_qq_2; } break; //case ValidateloginType.weibo: // { // //获取 access_token // var tokenEntity = Weibo.AccessToken(new Weibo_AccessToken_RequestEntity() // { // code = authorizeResult.code // }); // //获取 access_token 的授权信息 // var tokenInfoEntity = Weibo.GetTokenInfo(new Weibo_GetTokenInfo_RequestEntity() // { // access_token = tokenEntity.access_token // }); // //获取 users/show // var userEntity = Weibo.UserShow(new Weibo_UserShow_RequestEntity() // { // access_token = tokenEntity.access_token, // uid = Convert.ToInt64(tokenInfoEntity.uid) // }); // openId = tokenEntity.access_token; // mo.OpenId2 = openId; // mo.Nickname = userEntity.screen_name; // mo.UserSex = userEntity.gender == "m" ? 1 : userEntity.gender == "f" ? 2 : 0; // mo.UserSay = userEntity.description; // mo.UserUrl = userEntity.domain; // avatar = userEntity.profile_image_url; // avatarhd = userEntity.avatar_large; // } // break; case ValidateloginType.github: { //获取 access_token var tokenEntity = GitHub.AccessToken(new GitHub_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = GitHub.User(new GitHub_User_RequestEntity() { access_token = tokenEntity.access_token }); openId = userEntity.id.ToString(); mo.OpenId3 = openId; mo.Nickname = userEntity.name; mo.UserSay = userEntity.bio; mo.UserUrl = userEntity.blog; mo.UserMail = userEntity.email; avatar = userEntity.avatar_url; avatarhd = userEntity.avatar_url; } break; //case ValidateloginType.taobao: // { // //获取 access_token // var tokenEntity = TaoBao.AccessToken(new TaoBao_AccessToken_RequestEntity() // { // code = authorizeResult.code // }); // openId = tokenEntity.open_uid; // mo.OpenId4 = openId; // mo.Nickname = "淘宝用户"; // } // break; //case ValidateloginType.microsoft: // { // //获取 access_token // var tokenEntity = MicroSoft.AccessToken(new MicroSoft_AccessToken_RequestEntity() // { // code = authorizeResult.code // }); // //获取 user // var userEntity = MicroSoft.User(new MicroSoft_User_RequestEntity() // { // access_token = tokenEntity.access_token // }); // openId = userEntity.id.ToString(); // mo.OpenId5 = openId; // mo.Nickname = userEntity.last_name + userEntity.first_name; // mo.UserMail = userEntity.emails?["account"].ToStringOrEmpty(); // } // break; //case ValidateloginType.dingtalk: // { // //获取 user // var userEntity = DingTalk.User(new DingTalk_User_RequestEntity(), authorizeResult.code); // openId = userEntity.openid; // mo.OpenId6 = openId; // mo.Nickname = userEntity.nick; // } // break; } mo.UserCreateTime = DateTime.Now; mo.UserName = openId; mo.UserPwd = CalcTo.MD5(openId); if (!string.IsNullOrWhiteSpace(avatar)) { mo.UserPhoto = UniqueTo.LongId().ToString() + ".jpg"; } if (string.IsNullOrWhiteSpace(openId)) { vm.Set(ARTag.unauthorized); vm.msg = "身份验证失败"; } else { //判断是绑定操作 bool isbind = User.Identity.IsAuthenticated && authorizeResult.state.StartsWith("bind"); if (isbind) { int uid = new UserAuthAid(HttpContext).Get().UserId; using (var db = new ContextBase()) { //检测是否绑定其它账号 var queryIsBind = db.UserInfo.Where(x => x.UserId != uid); switch (vtype) { case ValidateloginType.qq: queryIsBind = queryIsBind.Where(x => x.OpenId1 == openId); break; case ValidateloginType.weibo: queryIsBind = queryIsBind.Where(x => x.OpenId2 == openId); break; case ValidateloginType.github: queryIsBind = queryIsBind.Where(x => x.OpenId3 == openId); break; case ValidateloginType.taobao: queryIsBind = queryIsBind.Where(x => x.OpenId4 == openId); break; case ValidateloginType.microsoft: queryIsBind = queryIsBind.Where(x => x.OpenId5 == openId); break; case ValidateloginType.dingtalk: queryIsBind = queryIsBind.Where(x => x.OpenId6 == openId); break; } if (queryIsBind.Count() > 0) { return(Content("已绑定其它账号,不能重复绑定")); } var userInfo = db.UserInfo.Find(uid); switch (vtype) { case ValidateloginType.qq: userInfo.OpenId1 = openId; break; case ValidateloginType.weibo: userInfo.OpenId2 = openId; break; case ValidateloginType.github: userInfo.OpenId3 = openId; break; case ValidateloginType.taobao: userInfo.OpenId4 = openId; break; case ValidateloginType.microsoft: userInfo.OpenId5 = openId; break; case ValidateloginType.dingtalk: userInfo.OpenId6 = openId; break; } db.UserInfo.Update(userInfo); db.SaveChanges(); } return(Redirect("/user/setting")); } else { using var db = new ContextBase(); UserInfo vmo = null; switch (vtype) { case ValidateloginType.qq: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId1 == openId); break; case ValidateloginType.weibo: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId2 == openId); break; case ValidateloginType.github: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId3 == openId); break; case ValidateloginType.taobao: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId4 == openId); break; case ValidateloginType.microsoft: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId5 == openId); break; case ValidateloginType.dingtalk: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId6 == openId); break; } //未注册 if (vmo == null) { var ruvm = RegisterUser(mo); if (ruvm.code == 200) { vm = ValidateLogin(vtype, mo); //拉取头像 if (vm.code == 200 && (!string.IsNullOrWhiteSpace(avatar) || !string.IsNullOrWhiteSpace(avatarhd))) { try { using var wc = new System.Net.WebClient(); var rootdir = GlobalTo.WebRootPath + "/" + (GlobalTo.GetValue("StaticResource:RootDir").TrimStart('/').TrimEnd('/') + "/"); var path = GlobalTo.GetValue("StaticResource:AvatarPath").TrimEnd('/').TrimStart('/') + '/'; var fullpath = rootdir + path; if (!System.IO.Directory.Exists(fullpath)) { System.IO.Directory.CreateDirectory(fullpath); } if (!string.IsNullOrWhiteSpace(avatar)) { wc.DownloadFile(avatar, fullpath + mo.UserPhoto); } if (!string.IsNullOrWhiteSpace(avatarhd)) { wc.DownloadFile(avatarhd, fullpath + mo.UserPhoto.Replace(".jpg", "_lg.jpg")); } } catch (Exception) { } } } else { vm.msg = ruvm.msg; } } else { vm = ValidateLogin(vtype, vmo); } } } } } catch (Exception ex) { vm.Set(ex); ConsoleTo.Log(ex); } //成功 if (vm.code == 200) { var rurl = Request.Cookies["ReturnUrl"]; rurl = string.IsNullOrWhiteSpace(rurl) ? "/" : rurl; if (rurl.StartsWith("http")) { rurl += "?cookie=ok"; } return(Redirect(rurl)); } else { string msg = "【登录失败】( " + vm.msg + " )".ToEncode(); return(Redirect("/home/error?msg=" + msg)); } }
/// <summary> /// 首页 /// </summary> /// <param name="filename"></param> /// <param name="xml"></param> /// <param name="mof"></param> /// <returns></returns> public IActionResult Index(string filename, string xml, Blog.Data.Models.Draw mof) { var id = RouteData.Values["id"]?.ToString(); var sid = RouteData.Values["sid"]?.ToString(); var uinfo = new UserAuthAid(HttpContext).Get(); if (!string.IsNullOrWhiteSpace(filename)) { filename = filename.ToDecode(); } if (!string.IsNullOrWhiteSpace(xml)) { xml = xml.ToDecode(); } //新增 if (id == "open") { //编辑 if (!string.IsNullOrWhiteSpace(sid)) { var vm = new ActionResultVM(); using var db = new ContextBase(); var mo = db.Draw.Find(sid); if (mo?.DrOpen == 1 || mo?.Uid == uinfo.UserId) { vm.Set(ARTag.success); vm.data = mo; } else { vm.Set(ARTag.unauthorized); } return(Content(vm.ToJson())); } return(Ok()); } //新增、编辑表单 else if (id == "form") { object model = null; if (HttpContext.User.Identity.IsAuthenticated) { if (!string.IsNullOrWhiteSpace(sid)) { using var db = new ContextBase(); var mo = db.Draw.Find(sid); if (mo.Uid == uinfo.UserId) { model = mo; } } } return(View("_PartialDrawForm", model)); } //保存标题等信息 else if (id == "saveform") { var vm = new ActionResultVM(); if (User.Identity.IsAuthenticated) { using var db = new ContextBase(); int num = 0; if (string.IsNullOrWhiteSpace(mof.DrId)) { mof.DrId = mof.DrType[0] + UniqueTo.LongId().ToString(); mof.DrCreateTime = DateTime.Now; mof.Uid = uinfo.UserId; mof.DrOrder = 100; db.Draw.Add(mof); num = db.SaveChanges(); } else { var newmo = db.Draw.Find(mof.DrId); if (newmo.Uid == uinfo.UserId) { newmo.DrRemark = mof.DrRemark; newmo.DrName = mof.DrName; newmo.DrOpen = mof.DrOpen; db.Draw.Update(newmo); num = db.SaveChanges(); } } vm.Set(num > 0); } else { vm.Set(ARTag.unauthorized); } if (vm.code == 200) { return(Redirect("/draw/user/" + uinfo?.UserId)); } else { return(Content(vm.ToJson())); } } //保存内容 else if (id == "save") { var vm = new ActionResultVM(); if (User.Identity.IsAuthenticated) { using var db = new ContextBase(); //新增 if (string.IsNullOrWhiteSpace(sid)) { var mo = new Blog.Data.Models.Draw { DrName = filename, DrContent = xml, DrId = mof.DrType[0] + UniqueTo.LongId().ToString(), DrType = mof.DrType, DrCreateTime = DateTime.Now, DrOpen = 1, DrOrder = 100, DrStatus = 1, Uid = uinfo.UserId }; db.Draw.Add(mo); var num = db.SaveChanges(); vm.Set(num > 0); vm.data = mo.DrId; } else { var mo = db.Draw.Find(sid); if (mo?.Uid == uinfo.UserId) { mo.DrName = filename; mo.DrContent = xml; db.Draw.Update(mo); var num = db.SaveChanges(); vm.Set(num > 0); } else { vm.Set(ARTag.unauthorized); } } } else { vm.code = 1; vm.msg = "未登录"; } return(Content(vm.ToJson())); } //删除 else if (id == "del") { var vm = new ActionResultVM(); if (User.Identity.IsAuthenticated) { using var db = new ContextBase(); var mo = db.Draw.Find(sid); if (mo.Uid == uinfo.UserId) { db.Remove(mo); int num = db.SaveChanges(); vm.Set(num > 0); } else { vm.Set(ARTag.unauthorized); } } else { vm.Set(ARTag.unauthorized); } if (vm.code == 200) { return(Redirect("/draw/discover")); } else { return(Content(vm.ToJson())); } } //插入图片 else if (id == "upload") { var errno = -1; var msg = "fail"; var url = ""; var vm = new Web.Controllers.APIController().API98(Request.Form.Files[0], GlobalTo.GetValue("StaticResource:DrawPath")); if (vm.code == 200) { var jd = ((JObject)vm.data); url = jd["server"].ToString() + jd["path"].ToString(); errno = 0; msg = "ok"; } return(Content(new { errno, msg, data = new { url } }.ToJson())); } ViewData["vid"] = id; var vname = string.Format("_Partial{0}View", id.StartsWith('m') ? "Mind" : "Draw"); return(View(vname)); }
/// <summary> /// Guff查询 /// </summary> /// <param name="category">类别,可选,支持 text、image、audio、video、me(我的)、melaud(我点赞的)、mereply(我回复的)</param> /// <param name="q">搜索</param> /// <param name="nv">分类名/分类值</param> /// <param name="tag">标签</param> /// <param name="obj">对象</param> /// <param name="OwnerId">所属用户</param> /// <param name="UserId">登录用户</param> /// <param name="page">页码</param> /// <returns></returns> public static PageVM GuffQuery(string category, string q, string nv, string tag, string obj, int OwnerId, int UserId, int page = 1) { var ctype = EnumAid.ConnectionType.GuffRecord.ToString(); using var db = new ContextBase(); IQueryable <GuffRecord> query = null; switch (category?.ToLower()) { case "melaud": { query = from c in db.UserConnection join a in db.GuffRecord on c.UconnTargetId equals a.GrId join b in db.UserInfo on a.Uid equals b.UserId where c.Uid == UserId && c.UconnTargetType == ctype && c.UconnAction == 1 && a.GrStatus == 1 orderby c.UconnCreateTime descending select new GuffRecord { GrId = a.GrId, GrTypeName = a.GrTypeName, GrTypeValue = a.GrTypeValue, GrObject = a.GrObject, GrContent = a.GrContent, GrContentMd = a.GrContentMd, GrImage = a.GrImage, GrAudio = a.GrAudio, GrVideo = a.GrVideo, GrFile = a.GrFile, GrRemark = a.GrRemark, GrTag = a.GrTag, GrCreateTime = a.GrCreateTime, GrUpdateTime = a.GrUpdateTime, GrOpen = a.GrOpen, GrReadNum = a.GrReadNum, GrReplyNum = a.GrReplyNum, GrLaud = a.GrLaud, GrMark = a.GrMark, Uid = a.Uid, //已点赞 Spare1 = "laud", //是我的 Spare2 = a.Uid == UserId ? "owner" : "", //昵称 Spare3 = b.Nickname }; } break; case "mereply": { query = from c in db.UserReply join a in db.GuffRecord on c.UrTargetId equals a.GrId join b in db.UserInfo on a.Uid equals b.UserId where c.Uid == UserId && c.UrTargetType == ctype && a.GrStatus == 1 orderby c.UrCreateTime descending select new GuffRecord { GrId = a.GrId, GrTypeName = a.GrTypeName, GrTypeValue = a.GrTypeValue, GrObject = a.GrObject, GrContent = a.GrContent, GrContentMd = a.GrContentMd, GrImage = a.GrImage, GrAudio = a.GrAudio, GrVideo = a.GrVideo, GrFile = a.GrFile, GrRemark = a.GrRemark, GrTag = a.GrTag, GrCreateTime = a.GrCreateTime, GrUpdateTime = a.GrUpdateTime, GrOpen = a.GrOpen, GrReadNum = a.GrReadNum, GrReplyNum = a.GrReplyNum, GrLaud = a.GrLaud, GrMark = a.GrMark, Uid = a.Uid, Spare2 = a.Uid == UserId ? "owner" : "", Spare3 = b.Nickname }; } break; case "me": case "top": case "text": case "image": case "audio": case "video": default: { query = from a in db.GuffRecord join b in db.UserInfo on a.Uid equals b.UserId where a.GrStatus == 1 select new GuffRecord { GrId = a.GrId, GrTypeName = a.GrTypeName, GrTypeValue = a.GrTypeValue, GrObject = a.GrObject, GrContent = a.GrContent, GrContentMd = a.GrContentMd, GrImage = a.GrImage, GrAudio = a.GrAudio, GrVideo = a.GrVideo, GrFile = a.GrFile, GrRemark = a.GrRemark, GrTag = a.GrTag, GrCreateTime = a.GrCreateTime, GrUpdateTime = a.GrUpdateTime, GrOpen = a.GrOpen, GrReadNum = a.GrReadNum, GrReplyNum = a.GrReplyNum, GrLaud = a.GrLaud, GrMark = a.GrMark, Uid = a.Uid, Spare2 = a.Uid == UserId ? "owner" : "", Spare3 = b.Nickname }; } break; } switch (category?.ToLower()) { case "top": query = query.OrderByDescending(x => x.GrLaud); break; case "text": query = query.OrderByDescending(x => x.GrCreateTime).Where(x => !string.IsNullOrEmpty(x.GrContent) && string.IsNullOrEmpty(x.GrImage) && string.IsNullOrEmpty(x.GrAudio) && string.IsNullOrEmpty(x.GrVideo)); break; case "image": query = query.OrderByDescending(x => x.GrCreateTime).Where(x => !string.IsNullOrEmpty(x.GrImage)); break; case "audio": query = query.OrderByDescending(x => x.GrCreateTime).Where(x => !string.IsNullOrEmpty(x.GrAudio)); break; case "video": query = query.OrderByDescending(x => x.GrCreateTime).Where(x => !string.IsNullOrEmpty(x.GrVideo)); break; default: query = query.OrderByDescending(x => x.GrCreateTime); break; } //所属用户 if (OwnerId != 0) { query = query.Where(x => x.Uid == OwnerId); } //未登录 if (UserId == 0) { query = query.Where(x => x.GrOpen == 1); } else { //已登录:公开&登录用户的所有 query = query.Where(x => x.GrOpen == 1 || x.Uid == UserId); } //分类名/分类值 if (!string.IsNullOrWhiteSpace(nv)) { if (!nv.Contains("/")) { nv += "/"; } var nvs = nv.Split('/').ToList(); var n = nvs.FirstOrDefault(); var v = nvs.LastOrDefault(); //分类名 if (!string.IsNullOrWhiteSpace(n)) { query = query.Where(x => x.GrTypeName == n); } //分类值 if (!string.IsNullOrWhiteSpace(v)) { query = query.Where(x => x.GrTypeValue == v); } } //标签 if (!string.IsNullOrWhiteSpace(tag)) { query = query.Where(x => x.GrTag.Contains(tag)); } //标签 if (!string.IsNullOrWhiteSpace(tag)) { query = query.Where(x => x.GrTag.Contains(tag)); } //对象 if (!string.IsNullOrWhiteSpace(obj)) { query = query.Where(x => x.GrObject.Contains(obj)); } if (!string.IsNullOrWhiteSpace(q)) { query = query.Where(x => x.GrContent.Contains(q) || x.GrTag.Contains(q)); } var pag = new PaginationVM { PageNumber = Math.Max(page, 1), PageSize = 18 }; var dicQs = new Dictionary <string, string> { { "q", q } }; pag.Total = query.Count(); var list = query.Skip((pag.PageNumber - 1) * pag.PageSize).Take(pag.PageSize).ToList(); var listid = list.Select(x => x.GrId).ToList(); //点赞查询 if (category != "melaud") { var listtid = db.UserConnection.Where(x => listid.Contains(x.UconnTargetId) && x.Uid == UserId && x.UconnTargetType == ctype && x.UconnAction == 1).Select(x => x.UconnTargetId).ToList(); foreach (var item in list) { if (listtid.Contains(item.GrId)) { item.Spare1 = "laud"; } } } //查询记录 var ormo = new OperationRecord() { OrId = UniqueTo.LongId().ToString(), OrType = ctype, OrAction = "query", OrSource = string.Join(",", listid), OrCreateTime = DateTime.Now, OrMark = "default" }; db.OperationRecord.Add(ormo); db.SaveChanges(); PageVM pageSet = new PageVM() { Rows = list, Pag = pag, QueryString = dicQs }; return(pageSet); }
public SharedResultVM Connection(string type, int ac, string id) { return(SharedResultVM.Try(vm => { var uinfo = Apps.LoginService.Get(HttpContext); if (uinfo.UserId == 0) { vm.Set(SharedEnum.RTag.unauthorized); } else if (string.IsNullOrWhiteSpace(id)) { vm.Set(SharedEnum.RTag.invalid); } else if (!new List <string> { "add", "cancel" }.Contains(type)) { vm.Set(SharedEnum.RTag.invalid); } else if (!new List <int> { 1, 2 }.Contains(ac)) { vm.Set(SharedEnum.RTag.invalid); } else { var currMo = db.GuffRecord.Find(id); if (currMo == null) { vm.Set(SharedEnum.RTag.invalid); } else { var ctype = Application.EnumService.ConnectionType.GuffRecord.ToString(); switch (type) { case "add": { if (db.UserConnection.Any(x => x.Uid == uinfo.UserId && x.UconnTargetType == ctype && x.UconnTargetId == id && x.UconnAction == ac)) { vm.Set(SharedEnum.RTag.exist); } else { //关联记录 var ucmo = new Domain.UserConnection() { UconnId = UniqueTo.LongId().ToString(), Uid = uinfo.UserId, UconnTargetType = Application.EnumService.ConnectionType.GuffRecord.ToString(), UconnTargetId = id, UconnAction = ac, UconnCreateTime = DateTime.Now }; db.Add(ucmo); switch (ac) { case 1: currMo.GrLaud += 1; break; case 2: currMo.GrMark += 1; break; } db.Update(currMo); int num = db.SaveChanges(); vm.Set(num > 0); } } break; case "cancel": { var curruc = db.UserConnection.FirstOrDefault(x => x.Uid == uinfo.UserId && x.UconnTargetType == ctype && x.UconnTargetId == id && x.UconnAction == ac); if (curruc == null) { vm.Set(SharedEnum.RTag.invalid); } else { db.Remove(curruc); switch (ac) { case 1: currMo.GrLaud -= 1; break; case 2: currMo.GrMark -= 1; break; } db.Update(currMo); int num = db.SaveChanges(); vm.Set(num > 0); } } break; } } } return vm; })); }
public ActionResultVM SaveGist(Blog.Data.Models.Gist mo) { var vm = new ActionResultVM(); var uinfo = new UserAuthAid(HttpContext).Get(); using (var db = new ContextBase()) { //add if (string.IsNullOrWhiteSpace(mo.GistCode)) { mo.GistId = Guid.NewGuid().ToString(); mo.GistCreateTime = DateTime.Now; mo.GistUpdateTime = mo.GistCreateTime; mo.GistStatus = 1; mo.Uid = uinfo.UserId; mo.GistCode = UniqueTo.LongId().ToString(); db.Gist.Add(mo); db.SaveChanges(); vm.data = mo.GistCode; vm.Set(ARTag.success); } else { var oldmo = db.Gist.Where(x => x.GistCode == mo.GistCode).FirstOrDefault(); if (oldmo != null) { if (oldmo.Uid == uinfo.UserId) { oldmo.GistRemark = mo.GistRemark; oldmo.GistFilename = mo.GistFilename; oldmo.GistLanguage = mo.GistLanguage; oldmo.GistTheme = mo.GistTheme; oldmo.GistContent = mo.GistContent; oldmo.GistContentPreview = mo.GistContentPreview; oldmo.GistRow = mo.GistRow; oldmo.GistOpen = mo.GistOpen; oldmo.GistUpdateTime = DateTime.Now; db.Gist.Update(oldmo); db.SaveChanges(); vm.data = mo.GistCode; vm.Set(ARTag.success); } else { vm.Set(ARTag.refuse); } } else { vm.Set(ARTag.invalid); } } } return(vm); }
/// <summary> /// 回复 /// </summary> /// <param name="mo">回复信息</param> /// <param name="um">消息通知</param> /// <returns></returns> public ActionResultVM LsitReplySave(UserReply mo, UserMessage um) { var vm = new ActionResultVM(); var uinfo = new UserAuthAid(HttpContext).Get(); if ((uinfo.UserId != 0 && string.IsNullOrWhiteSpace(uinfo.Nickname)) || (uinfo.UserId == 0 && string.IsNullOrWhiteSpace(mo.UrAnonymousName))) { vm.Set(ARTag.refuse); vm.msg = "昵称不能为空"; return(vm); } mo.Uid = uinfo.UserId; var now = DateTime.Now; //回复消息 um.UmId = UniqueTo.LongId().ToString(); um.UmTriggerUid = mo.Uid; um.UmType = EnumAid.MessageType.UserWriting.ToString(); um.UmTargetId = mo.UrTargetId; um.UmAction = 2; um.UmStatus = 1; um.UmContent = mo.UrContent; um.UmCreateTime = now; using (var db = new ContextBase()) { //回复内容 mo.UrCreateTime = now; mo.UrStatus = 1; mo.UrTargetPid = 0; mo.UrTargetType = EnumAid.ReplyType.UserWriting.ToString(); mo.UrAnonymousLink = ParsingTo.JsSafeJoin(mo.UrAnonymousLink); db.UserReply.Add(mo); //回填文章最新回复记录 var mow = db.UserWriting.FirstOrDefault(x => x.UwId.ToString() == mo.UrTargetId); if (mow != null) { mow.UwReplyNum += 1; mow.UwLastUid = mo.Uid; mow.UwLastDate = now; um.UmTargetIndex = mow.UwReplyNum; db.UserWriting.Update(mow); } if (um.Uid != um.UmTriggerUid) { db.UserMessage.Add(um); } int num = db.SaveChanges(); vm.Set(num > 0); } return(vm); }
/// <summary> /// 登录授权回调 /// </summary> /// <param name="authorizeResult">获取授权码以及防伪标识</param> /// <returns></returns> public IActionResult AuthCallback(LoginBase.AuthorizeResult authorizeResult) { var vm = new SharedResultVM(); try { if (string.IsNullOrWhiteSpace(authorizeResult.code)) { vm.Set(SharedEnum.RTag.unauthorized); } else { //唯一标示 string openId = string.Empty; //注册信息 var mo = new Domain.UserInfo() { LoginLimit = 0, UserSex = 0, UserCreateTime = DateTime.Now }; //头像 string avatar = string.Empty; Enum.TryParse(RouteData.Values["id"]?.ToString(), true, out LoginBase.LoginType vtype); switch (vtype) { case LoginBase.LoginType.QQ: { //获取 access_token var tokenEntity = QQ.AccessToken(new QQ_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 OpendId var openidEntity = QQ.OpenId(tokenEntity.access_token); Console.WriteLine(openidEntity.ToJson()); //获取 UserInfo var userEntity = QQ.OpenId_Get_User_Info(new QQ_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = openidEntity.openid }); Console.WriteLine(userEntity.ToJson()); //身份唯一标识 openId = openidEntity.openid; mo.OpenId1 = openId; mo.Nickname = userEntity.nickname; mo.UserSex = userEntity.gender == "男" ? 1 : 2; mo.UserSay = ""; mo.UserUrl = ""; avatar = userEntity.figureurl_2; } break; case LoginBase.LoginType.WeiBo: { //获取 access_token var tokenEntity = Weibo.AccessToken(new Weibo_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 access_token 的授权信息 var tokenInfoEntity = Weibo.GetTokenInfo(tokenEntity.access_token); Console.WriteLine(tokenInfoEntity.ToJson()); //获取 users/show var userEntity = Weibo.UserShow(new Weibo_UserShow_RequestEntity() { access_token = tokenEntity.access_token, uid = Convert.ToInt64(tokenInfoEntity.uid) }); Console.WriteLine(userEntity.ToJson()); openId = tokenEntity.access_token; mo.OpenId2 = openId; mo.Nickname = userEntity.screen_name; mo.UserSex = userEntity.gender == "m" ? 1 : userEntity.gender == "f" ? 2 : 0; mo.UserSay = userEntity.description; mo.UserUrl = userEntity.domain; avatar = userEntity.avatar_large; } break; case LoginBase.LoginType.WeChat: { //获取 access_token var tokenEntity = Netnr.Login.WeChat.AccessToken(new WeChat_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //openId = tokenEntity.openid; //获取 user var userEntity = Netnr.Login.WeChat.Get_User_Info(new WeChat_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = tokenEntity.openid }); Console.WriteLine(userEntity.ToJson()); avatar = userEntity.headimgurl; } break; case LoginBase.LoginType.GitHub: { //获取 access_token var tokenEntity = GitHub.AccessToken(new GitHub_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 user var userEntity = GitHub.User(tokenEntity.access_token); Console.WriteLine(userEntity.ToJson()); openId = userEntity.id.ToString(); mo.OpenId3 = openId; mo.Nickname = userEntity.name; mo.UserSay = userEntity.bio; mo.UserUrl = userEntity.blog; mo.UserMail = userEntity.email; avatar = userEntity.avatar_url; } break; case LoginBase.LoginType.Gitee: { //获取 access_token var tokenEntity = Gitee.AccessToken(new Gitee_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 user var userEntity = Gitee.User(tokenEntity.access_token); Console.WriteLine(userEntity.ToJson()); //openId = userEntity.id.ToString(); mo.Nickname = userEntity.name; mo.UserSay = userEntity.bio; mo.UserUrl = userEntity.blog; avatar = userEntity.avatar_url; } break; case LoginBase.LoginType.TaoBao: { //获取 access_token var tokenEntity = TaoBao.AccessToken(new TaoBao_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); openId = tokenEntity.open_uid; mo.OpenId4 = openId; mo.Nickname = "淘宝用户"; } break; case LoginBase.LoginType.MicroSoft: { //获取 access_token var tokenEntity = MicroSoft.AccessToken(new MicroSoft_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 user var userEntity = MicroSoft.User(tokenEntity.access_token); Console.WriteLine(userEntity.ToJson()); openId = userEntity.id; mo.OpenId5 = openId; mo.Nickname = userEntity.last_name + userEntity.first_name; mo.UserMail = userEntity.emails?["account"].ToStringOrEmpty(); } break; case LoginBase.LoginType.DingTalk: { //获取 user var userEntity = DingTalk.User(new DingTalk_User_RequestEntity(), authorizeResult.code); Console.WriteLine(userEntity.ToJson()); openId = userEntity.openid; mo.OpenId6 = openId; mo.Nickname = userEntity.nick; } break; case LoginBase.LoginType.Google: { //获取 access_token var tokenEntity = Google.AccessToken(new Google_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 user var userEntity = Google.User(tokenEntity.access_token); Console.WriteLine(userEntity.ToJson()); //openId = userEntity.sub; avatar = userEntity.picture; } break; case LoginBase.LoginType.AliPay: { //获取 access_token var tokenEntity = AliPay.AccessToken(new AliPay_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //openId = tokenEntity.user_id; //获取 user var userEntity = AliPay.User(new AliPay_User_RequestEntity() { auth_token = tokenEntity.access_token }); Console.WriteLine(userEntity.ToJson()); avatar = userEntity.avatar; } break; case LoginBase.LoginType.StackOverflow: { //获取 access_token var tokenEntity = StackOverflow.AccessToken(new StackOverflow_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 user var userEntity = StackOverflow.User(new StackOverflow_User_RequestEntity() { access_token = tokenEntity.access_token }); Console.WriteLine(userEntity.ToJson()); //openId= userEntity.user_id; avatar = userEntity.profile_image; } break; } mo.UserCreateTime = DateTime.Now; mo.UserName = openId; mo.UserPwd = CalcTo.MD5(openId); if (!string.IsNullOrWhiteSpace(avatar)) { mo.UserPhoto = UniqueTo.LongId().ToString() + ".jpg"; } Console.WriteLine(mo.ToJson()); if (string.IsNullOrWhiteSpace(openId)) { vm.Set(SharedEnum.RTag.unauthorized); vm.Msg = "身份验证失败"; } else { //判断是绑定操作 bool isbind = User.Identity.IsAuthenticated && authorizeResult.state.StartsWith("bind"); if (isbind) { int uid = Apps.LoginService.Get(HttpContext).UserId; //检测是否绑定其它账号 var queryIsBind = db.UserInfo.Where(x => x.UserId != uid); switch (vtype) { case LoginBase.LoginType.QQ: queryIsBind = queryIsBind.Where(x => x.OpenId1 == openId); break; case LoginBase.LoginType.WeiBo: queryIsBind = queryIsBind.Where(x => x.OpenId2 == openId); break; case LoginBase.LoginType.GitHub: queryIsBind = queryIsBind.Where(x => x.OpenId3 == openId); break; case LoginBase.LoginType.TaoBao: queryIsBind = queryIsBind.Where(x => x.OpenId4 == openId); break; case LoginBase.LoginType.MicroSoft: queryIsBind = queryIsBind.Where(x => x.OpenId5 == openId); break; case LoginBase.LoginType.DingTalk: queryIsBind = queryIsBind.Where(x => x.OpenId6 == openId); break; } if (queryIsBind.Any()) { return(Content("已绑定其它账号,不能重复绑定")); } var userInfo = db.UserInfo.Find(uid); switch (vtype) { case LoginBase.LoginType.QQ: userInfo.OpenId1 = openId; break; case LoginBase.LoginType.WeiBo: userInfo.OpenId2 = openId; break; case LoginBase.LoginType.GitHub: userInfo.OpenId3 = openId; break; case LoginBase.LoginType.TaoBao: userInfo.OpenId4 = openId; break; case LoginBase.LoginType.MicroSoft: userInfo.OpenId5 = openId; break; case LoginBase.LoginType.DingTalk: userInfo.OpenId6 = openId; break; } db.UserInfo.Update(userInfo); db.SaveChanges(); return(Redirect("/user/setting")); } else { Domain.UserInfo vmo = null; switch (vtype) { case LoginBase.LoginType.QQ: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId1 == openId); break; case LoginBase.LoginType.WeiBo: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId2 == openId); break; case LoginBase.LoginType.GitHub: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId3 == openId); break; case LoginBase.LoginType.TaoBao: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId4 == openId); break; case LoginBase.LoginType.MicroSoft: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId5 == openId); break; case LoginBase.LoginType.DingTalk: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId6 == openId); break; } //未注册 if (vmo == null) { var ruvm = RegisterUser(mo); if (ruvm.Code == 200) { vm = ValidateLogin(vtype, mo); //拉取头像 if (vm.Code == 200 && !string.IsNullOrWhiteSpace(avatar)) { try { //物理根路径 var prp = GlobalTo.GetValue("StaticResource:PhysicalRootPath").Replace("~", GlobalTo.ContentRootPath); var ppath = PathTo.Combine(prp, GlobalTo.GetValue("StaticResource:AvatarPath")); if (!Directory.Exists(ppath)) { Directory.CreateDirectory(ppath); } HttpTo.DownloadSave(HttpTo.HWRequest(avatar), PathTo.Combine(ppath, mo.UserPhoto)); } catch (Exception ex) { Console.WriteLine(ex); } } } else { vm.Msg = ruvm.Msg; } } else { vm = ValidateLogin(vtype, vmo); } } } } } catch (Exception ex) { Apps.FilterConfigs.WriteLog(HttpContext, ex); Response.Headers["X-Output-Msg"] = ex.ToJson(); vm.Set(ex); } //成功 if (vm.Code == 200) { var rurl = Request.Cookies["ReturnUrl"]; rurl = string.IsNullOrWhiteSpace(rurl) ? "/" : rurl; if (rurl.StartsWith("http")) { rurl += "?cookie=ok"; } return(Redirect(rurl)); } else { return(Redirect("/home/error")); } }
public ActionResultVM Connection(string type, int ac, string id) { var vm = new ActionResultVM(); try { var uinfo = new UserAuthAid(HttpContext).Get(); if (uinfo.UserId == 0) { vm.Set(ARTag.unauthorized); } else if (string.IsNullOrWhiteSpace(id)) { vm.Set(ARTag.invalid); } else if (!new List <string> { "add", "cancel" }.Contains(type)) { vm.Set(ARTag.invalid); } else if (!new List <int> { 1, 2 }.Contains(ac)) { vm.Set(ARTag.invalid); } else { using var db = new ContextBase(); var currMo = db.GuffRecord.Find(id); if (currMo == null) { vm.Set(ARTag.invalid); } else { var ctype = EnumAid.ConnectionType.GuffRecord.ToString(); switch (type) { case "add": { if (db.UserConnection.Any(x => x.Uid == uinfo.UserId && x.UconnTargetType == ctype && x.UconnTargetId == id && x.UconnAction == ac)) { vm.Set(ARTag.exist); } else { //关联记录 var ucmo = new UserConnection() { UconnId = UniqueTo.LongId().ToString(), Uid = uinfo.UserId, UconnTargetType = EnumAid.ConnectionType.GuffRecord.ToString(), UconnTargetId = id, UconnAction = ac, UconnCreateTime = DateTime.Now }; db.Add(ucmo); switch (ac) { case 1: currMo.GrLaud += 1; break; case 2: currMo.GrMark += 1; break; } db.Update(currMo); int num = db.SaveChanges(); vm.Set(num > 0); } } break; case "cancel": { var curruc = db.UserConnection.FirstOrDefault(x => x.Uid == uinfo.UserId && x.UconnTargetType == ctype && x.UconnTargetId == id && x.UconnAction == ac); if (curruc == null) { vm.Set(ARTag.invalid); } else { db.Remove(curruc); switch (ac) { case 1: currMo.GrLaud -= 1; break; case 2: currMo.GrMark -= 1; break; } db.Update(currMo); int num = db.SaveChanges(); vm.Set(num > 0); } } break; } } } } catch (Exception ex) { vm.Set(ex); ConsoleTo.Log(ex); } return(vm); }
public ActionResultVM Add(GuffRecord mo) { var vm = new ActionResultVM(); try { var uinfo = new UserAuthAid(HttpContext).Get(); if (string.IsNullOrWhiteSpace(mo.GrContent) && string.IsNullOrWhiteSpace(mo.GrImage) && string.IsNullOrWhiteSpace(mo.GrAudio) && string.IsNullOrWhiteSpace(mo.GrVideo)) { vm.code = 1; vm.msg = "内容不能为空(内容、图片、音频、视频 至少有一项有内容)"; } else if (string.IsNullOrWhiteSpace(mo.GrTag)) { vm.code = 2; vm.msg = "标签不能为空"; } else if (uinfo.UserId == 0) { vm.Set(ARTag.unauthorized); } else { using var db = new ContextBase(); if (db.UserInfo.Find(uinfo.UserId).UserMailValid != 1) { vm.code = 1; vm.msg = "请先验证邮箱"; } else { var now = DateTime.Now; mo.Uid = uinfo.UserId; mo.GrId = UniqueTo.LongId().ToString(); mo.GrCreateTime = now; mo.GrUpdateTime = now; mo.GrStatus = 1; mo.GrReadNum = 0; mo.GrLaud = 0; mo.GrMark = 0; mo.GrReplyNum = 0; mo.GrOpen ??= 1; mo.GrTypeName = ParsingTo.JsSafeJoin(mo.GrTypeName); mo.GrTypeValue = ParsingTo.JsSafeJoin(mo.GrTypeValue); mo.GrObject = ParsingTo.JsSafeJoin(mo.GrObject); mo.GrImage = ParsingTo.JsSafeJoin(mo.GrImage); mo.GrAudio = ParsingTo.JsSafeJoin(mo.GrAudio); mo.GrVideo = ParsingTo.JsSafeJoin(mo.GrVideo); mo.GrFile = ParsingTo.JsSafeJoin(mo.GrFile); mo.GrTag = ParsingTo.JsSafeJoin(mo.GrTag); db.GuffRecord.Add(mo); int num = db.SaveChanges(); vm.data = mo.GrId; vm.Set(num > 0); } } } catch (Exception ex) { vm.Set(ex); ConsoleTo.Log(ex); } return(vm); }
public ActionResultVM UpdateUserPhoto(string type, string source) { var vm = new ActionResultVM(); var uinfo = new UserAuthAid(HttpContext).Get(); try { var rootdir = GlobalTo.WebRootPath + "/" + (GlobalTo.GetValue("StaticResource:RootDir").TrimStart('/').TrimEnd('/') + "/"); var path = GlobalTo.GetValue("StaticResource:AvatarPath").TrimEnd('/').TrimStart('/') + '/'; var fullpath = rootdir + path; if (!Directory.Exists(fullpath)) { Directory.CreateDirectory(fullpath); } if (string.IsNullOrWhiteSpace(uinfo.UserPhoto)) { uinfo.UserPhoto = UniqueTo.LongId() + ".jpg"; } var upname = uinfo.UserPhoto.Split('?')[0]; var npnew = upname + "?" + DateTime.Now.ToTimestamp(); switch (type) { case "file": { source = source.Substring(source.LastIndexOf(",") + 1); byte[] bytes = Convert.FromBase64String(source); using var ms = new MemoryStream(bytes); using var bmp = new System.Drawing.Bitmap(ms); var hp = fullpath + upname.Replace(".", "_lg."); bmp.Save(hp, ImageFormat.Jpeg); ImageTo.MinImg(hp, fullpath, upname, 40, 40, "wh"); using (var db = new ContextBase()) { var usermo = db.UserInfo.Find(uinfo.UserId); usermo.UserPhoto = npnew; db.UserInfo.Update(usermo); int num = db.SaveChanges(); if (num > 0) { using var ac = new AccountController(); ac.SetAuth(HttpContext, usermo); } } vm.Set(ARTag.success); } break; case "link": { using var wc = new System.Net.WebClient(); var hp = fullpath + upname.Replace(".", "_lg."); wc.DownloadFile(source, hp); ImageTo.MinImg(hp, fullpath, upname, 40, 40, "wh"); using (var db = new ContextBase()) { var usermo = db.UserInfo.Find(uinfo.UserId); usermo.UserPhoto = npnew; db.UserInfo.Update(usermo); int num = db.SaveChanges(); if (num > 0) { using var ac = new AccountController(); ac.SetAuth(HttpContext, usermo); } } vm.Set(ARTag.success); } break; } } catch (Exception ex) { vm.Set(ex); } return(vm); }
public SharedResultVM Add([FromForm] Domain.GuffRecord mo) { var vm = new SharedResultVM(); try { var uinfo = Apps.LoginService.Get(HttpContext); if (string.IsNullOrWhiteSpace(mo.GrContent) && string.IsNullOrWhiteSpace(mo.GrImage) && string.IsNullOrWhiteSpace(mo.GrAudio) && string.IsNullOrWhiteSpace(mo.GrVideo)) { vm.Code = 1; vm.Msg = "内容不能为空(内容、图片、音频、视频 至少有一项有内容)"; } else if (string.IsNullOrWhiteSpace(mo.GrTag)) { vm.Code = 2; vm.Msg = "标签不能为空"; } else if (uinfo.UserId == 0) { vm.Set(SharedEnum.RTag.unauthorized); } else { vm = Apps.LoginService.CompleteInfoValid(HttpContext); if (vm.Code == 200) { var now = DateTime.Now; mo.Uid = uinfo.UserId; mo.GrId = UniqueTo.LongId().ToString(); mo.GrCreateTime = now; mo.GrUpdateTime = now; mo.GrStatus = 1; mo.GrReadNum = 0; mo.GrLaud = 0; mo.GrMark = 0; mo.GrReplyNum = 0; mo.GrOpen ??= 1; mo.GrTypeName = ParsingTo.JsSafeJoin(mo.GrTypeName); mo.GrTypeValue = ParsingTo.JsSafeJoin(mo.GrTypeValue); mo.GrObject = ParsingTo.JsSafeJoin(mo.GrObject); mo.GrImage = ParsingTo.JsSafeJoin(mo.GrImage); mo.GrAudio = ParsingTo.JsSafeJoin(mo.GrAudio); mo.GrVideo = ParsingTo.JsSafeJoin(mo.GrVideo); mo.GrFile = ParsingTo.JsSafeJoin(mo.GrFile); mo.GrTag = ParsingTo.JsSafeJoin(mo.GrTag); db.GuffRecord.Add(mo); int num = db.SaveChanges(); vm.Data = mo.GrId; vm.Set(num > 0); } } } catch (Exception ex) { vm.Set(ex); Apps.FilterConfigs.WriteLog(HttpContext, ex); } return(vm); }