添加角色处理

This commit is contained in:
yubaolee 2015-11-19 21:49:39 +08:00
parent 6906e969ac
commit 119948ccb7
24 changed files with 1763 additions and 899 deletions

108
DB.sql
View File

@ -1,6 +1,6 @@
/*==============================================================*/ /*==============================================================*/
/* DBMS name: Microsoft SQL Server 2008 */ /* DBMS name: Microsoft SQL Server 2008 */
/* Created on: 2015/11/15 23:04:57 */ /* Created on: 2015/11/19 21:22:16 */
/*==============================================================*/ /*==============================================================*/
@ -402,7 +402,7 @@ end
select @CurrentUser = user_name() select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', execute sp_addextendedproperty 'MS_Description',
'模块元素表', '模块元素表(需要权限控制的按钮)',
'user', @CurrentUser, 'table', 'ModuleElement' 'user', @CurrentUser, 'table', 'ModuleElement'
go go
@ -497,7 +497,7 @@ end
select @CurrentUser = user_name() select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', execute sp_addextendedproperty 'MS_Description',
'所属功能模块流水号', '功能模块Id',
'user', @CurrentUser, 'table', 'ModuleElement', 'column', 'ModuleId' 'user', @CurrentUser, 'table', 'ModuleElement', 'column', 'ModuleId'
go go
@ -587,7 +587,7 @@ end
select @CurrentUser = user_name() select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', execute sp_addextendedproperty 'MS_Description',
'页面元素流水号', '元素流水号',
'user', @CurrentUser, 'table', 'ModuleElementGrant', 'column', 'ElementId' 'user', @CurrentUser, 'table', 'ModuleElementGrant', 'column', 'ElementId'
go go
@ -777,6 +777,25 @@ execute sp_addextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'ModuleRole', 'column', 'OperateTime' 'user', @CurrentUser, 'table', 'ModuleRole', 'column', 'OperateTime'
go go
if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('ModuleRole')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'OperatorId')
)
begin
declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'ModuleRole', 'column', 'OperatorId'
end
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',
'授权人流水号',
'user', @CurrentUser, 'table', 'ModuleRole', 'column', 'OperatorId'
go
alter table ModuleRole alter table ModuleRole
add constraint PK_MODULEROLE primary key (Id) add constraint PK_MODULEROLE primary key (Id)
go go
@ -1133,14 +1152,15 @@ go
/* Table: Role */ /* Table: Role */
/*==============================================================*/ /*==============================================================*/
create table Role ( create table Role (
Id int identity, Id int not null,
Name varchar(255) not null default ' ', Name varchar(255) not null default ' ',
Status int not null default 1, Status int not null default 1,
Type int not null default 0, Type int not null default 0,
CreateTime datetime not null default getdate(), CreateTime datetime not null default getdate(),
CreateId varchar(64) not null default ' ', CreateId varchar(64) not null default ' ',
CreateOrgId int not null default 0, OrgId int not null default 0,
CreateOrgCascadeId varchar(255) not null default ' ' OrgCascadeId varchar(255) not null default ' ',
OrgName varchar(255) not null default ' '
) )
go go
@ -1277,40 +1297,59 @@ go
if exists(select 1 from sys.extended_properties p where if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('Role') p.major_id = object_id('Role')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'CreateOrgId') and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'OrgId')
) )
begin begin
declare @CurrentUser sysname declare @CurrentUser sysname
select @CurrentUser = user_name() select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description', execute sp_dropextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'Role', 'column', 'CreateOrgId' 'user', @CurrentUser, 'table', 'Role', 'column', 'OrgId'
end end
select @CurrentUser = user_name() select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', execute sp_addextendedproperty 'MS_Description',
'创建人所属部门流水号', '所属部门流水号',
'user', @CurrentUser, 'table', 'Role', 'column', 'CreateOrgId' 'user', @CurrentUser, 'table', 'Role', 'column', 'OrgId'
go go
if exists(select 1 from sys.extended_properties p where if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('Role') p.major_id = object_id('Role')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'CreateOrgCascadeId') and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'OrgCascadeId')
) )
begin begin
declare @CurrentUser sysname declare @CurrentUser sysname
select @CurrentUser = user_name() select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description', execute sp_dropextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'Role', 'column', 'CreateOrgCascadeId' 'user', @CurrentUser, 'table', 'Role', 'column', 'OrgCascadeId'
end end
select @CurrentUser = user_name() select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description', execute sp_addextendedproperty 'MS_Description',
'创建人所属部门节点语义ID', '所属部门节点语义ID',
'user', @CurrentUser, 'table', 'Role', 'column', 'CreateOrgCascadeId' 'user', @CurrentUser, 'table', 'Role', 'column', 'OrgCascadeId'
go
if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('Role')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'OrgName')
)
begin
declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'Role', 'column', 'OrgName'
end
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',
'所属部门名称',
'user', @CurrentUser, 'table', 'Role', 'column', 'OrgName'
go go
alter table Role alter table Role
@ -2217,6 +2256,25 @@ execute sp_addextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'UserOrg', 'column', 'Id' 'user', @CurrentUser, 'table', 'UserOrg', 'column', 'Id'
go go
if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('UserOrg')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'OrgId')
)
begin
declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'UserOrg', 'column', 'OrgId'
end
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',
'部门流水号',
'user', @CurrentUser, 'table', 'UserOrg', 'column', 'OrgId'
go
if exists(select 1 from sys.extended_properties p where if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('UserOrg') p.major_id = object_id('UserOrg')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'UserId') and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'UserId')
@ -2326,6 +2384,25 @@ execute sp_addextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'UserRole', 'column', 'Id' 'user', @CurrentUser, 'table', 'UserRole', 'column', 'Id'
go go
if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('UserRole')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'RoleId')
)
begin
declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
'user', @CurrentUser, 'table', 'UserRole', 'column', 'RoleId'
end
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',
'角色ID',
'user', @CurrentUser, 'table', 'UserRole', 'column', 'RoleId'
go
if exists(select 1 from sys.extended_properties p where if exists(select 1 from sys.extended_properties p where
p.major_id = object_id('UserRole') p.major_id = object_id('UserRole')
and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'UserId') and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'UserId')
@ -2386,3 +2463,4 @@ go
alter table UserRole alter table UserRole
add constraint PK_USERROLE primary key (Id) add constraint PK_USERROLE primary key (Id)
go go

