UserController.cs 64 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6. using Central.Control.Domain;
  7. using MES.Production.Service.IService;
  8. using Ant.Service.Common;
  9. using System.Collections;
  10. using Ant.Service.Common.Enums;
  11. using ChangFa.Machinery.WebPage.Controllers;
  12. using Ant.ORM;
  13. using Ant.Data;
  14. using MES.Production.Entity;
  15. using Ant.Service.Utility;
  16. using MES.Production.Entity.Entity;
  17. using MES.Production.Entity.Enum;
  18. using MES.Production.Service.ServiceImp;
  19. using JsonHelper = Ant.Service.Common.JsonHelper;
  20. using MES.Production.Entity.Model;
  21. namespace ChangFa.Machinery.WebPage.Areas.SysManage.Controllers
  22. {
  23. /// <summary>
  24. /// 用户管理控制器
  25. /// </summary>
  26. public class UserController : BaseController
  27. {
  28. #region 声明容器
  29. /// <summary>
  30. /// 用户部门
  31. /// </summary>
  32. IUserDepartmentManage UserDepartmentManage { get; set; }
  33. /// <summary>
  34. /// 用户岗位
  35. /// </summary>
  36. IPostUserManage PostUserManage { get; set; }
  37. /// <summary>
  38. /// 部门
  39. /// </summary>
  40. IDepartmentManage DepartmentManage { get; set; }
  41. /// <summary>
  42. /// 岗位
  43. /// </summary>
  44. IPostManage PostManage { get; set; }
  45. /// <summary>
  46. /// 用户信息
  47. /// </summary>
  48. IUserInfoManage UserInfoManage { get; set; }
  49. /// <summary>
  50. /// 字典编码
  51. /// </summary>
  52. ICodeManage CodeManage { get; set; }
  53. /// <summary>
  54. /// 系统日子
  55. /// </summary>
  56. ISyslogManage SyslogManage { get; set; }
  57. /// <summary>
  58. /// 常用联系人
  59. /// </summary>
  60. IBeUserManage BeUserManage { get; set; }
  61. /// <summary>
  62. /// 角色管理
  63. /// </summary>
  64. private IRoleManage RoleManage = new RoleManage();
  65. #endregion
  66. #region 用户基本信息
  67. /// <summary>
  68. /// 加载导航主页 获取所有部门
  69. /// </summary>
  70. [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "View")]
  71. public ActionResult Home()
  72. {
  73. return View();
  74. }
  75. /// <summary>
  76. /// 加载列表
  77. /// </summary>
  78. [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "View")]
  79. public ActionResult Index()
  80. {
  81. try
  82. {
  83. #region 处理查询参数
  84. string dptId = Request.QueryString["dptid"];
  85. string postid = Request.QueryString["postid"];
  86. #endregion
  87. #region 加载列表
  88. //主列表
  89. var result = BindList(dptId, postid);
  90. //搜索关键词
  91. ViewBag.Search = base.keywords;
  92. //List<SelectListItem> items = new List<SelectListItem>();
  93. //items.Add(new SelectListItem { Text = "请选择", Value = "" });
  94. //using (AntORM orm = new AntORM())
  95. //{
  96. // orm.db = DataAccessFactory.CreateDataConnection("CyclingItem");
  97. // RequestModel res = new RequestModel
  98. // {
  99. // newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "查询学校" },
  100. // };
  101. // var result1 = orm.Queryable<YM_School>().ToList(res);
  102. // foreach (var item in result1.ResultModel)
  103. // {
  104. // items.Add(new SelectListItem { Text = item.Name, Value = item.ID.ToString() });
  105. // }
  106. //}
  107. ////部门
  108. //ViewBag.dpt = items ?? new List<SelectListItem>();
  109. //岗位
  110. ViewData["post"] = this.PostManage.LoadAll(null).OrderBy(p => p.SHOWORDER).ToList();
  111. ViewData["postid"] = postid;
  112. ViewData["dptid"] = dptId;
  113. #endregion
  114. return View(result);
  115. }
  116. catch (Exception e)
  117. {
  118. WriteLog(enumOperator.Select, "加载用户列表:", e);
  119. throw e.InnerException;
  120. }
  121. }
  122. /// <summary>
  123. ///
  124. /// </summary>
  125. /// <returns></returns>
  126. [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "View")]
  127. public ActionResult ThreePacksList()
  128. {
  129. try
  130. {
  131. #region 处理查询参数
  132. string dptId = Request.QueryString["FK_DPTID"];
  133. string postid = Request.QueryString["postid"];
  134. #endregion
  135. #region 加载列表
  136. int postnum = -1;
  137. if (!Request.QueryString["postid"].IsEmpty())
  138. {
  139. postnum = postid.ToInt32();
  140. }
  141. //主列表
  142. var result = BindUserList(dptId, 6);
  143. //搜索关键词
  144. ViewBag.Search = base.keywords;
  145. //部门
  146. ViewBag.dpt = this.DepartmentManage.Get(p => p.ID == dptId) ?? new SYS_DISTRIBUTORS();
  147. //岗位
  148. ViewData["post"] = this.PostManage.LoadAll(null).OrderBy(p => p.SHOWORDER).ToList();
  149. ViewData["postid"] = 6;
  150. ViewData["dptid"] = dptId;
  151. ViewData["Department"] = this.DepartmentManage.GetDepartmentByDetail();
  152. var list = this.CodeManage.GetCode("POSTTYPE");
  153. ViewData["postType"] = list;
  154. #endregion
  155. return View(result);
  156. }
  157. catch (Exception e)
  158. {
  159. WriteLog(enumOperator.Select, "加载用户列表:", e);
  160. throw e.InnerException;
  161. }
  162. }
  163. /// <summary>
  164. ///
  165. /// </summary>
  166. /// <returns></returns>
  167. [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "View")]
  168. public ActionResult WarehouseList()
  169. {
  170. try
  171. {
  172. #region 处理查询参数
  173. string dptId = Request.QueryString["FK_DPTID"];
  174. string postid = Request.QueryString["postid"];
  175. #endregion
  176. #region 加载列表
  177. int postnum = -1;
  178. if (!Request.QueryString["postid"].IsEmpty())
  179. {
  180. postnum = postid.ToInt32();
  181. }
  182. //主列表
  183. var result = BindUserList(dptId, 4);
  184. //搜索关键词
  185. ViewBag.Search = base.keywords;
  186. //部门
  187. ViewBag.dpt = this.DepartmentManage.Get(p => p.ID == dptId) ?? new SYS_DISTRIBUTORS();
  188. //岗位
  189. ViewData["post"] = this.PostManage.LoadAll(null).OrderBy(p => p.SHOWORDER).ToList();
  190. ViewData["postid"] = 4;
  191. ViewData["dptid"] = dptId;
  192. ViewData["Department"] = this.DepartmentManage.GetDepartmentByDetail();
  193. var list = this.CodeManage.GetCode("POSTTYPE");
  194. ViewData["postType"] = list;
  195. #endregion
  196. return View(result);
  197. }
  198. catch (Exception e)
  199. {
  200. WriteLog(enumOperator.Select, "加载用户列表:", e);
  201. throw e.InnerException;
  202. }
  203. }
  204. [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "View")]
  205. public ActionResult UserList()
  206. {
  207. try
  208. {
  209. #region 处理查询参数
  210. string dptId = Request.QueryString["FK_DPTID"];
  211. string postid = Request.QueryString["postid"];
  212. #endregion
  213. #region 加载列表
  214. int postnum = -1;
  215. if (!Request.QueryString["postid"].IsEmpty())
  216. {
  217. postnum = postid.ToInt32();
  218. }
  219. //主列表
  220. var result = BindUserList(dptId, 3);
  221. //搜索关键词
  222. ViewBag.Search = base.keywords;
  223. //部门
  224. ViewBag.dpt = this.DepartmentManage.Get(p => p.ID == dptId) ?? new SYS_DISTRIBUTORS();
  225. //岗位
  226. ViewData["post"] = this.PostManage.LoadAll(null).OrderBy(p => p.SHOWORDER).ToList();
  227. ViewData["postid"] = 3;
  228. ViewData["dptid"] = dptId;
  229. ViewData["Department"] = this.DepartmentManage.GetDepartmentByDetail();
  230. var list = this.CodeManage.GetCode("POSTTYPE");
  231. ViewData["postType"] = list;
  232. #endregion
  233. return View(result);
  234. }
  235. catch (Exception e)
  236. {
  237. WriteLog(enumOperator.Select, "加载用户列表:", e);
  238. throw e.InnerException;
  239. }
  240. }
  241. /// <summary>
  242. ///
  243. /// </summary>
  244. /// <returns></returns>
  245. [UserAuthorizeAttribute(ModuleAlias = "AgriculturalList", OperaAction = "View")]
  246. public ActionResult Agricultural()
  247. {
  248. try
  249. {
  250. #region 处理查询参数
  251. string dptId = Request.QueryString["dptid"];
  252. string postid = Request.QueryString["postid"];
  253. //string keyword = Request.QueryString["Search"];
  254. #endregion
  255. #region 加载列表
  256. //主列表
  257. var result = AgriculturalBindList(dptId, postid, 1);
  258. //搜索关键词
  259. ViewBag.Search = base.keywords;
  260. //部门
  261. ViewBag.dpt = this.DepartmentManage.Get(p => p.ID == dptId) ?? new SYS_DISTRIBUTORS();
  262. //岗位
  263. ViewData["post"] = this.PostManage.LoadAll(null).OrderBy(p => p.SHOWORDER).ToList();
  264. ViewData["postid"] = postid;
  265. ViewData["Department"] = this.DepartmentManage.GetDepartmentByDetail();
  266. ViewData["dptid"] = dptId;
  267. #endregion
  268. return View(result);
  269. }
  270. catch (Exception e)
  271. {
  272. WriteLog(enumOperator.Select, "加载用户列表:", e);
  273. throw e.InnerException;
  274. }
  275. }
  276. /// <summary>
  277. /// 加载用户详情信息(基本)
  278. /// </summary>
  279. [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "Detail")]
  280. public ActionResult UserDetail(int? id)
  281. {
  282. string postid = Request.QueryString["postid"];
  283. try
  284. {
  285. var _entity = UserManage.Get(p => p.ID == id) ?? new SYS_USER();
  286. if (id != null && id > 0)
  287. {
  288. postid = _entity.USERTYPE.ToString();
  289. int newid = Convert.ToInt32(id);
  290. ViewData["dptlist"] = this.UserDepartmentManage.GetDptListByUserId(newid);
  291. if (_entity.SYS_POST_USER.Count > 0)
  292. {
  293. ViewData["postlist"] = this.PostUserManage.GetPostNameBySysPostUser(_entity.SYS_POST_USER);
  294. }
  295. }
  296. else
  297. {
  298. _entity.USERTYPE = postid.ToInt32();
  299. _entity.ISCANLOGIN = false;
  300. }
  301. //ViewData["postType"] = this.CodeManage.GetCode("POSTTYPE"); /// 用户角色
  302. //ViewData["postType"] =
  303. ViewData["postid"] = postid;
  304. ViewData["levels"] = this.CodeManage.LoadAll(p => p.CODETYPE == "YGJB").ToList();
  305. ViewBag.dpt = this.DepartmentManage.GetDepartmentByDetail();
  306. return View(_entity);
  307. }
  308. catch (Exception e)
  309. {
  310. WriteLog(enumOperator.Select, "加载用户详情发生错误:", e);
  311. throw e.InnerException;
  312. }
  313. }
  314. /// <summary>
  315. /// 加载用户详情信息(基本)
  316. /// </summary>
  317. [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "Detail")]
  318. public ActionResult Detail(int? id)
  319. {
  320. try
  321. {
  322. var _entity = UserManage.Get(p => p.ID == id) ?? new SYS_USER();
  323. if (id != null && id > 0)
  324. {
  325. int newid = Convert.ToInt32(id);
  326. ViewData["dptlist"] = this.UserDepartmentManage.GetDptListByUserId(newid);
  327. if (_entity.SYS_POST_USER.Count > 0)
  328. {
  329. ViewData["postlist"] = this.PostUserManage.GetPostNameBySysPostUser(_entity.SYS_POST_USER);
  330. }
  331. }
  332. else
  333. {
  334. _entity.ISCANLOGIN = false;
  335. }
  336. //ViewData["postType"] = this.CodeManage.GetCode("POSTTYPE");
  337. var query = this.RoleManage.LoadAll(null).ToList();
  338. ViewData["postType"] = query;
  339. ViewData["levels"] = this.CodeManage.LoadAll(p => p.CODETYPE == "YGJB").ToList();
  340. ViewBag.dpt = this.DepartmentManage.GetDepartmentByDetail();
  341. return View(_entity);
  342. }
  343. catch (Exception e)
  344. {
  345. WriteLog(enumOperator.Select, "加载用户详情发生错误:", e);
  346. throw e.InnerException;
  347. }
  348. }
  349. /// <summary>
  350. /// 保存人员基本信息
  351. /// </summary>
  352. [ValidateInput(false)]
  353. [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "Add,Edit")]
  354. public ActionResult UserSave(SYS_USER entity)
  355. {
  356. bool isEdit = false;
  357. JsonHelper json = new JsonHelper() { Msg = "保存成功", Status = "n" };
  358. try
  359. {
  360. if (entity != null)
  361. {
  362. string iscanlogin = Request.Form["iscanlogin"];
  363. entity.ISCANLOGIN = iscanlogin == "on" ? true : false;
  364. //兼职部门
  365. //string dptId = Request.Form["hiddpt"];
  366. var _entity = new SYS_USER();
  367. if (entity.ID <= 0) //添加
  368. {
  369. entity.CREATEDATE = DateTime.Now;
  370. entity.CREATEPER = this.CurrentUser.Name;
  371. entity.UPDATEDATE = DateTime.Now;
  372. entity.UPDATEUSER = this.CurrentUser.Name;
  373. var pwd = PasswordUtils.MD5_Encrypt("111111", 32);
  374. entity.PASSWORD = pwd;
  375. entity.PINYIN1 = ConvertHzToPz.Convert(entity.NAME).ToLower();
  376. entity.PINYIN2 = ConvertHzToPz.ConvertFirst(entity.NAME).ToLower();
  377. entity.USERTYPE = Request.Form["userpostid"].ToInt32();
  378. entity.ACCOUNT = entity.PHONE;
  379. _entity = entity;
  380. }
  381. else //修改
  382. {
  383. _entity = this.UserManage.Get(p => p.ID == entity.ID);
  384. entity.CREATEDATE = _entity.CREATEDATE;
  385. entity.CREATEPER = _entity.CREATEPER;
  386. entity.FACE_IMG = _entity.FACE_IMG;
  387. entity.PASSWORD = _entity.PASSWORD;
  388. entity.UPDATEUSER = this.CurrentUser.Name;
  389. entity.UPDATEDATE = DateTime.Now;
  390. entity.ACCOUNT = entity.PHONE;
  391. if (!_entity.NAME.Equals(entity.NAME))
  392. {
  393. entity.PINYIN1 = ConvertHzToPz.Convert(entity.NAME).ToLower();
  394. entity.PINYIN2 = ConvertHzToPz.ConvertFirst(entity.NAME).ToLower();
  395. }
  396. else
  397. {
  398. entity.PINYIN1 = _entity.PINYIN1;
  399. entity.PINYIN2 = _entity.PINYIN2;
  400. }
  401. _entity = entity;
  402. _entity.USERTYPE = Request.Form["userpostid"].ToInt32();
  403. isEdit = true;
  404. }
  405. //检测此用户名是否重复
  406. if (!this.UserManage.IsExist(p => p.ACCOUNT.Equals(_entity.ACCOUNT) && p.ID != _entity.ID))
  407. {
  408. var en = this.UserManage.SaveOrUpdateReturn(_entity, isEdit);
  409. if (en.ID.IfNotNull() && !isEdit)
  410. {
  411. EntSYS_USER_ROLE roleMod = new EntSYS_USER_ROLE();
  412. using (AntORM orm = new AntORM())
  413. {
  414. orm.db = DataAccessFactory.CreateDataConnection("CyclingItem");
  415. RequestModel res = new RequestModel
  416. {
  417. newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "获取公告信息" }
  418. };
  419. var usertype = Request.Form["userpostid"].ToInt32();
  420. int ROLEID = 0;
  421. switch ((PostType)usertype)
  422. {
  423. case PostType.SalesClerk:
  424. {
  425. ROLEID = 2;
  426. }
  427. break;
  428. case PostType.Distributors:
  429. {
  430. ROLEID = 3;
  431. }
  432. break;
  433. case PostType.Warehouse:
  434. {
  435. ROLEID = 4;
  436. }
  437. break;
  438. case PostType.ThreePacksStaff:
  439. {
  440. ROLEID = 6;
  441. }
  442. break;
  443. case PostType.MarketingAdmin:
  444. {
  445. ROLEID = 7;
  446. }
  447. break;
  448. }
  449. roleMod.FK_ROLEID = ROLEID;
  450. roleMod.FK_USERID = en.ID.ToInt32();
  451. orm.Save(roleMod, res);
  452. }
  453. }
  454. //if (this.UserManage.SaveOrUpdate(_entity, isEdit))
  455. //{
  456. // //构造部门人员关系
  457. // //this.UserDepartmentManage.SaveUserDpt(_entity.ID, dptId.TrimEnd(','));
  458. // //岗位
  459. // //string postId = Request.Form["hidpost"];
  460. // //构造岗位人员关系
  461. // // this.PostUserManage.SavePostUser(_entity.ID, postId.TrimEnd(','));
  462. //}
  463. json.Status = "y";
  464. }
  465. else
  466. {
  467. json.Msg = "用户名已被使用,请修改后再提交!";
  468. }
  469. }
  470. else
  471. {
  472. json.Msg = "未找到要操作的用户记录";
  473. }
  474. if (isEdit)
  475. {
  476. WriteLog(enumOperator.Edit, "修改用户,结果:" + json.Msg, enumLog4net.INFO);
  477. }
  478. else
  479. {
  480. WriteLog(enumOperator.Add, "添加用户,结果:" + json.Msg, enumLog4net.INFO);
  481. }
  482. }
  483. catch (Exception e)
  484. {
  485. json.Msg = "保存人员信息发生内部错误!";
  486. WriteLog(enumOperator.None, "保存用户错误:", e);
  487. }
  488. return Json(json);
  489. }
  490. /// <summary>
  491. /// 保存人员基本信息
  492. /// </summary>
  493. [ValidateInput(false)]
  494. [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "Add,Edit")]
  495. public ActionResult Save(SYS_USER entity)
  496. {
  497. bool isEdit = false;
  498. JsonHelper json = new JsonHelper() { Msg = "保存成功", Status = "n" };
  499. try
  500. {
  501. if (entity != null)
  502. {
  503. string iscanlogin = Request.Form["iscanlogin"];
  504. entity.ISCANLOGIN = iscanlogin == "on" ? true : false;
  505. //兼职部门
  506. //string dptId = Request.Form["hiddpt"];
  507. var _entity = new SYS_USER();
  508. if (entity.ID <= 0) //添加
  509. {
  510. entity.CREATEDATE = DateTime.Now;
  511. entity.CREATEPER = this.CurrentUser.Name;
  512. entity.UPDATEDATE = DateTime.Now;
  513. entity.UPDATEUSER = this.CurrentUser.Name;
  514. var pwd = PasswordUtils.MD5_Encrypt("111111", 32);
  515. entity.PASSWORD = pwd;
  516. entity.PINYIN1 = ConvertHzToPz.Convert(entity.NAME).ToLower();
  517. entity.PINYIN2 = ConvertHzToPz.ConvertFirst(entity.NAME).ToLower();
  518. entity.USERTYPE = Request.Form["postid"].ToInt32();
  519. _entity = entity;
  520. }
  521. else //修改
  522. {
  523. _entity = this.UserManage.Get(p => p.ID == entity.ID);
  524. entity.CREATEDATE = _entity.CREATEDATE;
  525. entity.CREATEPER = _entity.CREATEPER;
  526. entity.FACE_IMG = _entity.FACE_IMG;
  527. entity.PASSWORD = _entity.PASSWORD;
  528. entity.UPDATEUSER = this.CurrentUser.Name;
  529. entity.UPDATEDATE = DateTime.Now;
  530. if (!_entity.NAME.Equals(entity.NAME))
  531. {
  532. entity.PINYIN1 = ConvertHzToPz.Convert(entity.NAME).ToLower();
  533. entity.PINYIN2 = ConvertHzToPz.ConvertFirst(entity.NAME).ToLower();
  534. }
  535. else
  536. {
  537. entity.PINYIN1 = _entity.PINYIN1;
  538. entity.PINYIN2 = _entity.PINYIN2;
  539. }
  540. _entity = entity;
  541. _entity.USERTYPE = Request.Form["postid"].ToInt32();
  542. isEdit = true;
  543. }
  544. //检测此用户名是否重复
  545. if (!this.UserManage.IsExist(p => p.ACCOUNT.Equals(_entity.ACCOUNT) && p.ID != _entity.ID))
  546. {
  547. var en = this.UserManage.SaveOrUpdateReturn(_entity, isEdit);
  548. if (en.ID.IfNotNull())
  549. {
  550. }
  551. //if (this.UserManage.SaveOrUpdateReturn(_entity, isEdit))
  552. //{
  553. //构造部门人员关系
  554. //this.UserDepartmentManage.SaveUserDpt(_entity.ID, dptId.TrimEnd(','));
  555. //岗位
  556. //string postId = Request.Form["hidpost"];
  557. //构造岗位人员关系
  558. // this.PostUserManage.SavePostUser(_entity.ID, postId.TrimEnd(','));
  559. //}
  560. json.Status = "y";
  561. }
  562. else
  563. {
  564. json.Msg = "用户名已被使用,请修改后再提交!";
  565. }
  566. }
  567. else
  568. {
  569. json.Msg = "未找到要操作的用户记录";
  570. }
  571. if (isEdit)
  572. {
  573. WriteLog(enumOperator.Edit, "修改用户,结果:" + json.Msg, enumLog4net.INFO);
  574. }
  575. else
  576. {
  577. WriteLog(enumOperator.Add, "添加用户,结果:" + json.Msg, enumLog4net.INFO);
  578. }
  579. }
  580. catch (Exception e)
  581. {
  582. json.Msg = "保存人员信息发生内部错误!";
  583. WriteLog(enumOperator.None, "保存用户错误:", e);
  584. }
  585. return Json(json);
  586. }
  587. /// <summary>
  588. /// 方法注解:删除用户
  589. /// 验证规则:1、超级管理员不能删除
  590. /// 2、当前登录用户不能删除
  591. /// 3、正常状态用户不能删除
  592. /// 删除原则:1、删除用户档案
  593. /// 2、删除用户角色关系
  594. /// 3、删除用户权限关系
  595. /// 4、删除用户岗位关系
  596. /// 5、删除用户部门关系
  597. /// 6、删除用户
  598. /// </summary>
  599. [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "Remove")]
  600. public ActionResult Delete(string idList)
  601. {
  602. JsonHelper json = new JsonHelper() { Status = "n", Msg = "删除用户成功" };
  603. try
  604. {
  605. //是否为空
  606. if (string.IsNullOrEmpty(idList)) { json.Msg = "未找到要删除的用户"; return Json(json); }
  607. string[] id = idList.Trim(',').Split(',');
  608. for (int i = 0; i < id.Length; i++)
  609. {
  610. int userId = int.Parse(id[i]);
  611. if (this.UserManage.IsAdmin(userId))
  612. {
  613. json.Msg = "被删除用户存在超级管理员,不能删除!";
  614. WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR);
  615. return Json(json);
  616. }
  617. if (this.CurrentUser.Id == userId)
  618. {
  619. json.Msg = "当前登录用户,不能删除!";
  620. WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR);
  621. return Json(json);
  622. }
  623. if (this.UserManage.Get(p => p.ID == userId).ISCANLOGIN == false)
  624. {
  625. json.Msg = "用户未锁定,不能删除!";
  626. WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR);
  627. return Json(json);
  628. }
  629. this.UserManage.Remove(userId);
  630. json.Status = "y";
  631. WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.WARN);
  632. }
  633. }
  634. catch (Exception e)
  635. {
  636. json.Msg = "删除用户发生内部错误!";
  637. WriteLog(enumOperator.Remove, "删除用户:", e);
  638. }
  639. return Json(json);
  640. }
  641. /// <summary>
  642. /// 方法注解:删除用户
  643. /// 验证规则:1、超级管理员不能删除
  644. /// 2、当前登录用户不能删除
  645. /// 3、正常状态用户不能删除
  646. /// 删除原则:1、删除用户档案
  647. /// 2、删除用户角色关系
  648. /// 3、删除用户权限关系
  649. /// 4、删除用户岗位关系
  650. /// 5、删除用户部门关系
  651. /// 6、删除用户
  652. /// </summary>
  653. [UserAuthorizeAttribute(ModuleAlias = "userList", OperaAction = "Remove")]
  654. public ActionResult UserDelete(string idList)
  655. {
  656. JsonHelper json = new JsonHelper() { Status = "n", Msg = "删除用户成功" };
  657. try
  658. {
  659. //是否为空
  660. if (string.IsNullOrEmpty(idList)) { json.Msg = "未找到要删除的用户"; return Json(json); }
  661. string[] id = idList.Trim(',').Split(',');
  662. for (int i = 0; i < id.Length; i++)
  663. {
  664. int userId = int.Parse(id[i]);
  665. if (this.UserManage.IsAdmin(userId))
  666. {
  667. json.Msg = "被删除用户存在超级管理员,不能删除!";
  668. WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR);
  669. return Json(json);
  670. }
  671. if (this.CurrentUser.Id == userId)
  672. {
  673. json.Msg = "当前登录用户,不能删除!";
  674. WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR);
  675. return Json(json);
  676. }
  677. //if (this.UserManage.Get(p => p.ID == userId).ISCANLOGIN == false)
  678. //{
  679. // json.Msg = "用户未锁定,不能删除!";
  680. // WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.ERROR);
  681. // return Json(json);
  682. //}
  683. this.UserManage.Remove(userId);
  684. json.Status = "y";
  685. WriteLog(enumOperator.Remove, "删除用户:" + json.Msg, enumLog4net.WARN);
  686. }
  687. }
  688. catch (Exception e)
  689. {
  690. json.Msg = "删除用户发生内部错误!";
  691. WriteLog(enumOperator.Remove, "删除用户:", e);
  692. }
  693. return Json(json);
  694. }
  695. /// <summary>
  696. /// 方法描述:根据传入的用户编号重置当前用户密码
  697. /// 创建标识:add by 季健国 2013-8-16 9:10
  698. /// </summary>
  699. /// <param name="Id">用户编号</param>
  700. /// <returns></returns>
  701. [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "PwdReset")]
  702. public ActionResult ResetPwd(string Id)
  703. {
  704. JsonHelper json = new JsonHelper() { Status = "n", Msg = "操作成功" };
  705. try
  706. {
  707. //校验用户编号是否为空
  708. if (string.IsNullOrEmpty(Id))
  709. {
  710. json.Msg = "校验失败,用户编号不能为空";
  711. WriteLog(enumOperator.Edit, "重置当前用户密码:" + json.Msg, enumLog4net.ERROR);
  712. return Json(json);
  713. }
  714. int newid = int.Parse(Id); var pwd = PasswordUtils.MD5_Encrypt("111111", 32);
  715. var _user = UserManage.Get(p => p.ID == newid);
  716. Ent_SYS_USER user = new Ent_SYS_USER();
  717. user.ID = newid;
  718. user.PASSWORD = pwd;
  719. using (AntORM orm = new AntORM())
  720. {
  721. orm.db = DataAccessFactory.CreateDataConnection("CyclingItem");
  722. RequestModel res = new RequestModel();
  723. res.newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "获取用户信息" };
  724. var reslut = orm.UpdateById(user, res);
  725. if (reslut.IsSuccess)
  726. {
  727. json.Status = "y";
  728. WriteLog(enumOperator.Edit, "重置当前用户密码:" + json.Msg, enumLog4net.INFO);
  729. }
  730. else
  731. {
  732. json.Msg = "初始密码失败";
  733. WriteLog(enumOperator.Edit, "重置当前用户密码:" + json.Msg, enumLog4net.INFO);
  734. }
  735. }
  736. //_user.PASSWORD = pwd;
  737. //UserManage.Update(_user);
  738. }
  739. catch (Exception e)
  740. {
  741. json.Msg = "操作失败";
  742. WriteLog(enumOperator.Edit, "重置当前用户密码:", e);
  743. }
  744. return Json(json);
  745. }
  746. #endregion
  747. #region 人员档案
  748. /// <summary>
  749. /// 加载人员档案
  750. /// </summary>
  751. [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "UserInfo")]
  752. public ActionResult UserInfo(int? id)
  753. {
  754. var entity = new Ent_SYS_USERINFO();
  755. try
  756. {
  757. string path = Request.QueryString["path"];
  758. using (AntORM orm = new AntORM())
  759. {
  760. orm.db = DataAccessFactory.CreateDataConnection("CyclingItem");
  761. RequestModel res = new RequestModel();
  762. res.newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "获取用户信息" };
  763. if (string.IsNullOrEmpty(path))
  764. {
  765. var reslut = orm.Queryable<Ent_SYS_USERINFO>().Where(p => p.USERID == id).FirstOrDefault(res);
  766. if (reslut.IsSuccess)
  767. {
  768. entity = reslut.ResultModel;
  769. }
  770. ViewBag.user = this.UserManage.Get(p => p.ID == id) ?? new SYS_USER();
  771. }
  772. else
  773. {
  774. if (path == "home")
  775. {
  776. var reslut = orm.Queryable<Ent_SYS_USERINFO>().Where(p => p.USERID == CurrentUser.Id).FirstOrDefault(res);
  777. if (reslut.IsSuccess)
  778. {
  779. entity = reslut.ResultModel;
  780. }
  781. ViewBag.user = this.UserManage.Get(p => p.ID == CurrentUser.Id) ?? new SYS_USER();
  782. ViewData["opera"] = "home";
  783. }
  784. }
  785. }
  786. #region 下拉框
  787. Dictionary<string, string> dic = ClsDic.DicCodeType;
  788. var dictype = this.CodeManage.GetDicType();
  789. //岗位
  790. //string gw = dic["在岗状态"];
  791. //ViewData["gangwei"] = dictype.Where(p => p.CODETYPE == gw).ToList();
  792. ////婚姻状况
  793. //string hyzk = dic["婚姻状况"];
  794. //ViewData["hunyin"] = dictype.Where(p => p.CODETYPE == hyzk).ToList();
  795. ////政治面貌
  796. //string zzmm = dic["政治面貌"];
  797. //ViewData["zzmm"] = dictype.Where(p => p.CODETYPE == zzmm).ToList();
  798. ////民族
  799. //string mz = dic["民族"];
  800. //ViewData["mz"] = dictype.Where(p => p.CODETYPE == mz).ToList();
  801. ////职业资格
  802. //string zyzg = dic["职务"];
  803. //ViewData["zyzg"] = dictype.Where(p => p.CODETYPE == zyzg).ToList();
  804. ////职称级别
  805. //string zcjb = dic["职称"];
  806. //ViewData["zcjb"] = dictype.Where(p => p.CODETYPE == zcjb).ToList();
  807. ////学历
  808. //string xl = dic["学历"];
  809. //ViewData["xl"] = dictype.Where(p => p.CODETYPE == xl).ToList();
  810. #endregion
  811. }
  812. catch (Exception e)
  813. {
  814. WriteLog(enumOperator.Select, "加载人员档案:", e);
  815. }
  816. return View(entity);
  817. }
  818. /// <summary>
  819. /// 保存人员档案
  820. /// </summary>
  821. public ActionResult SetUserInfo(Ent_SYS_USERINFO entity)
  822. {
  823. bool isEdit = false;
  824. var json = new JsonHelper() { Msg = "保存人员档案成功", Status = "n" };
  825. var _entity = new Ent_SYS_USERINFO();
  826. try
  827. {
  828. using (AntORM orm = new AntORM())
  829. {
  830. orm.db = DataAccessFactory.CreateDataConnection("CyclingItem");
  831. if (entity != null)
  832. {
  833. #region 获取html标签值
  834. var userinfoid = Request.Form["user-info-id"] ?? "";
  835. entity.USERID = int.Parse(Request.Form["user-id"]);
  836. //籍贯
  837. entity.HomeTown = Request.Form["jgprov"] + "," + Request.Form["jgcity"] + "," +
  838. Request.Form["jgcountry"];
  839. //户口所在地
  840. entity.HuJiSuoZaiDi = Request.Form["hkprov"] + "," + Request.Form["hkcity"] + "," +
  841. Request.Form["hkcountry"];
  842. #endregion
  843. //添加
  844. if (!string.IsNullOrEmpty(userinfoid) && userinfoid != "0")
  845. {
  846. isEdit = true;
  847. entity.ID = userinfoid.ToInt32();
  848. }
  849. _entity = entity;
  850. //修改用户头像与用户姓名
  851. var user = this.UserManage.Get(p => p.ID == _entity.USERID);
  852. user.NAME = Request.Form["NAME"];
  853. user.FACE_IMG = Request.Form["face_img_hidden"];
  854. this.UserManage.Update(user);
  855. Ent_SYS_USERINFO mod = new Ent_SYS_USERINFO();
  856. RequestModel request = new RequestModel();
  857. request.newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "获取单车信息" };
  858. ResponseModel reslut = new ResponseModel();
  859. if (isEdit)
  860. {
  861. request.Oid = userinfoid;
  862. reslut = orm.UpdateById(_entity, request);
  863. WriteLog(enumOperator.Edit, "保存人员档案:" + json.Msg, enumLog4net.INFO);
  864. }
  865. else
  866. {
  867. reslut = orm.Save(_entity, request);
  868. WriteLog(enumOperator.Add, "保存人员档案:" + json.Msg, enumLog4net.INFO);
  869. }
  870. if (reslut.IsSuccess)
  871. {
  872. json.Status = "y";
  873. }
  874. else
  875. {
  876. json.Msg = "保存用户档案失败";
  877. }
  878. }
  879. else
  880. {
  881. json.Msg = "未找到要编辑的用户记录";
  882. }
  883. }
  884. }
  885. catch (Exception e)
  886. {
  887. this.UserManage.Rollback();
  888. json.Msg = e.InnerException.Message;
  889. WriteLog(enumOperator.None, "保存人员档案:", e);
  890. }
  891. return Json(json);
  892. }
  893. #endregion
  894. #region 修改密码页面窗体
  895. /// <summary>
  896. /// 修改密码页面窗体
  897. /// </summary>
  898. [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "SetPassword")]
  899. public ActionResult PasswordSet()
  900. {
  901. if (!string.IsNullOrEmpty(this.CurrentUser.Name))
  902. {
  903. var entity = this.UserManage.Get(p => p.ID == CurrentUser.Id);
  904. return View(entity);
  905. }
  906. return View();
  907. }
  908. /// <summary>
  909. /// 修改密码功能实现函数
  910. /// </summary>
  911. public ActionResult PasswordSave()
  912. {
  913. JsonHelper json = new JsonHelper() { Msg = "修改密码完成", Status = "n" };
  914. var ID = Request.Form["ID"] ?? "";
  915. if (string.IsNullOrEmpty(ID))
  916. {
  917. json.Msg = "请登录";
  918. return Json(json);
  919. }
  920. string OldPassword = Request.Form["oldpass"];
  921. string NewPassword = Request.Form["newpass"];
  922. string confPassword = Request.Form["confpass"];
  923. int newid = int.Parse(ID);
  924. var entity = this.UserManage.Get(p => p.ID == newid);
  925. var pwd = PasswordUtils.MD5_Encrypt(NewPassword, 32);
  926. entity.PASSWORD = pwd;
  927. if (CurrentUser.DptInfo.ID > 0)
  928. {
  929. if (CurrentUser.DptInfo.IfNotNull())
  930. {
  931. if (!CurrentUser.DptInfo.ID.IsNullOrEmpty())
  932. {
  933. using (AntORM orm = new AntORM())
  934. {
  935. orm.db = DataAccessFactory.CreateDataConnection("CyclingItem");
  936. RequestModel request = new RequestModel();
  937. request.newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "保存学校" };
  938. var schoolid = CurrentUser.DptInfo.ID;
  939. var reslutschool = orm.UpdateByLambda<YM_School>(p => new YM_School { PassWord = NewPassword }, f => f.ID == schoolid, request);
  940. if (reslutschool.IsSuccess)
  941. {
  942. }
  943. }
  944. }
  945. }
  946. }
  947. //entity.PASSWORD = Ant.Service.Common.CryptHelper.DESCrypt.Encrypt(NewPassword);
  948. try
  949. {
  950. this.UserManage.Update(entity);
  951. json.Status = "y";
  952. WriteLog(enumOperator.Edit, "修改密码:" + json.Msg, enumLog4net.INFO);
  953. return Json(json);
  954. }
  955. catch (Exception e)
  956. {
  957. json.Msg = e.Message;
  958. WriteLog(enumOperator.Edit, "修改密码错误:", e);
  959. return Json(json);
  960. }
  961. }
  962. /// <summary>
  963. /// 修改密码前检测旧密码是否正确
  964. /// </summary>
  965. public ActionResult CheckoldPass(string oldPassword)
  966. {
  967. JsonHelper json = new JsonHelper() { Msg = "Success", Status = "n" };
  968. string id = Request.Form["ID"];
  969. string oldpass = Request.Form["oldpass"];
  970. if (string.IsNullOrEmpty(id))
  971. {
  972. json.Msg = "未找到要处理的用户";
  973. return Json(json);
  974. }
  975. var pass = PasswordUtils.MD5_Encrypt(oldpass, 32);
  976. int newid = int.Parse(id);
  977. var result = this.UserManage.IsExist(p => p.ID == newid && p.PASSWORD.Equals(pass));
  978. if (!result)
  979. {
  980. json.Msg = "原始密码错误";
  981. return Json(json);
  982. }
  983. json.Status = "y";
  984. return Json(json);
  985. }
  986. #endregion
  987. #region 切换用户
  988. /// <summary>
  989. /// 用户切换
  990. /// </summary>
  991. [UserAuthorizeAttribute(ModuleAlias = "User", OperaAction = "Change")]
  992. public ActionResult ChangeUser(int? id)
  993. {
  994. JsonHelper json = new JsonHelper() { Msg = "Success", Status = "n" };
  995. if (id != null && id > 0)
  996. {
  997. var user = this.UserManage.Get(p => p.ID == id);
  998. if (user != null)
  999. {
  1000. if (user.ISCANLOGIN != true)
  1001. {
  1002. var acconut = this.UserManage.GetAccountByUser(user);
  1003. //清理SESSION COOKIE
  1004. SessionHelper.Remove("CurrentUser");
  1005. CookieHelper.ClearCookie("cookie_rememberme");
  1006. CookieHelper.ClearCookie("CCS");
  1007. //写入Session 当前登录用户
  1008. SessionHelper.SetSession("CurrentUser", acconut);
  1009. string cookievalue = "{\"id\":\"" + acconut.Id + "\",\"username\":\"" + acconut.LogName + "\",\"password\":\"" + acconut.PassWord + "\",\"ToKen\":\"" + Session.SessionID + "\"}";
  1010. CookieHelper.SetCookie("cookie_rememberme", Ant.Service.Common.CryptHelper.DESCrypt.Encrypt(cookievalue), null);
  1011. json.Status = "y";
  1012. WriteLog(enumOperator.Login, "切换用户:" + acconut.Name, enumLog4net.WARN);
  1013. return Json(json);
  1014. }
  1015. else
  1016. {
  1017. json.Msg = "用户已锁定,禁止登录,无法切换";
  1018. }
  1019. }
  1020. else
  1021. {
  1022. json.Msg = "用户不存在,无法切换";
  1023. }
  1024. }
  1025. else
  1026. {
  1027. json.Msg = "用户ID不存在,无法切换";
  1028. }
  1029. WriteLog(enumOperator.Login, "切换用户:" + json.Msg, enumLog4net.ERROR);
  1030. return Json(json);
  1031. }
  1032. /// <summary>
  1033. /// 首页用户切换,ID=Account
  1034. /// </summary>
  1035. public ActionResult ChangeUserName(string id)
  1036. {
  1037. JsonHelper json = new JsonHelper() { Status = "n" };
  1038. try
  1039. {
  1040. if (!string.IsNullOrEmpty(id))
  1041. {
  1042. var entity = this.UserManage.Get(p => p.ACCOUNT == id);
  1043. if (entity != null)
  1044. {
  1045. if (entity.ISCANLOGIN != true)
  1046. {
  1047. var acconut = this.UserManage.GetAccountByUser(entity);
  1048. //清理SESSION COOKIE
  1049. SessionHelper.Remove("CurrentUser");
  1050. CookieHelper.ClearCookie("cookie_rememberme");
  1051. CookieHelper.ClearCookie("CCS");
  1052. //写入Session 当前登录用户
  1053. SessionHelper.SetSession("CurrentUser", acconut);
  1054. string cookievalue = "{\"id\":\"" + acconut.Id + "\",\"username\":\"" + acconut.LogName + "\",\"password\":\"" + acconut.PassWord + "\",\"ToKen\":\"" + Session.SessionID + "\"}";
  1055. CookieHelper.SetCookie("cookie_rememberme", Ant.Service.Common.CryptHelper.DESCrypt.Encrypt(cookievalue), null);
  1056. json.Status = "y";
  1057. WriteLog(enumOperator.Login, "切换用户:" + acconut, enumLog4net.WARN);
  1058. return Json(json);
  1059. }
  1060. else
  1061. {
  1062. json.Msg = "用户已锁定,禁止登录,无法切换";
  1063. }
  1064. }
  1065. else
  1066. {
  1067. json.Msg = "查无此人";
  1068. }
  1069. }
  1070. else
  1071. {
  1072. json.Msg = "请输入用户名";
  1073. }
  1074. WriteLog(enumOperator.Login, "切换用户:" + json.Msg, enumLog4net.ERROR);
  1075. }
  1076. catch (Exception e) { json.Msg = e.Message; WriteLog(enumOperator.Login, "切换用户错误:", e); }
  1077. return Json(json);
  1078. }
  1079. #endregion
  1080. #region 选择人员
  1081. /// <summary>
  1082. /// 选择人员视图
  1083. /// </summary>
  1084. public ActionResult SelectUser()
  1085. {
  1086. try
  1087. {
  1088. #region 选中人员
  1089. string userId = Request["userid"] ?? "";
  1090. ViewData["userId"] = userId;
  1091. #endregion
  1092. #region 部门列表
  1093. //部门列表
  1094. var dptlist = this.DepartmentManage.RecursiveDepartmentNew("32f7a4bd-84de-4587-be29-734d65ad6f70");
  1095. ViewData["dptsearch"] = dptlist;
  1096. #endregion
  1097. ViewBag.Search = base.keywords;
  1098. #region 岗位
  1099. int usertype = -1;
  1100. if (!Request.QueryString["postid"].IsEmpty())
  1101. {
  1102. usertype = Request.QueryString["postid"].ToInt32();
  1103. }
  1104. ViewData["postid"] = Request.QueryString["postid"];
  1105. var list = this.CodeManage.GetCode("POSTTYPE", "3", "6");
  1106. ViewData["postType"] = list;
  1107. #endregion
  1108. #region 人员列表
  1109. using (AntORM orm = new AntORM())
  1110. {
  1111. orm.db = DataAccessFactory.CreateDataConnection("CyclingItem");
  1112. RequestModel res = new RequestModel
  1113. {
  1114. newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "获取人员列表信息" }
  1115. };
  1116. //var reslut = orm.Queryable<SYS_USER>().Where(p => p.USERTYPE == 3).ToList(res);
  1117. var result = BindUserList("", usertype);
  1118. return View(result);
  1119. }
  1120. #endregion
  1121. }
  1122. catch (Exception e)
  1123. {
  1124. WriteLog(enumOperator.Select, "选择人员错误:", e);
  1125. }
  1126. return View();
  1127. }
  1128. #endregion
  1129. #region 通讯录
  1130. /// <summary>
  1131. /// 内部通讯录
  1132. /// </summary>
  1133. public ActionResult Contacts()
  1134. {
  1135. try
  1136. {
  1137. var result = this.UserManage.LoadAll(p => p.ISCANLOGIN == false).Select(p => new { p.ID, p.NAME, p.PINYIN2, p.ACCOUNT }).ToList();
  1138. ViewData["userlist"] = JsonConverter.Serialize(result);
  1139. }
  1140. catch (Exception e)
  1141. {
  1142. WriteLog(enumOperator.Select, "内部通讯录错误:", e);
  1143. }
  1144. return View();
  1145. }
  1146. /// <summary>
  1147. /// 名片
  1148. /// </summary>
  1149. public ActionResult Card(int? id)
  1150. {
  1151. try
  1152. {
  1153. //用户信息
  1154. var entity = this.UserManage.Get(p => p.ID == id) ?? new SYS_USER();
  1155. //用户档案
  1156. var entityinfo = this.UserInfoManage.Get(p => p.USERID == id) ?? new SYS_USERINFO();
  1157. ViewData["userInfo"] = entityinfo;
  1158. //用户登录日志记录
  1159. ViewData["login"] = this.SyslogManage.LoadAll(p => p.CLIENTUSER == CurrentUser.LogName && p.ACTION == "Login" && p.MESSAGE.Contains("登录成功")).OrderByDescending(p => p.DATES).First() ?? new SYS_LOG();
  1160. //部门
  1161. ViewData["dpt"] = this.DepartmentManage.Get(p => p.ID == entity.DPTID) ?? new SYS_DISTRIBUTORS();
  1162. //职务
  1163. ViewData["zyzg"] = this.CodeManage.GetCodeNameByCodeValue("ZW", entityinfo.POSTCODE.ToString());
  1164. return View(entity);
  1165. }
  1166. catch (Exception e)
  1167. {
  1168. WriteLog(enumOperator.Select, "名片:", e);
  1169. throw e.InnerException;
  1170. }
  1171. }
  1172. #endregion
  1173. #region 帮助方法
  1174. /// <summary>
  1175. /// 查询分页用户列表
  1176. /// </summary>
  1177. private PageInfo AgriculturalBindList(string dptId, string postId, int usertype)
  1178. {
  1179. //基本数据
  1180. var query = this.UserManage.LoadAll(null);
  1181. //部门
  1182. if (!string.IsNullOrEmpty(dptId))
  1183. {
  1184. var userIdList = GetDptUserIdList(dptId).Cast<int>();
  1185. query = query.Where(p => userIdList.Contains(p.ID));
  1186. }
  1187. //关键词
  1188. if (!string.IsNullOrEmpty(keywords))
  1189. {
  1190. keywords = keywords.ToLower();
  1191. query = query.Where(p => p.NAME.Contains(keywords) || p.ACCOUNT.Contains(keywords) || p.PINYIN2.Contains(keywords) || p.PINYIN1.Contains(keywords));
  1192. }
  1193. if (usertype > 0)
  1194. {
  1195. query = query.Where(p => p.USERTYPE == usertype);
  1196. }
  1197. //岗位
  1198. if (!string.IsNullOrEmpty(postId))
  1199. {
  1200. var userIdlist = GetUserIdByPostId(postId);
  1201. query = query.Where(p => userIdlist.Contains(p.ID));
  1202. }
  1203. //排序
  1204. query = query.OrderBy(p => p.SHOWORDER2);
  1205. //分页
  1206. var result = this.UserManage.Query(query, page, pagesize);
  1207. var list = result.List.Select((p, i) => new
  1208. {
  1209. INDEX = i + 1,
  1210. p.ID,
  1211. p.NAME,
  1212. p.ACCOUNT,
  1213. DPTNAME = this.DepartmentManage.GetDepartmentName(p.DPTID),
  1214. POSTNAME = GetPostName(p.SYS_POST_USER),
  1215. CarNum = GetCarNum(p.ID.ToString()),
  1216. PHONE = p.PHONE,
  1217. ROLENAME = GetRoleName(p.SYS_USER_ROLE),
  1218. ISCANLOGIN = p.ISCANLOGIN == false ? "正常" : "锁定",
  1219. CREATEDATE = p.CREATEDATE,
  1220. Createper = p.CREATEPER
  1221. });
  1222. return new PageInfo(result.Index, result.PageSize, result.Count, JsonConverter.JsonClass(list));
  1223. }
  1224. private int GetCarNum(string userid)
  1225. {
  1226. int count = 0;
  1227. using (AntORM orm = new AntORM())
  1228. {
  1229. orm.db = DataAccessFactory.CreateDataConnection("CyclingItem");
  1230. RequestModel res = new RequestModel();
  1231. res.newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "查询菜单的单个实体方法" };
  1232. var q = orm.Queryable<MES.Production.Entity.YW_UserCar>().Where(p => p.userId == userid).Count();
  1233. count = q;
  1234. }
  1235. return count;
  1236. }
  1237. /// <summary>
  1238. /// 查询分页用户列表
  1239. /// </summary>
  1240. private PageInfo BindUserList(string dptId, int postId)
  1241. {
  1242. //基本数据
  1243. var query = this.UserManage.LoadAll(null);
  1244. //部门
  1245. if (!string.IsNullOrEmpty(dptId) && dptId != "-1")
  1246. {
  1247. var userIdList = GetDptUserIdList(dptId).Cast<int>();
  1248. query = query.Where(p => userIdList.Contains(p.ID));
  1249. }
  1250. //关键词
  1251. if (!string.IsNullOrEmpty(keywords))
  1252. {
  1253. keywords = keywords.ToLower();
  1254. query = query.Where(p => p.NAME.Contains(keywords) || p.ACCOUNT.Contains(keywords) || p.PINYIN2.Contains(keywords) || p.PINYIN1.Contains(keywords));
  1255. }
  1256. //岗位
  1257. if (postId >= 0)
  1258. {
  1259. query = query.Where(p => p.USERTYPE == postId);
  1260. }
  1261. else
  1262. {
  1263. // query = query.Where(p => p.USERTYPE == 6 || p.USERTYPE == 3 || p.USERTYPE == 0); //3销售人员;6是三包人员
  1264. }
  1265. //排序
  1266. query = query.OrderBy(p => p.SHOWORDER2);
  1267. //分页
  1268. var result = this.UserManage.Query(query, page, pagesize);
  1269. var list = result.List.Select((p, i) => new
  1270. {
  1271. INDEX = i + 1,
  1272. p.ID,
  1273. p.NAME,
  1274. p.ACCOUNT,
  1275. DPTNAME = this.DepartmentManage.GetDepartmentName(p.DPTID),
  1276. POSTNAME = GetUserPostName(p.USERTYPE.ToString()),
  1277. PHONE = p.PHONE,
  1278. ROLENAME = GetRoleName(p.SYS_USER_ROLE),
  1279. ISCANLOGIN = p.ISCANLOGIN == false ? "正常" : "锁定",
  1280. CREATEDATE = p.CREATEDATE,
  1281. Createper = p.CREATEPER
  1282. });
  1283. return new PageInfo(result.Index, result.PageSize, result.Count, JsonConverter.JsonClass(list));
  1284. }
  1285. /// <summary>
  1286. /// 查询分页用户列表
  1287. /// </summary>
  1288. private PageInfo BindList(string dptId, string postId)
  1289. {
  1290. ////基本数据
  1291. //var query = this.UserManage.LoadAll(null);
  1292. ////部门
  1293. //if (!string.IsNullOrEmpty(dptId))
  1294. //{
  1295. // var userIdList = GetDptUserIdList(dptId).Cast<int>();
  1296. // query = query.Where(p => userIdList.Contains(p.ID));
  1297. //}
  1298. ////关键词
  1299. ////岗位
  1300. //if (!string.IsNullOrEmpty(postId))
  1301. //{
  1302. // var userIdlist = GetUserIdByPostId(postId);
  1303. // query = query.Where(p => userIdlist.Contains(p.ID));
  1304. //}
  1305. ////排序
  1306. //query = query.OrderBy(p => p.SHOWORDER2);
  1307. ////分页
  1308. //var result = this.UserManage.Query(query, page, pagesize);
  1309. //var list = result.List.Select((p, i) => new
  1310. //{
  1311. // INDEX = i + 1,
  1312. // p.ID,
  1313. // p.NAME,
  1314. // p.ACCOUNT,
  1315. // DPTNAME = this.DepartmentManage.GetDepartmentName(p.DPTID),
  1316. // POSTNAME = GetPostName(p.SYS_POST_USER),
  1317. // PHONE = p.PHONE,
  1318. // ROLENAME = GetRoleName(p.SYS_USER_ROLE),
  1319. // ISCANLOGIN = p.ISCANLOGIN == false ? "正常" : "锁定",
  1320. // CREATEDATE = p.CREATEDATE,
  1321. // Createper = p.CREATEPER
  1322. //});
  1323. using (AntORM orm = new AntORM())
  1324. {
  1325. orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
  1326. RequestModel request = new RequestModel
  1327. {
  1328. newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "查询菜单的单个实体方法" }
  1329. };
  1330. var user = orm.Queryable<En_SYS_USER>();
  1331. var userrole = orm.Queryable<EntSYS_USER_ROLE>();
  1332. var role = orm.Queryable<Ent_SYS_ROLE>();
  1333. var user_role = user.LeftJoin(userrole, (User, UserRole) => (User.ID == UserRole.FK_USERID)).LeftJoin(role, (User, UserRole, Role) => UserRole.FK_ROLEID == Role.ID);
  1334. var qq = user_role.Select((users, userroles, roles) => new { User = users, Role = roles });
  1335. if (!string.IsNullOrEmpty(keywords))
  1336. {
  1337. keywords = keywords.ToLower();
  1338. qq = qq.Where(p => p.User.NAME.Contains(keywords) || p.User.ACCOUNT.Contains(keywords) || p.User.PINYIN2.Contains(keywords) || p.User.PINYIN1.Contains(keywords));
  1339. }
  1340. int pageno = (page - 1) * pagesize;
  1341. var reslut = qq.OrderBy(p => p.User.SHOWORDER2).Skip(pageno).Top(pagesize).ToList(request);
  1342. if (reslut.IsSuccess)
  1343. {
  1344. reslut.RecordNum = qq.Count();
  1345. List<Ent_User> lists = new List<Ent_User>();
  1346. foreach (var ent in reslut.ResultModel)
  1347. {
  1348. try
  1349. {
  1350. En_SYS_USER mod = ent.User; Ent_SYS_ROLE rolemod = ent.Role;
  1351. var usertype = mod.USERTYPE.ToString(); var dptyname = "系统用户";// this.DepartmentManage.GetDepartmentName(mod.DPTID);
  1352. orm.db = DataAccessFactory.CreateDataConnection("CyclingItem");
  1353. RequestModel res = new RequestModel
  1354. {
  1355. newSt = new SqlNote() { Author = "季健国", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "查询学校" },
  1356. };
  1357. int num = (mod.DPTID).ToInt32();
  1358. var resultSchool = orm.Queryable<YM_School>().Where(p => p.ID == num).FirstOrDefault(res);
  1359. if (resultSchool.IsSuccess)
  1360. {
  1361. YM_School schoolmod = resultSchool.ResultModel;
  1362. dptyname = schoolmod.Name;
  1363. }
  1364. //SYS_CODE post = this.CodeManage.LoadAll(p => p.CODETYPE == "POSTTYPE" && p.CODEVALUE == usertype).FirstOrDefault();
  1365. Ent_User users = new Ent_User
  1366. {
  1367. ID = mod.ID.ToInt32(),
  1368. NAME = mod.NAME,
  1369. ACCOUNT = mod.ACCOUNT,
  1370. ISCANLOGIN = mod.ISCANLOGIN == false ? "正常" : "锁定"
  1371. };
  1372. //if (post.IfNotNull())
  1373. //{
  1374. // users.POSTNAME = post.NAMETEXT;
  1375. //}
  1376. users.DPTNAME = dptyname;
  1377. if (!rolemod.IsNull())
  1378. {
  1379. users.ROLENAME = rolemod.ROLENAME;
  1380. }
  1381. lists.Add(users);
  1382. }
  1383. catch (Exception ex)
  1384. {
  1385. }
  1386. }
  1387. return new PageInfo(base.page, base.pagesize, reslut.RecordNum, JsonConverter.JsonClass(lists));
  1388. }
  1389. }
  1390. return new PageInfo(base.page, base.pagesize, 0, JsonConverter.JsonClass(new List<Ent_SYS_USER>()));
  1391. // var lists = list.ToList();
  1392. //return new PageInfo(result.Index, result.PageSize, lists.Count, JsonConverter.JsonClass(lists));
  1393. }
  1394. /// <summary>
  1395. /// 通过部门ID,获取下级部门ID集合
  1396. /// </summary>
  1397. public List<int> GetDptUserIdList(string dptId)
  1398. {
  1399. //兼职部门
  1400. var dptIdList = this.DepartmentManage.RecursiveDepartment(dptId).Select(p => p.ID).ToList();
  1401. //兼职部门的人员
  1402. var userlist = this.UserDepartmentManage.GetUserListByDptId(dptIdList).Select(p => p.ID).ToList();
  1403. //本职部门的人员
  1404. var userlist2 = this.UserManage.LoadAll(p => dptIdList.Contains(p.DPTID)).Select(p => p.ID).ToList();
  1405. userlist.AddRange(userlist2);
  1406. return userlist;
  1407. }
  1408. /// <summary>
  1409. /// 获取角色名称
  1410. /// add 作者: 季健国 QQ:181589805 by 2016-06-07
  1411. /// </summary>
  1412. private string GetRoleName(ICollection<SYS_USER_ROLE> collection)
  1413. {
  1414. return collection.Aggregate(string.Empty, (current, t) => current + (t.SYS_ROLE.ROLENAME + ",")).TrimEnd(',');
  1415. }
  1416. /// <summary>
  1417. /// 获取用户岗位
  1418. /// </summary>
  1419. /// <param name="usertype"></param>
  1420. /// <returns></returns>
  1421. private string GetUserPostName(string usertype)
  1422. {
  1423. var postlist = this.CodeManage.GetCode("POSTTYPE");
  1424. foreach (var mod in postlist)
  1425. {
  1426. if (mod.CODEVALUE == usertype.ToString())
  1427. {
  1428. return mod.NAMETEXT;
  1429. }
  1430. }
  1431. return "";
  1432. }
  1433. /// <summary>
  1434. /// 根据岗位集合获取岗位名称
  1435. /// 部门-岗位
  1436. /// </summary>
  1437. private string GetPostName(ICollection<SYS_POST_USER> collection)
  1438. {
  1439. string retval = string.Empty;
  1440. if (collection != null && collection.Count > 0)
  1441. {
  1442. var postcoll = this.PostUserManage.GetPostNameBySysPostUser(collection);
  1443. foreach (var item in postcoll)
  1444. {
  1445. if (retval != null) retval += item.postname + ",";
  1446. }
  1447. }
  1448. return retval = retval.TrimEnd(',');
  1449. }
  1450. /// <summary>
  1451. /// 根据岗位ID获取该岗位人员ID集合
  1452. /// </summary>
  1453. private List<int> GetUserIdByPostId(string postId)
  1454. {
  1455. var userlist = this.PostUserManage.GetUserListByPostId("'" + postId + "'");
  1456. return userlist.Select(p => p.ID).ToList();
  1457. }
  1458. /// <summary>
  1459. /// 获取部门名称
  1460. /// </summary>
  1461. private object GetDptName(ICollection<SYS_USER_DEPARTMENT> collection)
  1462. {
  1463. return collection.Aggregate(string.Empty, (current, t) => current + t.SYS_DISTRIBUTORS.NAME + ",").TrimEnd(',');
  1464. }
  1465. #endregion
  1466. }
  1467. }