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
}
}