View File

@ -44,6 +44,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="LoginApp.cs" /> <Compile Include="LoginApp.cs" />
<Compile Include="RoleManagerApp.cs" />
<Compile Include="UserManagerApp.cs" /> <Compile Include="UserManagerApp.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="OrgManagerApp.cs" /> <Compile Include="OrgManagerApp.cs" />

View File

@ -0,0 +1,99 @@
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 RoleManagerApp
{
private IRoleRepository _repository;
private IOrgRepository _orgRepository;
public RoleManagerApp(IRoleRepository repository,
IOrgRepository orgRepository)
{
_repository = repository;
_orgRepository = orgRepository;
}
public int GetRoleCntInOrg(int orgId)
{
if (orgId == 0)
{
return _repository.Find(null).Count();
}
else
{
return _repository.GetRoleCntInOrgs(GetSubOrgIds(orgId));
}
}
/// <summary>
/// 加载一个部门及子部门全部Roles
/// </summary>
public dynamic Load(int orgId, int pageindex, int pagesize)
{
IEnumerable<Role> roles;
int total = 0;
if (orgId == 0)
{
roles = _repository.LoadRoles(pageindex, pagesize);
total = _repository.GetCount();
}
else
{
roles = _repository.LoadInOrgs(pageindex, pagesize,GetSubOrgIds(orgId));
total = _repository.GetRoleCntInOrgs(orgId);
}
return new
{
total = total,
list = roles,
pageCurrent = pageindex
};
}
/// <summary>
/// 获取当前组织的所有下级组织
/// </summary>
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 Role Find(int id)
{
return _repository.FindSingle(u => u.Id == id);
}
public void Delete(int id)
{
_repository.Delete(id);
}
public void AddOrUpdate(Role view)
{
Role Role = view;
if (Role.Id == 0)
{
Role.CreateTime = DateTime.Now;
_repository.Add(Role);
}
else
{
_repository.Update(Role);
}
}
}
}

