增加租户表结构支持
parent
704ca53bc0
commit
57f651cc30
|
|
@ -0,0 +1,115 @@
|
|||
using New_College.IServices;
|
||||
using New_College.Model;
|
||||
using New_College.Model.Models;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace New_College.Api.Controllers
|
||||
{
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
[Authorize(Permissions.Name)]
|
||||
public class Sys_TenantController : ControllerBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 服务器接口,因为是模板生成,所以首字母是大写的,自己可以重构下
|
||||
/// </summary>
|
||||
private readonly ISys_TenantServices _sys_TenantServices;
|
||||
|
||||
public Sys_TenantController(ISys_TenantServices Sys_TenantServices)
|
||||
{
|
||||
_sys_TenantServices = Sys_TenantServices;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<MessageModel<PageModel<Sys_Tenant>>> Get(int page = 1, string key = "", int intPageSize = 50)
|
||||
{
|
||||
if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key))
|
||||
{
|
||||
key = "";
|
||||
}
|
||||
|
||||
Expression<Func<Sys_Tenant, bool>> whereExpression = a => a.Id > 0;
|
||||
|
||||
return new MessageModel<PageModel<Sys_Tenant>>()
|
||||
{
|
||||
msg = "获取成功",
|
||||
success = true,
|
||||
response = await _sys_TenantServices.QueryPage(whereExpression, page, intPageSize)
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
[HttpGet("{id}")]
|
||||
public async Task<MessageModel<Sys_Tenant>> Get(int id = 0)
|
||||
{
|
||||
return new MessageModel<Sys_Tenant>()
|
||||
{
|
||||
msg = "获取成功",
|
||||
success = true,
|
||||
response = await _sys_TenantServices.QueryById(id)
|
||||
};
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<MessageModel<string>> Post([FromBody] Sys_Tenant request)
|
||||
{
|
||||
var data = new MessageModel<string>();
|
||||
|
||||
var id = await _sys_TenantServices.Add(request);
|
||||
data.success = id > 0;
|
||||
|
||||
if (data.success)
|
||||
{
|
||||
data.response = id.ObjToString();
|
||||
data.msg = "添加成功";
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
[HttpPut]
|
||||
public async Task<MessageModel<string>> Put([FromBody] Sys_Tenant request)
|
||||
{
|
||||
var data = new MessageModel<string>();
|
||||
if (request.Id > 0)
|
||||
{
|
||||
data.success = await _sys_TenantServices.Update(request);
|
||||
if (data.success)
|
||||
{
|
||||
data.msg = "更新成功";
|
||||
data.response = request?.Id.ObjToString();
|
||||
}
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
[HttpDelete("{id}")]
|
||||
public async Task<MessageModel<string>> Delete(int id = 0)
|
||||
{
|
||||
var data = new MessageModel<string>();
|
||||
if (id > 0)
|
||||
{
|
||||
var detail = await _sys_TenantServices.QueryById(id);
|
||||
|
||||
detail.IsDelete = true;
|
||||
|
||||
if (detail != null)
|
||||
{
|
||||
data.success = await _sys_TenantServices.Update(detail);
|
||||
if (data.success)
|
||||
{
|
||||
data.msg = "删除成功";
|
||||
data.response = id.ObjToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -88,6 +88,7 @@ namespace New_College.Api.Controllers.Front
|
|||
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost]
|
||||
[DisplayName("获取微信用户电话号码")]
|
||||
public async Task<MessageModel<string>> GetWxPhone(DecryptUserPhoneRequest request)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1090,6 +1090,11 @@
|
|||
ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.Role.TenantId">
|
||||
<summary>
|
||||
租户id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.Role.IsDeleted">
|
||||
<summary>
|
||||
获取或设置是否禁用,逻辑上的删除,非物理删除
|
||||
|
|
@ -1255,6 +1260,21 @@
|
|||
是否删除
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.DEntityRootTenant.TenantId">
|
||||
<summary>
|
||||
租户id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:New_College.Model.Models.DEntityTenant">
|
||||
<summary>
|
||||
带上租户Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.DEntityTenant.TenantId">
|
||||
<summary>
|
||||
租户id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:New_College.Model.Models.EntityModel">
|
||||
<summary>
|
||||
不带创建人BaseModel
|
||||
|
|
@ -1301,6 +1321,11 @@
|
|||
用户信息表
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.sysUserInfo.TenantId">
|
||||
<summary>
|
||||
租户Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.sysUserInfo.uID">
|
||||
<summary>
|
||||
用户ID
|
||||
|
|
@ -1356,6 +1381,51 @@
|
|||
登录账号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:New_College.Model.Models.Sys_Tenant">
|
||||
<summary>
|
||||
租户表
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.Sys_Tenant.Name">
|
||||
<summary>
|
||||
公司名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.Sys_Tenant.AdminName">
|
||||
<summary>
|
||||
管理员名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.Sys_Tenant.Host">
|
||||
<summary>
|
||||
主机
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.Sys_Tenant.Email">
|
||||
<summary>
|
||||
电子邮箱
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.Sys_Tenant.Phone">
|
||||
<summary>
|
||||
电话
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.Sys_Tenant.Connection">
|
||||
<summary>
|
||||
数据库连接
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.Sys_Tenant.Schema">
|
||||
<summary>
|
||||
架构
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:New_College.Model.Models.Sys_Tenant.Remark">
|
||||
<summary>
|
||||
备注
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:New_College.Model.Models.TasksQz">
|
||||
<summary>
|
||||
任务计划表
|
||||
|
|
|
|||
|
|
@ -108,6 +108,11 @@
|
|||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="F:New_College.Api.Controllers.Sys_TenantController._sys_TenantServices">
|
||||
<summary>
|
||||
服务器接口,因为是模板生成,所以首字母是大写的,自己可以重构下
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:New_College.Api.Controllers.Front.CustomerController.GetWxOpenId(New_College.Model.WeixinLogin)">
|
||||
<summary>
|
||||
获取微信openid
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ namespace New_College
|
|||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContext myContext, ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, IHostApplicationLifetime lifetime)
|
||||
{
|
||||
// Ip限流,尽量放管道外层
|
||||
//app.UseIpLimitMildd();
|
||||
app.UseIpLimitMildd();
|
||||
// 记录请求与返回数据
|
||||
app.UseReuestResponseLog();
|
||||
// signalr
|
||||
|
|
@ -215,7 +215,7 @@ namespace New_College
|
|||
});
|
||||
|
||||
// 生成种子数据
|
||||
app.UseSeedDataMildd(myContext, Env.WebRootPath);
|
||||
// app.UseSeedDataMildd(myContext, Env.WebRootPath);
|
||||
// 开启QuartzNetJob调度服务
|
||||
app.UseQuartzJobMildd(tasksQzServices, schedulerCenter);
|
||||
//服务注册
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@
|
|||
},
|
||||
"Date": "2018-08-28",
|
||||
"SeedDBEnabled": true, //只生成表结构
|
||||
"SeedDBDataEnabled": true, //生成表,并初始化数据
|
||||
"SeedDBDataEnabled": false, //生成表,并初始化数据
|
||||
"Author": "New_College"
|
||||
},
|
||||
|
||||
|
|
@ -168,22 +168,22 @@
|
|||
{
|
||||
"Endpoint": "*:/api/blog*",
|
||||
"Period": "1m",
|
||||
"Limit": 20000
|
||||
"Limit": 200000
|
||||
},
|
||||
{
|
||||
"Endpoint": "*/api/*",
|
||||
"Period": "1s",
|
||||
"Limit": 3000
|
||||
},
|
||||
{
|
||||
"Endpoint": "*/api/*",
|
||||
"Period": "1m",
|
||||
"Limit": 300000
|
||||
},
|
||||
{
|
||||
"Endpoint": "*/api/*",
|
||||
"Period": "1m",
|
||||
"Limit": 3000000
|
||||
},
|
||||
{
|
||||
"Endpoint": "*/api/*",
|
||||
"Period": "12h",
|
||||
"Limit": 5000000
|
||||
"Limit": 50000000000
|
||||
}
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace New_College.Extensions
|
|||
{
|
||||
if (Appsettings.app("AppSettings", "SeedDBEnabled").ObjToBool() || Appsettings.app("AppSettings", "SeedDBDataEnabled").ObjToBool())
|
||||
{
|
||||
// DBSeed.SeedAsync(myContext, webRootPath).Wait();
|
||||
DBSeed.SeedAsync(myContext, webRootPath).Wait();
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
using New_College.IServices.BASE;
|
||||
using New_College.Model.Models;
|
||||
|
||||
namespace New_College.IServices
|
||||
{
|
||||
/// <summary>
|
||||
/// ISys_TenantServices
|
||||
/// </summary>
|
||||
public interface ISys_TenantServices :IBaseServices<Sys_Tenant>
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@ namespace New_College.Model.Models
|
|||
/// <summary>
|
||||
/// 海报管理
|
||||
/// </summary>
|
||||
public class BannerInfo : RootEntity
|
||||
public class BannerInfo : DEntityRootTenant
|
||||
{
|
||||
/// <summary>
|
||||
/// banner name
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ using System.Text;
|
|||
|
||||
namespace New_College.Model.Models
|
||||
{
|
||||
public class D_NewsInfo : RootEntity
|
||||
public class D_NewsInfo : DEntityRootTenant
|
||||
{
|
||||
|
||||
public int CategoryId { get; set; }
|
||||
|
|
|
|||
|
|
@ -32,7 +32,10 @@ namespace New_College.Model.Models
|
|||
[SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 租户id
|
||||
/// </summary>
|
||||
public virtual int? TenantId { get; set; }
|
||||
/// <summary>
|
||||
///获取或设置是否禁用,逻辑上的删除,非物理删除
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -59,6 +59,25 @@ namespace New_College.Model.Models
|
|||
|
||||
}
|
||||
|
||||
public abstract class DEntityRootTenant : RootEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// 租户id
|
||||
/// </summary>
|
||||
public virtual int? TenantId { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
///带上租户Id
|
||||
/// </summary>
|
||||
public abstract class DEntityTenant : EntityModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 租户id
|
||||
/// </summary>
|
||||
public virtual int? TenantId { get; set; }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 不带创建人BaseModel
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace New_College.Model.Models
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 租户表
|
||||
/// </summary>
|
||||
[Table("sys_tenant")]
|
||||
public class Sys_Tenant : EntityModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 公司名称
|
||||
/// </summary>
|
||||
[Required, MaxLength(30)]
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管理员名称
|
||||
/// </summary>
|
||||
[Required, MaxLength(20)]
|
||||
public string AdminName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 主机
|
||||
/// </summary>
|
||||
[MaxLength(100)]
|
||||
public string Host { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 电子邮箱
|
||||
/// </summary>
|
||||
[MaxLength(50)]
|
||||
public string Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 电话
|
||||
/// </summary>
|
||||
[MaxLength(20)]
|
||||
public string Phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据库连接
|
||||
/// </summary>
|
||||
[MaxLength(200)]
|
||||
public string Connection { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 架构
|
||||
/// </summary>
|
||||
[MaxLength(50)]
|
||||
public string Schema { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
[MaxLength(100)]
|
||||
public string Remark { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@ namespace New_College.Model.Models
|
|||
/// <summary>
|
||||
/// 用户跟角色关联表
|
||||
/// </summary>
|
||||
public class UserRole : RootEntity
|
||||
public class UserRole : DEntityRootTenant
|
||||
{
|
||||
public UserRole() { }
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ using System.Text;
|
|||
|
||||
namespace New_College.Model.Models
|
||||
{
|
||||
public class V_CustomerInfo : EntityModel
|
||||
public class V_CustomerInfo : DEntityTenant
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户头像
|
||||
|
|
|
|||
|
|
@ -27,6 +27,12 @@ namespace New_College.Model.Models
|
|||
name = "";
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 租户Id
|
||||
/// </summary>
|
||||
public virtual int? TenantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户ID
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
using New_College.IRepository.Base;
|
||||
using New_College.Model.Models;
|
||||
|
||||
namespace New_College.IRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// ISys_TenantRepository
|
||||
/// </summary>
|
||||
public interface ISys_TenantRepository : IBaseRepository<Sys_Tenant>
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
using New_College.IRepository;
|
||||
using New_College.IRepository.UnitOfWork;
|
||||
using New_College.Model.Models;
|
||||
using New_College.Repository.Base;
|
||||
|
||||
namespace New_College.Repository
|
||||
{
|
||||
/// <summary>
|
||||
/// Sys_TenantRepository
|
||||
/// </summary>
|
||||
public class Sys_TenantRepository : BaseRepository<Sys_Tenant>, ISys_TenantRepository
|
||||
{
|
||||
public Sys_TenantRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
using New_College.IServices;
|
||||
using New_College.Model.Models;
|
||||
using New_College.Services.BASE;
|
||||
using New_College.IRepository.Base;
|
||||
|
||||
namespace New_College.Services
|
||||
{
|
||||
public class Sys_TenantServices : BaseServices<Sys_Tenant>, ISys_TenantServices
|
||||
{
|
||||
private readonly IBaseRepository<Sys_Tenant> _dal;
|
||||
public Sys_TenantServices(IBaseRepository<Sys_Tenant> dal)
|
||||
{
|
||||
this._dal = dal;
|
||||
base.BaseDal = dal;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue