This commit is contained in:
2021-04-29 18:27:04 +08:00
26 changed files with 373 additions and 326 deletions

View File

@@ -34,6 +34,6 @@
/// <summary>
/// 区域缓存
/// </summary>
public const string CACHE_AREA_NUMBER = "areaNumber";
public const string CACHE_AREA_CODE = "areaCode";
}
}

View File

@@ -0,0 +1,87 @@
using Ewide.Core.Service.Area;
using Ewide.Core.Service.Area.Dto;
using Furion.DynamicApiController;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Core.Controller
{
/// <summary>
/// 区域代码相关服务
/// </summary>
[ApiDescriptionSettings(Name = "AreaCode", Order = 160)]
public class AreaCodeController : IDynamicApiController
{
private readonly IAreaCodeService _areaCodeService;
public AreaCodeController(IAreaCodeService areaCodeService)
{
_areaCodeService = areaCodeService;
}
/// <summary>
/// 查询
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("/sysArea/page")]
public async Task<dynamic> QueryAreaCodePageList([FromQuery] AreaCodeInput input)
{
return (await _areaCodeService.QueryAreaCodePageList(input));
}
/// <summary>
///
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
[HttpGet("/sysArea/{code}")]
public async Task<AreaCodeOutput> GetAreaCode([FromRoute]string code)
{
return (await _areaCodeService.GetAreaCode(code)).Adapt<AreaCodeOutput>();
}
/// <summary>
/// 添加区域信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("/sysArea/add")]
public async Task AddAreaCode(AreaCodeInput input)
{
await _areaCodeService.AddAreaCode(input);
}
/// <summary>
/// 更新区域信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("/sysArea/edit")]
public async Task UpdateAreaCode(AreaCodeInput input)
{
await _areaCodeService.UpdateAreaCode(input);
}
/// <summary>
/// 删除区域
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("/sysArea/delete")]
public async Task DeleteAreaCode(DeleteAreaCodeInput input)
{
await _areaCodeService.DeleteAreaCode(input);
}
/// <summary>
/// 获取目录树
/// </summary>
/// <returns></returns>
[HttpGet("/sysArea/tree")]
public async Task<List<AreaTreeNode>> GetAreaCodeTree()
{
return await _areaCodeService.GetAreaCodeTree();
}
}
}

View File

@@ -1,76 +0,0 @@
using Ewide.Core.Service.Area;
using Ewide.Core.Service.Area.Dto;
using Furion.DynamicApiController;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Core.Controller
{
/// <summary>
/// 区域代码相关服务
/// </summary>
[ApiDescriptionSettings(Name = "AreaNumber", Order = 160)]
public class AreaNumberController : IDynamicApiController
{
private readonly IAreaNumberService _areaNumberService;
public AreaNumberController(IAreaNumberService areaNumberService)
{
_areaNumberService = areaNumberService;
}
/// <summary>
///
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
[HttpGet("/area/{code}")]
public async Task<AreaNumberOutput> GetAreaNumber([FromRoute]string code)
{
return (await _areaNumberService.GetAreaNumber(code)).Adapt<AreaNumberOutput>();
}
/// <summary>
/// 添加区域信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("/area/add")]
public async Task AddAreaNumber(AreaNumberInput input)
{
await _areaNumberService.AddAreaNumber(input);
}
/// <summary>
/// 更新区域信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("/area/edit")]
public async Task UpdateAreaNumber(AreaNumberInput input)
{
await _areaNumberService.UpdateAreaNumber(input);
}
/// <summary>
/// 删除区域
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("/area/delete")]
public async Task DeleteAreaNumber(DeleteAreaNumberInput input)
{
await _areaNumberService.DeleteAreaNumber(input);
}
/// <summary>
/// 获取目录树
/// </summary>
/// <returns></returns>
[HttpGet("/area/tree")]
public async Task<List<AreaTreeNode>> GetAreaNumberTree()
{
return await _areaNumberService.GetAreaNumberTree();
}
}
}

View File