View File

@ -0,0 +1,16 @@
using System.Collections.Generic;
using System.Linq;
namespace OpenAuth.Domain.Interface
{
public interface IRoleRepository :IRepository<Role>
{
IEnumerable<Role> LoadRoles(int pageindex, int pagesize);
int GetRoleCntInOrgs(params int[] orgIds);
IEnumerable<Role> LoadInOrgs(int pageindex, int pagesize, params int[] orgIds);
void Delete(int id);
}
}

View File

@ -44,6 +44,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="Interface\IOrgRepository.cs" /> <Compile Include="Interface\IOrgRepository.cs" />
<Compile Include="Interface\IRepository.cs" /> <Compile Include="Interface\IRepository.cs" />
<Compile Include="Interface\IRoleRepository.cs" />
<Compile Include="Interface\IUserRepository.cs" /> <Compile Include="Interface\IUserRepository.cs" />
<Compile Include="Module.cs" /> <Compile Include="Module.cs" />
<Compile Include="ModuleElement.cs" /> <Compile Include="ModuleElement.cs" />

View File

@ -17,7 +17,7 @@ namespace OpenAuth.Domain
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
/// 组织名称 /// 名称
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public string Name { get; set; } public string Name { get; set; }
@ -47,16 +47,22 @@ namespace OpenAuth.Domain
public string CreateId { get; set; } public string CreateId { get; set; }
/// <summary> /// <summary>
/// 创建人所属部门流水号 /// 所属部门流水号
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public int CreateOrgId { get; set; } public int OrgId { get; set; }
/// <summary> /// <summary>
/// 创建人所属部门节点语义ID /// 所属部门节点语义ID
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public string CreateOrgCascadeId { get; set; } public string OrgCascadeId { get; set; }
/// <summary>
/// 所属部门名称
/// </summary>
/// <returns></returns>
public string OrgName { get; set; }
public Role() public Role()
@ -67,8 +73,9 @@ namespace OpenAuth.Domain
this.Type= 0; this.Type= 0;
this.CreateTime= DateTime.Now; this.CreateTime= DateTime.Now;
this.CreateId= string.Empty; this.CreateId= string.Empty;
this.CreateOrgId= 0; this.OrgId= 0;
this.CreateOrgCascadeId= string.Empty; this.OrgCascadeId= string.Empty;
this.OrgName= string.Empty;
} }

View File

