From e320ba7da8e1da608ea3e4c3faf69286a8bf2f09 Mon Sep 17 00:00:00 2001 From: yubaolee Date: Mon, 16 Nov 2015 23:18:51 +0800 Subject: [PATCH] Routine Update --- OpenAuth.App/UserManagerApp.cs | 117 ++++++++++++++++++ .../Controllers/UserManagerController.cs | 2 +- OpenAuth.Mvc/Views/UserManager/Index.cshtml | 20 ++- 3 files changed, 127 insertions(+), 12 deletions(-) create mode 100644 OpenAuth.App/UserManagerApp.cs diff --git a/OpenAuth.App/UserManagerApp.cs b/OpenAuth.App/UserManagerApp.cs new file mode 100644 index 00000000..ea284d77 --- /dev/null +++ b/OpenAuth.App/UserManagerApp.cs @@ -0,0 +1,117 @@ +using OpenAuth.App.ViewModel; +using OpenAuth.Domain; +using OpenAuth.Domain.Interface; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace OpenAuth.App +{ + public class UserManagerApp + { + private IUserRepository _repository; + private IOrgRepository _orgRepository; + + public UserManagerApp(IUserRepository repository, + IOrgRepository orgRepository) + { + _repository = repository; + _orgRepository = orgRepository; + } + + public int GetUserCntInOrg(int orgId) + { + if (orgId == 0) + { + return _repository.Find(null).Count(); + } + else + { + return _repository.GetUserCntInOrgs(GetSubOrgIds(orgId)); + } + } + + /// + /// 加载一个部门及子部门全部用户 + /// + public dynamic Load(int orgId, int pageindex, int pagesize) + { + IEnumerable users; + int total = 0; + if (orgId == 0) + { + users = _repository.LoadUsers(pageindex, pagesize); + total = _repository.GetCount(); + } + else + { + users = _repository.LoadInOrgs(pageindex, pagesize,GetSubOrgIds(orgId)); + total = _repository.GetUserCntInOrgs(orgId); + } + var userviews = new List(); + foreach (var user in users) + { + UserView uv = user; + uv.Organizations = string.Join(",", _orgRepository.LoadByUser(user.Id).Select(u => u.Name).ToList()); + userviews.Add(uv); + } + + return new + { + total = total, + list = userviews, + pageCurrent = pageindex + }; + } + + /// + /// 获取当前组织的所有下级组织 + /// + private int[] GetSubOrgIds(int orgId) + { + var org = _orgRepository.FindSingle(u => u.Id == orgId); + var orgs = _orgRepository.Find(u => u.CascadeId.Contains(org.CascadeId)).Select(u => u.Id).ToArray(); + return orgs; + } + + public UserView Find(int id) + { + var user = _repository.FindSingle(u => u.Id == id); + if (user == null) return new UserView(); + + UserView view = user; + foreach (var org in _orgRepository.LoadByUser(id)) + { + view.Organizations += "," + org.Name; + view.OrganizationIds += "," + org.Id; + } + view.OrganizationIds = view.OrganizationIds.TrimStart(','); + view.Organizations = view.Organizations.TrimStart(','); + return view; + } + + public void Delete(int id) + { + _repository.Delete(id); + } + + public void AddOrUpdate(UserView view) + { + User user = view; + if (user.Id == 0) + { + user.CreateTime = DateTime.Now; + _repository.Add(user); + } + else + { + _repository.Update(user); + } + int[] orgIds = view.OrganizationIds.Split(',').Select(id => int.Parse(id)).ToArray(); + + _repository.SetOrg(user.Id, orgIds); + } + + + } +} \ No newline at end of file diff --git a/OpenAuth.Mvc/Controllers/UserManagerController.cs b/OpenAuth.Mvc/Controllers/UserManagerController.cs index d26d98e7..de02cb26 100644 --- a/OpenAuth.Mvc/Controllers/UserManagerController.cs +++ b/OpenAuth.Mvc/Controllers/UserManagerController.cs @@ -27,7 +27,7 @@ namespace OpenAuth.Mvc.Controllers return View(_app.Find(id)); } - //添加组织提交 + //添加或修改组织 [HttpPost] public string Add(UserView view) { diff --git a/OpenAuth.Mvc/Views/UserManager/Index.cshtml b/OpenAuth.Mvc/Views/UserManager/Index.cshtml index 93017dab..22e2fe92 100644 --- a/OpenAuth.Mvc/Views/UserManager/Index.cshtml +++ b/OpenAuth.Mvc/Views/UserManager/Index.cshtml @@ -35,7 +35,7 @@ filterThead: false, toolbarItem: 'refresh, |, del', toolbarCustom: '添加' + + 'data-toggle="dialog" data-id="dialog-mask" data-mask="true" data-on-close="loadDataGrid">添加' + '', columns: [ { @@ -88,8 +88,6 @@ dataUrl: 'UserManager/Load?orgId=' + selectedId, delUrl: 'UserManager/Delete', delPK: "Id", - editUrl: 'UserManager/Edit', - editMode: 'dialog', fullGrid: true, showLinenumber: true, showCheckboxcol: true, @@ -103,13 +101,6 @@ else { $(this).alertmsg('warn', delResult.message); } - }, - editCallback: function (delResult) { - if (delResult.statusCode == "200") - loadDataGrid(); - else { - $(this).alertmsg('warn', delResult.message); - } } }); } @@ -170,7 +161,14 @@ var selected = getSelected(2); if (selected == null) return; - $(this).dialog({ id: 'editDialog', url: '/UserManager/Add?id='+selected, title: '编辑' }); + $(this).dialog({ + id: 'editDialog', + url: '/UserManager/Add?id=' + selected, + title: '编辑', + onClose:function() { + loadDataGrid(); + } + }); } //@@ sourceURL=userManagerIndex.js