@@ -8,26 +8,27 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Core.Entity
namespace Ewide.Core
{
[Table("ewide_area_number")]
[Table("sys_area_code")]
[Comment("区域表")]
public class AreaNumber: IEntity
public class SysAreaCode: IEntity
{
[Key]
[Comment("系统使用的区域代码")]
[MaxLength(10)]
[MaxLength(50)]
public string Code { get; set; }
[Comment("对外使用的区域代码")]
[MaxLength(10)]
[MaxLength(50)]
public string ShowCode { get; set; }
[Comment("名称")]
[Required]
[MaxLength(10)]
[MaxLength(100)]
public string Name { get; set; }
[Comment("备注")]
[MaxLength(1000)]
public string Note { get; set; }
[Comment("类别")]

View File

@@ -1,5 +1,4 @@
using Ewide.Core.Entity;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
@@ -73,7 +72,7 @@ namespace Ewide.Core
/// <summary>
/// 一对一 一个组织对应一个区域代码
/// </summary>
public AreaNumber AreaNumber { get; set; }
public SysAreaCode AreaCode { get; set; }
/// <summary>
/// 多对多(用户)

View File

@@ -1,5 +1,4 @@
using Ewide.Core.Entity;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
@@ -71,7 +70,7 @@ namespace Ewide.Core
/// </summary>
public List<SysRoleDataScope> SysRoleDataScopes { get; set; }
public ICollection<AreaNumber> AreaNumbers { get; set; }
public ICollection<SysAreaCode> AreaCodes { get; set; }
public List<SysRoleArea> SysRoleAreas { get; set; }
@@ -102,10 +101,10 @@ namespace Ewide.Core
{
u.HasKey(c => new { c.SysRoleId, c.SysOrgId });
});
entityBuilder.HasMany(p => p.AreaNumbers)
entityBuilder.HasMany(p => p.AreaCodes)
.WithMany(p => p.SysRoles)
.UsingEntity<SysRoleArea>(
u => u.HasOne(c => c.AreaNumber).WithMany(c => c.SysRoleAreas).HasForeignKey(c => c.AreaNumberCode),
u => u.HasOne(c => c.AreaCode).WithMany(c => c.SysRoleAreas).HasForeignKey(c => c.AreaNumberCode),
u => u.HasOne(c => c.SysRole).WithMany(c => c.SysRoleAreas).HasForeignKey(c => c.SysRoleId),
u =>
{

View File

@@ -8,7 +8,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Core.Entity
namespace Ewide.Core
{
[Table("sys_role_area")]
[Comment("角色区域自定义数据")]
@@ -24,7 +24,7 @@ namespace Ewide.Core.Entity
[Comment("系统使用的区域代码")]
[MaxLength(10)]
public string AreaNumberCode { get; set; }
public AreaNumber AreaNumber { get; set; }
public SysAreaCode AreaCode { get; set; }
}
}

View File

@@ -1,5 +1,4 @@
using Ewide.Core.Entity;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
@@ -128,7 +127,7 @@ namespace Ewide.Core
/// </summary>
public List<SysUserDataScope> SysUserDataScopes { get; set; }
public ICollection<AreaNumber> AreaNumbers { get; set; }
public ICollection<SysAreaCode> AreaCodes { get; set; }
/// <summary>
/// 多对多中间表(用户-区域 数据范围)
/// </summary>
@@ -156,8 +155,8 @@ namespace Ewide.Core
{
u.HasKey(c => new { c.SysUserId, c.SysOrgId });
});
entityBuilder.HasMany(p => p.AreaNumbers).WithMany(p => p.SysUsers).UsingEntity<SysUserArea>(
u => u.HasOne(c => c.AreaNumber).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.AreaNumberCode),
entityBuilder.HasMany(p => p.AreaCodes).WithMany(p => p.SysUsers).UsingEntity<SysUserArea>(
u => u.HasOne(c => c.AreaCode).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.AreaNumberCode),
u => u.HasOne(c => c.SysUser).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.SysUserId),
u =>
{

View File

@@ -1,14 +1,9 @@
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Core.Entity
namespace Ewide.Core
{
[Table("sys_user_area")]
[Comment("用户授权区域信息")]
@@ -24,6 +19,6 @@ namespace Ewide.Core.Entity
[Comment("系统使用的区域代码")]
[MaxLength(10)]
public string AreaNumberCode { get; set; }
public AreaNumber AreaNumber { get; set; }
public SysAreaCode AreaCode { get; set; }
}
}

View File