@ -12,12 +12,12 @@
// <summary>IOC³õʼ»¯</summary> // <summary>IOC³õʼ»¯</summary>
// *********************************************************************** // ***********************************************************************
using System.Reflection;
using System.Web.Mvc;
using Autofac; using Autofac;
using Autofac.Configuration; using Autofac.Configuration;
using Autofac.Integration.Mvc; using Autofac.Integration.Mvc;
using OpenAuth.App; using OpenAuth.App;
using System.Reflection;
using System.Web.Mvc;
namespace OpenAuth.Mvc namespace OpenAuth.Mvc
{ {
@ -31,8 +31,7 @@ namespace OpenAuth.Mvc
builder.RegisterType<LoginApp>(); builder.RegisterType<LoginApp>();
builder.RegisterType<OrgManagerApp>(); builder.RegisterType<OrgManagerApp>();
builder.RegisterType<UserManagerApp>(); builder.RegisterType<UserManagerApp>();
builder.RegisterType<RoleManagerApp>();
// Register your MVC controllers. // Register your MVC controllers.
builder.RegisterControllers(typeof(MvcApplication).Assembly); builder.RegisterControllers(typeof(MvcApplication).Assembly);

View File

@ -0,0 +1,80 @@
using System;
using System.Web.Mvc;
using Infrastructure;
using OpenAuth.App;
using OpenAuth.App.ViewModel;
using OpenAuth.Domain;
namespace OpenAuth.Mvc.Controllers
{
public class RoleManagerController : BaseController
{
private RoleManagerApp _app;
public RoleManagerController()
{
_app = (RoleManagerApp)DependencyResolver.Current.GetService(typeof(RoleManagerApp));
}
//
// GET: /RoleManager/
public ActionResult Index()
{
return View();
}
public ActionResult Add(int id = 0)
{
return View(_app.Find(id));
}
//添加或修改组织
[HttpPost]
public string Add(Role view)
{
try
{
_app.AddOrUpdate(view);
}
catch (Exception ex)
{
BjuiResponse.statusCode = "300";
BjuiResponse.message = ex.Message;
}
return JsonHelper.Instance.Serialize(BjuiResponse);
}
/// <summary>
/// 加载组织下面的所有用户
/// </summary>
public string Load(int orgId, int pageCurrent = 1, int pageSize = 30)
{
return JsonHelper.Instance.Serialize(_app.Load(orgId, pageCurrent, pageSize));
}
//获取组织下面用户个数
public int GetCount(int orgId)
{
return _app.GetRoleCntInOrg(orgId);
}
public string Delete(string Id)
{
try
{
foreach (var obj in Id.Split(','))
{
_app.Delete(int.Parse(obj));
}
}
catch (Exception e)
{
BjuiResponse.statusCode = "300";
BjuiResponse.message = e.Message;
}
return JsonHelper.Instance.Serialize(BjuiResponse);
}
}
}

View File

@ -127,6 +127,7 @@
<Compile Include="Controllers\BaseController.cs" /> <Compile Include="Controllers\BaseController.cs" />
<Compile Include="Controllers\HomeController.cs" /> <Compile Include="Controllers\HomeController.cs" />
<Compile Include="Controllers\OrgManagerController.cs" /> <Compile Include="Controllers\OrgManagerController.cs" />
<Compile Include="Controllers\RoleManagerController.cs" />
<Compile Include="Controllers\UserManagerController.cs" /> <Compile Include="Controllers\UserManagerController.cs" />
<Compile Include="Global.asax.cs"> <Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon> <DependentUpon>Global.asax</DependentUpon>
@ -617,6 +618,8 @@
<Content Include="Views\OrgManager\LookupParent.cshtml" /> <Content Include="Views\OrgManager\LookupParent.cshtml" />
<Content Include="Views\UserManager\Index.cshtml" /> <Content Include="Views\UserManager\Index.cshtml" />
<Content Include="Views\UserManager\Add.cshtml" /> <Content Include="Views\UserManager\Add.cshtml" />
<Content Include="Views\RoleManager\Add.cshtml" />
<Content Include="Views\RoleManager\Index.cshtml" />
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>

View File

@ -206,6 +206,7 @@
<li data-id="99" data-pid="0" data-faicon="folder-open-o" data-faicon-close="folder-o">系统设置</li> <li data-id="99" data-pid="0" data-faicon="folder-open-o" data-faicon-close="folder-o">系统设置</li>
<li data-id="100" data-pid="99" data-url="OrgManager/Index" data-tabid="orgManager" data-faicon="caret-right">机构管理</li> <li data-id="100" data-pid="99" data-url="OrgManager/Index" data-tabid="orgManager" data-faicon="caret-right">机构管理</li>
<li data-id="101" data-pid="99" data-url="UserManager/Index" data-tabid="userManager" data-faicon="caret-right">用户管理</li> <li data-id="101" data-pid="99" data-url="UserManager/Index" data-tabid="userManager" data-faicon="caret-right">用户管理</li>
<li data-id="102" data-pid="99" data-url="RoleManager/Index" data-tabid="roleManager" data-faicon="caret-right">角色管理</li>
</ul> </ul>
</div> </div>
</li> </li>

View File

@ -0,0 +1,132 @@
@model OpenAuth.Domain.Role
@{
ViewBag.Title = "title";
Layout = null;
}
<div class="bjui-pageContent">
<form action="/RoleManager/Add" class="pageForm" data-toggle="validate">
<table class="table table-condensed table-hover">
<tbody>
<tr>
<td align="center"><h3>* 添加</h3></td>
</tr>
<tr>
<td>
@Html.HiddenFor(m => m.Id)
@Html.HiddenFor(m => m.CreateTime)
<tr>
<td>
<label for="Name" class="control-label x90">角色名称:</label>
<input type="text" name="Name" id="Name" value="@Model.Name"
data-rule="required" size="20">
</td>
</tr>
<tr>
<td>
<label for="Status" class="control-label x90">当前状态:</label>
<input type="text" name="Status" id="Status" value="@Model.Status"
data-rule="required" size="20">
</td>
</tr>
<tr>
<td>
<label for="Type" class="control-label x90">角色类型:</label>
<input type="text" name="Type" id="Type" value="@Model.Type"
data-rule="required" size="20">
</td>
</tr>
<tr>
<td>
<label for="CreateId" class="control-label x90">创建人ID</label>
<input type="text" name="CreateId" id="CreateId" value="@Model.CreateId"
data-rule="required" size="20">
</td>
</tr>
<tr>
<td>
<label for="OrgName" class="control-label x90">所属机构:</label>
<input id="OrgId" name="OrgId" value="" style="display: none" />
<input type="text" name="OrgName" id="OrgName"
data-toggle="selectztree" size="20" data-tree="#j_select_tree1" value="">
<ul id="j_select_tree1" class="ztree hide" data-toggle="ztree"></ul>
</td>
</tr>
</tbody>
</table>
</form>
</div>
<div class="bjui-pageFooter">
<ul>
<li><button type="button" class="btn-close">关闭</button></li>
<li><button type="submit" class="btn-green">保存</button></li>
</ul>
</div>
<script type="text/javascript">
$(document).ready(function () {
Init();
});
function Init() {
var setting = {
view: {
selectedMulti: false
},
check: {
enable: true,
chkStyle: "checkbox",
chkboxType: { "Y": "", "N": "" } //去掉勾选时级联
},
data: {
key: {
name: 'Name',
title: 'Name'
},
simpleData: {
enable: true,
idKey: 'Id',
pIdKey: 'ParentId',
rootPId: 'null'
}
},
callback: {
onClick: zTreeOnClick,
onCheck: zTreeCheck
}
};
$.getJSON('OrgManager/LoadOrg', function (json) {
var zTreeObj = $.fn.zTree.init($('#j_select_tree1'), setting, json);
zTreeObj.expandAll(true);
});
}
function zTreeCheck(e, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj(treeId),
nodes = zTree.getCheckedNodes(true);
var ids = '', names = '';
for (var i = 0; i < nodes.length; i++) {
ids += ',' + nodes[i].Id;
names += ',' + nodes[i].Name;
}
if (ids.length > 0) { //去掉第一个逗号
ids = ids.substr(1);
names = names.substr(1);
}
var $from = $('#' + treeId).data('fromObj');
if ($from && $from.length) $from.val(names);
$('#OrganizationIds').val(ids);
}
function zTreeOnClick(event, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj(treeId);
zTree.checkNode(treeNode, !treeNode.checked, true, true);
event.preventDefault();
}
</script>

View File

@ -0,0 +1,175 @@
@{
string _prefix = "Role";
var _treeId = _prefix + "Tree";
var _gridId = _prefix + "Grid";
var _treeDetail = _prefix + "Detail";
}
<div class="bjui-pageContent">
<div class="clearfix">
<div style="float: left; width: 220px; overflow: auto;" class="table table-bordered">
<ul id="@_treeId" class="ztree"></ul>
</div>
<div id="@_treeDetail" style="margin-left: 225px;">
</div>
</div>
</div>
<script type="text/javascript">
var gridid = '#@_gridId';
var selectedId = 0;
$(document).ready(function () {
initZtree();
loadDataGrid();
});
//加载数据到datagrid
function loadDataGrid() {
//b-jui的datagrid需要重新处理HTML
$('#@_treeDetail').empty()
.append('<table id="@_gridId" class="table table-bordered"></table>');
$(gridid).datagrid({
gridTitle: '列表',
showToolbar: true,
filterThead: false,
toolbarItem: 'refresh, |, del',
toolbarCustom: '<a href="/RoleManager/Add" class="btn btn-green" data-icon ="plus" ' +
'data-toggle="dialog" data-id="dialog-mask" data-mask="true" data-on-close="refreshGrid">添加</a>' +
'<button class=" btn-green" onclick="editRole()" data-icon="pencil" type="button">编辑</button>',
columns: [
{
name: 'Id',
label: '流水号'
, hide: true
},
{
name: 'Name',
label: '角色名称'
},
{
name: 'Status',
label: '当前状态'
},
{
name: 'Type',
label: '角色类型'
},
{
name: 'CreateTime',
label: '创建时间'
, type: 'date',
width: 180,
pattern: 'yyyy-MM-dd HH:mm:ss'
},
{
name: 'CreateId',
label: '创建人ID'
},
{
name: 'OrgId',
label: '所属部门流水号'
},
{
name: 'OrgCascadeId',
label: '所属部门节点语义ID'
},
{
name: 'OrgName',
label: '所属部门名称'
},
],
// data: data,
dataUrl: 'RoleManager/Load?orgId=' + selectedId,
delUrl: 'Role/Delete',
delPK: "Id",
fullGrid: true,
showLinenumber: true,
showCheckboxcol: true,
paging: true,
filterMult: false,
showTfoot: true,
height: '700',
delCallback: function (delResult) {
if (delResult.statusCode == "200")
loadDataGrid();
else {
$(this).alertmsg('warn', delResult.message);
}
}
});
}
function zTreeOnClick(event, treeId, treeNode) {
selectedId = treeNode.Id;
loadDataGrid();
}
function initZtree() {
var setting = {
view: {selectedMulti: false},
data: {
key: {
name: 'Name',
title: 'Name'
},
simpleData: {
enable: true,
idKey: 'Id',
pIdKey: 'ParentId',
rootPId: 'null'
}
},
callback: {onClick: zTreeOnClick}
};
$.getJSON('OrgManager/LoadOrg', function (json) {
var zTreeObj = $.fn.zTree.init($('#@_treeId'), setting, json);
zTreeObj.expandAll(true);
});
}
//获取勾选的值
//column:为从0开始的列标识
function getSelected(column) {
var selected = $(gridid).data('selectedTrs');
if (selected == null || selected.length == 0) {
$(this).alertmsg('warn', '至少选择一个对象', {
displayMode: 'slide',
title: '重要提示'
});
return null;
}
//todo下面这段只能chrome有效
var records = new Array();
selected.each(function () {
records[records.length] = this.children[column].innerText;
});
return records[0];
}
//自定义的编辑按钮
function editRole() {
var selected = getSelected(2);
if (selected == null) return;
$(this).dialog({
id: 'editDialog',
url: '/RoleManager/Add?id=' + selected,
title: '编辑',
onClose:function() {
refreshGrid();
}
});
}
function refreshGrid() {
$('#@_gridId').datagrid('refresh');
// loadDataGrid();
}
//@@ sourceURL=RoleManagerIndex.js
</script>

View File

@ -174,8 +174,8 @@
} }
function refreshGrid() { function refreshGrid() {
//grid.refresh(); $('#@_gridId').datagrid('refresh');
loadDataGrid(); // loadDataGrid();
} }
//@@ sourceURL=userManagerIndex.js //@@ sourceURL=userManagerIndex.js
</script> </script>

View File

@ -41,6 +41,7 @@
<components> <components>
<component type=" OpenAuth.Repository.UserRepository" service=" OpenAuth.Domain.Interface.IUserRepository,OpenAuth.Domain" /> <component type=" OpenAuth.Repository.UserRepository" service=" OpenAuth.Domain.Interface.IUserRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.OrgRepository" service="OpenAuth.Domain.Interface.IOrgRepository,OpenAuth.Domain" /> <component type=" OpenAuth.Repository.OrgRepository" service="OpenAuth.Domain.Interface.IOrgRepository,OpenAuth.Domain" />
<component type=" OpenAuth.Repository.RoleRepository" service="OpenAuth.Domain.Interface.IRoleRepository,OpenAuth.Domain" />
</components> </components>
</autofac> </autofac>

View File

@ -20,7 +20,11 @@ namespace OpenAuth.Repository.Models.Mapping
.IsRequired() .IsRequired()
.HasMaxLength(64); .HasMaxLength(64);
this.Property(t => t.CreateOrgCascadeId) this.Property(t => t.OrgCascadeId)
.IsRequired()
.HasMaxLength(255);
this.Property(t => t.OrgName)
.IsRequired() .IsRequired()
.HasMaxLength(255); .HasMaxLength(255);
@ -32,8 +36,9 @@ namespace OpenAuth.Repository.Models.Mapping
this.Property(t => t.Type).HasColumnName("Type"); this.Property(t => t.Type).HasColumnName("Type");
this.Property(t => t.CreateTime).HasColumnName("CreateTime"); this.Property(t => t.CreateTime).HasColumnName("CreateTime");
this.Property(t => t.CreateId).HasColumnName("CreateId"); this.Property(t => t.CreateId).HasColumnName("CreateId");
this.Property(t => t.CreateOrgId).HasColumnName("CreateOrgId"); this.Property(t => t.OrgId).HasColumnName("OrgId");
this.Property(t => t.CreateOrgCascadeId).HasColumnName("CreateOrgCascadeId"); this.Property(t => t.OrgCascadeId).HasColumnName("OrgCascadeId");
this.Property(t => t.OrgName).HasColumnName("OrgName");
} }
} }
} }

View File

@ -69,6 +69,7 @@
<Compile Include="Models\OpenAuthDBContext.cs" /> <Compile Include="Models\OpenAuthDBContext.cs" />
<Compile Include="OrgRepository.cs" /> <Compile Include="OrgRepository.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RoleRepository.cs" />
<Compile Include="UserRepository.cs" /> <Compile Include="UserRepository.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenAuth.Domain;
using OpenAuth.Domain.Interface;
namespace OpenAuth.Repository
{
public class RoleRepository :BaseRepository<Role>, IRoleRepository
{
public IEnumerable<Role> LoadRoles(int pageindex, int pagesize)
{
return Context.Roles.OrderBy(u => u.Name).Skip((pageindex - 1) * pagesize).Take(pagesize);
}
public int GetRoleCntInOrgs(params int[] orgIds)
{
return LoadInOrgs(orgIds).Count();
}
public IEnumerable<Role> LoadInOrgs(int pageindex, int pagesize, params int[] orgIds)
{
return LoadInOrgs(orgIds).OrderBy(u => u.Name).Skip((pageindex - 1) * pagesize).Take(pagesize);
}
public void Delete(int id)
{
Delete(u =>u.Id == id);
}
public IEnumerable<Role> LoadInOrgs(params int[] orgId)
{
var result = from role in Context.Roles.Where(u => orgId.Contains(u.OrgId)) select role;
return result;
}
}
}

