初始提交
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Configs;
|
||||
using Hncore.Pass.Manage.Util;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Hncore.Pass.Manage.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员权限模块专用父控制器(提供了一些在管理员权限模块中专用的功能)
|
||||
/// </summary>
|
||||
///
|
||||
[ApiVersion("1.0")]
|
||||
[Route("api/Manage/v{version:apiVersion}/[controller]/[action]")]
|
||||
public class ManageControllerBase : HncoreControllerBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 配置文件数据承载对象
|
||||
/// </summary>
|
||||
protected readonly AppSettings _appSettings;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
/// <param name="hca">HTTP上下文访问对象</param>
|
||||
///
|
||||
public ManageControllerBase (IHttpContextAccessor hca)
|
||||
{
|
||||
//获取当前应用配置信息承载对象
|
||||
var oa=hca.HttpContext.RequestServices.GetService(typeof(IOptionsMonitor<AppSettings>)) as IOptionsMonitor<AppSettings>;
|
||||
this._appSettings = oa.CurrentValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建成功分页结果对象
|
||||
/// </summary>
|
||||
/// <typeparam name="T">数据类型</typeparam>
|
||||
/// <param name="total">记录总数</param>
|
||||
/// <param name="data">数据对象</param>
|
||||
/// <param name="message">提示信息</param>
|
||||
/// <returns>响应给客户端的结果对象</returns>
|
||||
///
|
||||
protected ApiResultPaged<T> SuccessPaged<T>(int total, T data, string message = "") where T : class, new()
|
||||
{
|
||||
return new ApiResultPaged<T>(ResultCode.C_SUCCESS, message) {TotalCount=total, Data = data };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建失败分页结果对象
|
||||
/// </summary>
|
||||
/// <typeparam name="T">数据类型</typeparam>
|
||||
/// <param name="message">提示信息</param>
|
||||
/// <returns>响应给客户端的结果对象</returns>
|
||||
///
|
||||
protected ApiResultPaged<T> ErrorPaged<T>(string message = "") where T : class, new()
|
||||
{
|
||||
return new ApiResultPaged<T>(ResultCode.C_UNKNOWN_ERROR, message) { TotalCount = 0 };
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Pass.Manage.Response;
|
||||
using Hncore.Pass.Manage.Service;
|
||||
using Hncore.Infrastructure.Common;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Response.ManagerToPermission;
|
||||
using Hncore.Infrastructure.Extension;
|
||||
using Hncore.Pass.Manage.Repository;
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Pass.ManageDataDomain.Request;
|
||||
|
||||
namespace Hncore.Pass.Manage.Controllers
|
||||
{
|
||||
[ApiVersion("1.0")]
|
||||
[Route("api/Manage/v{version:apiVersion}/ManageDataDomain/[action]")]
|
||||
public class ManageDataDomainController : HncoreControllerBase
|
||||
{
|
||||
EfDbContext m_DbContext { get; set; }
|
||||
|
||||
public ManageDataDomainController(EfDbContext _DbContext)
|
||||
{
|
||||
m_DbContext = _DbContext;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单个管理员
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
|
||||
public async Task<ApiResult> GetOne([FromQuery] QueryByIdRequest param)
|
||||
{
|
||||
return Success(await QueryItemManagerResponse.Query(
|
||||
m_DbContext.Set<Manager>().GetQueryable()
|
||||
, m_DbContext.Set<ManagerToPermission>().GetQueryable()
|
||||
, m_DbContext.Set<AuthorityManagerDataDomain>().GetQueryable()
|
||||
, param)
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单个管理员,门禁调用
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet, AllowAnonymous]
|
||||
|
||||
public async Task<ApiResult> GetOneManage([FromQuery] QueryByIdRequest param)
|
||||
{
|
||||
return Success(await m_DbContext.Set<Manager>().GetOneAsync(p => p.Id == param.Id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取管理员的项目列表
|
||||
/// </summary>
|
||||
/// <param name="request">请求参数对象</param>
|
||||
/// <returns>响应结果对象</returns>
|
||||
[HttpGet]
|
||||
public async Task<ApiResult> Get([FromQuery]int id)
|
||||
{
|
||||
var projectcodes =await m_DbContext.Set<AuthorityManagerDataDomain>().Where(p => p.ManagerId == id && p.DeleteTag == 0).Select(s => s.ProjectCode).ToArrayAsync();
|
||||
var ret = new
|
||||
{
|
||||
Projectcodes = projectcodes,
|
||||
Managerid = id
|
||||
};
|
||||
return Success(ret);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 绑定项目
|
||||
/// </summary>
|
||||
/// <param name="request">请求参数对象</param>
|
||||
/// <returns>响应结果对象</returns>
|
||||
[HttpPost]
|
||||
public async Task<ApiResult> BindDataDomain([FromBody]RequestBase<BindDataDomainRequest> request)
|
||||
{
|
||||
var requestCodes = request.Data.Projectcodes;
|
||||
//获取当前管理员关联的小区编码
|
||||
var currentProjects = await m_DbContext.Set<AuthorityManagerDataDomain>().Where(p => p.TenantId == request.TenantId && p.DeleteTag == 0 && p.ManagerId == request.Data.Managerid).ToListAsync();
|
||||
|
||||
//添加目前未关联的小区编码
|
||||
var addList = new List<AuthorityManagerDataDomain>();
|
||||
var currentCodes = currentProjects.Select(s => s.ProjectCode).ToArray();
|
||||
foreach (var projectCode in requestCodes.Where(code => !currentCodes.Contains(code)))
|
||||
{
|
||||
addList.Add(new AuthorityManagerDataDomain()
|
||||
{
|
||||
ProjectCode = projectCode,
|
||||
CreatorId = request.OperaterId,
|
||||
TenantId = request.TenantId,
|
||||
ManagerId = request.Data.Managerid,
|
||||
UpdatorId = request.OperaterId,
|
||||
});
|
||||
}
|
||||
await m_DbContext.Set<AuthorityManagerDataDomain>().AddRangeAsync(addList);
|
||||
|
||||
//移除将来未关联的小区编码
|
||||
var removeList = new List<AuthorityManagerDataDomain>();
|
||||
var removeCodes = currentCodes.Where(code => !requestCodes.Contains(code)).ToArray();
|
||||
foreach (var managerDataDomain in currentProjects.Where(m => removeCodes.Contains(m.ProjectCode)))
|
||||
{
|
||||
managerDataDomain.UpdatorId = request.OperaterId;
|
||||
managerDataDomain.DeleteTag = 1;
|
||||
removeList.Add(managerDataDomain);
|
||||
}
|
||||
m_DbContext.Set<AuthorityManagerDataDomain>().UpdateRange(removeList);
|
||||
|
||||
//提交
|
||||
await m_DbContext.SaveChangesAsync();
|
||||
return Success(request.Data);
|
||||
}
|
||||
}
|
||||
}
|
||||
285
Services/Hncore.Pass.Manage/Controllers/ManagerController.cs
Normal file
285
Services/Hncore.Pass.Manage/Controllers/ManagerController.cs
Normal file
@@ -0,0 +1,285 @@
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Hncore.Infrastructure.Extension;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Repository;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Pass.Manage.Response;
|
||||
using Hncore.Pass.Manage.Response.ManagerToPermission;
|
||||
using Hncore.Pass.Manage.Service;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Controllers
|
||||
{
|
||||
|
||||
public class ManagerController : ManageControllerBase
|
||||
{
|
||||
EfDbContext m_DbContext { get; set; }
|
||||
|
||||
private ManagerService _managerService;
|
||||
|
||||
|
||||
public ManagerController(EfDbContext _DbContext, ManagerService managerService, IHttpContextAccessor hca) : base(hca)
|
||||
{
|
||||
m_DbContext = _DbContext;
|
||||
_managerService = managerService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建管理员添加权限
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<ApiResult> Post([FromBody] EditManagerRequest param)
|
||||
{
|
||||
param.TenantId = this.Request.GetManageUserInfo().TenantId;
|
||||
var manager = await Manager.Create(param, m_DbContext.Set<Manager>().GetQueryable());
|
||||
await m_DbContext.Set<Manager>().AddAsync(manager);
|
||||
await m_DbContext.SaveChangesAsync();
|
||||
List<ManagerToPermission> list = new List<ManagerToPermission>();
|
||||
foreach (var item in param.Permissions)
|
||||
{
|
||||
if (item.AllowView == 1)
|
||||
{
|
||||
ManagerToPermission mp = new ManagerToPermission();
|
||||
mp.TenantId = param.TenantId;
|
||||
mp.ManagerId = manager.Id;
|
||||
mp.PermissionCode = item.PermissionCode;
|
||||
mp.AllowView = item.AllowView;
|
||||
mp.AllowAdd = item.AllowAdd;
|
||||
mp.AllowEdit = item.AllowEdit;
|
||||
mp.AllowDel = item.AllowDel;
|
||||
mp.CreateTime = DateTime.Now;
|
||||
mp.UpdateTime = DateTime.Now;
|
||||
mp.CreatorId = param.OperaterId;
|
||||
list.Add(mp);
|
||||
}
|
||||
}
|
||||
await m_DbContext.Set<ManagerToPermission>().AddRangeAsync(list);
|
||||
await m_DbContext.SaveChangesAsync();
|
||||
return Success(new EditManagerResponse().FromEntity(manager));
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResult> Put([FromBody] EditManagerRequest param)
|
||||
{
|
||||
param.TenantId = this.Request.GetManageUserInfo().TenantId;
|
||||
var manager = await m_DbContext.Set<Manager>().FindByIdAsync(param.Id);
|
||||
await manager.Edit(param, m_DbContext.Set<Manager>().GetQueryable());
|
||||
|
||||
List<ManagerToPermission> list = new List<ManagerToPermission>();
|
||||
List<ManagerToPermission> listdel = new List<ManagerToPermission>();
|
||||
foreach (var item in param.Permissions)
|
||||
{
|
||||
if (item.AllowView == 1)
|
||||
{
|
||||
ManagerToPermission mp = new ManagerToPermission();
|
||||
mp.TenantId = param.TenantId;
|
||||
mp.ManagerId = manager.Id;
|
||||
mp.PermissionCode = item.PermissionCode;
|
||||
mp.AllowView = item.AllowView;
|
||||
mp.AllowAdd = item.AllowAdd;
|
||||
mp.AllowEdit = item.AllowEdit;
|
||||
mp.AllowDel = item.AllowDel;
|
||||
mp.CreateTime = DateTime.Now;
|
||||
mp.UpdateTime = DateTime.Now;
|
||||
mp.CreatorId = param.OperaterId;
|
||||
list.Add(mp);
|
||||
}
|
||||
}
|
||||
var search = m_DbContext.Set<ManagerToPermission>().GetQueryable().Where(p => p.DeleteTag == 0 && p.ManagerId == param.Id);
|
||||
foreach (var item in search)
|
||||
{
|
||||
listdel.Add(item);
|
||||
}
|
||||
m_DbContext.Set<ManagerToPermission>().RemoveRange(listdel);
|
||||
await m_DbContext.Set<ManagerToPermission>().AddRangeAsync(list);
|
||||
await m_DbContext.SaveChangesAsync();
|
||||
return Success(new EditManagerResponse().FromEntity(manager));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除管理员
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
|
||||
public async Task<ApiResult> Delete([FromBody] DelManagerRequest param)
|
||||
{
|
||||
var manager = await m_DbContext.Set<Manager>().FindByIdAsync(param.Id);
|
||||
manager.Delete(param.OperaterId);
|
||||
await m_DbContext.SaveChangesAsync();
|
||||
return Success(manager);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取单个管理员
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
|
||||
public async Task<ApiResult> GetOne([FromQuery] QueryByIdRequest param)
|
||||
{
|
||||
param.TenantId = this.Request.GetManageUserInfo().TenantId;
|
||||
return Success(await QueryItemManagerResponse.Query(
|
||||
m_DbContext.Set<Manager>().GetQueryable()
|
||||
, m_DbContext.Set<ManagerToPermission>().GetQueryable()
|
||||
, m_DbContext.Set<AuthorityManagerDataDomain>().GetQueryable()
|
||||
, param)
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单个管理员,门禁调用
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet,AllowAnonymous]
|
||||
|
||||
public async Task<ApiResult> GetOneManage([FromQuery] QueryByIdRequest param)
|
||||
{
|
||||
return Success(await m_DbContext.Set<Manager>().GetOneAsync(p=>p.Id==param.Id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取列表数据
|
||||
/// </summary>
|
||||
/// <param name="request">请求参数对象</param>
|
||||
/// <returns>响应结果对象</returns>
|
||||
[HttpGet]
|
||||
public async Task<ApiResult<List<QueryListManagerResponse>>> Get([FromQuery]QueryListManagerRequest request)
|
||||
{
|
||||
request.TenantId = this.Request.GetManageUserInfo().TenantId;
|
||||
request.OperaterId = this.Request.GetManageUserInfo().OperaterId;
|
||||
(int total, List<QueryListManagerResponse> list) res = await _managerService.Get(request);
|
||||
return SuccessPaged(res.total, res.list, "成功");
|
||||
}
|
||||
/// <summary>
|
||||
/// 超级管理员移交管理员权限
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost,AllowAnonymous]
|
||||
public async Task<ApiResult> TransferPrivilege([FromBody] RequestBase<TransferPrivilegeDTO> param)
|
||||
{
|
||||
#region 需要后台判断短信验证码防非法操作
|
||||
if (!param.Data.Key.Has() || !param.Data.Code.Has()) return Error("短信验证码错误");
|
||||
var tmp = RedisHelper.Get<SmsValidDTO>(param.Data.Key);
|
||||
if (tmp==null) return Error("短信验证码过期");
|
||||
if (!string.Equals(tmp.Code, param.Data.Code)) return Error("短信验证码错误");
|
||||
#endregion
|
||||
|
||||
//管理员表操作
|
||||
var manager = await m_DbContext.Set<Manager>().FindByIdAsync(param.OperaterId);
|
||||
manager.IsRoot = false;
|
||||
manager.DeleteTag = 1;
|
||||
m_DbContext.Set<Manager>().Update(manager);
|
||||
|
||||
|
||||
var managernew = await m_DbContext.Set<Manager>().FindByIdAsync(param.Data.Id);
|
||||
managernew.IsRoot = true;
|
||||
m_DbContext.Set<Manager>().Update(managernew);
|
||||
|
||||
|
||||
|
||||
///管理员权限表操作
|
||||
var search = m_DbContext.Set<ManagerToPermission>().GetQueryable().Where(p => p.DeleteTag == 0 && p.ManagerId == param.OperaterId && p.TenantId == param.TenantId);
|
||||
foreach (var item in search)
|
||||
{
|
||||
ManagerToPermission mp = new ManagerToPermission();
|
||||
mp.TenantId = param.TenantId;
|
||||
mp.ManagerId = param.Data.Id;
|
||||
mp.PermissionCode = item.PermissionCode;
|
||||
mp.AllowView = item.AllowView;
|
||||
mp.AllowAdd = item.AllowAdd;
|
||||
mp.AllowEdit = item.AllowEdit;
|
||||
mp.AllowDel = item.AllowDel;
|
||||
mp.CreateTime = DateTime.Now;
|
||||
mp.UpdateTime = DateTime.Now;
|
||||
mp.CreatorId = param.OperaterId;
|
||||
m_DbContext.Set<ManagerToPermission>().Add(mp);
|
||||
}
|
||||
var del = m_DbContext.Set<ManagerToPermission>().GetQueryable().Where(p => p.DeleteTag == 0 && p.ManagerId == param.Data.Id && p.TenantId == param.TenantId).ToList();
|
||||
m_DbContext.Set<ManagerToPermission>().RemoveRange(del);
|
||||
|
||||
|
||||
|
||||
//被转移人项目
|
||||
var recipientProject = m_DbContext.Set<AuthorityManagerDataDomain>().GetQueryable().Where(p => p.DeleteTag == 0 && p.ManagerId == param.Data.Id && p.TenantId == param.TenantId);
|
||||
//我的项目
|
||||
var myProject = m_DbContext.Set<AuthorityManagerDataDomain>().GetQueryable().Where(p => p.DeleteTag == 0 && p.ManagerId == param.OperaterId && p.TenantId == param.TenantId);
|
||||
foreach (var item in recipientProject)
|
||||
{
|
||||
item.DeleteTag = 1;
|
||||
m_DbContext.Set<AuthorityManagerDataDomain>().Update(item);
|
||||
}
|
||||
foreach (var item in myProject)
|
||||
{
|
||||
item.DeleteTag = 1;
|
||||
m_DbContext.Set<AuthorityManagerDataDomain>().Update(item);
|
||||
}
|
||||
|
||||
//物业总项目
|
||||
var ownerProject = m_DbContext.Set<etor_property_estate>().GetQueryable().Where(p => p.DeleteTag == 0 && p.owner_id == param.TenantId);
|
||||
foreach (var item in ownerProject)
|
||||
{
|
||||
AuthorityManagerDataDomain mp = new AuthorityManagerDataDomain();
|
||||
mp.TenantId = item.owner_id;
|
||||
mp.ProjectCode = item.projectcode;
|
||||
mp.DeleteTag = 0;
|
||||
mp.ManagerId = param.Data.Id;
|
||||
mp.UpdateTime = DateTime.Now;
|
||||
mp.UpdatorId = param.OperaterId;
|
||||
m_DbContext.Set<AuthorityManagerDataDomain>().Add(mp);
|
||||
}
|
||||
|
||||
var mymanager = await m_DbContext.Set<Manager>().FindByIdAsync(param.OperaterId);
|
||||
mymanager.IsRoot = false;
|
||||
manager.DeleteTag = 1;
|
||||
m_DbContext.Set<Manager>().Update(mymanager);
|
||||
|
||||
await m_DbContext.SaveChangesAsync();
|
||||
|
||||
return Success(param.Data.Id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据管理员获取管理员小区权限
|
||||
/// </summary>
|
||||
/// <param name="managerId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet,AllowAnonymous]
|
||||
public async Task<ApiResult> GetByManageId([FromQuery] int ManagerId)
|
||||
{
|
||||
var result = await QueryPermissionByManagerIdResponse.GetByManageId(m_DbContext.Set<AuthorityManagerDataDomain>().GetQueryable(), m_DbContext.Set<etor_property_estate>().GetQueryable(), m_DbContext.Set<Manager>().GetQueryable(), ManagerId);
|
||||
return Success(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据当前登录人,查询本物业下边超级管理员手机号
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<ApiResult> GetAdminPhoneByManageId([FromQuery] QueryByIdRequest param)
|
||||
{
|
||||
var result = m_DbContext.Set<Manager>().GetQueryable().Where(p => p.TenantId == param.TenantId && p.IsRoot == true).ToList();
|
||||
|
||||
if (result != null && result.Count() > 0) return Success<string>(result[0].Phone);
|
||||
return Success<string>("");
|
||||
}
|
||||
}
|
||||
}
|
||||
124
Services/Hncore.Pass.Manage/Controllers/ManagerTagController.cs
Normal file
124
Services/Hncore.Pass.Manage/Controllers/ManagerTagController.cs
Normal file
@@ -0,0 +1,124 @@
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Repository;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Pass.Manage.Response;
|
||||
using Hncore.Pass.Manage.Service;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Controllers
|
||||
{
|
||||
|
||||
public class ManagerTagController : ManageControllerBase
|
||||
{
|
||||
EfDbContext m_DbContext { get; set; }
|
||||
|
||||
private ManagerTagService _managerTagService;
|
||||
|
||||
|
||||
public ManagerTagController(EfDbContext _DbContext,
|
||||
ManagerTagService managerTagService,
|
||||
IHttpContextAccessor hca) : base(hca)
|
||||
|
||||
{
|
||||
m_DbContext = _DbContext;
|
||||
_managerTagService = managerTagService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取列表数据
|
||||
/// </summary>
|
||||
/// <param name="request">请求参数对象</param>
|
||||
/// <returns>响应结果对象</returns>
|
||||
[HttpGet]
|
||||
|
||||
public async Task<ApiResult<List<ManagerTagResponse>>> GetList([FromQuery]ManagerTagRequest request)
|
||||
{
|
||||
(int total, List<ManagerTagResponse> list) res = await _managerTagService.GetTagList(request);
|
||||
return SuccessPaged(res.total, res.list, "成功");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据管理员标签获取管理员权限
|
||||
/// </summary>
|
||||
/// <param name="request">请求参数对象</param>
|
||||
/// <returns>响应结果对象</returns>
|
||||
[HttpGet]
|
||||
|
||||
public async Task<ApiResult<List<ManagerTagToPermissionResponse>>> GetTagToPerssionList ([FromQuery]ManagerTagToPerRequest request)
|
||||
{
|
||||
(int total, List<ManagerTagToPermissionResponse> list) res = await _managerTagService.GetTagToPerssionList(request);
|
||||
return SuccessPaged(res.total, res.list, "成功");
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建管理员标签
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
|
||||
public async Task<ApiResult> Post([FromBody] RequestBase<EditManagerTagRequest> param)
|
||||
{
|
||||
|
||||
var managerTag = await Domain.ManagerTag.Create(param, m_DbContext.Set<ManagerTag>().GetQueryable());
|
||||
m_DbContext.Set<ManagerTag>().Add(managerTag);
|
||||
var res = UofCommit(() => new CreateOrEditManagerTagResponse().FromEntity(managerTag));
|
||||
|
||||
List< ManagerTagToPermission> list =new List<ManagerTagToPermission>();
|
||||
foreach (var item in param.Data.Permissions)
|
||||
{
|
||||
ManagerTagToPermission mp =new ManagerTagToPermission();
|
||||
mp.OwnerId = param.TenantId;
|
||||
mp.ManagerTagId = managerTag.Id;
|
||||
mp.PermissionCode = item.PermissionCode;
|
||||
mp.AllowView = item.AllowView;
|
||||
mp.AllowAdd = item.AllowAdd;
|
||||
mp.AllowEdit = item.AllowEdit;
|
||||
mp.AllowDel = item.AllowDel;
|
||||
mp.CreateTime = DateTime.Now;
|
||||
mp.UpdateTime = DateTime.Now;
|
||||
mp.CreatorId = param.OperaterId;
|
||||
list.Add(mp);
|
||||
}
|
||||
await m_DbContext.Set<ManagerTagToPermission>().AddRangeAsync(list);
|
||||
return await UofCommitAsync(() => new CreateOrEditManagerTagResponse().FromEntity(managerTag));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 编辑管理员标签
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
|
||||
public async Task<ApiResult> Put([FromBody] RequestBase<EditManagerTagRequest> param)
|
||||
{
|
||||
var managerTag = await m_DbContext.Set<ManagerTag>().FindByIdAsync(param.Data.Id);
|
||||
await managerTag.Edit(param, m_DbContext.Set<ManagerTag>().GetQueryable());
|
||||
return await UofCommitAsync(() => new CreateOrEditManagerTagResponse().FromEntity(managerTag));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除管理员标签
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
|
||||
public async Task<ApiResult> Delete([FromBody] QueryByIdRequest param)
|
||||
{
|
||||
var managerTag = await m_DbContext.Set<ManagerTag>().FindByIdAsync(param.Id);
|
||||
managerTag.Delete(param.OperaterId);
|
||||
return await UofCommitAsync(() => managerTag);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Pass.Manage.Response;
|
||||
using Hncore.Pass.Manage.Service;
|
||||
using Hncore.Infrastructure.Common;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Repository;
|
||||
using Hncore.Infrastructure.EF;
|
||||
|
||||
namespace Hncore.Pass.Manage.Controllers
|
||||
{
|
||||
|
||||
public class ManagerToPermissionController : ManageControllerBase
|
||||
{
|
||||
|
||||
EfDbContext m_DbContext { get; set; }
|
||||
|
||||
private ManagerPermissionService _managerPermissionService ;
|
||||
|
||||
public ManagerToPermissionController(EfDbContext _DbContext,
|
||||
ManagerPermissionService managerPermissionService,
|
||||
IHttpContextAccessor hca) : base(hca)
|
||||
{
|
||||
m_DbContext = _DbContext;
|
||||
_managerPermissionService = managerPermissionService;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 创建管理员权限
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
|
||||
public async Task<ApiResult> Post([FromBody] RequestBase<EditManagerToPermissionRequest> param)
|
||||
{
|
||||
var managerToPermission = await Domain.ManagerToPermission.Create(param, m_DbContext.Set<ManagerToPermission>().GetQueryable());
|
||||
await m_DbContext.Set<ManagerToPermission>().AddAsync(managerToPermission);
|
||||
return await UofCommitAsync(() => new CreateOrEditManagerToResponse().FromEntity(managerToPermission));
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 编辑管理员权限
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
|
||||
public async Task<ApiResult> Put([FromBody] RequestBase<EditManagerToPermissionRequest> param)
|
||||
{
|
||||
var managerToPermission = await m_DbContext.Set<ManagerToPermission>().FindByIdAsync(param.Data.Id);
|
||||
|
||||
await managerToPermission.Edit(param, m_DbContext.Set<ManagerToPermission>().GetQueryable());
|
||||
|
||||
return await UofCommitAsync(() => new CreateOrEditManagerToResponse().FromEntity(managerToPermission));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 根据操作人获取权限
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<ApiResult> GetByOperator([FromQuery]QueryByIdRequest request)
|
||||
{
|
||||
List<QueryPermissionResponse> list = await _managerPermissionService.GetByOperator(request,true);
|
||||
return Success(list, "成功");
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据登录人的权限权限
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<ApiResult> GetPermissions()
|
||||
{
|
||||
QueryByIdRequest request = new QueryByIdRequest() { Id = this.Request.GetManageUserInfo().OperaterId };
|
||||
List<QueryPermissionResponse> list = await _managerPermissionService.GetByOperator(request, false);
|
||||
return Success(list, "成功");
|
||||
}
|
||||
}
|
||||
}
|
||||
19
Services/Hncore.Pass.Manage/Controllers/TestController.cs
Normal file
19
Services/Hncore.Pass.Manage/Controllers/TestController.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace Hncore.Pass.Manage.Controllers
|
||||
{
|
||||
[ApiVersion("1.0")]
|
||||
[Route("api/manage/v{version:apiVersion}/test/[action]")]
|
||||
public class TestController: HncoreControllerBase
|
||||
{
|
||||
[HttpGet,AllowAnonymous]
|
||||
public string Name()
|
||||
{
|
||||
|
||||
|
||||
return "Manage";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user