using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Central.Control.Domain; using MES.Production.Service.IService; using Ant.Service.Common; using System.Collections; using Ant.Service.Common.Enums; using ChangFa.Machinery.WebPage.Controllers; using Ant.ORM; using Ant.Data; using MES.Production.Entity; using Ant.Service.Utility; using MES.Production.Entity.Entity; using MES.Production.Entity.Enum; using MES.Production.Service.ServiceImp; using JsonHelper = Ant.Service.Common.JsonHelper; using MES.Production.Entity.Model; namespace ChangFa.Machinery.WebPage.Areas.SysManage.Controllers { /// /// 用户管理控制器 /// public class UserController : BaseController { #region 声明容器 /// /// 用户部门 /// IUserDepartmentManage UserDepartmentManage { get; set; } /// /// 用户岗位 /// IPostUserManage PostUserManage { get; set; } /// /// 部门 /// IDepartmentManage DepartmentManage { get; set; } /// /// 岗位 /// IPostManage PostManage { get; set; } /// /// 用户信息 /// IUserInfoManage UserInfoManage { get; set; } /// /// 字典编码 /// ICodeManage CodeManage { get; set; } /// /// 系统日子 /// ISyslogManage SyslogManage { get; set; } /// /// 常用联系人 /// IBeUserManage BeUserManage { get; set; } /// /// 角色管理 /// private IRoleManage RoleManage = new RoleManage(); #endregion #region 用户基本信息 /// /// 加载导航主页 获取所有部门 /// [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "View")] public ActionResult Home() { return View(); } /// /// 加载列表 /// [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "View")] public ActionResult Index() { try { #region 处理查询参数 string dptId = Request.QueryString["dptid"]; string postid = Request.QueryString["postid"]; #endregion #region 加载列表 //主列表 var result = BindList(dptId, postid); //搜索关键词 ViewBag.Search = base.keywords; //List items = new List(); //items.Add(new SelectListItem { Text = "请选择", Value = "" }); //using (AntORM orm = new AntORM()) //{ // orm.db = DataAccessFactory.CreateDataConnection("CyclingItem"); // RequestModel res = new RequestModel // { // newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "查询学校" }, // }; // var result1 = orm.Queryable().ToList(res); // foreach (var item in result1.ResultModel) // { // items.Add(new SelectListItem { Text = item.Name, Value = item.ID.ToString() }); // } //} ////部门 //ViewBag.dpt = items ?? new List(); //岗位 ViewData["post"] = this.PostManage.LoadAll(null).OrderBy(p => p.SHOWORDER).ToList(); ViewData["postid"] = postid; ViewData["dptid"] = dptId; #endregion return View(result); } catch (Exception e) { WriteLog(enumOperator.Select, "加载用户列表:", e); throw e.InnerException; } } /// /// /// /// [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "View")] public ActionResult ThreePacksList() { try { #region 处理查询参数 string dptId = Request.QueryString["FK_DPTID"]; string postid = Request.QueryString["postid"]; #endregion #region 加载列表 int postnum = -1; if (!Request.QueryString["postid"].IsEmpty()) { postnum = postid.ToInt32(); } //主列表 var result = BindUserList(dptId, 6); //搜索关键词 ViewBag.Search = base.keywords; //部门 ViewBag.dpt = this.DepartmentManage.Get(p => p.ID == dptId) ?? new SYS_DISTRIBUTORS(); //岗位 ViewData["post"] = this.PostManage.LoadAll(null).OrderBy(p => p.SHOWORDER).ToList(); ViewData["postid"] = 6; ViewData["dptid"] = dptId; ViewData["Department"] = this.DepartmentManage.GetDepartmentByDetail(); var list = this.CodeManage.GetCode("POSTTYPE"); ViewData["postType"] = list; #endregion return View(result); } catch (Exception e) { WriteLog(enumOperator.Select, "加载用户列表:", e); throw e.InnerException; } } /// /// /// /// [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "View")] public ActionResult WarehouseList() { try { #region 处理查询参数 string dptId = Request.QueryString["FK_DPTID"]; string postid = Request.QueryString["postid"]; #endregion #region 加载列表 int postnum = -1; if (!Request.QueryString["postid"].IsEmpty()) { postnum = postid.ToInt32(); } //主列表 var result = BindUserList(dptId, 4); //搜索关键词 ViewBag.Search = base.keywords; //部门 ViewBag.dpt = this.DepartmentManage.Get(p => p.ID == dptId) ?? new SYS_DISTRIBUTORS(); //岗位 ViewData["post"] = this.PostManage.LoadAll(null).OrderBy(p => p.SHOWORDER).ToList(); ViewData["postid"] = 4; ViewData["dptid"] = dptId; ViewData["Department"] = this.DepartmentManage.GetDepartmentByDetail(); var list = this.CodeManage.GetCode("POSTTYPE"); ViewData["postType"] = list; #endregion return View(result); } catch (Exception e) { WriteLog(enumOperator.Select, "加载用户列表:", e); throw e.InnerException; } } [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "View")] public ActionResult UserList() { try { #region 处理查询参数 string dptId = Request.QueryString["FK_DPTID"]; string postid = Request.QueryString["postid"]; #endregion #region 加载列表 int postnum = -1; if (!Request.QueryString["postid"].IsEmpty()) { postnum = postid.ToInt32(); } //主列表 var result = BindUserList(dptId, 3); //搜索关键词 ViewBag.Search = base.keywords; //部门 ViewBag.dpt = this.DepartmentManage.Get(p => p.ID == dptId) ?? new SYS_DISTRIBUTORS(); //岗位 ViewData["post"] = this.PostManage.LoadAll(null).OrderBy(p => p.SHOWORDER).ToList(); ViewData["postid"] = 3; ViewData["dptid"] = dptId; ViewData["Department"] = this.DepartmentManage.GetDepartmentByDetail(); var list = this.CodeManage.GetCode("POSTTYPE"); ViewData["postType"] = list; #endregion return View(result); } catch (Exception e) { WriteLog(enumOperator.Select, "加载用户列表:", e); throw e.InnerException; } } /// /// /// /// [UserAuthorizeAttribute(ModuleAlias = "AgriculturalList", OperaAction = "View")] public ActionResult Agricultural() { try { #region 处理查询参数 string dptId = Request.QueryString["dptid"]; string postid = Request.QueryString["postid"]; //string keyword = Request.QueryString["Search"]; #endregion #region 加载列表 //主列表 var result = AgriculturalBindList(dptId, postid, 1); //搜索关键词 ViewBag.Search = base.keywords; //部门 ViewBag.dpt = this.DepartmentManage.Get(p => p.ID == dptId) ?? new SYS_DISTRIBUTORS(); //岗位 ViewData["post"] = this.PostManage.LoadAll(null).OrderBy(p => p.SHOWORDER).ToList(); ViewData["postid"] = postid; ViewData["Department"] = this.DepartmentManage.GetDepartmentByDetail(); ViewData["dptid"] = dptId; #endregion return View(result); } catch (Exception e) { WriteLog(enumOperator.Select, "加载用户列表:", e); throw e.InnerException; } } /// /// 加载用户详情信息(基本) /// [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "Detail")] public ActionResult UserDetail(int? id) { string postid = Request.QueryString["postid"]; try { var _entity = UserManage.Get(p => p.ID == id) ?? new SYS_USER(); if (id != null && id > 0) { postid = _entity.USERTYPE.ToString(); int newid = Convert.ToInt32(id); ViewData["dptlist"] = this.UserDepartmentManage.GetDptListByUserId(newid); if (_entity.SYS_POST_USER.Count > 0) { ViewData["postlist"] = this.PostUserManage.GetPostNameBySysPostUser(_entity.SYS_POST_USER); } } else { _entity.USERTYPE = postid.ToInt32(); _entity.ISCANLOGIN = false; } //ViewData["postType"] = this.CodeManage.GetCode("POSTTYPE"); /// 用户角色 //ViewData["postType"] = ViewData["postid"] = postid; ViewData["levels"] = this.CodeManage.LoadAll(p => p.CODETYPE == "YGJB").ToList(); ViewBag.dpt = this.DepartmentManage.GetDepartmentByDetail(); return View(_entity); } catch (Exception e) { WriteLog(enumOperator.Select, "加载用户详情发生错误:", e); throw e.InnerException; } } /// /// 加载用户详情信息(基本) /// [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "Detail")] public ActionResult Detail(int? id) { try { var _entity = UserManage.Get(p => p.ID == id) ?? new SYS_USER(); if (id != null && id > 0) { int newid = Convert.ToInt32(id); ViewData["dptlist"] = this.UserDepartmentManage.GetDptListByUserId(newid); if (_entity.SYS_POST_USER.Count > 0) { ViewData["postlist"] = this.PostUserManage.GetPostNameBySysPostUser(_entity.SYS_POST_USER); } } else { _entity.ISCANLOGIN = false; } //ViewData["postType"] = this.CodeManage.GetCode("POSTTYPE"); var query = this.RoleManage.LoadAll(null).ToList(); ViewData["postType"] = query; ViewData["levels"] = this.CodeManage.LoadAll(p => p.CODETYPE == "YGJB").ToList(); ViewBag.dpt = this.DepartmentManage.GetDepartmentByDetail(); return View(_entity); } catch (Exception e) { WriteLog(enumOperator.Select, "加载用户详情发生错误:", e); throw e.InnerException; } } /// /// 保存人员基本信息 /// [ValidateInput(false)] [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "Add,Edit")] public ActionResult UserSave(SYS_USER entity) { bool isEdit = false; JsonHelper json = new JsonHelper() { Msg = "保存成功", Status = "n" }; try { if (entity != null) { string iscanlogin = Request.Form["iscanlogin"]; entity.ISCANLOGIN = iscanlogin == "on" ? true : false; //兼职部门 //string dptId = Request.Form["hiddpt"]; var _entity = new SYS_USER(); if (entity.ID <= 0) //添加 { entity.CREATEDATE = DateTime.Now; entity.CREATEPER = this.CurrentUser.Name; entity.UPDATEDATE = DateTime.Now; entity.UPDATEUSER = this.CurrentUser.Name; var pwd = PasswordUtils.MD5_Encrypt("111111", 32); entity.PASSWORD = pwd; entity.PINYIN1 = ConvertHzToPz.Convert(entity.NAME).ToLower(); entity.PINYIN2 = ConvertHzToPz.ConvertFirst(entity.NAME).ToLower(); entity.USERTYPE = Request.Form["userpostid"].ToInt32(); entity.ACCOUNT = entity.PHONE; _entity = entity; } else //修改 { _entity = this.UserManage.Get(p => p.ID == entity.ID); entity.CREATEDATE = _entity.CREATEDATE; entity.CREATEPER = _entity.CREATEPER; entity.FACE_IMG = _entity.FACE_IMG; entity.PASSWORD = _entity.PASSWORD; entity.UPDATEUSER = this.CurrentUser.Name; entity.UPDATEDATE = DateTime.Now; entity.ACCOUNT = entity.PHONE; if (!_entity.NAME.Equals(entity.NAME)) { entity.PINYIN1 = ConvertHzToPz.Convert(entity.NAME).ToLower(); entity.PINYIN2 = ConvertHzToPz.ConvertFirst(entity.NAME).ToLower(); } else { entity.PINYIN1 = _entity.PINYIN1; entity.PINYIN2 = _entity.PINYIN2; } _entity = entity; _entity.USERTYPE = Request.Form["userpostid"].ToInt32(); isEdit = true; } //检测此用户名是否重复 if (!this.UserManage.IsExist(p => p.ACCOUNT.Equals(_entity.ACCOUNT) && p.ID != _entity.ID)) { var en = this.UserManage.SaveOrUpdateReturn(_entity, isEdit); if (en.ID.IfNotNull() && !isEdit) { EntSYS_USER_ROLE roleMod = new EntSYS_USER_ROLE(); using (AntORM orm = new AntORM()) { orm.db = DataAccessFactory.CreateDataConnection("CyclingItem"); RequestModel res = new RequestModel { newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "获取公告信息" } }; var usertype = Request.Form["userpostid"].ToInt32(); int ROLEID = 0; switch ((PostType)usertype) { case PostType.SalesClerk: { ROLEID = 2; } break; case PostType.Distributors: { ROLEID = 3; } break; case PostType.Warehouse: { ROLEID = 4; } break; case PostType.ThreePacksStaff: { ROLEID = 6; } break; case PostType.MarketingAdmin: { ROLEID = 7; } break; } roleMod.FK_ROLEID = ROLEID; roleMod.FK_USERID = en.ID.ToInt32(); orm.Save(roleMod, res); } } //if (this.UserManage.SaveOrUpdate(_entity, isEdit)) //{ // //构造部门人员关系 // //this.UserDepartmentManage.SaveUserDpt(_entity.ID, dptId.TrimEnd(',')); // //岗位 // //string postId = Request.Form["hidpost"]; // //构造岗位人员关系 // // this.PostUserManage.SavePostUser(_entity.ID, postId.TrimEnd(',')); //} json.Status = "y"; } else { json.Msg = "用户名已被使用,请修改后再提交!"; } } else { json.Msg = "未找到要操作的用户记录"; } if (isEdit) { WriteLog(enumOperator.Edit, "修改用户,结果:" + json.Msg, enumLog4net.INFO); } else { WriteLog(enumOperator.Add, "添加用户,结果:" + json.Msg, enumLog4net.INFO); } } catch (Exception e) { json.Msg = "保存人员信息发生内部错误!"; WriteLog(enumOperator.None, "保存用户错误:", e); } return Json(json); } /// /// 保存人员基本信息 /// [ValidateInput(false)] [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "Add,Edit")] public ActionResult Save(SYS_USER entity) { bool isEdit = false; JsonHelper json = new JsonHelper() { Msg = "保存成功", Status = "n" }; try { if (entity != null) { string iscanlogin = Request.Form["iscanlogin"]; entity.ISCANLOGIN = iscanlogin == "on" ? true : false; //兼职部门 //string dptId = Request.Form["hiddpt"]; var _entity = new SYS_USER(); if (entity.ID <= 0) //添加 { entity.CREATEDATE = DateTime.Now; entity.CREATEPER = this.CurrentUser.Name; entity.UPDATEDATE = DateTime.Now; entity.UPDATEUSER = this.CurrentUser.Name; var pwd = PasswordUtils.MD5_Encrypt("111111", 32); entity.PASSWORD = pwd; entity.PINYIN1 = ConvertHzToPz.Convert(entity.NAME).ToLower(); entity.PINYIN2 = ConvertHzToPz.ConvertFirst(entity.NAME).ToLower(); entity.USERTYPE = Request.Form["postid"].ToInt32(); _entity = entity; } else //修改 { _entity = this.UserManage.Get(p => p.ID == entity.ID); entity.CREATEDATE = _entity.CREATEDATE; entity.CREATEPER = _entity.CREATEPER; entity.FACE_IMG = _entity.FACE_IMG; entity.PASSWORD = _entity.PASSWORD; entity.UPDATEUSER = this.CurrentUser.Name; entity.UPDATEDATE = DateTime.Now; if (!_entity.NAME.Equals(entity.NAME)) { entity.PINYIN1 = ConvertHzToPz.Convert(entity.NAME).ToLower(); entity.PINYIN2 = ConvertHzToPz.ConvertFirst(entity.NAME).ToLower(); } else { entity.PINYIN1 = _entity.PINYIN1; entity.PINYIN2 = _entity.PINYIN2; } _entity = entity; _entity.USERTYPE = Request.Form["postid"].ToInt32(); isEdit = true; } //检测此用户名是否重复 if (!this.UserManage.IsExist(p => p.ACCOUNT.Equals(_entity.ACCOUNT) && p.ID != _entity.ID)) { var en = this.UserManage.SaveOrUpdateReturn(_entity, isEdit); if (en.ID.IfNotNull()) { } //if (this.UserManage.SaveOrUpdateReturn(_entity, isEdit)) //{ //构造部门人员关系 //this.UserDepartmentManage.SaveUserDpt(_entity.ID, dptId.TrimEnd(',')); //岗位 //string postId = Request.Form["hidpost"]; //构造岗位人员关系 // this.PostUserManage.SavePostUser(_entity.ID, postId.TrimEnd(',')); //} json.Status = "y"; } else { json.Msg = "用户名已被使用,请修改后再提交!"; } } else { json.Msg = "未找到要操作的用户记录"; } if (isEdit) { WriteLog(enumOperator.Edit, "修改用户,结果:" + json.Msg, enumLog4net.INFO); } else { WriteLog(enumOperator.Add, "添加用户,结果:" + json.Msg, enumLog4net.INFO); } } catch (Exception e) { json.Msg = "保存人员信息发生内部错误!"; WriteLog(enumOperator.None, "保存用户错误:", e); } return Json(json); } /// /// 方法注解:删除用户 /// 验证规则:1、超级管理员不能删除 /// 2、当前登录用户不能删除 /// 3、正常状态用户不能删除 /// 删除原则:1、删除用户档案 /// 2、删除用户角色关系 /// 3、删除用户权限关系 /// 4、删除用户岗位关系 /// 5、删除用户部门关系 /// 6、删除用户 /// [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "Remove")] public ActionResult Delete(string idList) { JsonHelper json = new JsonHelper() { Status = "n", Msg = "删除用户成功" }; try { //是否为空 if (string.IsNullOrEmpty(idList)) { json.Msg = "未找到要删除的用户"; return Json(json); } string[] id = idList.Trim(',').Split(','); for (int i = 0; i < id.Length; i++) { int userId = int.Parse(id[i]); if (this.UserManage.IsAdmin(userId)) { json.Msg = "被删除用户存在超级管理员,不能删除!"; WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR); return Json(json); } if (this.CurrentUser.Id == userId) { json.Msg = "当前登录用户,不能删除!"; WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR); return Json(json); } if (this.UserManage.Get(p => p.ID == userId).ISCANLOGIN == false) { json.Msg = "用户未锁定,不能删除!"; WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR); return Json(json); } this.UserManage.Remove(userId); json.Status = "y"; WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.WARN); } } catch (Exception e) { json.Msg = "删除用户发生内部错误!"; WriteLog(enumOperator.Remove, "删除用户:", e); } return Json(json); } /// /// 方法注解:删除用户 /// 验证规则:1、超级管理员不能删除 /// 2、当前登录用户不能删除 /// 3、正常状态用户不能删除 /// 删除原则:1、删除用户档案 /// 2、删除用户角色关系 /// 3、删除用户权限关系 /// 4、删除用户岗位关系 /// 5、删除用户部门关系 /// 6、删除用户 /// [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "Remove")] public ActionResult UserDelete(string idList) { JsonHelper json = new JsonHelper() { Status = "n", Msg = "删除用户成功" }; try { //是否为空 if (string.IsNullOrEmpty(idList)) { json.Msg = "未找到要删除的用户"; return Json(json); } string[] id = idList.Trim(',').Split(','); for (int i = 0; i < id.Length; i++) { int userId = int.Parse(id[i]); if (this.UserManage.IsAdmin(userId)) { json.Msg = "被删除用户存在超级管理员,不能删除!"; WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR); return Json(json); } if (this.CurrentUser.Id == userId) { json.Msg = "当前登录用户,不能删除!"; WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR); return Json(json); } //if (this.UserManage.Get(p => p.ID == userId).ISCANLOGIN == false) //{ // json.Msg = "用户未锁定,不能删除!"; // WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR); // return Json(json); //} this.UserManage.Remove(userId); json.Status = "y"; WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.WARN); } } catch (Exception e) { json.Msg = "删除用户发生内部错误!"; WriteLog(enumOperator.Remove, "删除用户:", e); } return Json(json); } /// /// 方法描述:根据传入的用户编号重置当前用户密码 /// 创建标识:add by 季健国 2013-8-16 9:10 /// /// 用户编号 /// [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "PwdReset")] public ActionResult ResetPwd(string Id) { JsonHelper json = new JsonHelper() { Status = "n", Msg = "操作成功" }; try { //校验用户编号是否为空 if (string.IsNullOrEmpty(Id)) { json.Msg = "校验失败,用户编号不能为空"; WriteLog(enumOperator.Edit, "重置当前用户密码:" + json.Msg, enumLog4net.ERROR); return Json(json); } int newid = int.Parse(Id); var pwd = PasswordUtils.MD5_Encrypt("111111", 32); var _user = UserManage.Get(p => p.ID == newid); Ent_SYS_USER user = new Ent_SYS_USER(); user.ID = newid; user.PASSWORD = pwd; using (AntORM orm = new AntORM()) { orm.db = DataAccessFactory.CreateDataConnection("CyclingItem"); RequestModel res = new RequestModel(); res.newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "获取用户信息" }; var reslut = orm.UpdateById(user, res); if (reslut.IsSuccess) { json.Status = "y"; WriteLog(enumOperator.Edit, "重置当前用户密码:" + json.Msg, enumLog4net.INFO); } else { json.Msg = "初始密码失败"; WriteLog(enumOperator.Edit, "重置当前用户密码:" + json.Msg, enumLog4net.INFO); } } //_user.PASSWORD = pwd; //UserManage.Update(_user); } catch (Exception e) { json.Msg = "操作失败"; WriteLog(enumOperator.Edit, "重置当前用户密码:", e); } return Json(json); } #endregion #region 人员档案 /// /// 加载人员档案 /// [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "UserInfo")] public ActionResult UserInfo(int? id) { var entity = new Ent_SYS_USERINFO(); try { string path = Request.QueryString["path"]; using (AntORM orm = new AntORM()) { orm.db = DataAccessFactory.CreateDataConnection("CyclingItem"); RequestModel res = new RequestModel(); res.newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "获取用户信息" }; if (string.IsNullOrEmpty(path)) { var reslut = orm.Queryable().Where(p => p.USERID == id).FirstOrDefault(res); if (reslut.IsSuccess) { entity = reslut.ResultModel; } ViewBag.user = this.UserManage.Get(p => p.ID == id) ?? new SYS_USER(); } else { if (path == "home") { var reslut = orm.Queryable().Where(p => p.USERID == CurrentUser.Id).FirstOrDefault(res); if (reslut.IsSuccess) { entity = reslut.ResultModel; } ViewBag.user = this.UserManage.Get(p => p.ID == CurrentUser.Id) ?? new SYS_USER(); ViewData["opera"] = "home"; } } } #region 下拉框 Dictionary dic = ClsDic.DicCodeType; var dictype = this.CodeManage.GetDicType(); //岗位 //string gw = dic["在岗状态"]; //ViewData["gangwei"] = dictype.Where(p => p.CODETYPE == gw).ToList(); ////婚姻状况 //string hyzk = dic["婚姻状况"]; //ViewData["hunyin"] = dictype.Where(p => p.CODETYPE == hyzk).ToList(); ////政治面貌 //string zzmm = dic["政治面貌"]; //ViewData["zzmm"] = dictype.Where(p => p.CODETYPE == zzmm).ToList(); ////民族 //string mz = dic["民族"]; //ViewData["mz"] = dictype.Where(p => p.CODETYPE == mz).ToList(); ////职业资格 //string zyzg = dic["职务"]; //ViewData["zyzg"] = dictype.Where(p => p.CODETYPE == zyzg).ToList(); ////职称级别 //string zcjb = dic["职称"]; //ViewData["zcjb"] = dictype.Where(p => p.CODETYPE == zcjb).ToList(); ////学历 //string xl = dic["学历"]; //ViewData["xl"] = dictype.Where(p => p.CODETYPE == xl).ToList(); #endregion } catch (Exception e) { WriteLog(enumOperator.Select, "加载人员档案:", e); } return View(entity); } /// /// 保存人员档案 /// public ActionResult SetUserInfo(Ent_SYS_USERINFO entity) { bool isEdit = false; var json = new JsonHelper() { Msg = "保存人员档案成功", Status = "n" }; var _entity = new Ent_SYS_USERINFO(); try { using (AntORM orm = new AntORM()) { orm.db = DataAccessFactory.CreateDataConnection("CyclingItem"); if (entity != null) { #region 获取html标签值 var userinfoid = Request.Form["user-info-id"] ?? ""; entity.USERID = int.Parse(Request.Form["user-id"]); //籍贯 entity.HomeTown = Request.Form["jgprov"] + "," + Request.Form["jgcity"] + "," + Request.Form["jgcountry"]; //户口所在地 entity.HuJiSuoZaiDi = Request.Form["hkprov"] + "," + Request.Form["hkcity"] + "," + Request.Form["hkcountry"]; #endregion //添加 if (!string.IsNullOrEmpty(userinfoid) && userinfoid != "0") { isEdit = true; entity.ID = userinfoid.ToInt32(); } _entity = entity; //修改用户头像与用户姓名 var user = this.UserManage.Get(p => p.ID == _entity.USERID); user.NAME = Request.Form["NAME"]; user.FACE_IMG = Request.Form["face_img_hidden"]; this.UserManage.Update(user); Ent_SYS_USERINFO mod = new Ent_SYS_USERINFO(); RequestModel request = new RequestModel(); request.newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "获取单车信息" }; ResponseModel reslut = new ResponseModel(); if (isEdit) { request.Oid = userinfoid; reslut = orm.UpdateById(_entity, request); WriteLog(enumOperator.Edit, "保存人员档案:" + json.Msg, enumLog4net.INFO); } else { reslut = orm.Save(_entity, request); WriteLog(enumOperator.Add, "保存人员档案:" + json.Msg, enumLog4net.INFO); } if (reslut.IsSuccess) { json.Status = "y"; } else { json.Msg = "保存用户档案失败"; } } else { json.Msg = "未找到要编辑的用户记录"; } } } catch (Exception e) { this.UserManage.Rollback(); json.Msg = e.InnerException.Message; WriteLog(enumOperator.None, "保存人员档案:", e); } return Json(json); } #endregion #region 修改密码页面窗体 /// /// 修改密码页面窗体 /// [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "SetPassword")] public ActionResult PasswordSet() { if (!string.IsNullOrEmpty(this.CurrentUser.Name)) { var entity = this.UserManage.Get(p => p.ID == CurrentUser.Id); return View(entity); } return View(); } /// /// 修改密码功能实现函数 /// public ActionResult PasswordSave() { JsonHelper json = new JsonHelper() { Msg = "修改密码完成", Status = "n" }; var ID = Request.Form["ID"] ?? ""; if (string.IsNullOrEmpty(ID)) { json.Msg = "请登录"; return Json(json); } string OldPassword = Request.Form["oldpass"]; string NewPassword = Request.Form["newpass"]; string confPassword = Request.Form["confpass"]; int newid = int.Parse(ID); var entity = this.UserManage.Get(p => p.ID == newid); var pwd = PasswordUtils.MD5_Encrypt(NewPassword, 32); entity.PASSWORD = pwd; if (CurrentUser.DptInfo.ID > 0) { if (CurrentUser.DptInfo.IfNotNull()) { if (!CurrentUser.DptInfo.ID.IsNullOrEmpty()) { using (AntORM orm = new AntORM()) { orm.db = DataAccessFactory.CreateDataConnection("CyclingItem"); RequestModel request = new RequestModel(); request.newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "保存学校" }; var schoolid = CurrentUser.DptInfo.ID; var reslutschool = orm.UpdateByLambda(p => new YM_School { PassWord = NewPassword }, f => f.ID == schoolid, request); if (reslutschool.IsSuccess) { } } } } } //entity.PASSWORD = Ant.Service.Common.CryptHelper.DESCrypt.Encrypt(NewPassword); try { this.UserManage.Update(entity); json.Status = "y"; WriteLog(enumOperator.Edit, "修改密码:" + json.Msg, enumLog4net.INFO); return Json(json); } catch (Exception e) { json.Msg = e.Message; WriteLog(enumOperator.Edit, "修改密码错误:", e); return Json(json); } } /// /// 修改密码前检测旧密码是否正确 /// public ActionResult CheckoldPass(string oldPassword) { JsonHelper json = new JsonHelper() { Msg = "Success", Status = "n" }; string id = Request.Form["ID"]; string oldpass = Request.Form["oldpass"]; if (string.IsNullOrEmpty(id)) { json.Msg = "未找到要处理的用户"; return Json(json); } var pass = PasswordUtils.MD5_Encrypt(oldpass, 32); int newid = int.Parse(id); var result = this.UserManage.IsExist(p => p.ID == newid && p.PASSWORD.Equals(pass)); if (!result) { json.Msg = "原始密码错误"; return Json(json); } json.Status = "y"; return Json(json); } #endregion #region 切换用户 /// /// 用户切换 /// [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "Change")] public ActionResult ChangeUser(int? id) { JsonHelper json = new JsonHelper() { Msg = "Success", Status = "n" }; if (id != null && id > 0) { var user = this.UserManage.Get(p => p.ID == id); if (user != null) { if (user.ISCANLOGIN != true) { var acconut = this.UserManage.GetAccountByUser(user); //清理SESSION COOKIE SessionHelper.Remove("CurrentUser"); CookieHelper.ClearCookie("cookie_rememberme"); CookieHelper.ClearCookie("CCS"); //写入Session 当前登录用户 SessionHelper.SetSession("CurrentUser", acconut); string cookievalue = "{\"id\":\"" + acconut.Id + "\",\"username\":\"" + acconut.LogName + "\",\"password\":\"" + acconut.PassWord + "\",\"ToKen\":\"" + Session.SessionID + "\"}"; CookieHelper.SetCookie("cookie_rememberme", Ant.Service.Common.CryptHelper.DESCrypt.Encrypt(cookievalue), null); json.Status = "y"; WriteLog(enumOperator.Login, "切换用户:" + acconut.Name, enumLog4net.WARN); return Json(json); } else { json.Msg = "用户已锁定,禁止登录,无法切换"; } } else { json.Msg = "用户不存在,无法切换"; } } else { json.Msg = "用户ID不存在,无法切换"; } WriteLog(enumOperator.Login, "切换用户:" + json.Msg, enumLog4net.ERROR); return Json(json); } /// /// 首页用户切换,ID=Account /// public ActionResult ChangeUserName(string id) { JsonHelper json = new JsonHelper() { Status = "n" }; try { if (!string.IsNullOrEmpty(id)) { var entity = this.UserManage.Get(p => p.ACCOUNT == id); if (entity != null) { if (entity.ISCANLOGIN != true) { var acconut = this.UserManage.GetAccountByUser(entity); //清理SESSION COOKIE SessionHelper.Remove("CurrentUser"); CookieHelper.ClearCookie("cookie_rememberme"); CookieHelper.ClearCookie("CCS"); //写入Session 当前登录用户 SessionHelper.SetSession("CurrentUser", acconut); string cookievalue = "{\"id\":\"" + acconut.Id + "\",\"username\":\"" + acconut.LogName + "\",\"password\":\"" + acconut.PassWord + "\",\"ToKen\":\"" + Session.SessionID + "\"}"; CookieHelper.SetCookie("cookie_rememberme", Ant.Service.Common.CryptHelper.DESCrypt.Encrypt(cookievalue), null); json.Status = "y"; WriteLog(enumOperator.Login, "切换用户:" + acconut, enumLog4net.WARN); return Json(json); } else { json.Msg = "用户已锁定,禁止登录,无法切换"; } } else { json.Msg = "查无此人"; } } else { json.Msg = "请输入用户名"; } WriteLog(enumOperator.Login, "切换用户:" + json.Msg, enumLog4net.ERROR); } catch (Exception e) { json.Msg = e.Message; WriteLog(enumOperator.Login, "切换用户错误:", e); } return Json(json); } #endregion #region 选择人员 /// /// 选择人员视图 /// public ActionResult SelectUser() { try { #region 选中人员 string userId = Request["userid"] ?? ""; ViewData["userId"] = userId; #endregion #region 部门列表 //部门列表 var dptlist = this.DepartmentManage.RecursiveDepartmentNew("32f7a4bd-84de-4587-be29-734d65ad6f70"); ViewData["dptsearch"] = dptlist; #endregion ViewBag.Search = base.keywords; #region 岗位 int usertype = -1; if (!Request.QueryString["postid"].IsEmpty()) { usertype = Request.QueryString["postid"].ToInt32(); } ViewData["postid"] = Request.QueryString["postid"]; var list = this.CodeManage.GetCode("POSTTYPE", "3", "6"); ViewData["postType"] = list; #endregion #region 人员列表 using (AntORM orm = new AntORM()) { orm.db = DataAccessFactory.CreateDataConnection("CyclingItem"); RequestModel res = new RequestModel { newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "获取人员列表信息" } }; //var reslut = orm.Queryable().Where(p => p.USERTYPE == 3).ToList(res); var result = BindUserList("", usertype); return View(result); } #endregion } catch (Exception e) { WriteLog(enumOperator.Select, "选择人员错误:", e); } return View(); } #endregion #region 通讯录 /// /// 内部通讯录 /// public ActionResult Contacts() { try { var result = this.UserManage.LoadAll(p => p.ISCANLOGIN == false).Select(p => new { p.ID, p.NAME, p.PINYIN2, p.ACCOUNT }).ToList(); ViewData["userlist"] = JsonConverter.Serialize(result); } catch (Exception e) { WriteLog(enumOperator.Select, "内部通讯录错误:", e); } return View(); } /// /// 名片 /// public ActionResult Card(int? id) { try { //用户信息 var entity = this.UserManage.Get(p => p.ID == id) ?? new SYS_USER(); //用户档案 var entityinfo = this.UserInfoManage.Get(p => p.USERID == id) ?? new SYS_USERINFO(); ViewData["userInfo"] = entityinfo; //用户登录日志记录 ViewData["login"] = this.SyslogManage.LoadAll(p => p.CLIENTUSER == CurrentUser.LogName && p.ACTION == "Login" && p.MESSAGE.Contains("登录成功")).OrderByDescending(p => p.DATES).First() ?? new SYS_LOG(); //部门 ViewData["dpt"] = this.DepartmentManage.Get(p => p.ID == entity.DPTID) ?? new SYS_DISTRIBUTORS(); //职务 ViewData["zyzg"] = this.CodeManage.GetCodeNameByCodeValue("ZW", entityinfo.POSTCODE.ToString()); return View(entity); } catch (Exception e) { WriteLog(enumOperator.Select, "名片:", e); throw e.InnerException; } } #endregion #region 帮助方法 /// /// 查询分页用户列表 /// private PageInfo AgriculturalBindList(string dptId, string postId, int usertype) { //基本数据 var query = this.UserManage.LoadAll(null); //部门 if (!string.IsNullOrEmpty(dptId)) { var userIdList = GetDptUserIdList(dptId).Cast(); query = query.Where(p => userIdList.Contains(p.ID)); } //关键词 if (!string.IsNullOrEmpty(keywords)) { keywords = keywords.ToLower(); query = query.Where(p => p.NAME.Contains(keywords) || p.ACCOUNT.Contains(keywords) || p.PINYIN2.Contains(keywords) || p.PINYIN1.Contains(keywords)); } if (usertype > 0) { query = query.Where(p => p.USERTYPE == usertype); } //岗位 if (!string.IsNullOrEmpty(postId)) { var userIdlist = GetUserIdByPostId(postId); query = query.Where(p => userIdlist.Contains(p.ID)); } //排序 query = query.OrderBy(p => p.SHOWORDER2); //分页 var result = this.UserManage.Query(query, page, pagesize); var list = result.List.Select((p, i) => new { INDEX = i + 1, p.ID, p.NAME, p.ACCOUNT, DPTNAME = this.DepartmentManage.GetDepartmentName(p.DPTID), POSTNAME = GetPostName(p.SYS_POST_USER), CarNum = GetCarNum(p.ID.ToString()), PHONE = p.PHONE, ROLENAME = GetRoleName(p.SYS_USER_ROLE), ISCANLOGIN = p.ISCANLOGIN == false ? "正常" : "锁定", CREATEDATE = p.CREATEDATE, Createper = p.CREATEPER }); return new PageInfo(result.Index, result.PageSize, result.Count, JsonConverter.JsonClass(list)); } private int GetCarNum(string userid) { int count = 0; using (AntORM orm = new AntORM()) { orm.db = DataAccessFactory.CreateDataConnection("CyclingItem"); RequestModel res = new RequestModel(); res.newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "查询菜单的单个实体方法" }; var q = orm.Queryable().Where(p => p.userId == userid).Count(); count = q; } return count; } /// /// 查询分页用户列表 /// private PageInfo BindUserList(string dptId, int postId) { //基本数据 var query = this.UserManage.LoadAll(null); //部门 if (!string.IsNullOrEmpty(dptId) && dptId != "-1") { var userIdList = GetDptUserIdList(dptId).Cast(); query = query.Where(p => userIdList.Contains(p.ID)); } //关键词 if (!string.IsNullOrEmpty(keywords)) { keywords = keywords.ToLower(); query = query.Where(p => p.NAME.Contains(keywords) || p.ACCOUNT.Contains(keywords) || p.PINYIN2.Contains(keywords) || p.PINYIN1.Contains(keywords)); } //岗位 if (postId >= 0) { query = query.Where(p => p.USERTYPE == postId); } else { // query = query.Where(p => p.USERTYPE == 6 || p.USERTYPE == 3 || p.USERTYPE == 0); //3销售人员;6是三包人员 } //排序 query = query.OrderBy(p => p.SHOWORDER2); //分页 var result = this.UserManage.Query(query, page, pagesize); var list = result.List.Select((p, i) => new { INDEX = i + 1, p.ID, p.NAME, p.ACCOUNT, DPTNAME = this.DepartmentManage.GetDepartmentName(p.DPTID), POSTNAME = GetUserPostName(p.USERTYPE.ToString()), PHONE = p.PHONE, ROLENAME = GetRoleName(p.SYS_USER_ROLE), ISCANLOGIN = p.ISCANLOGIN == false ? "正常" : "锁定", CREATEDATE = p.CREATEDATE, Createper = p.CREATEPER }); return new PageInfo(result.Index, result.PageSize, result.Count, JsonConverter.JsonClass(list)); } /// /// 查询分页用户列表 /// private PageInfo BindList(string dptId, string postId) { ////基本数据 //var query = this.UserManage.LoadAll(null); ////部门 //if (!string.IsNullOrEmpty(dptId)) //{ // var userIdList = GetDptUserIdList(dptId).Cast(); // query = query.Where(p => userIdList.Contains(p.ID)); //} ////关键词 ////岗位 //if (!string.IsNullOrEmpty(postId)) //{ // var userIdlist = GetUserIdByPostId(postId); // query = query.Where(p => userIdlist.Contains(p.ID)); //} ////排序 //query = query.OrderBy(p => p.SHOWORDER2); ////分页 //var result = this.UserManage.Query(query, page, pagesize); //var list = result.List.Select((p, i) => new //{ // INDEX = i + 1, // p.ID, // p.NAME, // p.ACCOUNT, // DPTNAME = this.DepartmentManage.GetDepartmentName(p.DPTID), // POSTNAME = GetPostName(p.SYS_POST_USER), // PHONE = p.PHONE, // ROLENAME = GetRoleName(p.SYS_USER_ROLE), // ISCANLOGIN = p.ISCANLOGIN == false ? "正常" : "锁定", // CREATEDATE = p.CREATEDATE, // Createper = p.CREATEPER //}); using (AntORM orm = new AntORM()) { orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem"); RequestModel request = new RequestModel { newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "查询菜单的单个实体方法" } }; var user = orm.Queryable(); var userrole = orm.Queryable(); var role = orm.Queryable(); var user_role = user.LeftJoin(userrole, (User, UserRole) => (User.ID == UserRole.FK_USERID)).LeftJoin(role, (User, UserRole, Role) => UserRole.FK_ROLEID == Role.ID); var qq = user_role.Select((users, userroles, roles) => new { User = users, Role = roles }); if (!string.IsNullOrEmpty(keywords)) { keywords = keywords.ToLower(); qq = qq.Where(p => p.User.NAME.Contains(keywords) || p.User.ACCOUNT.Contains(keywords) || p.User.PINYIN2.Contains(keywords) || p.User.PINYIN1.Contains(keywords)); } int pageno = (page - 1) * pagesize; var reslut = qq.OrderBy(p => p.User.SHOWORDER2).Skip(pageno).Top(pagesize).ToList(request); if (reslut.IsSuccess) { reslut.RecordNum = qq.Count(); List lists = new List(); foreach (var ent in reslut.ResultModel) { try { En_SYS_USER mod = ent.User; Ent_SYS_ROLE rolemod = ent.Role; var usertype = mod.USERTYPE.ToString(); var dptyname = "系统用户";// this.DepartmentManage.GetDepartmentName(mod.DPTID); orm.db = DataAccessFactory.CreateDataConnection("CyclingItem"); RequestModel res = new RequestModel { newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "查询学校" }, }; int num = (mod.DPTID).ToInt32(); var resultSchool = orm.Queryable().Where(p => p.ID == num).FirstOrDefault(res); if (resultSchool.IsSuccess) { YM_School schoolmod = resultSchool.ResultModel; dptyname = schoolmod.Name; } //SYS_CODE post = this.CodeManage.LoadAll(p => p.CODETYPE == "POSTTYPE" && p.CODEVALUE == usertype).FirstOrDefault(); Ent_User users = new Ent_User { ID = mod.ID.ToInt32(), NAME = mod.NAME, ACCOUNT = mod.ACCOUNT, ISCANLOGIN = mod.ISCANLOGIN == false ? "正常" : "锁定" }; //if (post.IfNotNull()) //{ // users.POSTNAME = post.NAMETEXT; //} users.DPTNAME = dptyname; if (!rolemod.IsNull()) { users.ROLENAME = rolemod.ROLENAME; } lists.Add(users); } catch (Exception ex) { } } return new PageInfo(base.page, base.pagesize, reslut.RecordNum, JsonConverter.JsonClass(lists)); } } return new PageInfo(base.page, base.pagesize, 0, JsonConverter.JsonClass(new List())); // var lists = list.ToList(); //return new PageInfo(result.Index, result.PageSize, lists.Count, JsonConverter.JsonClass(lists)); } /// /// 通过部门ID,获取下级部门ID集合 /// public List GetDptUserIdList(string dptId) { //兼职部门 var dptIdList = this.DepartmentManage.RecursiveDepartment(dptId).Select(p => p.ID).ToList(); //兼职部门的人员 var userlist = this.UserDepartmentManage.GetUserListByDptId(dptIdList).Select(p => p.ID).ToList(); //本职部门的人员 var userlist2 = this.UserManage.LoadAll(p => dptIdList.Contains(p.DPTID)).Select(p => p.ID).ToList(); userlist.AddRange(userlist2); return userlist; } /// /// 获取角色名称 /// add 作者: 季健国 QQ:181589805 by 2016-06-07 /// private string GetRoleName(ICollection collection) { return collection.Aggregate(string.Empty, (current, t) => current + (t.SYS_ROLE.ROLENAME + ",")).TrimEnd(','); } /// /// 获取用户岗位 /// /// /// private string GetUserPostName(string usertype) { var postlist = this.CodeManage.GetCode("POSTTYPE"); foreach (var mod in postlist) { if (mod.CODEVALUE == usertype.ToString()) { return mod.NAMETEXT; } } return ""; } /// /// 根据岗位集合获取岗位名称 /// 部门-岗位 /// private string GetPostName(ICollection collection) { string retval = string.Empty; if (collection != null && collection.Count > 0) { var postcoll = this.PostUserManage.GetPostNameBySysPostUser(collection); foreach (var item in postcoll) { if (retval != null) retval += item.postname + ","; } } return retval = retval.TrimEnd(','); } /// /// 根据岗位ID获取该岗位人员ID集合 /// private List GetUserIdByPostId(string postId) { var userlist = this.PostUserManage.GetUserListByPostId("'" + postId + "'"); return userlist.Select(p => p.ID).ToList(); } /// /// 获取部门名称 /// private object GetDptName(ICollection collection) { return collection.Aggregate(string.Empty, (current, t) => current + t.SYS_DISTRIBUTORS.NAME + ",").TrimEnd(','); } #endregion } }