@@ -303,90 +303,57 @@
验证码缓存
</summary>
</member>
<member name="F:Ewide.Core.CommonConst.CACHE_AREA_NUMBER">
<member name="F:Ewide.Core.CommonConst.CACHE_AREA_CODE">
<summary>
区域缓存
</summary>
</member>
<member name="T:Ewide.Core.Controller.AreaNumberController">
<member name="T:Ewide.Core.Controller.AreaCodeController">
<summary>
区域代码相关服务
</summary>
</member>
<member name="M:Ewide.Core.Controller.AreaNumberController.GetAreaNumber(System.String)">
<member name="M:Ewide.Core.Controller.AreaCodeController.QueryAreaCodePageList(Ewide.Core.Service.Area.Dto.AreaCodeInput)">
<summary>
查询
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Controller.AreaCodeController.GetAreaCode(System.String)">
<summary>
</summary>
<param name="code"></param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Controller.AreaNumberController.AddAreaNumber(Ewide.Core.Service.Area.Dto.AreaNumberInput)">
<member name="M:Ewide.Core.Controller.AreaCodeController.AddAreaCode(Ewide.Core.Service.Area.Dto.AreaCodeInput)">
<summary>
添加区域信息
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Controller.AreaNumberController.UpdateAreaNumber(Ewide.Core.Service.Area.Dto.AreaNumberInput)">
<member name="M:Ewide.Core.Controller.AreaCodeController.UpdateAreaCode(Ewide.Core.Service.Area.Dto.AreaCodeInput)">
<summary>
更新区域信息
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Controller.AreaNumberController.DeleteAreaNumber(Ewide.Core.Service.Area.Dto.DeleteAreaNumberInput)">
<member name="M:Ewide.Core.Controller.AreaCodeController.DeleteAreaCode(Ewide.Core.Service.Area.Dto.DeleteAreaCodeInput)">
<summary>
删除区域
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Controller.AreaNumberController.GetAreaNumberTree">
<member name="M:Ewide.Core.Controller.AreaCodeController.GetAreaCodeTree">
<summary>
获取目录树
</summary>
<returns></returns>
</member>
<member name="P:Ewide.Core.Entity.AreaNumber.ParentCode">
<summary>
父节点就是去掉后面两位
</summary>
</member>
<member name="P:Ewide.Core.Entity.AreaNumber.SysUsers">
<summary>
多个区域有多个用户绑定自定义数据
</summary>
</member>
<member name="P:Ewide.Core.Entity.AreaNumber.SysUserAreas">
<summary>
中间表
</summary>
</member>
<member name="P:Ewide.Core.Entity.AreaNumber.SysRoles">
<summary>
多个区域有多个角色绑定权限数据
</summary>
</member>
<member name="P:Ewide.Core.Entity.AreaNumber.SysRoleAreas">
<summary>
中间表
</summary>
</member>
<member name="P:Ewide.Core.Entity.AreaNumber.SysOrgs">
<summary>
一个区域有多个组织
</summary>
</member>
<member name="P:Ewide.Core.Entity.SysRoleArea.SysRoleId">
<summary>
角色Id
</summary>
</member>
<member name="P:Ewide.Core.Entity.SysUserArea.SysUserId">
<summary>
用户Id
</summary>
</member>
<member name="T:Ewide.Core.DEntityBase">
<summary>
自定义实体基类
@@ -473,6 +440,36 @@
排序
</summary>
</member>
<member name="P:Ewide.Core.SysAreaCode.ParentCode">
<summary>
父节点就是去掉后面两位
</summary>
</member>
<member name="P:Ewide.Core.SysAreaCode.SysUsers">
<summary>
多个区域有多个用户绑定自定义数据
</summary>
</member>
<member name="P:Ewide.Core.SysAreaCode.SysUserAreas">
<summary>
中间表
</summary>
</member>
<member name="P:Ewide.Core.SysAreaCode.SysRoles">
<summary>
多个区域有多个角色绑定权限数据
</summary>
</member>
<member name="P:Ewide.Core.SysAreaCode.SysRoleAreas">
<summary>
中间表
</summary>
</member>
<member name="P:Ewide.Core.SysAreaCode.SysOrgs">
<summary>
一个区域有多个组织
</summary>
</member>
<member name="T:Ewide.Core.SysCodeGen">
<summary>
代码生成表
@@ -1356,7 +1353,7 @@
状态(字典 0正常 1停用 2删除
</summary>
</member>
<member name="P:Ewide.Core.SysOrg.AreaNumber">
<member name="P:Ewide.Core.SysOrg.AreaCode">
<summary>
一对一 一个组织对应一个区域代码
</summary>
@@ -1494,6 +1491,11 @@
<param name="dbContext"></param>
<param name="dbContextLocator"></param>
</member>
<member name="P:Ewide.Core.SysRoleArea.SysRoleId">
<summary>
角色Id
</summary>
</member>
<member name="T:Ewide.Core.SysRoleDataScope">
<summary>
角色数据范围表
@@ -1770,6 +1772,11 @@
<param name="dbContext"></param>
<param name="dbContextLocator"></param>
</member>
<member name="P:Ewide.Core.SysUserArea.SysUserId">
<summary>
用户Id
</summary>
</member>
<member name="T:Ewide.Core.SysUserDataScope">
<summary>
用户数据范围表
@@ -3114,34 +3121,34 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Service.Area.AreaNumberService.AddAreaNumber(Ewide.Core.Service.Area.Dto.AreaNumberInput)">
<member name="M:Ewide.Core.Service.Area.AreaCodeService.AddAreaCode(Ewide.Core.Service.Area.Dto.AreaCodeInput)">
<summary>
添加一个区域
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Service.Area.AreaNumberService.DeleteAreaNumber(Ewide.Core.Service.Area.Dto.DeleteAreaNumberInput)">
<member name="M:Ewide.Core.Service.Area.AreaCodeService.DeleteAreaCode(Ewide.Core.Service.Area.Dto.DeleteAreaCodeInput)">
<summary>
删除一个区域
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Service.Area.AreaNumberService.GetAreaNumber(System.String)">
<member name="M:Ewide.Core.Service.Area.AreaCodeService.GetAreaCode(System.String)">
<summary>
根据区域代码获取区域信息
</summary>
<param name="code">区域代码</param>
<returns></returns>
</member>
<member name="M:Ewide.Core.Service.Area.AreaNumberService.GetAreaNumberTree">
<member name="M:Ewide.Core.Service.Area.AreaCodeService.GetAreaCodeTree">
<summary>
获取区域目录树
</summary>
<returns></returns>
</member>
<member name="M:Ewide.Core.Service.Area.AreaNumberService.UpdateAreaNumber(Ewide.Core.Service.Area.Dto.AreaNumberInput)">
<member name="M:Ewide.Core.Service.Area.AreaCodeService.UpdateAreaCode(Ewide.Core.Service.Area.Dto.AreaCodeInput)">
<summary>
更新区域信息
</summary>

View File

@@ -0,0 +1,23 @@
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Core
{
public class SysAreaCodeData : IEntitySeedData<SysAreaCode>
{
public IEnumerable<SysAreaCode> HasData(DbContext dbContext, Type dbContextLocator)
{
return new[]
{
new SysAreaCode{Code="3302",ShowCode="3302",Name="XX市",Note="XX市",LevelType=1,Sort=0 },
new SysAreaCode{Code="330266",ShowCode="330266",Name="测试区",Note="测试区",LevelType=2,Sort=100 },
new SysAreaCode{Code="330266001",ShowCode="330266001",Name="测试街道",Note="测试街道",LevelType=3,Sort=0},
};
}
}
}

View File

@@ -118,6 +118,10 @@ namespace Ewide.Core
new SysDictData{Id="76e885e8-1b40-45b6-bb0f-5519c6839df2", TypeId="0f1b8660-d932-4a53-a681-a38bebae91e0", Value="运行", Code="1", Sort=100, Remark="运行", Status=0 },
new SysDictData{Id="6e3591ec-2902-4bf3-b5a2-7ebc94ebc08f", TypeId="0f1b8660-d932-4a53-a681-a38bebae91e0", Value="停止", Code="2", Sort=100, Remark="停止", Status=0 },
new SysDictData{Id="6a01e89a-6bbb-4822-b862-8e566b6dde74", TypeId="2815b28b-e51d-4dfb-b549-2eaa27d8c23d", Value="市级编号", Code="1", Sort=1, Remark="市级编号", Status=0 },
new SysDictData{Id="fc843478-1e98-47e8-aaf3-12442fd4cbfc", TypeId="2815b28b-e51d-4dfb-b549-2eaa27d8c23d", Value="区县编号", Code="2", Sort=2, Remark="区县编号", Status=0 },
new SysDictData{Id="dad01f31-bb7f-4696-9e53-ad6d58b366a7", TypeId="2815b28b-e51d-4dfb-b549-2eaa27d8c23d", Value="乡镇街道编号", Code="3", Sort=3, Remark="乡镇街道编号", Status=0 },
new SysDictData{Id="514dbb46-ae79-4c07-96fa-496983765609", TypeId="2815b28b-e51d-4dfb-b549-2eaa27d8c23d", Value="社区/村委会编号", Code="4", Sort=4, Remark="社区/村委会编号", Status=0 },
};
}
}

View File

@@ -20,6 +20,7 @@ namespace Ewide.Core
{
return new[]
{
new SysDictType{Id="2815b28b-e51d-4dfb-b549-2eaa27d8c23d", Name="区域编码类型", Code="dic_areacode_type", Sort=0, Remark="区域编码类型", Status=0 },
new SysDictType{Id="b0cfa91c-1189-4f39-bc5a-f035885d0604", Name="通用状态", Code="common_status", Sort=100, Remark="通用状态", Status=0 },
new SysDictType{Id="301ed120-dfc5-4d7c-af59-b56a519581c9", Name="性别", Code="sex", Sort=100, Remark="性别字典", Status=0 },
new SysDictType{Id="64afb5e7-9f00-4c4f-9ba6-6b41221bd862", Name="常量的分类", Code="consts_type", Sort=100, Remark="常量的分类,用于区别一组配置", Status=0 },

View File

@@ -57,6 +57,12 @@ new SysMenu{Id="c227e732-f231-4488-89b0-d1c9dad78950", Pid="0f60d129-9d3b-42b5-9
new SysMenu{Id="9dafbe04-83c9-482c-9c83-81f4da045da5", Pid="0f60d129-9d3b-42b5-9eb2-99bc066be6aa", Pids="[00000000-0000-0000-0000-000000000000],[f7d60a3f-2de3-4dca-a1d6-385cee9638bc],[0f60d129-9d3b-42b5-9eb2-99bc066be6aa],", Name="职位编辑", Code="sys_pos_mgr_edit", Type=2, Permission="sysPos:edit", Application="system", OpenType=0, Visible=true, Weight=1, Sort=100, Status=0},
new SysMenu{Id="031df05e-b7c6-4ecd-aff2-f189c994e86d", Pid="0f60d129-9d3b-42b5-9eb2-99bc066be6aa", Pids="[00000000-0000-0000-0000-000000000000],[f7d60a3f-2de3-4dca-a1d6-385cee9638bc],[0f60d129-9d3b-42b5-9eb2-99bc066be6aa],", Name="职位删除", Code="sys_pos_mgr_delete", Type=2, Permission="sysPos:delete", Application="system", OpenType=0, Visible=true, Weight=1, Sort=100, Status=0 },
new SysMenu{Id="fe5ee8a1-2145-43c6-bdeb-518f3a9c127d", Pid="0f60d129-9d3b-42b5-9eb2-99bc066be6aa", Pids="[00000000-0000-0000-0000-000000000000],[f7d60a3f-2de3-4dca-a1d6-385cee9638bc],[0f60d129-9d3b-42b5-9eb2-99bc066be6aa],", Name="职位详情", Code="sys_pos_mgr_detail", Type=2, Permission="sysPos:detail", Application="system", OpenType=0, Visible=true, Weight=1, Sort=100, Status=0 },
new SysMenu{Id="235d9a5f-2469-4f17-a98c-45824513d5ae", Pid="f7d60a3f-2de3-4dca-a1d6-385cee9638bc", Pids="[00000000-0000-0000-0000-000000000000],[f7d60a3f-2de3-4dca-a1d6-385cee9638bc],", Name="区域管理", Code="org_areaManage", Type=1, Router="/area", Component="system/area/index", Application="system", OpenType=1, Visible=true, Weight=1, Sort=0, Status=0},
new SysMenu{Id="d5130f78-5d8d-4c8d-b433-f8e6796f0d12", Pid="235d9a5f-2469-4f17-a98c-45824513d5ae", Pids="[00000000-0000-0000-0000-000000000000],[f7d60a3f-2de3-4dca-a1d6-385cee9638bc],[235d9a5f-2469-4f17-a98c-45824513d5ae],", Name="区域增加", Code="org_area_add", Type=2, Permission="sysArea:add", Application="system", OpenType=0, Visible=true, Weight=1, Sort=100, Status=0 },
new SysMenu{Id="4f44d697-5421-487e-9d31-3161aee4b7cc", Pid="235d9a5f-2469-4f17-a98c-45824513d5ae", Pids="[00000000-0000-0000-0000-000000000000],[f7d60a3f-2de3-4dca-a1d6-385cee9638bc],[235d9a5f-2469-4f17-a98c-45824513d5ae],", Name="区域编辑", Code="org_area_edit", Type=2, Permission="sysArea:edit", Application="system", OpenType=0, Visible=true, Weight=1, Sort=100, Status=0 },
new SysMenu{Id="142803a5-63de-48be-afa9-3bde8640d580", Pid="235d9a5f-2469-4f17-a98c-45824513d5ae", Pids="[00000000-0000-0000-0000-000000000000],[f7d60a3f-2de3-4dca-a1d6-385cee9638bc],[235d9a5f-2469-4f17-a98c-45824513d5ae],", Name="区域删除", Code="org_area_delete", Type=2, Permission="sysArea:delete", Application="system", OpenType=0, Visible=true, Weight=1, Sort=100, Status=0 },
new SysMenu{Id="e7f28efd-2ac4-45c6-a73b-57ef7c5b8c8b", Pid="235d9a5f-2469-4f17-a98c-45824513d5ae", Pids="[00000000-0000-0000-0000-000000000000],[f7d60a3f-2de3-4dca-a1d6-385cee9638bc],[235d9a5f-2469-4f17-a98c-45824513d5ae],", Name="区域查询", Code="org_area_page", Type=2, Permission="sysArea:page", Application="system", OpenType=0, Visible=true, Weight=1, Sort=100, Status=0},
new SysMenu{Id="8645a374-6939-4dd8-a827-c6a39771f33d", Pid="235d9a5f-2469-4f17-a98c-45824513d5ae", Pids="[00000000-0000-0000-0000-000000000000],[f7d60a3f-2de3-4dca-a1d6-385cee9638bc],[235d9a5f-2469-4f17-a98c-45824513d5ae],", Name="区域树", Code="org_area_tree", Type=2, Permission="sysArea:tree", Application="system", OpenType=0, Visible=true, Weight=1, Sort=100, Status=0 },
new SysMenu{Id="4c00d8c1-e871-4231-8b46-a3e3f3fd400c", Pid="00000000-0000-0000-0000-000000000000", Pids="[00000000-0000-0000-0000-000000000000],", Name="权限管理", Code="auth_manager", Type=0, Icon="safety-certificate", Router="/auth", Component="PageView", Application="system", OpenType=0, Visible=true, Weight=1, Sort=100, Status=0 },
new SysMenu{Id="05175bfd-6e5f-4c3b-8daf-0f79df4e9694", Pid="4c00d8c1-e871-4231-8b46-a3e3f3fd400c", Pids="[00000000-0000-0000-0000-000000000000],[4c00d8c1-e871-4231-8b46-a3e3f3fd400c],", Name="应用管理", Code="sys_app_mgr", Type=1, Router="/app", Component="system/app/index", Application="system", OpenType=1, Visible=true, Weight=1, Sort=100, Status=0 },
new SysMenu{Id="dbaa7a6d-234f-4cc9-977f-4544b8bb45b8", Pid="05175bfd-6e5f-4c3b-8daf-0f79df4e9694", Pids="[00000000-0000-0000-0000-000000000000],[4c00d8c1-e871-4231-8b46-a3e3f3fd400c],[05175bfd-6e5f-4c3b-8daf-0f79df4e9694],", Name="应用查询", Code="sys_app_mgr_page", Type=2, Permission="sysApp:page", Application="system", OpenType=0, Visible=true, Weight=1, Sort=100, Status=0 },

View File

@@ -0,0 +1,128 @@
using Ewide.Core.Service.Area.Dto;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor.Extensions;
using Furion.DependencyInjection;
using Furion.FriendlyException;
using Mapster;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Ewide.Core.Service.Area
{
public class AreaCodeService : IAreaCodeService, ITransient
{
private readonly IRepository<SysAreaCode> _areaCodeRep;
private readonly IRepository<SysOrg> _sysOrgRep;
private readonly ISysCacheService _sysCacheService;
public AreaCodeService(IRepository<SysAreaCode> AreaCodeRep, ISysCacheService sysCacheService, IRepository<SysOrg> sysOrgRep)
{
_areaCodeRep = AreaCodeRep;
_sysCacheService = sysCacheService;
_sysOrgRep = sysOrgRep;
}
/// <summary>
/// 添加一个区域
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task AddAreaCode(AreaCodeInput input)
{
CheckInput(input);
await _areaCodeRep.InsertNowAsync(input.Adapt<SysAreaCode>());
await _sysCacheService.SetAreaCode(await _areaCodeRep.DetachedEntities.ToListAsync());
}
/// <summary>
/// 删除一个区域
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task DeleteAreaCode(DeleteAreaCodeInput input)
{
var AreaCode = await _areaCodeRep.FirstOrDefaultAsync(p => p.Code == input.Code);
if (await _sysOrgRep.DetachedEntities.AnyAsync(o => o.AreaNumberCode == input.Code))
{
throw Oops.Oh("不能删除已包含区域的组织");
}
await AreaCode.DeleteNowAsync();
await _sysCacheService.SetAreaCode(await _areaCodeRep.DetachedEntities.ToListAsync());
}
/// <summary>
/// 根据区域代码获取区域信息
/// </summary>
/// <param name="code">区域代码</param>
/// <returns></returns>
public async Task<SysAreaCode> GetAreaCode(string code)
{
var cachedAreaCodes = await _sysCacheService.GetAreaCode();
if (cachedAreaCodes == null || cachedAreaCodes.Count < 0)
{
cachedAreaCodes = await _areaCodeRep.DetachedEntities.ToListAsync();
await _sysCacheService.SetAreaCode(cachedAreaCodes);
}
return cachedAreaCodes.FirstOrDefault(a => a.Code == code);
}
/// <summary>
/// 获取区域目录树
/// </summary>
/// <returns></returns>
public async Task<List<AreaTreeNode>> GetAreaCodeTree()
{
var cachedAreaCodes = await _sysCacheService.GetAreaCode();
if (cachedAreaCodes == null || cachedAreaCodes.Count < 0)
{
cachedAreaCodes = await _areaCodeRep.DetachedEntities.ToListAsync();
await _sysCacheService.SetAreaCode(cachedAreaCodes);
}
return new TreeBuildUtil<AreaTreeNode>().DoTreeBuild(cachedAreaCodes.Select(u => new AreaTreeNode
{
Code = u.Code,
ParentCode = u.ParentCode,
Name = u.Name,
LevelType = u.LevelType,
Note = u.Note
}).ToList());
}
public async Task<List<SysAreaCode>> GetAreaCodeWithChildren(string code)
{
return await _areaCodeRep.DetachedEntities.Where(a => a.Code.StartsWith(code)).ToListAsync();
}
public async Task<dynamic> QueryAreaCodePageList(AreaCodeInput input)
{
var AreaCodes = await _areaCodeRep.DetachedEntities
.Where(input.LevelType.HasValue ,a=>a.LevelType == input.LevelType)
.Where(!string.IsNullOrEmpty(input.Code),a=>a.Code.StartsWith(input.Code))
.Where(!string.IsNullOrEmpty(input.ShowCode),a =>a.ShowCode.StartsWith(input.ShowCode))
.Where(!string.IsNullOrEmpty(input.Name),a =>a.Name.StartsWith(input.Name))
.Select(p => p.Adapt<SysAreaCode>()).ToPagedListAsync(input.PageNo, input.PageSize);
return XnPageResult<SysAreaCode>.PageResult(AreaCodes);
}
/// <summary>
/// 更新区域信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task UpdateAreaCode(AreaCodeInput input)
{
CheckInput(input);
var area = input.Adapt<SysAreaCode>();
await area.UpdateNowAsync();
await _sysCacheService.SetAreaCode(await _areaCodeRep.DetachedEntities.ToListAsync());
}
private bool CheckInput(AreaCodeInput input)
{
//检查level和区域长度
if (false)
{
throw Oops.Oh("数据异常");
}
//检查是否有子节点
return true;
}
}
}

View File

@@ -1,121 +0,0 @@
using Ewide.Core.Entity;
using Ewide.Core.Service.Area.Dto;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor.Extensions;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Furion.FriendlyException;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Core.Service.Area
{
public class AreaNumberService : IAreaNumberService, ITransient
{
private readonly IRepository<AreaNumber> _areaNumberRep;
private readonly IRepository<SysOrg> _sysOrgRep;
private readonly ISysCacheService _sysCacheService;
public AreaNumberService(IRepository<AreaNumber> areaNumberRep, ISysCacheService sysCacheService, IRepository<SysOrg> sysOrgRep)
{
_areaNumberRep = areaNumberRep;
_sysCacheService = sysCacheService;
_sysOrgRep = sysOrgRep;
}
/// <summary>
/// 添加一个区域
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task AddAreaNumber(AreaNumberInput input)
{
CheckInput(input);
await _areaNumberRep.InsertNowAsync(input.Adapt<AreaNumber>());
await _sysCacheService.SetAreaNumber(await _areaNumberRep.DetachedEntities.ToListAsync());
}
/// <summary>
/// 删除一个区域
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task DeleteAreaNumber(DeleteAreaNumberInput input)
{
var areaNumber = await _areaNumberRep.FirstOrDefaultAsync(p => p.Code == input.Code);
if (await _sysOrgRep.DetachedEntities.AnyAsync(o => o.AreaNumberCode == input.Code))
{
throw Oops.Oh("不能删除已包含区域的组织");
}
await areaNumber.DeleteNowAsync();
await _sysCacheService.SetAreaNumber(await _areaNumberRep.DetachedEntities.ToListAsync());
}
/// <summary>
/// 根据区域代码获取区域信息
/// </summary>
/// <param name="code">区域代码</param>
/// <returns></returns>
public async Task<AreaNumber> GetAreaNumber(string code)
{
var cachedAreaNumbers = await _sysCacheService.GetAreaNumber();
if (cachedAreaNumbers == null || cachedAreaNumbers.Count < 0)
{
cachedAreaNumbers = await _areaNumberRep.DetachedEntities.ToListAsync();
await _sysCacheService.SetAreaNumber(cachedAreaNumbers);
}
return cachedAreaNumbers.FirstOrDefault(a => a.Code == code);
}
/// <summary>
/// 获取区域目录树
/// </summary>
/// <returns></returns>
public async Task<List<AreaTreeNode>> GetAreaNumberTree()
{
var cachedAreaNumbers = await _sysCacheService.GetAreaNumber();
if (cachedAreaNumbers == null || cachedAreaNumbers.Count < 0)
{
cachedAreaNumbers = await _areaNumberRep.DetachedEntities.ToListAsync();
await _sysCacheService.SetAreaNumber(cachedAreaNumbers);
}
return new TreeBuildUtil<AreaTreeNode>().DoTreeBuild(cachedAreaNumbers.Select(u => new AreaTreeNode
{
Code = u.Code,
ParentCode = u.ParentCode,
Name = u.Name,
LevelType = u.LevelType,
Note = u.Note
}).ToList());
}
public async Task<List<AreaNumber>> GetAreaNumberWithChildren(string code)
{
return await _areaNumberRep.DetachedEntities.Where(a => a.Code.StartsWith(code)).ToListAsync();
}
/// <summary>
/// 更新区域信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task UpdateAreaNumber(AreaNumberInput input)
{
CheckInput(input);
var area = input.Adapt<AreaNumber>();
await area.UpdateNowAsync();
await _sysCacheService.SetAreaNumber(await _areaNumberRep.DetachedEntities.ToListAsync());
}
private bool CheckInput(AreaNumberInput input)
{
//检查level和区域长度
if (false)
{
throw Oops.Oh("数据异常");
}
//检查是否有子节点
return true;
}
}
}

View File

@@ -7,24 +7,24 @@ using System.Threading.Tasks;
namespace Ewide.Core.Service.Area.Dto
{
public class AreaNumberInput
public class AreaCodeInput : XnInputBase
{
public string Code { get; set; }
public string ShowCode { get; set; }
public string Name { get; set; }
public int LevelType { get; set; }
public int? LevelType { get; set; }
public string Note { get; set; }
public int Sort { get; set; }
}
public class UpdateAreaNumberInput
public class UpdateAreaCodeInput
{
public string ShowCode { get; set; }
public string Name { get; set; }
public int LevelType { get; set; }
public int? LevelType { get; set; }
public string Note { get; set; }
public int Sort { get; set; }
}
public class DeleteAreaNumberInput
public class DeleteAreaCodeInput
{
[Required(ErrorMessage ="区域代码不可为空")]
public string Code { get; set; }

View File

@@ -7,11 +7,11 @@ using System.Threading.Tasks;
namespace Ewide.Core.Service.Area.Dto
{
public class AreaNumberOutput:AreaNumberInput
public class AreaCodeOutput:AreaCodeInput
{
public string ParentCode { get; set; }
}
public class AreaTreeNode : AreaNumberOutput, ITreeNode
public class AreaTreeNode : AreaCodeOutput, ITreeNode
{
public List<AreaTreeNode> Children { get; set; } = new List<AreaTreeNode>();

View File

@@ -0,0 +1,23 @@
using Ewide.Core.Service.Area.Dto;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Core.Service.Area
{
public interface IAreaCodeService
{
Task AddAreaCode(AreaCodeInput input);
Task DeleteAreaCode(DeleteAreaCodeInput input);
Task UpdateAreaCode(AreaCodeInput input);
Task<SysAreaCode> GetAreaCode(string code);
Task<List<SysAreaCode>> GetAreaCodeWithChildren(string code);
Task<List<AreaTreeNode>> GetAreaCodeTree();
Task<dynamic> QueryAreaCodePageList([FromQuery] AreaCodeInput input);
}
}

View File

@@ -1,21 +0,0 @@
using Ewide.Core.Entity;
using Ewide.Core.Service.Area.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Core.Service.Area
{
public interface IAreaNumberService
{
Task AddAreaNumber(AreaNumberInput input);
Task DeleteAreaNumber(DeleteAreaNumberInput input);
Task UpdateAreaNumber(AreaNumberInput input);
Task<AreaNumber> GetAreaNumber(string code);
Task<List<AreaNumber>> GetAreaNumberWithChildren(string code);
Task<List<AreaTreeNode>> GetAreaNumberTree();
}
}

View File

@@ -1,5 +1,4 @@
using Ewide.Core.Entity;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Ewide.Core.Service
@@ -15,8 +14,8 @@ namespace Ewide.Core.Service
Task SetDataScope(string userId, List<string> dataScopes);
Task SetMenu(string userId, string appCode, List<AntDesignTreeNode> menus);
Task SetPermission(string userId, List<string> permissions);
Task<List<AreaNumber>> GetAreaNumber();
Task SetAreaNumber(List<AreaNumber> areaNumbers);
Task<List<SysAreaCode>> GetAreaCode();
Task SetAreaCode(List<SysAreaCode> areaCodes);
Task<bool> SetAsync(string key, object value);
Task<string> GetAsync(string key);
Task<T> GetAsync<T>(string key);

View File

@@ -1,5 +1,4 @@
using Ewide.Core.Entity;
using Furion.DependencyInjection;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
@@ -166,14 +165,14 @@ namespace Ewide.Core.Service
{
return _cache.GetAsync<T>(key);
}
public Task<List<AreaNumber>> GetAreaNumber()
public Task<List<SysAreaCode>> GetAreaCode()
{
return _cache.GetAsync<List<AreaNumber>>(CommonConst.CACHE_AREA_NUMBER);
return _cache.GetAsync<List<SysAreaCode>>(CommonConst.CACHE_AREA_CODE);
}
public async Task SetAreaNumber(List<AreaNumber> areaNumbers)
public async Task SetAreaCode(List<SysAreaCode> areaCodes)
{
await _cache.SetAsync(CommonConst.CACHE_AREA_NUMBER,areaNumbers);
await _cache.SetAsync(CommonConst.CACHE_AREA_CODE, areaCodes);
}
}
}

View File

@@ -1,5 +1,4 @@
using Ewide.Core.Entity;
using Furion;
using Furion;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor.Extensions;
using Furion.DependencyInjection;

View File

@@ -1,6 +1,4 @@
using Ewide.Core.Entity;
using Ewide.Core.Service.User;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor.Extensions;
using Furion.DependencyInjection;
using Microsoft.EntityFrameworkCore;

View File

@@ -1,5 +1,4 @@
using Ewide.Core.Entity;
using Ewide.Core.Service.Role;
using Ewide.Core.Service.Role;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor.Extensions;
using Furion.DependencyInjection;

View File

@@ -1,5 +1,4 @@
using Ewide.Core.Entity;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor.Extensions;
using Furion.DependencyInjection;
using Microsoft.EntityFrameworkCore;