View File

@ -66,6 +66,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TestFunction.cs" /> <Compile Include="TestFunction.cs" />
<Compile Include="TestRoleApp.cs" />
<Compile Include="TestUserApp.cs" /> <Compile Include="TestUserApp.cs" />
<Compile Include="TestOrgApp.cs" /> <Compile Include="TestOrgApp.cs" />
</ItemGroup> </ItemGroup>

View File

@ -0,0 +1,79 @@
using System;
using System.Text;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenAuth.App;
using OpenAuth.App.ViewModel;
using OpenAuth.Domain;
using OpenAuth.Repository;
namespace OpenAuth.UnitTest
{
/// <summary>
/// TestOrgApp 的摘要说明
/// </summary>
[TestClass]
public class TestRoleApp
{
private RoleManagerApp _app = new RoleManagerApp(new RoleRepository(), new OrgRepository());
private string _time = DateTime.Now.ToString("HH_mm_ss_ms");
[TestMethod]
public void TestAdd()
{
for (int i = 0; i < 30; i++)
{
Add();
}
}
[TestMethod]
public void TestDel()
{
var role = new Role
{
Name = "即将删除" + _time,
CreateTime = DateTime.Now,
OrgId = 1
};
_app.AddOrUpdate(role);
Console.WriteLine("new role:" + role.Id);
_app.Delete(role.Id);
}
[TestMethod]
public void TestLoad()
{
var users = _app.Load(1,1, 10);
}
[TestMethod]
public void TestEdit()
{
var role = Add();
role.Name = "修改后的名称" + _time;
_app.AddOrUpdate(role);
Console.WriteLine(role.Name);
}
private Role Add()
{
var role = new Role
{
Name = "test_" + _time,
CreateTime = DateTime.Now,
OrgId = 1
};
_app.AddOrUpdate(role);
return role;
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff