初始提交
This commit is contained in:
31
Services/Hncore.Pass.Manage/Configs/AppSettings.cs
Normal file
31
Services/Hncore.Pass.Manage/Configs/AppSettings.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
namespace Hncore.Pass.Manage.Configs
|
||||
{
|
||||
/// <summary>
|
||||
/// 当前Web项目的appsettings.xxx.json配置信息承载类
|
||||
/// </summary>
|
||||
///
|
||||
public class AppSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// 允许的主机列表
|
||||
/// </summary>
|
||||
public string AllowedHosts { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 新数据库连接字符串
|
||||
/// </summary>
|
||||
public string DbConString { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 旧数据库连接字符串
|
||||
/// </summary>
|
||||
public string OldDbConString { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Redis连接信息
|
||||
/// </summary>
|
||||
public string Redis { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
34
Services/Hncore.Pass.Manage/Configs/RabbitMqConfig.cs
Normal file
34
Services/Hncore.Pass.Manage/Configs/RabbitMqConfig.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
namespace Hncore.Pass.Manage.Configs
|
||||
{
|
||||
/// <summary>
|
||||
/// RabbitMQ配置信息承载类
|
||||
/// </summary>
|
||||
///
|
||||
public class RabbitMqConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// 主机地址
|
||||
/// </summary>
|
||||
public string HostName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 端口号
|
||||
/// </summary>
|
||||
public string Port { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录名
|
||||
/// </summary>
|
||||
public string UserName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录密码
|
||||
/// </summary>
|
||||
public string Password { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 虚拟主机路径
|
||||
/// </summary>
|
||||
public string VirtualHost { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
|
||||
namespace Hncore.Pass.Manage.Domain
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员项目映射实体模型类
|
||||
/// </summary>
|
||||
///
|
||||
public class AuthorityManagerDataDomain : AggregateRoot<int>, ITenant
|
||||
{
|
||||
/// <summary>
|
||||
/// 楼宇ID
|
||||
/// <summary>
|
||||
public override int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int TenantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; } = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 软删除标记,0.代表正常,1.代表已删除
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员数据库ID
|
||||
/// </summary>
|
||||
public int ManagerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 项目编码
|
||||
/// </summary>
|
||||
public int ProjectCode { get; set; }
|
||||
}
|
||||
}
|
||||
190
Services/Hncore.Pass.Manage/Domain/Manager.cs
Normal file
190
Services/Hncore.Pass.Manage/Domain/Manager.cs
Normal file
@@ -0,0 +1,190 @@
|
||||
using Hncore.Infrastructure.Common;
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using Hncore.Infrastructure.EntitiesExtension;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Domain
|
||||
{
|
||||
/// <summary>
|
||||
/// 物业管理员表
|
||||
/// </summary>
|
||||
public partial class Manager : EntityWithTime<int>, ITenant
|
||||
{
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int TenantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员登录名[16
|
||||
/// </summary>
|
||||
public string LoginCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录密码[20]
|
||||
/// </summary>
|
||||
public string Password { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员角色
|
||||
/// </summary>
|
||||
public int RoleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int State { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 头像地址[30
|
||||
/// </summary>
|
||||
public string PhotoUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微信openid[50]
|
||||
/// </summary>
|
||||
public string WxOpenid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微信昵称
|
||||
/// </summary>
|
||||
public string WxNickName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微信头像
|
||||
/// </summary>
|
||||
public string WxImage { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 注册来源
|
||||
/// </summary>
|
||||
public int Source { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员手机号
|
||||
/// </summary>
|
||||
public string Phone { get; set; }
|
||||
/// <summary>
|
||||
/// 账号code
|
||||
/// </summary>
|
||||
public string ManagerCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员姓名
|
||||
/// </summary>
|
||||
public string RealName { get; set; }
|
||||
/// <summary>
|
||||
/// 电子邮箱
|
||||
/// </summary>
|
||||
public string Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否主管理员权限
|
||||
/// </summary>
|
||||
public bool IsRoot { get; set; }
|
||||
|
||||
public int SystemId { get; set; }
|
||||
|
||||
private static async Task EditCheckAsync(IQueryable<Manager> queryable, EditManagerRequest request, int id = 0)
|
||||
{
|
||||
|
||||
Expression<Func<Manager, bool>> condition = t => t.LoginCode == request.LoginCode || t.Phone== request.Phone;
|
||||
|
||||
if (id > 0)
|
||||
{
|
||||
condition = condition.And(t => t.Id != id);
|
||||
}
|
||||
|
||||
if (await queryable.AnyAsync(condition))
|
||||
{
|
||||
BusinessException.Throw("管理员手机号或登陆名重复");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建管理员
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Manager> Create(EditManagerRequest request,
|
||||
IQueryable<Manager> queryable)
|
||||
{
|
||||
await EditCheckAsync(queryable, request, 0);
|
||||
|
||||
var Manager = new Manager()
|
||||
{
|
||||
TenantId = request.TenantId,
|
||||
CreatorId = request.OperaterId,
|
||||
UpdatorId = request.OperaterId,
|
||||
CreateTime = DateTime.Now,
|
||||
UpdateTime = DateTime.Now,
|
||||
LoginCode = request.LoginCode,
|
||||
Password = SecurityHelper.HashPassword(request.Password),
|
||||
PhotoUrl = request.photourl,
|
||||
RealName = request.RealName,
|
||||
|
||||
State = 1,
|
||||
Phone = request.Phone,
|
||||
RoleId = -100, ///新规则的权限用-100标识
|
||||
SystemId = 100,
|
||||
|
||||
};
|
||||
|
||||
return Manager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 编辑管理员
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Manager> Edit(EditManagerRequest request, IQueryable<Manager> queryable)
|
||||
{
|
||||
|
||||
await EditCheckAsync(queryable, request, request.Id);
|
||||
TenantId = request.TenantId;
|
||||
UpdatorId = request.OperaterId;
|
||||
UpdateTime = DateTime.Now;
|
||||
LoginCode = request.LoginCode;
|
||||
if (!string.IsNullOrEmpty(request.Password))
|
||||
{ Password = SecurityHelper.HashPassword(request.Password); }
|
||||
PhotoUrl = request.photourl;
|
||||
RealName = request.RealName;
|
||||
Phone = request.Phone;
|
||||
RoleId = request.roleid;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 删除管理员
|
||||
/// </summary>
|
||||
/// <param name="updatorId"></param>
|
||||
/// <returns></returns>
|
||||
public Manager Delete(int updatorId)
|
||||
{
|
||||
|
||||
DeleteTag = 1;
|
||||
UpdatorId = updatorId;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
156
Services/Hncore.Pass.Manage/Domain/ManagerTag.cs
Normal file
156
Services/Hncore.Pass.Manage/Domain/ManagerTag.cs
Normal file
@@ -0,0 +1,156 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using Hncore.Infrastructure.EntitiesExtension;
|
||||
using Hncore.Infrastructure.Extension;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Hncore.Pass.Manage.Domain
|
||||
{
|
||||
public class ManagerTag : AggregateRoot<int>
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public override int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 软删除标记,0.代表正常,1.代表已删除
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// <summary>
|
||||
public int ManagerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签
|
||||
/// <summary>
|
||||
public string Tag { get; set; }
|
||||
/// <summary>
|
||||
/// 管理员标签类型
|
||||
/// <summary>
|
||||
public int TagType { get; set; }
|
||||
|
||||
private static async Task EditCheckAsync(IQueryable<ManagerTag> queryable, string tag ,int managerId, int id=0 )
|
||||
{
|
||||
|
||||
if(string.IsNullOrWhiteSpace(tag))
|
||||
{
|
||||
BusinessException.Throw("管理员类型名称不能为空");
|
||||
}
|
||||
Expression<Func<ManagerTag, bool>> condition = t => t.Tag == tag && t.ManagerId== managerId;
|
||||
if (id > 0)
|
||||
{
|
||||
condition = condition.And(t => t.Id != id);
|
||||
}
|
||||
if (await queryable.AnyAsync(condition))
|
||||
{
|
||||
BusinessException.Throw("管理员类型重名");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建管理员标签
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<ManagerTag> Create(RequestBase<EditManagerTagRequest> request,
|
||||
IQueryable<ManagerTag> queryable)
|
||||
{
|
||||
await EditCheckAsync(queryable, request.Data.Tag, request.Data.ManagerId);
|
||||
|
||||
await CheckCountAsync(queryable, request.Data.ManagerId);
|
||||
|
||||
var ManagerTag = new ManagerTag()
|
||||
{
|
||||
Tag = request.Data.Tag,
|
||||
ManagerId=request.Data.ManagerId,
|
||||
OwnerId = request.TenantId,
|
||||
CreatorId = request.OperaterId,
|
||||
UpdatorId = request.OperaterId,
|
||||
CreateTime = DateTime.Now,
|
||||
UpdateTime = DateTime.Now
|
||||
};
|
||||
|
||||
return ManagerTag ;
|
||||
}
|
||||
|
||||
private static async Task CheckCountAsync(IQueryable<ManagerTag> queryable, int ManagerId )
|
||||
{
|
||||
|
||||
Expression<Func<ManagerTag, bool>> condition = t => t.ManagerId == ManagerId;
|
||||
int totalcount= queryable.Count(condition);
|
||||
if (totalcount >= 5)
|
||||
{
|
||||
BusinessException.Throw("管理员最多可添加5个类型");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 编辑管理员标签
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ManagerTag> Edit(RequestBase<EditManagerTagRequest> request, IQueryable<ManagerTag> queryable)
|
||||
{
|
||||
await EditCheckAsync(queryable, request.Data.Tag, request.Data.Id);
|
||||
|
||||
Tag = request.Data.Tag;
|
||||
UpdatorId = request.OperaterId;
|
||||
UpdateTime = DateTime.Now;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除管理员标签
|
||||
/// </summary>
|
||||
/// <param name="updatorId"></param>
|
||||
/// <returns></returns>
|
||||
public ManagerTag Delete(int updatorId)
|
||||
{
|
||||
|
||||
DeleteTag = 1;
|
||||
UpdatorId = updatorId;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
92
Services/Hncore.Pass.Manage/Domain/ManagerTagToPermission.cs
Normal file
92
Services/Hncore.Pass.Manage/Domain/ManagerTagToPermission.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
|
||||
namespace Hncore.Pass.Manage.Domain
|
||||
{
|
||||
public class ManagerTagToPermission : AggregateRoot<int>
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public override int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 软删除标记,0.代表正常,1.代表已删除
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签id
|
||||
/// <summary>
|
||||
public int ManagerTagId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// <summary>
|
||||
public string PermissionCode { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否查看
|
||||
/// </summary>
|
||||
public int AllowView { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否添加
|
||||
/// </summary>
|
||||
public int AllowAdd { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否修改
|
||||
/// </summary>
|
||||
public int AllowEdit { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否删除
|
||||
/// </summary>
|
||||
public int AllowDel { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
138
Services/Hncore.Pass.Manage/Domain/ManagerToPermission.cs
Normal file
138
Services/Hncore.Pass.Manage/Domain/ManagerToPermission.cs
Normal file
@@ -0,0 +1,138 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
|
||||
namespace Hncore.Pass.Manage.Domain
|
||||
{
|
||||
public class ManagerToPermission : AggregateRoot<int>, ITenant
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public override int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int TenantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 软删除标记,0.代表正常,1.代表已删除
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// <summary>
|
||||
public int ManagerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// <summary>
|
||||
public string PermissionCode { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否查看
|
||||
/// </summary>
|
||||
public int AllowView { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否添加
|
||||
/// </summary>
|
||||
public int AllowAdd { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否修改
|
||||
/// </summary>
|
||||
public int AllowEdit { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否删除
|
||||
/// </summary>
|
||||
public int AllowDel { get; set; }
|
||||
|
||||
public DateTime? ExpiredTime { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 创建管理员权限关系
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<ManagerToPermission> Create(RequestBase<EditManagerToPermissionRequest> request,
|
||||
IQueryable<ManagerToPermission> queryable)
|
||||
{
|
||||
|
||||
var ManagerToPermission = new ManagerToPermission()
|
||||
{
|
||||
ManagerId = request.Data.ManagerId,
|
||||
PermissionCode = request.Data.PermissionCode,
|
||||
AllowView = request.Data.AllowView,
|
||||
AllowAdd = request.Data.AllowAdd,
|
||||
AllowEdit = request.Data.AllowEdit,
|
||||
AllowDel = request.Data.AllowDel,
|
||||
|
||||
TenantId = request.TenantId,
|
||||
CreatorId = request.OperaterId,
|
||||
UpdatorId = request.OperaterId,
|
||||
CreateTime = DateTime.Now,
|
||||
UpdateTime = DateTime.Now
|
||||
};
|
||||
|
||||
return ManagerToPermission;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 编辑管理员权限关系
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ManagerToPermission> Edit(RequestBase<EditManagerToPermissionRequest> request, IQueryable<ManagerToPermission> queryable)
|
||||
{
|
||||
|
||||
PermissionCode = request.Data.PermissionCode;
|
||||
UpdatorId = request.OperaterId;
|
||||
UpdateTime = DateTime.Now;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
123
Services/Hncore.Pass.Manage/Domain/Permission.cs
Normal file
123
Services/Hncore.Pass.Manage/Domain/Permission.cs
Normal file
@@ -0,0 +1,123 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
|
||||
namespace Hncore.Pass.Manage.Domain
|
||||
{
|
||||
public class Permission : AggregateRoot<int>
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public override int Id { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 软删除标记,0.代表正常,1.代表已删除
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// <summary>
|
||||
public string Permissioncode { get; set; }
|
||||
|
||||
|
||||
public string Parentcode { get; set; }
|
||||
|
||||
public string Permissionlabel { get; set; }
|
||||
|
||||
public string Permissionurl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图标[50]
|
||||
/// </summary>
|
||||
public string Icon { get; set; }
|
||||
/// <summary>
|
||||
/// 激活图标
|
||||
/// </summary>
|
||||
public string Iconactivate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否查看
|
||||
/// </summary>
|
||||
public int AllowView { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否添加
|
||||
/// </summary>
|
||||
public int AllowAdd { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否修改
|
||||
/// </summary>
|
||||
public int AllowEdit { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否删除
|
||||
/// </summary>
|
||||
public int AllowDel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 显示排序
|
||||
/// </summary>
|
||||
public int Sortorder { get; set; }
|
||||
/// <summary>
|
||||
/// 是否收费
|
||||
/// </summary>
|
||||
public bool Ischarge { get; set; }
|
||||
/// <summary>
|
||||
/// 模块编码
|
||||
/// </summary>
|
||||
public string Nodecode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否新功能
|
||||
/// </summary>
|
||||
public bool isnew { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 系统标识
|
||||
/// </summary>
|
||||
public int Systemid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// app权限编码
|
||||
/// </summary>
|
||||
public string Appcodes { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
157
Services/Hncore.Pass.Manage/Domain/etor_property_estate.cs
Normal file
157
Services/Hncore.Pass.Manage/Domain/etor_property_estate.cs
Normal file
@@ -0,0 +1,157 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Infrastructure.EntitiesExtension;
|
||||
using Hncore.Infrastructure.Common;
|
||||
|
||||
namespace Hncore.Pass.Manage.Domain
|
||||
{
|
||||
public partial class etor_property_estate : AggregateRoot<int>
|
||||
{
|
||||
/// <summary>
|
||||
/// 写字楼/小区id
|
||||
/// <summary>
|
||||
public int ID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 删除标记
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int owner_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 小区/写字楼编码
|
||||
/// </summary>
|
||||
public int projectcode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 写字楼/小区名称
|
||||
/// </summary>
|
||||
public string name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 首字母
|
||||
/// </summary>
|
||||
public string firstword { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 地址
|
||||
/// </summary>
|
||||
public string location { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string bak { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 区分小区/写字楼/公寓
|
||||
/// </summary>
|
||||
public int type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 省份
|
||||
/// </summary>
|
||||
public int province { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 市
|
||||
/// </summary>
|
||||
public int city { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 区
|
||||
/// </summary>
|
||||
public int area { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客服电话
|
||||
/// </summary>
|
||||
public string servicetel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 负责人
|
||||
/// </summary>
|
||||
public string director { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 负责人电话
|
||||
/// </summary>
|
||||
public string directortel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 小区图标
|
||||
/// </summary>
|
||||
public string logoimg { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 占地面积
|
||||
/// </summary>
|
||||
public float? locationarea { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 建筑面积
|
||||
/// </summary>
|
||||
public float? buildingarea { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 公共场所面积
|
||||
/// </summary>
|
||||
public float? publicarea { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 车位面积
|
||||
/// </summary>
|
||||
public float? parkinglotarea { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 车库面积
|
||||
/// </summary>
|
||||
public float? parkinghousearea { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 车位数
|
||||
/// </summary>
|
||||
public int? parkinglotcount { get; set; }
|
||||
|
||||
|
||||
public int creatorid { get; set; }
|
||||
|
||||
public int updatorid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// pos账号
|
||||
/// </summary>
|
||||
public string posLoginAccount { get; set; }
|
||||
/// <summary>
|
||||
/// 支付商户号
|
||||
/// </summary>
|
||||
public string pay_mch_id { get; set; }
|
||||
/// <summary>
|
||||
/// 支付密钥
|
||||
/// </summary>
|
||||
public string pay_key { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc.Filters;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Filters
|
||||
{
|
||||
/// <summary>
|
||||
/// 全局异常过滤器(主要是发生异常后写日志)
|
||||
/// </summary>
|
||||
///
|
||||
public class HttpGlobalExceptionFilter : IExceptionFilter
|
||||
{
|
||||
/// <summary>
|
||||
/// 日志工厂对象
|
||||
/// </summary>
|
||||
readonly ILoggerFactory _loggerFactory;
|
||||
/// <summary>
|
||||
/// 主机环境对象
|
||||
/// </summary>
|
||||
readonly IHostingEnvironment _env;
|
||||
|
||||
public HttpGlobalExceptionFilter(ILoggerFactory loggerFactory, IHostingEnvironment env)
|
||||
{
|
||||
_loggerFactory = loggerFactory;
|
||||
_env = env;
|
||||
}
|
||||
|
||||
public void OnException(ExceptionContext context)
|
||||
{
|
||||
throw context.Exception;
|
||||
}
|
||||
}
|
||||
}
|
||||
49
Services/Hncore.Pass.Manage/Hncore.Pass.Manage.csproj
Normal file
49
Services/Hncore.Pass.Manage/Hncore.Pass.Manage.csproj
Normal file
@@ -0,0 +1,49 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
<ServerGarbageCollection>false</ServerGarbageCollection>
|
||||
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="Domain\BaseSetting\**" />
|
||||
<Compile Remove="Models\**" />
|
||||
<Content Remove="Domain\BaseSetting\**" />
|
||||
<Content Remove="Models\**" />
|
||||
<EmbeddedResource Remove="Domain\BaseSetting\**" />
|
||||
<EmbeddedResource Remove="Models\**" />
|
||||
<None Remove="Domain\BaseSetting\**" />
|
||||
<None Remove="Models\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="Service\ManageService.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper" Version="8.1.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" />
|
||||
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Repository\Map\BaseSetting\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Infrastructure\Hncore.Infrastructure\Hncore.Infrastructure.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ProjectExtensions><VisualStudio><UserProperties appsettings_1Development_1json__JSONSchema="" /></VisualStudio></ProjectExtensions>
|
||||
|
||||
</Project>
|
||||
24
Services/Hncore.Pass.Manage/Program.cs
Normal file
24
Services/Hncore.Pass.Manage/Program.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace Hncore.Pass.Manage
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
CreateWebHostBuilder(args).Build().Run();
|
||||
}
|
||||
|
||||
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
|
||||
WebHost.CreateDefaultBuilder(args)
|
||||
.UseStartup<Startup>();
|
||||
}
|
||||
}
|
||||
27
Services/Hncore.Pass.Manage/Properties/launchSettings.json
Normal file
27
Services/Hncore.Pass.Manage/Properties/launchSettings.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"iisSettings": {
|
||||
"windowsAuthentication": false,
|
||||
"anonymousAuthentication": true,
|
||||
"iisExpress": {
|
||||
"applicationUrl": "http://localhost:58643",
|
||||
"sslPort": 44388
|
||||
}
|
||||
},
|
||||
"profiles": {
|
||||
"IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"Hncore.Pass.Manage": {
|
||||
"commandName": "Project",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
},
|
||||
"applicationUrl": "http://localhost:5007"
|
||||
}
|
||||
}
|
||||
}
|
||||
38
Services/Hncore.Pass.Manage/Repository/EfDbContext.cs
Normal file
38
Services/Hncore.Pass.Manage/Repository/EfDbContext.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Hncore.Pass.Manage.Repository
|
||||
{
|
||||
/// <summary>
|
||||
/// EF数据库上下文类
|
||||
/// </summary>
|
||||
///
|
||||
public class EfDbContext : DbContextBase
|
||||
{
|
||||
public DbContext DbContext => this;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
/// <param name="options">上下文实体</param>
|
||||
/// <param name="httpContextAccessor">http请求上下文</param>
|
||||
public EfDbContext(DbContextOptions<EfDbContext> options, IHttpContextAccessor httpContextAccessor) :
|
||||
base(options, httpContextAccessor)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 创建映射
|
||||
/// </summary>
|
||||
/// <param name="modelBuilder"></param>
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.AutoMap(typeof(EfDbContext));
|
||||
|
||||
base.OnModelCreating(modelBuilder);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Repository.Map
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员项目映射实体表映射类
|
||||
/// </summary>
|
||||
///
|
||||
public class AuthorityManagerDataDomainMap : EntityMapBase<AuthorityManagerDataDomain>
|
||||
{
|
||||
/// <summary>
|
||||
/// 映射方法
|
||||
/// </summary>
|
||||
/// <param name="builder">实体模型构建器</param>
|
||||
///
|
||||
public override void Map(EntityTypeBuilder<AuthorityManagerDataDomain> builder)
|
||||
{
|
||||
builder.ToTable("etor_authority_managerdatadomain");//指定表名
|
||||
|
||||
builder.HasKey(t => t.Id); //指定主键
|
||||
builder.Property(t => t.Id).HasColumnName("id").ValueGeneratedOnAdd(); //指定主键在创建的时候自动生成
|
||||
|
||||
builder.Property(t => t.TenantId).HasColumnName("owner_id");//所属物业ID
|
||||
builder.Property(t => t.CreateTime).HasColumnName("createtime");//创建时间
|
||||
builder.Property(t => t.UpdateTime).HasColumnName("updatetime");//更新时间
|
||||
builder.Property(t => t.CreatorId).HasColumnName("creatorid");//创建人ID
|
||||
builder.Property(t => t.UpdatorId).HasColumnName("updatorid");//更新人ID
|
||||
builder.Property(t => t.DeleteTag).HasColumnName("deletetag");//软删除标记
|
||||
builder.Property(t => t.ManagerId).HasColumnName("managerid");//管理员数据库ID
|
||||
builder.Property(t => t.ProjectCode).HasColumnName("projectcode");//项目编码
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Services/Hncore.Pass.Manage/Repository/Map/ManagerMap.cs
Normal file
32
Services/Hncore.Pass.Manage/Repository/Map/ManagerMap.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Repository.Map
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员项目映射实体表映射类
|
||||
/// </summary>
|
||||
///
|
||||
public class ManagerMap : EntityMapBase<Manager>
|
||||
{
|
||||
/// <summary>
|
||||
/// 映射方法
|
||||
/// </summary>
|
||||
/// <param name="builder">实体模型构建器</param>
|
||||
///
|
||||
public override void Map(EntityTypeBuilder<Manager> builder)
|
||||
{
|
||||
builder.ToTable("manager");//指定表名
|
||||
|
||||
builder.HasKey(t => t.Id); //指定主键
|
||||
builder.Property(t => t.Id).HasColumnName("id").ValueGeneratedOnAdd(); //指定主键在创建的时候自动生成
|
||||
}
|
||||
}
|
||||
}
|
||||
45
Services/Hncore.Pass.Manage/Repository/Map/ManagerTagMap.cs
Normal file
45
Services/Hncore.Pass.Manage/Repository/Map/ManagerTagMap.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Repository.Map
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员项目映射实体表映射类
|
||||
/// </summary>
|
||||
///
|
||||
public class ManagerTagMap : EntityMapBase<ManagerTag>
|
||||
{
|
||||
/// <summary>
|
||||
/// 映射方法
|
||||
/// </summary>
|
||||
/// <param name="builder">实体模型构建器</param>
|
||||
///
|
||||
public override void Map(EntityTypeBuilder<ManagerTag> builder)
|
||||
{
|
||||
builder.ToTable("etor_authority_managertag");//指定表名
|
||||
|
||||
builder.HasKey(t => t.Id); //指定主键
|
||||
builder.Property(t => t.Id).HasColumnName("id").ValueGeneratedOnAdd(); //指定主键在创建的时候自动生成
|
||||
|
||||
builder.Property(t => t.OwnerId).HasColumnName("owner_id");//所属物业ID
|
||||
builder.Property(t => t.CreateTime).HasColumnName("createtime");//创建时间
|
||||
builder.Property(t => t.UpdateTime).HasColumnName("updatetime");//更新时间
|
||||
builder.Property(t => t.CreatorId).HasColumnName("creatorid");//创建人ID
|
||||
builder.Property(t => t.UpdatorId).HasColumnName("updatorid");//更新人ID
|
||||
builder.Property(t => t.DeleteTag).HasColumnName("deletetag");//软删除标记
|
||||
|
||||
builder.Property(t => t.ManagerId).HasColumnName("managerid");//管理员id
|
||||
builder.Property(t => t.Tag).HasColumnName("tag");//管理员标签
|
||||
builder.Property(t => t.TagType).HasColumnName("tagtype");//管理员标签
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Repository.Map
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员项目映射实体表映射类
|
||||
/// </summary>
|
||||
///
|
||||
public class ManagerTagToPermissionMap : EntityMapBase<ManagerTagToPermission>
|
||||
{
|
||||
/// <summary>
|
||||
/// 映射方法
|
||||
/// </summary>
|
||||
/// <param name="builder">实体模型构建器</param>
|
||||
///
|
||||
public override void Map(EntityTypeBuilder<ManagerTagToPermission> builder)
|
||||
{
|
||||
builder.ToTable("etor_authority_managertagtopermission");//指定表名
|
||||
|
||||
builder.HasKey(t => t.Id); //指定主键
|
||||
builder.Property(t => t.Id).HasColumnName("id").ValueGeneratedOnAdd(); //指定主键在创建的时候自动生成
|
||||
|
||||
builder.Property(t => t.OwnerId).HasColumnName("owner_id");//所属物业ID
|
||||
builder.Property(t => t.CreateTime).HasColumnName("createtime");//创建时间
|
||||
builder.Property(t => t.UpdateTime).HasColumnName("updatetime");//更新时间
|
||||
builder.Property(t => t.CreatorId).HasColumnName("creatorid");//创建人ID
|
||||
builder.Property(t => t.UpdatorId).HasColumnName("updatorid");//更新人ID
|
||||
builder.Property(t => t.DeleteTag).HasColumnName("deletetag");//软删除标记
|
||||
|
||||
builder.Property(t => t.ManagerTagId).HasColumnName("managertagid");//管理员id
|
||||
builder.Property(t => t.PermissionCode).HasColumnName("permissioncode");//权限编码
|
||||
builder.Property(t => t.AllowView).HasColumnName("allowview");//是否查看
|
||||
builder.Property(t => t.AllowAdd).HasColumnName("allowadd");//是否添加
|
||||
builder.Property(t => t.AllowEdit).HasColumnName("allowedit");//是否编辑
|
||||
builder.Property(t => t.AllowDel).HasColumnName("allowdel");//是否删除
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Repository.Map
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员项目映射实体表映射类
|
||||
/// </summary>
|
||||
///
|
||||
public class ManagerToPermissionMap : EntityMapBase<Domain.ManagerToPermission>
|
||||
{
|
||||
/// <summary>
|
||||
/// 映射方法
|
||||
/// </summary>
|
||||
/// <param name="builder">实体模型构建器</param>
|
||||
///
|
||||
public override void Map(EntityTypeBuilder<Domain.ManagerToPermission> builder)
|
||||
{
|
||||
builder.ToTable("manager_permission_map");//指定表名
|
||||
|
||||
builder.HasKey(t => t.Id); //指定主键
|
||||
builder.Property(t => t.Id).HasColumnName("id").ValueGeneratedOnAdd(); //指定主键在创建的时候自动生成
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
33
Services/Hncore.Pass.Manage/Repository/Map/PermissionMap.cs
Normal file
33
Services/Hncore.Pass.Manage/Repository/Map/PermissionMap.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Repository.Map
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员项目映射实体表映射类
|
||||
/// </summary>
|
||||
///
|
||||
public class PermissionMap : EntityMapBase<Domain.Permission>
|
||||
{
|
||||
/// <summary>
|
||||
/// 映射方法
|
||||
/// </summary>
|
||||
/// <param name="builder">实体模型构建器</param>
|
||||
///
|
||||
public override void Map(EntityTypeBuilder<Domain.Permission> builder)
|
||||
{
|
||||
builder.ToTable("manager_permission");//指定表名
|
||||
|
||||
builder.HasKey(t => t.Id); //指定主键
|
||||
builder.Property(t => t.Id).HasColumnName("Id").ValueGeneratedOnAdd(); //指定主键在创建的时候自动生成
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Repository.Map
|
||||
{
|
||||
|
||||
public class etor_property_estateMap : EntityMapBase<etor_property_estate>
|
||||
{
|
||||
public override void Map(EntityTypeBuilder<etor_property_estate> builder)
|
||||
{
|
||||
builder.ToTable("etor_property_estate");
|
||||
|
||||
builder.HasKey(t => t.Id);
|
||||
|
||||
builder.Property(t => t.Id).ValueGeneratedOnAdd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.ManageDataDomain.Request
|
||||
{
|
||||
public class BindDataDomainRequest
|
||||
{
|
||||
public System.Int32 Managerid { get; set; }
|
||||
public System.Int32[] Projectcodes { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
public class DelManagerRequest : RequestBase
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据库id
|
||||
/// </summary>
|
||||
[FromQuery(Name = "Data.Id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
public class EditManagerRequest : RequestBase
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 删除标记
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员登录名
|
||||
/// </summary>
|
||||
public string LoginCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录密码[20]
|
||||
/// </summary>
|
||||
public string Password { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员手机号
|
||||
/// </summary>
|
||||
public string Phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员姓名
|
||||
/// </summary>
|
||||
public string RealName { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 关联的内部人员id
|
||||
/// </summary>
|
||||
public int workerid { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 管理员角色
|
||||
/// </summary>
|
||||
public int roleid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int state { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 头像地址[30
|
||||
/// </summary>
|
||||
public string photourl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微信openid[50]
|
||||
/// </summary>
|
||||
public string wxopenid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微信昵称
|
||||
/// </summary>
|
||||
public string wxnickname { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微信头像
|
||||
/// </summary>
|
||||
public string wximage { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 注册来源
|
||||
/// </summary>
|
||||
public int source { get; set; }
|
||||
/// <summary>
|
||||
/// 系统ID
|
||||
/// </summary>
|
||||
public int systemid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 账号code
|
||||
/// </summary>
|
||||
public string managercode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 电子邮箱
|
||||
/// </summary>
|
||||
public string Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 项目关联
|
||||
/// </summary>
|
||||
public string ProjectContact { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 权限集合
|
||||
/// </summary>
|
||||
public List<ManagerToPermission> Permissions;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
29
Services/Hncore.Pass.Manage/Request/Manager/LoginRequest.cs
Normal file
29
Services/Hncore.Pass.Manage/Request/Manager/LoginRequest.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
public class LoginRequest
|
||||
{
|
||||
public LoginRequestData Data { get; set; }
|
||||
}
|
||||
public class LoginRequestData
|
||||
{
|
||||
/// <summary>
|
||||
/// 登录名
|
||||
/// </summary>
|
||||
public System.String Logincode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 密码
|
||||
/// </summary>
|
||||
public System.String Password { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 验证码
|
||||
/// </summary>
|
||||
public string Code { get; set; }
|
||||
/// <summary>
|
||||
/// 验证码key
|
||||
/// </summary>
|
||||
public string CodeKey { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
public class QueryListManagerRequest :PageRequestBase
|
||||
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 查询关键字
|
||||
/// </summary>
|
||||
public string KeyWord { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// IsRoot 查询字管理员列表
|
||||
/// <summary>
|
||||
public int IsRoot { get; set; }
|
||||
}
|
||||
public class TransferPrivilegeDTO
|
||||
{
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 短信Key
|
||||
/// </summary>
|
||||
public string Key { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 短信Code
|
||||
/// <summary>
|
||||
public string Code { get; set; }
|
||||
|
||||
}
|
||||
public class SmsValidDTO
|
||||
{
|
||||
/// <summary>
|
||||
/// 短信验证码
|
||||
/// </summary>
|
||||
public string Code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 手机号
|
||||
/// </summary>
|
||||
public string Phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 时间戳
|
||||
/// <summary>
|
||||
public string TimeStamp { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
public class QueryManagerRequest : RequestBase
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// <summary>
|
||||
[FromQuery(Name = "Data.Id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员登录名
|
||||
/// </summary>
|
||||
[FromQuery(Name = "Data.LoginCode")]
|
||||
public string LoginCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员手机号
|
||||
/// </summary>
|
||||
[FromQuery(Name = "Data.Phone")]
|
||||
public string Phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员姓名
|
||||
/// </summary>
|
||||
[FromQuery(Name = "Data.RealName")]
|
||||
public string RealName { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 权限集合
|
||||
/// </summary>
|
||||
public List<ManagerToPermission> Permissions;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
public class EditManagerTagRequest : RequestBase
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// 流水id
|
||||
/// </summary>
|
||||
[JsonProperty("Id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
[JsonProperty("Tag")]
|
||||
public string Tag { get; set; }
|
||||
|
||||
[JsonProperty("ManagerId")]
|
||||
public int ManagerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限集合
|
||||
/// </summary>
|
||||
public List<ManagerTagToPermission> Permissions;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
public class ManagerTagRequest : RequestBase
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
[FromQuery(Name = "Data.Id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签
|
||||
/// </summary>
|
||||
[FromQuery(Name = "Data.Tag")]
|
||||
public string Tag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// </summary>
|
||||
[FromQuery(Name = "Data.ManagerId")]
|
||||
public int ManagerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// </summary>
|
||||
[FromQuery(Name = "Data.TagType")]
|
||||
public int TagType { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签关联权限对象
|
||||
/// </summary>
|
||||
public class ManagerTagToPerRequest : RequestBase
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
[FromQuery(Name = "Data.Id")]
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// 管理员标签id
|
||||
/// </summary>
|
||||
[FromQuery(Name = "Data.ManagerTagId")]
|
||||
public int ManagerTagId { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
public class CreateManagerToPermissionRequest : RequestBase
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 删除标记
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员登录名
|
||||
/// </summary>
|
||||
public string LoginCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录密码[20]
|
||||
/// </summary>
|
||||
public string Password { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员手机号
|
||||
/// </summary>
|
||||
public string Phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员姓名
|
||||
/// </summary>
|
||||
public string RealName { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 关联的内部人员id
|
||||
/// </summary>
|
||||
public int workerid { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 管理员角色
|
||||
/// </summary>
|
||||
public int roleid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int state { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 权限集合
|
||||
/// </summary>
|
||||
public List<ManagerToPermission> Permissions ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
public class EditManagerToPermissionRequest : RequestBase
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
[JsonProperty("Id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// </summary>
|
||||
[JsonProperty("ManagerId")]
|
||||
public int ManagerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// </summary>
|
||||
[JsonProperty("PermissionCode")]
|
||||
public string PermissionCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否查看
|
||||
/// </summary>
|
||||
[JsonProperty("AllowView")]
|
||||
public int AllowView { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否添加
|
||||
/// </summary>
|
||||
[JsonProperty("AllowAdd")]
|
||||
public int AllowAdd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否修改
|
||||
/// </summary>
|
||||
|
||||
[JsonProperty("AllowEdit")]
|
||||
public int AllowEdit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否删除
|
||||
/// </summary>
|
||||
[JsonProperty("AllowDel")]
|
||||
public int AllowDel { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Request
|
||||
{
|
||||
public class ManagerToPermissionRequest :RequestBase
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
[JsonProperty("Id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签
|
||||
/// </summary>
|
||||
[JsonProperty("Tag")]
|
||||
public string Tag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// </summary>
|
||||
[JsonProperty("ManagerId")]
|
||||
public int ManagerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// </summary>
|
||||
[JsonProperty("PermissionCode")]
|
||||
public string PermissionCode { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class CreateOrEditManagerTagResponse
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签
|
||||
/// </summary>
|
||||
public string Tag { get; set; }
|
||||
|
||||
public CreateOrEditManagerTagResponse FromEntity(Domain.ManagerTag managerTag)
|
||||
{
|
||||
|
||||
Id = managerTag.Id;
|
||||
Tag = managerTag.Tag;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class CreateOrEditManagerToResponse
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 软删除标记,0.代表正常,1.代表已删除
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签
|
||||
/// </summary>
|
||||
public string PermissionCode { get; set; }
|
||||
|
||||
public CreateOrEditManagerToResponse FromEntity(Domain.ManagerToPermission managerToPermission)
|
||||
{
|
||||
|
||||
PermissionCode = managerToPermission.PermissionCode;
|
||||
Id = managerToPermission.Id;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class DomainResponse
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户关系Domain数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 项目编码
|
||||
/// </summary>
|
||||
public int ProjectCode { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class EditManagerResponse
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员登录名
|
||||
/// </summary>
|
||||
public string LoginCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员手机号
|
||||
/// </summary>
|
||||
public string Phone { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
public EditManagerResponse FromEntity(Domain.Manager manager)
|
||||
{
|
||||
|
||||
Id = manager.Id;
|
||||
LoginCode = manager.LoginCode ;
|
||||
Phone = manager.Phone;
|
||||
OwnerId = manager.TenantId;
|
||||
CreateTime = manager.CreateTime;
|
||||
UpdateTime = manager.UpdateTime;
|
||||
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class ManagerResponse
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class PermissionResponse
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 软删除标记,0.代表正常,1.代表已删除
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// <summary>
|
||||
public int ManagerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// <summary>
|
||||
public string PermissionCode { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否查看
|
||||
/// </summary>
|
||||
public int AllowView { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否添加
|
||||
/// </summary>
|
||||
public int AllowAdd { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否修改
|
||||
/// </summary>
|
||||
public int AllowEdit { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否删除
|
||||
/// </summary>
|
||||
public int AllowDel { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class QuertManagerProjectResponse
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class QueryItemManagerResponse
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 删除标记
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
/// <summary>
|
||||
/// 管理员登录名
|
||||
/// </summary>
|
||||
public string LoginCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员手机号
|
||||
/// </summary>
|
||||
public string Phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 头像地址
|
||||
/// </summary>
|
||||
public string Photourl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 项目关联
|
||||
/// </summary>
|
||||
public string ProjectContact { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员姓名
|
||||
/// </summary>
|
||||
public string RealName { get; set; }
|
||||
|
||||
public int Isroot { get; set; }
|
||||
|
||||
public int RoleCode { get; set; }
|
||||
|
||||
|
||||
public List<PermissionResponse> Permission =new List<PermissionResponse>();
|
||||
public List<DomainResponse> Domain = new List<DomainResponse>();
|
||||
|
||||
public static async Task<QueryItemManagerResponse> Query(
|
||||
IQueryable<Domain.Manager> ManagerQueryable
|
||||
, IQueryable<Domain.ManagerToPermission> ManagerToPermissionQueryable
|
||||
, IQueryable<Domain.AuthorityManagerDataDomain> DomainQueryable
|
||||
|
||||
, QueryByIdRequest param
|
||||
)
|
||||
{
|
||||
var search = from dw in ManagerQueryable.Where(p => p.DeleteTag == 0 && p.Id == param.Id && p.TenantId == param.TenantId)
|
||||
join mtp in ManagerToPermissionQueryable.Where(p => p.DeleteTag == 0)
|
||||
on dw.Id equals mtp.ManagerId into Permissions
|
||||
select new { dw, Permissions };
|
||||
var list = search.ToList();
|
||||
|
||||
QueryItemManagerResponse pm = new QueryItemManagerResponse();
|
||||
foreach (var item in list)
|
||||
{
|
||||
pm.Id = item.dw.Id;
|
||||
pm.CreateTime = item.dw.CreateTime;
|
||||
pm.UpdateTime = item.dw.UpdateTime;
|
||||
pm.DeleteTag = item.dw.DeleteTag;
|
||||
pm.OwnerId = item.dw.TenantId;
|
||||
pm.LoginCode = item.dw.LoginCode;
|
||||
pm.RealName = item.dw.RealName;
|
||||
pm.Phone = item.dw.Phone;
|
||||
pm.Photourl = item.dw.PhotoUrl;
|
||||
pm.RoleCode = item.dw.RoleId;
|
||||
// pm.ProjectContact = item.dw.ProjectContact;
|
||||
|
||||
foreach (var itemper in item.Permissions)
|
||||
{
|
||||
PermissionResponse mtp =new PermissionResponse() ;
|
||||
mtp.ManagerId = itemper.ManagerId;
|
||||
mtp.Id = itemper.Id;
|
||||
mtp.AllowAdd = itemper.AllowAdd;
|
||||
mtp.AllowDel = itemper.AllowDel;
|
||||
mtp.AllowEdit = itemper.AllowEdit;
|
||||
mtp.AllowView = itemper.AllowView;
|
||||
mtp.PermissionCode = itemper.PermissionCode;
|
||||
mtp.OwnerId = item.dw.TenantId;
|
||||
pm.Permission.Add(mtp);
|
||||
}
|
||||
}
|
||||
|
||||
//var projectList= DomainQueryable.Where(p => p.DeleteTag == 0 && p.ManagerId == param.Id && p.TenantId == param.TenantId);
|
||||
//foreach(var project in projectList)
|
||||
//{
|
||||
// pm.Domain.Add(new DomainResponse() {
|
||||
// Id= project.Id,
|
||||
// ProjectCode= project.ProjectCode
|
||||
// });
|
||||
//}
|
||||
|
||||
return pm;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Infrastructure.EntitiesExtension;
|
||||
using Hncore.Infrastructure.Extension;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class QueryListManagerResponse
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 删除标记
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员登录名[16
|
||||
/// </summary>
|
||||
public string LoginCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录密码[20]
|
||||
/// </summary>
|
||||
public string Password { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联的内部人员id
|
||||
/// </summary>
|
||||
public int workerid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员角色
|
||||
/// </summary>
|
||||
public int roleid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int state { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 头像地址[30
|
||||
/// </summary>
|
||||
public string Photourl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微信openid[50]
|
||||
/// </summary>
|
||||
public string Wxopenid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微信昵称
|
||||
/// </summary>
|
||||
public string wxnickname { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微信头像
|
||||
/// </summary>
|
||||
public string wximage { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 注册来源
|
||||
/// </summary>
|
||||
public int source { get; set; }
|
||||
/// <summary>
|
||||
/// 系统ID
|
||||
/// </summary>
|
||||
public int systemid { get; set; }
|
||||
/// <summary>
|
||||
/// 管理员手机号
|
||||
/// </summary>
|
||||
public string Phone { get; set; }
|
||||
/// <summary>
|
||||
/// 账号code
|
||||
/// </summary>
|
||||
public string managercode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员姓名
|
||||
/// </summary>
|
||||
public string RealName { get; set; }
|
||||
/// <summary>
|
||||
/// 电子邮箱
|
||||
/// </summary>
|
||||
public string Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 项目关联
|
||||
/// </summary>
|
||||
public string ProjectContact { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联项目数量
|
||||
/// </summary>
|
||||
public int BuildingCount { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
55
Services/Hncore.Pass.Manage/Response/ManagerTagResponse.cs
Normal file
55
Services/Hncore.Pass.Manage/Response/ManagerTagResponse.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class ManagerTagResponse
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签名称
|
||||
/// <summary>
|
||||
public string Tag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签类型
|
||||
/// <summary>
|
||||
public int TagType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// <summary>
|
||||
public int ManagerId { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class ManagerTagToPermissionResponse
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 软删除标记,0.代表正常,1.代表已删除
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签id
|
||||
/// <summary>
|
||||
public int ManagerTagId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// <summary>
|
||||
public string PermissionCode { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否查看
|
||||
/// </summary>
|
||||
public int AllowView { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否添加
|
||||
/// </summary>
|
||||
public int AllowAdd { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否修改
|
||||
/// </summary>
|
||||
public int AllowEdit { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否删除
|
||||
/// </summary>
|
||||
public int AllowDel { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Infrastructure.EntitiesExtension;
|
||||
using Hncore.Infrastructure.Extension;
|
||||
|
||||
namespace Hncore.Pass.Manage.Response.ManagerToPermission
|
||||
{
|
||||
public class QueryPermissionByManagerIdResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属物业ID
|
||||
/// <summary>
|
||||
public int OwnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员数据库ID
|
||||
/// </summary>
|
||||
public int ManagerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 项目编码
|
||||
/// </summary>
|
||||
public int ProjectCode { get; set; }
|
||||
/// <summary>
|
||||
/// 小区名称
|
||||
/// </summary>
|
||||
public string ProjectName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员与权限对应表
|
||||
/// </summary>
|
||||
/// <param name="domainQueryable"></param>
|
||||
/// <param name="managerId"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<List<QueryPermissionByManagerIdResponse>> GetByManageId(
|
||||
IQueryable<Domain.AuthorityManagerDataDomain> domainQueryable,
|
||||
IQueryable<Domain.etor_property_estate> projects,
|
||||
IQueryable<Domain.Manager> manages ,
|
||||
int managerId)
|
||||
{
|
||||
List<QueryPermissionByManagerIdResponse> result = new List<QueryPermissionByManagerIdResponse>();
|
||||
var manage = await manages.FirstOrDefaultAsync(p=>p.Id== managerId);
|
||||
if (manage.IsRoot)
|
||||
{
|
||||
result = await projects.Where(p => p.owner_id == manage.TenantId && p.DeleteTag == 0).Select(r => new QueryPermissionByManagerIdResponse()
|
||||
{
|
||||
Id = 0,
|
||||
ManagerId = managerId,
|
||||
OwnerId = r.owner_id,
|
||||
ProjectCode = r.projectcode,
|
||||
ProjectName = r.name
|
||||
}).ToListAsync();
|
||||
}
|
||||
else {
|
||||
result = await (from domain in domainQueryable.Where(p => p.ManagerId == managerId && p.DeleteTag == 0)
|
||||
join pro in projects
|
||||
on domain.ProjectCode equals pro.projectcode
|
||||
select new QueryPermissionByManagerIdResponse()
|
||||
{
|
||||
Id = domain.Id,
|
||||
ManagerId = domain.ManagerId,
|
||||
OwnerId = domain.TenantId,
|
||||
ProjectCode = domain.ProjectCode,
|
||||
ProjectName = pro.name
|
||||
}).ToListAsync();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
using Hncore.Infrastructure.Data;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Linq.Expressions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Infrastructure.EntitiesExtension;
|
||||
using Hncore.Infrastructure.Extension;
|
||||
|
||||
|
||||
namespace Hncore.Pass.Manage.Response
|
||||
{
|
||||
public class QueryPermissionResponse
|
||||
|
||||
{
|
||||
|
||||
/// 用户数据库ID
|
||||
/// <summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// <summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// <summary>
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人ID
|
||||
/// <summary>
|
||||
public int CreatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人ID
|
||||
/// <summary>
|
||||
public int UpdatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 软删除标记,0.代表正常,1.代表已删除
|
||||
/// <summary>
|
||||
public int DeleteTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员id
|
||||
/// <summary>
|
||||
public int ManagerId { get; set; }
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// <summary>
|
||||
public string Permissioncode { get; set; }
|
||||
|
||||
|
||||
public string Parentcode { get; set; }
|
||||
|
||||
public string Permissionlabel { get; set; }
|
||||
|
||||
public string Permissionurl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图标[50]
|
||||
/// </summary>
|
||||
public string Icon { get; set; }
|
||||
/// <summary>
|
||||
/// 激活图标
|
||||
/// </summary>
|
||||
public string Iconactivate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否查看
|
||||
/// </summary>
|
||||
public Boolean AllowView { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 是否添加
|
||||
/// </summary>
|
||||
public Boolean AllowAdd { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 是否修改
|
||||
/// </summary>
|
||||
public Boolean AllowEdit { get; set; } = false;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否删除
|
||||
/// </summary>
|
||||
public Boolean AllowDel { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 显示排序
|
||||
/// </summary>
|
||||
public int Sortorder { get; set; }
|
||||
/// <summary>
|
||||
/// 是否收费
|
||||
/// </summary>
|
||||
public bool Ischarge { get; set; }
|
||||
/// <summary>
|
||||
/// 模块编码
|
||||
/// </summary>
|
||||
public string Nodecode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否新功能
|
||||
/// </summary>
|
||||
public bool isnew { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 系统标识
|
||||
/// </summary>
|
||||
public int Systemid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string Appcodes { get; set; }
|
||||
|
||||
public IList<QueryPermissionResponse> Children { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
71
Services/Hncore.Pass.Manage/Service/BaseService.cs
Normal file
71
Services/Hncore.Pass.Manage/Service/BaseService.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using Hncore.Infrastructure.EF;
|
||||
using Hncore.Pass.Manage.Configs;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Repository;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.Options;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
|
||||
namespace Hncore.Pass.Manage.Service
|
||||
{
|
||||
/// <summary>
|
||||
/// 父业务逻辑类
|
||||
/// </summary>
|
||||
///
|
||||
public abstract class BaseService
|
||||
{
|
||||
/// <summary>
|
||||
/// 配置文件数据承载对象
|
||||
/// </summary>
|
||||
protected readonly AppSettings _appSettings;
|
||||
|
||||
/// <summary>
|
||||
/// EF上下文对象
|
||||
/// </summary>
|
||||
protected readonly EfDbContext _dbCtx;
|
||||
|
||||
/// <summary>
|
||||
/// 数据库连接字符串
|
||||
/// </summary>
|
||||
public string OldDbConString { get { return _appSettings.OldDbConString; } }
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
/// <param name="hca">HTTP上下文访问对象</param>
|
||||
public BaseService(IHttpContextAccessor hca)
|
||||
{
|
||||
this._dbCtx= hca.HttpContext.RequestServices.GetService(typeof(EfDbContext)) as EfDbContext;
|
||||
//获取当前应用配置信息承载对象
|
||||
var oa=hca.HttpContext.RequestServices.GetService(typeof(IOptionsMonitor<AppSettings>)) as IOptionsMonitor<AppSettings>;
|
||||
this._appSettings = oa.CurrentValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取操作员有权操作的项目编码列表(可直接用于EF查询中的Labmda查询条件中)
|
||||
/// </summary>
|
||||
/// <param name="operaterId">操作员数据库ID</param>
|
||||
/// <param name="ownerId">隶属的物业ID</param>
|
||||
/// <returns>有权操作的项目编码列表,没有就返回null</returns>
|
||||
public IQueryable<int> GetManagerProjectCodeList(int operaterId, int ownerId = 0)
|
||||
{
|
||||
if (operaterId <= 0)
|
||||
return null;
|
||||
|
||||
Expression<Func<AuthorityManagerDataDomain, bool>> expression = c => c.DeleteTag == 0 && c.ManagerId == operaterId;
|
||||
if (ownerId > 0)
|
||||
{//如果传递了物业ID,需要动态将物业ID追加到Lambda表达式中去
|
||||
var p1 = expression.Parameters[0];
|
||||
var ownerIdExpression = Expression.PropertyOrField(p1, "OwnerId");
|
||||
var m3 = Expression.Equal(ownerIdExpression, Expression.Constant(ownerId));
|
||||
var body= Expression.And(expression.Body, m3);
|
||||
expression = Expression.Lambda<Func<AuthorityManagerDataDomain, bool>>(body, p1);
|
||||
}
|
||||
IQueryable<int> list = _dbCtx.Set<AuthorityManagerDataDomain>().GetQueryable().Where(expression).Select(c => c.ProjectCode);
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
155
Services/Hncore.Pass.Manage/Service/ManageService.cs
Normal file
155
Services/Hncore.Pass.Manage/Service/ManageService.cs
Normal file
@@ -0,0 +1,155 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Etor.Infrastructure.Common;
|
||||
using Etor.Infrastructure.Data;
|
||||
using Etor.Infrastructure.Extension;
|
||||
using Etor.PSIP.Manage.Models;
|
||||
using Etor.PSIP.Manage.Request;
|
||||
using Etor.PSIP.Manage.Response;
|
||||
using JWT;
|
||||
using JWT.Algorithms;
|
||||
using JWT.Serializers;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Etor.PSIP.Manage.Service
|
||||
{
|
||||
public class ManageService
|
||||
{
|
||||
private static string _secret = "etor_yh_lzh_20f_2017_PETER";
|
||||
|
||||
private EtorPropertyDbContext _dbContext;
|
||||
|
||||
public ManageService(EtorPropertyDbContext dbContext)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
}
|
||||
|
||||
public async Task<LoginResponse> Login(LoginRequestData request)
|
||||
{
|
||||
if (request == null
|
||||
|| !request.Code.Has()
|
||||
|| !request.CodeKey.Has()
|
||||
|| !request.Logincode.Has()
|
||||
|| !request.Password.Has()
|
||||
)
|
||||
{
|
||||
BusinessException.Throw("登陆信息异常");
|
||||
}
|
||||
|
||||
string valCode = await RedisHelper.GetAsync(request.CodeKey);
|
||||
if (!valCode.Has() || valCode.ToLower() != request.Code.ToLower())
|
||||
{
|
||||
BusinessException.Throw("验证码错误");
|
||||
}
|
||||
|
||||
var manage = await _dbContext.Set<etor_authority_manager>()
|
||||
.FirstOrDefaultAsync(m => (m.logincode == request.Logincode || m.phone == request.Logincode)
|
||||
&& m.DeleteTag == 0
|
||||
&& m.state == (int) ManagerState.Enabled);
|
||||
|
||||
if (manage == null)
|
||||
{
|
||||
BusinessException.Throw("登录名不存在");
|
||||
}
|
||||
|
||||
if (HashPassword(request.Password).ToUpper() != manage.password.ToUpper())
|
||||
{
|
||||
BusinessException.Throw("密码错误");
|
||||
}
|
||||
|
||||
var tokenDic = new Dictionary<string, object>()
|
||||
{
|
||||
{"LoginName", manage.logincode},
|
||||
{"RoleName", ""},
|
||||
{"OperaterID", manage.ID},
|
||||
{"OwnerID", manage.owner_id}
|
||||
};
|
||||
|
||||
var isRoot = await _dbContext.Set<etor_authority_role>().AnyAsync(r => r.DeleteTag == 0
|
||||
&& r.ID == manage.roleid
|
||||
&& r.owner_id == manage.owner_id
|
||||
&& r.isroot);
|
||||
|
||||
if (!isRoot)
|
||||
{
|
||||
int[] domains = await _dbContext.Set<etor_authority_managerdatadomain>()
|
||||
.Where(p => p.owner_id == manage.owner_id && p.DeleteTag == 0 && p.managerid == manage.ID)
|
||||
.Select(t => t.projectcode)
|
||||
.ToArrayAsync();
|
||||
|
||||
tokenDic.Add("DataDomain", domains);
|
||||
}
|
||||
|
||||
var minutes = (DateTime.Now.AddYears(1) - DateTime.Now).TotalMinutes;
|
||||
var token = GenerateToken(tokenDic, Convert.ToInt32(minutes));
|
||||
|
||||
var response = new LoginManagerResponse().FromEntity(manage);
|
||||
|
||||
var property = await _dbContext.Set<etor_property>()
|
||||
.FirstOrDefaultAsync(f => f.ID == manage.owner_id && f.DeleteTag == 0);
|
||||
|
||||
response.PropertyCompanyName = property.companyname;
|
||||
response.ExpiredTime = property.ExpiredTime;
|
||||
response.ValidDays = (property.ExpiredTime - DateTime.Now.Date).Days;
|
||||
response.IsRootUser = isRoot;
|
||||
|
||||
if (response.Phone.Has())
|
||||
{
|
||||
var employee = await _dbContext.EtorNinternalStaff.FirstOrDefaultAsync(_ => _.DeleteTag == 0
|
||||
&& _.Mobile ==
|
||||
response.Phone);
|
||||
|
||||
if (employee != null)
|
||||
{
|
||||
response.WorkerName = employee.Position;
|
||||
|
||||
var departmentName = await _dbContext.Set<etor_ninternal_department>()
|
||||
.Where(_ => _.DeleteTag == 0 && _.ID == employee.Departmentid)
|
||||
.Select(t => t.departmentname)
|
||||
.FirstOrDefaultAsync();
|
||||
|
||||
response.DepartmentName = departmentName;
|
||||
}
|
||||
}
|
||||
|
||||
return new LoginResponse()
|
||||
{
|
||||
Token = token,
|
||||
Manager = response
|
||||
};
|
||||
}
|
||||
|
||||
private static string GenerateToken(Dictionary<string, object> param, int timeoutMinutes = 120)
|
||||
{
|
||||
IJwtAlgorithm algorithm = new HMACSHA256Algorithm();
|
||||
IJsonSerializer serializer = new JsonNetSerializer();
|
||||
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
|
||||
IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);
|
||||
IDateTimeProvider provider = new UtcDateTimeProvider();
|
||||
var now = provider.GetNow();
|
||||
var secondsSinceEpoch = Math.Round((now - new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds);
|
||||
|
||||
|
||||
param["exp"] = secondsSinceEpoch + Math.Max(0, timeoutMinutes) * 60; //什么时候签发的
|
||||
//param["exp"] = secondsSinceEpoch + 1;//什么时候签发的
|
||||
|
||||
var token = encoder.Encode(param, _secret);
|
||||
|
||||
return token;
|
||||
}
|
||||
|
||||
public static string HashPassword(string password)
|
||||
{
|
||||
using (MD5 md5 = MD5.Create())
|
||||
{
|
||||
byte[] bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(password));
|
||||
return Convert.ToBase64String(bytes);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
144
Services/Hncore.Pass.Manage/Service/ManagerPermissionService.cs
Normal file
144
Services/Hncore.Pass.Manage/Service/ManagerPermissionService.cs
Normal file
@@ -0,0 +1,144 @@
|
||||
using Hncore.Infrastructure.Common;
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Pass.Manage.Response;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using Hncore.Infrastructure.EntitiesExtension;
|
||||
using Hncore.Pass.Manage.Repository;
|
||||
using Hncore.Infrastructure.EF;
|
||||
|
||||
namespace Hncore.Pass.Manage.Service
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 管理员业务逻辑类
|
||||
/// </summary>
|
||||
///
|
||||
public class ManagerPermissionService : BaseService
|
||||
{
|
||||
EfDbContext m_DbContext { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
/// <param name="">管理员标签查询对象</param>
|
||||
|
||||
public ManagerPermissionService(EfDbContext _DbContext,
|
||||
IHttpContextAccessor hca) : base(hca)
|
||||
{
|
||||
m_DbContext = _DbContext;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取管理员权限
|
||||
/// </summary>
|
||||
/// <param name="request">请求对象</param>
|
||||
/// <returns>响应列表对象</returns>
|
||||
public async Task<List<QueryPermissionResponse>> GetByOperator(QueryByIdRequest param,bool showAll)
|
||||
{
|
||||
//获取到所拥有的所有权限
|
||||
// var meCodes = m_DbContext.Set<ManagerToPermission>().GetQueryable().Where(c => c.DeleteTag == 0 && c.ManagerId == param.Id).Select(c => c.PermissionCode);
|
||||
// var search = m_DbContext.Set<Permission>().GetQueryable().Where(c => c.DeleteTag == 0 && c.Systemid == 100 && meCodes.Contains(c.Permissioncode));
|
||||
var managerpPrmissions = new List<ManagerToPermission>();
|
||||
var manager = await m_DbContext.Set<Manager>().FindByIdAsync(param.Id);
|
||||
var permissions = m_DbContext.Set<Permission>().GetQueryable()
|
||||
.Where(c => c.DeleteTag == 0 && c.Systemid == 100)
|
||||
.OrderBy(m => m.Sortorder)
|
||||
.ToList();
|
||||
if (manager.IsRoot)
|
||||
{
|
||||
permissions.ForEach(m => {
|
||||
managerpPrmissions.Add(new ManagerToPermission()
|
||||
{
|
||||
AllowAdd = 1,
|
||||
AllowDel = 1,
|
||||
AllowEdit = 1,
|
||||
AllowView = 1,
|
||||
ManagerId = manager.Id,
|
||||
PermissionCode = m.Permissioncode,
|
||||
TenantId = manager.TenantId,
|
||||
});
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
managerpPrmissions = m_DbContext.Set<ManagerToPermission>().GetQueryable().Where(c => c.DeleteTag == 0 && c.ManagerId == param.Id).ToList();
|
||||
}
|
||||
|
||||
List<QueryPermissionResponse> result = CreatePermissionList(permissions, "0", managerpPrmissions, showAll);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 组装权限列表
|
||||
/// </summary>
|
||||
/// <param name="all">所有的权限列表</param>
|
||||
/// <param name="parentCode">父级权限编码</param>
|
||||
/// <returns>组装好的列表</returns>
|
||||
private List<QueryPermissionResponse> CreatePermissionList(List<Permission> all, string parentCode, List<ManagerToPermission> mlist, bool showAll=true)
|
||||
{
|
||||
var list = all.Where(c => c.Parentcode == parentCode);
|
||||
if (list == null || list.Count() <= 0)
|
||||
return null;
|
||||
List<QueryPermissionResponse> result = new List<QueryPermissionResponse>();
|
||||
foreach (var item in list)
|
||||
{
|
||||
QueryPermissionResponse mdl = ConvertToQueryPermission(item, mlist, showAll);
|
||||
if (mdl == null) continue;
|
||||
var child = all.Where(c => c.Parentcode == item.Permissioncode);
|
||||
if (child != null && child.Count() > 0)
|
||||
mdl.Children = CreatePermissionList(all, item.Permissioncode, mlist, showAll);
|
||||
result.Add(mdl);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 实体转换返回数据对象
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns></returns>
|
||||
private QueryPermissionResponse ConvertToQueryPermission(Permission item, List<ManagerToPermission> mlist,bool showAll=true)
|
||||
{
|
||||
var one = mlist.FirstOrDefault(t => t.PermissionCode == item.Permissioncode);
|
||||
QueryPermissionResponse mp = new QueryPermissionResponse();
|
||||
if (one != null)
|
||||
{
|
||||
mp.AllowAdd = true;
|
||||
mp.AllowDel = true;
|
||||
mp.AllowEdit = true;
|
||||
mp.AllowView = true;
|
||||
}
|
||||
if (one == null && !showAll) return null;
|
||||
|
||||
|
||||
mp.Id = item.Id;
|
||||
mp.Permissioncode = item.Permissioncode;
|
||||
mp.Permissionlabel = item.Permissionlabel;
|
||||
mp.Permissionurl = item.Permissionurl;
|
||||
mp.Parentcode = item.Parentcode;
|
||||
|
||||
mp.DeleteTag = item.DeleteTag;
|
||||
mp.CreatorId = item.CreatorId;
|
||||
mp.CreateTime = item.CreateTime;
|
||||
mp.UpdateTime = item.UpdateTime;
|
||||
mp.Sortorder = item.Sortorder;
|
||||
mp.Icon = item.Icon;
|
||||
mp.Iconactivate = item.Iconactivate;
|
||||
mp.Systemid = item.Systemid;
|
||||
mp.isnew = item.isnew;
|
||||
return mp;
|
||||
}
|
||||
}
|
||||
}
|
||||
96
Services/Hncore.Pass.Manage/Service/ManagerService.cs
Normal file
96
Services/Hncore.Pass.Manage/Service/ManagerService.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
using Hncore.Infrastructure.Common;
|
||||
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 Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Service
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 管理员业务逻辑类
|
||||
/// </summary>
|
||||
///
|
||||
public class ManagerService : BaseService
|
||||
{
|
||||
EfDbContext m_DbContext { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
/// <param name="">管理员标签查询对象</param>
|
||||
|
||||
public ManagerService(EfDbContext _DbContext,
|
||||
IHttpContextAccessor hca) : base(hca)
|
||||
{
|
||||
m_DbContext = _DbContext;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取管理员列表
|
||||
/// </summary>
|
||||
/// <param name="request">请求对象</param>
|
||||
/// <returns>响应列表对象</returns>
|
||||
public async Task<(int total, List<QueryListManagerResponse> list)> Get(QueryListManagerRequest request)
|
||||
{
|
||||
|
||||
var root =m_DbContext.Set<Manager>().GetOne(p=>p.Id==request.OperaterId && p.IsRoot == true);
|
||||
|
||||
IQueryable<Manager> managers;
|
||||
if (null ==root)
|
||||
{
|
||||
managers = m_DbContext.Set<Manager>().GetQueryable().Where(m => m.CreatorId == request.OperaterId && m.IsRoot == false);
|
||||
}else
|
||||
{
|
||||
|
||||
managers = m_DbContext.Set<Manager>().GetQueryable().Where(m => m.TenantId == request.TenantId && m.DeleteTag == 0);
|
||||
//是否过滤超级管理员
|
||||
if (request.IsRoot == 1)
|
||||
managers = managers.Where(m => m.IsRoot == false);
|
||||
}
|
||||
|
||||
var search = managers;
|
||||
//过滤关键字
|
||||
if (!string.IsNullOrEmpty(request.KeyWord))
|
||||
search = search.Where(m => m.LoginCode.Contains(request.KeyWord) || m.RealName.Contains(request.KeyWord) || m.Phone.Contains(request.KeyWord));
|
||||
|
||||
int total = await search.CountAsync();//异步查询记录总数
|
||||
//排序分页
|
||||
var list = search.OrderByDescending(m => m.UpdateTime).Skip((request.PageIndex-1) * request.PageSize).Take(request.PageSize).ToList();
|
||||
|
||||
List<QueryListManagerResponse> result = new List<QueryListManagerResponse>();
|
||||
foreach (var item in list)
|
||||
{
|
||||
QueryListManagerResponse m = new QueryListManagerResponse();
|
||||
m.Id = item.Id;
|
||||
m.LoginCode = item.LoginCode;
|
||||
m.OwnerId = request.TenantId;
|
||||
m.Phone = item.Phone;
|
||||
m.Photourl = item.PhotoUrl;
|
||||
m.RealName = item.RealName;
|
||||
m.CreateTime = item.CreateTime;
|
||||
m.UpdateTime = item.UpdateTime;
|
||||
m.CreatorId = item.CreatorId;
|
||||
m.UpdatorId = item.UpdatorId;
|
||||
m.DeleteTag = item.DeleteTag;
|
||||
m.Wxopenid = item.WxOpenid;
|
||||
m.roleid = item.RoleId;
|
||||
result.Add(m);
|
||||
}
|
||||
return (total,result);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
107
Services/Hncore.Pass.Manage/Service/ManagerTagService.cs
Normal file
107
Services/Hncore.Pass.Manage/Service/ManagerTagService.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
using Hncore.Infrastructure.DDD;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Pass.Manage.Response;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using Hncore.Infrastructure.Common;
|
||||
using Hncore.Infrastructure.Serializer;
|
||||
using Microsoft.VisualStudio.TestPlatform.CoreUtilities.Helpers;
|
||||
using Hncore.Pass.Manage.Repository;
|
||||
using Hncore.Infrastructure.EF;
|
||||
|
||||
namespace Hncore.Pass.Manage.Service
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 管理员标签业务逻辑类
|
||||
/// </summary>
|
||||
///
|
||||
public class ManagerTagService : BaseService
|
||||
{
|
||||
EfDbContext m_DbContext { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
/// <param name="feePayRecordQuery">管理员标签查询对象</param>
|
||||
|
||||
public ManagerTagService(EfDbContext _DbContext,
|
||||
IHttpContextAccessor hca) : base(hca)
|
||||
{
|
||||
m_DbContext = _DbContext;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取管理员标签
|
||||
/// </summary>
|
||||
/// <param name="request">请求对象</param>
|
||||
/// <returns>响应列表对象</returns>
|
||||
public async Task<(int total, List<ManagerTagResponse> list)> GetTagList(ManagerTagRequest request)
|
||||
{
|
||||
|
||||
Expression<Func<ManagerTag, bool>> exp = c =>(c.OwnerId==request.TenantId && c.DeleteTag == 0 && c.ManagerId == request.ManagerId && c.TagType==0)|| c.TagType==1;
|
||||
var search = m_DbContext.Set<ManagerTag>().GetQueryable().Where(exp);
|
||||
|
||||
if (!EnvironmentVariableHelper.IsAspNetCoreProduction)
|
||||
{
|
||||
LogHelper.Debug("获取管理员标签",request.ToJson(true));
|
||||
}
|
||||
|
||||
int total = await search.CountAsync();//异步查询记录总数
|
||||
var paged = await search.OrderByDescending(c=>c.TagType).ToListAsync();
|
||||
List<ManagerTagResponse> list = new List<ManagerTagResponse>();
|
||||
foreach (var item in paged)
|
||||
{
|
||||
ManagerTagResponse mtr =new ManagerTagResponse() ;
|
||||
mtr.Id = item.Id;
|
||||
mtr.Tag = item.Tag;
|
||||
mtr.TagType = item.TagType;
|
||||
mtr.ManagerId = item.ManagerId;
|
||||
mtr.CreateTime = item.CreateTime;
|
||||
mtr.UpdateTime = item.UpdateTime;
|
||||
list.Add(mtr);
|
||||
}
|
||||
return (total, list);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取管理员标签权限信息
|
||||
/// </summary>
|
||||
/// <param name="request">请求对象</param>
|
||||
/// <returns>响应列表对象</returns>
|
||||
public async Task<(int total, List<ManagerTagToPermissionResponse> list)> GetTagToPerssionList(ManagerTagToPerRequest request)
|
||||
{
|
||||
|
||||
Expression<Func<ManagerTagToPermission, bool>> exp = c => c.ManagerTagId == request.ManagerTagId;
|
||||
|
||||
var search = m_DbContext.Set<ManagerTagToPermission>().GetQueryable().Where(exp);
|
||||
int total = await search.CountAsync();//异步查询记录总数
|
||||
var paged = await search.OrderByDescending(c => c.Id).ToListAsync();
|
||||
List<ManagerTagToPermissionResponse> list = new List<ManagerTagToPermissionResponse>();
|
||||
foreach (var item in paged)
|
||||
{
|
||||
ManagerTagToPermissionResponse mp = new ManagerTagToPermissionResponse();
|
||||
mp.Id = item.Id;
|
||||
mp.ManagerTagId = item.ManagerTagId;
|
||||
mp.PermissionCode = item.PermissionCode;
|
||||
mp.AllowView = item.AllowView;
|
||||
mp.AllowAdd = item.AllowAdd;
|
||||
mp.AllowEdit = item.AllowEdit;
|
||||
mp.AllowDel = item.AllowDel;
|
||||
mp.CreateTime = item.CreateTime;
|
||||
mp.UpdateTime = item.UpdateTime;
|
||||
list.Add(mp);
|
||||
}
|
||||
return (total, list);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
94
Services/Hncore.Pass.Manage/Startup.cs
Normal file
94
Services/Hncore.Pass.Manage/Startup.cs
Normal file
@@ -0,0 +1,94 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Hncore.Infrastructure.WebApi;
|
||||
using Hncore.Pass.Manage.Configs;
|
||||
using Hncore.Pass.Manage.Repository;
|
||||
using Hncore.Pass.Manage.Util;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace Hncore.Pass.Manage
|
||||
{
|
||||
/// <summary>
|
||||
/// 应用程序启动类(主要完成服务注册和中间件注册,构建HTTP请求管道)
|
||||
/// 应用启动流程:应用启动 -> Startup构造函数 -> ConfigureServices方法 -> Configure方法
|
||||
/// </summary>
|
||||
///
|
||||
public class Startup
|
||||
{
|
||||
/// <summary>
|
||||
/// 配置信息对象
|
||||
/// </summary>
|
||||
public IConfiguration Configuration { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数(第1个被执行的函数)
|
||||
/// </summary>
|
||||
/// <param name="env">提供了当前应用程序的运行的宿主环境配置信息象</param>
|
||||
///
|
||||
public Startup(IHostingEnvironment env)
|
||||
{
|
||||
/*
|
||||
appsettings.Development.json中配置了开发环境专用配置信息
|
||||
appsettings.Production.json中配置了生产环境专用配置信息
|
||||
appsettings.json保存了两个环境均会用到的公共配置信息
|
||||
此处主要是加载公共配置信息和专用配置信息,例如如果当前为
|
||||
开发模式,会加载appsettings.json和appsettings.Development.json两个文件中的配置信息
|
||||
生产模式,会加载appsettings.json和appsettings.Production.json两个文件中的配置信息
|
||||
*/
|
||||
Configuration = env.UseAppsettings();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 服务配置,相当于Java项目中的spring.xml,用来将配置对象添加到容器中管理起来备用(第2个被执行的函数)
|
||||
/// </summary>
|
||||
/// <param name="services">服务集合对象(可以理解为内置的依赖注入容器)</param>
|
||||
/// <returns>构造好的服务提供对象</returns>
|
||||
public IServiceProvider ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.Configure<AppSettings>(Configuration);//加载appsettiong.xxx.json中的配置信息到AppSettings对象中备用
|
||||
|
||||
//添加EF数据库上下文对象
|
||||
services.AddDbContext<EfDbContext>(c => c.UseMySql(Configuration["MySql"]));
|
||||
|
||||
//配置Redis
|
||||
RedisHelper.Initialization(new CSRedis.CSRedisClient(Configuration["Redis"]));
|
||||
|
||||
//HttpClient配置
|
||||
services.AddHttpClient();
|
||||
|
||||
services.MyServicesSpecialUseConfigure();//本Web应用专用配置
|
||||
|
||||
//根据应用配置信息对象、编译版本、服务选项对象创建服务提供对象
|
||||
IServiceProvider result = services.Init(Configuration, CompatibilityVersion.Version_2_2, new ServiceOption
|
||||
{
|
||||
//启用全局授权过滤器(由ManageAuthFilter类具体实现)
|
||||
UseGlobalManageAuthFilter = false
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 请求管道配置,可以将一些中间组件添加到app对象中
|
||||
/// </summary>
|
||||
/// <param name="app">用于构建应用程序的请求管道</param>
|
||||
/// <param name="env">提供了当前应用程序的运行的宿主环境配置信息</param>
|
||||
/// <param name="loggerFactory">日志工厂</param>
|
||||
///
|
||||
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime applicationLifetime)
|
||||
{
|
||||
//初始化应用程序构建器,启用NLog、统一错误异常处理、跨域请求、MVC等
|
||||
app.Init(loggerFactory, applicationLifetime);
|
||||
|
||||
// app.MySpecialUseConfigure(env, loggerFactory);//本Web应用专用配置
|
||||
}
|
||||
}
|
||||
}
|
||||
91
Services/Hncore.Pass.Manage/Util/AppUtil.cs
Normal file
91
Services/Hncore.Pass.Manage/Util/AppUtil.cs
Normal file
@@ -0,0 +1,91 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Hncore.Pass.Manage.Repository;
|
||||
using Hncore.Pass.Manage.Service;
|
||||
using Hncore.Pass.Manage.Filters;
|
||||
using AutoMapper;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Caching.Distributed;
|
||||
using Hncore.Pass.Manage.Util;
|
||||
|
||||
|
||||
namespace Hncore.Pass.Manage.Util
|
||||
{
|
||||
/// <summary>
|
||||
/// 应用工具类
|
||||
/// </summary>
|
||||
///
|
||||
public static class AppUtil
|
||||
{
|
||||
/// <summary>
|
||||
/// 当前应用的服务专用扩展配置
|
||||
/// </summary>
|
||||
/// <param name="services">服务集合(容器对象)</param>
|
||||
/// <returns>服务集合(容器对象)</returns>
|
||||
///
|
||||
public static IServiceCollection MyServicesSpecialUseConfigure(this IServiceCollection services)
|
||||
{
|
||||
LoadServicesToContainer(services);//配置服务依赖注入
|
||||
RegisterGlobalFilters(services);//注册全局过滤器
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当前应用的专用扩展配置
|
||||
/// </summary>
|
||||
/// <param name="app">用于构建应用程序的请求管道</param>
|
||||
/// <param name="env">提供了当前应用程序的运行的宿主环境配置信息</param>
|
||||
/// <param name="loggerFactory">日志工厂</param>
|
||||
///
|
||||
public static void MySpecialUseConfigure(this IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
|
||||
{
|
||||
AutoMapperConfig();//AutoMapper映射配置
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将当前项目常用的服务加载到容器中管理起来(该函数会在Startup中的ConfigureServices)
|
||||
/// </summary>
|
||||
/// <param name="services">服务集合(容器对象)</param>
|
||||
private static void LoadServicesToContainer(IServiceCollection services)
|
||||
{
|
||||
/**********添加服务相关类**********/
|
||||
services.AddScoped<ManagerTagService>();//管理员标签服务
|
||||
services.AddScoped<ManagerService>();//管理员服务
|
||||
|
||||
services.AddScoped<ManagerPermissionService>();//管理员权限菜单
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// AutoMapper配置
|
||||
/// </summary>
|
||||
///
|
||||
private static void AutoMapperConfig()
|
||||
{
|
||||
Mapper.Initialize(c => {
|
||||
c.AddProfile<AutoMapperProfile>();//指定映射关系处理类
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 注册全局过滤器
|
||||
/// </summary>
|
||||
/// <param name="services">服务集合(容器对象)</param>
|
||||
private static void RegisterGlobalFilters(IServiceCollection services)
|
||||
{
|
||||
//services.AddMvc(c => {
|
||||
// c.Filters.Add<HttpGlobalExceptionFilter>();//全局异常过滤器
|
||||
//});
|
||||
}
|
||||
}
|
||||
}
|
||||
27
Services/Hncore.Pass.Manage/Util/AutoMapperProfile.cs
Normal file
27
Services/Hncore.Pass.Manage/Util/AutoMapperProfile.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using Hncore.Pass.Manage.Domain;
|
||||
using Hncore.Pass.Manage.Request;
|
||||
using Hncore.Pass.Manage.Response;
|
||||
using AutoMapper;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Hncore.Pass.Manage.Util
|
||||
{
|
||||
/// <summary>
|
||||
/// AutoMapper映射关系处理类
|
||||
/// </summary>
|
||||
///
|
||||
public class AutoMapperProfile : Profile
|
||||
{
|
||||
/// <summary>
|
||||
/// 构造函数,所有映射关联在此完成关联
|
||||
/// </summary>
|
||||
///
|
||||
public AutoMapperProfile()
|
||||
{
|
||||
CreateMap<ManagerTag, ManagerTagResponse>();//
|
||||
}
|
||||
}
|
||||
}
|
||||
6
Services/Hncore.Pass.Manage/app.config
Normal file
6
Services/Hncore.Pass.Manage/app.config
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<gcServer enabled="true"/>
|
||||
</runtime>
|
||||
</configuration>
|
||||
11
Services/Hncore.Pass.Manage/appsettings.Development.json
Normal file
11
Services/Hncore.Pass.Manage/appsettings.Development.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"MySql": "Server=47.92.244.89;Database=hualianyun;User=root;Password=qaz123!@#;Convert Zero Datetime=True;TreatTinyAsBoolean=false;port=5000",
|
||||
"Redis": "47.92.85.90:6379,password=etor0070x01,defaultDatabase=7",
|
||||
"RabbitMqConfig": {
|
||||
"HostName": "47.111.18.99",
|
||||
"Port": 5672,
|
||||
"UserName": "test",
|
||||
"Password": "123456",
|
||||
"VirtualHost": "/"
|
||||
}
|
||||
}
|
||||
12
Services/Hncore.Pass.Manage/appsettings.Local.json
Normal file
12
Services/Hncore.Pass.Manage/appsettings.Local.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"DbConString": "Server=47.92.244.89;Database=property;User=root;Password=qaz123!@#;Convert Zero Datetime=True;TreatTinyAsBoolean=false;port=5000",
|
||||
"OldDbConString": "Server=47.92.244.89;Database=property;User=root;Password=qaz123!@#;Convert Zero Datetime=True;TreatTinyAsBoolean=false;port=5000",
|
||||
"Redis": "192.168.1.245:6379,password=123456,defaultDatabase=0,poolsize=1",
|
||||
"RabbitMqConfig": {
|
||||
"HostName": "192.168.1.245",
|
||||
"Port": 5672,
|
||||
"UserName": "test",
|
||||
"Password": "123456",
|
||||
"VirtualHost": "/"
|
||||
}
|
||||
}
|
||||
11
Services/Hncore.Pass.Manage/appsettings.Production.json
Normal file
11
Services/Hncore.Pass.Manage/appsettings.Production.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"DbConString": "Server=47.92.244.89;Database=property;User=root;Password=qaz123!@#;Convert Zero Datetime=True;TreatTinyAsBoolean=false;port=5000",
|
||||
"Redis": "127.0.0.1:6379,password=123456,defaultDatabase=0",
|
||||
"RabbitMqConfig": {
|
||||
"HostName": "172.26.148.123",
|
||||
"Port": 5672,
|
||||
"UserName": "psip",
|
||||
"Password": "6F56A41A83E6D6DEEEEF205E0DDEBAF4",
|
||||
"VirtualHost": "psip"
|
||||
}
|
||||
}
|
||||
8
Services/Hncore.Pass.Manage/appsettings.json
Normal file
8
Services/Hncore.Pass.Manage/appsettings.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
Reference in New Issue
Block a user