/// <summary> /// 检索异常日志 /// </summary> /// <returns></returns> public static BaseResponseList <SysExcptionLog> searchLog(VMMsgSearchExceptionLogRequest condtion) { BaseResponseList <SysExcptionLog> result = new BaseResponseList <SysExcptionLog>(); using (var db = new SysModelContainer()) { var r = (from c in db.Db_SysMsgSet.OfType <Db_SysExceptionLog>().AsEnumerable() where (condtion.type == null? true :c.errorCode == condtion.type.GetHashCode()) && (condtion.beginDate == null? true :c.createdOn >= condtion.beginDate) && (condtion.endDate == null? true :c.createdOn <= condtion.endDate) orderby c.Id descending select c.Id ); result.total = r.Count(); if (result.total > 0) { if (condtion.page == 0) { result.rows = r.Select(p => new SysExcptionLog(p)).ToList(); } else { result.rows = r.Skip(condtion.getSkip()).Take(condtion.pageSize).Select(p => new SysExcptionLog(p)).ToList(); } } } return(result); }
/// <summary> /// 保存系统异常 /// </summary> /// <param name="e">异常</param> /// <param name="request">当前信息的请求参数</param> private static void save(Exception e, object request = null) { string condtion = string.Empty; if (request != null) { condtion = JsonConvert.SerializeObject(request); } using (var db = new SysModelContainer()) { Db_SysExceptionLog d = new Db_SysExceptionLog() { condtion = condtion, createdOn = DateTime.Now, message = e.Message, msgType = SysMessageType.异常.GetHashCode(), source = e.Source, stackTrace = e.StackTrace, targetSite = e.TargetSite == null ? null : e.TargetSite.ToString(), errorCode = SysExceptionType.系统.GetHashCode() }; db.Db_SysMsgSet.Add(d); db.SaveChanges(); } }
/// <summary> /// 验证登陆 /// </summary> /// <param name="condtion"></param> /// <returns></returns> public static SysManagerUser checkLogin(ViewModelLoginReqeust condtion) { SysValidata.valiData(condtion); using (var db = new SysModelContainer()) { //如果还没有用户则需要初始化一个第一个管理员 int c = (from x in db.Db_SysUserSet.OfType <Db_ManagerUser>() select x.loginName).Count(); if (c == 0) { create(new ViewModelUserRegisterRequest() { fullName = "管理员", loginname = "admin", role = "admin" }); } var d = db.Db_SysUserSet.OfType <Db_ManagerUser>().SingleOrDefault(p => p.loginName.Equals(condtion.loginName) && p.passWord.ToLower().Equals(condtion.pwd.ToLower()) && !p.isDeleted && !p.isDisabled); if (d == null) { throw new SysException("用户名或密码不正确", condtion); } d.lastLoginTime = DateTime.Now; db.SaveChanges(); SysManagerUser user = new SysManagerUser(condtion.loginName); SysUserLog.saveLoginLog(user.loginName); return(user); } }
/// <summary> /// 创建新的用户 /// </summary> /// <param name="condtion"></param> /// <returns></returns> public static SysManagerUser create(ViewModelUserRegisterRequest condtion) { SysValidata.valiData(condtion); int c = getLoginNameCount(condtion.loginname); if (c > 0) { throw new SysException("登录名已存在", condtion); } using (var db = new SysModelContainer()) { Db_ManagerUser dbuser = new Db_ManagerUser() { createdOn = DateTime.Now, fullName = condtion.fullName, isDeleted = false, isDisabled = false, jobTitle = condtion.jobTitle, loginName = condtion.loginname, mobilePhone = condtion.mobilePhone, passWord = defaultPwd, role = condtion.role }; db.Db_SysUserSet.Add(dbuser); db.SaveChanges(); } SysManagerUser newuser = new SysManagerUser(condtion.loginname); SysUserLog.saveLog(condtion, SysUserLogType.编辑, newuser.loginName); return(newuser); }
/// <summary> /// 保存系统用户日志【用户登录请不要使用该方法】 /// </summary> /// <param name="message">需要保存的日志文本</param> /// <param name="t">类型</param> /// <param name="fkId">关联的ID</param> public static void saveLog(string message, SysUserLogType t, string fkId = null) { if (t != SysUserLogType.登陆) { string loginname = "admin"; IIdentity user = HttpContext.Current.User.Identity; if (user.IsAuthenticated) { loginname = user.Name; } using (var db = new SysModelContainer()) { Db_SysUserLog log = new Db_SysUserLog() { createdOn = DateTime.Now, Db_SysUser_loginName = loginname, fkId = fkId, logType = t.GetHashCode(), msgType = SysMessageType.日志.GetHashCode(), message = message, ip = HttpContext.Current.Request.UserHostAddress, device = HttpContext.Current.Request.UserAgent }; db.Db_SysMsgSet.Add(log); db.SaveChanges(); } } }
/// <summary> /// 检索日志 /// </summary> /// <param name="condtion"></param> /// <returns></returns> public static BaseResponseList <SysUserLog> searchLog(ViewModelMsgSearchUserLogReqeust condtion) { BaseResponseList <SysUserLog> result = new BaseResponseList <SysUserLog>(); using (var db = new SysModelContainer()) { var r = (from c in db.Db_SysMsgSet.OfType <Db_SysUserLog>().AsEnumerable() where ((string.IsNullOrEmpty(condtion.loginName) && string.IsNullOrEmpty(condtion.fkid))? true :( (string.IsNullOrEmpty(condtion.loginName)?false:c.Db_SysUser_loginName == condtion.loginName) || (string.IsNullOrEmpty(condtion.fkid) ? false : c.fkId == condtion.fkid) )) && (condtion.logType == null ? true : c.logType == condtion.logType.GetHashCode()) orderby c.createdOn descending select c.Id); result.total = r.Count(); if (result.total > 0) { if (condtion.page == 0) { result.rows = r.Select(p => new SysUserLog(p)).ToList(); } else { result.rows = r.Skip(condtion.getSkip()).Take(condtion.pageSize).Select(p => new SysUserLog(p)).ToList(); } } } return(result); }
/// <summary> /// 检索用户 /// </summary> /// <param name="condtion"></param> /// <returns></returns> internal static BaseResponseList <SysManagerUser> searchUserList(ViewModelSearchUserBaseRequest condtion) { BaseResponseList <SysManagerUser> res = new BaseResponseList <SysManagerUser>(); using (var db = new SysModelContainer()) { var r = (from x in db.Db_SysUserSet.OfType <Db_ManagerUser>().AsEnumerable() where !x.isDeleted && (condtion.roles.Count == 0 ? true : condtion.roles.Contains(x.role)) && (condtion.loginName.Count == 0 ? true : condtion.loginName.Contains(x.loginName)) && (string.IsNullOrEmpty(condtion.q) ? true : (x.loginName.Contains(condtion.q) || x.fullName.Contains(condtion.q) || (string.IsNullOrEmpty(x.mobilePhone) ? false : x.mobilePhone.Contains(condtion.q)))) select new { x.loginName, x.createdOn }); res.total = r.Count(); if (res.total > 0) { r = r.OrderByDescending(p => p.createdOn); if (condtion.page == 0) { res.rows = r.Select(p => new SysManagerUser(p.loginName)).ToList(); } else { res.rows = r.Skip(condtion.getSkip()).Take(condtion.pageSize).Select(p => new SysManagerUser(p.loginName)).ToList(); } } } return(res); }
/// <summary> /// 标记为删除状态 /// </summary> public void delete() { using (var db = new SysModelContainer()) { var d = db.Db_SysTreeSet.Single(p => p.Id == this.Id); d.isDeleted = true; db.SaveChanges(); } }
/// <summary> /// 获取用户信息 /// </summary> /// <param name="loginname"></param> protected override void getInfo(string loginname) { using (var db = new SysModelContainer()) { var d = db.Db_SysUserSet.OfType <Db_ManagerUser>().Single(p => p.loginName == loginname); setUserInfo(d); base.getInfo(loginname); } }
/// <summary> /// 在数据库中修改密码 /// </summary> protected void changePwd(string pwd) { using (var db = new SysModelContainer()) { var d = db.Db_SysUserSet.Single(p => p.loginName.Equals(this.loginName)); d.passWord = pwd; db.SaveChanges(); } }
/// <summary> /// 删除用户 /// </summary> /// <returns>返回被删除的用户对象</returns> public void delete() { using (var db = new SysModelContainer()) { var d = db.Db_SysUserSet.Single(p => p.loginName == loginName); d.isDeleted = true; db.SaveChanges(); SysUserLog.saveLog("删除用户:" + this.ToString(), SysUserLogType.除, this.loginName); } }
/// <summary> /// 使用ID构造消息 /// </summary> /// <param name="id"></param> public SysMsg(long id) { using (var db = new SysModelContainer()) { var d = db.Db_SysMsgSet.Single(p => p.Id == id); this.Id = d.Id; this.createdOn = d.createdOn; this.message = d.message; this.msgType = (SysMessageType)d.msgType; } }
private void setInfo() { using (var db = new SysModelContainer()) { var d = db.Db_SysTreeSet.OfType <Db_CatTree>().Single(p => p.Id == Id); this.name = d.name; this.fun = d.fun; this.sort = d.sort; } }
/// <summary> /// 保存操作 /// </summary> /// <returns></returns> private void save() { using (var db = new SysModelContainer()) { var d = db.Db_SysTreeSet.OfType <Db_CatTree>().Single(p => p.Id == this.Id); d.name = this.name; d.fun = this.fun; d.parentId = this._parentId; d.sort = this.sort; db.SaveChanges(); } }
/// <summary> /// 使用ID构造消息 /// </summary> /// <param name="id"></param> public SysExcptionLog(long id) : base(id) { using (var db = new SysModelContainer()) { var d = db.Db_SysMsgSet.OfType <Db_SysExceptionLog>().Single(p => p.Id == id); this.errorType = (SysExceptionType)d.errorCode.GetHashCode(); this.condtion = d.condtion; this.source = d.source; this.stackTrace = d.stackTrace; this.targetSite = d.targetSite; } }
/// <summary> /// 使用ID构造消息 /// </summary> /// <param name="id"></param> public SysUserLog(long id) : base(id) { using (var db = new SysModelContainer()) { var d = db.Db_SysMsgSet.OfType <Db_SysUserLog>().Single(p => p.Id == id); this.device = d.device; this.ip = d.ip; this.fkId = d.fkId; this.logType = (SysUserLogType)d.logType; this.loginName = d.Db_SysUser_loginName; } this.userInfo = new SysUser(this.loginName); }
/// <summary> /// 禁用或者恢复禁用 /// </summary> /// <param name="condtion"></param> public void setDisable(ViewModelSetUserDisable condtion) { using (var db = new SysModelContainer()) { var user = db.Db_SysUserSet.Single(p => p.loginName.Equals(this.loginName)); user.isDisabled = condtion.isDisabled; db.SaveChanges(); StringBuilder sb = new StringBuilder(); sb.Append(condtion.isDisabled ? "设置禁用:" : "恢复禁用:"); sb.AppendFormat("{0}[备注:{1}]", this.ToString(), condtion.describe); SysUserLog.saveLog(sb.ToString(), SysUserLogType.编辑, this.loginName); } }
/// <summary> /// 获取当前的路径 /// </summary> private void getNodePath(string pId) { if (!string.IsNullOrEmpty(pId)) { this.rootId = pId; using (var db = new SysModelContainer()) { var d = db.Db_SysTreeSet.Single(p => p.Id == pId); this.path = "/" + d.Id + this.path; getNodePath(d.parentId); } } }
/// <summary> /// 根据系统功能标示获取分类树集合(树形) /// </summary> /// <param name="fun">系统功能名称</param> /// <returns></returns> public static List <SysCatTree> getTreeList(string fun) { List <SysCatTree> result = new List <SysCatTree>(); using (var db = new SysModelContainer()) { result = (from c in db.Db_SysTreeSet.OfType <Db_CatTree>().AsEnumerable() where (c.parentId == null || c.parentId == "") && (c.fun == fun) && (!c.isDeleted) orderby c.sort descending, c.name ascending select new SysCatTree(c.Id, true) ).ToList(); } return(result); }
/// <summary> /// 修改后台用户的信息 /// </summary> /// <param name="condtion"></param> public SysManagerUser saveInfo(ViewModelUserEditReqeust condtion) { SysValidata.valiData(condtion); using (var db = new SysModelContainer()) { var d = db.Db_SysUserSet.OfType <Db_ManagerUser>().Single(p => p.loginName.Equals(this.loginName)); d.fullName = condtion.fullName; d.jobTitle = condtion.jobTitle; d.mobilePhone = condtion.mobilePhone; d.role = condtion.role; db.SaveChanges(); } SysUserLog.saveLog(condtion, SysUserLogType.编辑, this.loginName); getInfo(this.loginName); return(this); }
/// <summary> /// 设置一个新密码 /// </summary> public void reSetNewPwd(ViewModelChangePwdRequest condtion) { SysValidata.valiData(condtion); using (var db = new SysModelContainer()) { var d = db.Db_SysUserSet.Single(p => p.loginName.Equals(this.loginName)); if (d.passWord.ToLower().Equals(condtion.oldPwd.ToLower())) { changePwd(condtion.newPwd); SysUserLog.saveLog("用户设置了新的密码", SysUserLogType.编辑); } else { throw new SysException("旧密码不正确", condtion); } } }
/// <summary> /// 保存用户登录日志 /// </summary> /// <param name="loginName"></param> public static void saveLoginLog(string loginName) { using (var db = new SysModelContainer()) { Db_SysUserLog log = new Db_SysUserLog() { createdOn = DateTime.Now, Db_SysUser_loginName = loginName, logType = SysUserLogType.登陆.GetHashCode(), msgType = SysMessageType.日志.GetHashCode(), message = "用户登录", ip = HttpContext.Current.Request.UserHostAddress, device = HttpContext.Current.Request.UserAgent }; db.Db_SysMsgSet.Add(log); db.SaveChanges(); } }
/// <summary> /// 保存自定义的异常 /// </summary> private void save() { using (var db = new SysModelContainer()) { Db_SysExceptionLog d = new Db_SysExceptionLog() { condtion = this.condtion, createdOn = DateTime.Now, message = this.Message, msgType = SysMessageType.异常.GetHashCode(), source = this.Source, stackTrace = this.StackTrace, targetSite = this.TargetSite == null? null :this.TargetSite.ToString(), errorCode = SysExceptionType.自定义.GetHashCode() }; db.Db_SysMsgSet.Add(d); db.SaveChanges(); } }
/// <summary> /// 创建/编辑 /// </summary> /// <param name="condtion"></param> /// <returns></returns> public static SysCatTree edit(VMTreeEditCatTreeRequest condtion) { SysValidata.valiData(condtion);//验证请求 //自定义验证当添加根节点时 参数中的 fun必填 if (string.IsNullOrEmpty(condtion._parentId) && string.IsNullOrEmpty(condtion.fun)) { throw new SysException("添加/编辑根节点时,参数fun必填", condtion); } if (string.IsNullOrEmpty(condtion.Id)) { //新增 using (var db = new SysModelContainer()) { Db_CatTree d = new Db_CatTree() { fun = condtion.fun, createdOn = DateTime.Now, Id = SysHelp.getNewId(), name = condtion.name, parentId = condtion._parentId, isDeleted = false, sort = condtion.sort }; Db_SysTree newrow = db.Db_SysTreeSet.Add(d); db.SaveChanges(); SysCatTree newtree = new SysCatTree(newrow.Id); return(newtree); } } else { //编辑 SysCatTree tree = new SysCatTree(condtion.Id, false); tree.name = condtion.name; tree._parentId = condtion._parentId; tree.fun = condtion.fun; tree.sort = condtion.sort; tree.save(); tree = new SysCatTree(condtion.Id, false); return(tree); } }
private void setInfo() { using (var db = new SysModelContainer()) { var d = db.Db_SysTreeSet.Single(p => p.Id == Id); this.Id = d.Id; this._parentId = d.parentId; this.createOn = d.createdOn; this.isDeleted = d.isDeleted; } if (!string.IsNullOrEmpty(this._parentId)) { this.parent = getParent(this); } //设置当前节点的路径表达形式 this.path = "/" + this.Id + this.path; this.rootId = this.Id; getNodePath(this._parentId); }
/// <summary> /// 递归获取子节点 /// </summary> /// <param name="tree">父节点</param> /// <returns></returns> protected override List <SysCatTree> getChild(SysTree <SysCatTree> tree) { if (nodeDep < maxDep || maxDep == 0) { int dep = nodeDep + 1; using (var db = new SysModelContainer()) { List <SysCatTree> child = (from c in db.Db_SysTreeSet.OfType <Db_CatTree>().AsEnumerable() where (c.parentId == tree.Id) && (!c.isDeleted) orderby c.sort descending, c.name ascending select new SysCatTree(c.Id, maxDep, dep)).ToList(); return(child); } } else { return(new List <SysCatTree>()); } }
/// <summary> /// 递归获取子节点ID的集合 /// </summary> /// <param name="pId">父ID</param> /// <param name="dep">当前递归深度</param> private void getChildIdList(string pId, int dep) { if (dep < maxDep || maxDep == 0) { using (var db = new SysModelContainer()) { var crows = (from c in db.Db_SysTreeSet where c.parentId == pId select c.Id ).ToList(); if (crows.Count > 0) { int d = dep + 1; this.childrenIdList.AddRange(crows); foreach (string row in crows) { getChildIdList(row, d); } } } } }
/// <summary> /// 获取用户信息 /// </summary> /// <param name="loginname"></param> protected virtual void getInfo(string loginname) { using (var db = new SysModelContainer()) { var d = db.Db_SysUserSet.Single(p => p.loginName == loginname); setUserInfo(d); //获取角色 this.roleInfo = SysRoles.sysRoles.Single(p => p.role.Equals(d.role)); SysRoles userrole = SysRoles.sysRoles.Single(p => p.role.Equals(this.role)); string showName = string.Empty; if (userrole.cat == 0) { //后台 showName = db.Db_SysUserSet.OfType <Db_ManagerUser>().Single(p => p.loginName == this.loginName).fullName; } else { //其他,会员 } this.showName = string.Format("{0}[{1},{2}]", showName, this.roleInfo.name, this.loginName); } }
/// <summary> /// 检索系统消息 /// </summary> /// <param name="condtion"></param> /// <returns></returns> public static BaseResponseList <SysMsg> searchLog(VMMsgSearchMsgRequest condtion) { BaseResponseList <SysMsg> result = new BaseResponseList <SysMsg>(); using (var db = new SysModelContainer()) { var r = (from c in db.Db_SysMsgSet.AsEnumerable() where (condtion.msgType.Count == 0 ? true : condtion.msgType.Contains(c.msgType)) orderby c.Id descending select c.Id); result.total = r.Count(); if (result.total > 0) { if (condtion.page == 0) { result.rows = r.Select(p => new SysMsg(p)).ToList(); } else { result.rows = r.Skip(condtion.getSkip()).Take(condtion.pageSize).Select(p => new SysMsg(p)).ToList(); } } } return(result); }
/// <summary> /// 获取登录名在数据库中出现的次数 /// </summary> /// <param name="lgname"></param> /// <returns></returns> public static int getLoginNameCount(string lgname) { using (var db = new SysModelContainer()) { return((from c in db.Db_SysUserSet where c.loginName.Equals(lgname) select c.loginName).Count()); } }