From 98c992bc89d8b579a388bd08ce0b2f4270009cef Mon Sep 17 00:00:00 2001 From: ky_yusj <2655568377@qq.com> Date: Thu, 29 Apr 2021 18:21:13 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=8C=BA=E5=9F=9F=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E4=BF=AE=E6=94=B9=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Core/Const/CommonConst.cs | 2 +- .../Controller/AreaCodeController.cs | 87 ++++++++++++ .../Controller/AreaNumberController.cs | 76 ---------- .../Entity/{AreaNumber.cs => SysAreaCode.cs} | 13 +- Api/Ewide.Core/Entity/SysOrg.cs | 5 +- Api/Ewide.Core/Entity/SysRole.cs | 9 +- Api/Ewide.Core/Entity/SysRoleArea.cs | 4 +- Api/Ewide.Core/Entity/SysUser.cs | 9 +- Api/Ewide.Core/Entity/SysUserArea.cs | 9 +- Api/Ewide.Core/Ewide.Core.xml | 133 ++++++++++-------- Api/Ewide.Core/SeedData/SysAreaCodeData.cs | 23 +++ .../SeedData/SysDictDataSeedData.cs | 4 + .../SeedData/SysDictTypeSeedData.cs | 1 + Api/Ewide.Core/SeedData/SysMenuSeedData.cs | 6 + .../Service/Area/AreaCodeService.cs | 128 +++++++++++++++++ .../Service/Area/AreaNumberService.cs | 121 ---------------- .../{AreaNumberInput.cs => AreaCodeInput.cs} | 10 +- ...{AreaNumberOutput.cs => AreaCodeOutput.cs} | 4 +- .../Service/Area/IAreaCodeService.cs | 23 +++ .../Service/Area/IAreaNumberService.cs | 21 --- .../Service/Cache/ISysCacheService.cs | 7 +- .../Service/Cache/SysCacheService.cs | 11 +- Api/Ewide.Core/Service/Org/SysOrgService.cs | 3 +- .../Service/Role/SysRoleAreaService.cs | 4 +- .../Service/User/SysUserAreaService.cs | 3 +- .../Service/User/SysUserDataScopeService.cs | 3 +- 26 files changed, 388 insertions(+), 331 deletions(-) create mode 100644 Api/Ewide.Core/Controller/AreaCodeController.cs delete mode 100644 Api/Ewide.Core/Controller/AreaNumberController.cs rename Api/Ewide.Core/Entity/{AreaNumber.cs => SysAreaCode.cs} (90%) create mode 100644 Api/Ewide.Core/SeedData/SysAreaCodeData.cs create mode 100644 Api/Ewide.Core/Service/Area/AreaCodeService.cs delete mode 100644 Api/Ewide.Core/Service/Area/AreaNumberService.cs rename Api/Ewide.Core/Service/Area/Dto/{AreaNumberInput.cs => AreaCodeInput.cs} (77%) rename Api/Ewide.Core/Service/Area/Dto/{AreaNumberOutput.cs => AreaCodeOutput.cs} (85%) create mode 100644 Api/Ewide.Core/Service/Area/IAreaCodeService.cs delete mode 100644 Api/Ewide.Core/Service/Area/IAreaNumberService.cs diff --git a/Api/Ewide.Core/Const/CommonConst.cs b/Api/Ewide.Core/Const/CommonConst.cs index 418ad6e..afa39b1 100644 --- a/Api/Ewide.Core/Const/CommonConst.cs +++ b/Api/Ewide.Core/Const/CommonConst.cs @@ -34,6 +34,6 @@ /// /// 区域缓存 /// - public const string CACHE_AREA_NUMBER = "areaNumber"; + public const string CACHE_AREA_CODE = "areaCode"; } } diff --git a/Api/Ewide.Core/Controller/AreaCodeController.cs b/Api/Ewide.Core/Controller/AreaCodeController.cs new file mode 100644 index 0000000..17d2546 --- /dev/null +++ b/Api/Ewide.Core/Controller/AreaCodeController.cs @@ -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 +{ + /// + /// 区域代码相关服务 + /// + [ApiDescriptionSettings(Name = "AreaCode", Order = 160)] + public class AreaCodeController : IDynamicApiController + { + private readonly IAreaCodeService _areaCodeService; + + public AreaCodeController(IAreaCodeService areaCodeService) + { + _areaCodeService = areaCodeService; + } + /// + /// 查询 + /// + /// + /// + [HttpGet("/sysArea/page")] + public async Task QueryAreaCodePageList([FromQuery] AreaCodeInput input) + { + return (await _areaCodeService.QueryAreaCodePageList(input)); + } + + /// + /// + /// + /// + /// + [HttpGet("/sysArea/{code}")] + public async Task GetAreaCode([FromRoute]string code) + { + return (await _areaCodeService.GetAreaCode(code)).Adapt(); + } + /// + /// 添加区域信息 + /// + /// + /// + [HttpPost("/sysArea/add")] + public async Task AddAreaCode(AreaCodeInput input) + { + await _areaCodeService.AddAreaCode(input); + } + /// + /// 更新区域信息 + /// + /// + /// + [HttpPost("/sysArea/edit")] + public async Task UpdateAreaCode(AreaCodeInput input) + { + await _areaCodeService.UpdateAreaCode(input); + } + /// + /// 删除区域 + /// + /// + /// + [HttpPost("/sysArea/delete")] + public async Task DeleteAreaCode(DeleteAreaCodeInput input) + { + await _areaCodeService.DeleteAreaCode(input); + } + /// + /// 获取目录树 + /// + /// + [HttpGet("/sysArea/tree")] + public async Task> GetAreaCodeTree() + { + return await _areaCodeService.GetAreaCodeTree(); + } + } +} diff --git a/Api/Ewide.Core/Controller/AreaNumberController.cs b/Api/Ewide.Core/Controller/AreaNumberController.cs deleted file mode 100644 index 048f5f6..0000000 --- a/Api/Ewide.Core/Controller/AreaNumberController.cs +++ /dev/null @@ -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 -{ - /// - /// 区域代码相关服务 - /// - [ApiDescriptionSettings(Name = "AreaNumber", Order = 160)] - public class AreaNumberController : IDynamicApiController - { - private readonly IAreaNumberService _areaNumberService; - - public AreaNumberController(IAreaNumberService areaNumberService) - { - _areaNumberService = areaNumberService; - } - /// - /// - /// - /// - /// - [HttpGet("/area/{code}")] - public async Task GetAreaNumber([FromRoute]string code) - { - return (await _areaNumberService.GetAreaNumber(code)).Adapt(); - } - /// - /// 添加区域信息 - /// - /// - /// - [HttpPost("/area/add")] - public async Task AddAreaNumber(AreaNumberInput input) - { - await _areaNumberService.AddAreaNumber(input); - } - /// - /// 更新区域信息 - /// - /// - /// - [HttpPost("/area/edit")] - public async Task UpdateAreaNumber(AreaNumberInput input) - { - await _areaNumberService.UpdateAreaNumber(input); - } - /// - /// 删除区域 - /// - /// - /// - [HttpPost("/area/delete")] - public async Task DeleteAreaNumber(DeleteAreaNumberInput input) - { - await _areaNumberService.DeleteAreaNumber(input); - } - /// - /// 获取目录树 - /// - /// - [HttpGet("/area/tree")] - public async Task> GetAreaNumberTree() - { - return await _areaNumberService.GetAreaNumberTree(); - } - } -} diff --git a/Api/Ewide.Core/Entity/AreaNumber.cs b/Api/Ewide.Core/Entity/SysAreaCode.cs similarity index 90% rename from Api/Ewide.Core/Entity/AreaNumber.cs rename to Api/Ewide.Core/Entity/SysAreaCode.cs index 7ca0293..30c1dc8 100644 --- a/Api/Ewide.Core/Entity/AreaNumber.cs +++ b/Api/Ewide.Core/Entity/SysAreaCode.cs @@ -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("类别")] diff --git a/Api/Ewide.Core/Entity/SysOrg.cs b/Api/Ewide.Core/Entity/SysOrg.cs index 6d70306..d9e5af6 100644 --- a/Api/Ewide.Core/Entity/SysOrg.cs +++ b/Api/Ewide.Core/Entity/SysOrg.cs @@ -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 /// /// 一对一 一个组织对应一个区域代码 /// - public AreaNumber AreaNumber { get; set; } + public SysAreaCode AreaCode { get; set; } /// /// 多对多(用户) diff --git a/Api/Ewide.Core/Entity/SysRole.cs b/Api/Ewide.Core/Entity/SysRole.cs index f1ce913..d9c029f 100644 --- a/Api/Ewide.Core/Entity/SysRole.cs +++ b/Api/Ewide.Core/Entity/SysRole.cs @@ -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 /// public List SysRoleDataScopes { get; set; } - public ICollection AreaNumbers { get; set; } + public ICollection AreaCodes { get; set; } public List 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( - 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 => { diff --git a/Api/Ewide.Core/Entity/SysRoleArea.cs b/Api/Ewide.Core/Entity/SysRoleArea.cs index 8f59c65..78d74b5 100644 --- a/Api/Ewide.Core/Entity/SysRoleArea.cs +++ b/Api/Ewide.Core/Entity/SysRoleArea.cs @@ -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; } } } diff --git a/Api/Ewide.Core/Entity/SysUser.cs b/Api/Ewide.Core/Entity/SysUser.cs index 8bc6dca..6e2b4e0 100644 --- a/Api/Ewide.Core/Entity/SysUser.cs +++ b/Api/Ewide.Core/Entity/SysUser.cs @@ -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 /// public List SysUserDataScopes { get; set; } - public ICollection AreaNumbers { get; set; } + public ICollection AreaCodes { get; set; } /// /// 多对多中间表(用户-区域 数据范围) /// @@ -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( - u => u.HasOne(c => c.AreaNumber).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.AreaNumberCode), + entityBuilder.HasMany(p => p.AreaCodes).WithMany(p => p.SysUsers).UsingEntity( + 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 => { diff --git a/Api/Ewide.Core/Entity/SysUserArea.cs b/Api/Ewide.Core/Entity/SysUserArea.cs index 19092fb..58b9b38 100644 --- a/Api/Ewide.Core/Entity/SysUserArea.cs +++ b/Api/Ewide.Core/Entity/SysUserArea.cs @@ -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; } } } diff --git a/Api/Ewide.Core/Ewide.Core.xml b/Api/Ewide.Core/Ewide.Core.xml index c55c698..1328f72 100644 --- a/Api/Ewide.Core/Ewide.Core.xml +++ b/Api/Ewide.Core/Ewide.Core.xml @@ -303,90 +303,57 @@ 验证码缓存 - + 区域缓存 - + 区域代码相关服务 - + + + 查询 + + + + + - + 添加区域信息 - + 更新区域信息 - + 删除区域 - + 获取目录树 - - - 父节点就是去掉后面两位 - - - - - 多个区域有多个用户绑定自定义数据 - - - - - 中间表 - - - - - 多个区域有多个角色绑定权限数据 - - - - - 中间表 - - - - - 一个区域有多个组织 - - - - - 角色Id - - - - - 用户Id - - 自定义实体基类 @@ -473,6 +440,36 @@ 排序 + + + 父节点就是去掉后面两位 + + + + + 多个区域有多个用户绑定自定义数据 + + + + + 中间表 + + + + + 多个区域有多个角色绑定权限数据 + + + + + 中间表 + + + + + 一个区域有多个组织 + + 代码生成表 @@ -1141,9 +1138,9 @@ 备注 - + - 不关联上级菜单显示 0标识关联 1表示不需要关联菜单 仅按钮有效 + 关联上级菜单显示 0表示不需要关联菜单 1表示关联 仅按钮有效 @@ -1356,7 +1353,7 @@ 状态(字典 0正常 1停用 2删除) - + 一对一 一个组织对应一个区域代码 @@ -1494,6 +1491,11 @@ + + + 角色Id + + 角色数据范围表 @@ -1770,6 +1772,11 @@ + + + 用户Id + + 用户数据范围表 @@ -3127,34 +3134,34 @@ - + 添加一个区域 - + 删除一个区域 - + 根据区域代码获取区域信息 区域代码 - + 获取区域目录树 - + 更新区域信息 @@ -5025,9 +5032,9 @@ 备注 - + - 不绑定上级菜单 + 绑定上级菜单显示 @@ -5095,7 +5102,17 @@ 值 - + + + 菜单类型 + + + + + 关联显示父级 + + + 排序,越小优先级越高 diff --git a/Api/Ewide.Core/SeedData/SysAreaCodeData.cs b/Api/Ewide.Core/SeedData/SysAreaCodeData.cs new file mode 100644 index 0000000..21670fa --- /dev/null +++ b/Api/Ewide.Core/SeedData/SysAreaCodeData.cs @@ -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 + { + public IEnumerable 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}, + }; + } + } +} diff --git a/Api/Ewide.Core/SeedData/SysDictDataSeedData.cs b/Api/Ewide.Core/SeedData/SysDictDataSeedData.cs index 7341465..50211b1 100644 --- a/Api/Ewide.Core/SeedData/SysDictDataSeedData.cs +++ b/Api/Ewide.Core/SeedData/SysDictDataSeedData.cs @@ -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 }, }; } } diff --git a/Api/Ewide.Core/SeedData/SysDictTypeSeedData.cs b/Api/Ewide.Core/SeedData/SysDictTypeSeedData.cs index d337e4d..9cfda91 100644 --- a/Api/Ewide.Core/SeedData/SysDictTypeSeedData.cs +++ b/Api/Ewide.Core/SeedData/SysDictTypeSeedData.cs @@ -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 }, diff --git a/Api/Ewide.Core/SeedData/SysMenuSeedData.cs b/Api/Ewide.Core/SeedData/SysMenuSeedData.cs index 61562ee..43801f6 100644 --- a/Api/Ewide.Core/SeedData/SysMenuSeedData.cs +++ b/Api/Ewide.Core/SeedData/SysMenuSeedData.cs @@ -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 }, diff --git a/Api/Ewide.Core/Service/Area/AreaCodeService.cs b/Api/Ewide.Core/Service/Area/AreaCodeService.cs new file mode 100644 index 0000000..2e48274 --- /dev/null +++ b/Api/Ewide.Core/Service/Area/AreaCodeService.cs @@ -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 _areaCodeRep; + private readonly IRepository _sysOrgRep; + private readonly ISysCacheService _sysCacheService; + + public AreaCodeService(IRepository AreaCodeRep, ISysCacheService sysCacheService, IRepository sysOrgRep) + { + _areaCodeRep = AreaCodeRep; + _sysCacheService = sysCacheService; + _sysOrgRep = sysOrgRep; + } + /// + /// 添加一个区域 + /// + /// + /// + public async Task AddAreaCode(AreaCodeInput input) + { + CheckInput(input); + await _areaCodeRep.InsertNowAsync(input.Adapt()); + await _sysCacheService.SetAreaCode(await _areaCodeRep.DetachedEntities.ToListAsync()); + } + /// + /// 删除一个区域 + /// + /// + /// + 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()); + } + /// + /// 根据区域代码获取区域信息 + /// + /// 区域代码 + /// + public async Task 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); + } + /// + /// 获取区域目录树 + /// + /// + public async Task> GetAreaCodeTree() + { + var cachedAreaCodes = await _sysCacheService.GetAreaCode(); + if (cachedAreaCodes == null || cachedAreaCodes.Count < 0) + { + cachedAreaCodes = await _areaCodeRep.DetachedEntities.ToListAsync(); + await _sysCacheService.SetAreaCode(cachedAreaCodes); + } + return new TreeBuildUtil().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> GetAreaCodeWithChildren(string code) + { + return await _areaCodeRep.DetachedEntities.Where(a => a.Code.StartsWith(code)).ToListAsync(); + } + + public async Task 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()).ToPagedListAsync(input.PageNo, input.PageSize); + return XnPageResult.PageResult(AreaCodes); + } + + /// + /// 更新区域信息 + /// + /// + /// + public async Task UpdateAreaCode(AreaCodeInput input) + { + CheckInput(input); + var area = input.Adapt(); + await area.UpdateNowAsync(); + await _sysCacheService.SetAreaCode(await _areaCodeRep.DetachedEntities.ToListAsync()); + } + private bool CheckInput(AreaCodeInput input) + { + //检查level和区域长度 + if (false) + { + throw Oops.Oh("数据异常"); + } + //检查是否有子节点 + return true; + } + } +} diff --git a/Api/Ewide.Core/Service/Area/AreaNumberService.cs b/Api/Ewide.Core/Service/Area/AreaNumberService.cs deleted file mode 100644 index 924ca08..0000000 --- a/Api/Ewide.Core/Service/Area/AreaNumberService.cs +++ /dev/null @@ -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 _areaNumberRep; - private readonly IRepository _sysOrgRep; - private readonly ISysCacheService _sysCacheService; - - public AreaNumberService(IRepository areaNumberRep, ISysCacheService sysCacheService, IRepository sysOrgRep) - { - _areaNumberRep = areaNumberRep; - _sysCacheService = sysCacheService; - _sysOrgRep = sysOrgRep; - } - /// - /// 添加一个区域 - /// - /// - /// - public async Task AddAreaNumber(AreaNumberInput input) - { - CheckInput(input); - await _areaNumberRep.InsertNowAsync(input.Adapt()); - await _sysCacheService.SetAreaNumber(await _areaNumberRep.DetachedEntities.ToListAsync()); - } - /// - /// 删除一个区域 - /// - /// - /// - 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()); - } - /// - /// 根据区域代码获取区域信息 - /// - /// 区域代码 - /// - public async Task 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); - } - /// - /// 获取区域目录树 - /// - /// - public async Task> GetAreaNumberTree() - { - var cachedAreaNumbers = await _sysCacheService.GetAreaNumber(); - if (cachedAreaNumbers == null || cachedAreaNumbers.Count < 0) - { - cachedAreaNumbers = await _areaNumberRep.DetachedEntities.ToListAsync(); - await _sysCacheService.SetAreaNumber(cachedAreaNumbers); - } - return new TreeBuildUtil().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> GetAreaNumberWithChildren(string code) - { - return await _areaNumberRep.DetachedEntities.Where(a => a.Code.StartsWith(code)).ToListAsync(); - } - /// - /// 更新区域信息 - /// - /// - /// - public async Task UpdateAreaNumber(AreaNumberInput input) - { - CheckInput(input); - var area = input.Adapt(); - await area.UpdateNowAsync(); - await _sysCacheService.SetAreaNumber(await _areaNumberRep.DetachedEntities.ToListAsync()); - } - private bool CheckInput(AreaNumberInput input) - { - //检查level和区域长度 - if (false) - { - throw Oops.Oh("数据异常"); - } - //检查是否有子节点 - return true; - } - } -} diff --git a/Api/Ewide.Core/Service/Area/Dto/AreaNumberInput.cs b/Api/Ewide.Core/Service/Area/Dto/AreaCodeInput.cs similarity index 77% rename from Api/Ewide.Core/Service/Area/Dto/AreaNumberInput.cs rename to Api/Ewide.Core/Service/Area/Dto/AreaCodeInput.cs index 48dcf9c..2068d29 100644 --- a/Api/Ewide.Core/Service/Area/Dto/AreaNumberInput.cs +++ b/Api/Ewide.Core/Service/Area/Dto/AreaCodeInput.cs @@ -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; } diff --git a/Api/Ewide.Core/Service/Area/Dto/AreaNumberOutput.cs b/Api/Ewide.Core/Service/Area/Dto/AreaCodeOutput.cs similarity index 85% rename from Api/Ewide.Core/Service/Area/Dto/AreaNumberOutput.cs rename to Api/Ewide.Core/Service/Area/Dto/AreaCodeOutput.cs index 9c59878..14d5527 100644 --- a/Api/Ewide.Core/Service/Area/Dto/AreaNumberOutput.cs +++ b/Api/Ewide.Core/Service/Area/Dto/AreaCodeOutput.cs @@ -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 Children { get; set; } = new List(); diff --git a/Api/Ewide.Core/Service/Area/IAreaCodeService.cs b/Api/Ewide.Core/Service/Area/IAreaCodeService.cs new file mode 100644 index 0000000..10d700e --- /dev/null +++ b/Api/Ewide.Core/Service/Area/IAreaCodeService.cs @@ -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 GetAreaCode(string code); + Task> GetAreaCodeWithChildren(string code); + + Task> GetAreaCodeTree(); + + Task QueryAreaCodePageList([FromQuery] AreaCodeInput input); + } +} diff --git a/Api/Ewide.Core/Service/Area/IAreaNumberService.cs b/Api/Ewide.Core/Service/Area/IAreaNumberService.cs deleted file mode 100644 index 3f18f46..0000000 --- a/Api/Ewide.Core/Service/Area/IAreaNumberService.cs +++ /dev/null @@ -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 GetAreaNumber(string code); - Task> GetAreaNumberWithChildren(string code); - - Task> GetAreaNumberTree(); - } -} diff --git a/Api/Ewide.Core/Service/Cache/ISysCacheService.cs b/Api/Ewide.Core/Service/Cache/ISysCacheService.cs index 62ac0f0..deeec91 100644 --- a/Api/Ewide.Core/Service/Cache/ISysCacheService.cs +++ b/Api/Ewide.Core/Service/Cache/ISysCacheService.cs @@ -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 dataScopes); Task SetMenu(string userId, string appCode, List menus); Task SetPermission(string userId, List permissions); - Task> GetAreaNumber(); - Task SetAreaNumber(List areaNumbers); + Task> GetAreaCode(); + Task SetAreaCode(List areaCodes); Task SetAsync(string key, object value); Task GetAsync(string key); Task GetAsync(string key); diff --git a/Api/Ewide.Core/Service/Cache/SysCacheService.cs b/Api/Ewide.Core/Service/Cache/SysCacheService.cs index 89e3d8a..d1d8880 100644 --- a/Api/Ewide.Core/Service/Cache/SysCacheService.cs +++ b/Api/Ewide.Core/Service/Cache/SysCacheService.cs @@ -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(key); } - public Task> GetAreaNumber() + public Task> GetAreaCode() { - return _cache.GetAsync>(CommonConst.CACHE_AREA_NUMBER); + return _cache.GetAsync>(CommonConst.CACHE_AREA_CODE); } - public async Task SetAreaNumber(List areaNumbers) + public async Task SetAreaCode(List areaCodes) { - await _cache.SetAsync(CommonConst.CACHE_AREA_NUMBER,areaNumbers); + await _cache.SetAsync(CommonConst.CACHE_AREA_CODE, areaCodes); } } } diff --git a/Api/Ewide.Core/Service/Org/SysOrgService.cs b/Api/Ewide.Core/Service/Org/SysOrgService.cs index 43466f8..110ed20 100644 --- a/Api/Ewide.Core/Service/Org/SysOrgService.cs +++ b/Api/Ewide.Core/Service/Org/SysOrgService.cs @@ -1,5 +1,4 @@ -using Ewide.Core.Entity; -using Furion; +using Furion; using Furion.DatabaseAccessor; using Furion.DatabaseAccessor.Extensions; using Furion.DependencyInjection; diff --git a/Api/Ewide.Core/Service/Role/SysRoleAreaService.cs b/Api/Ewide.Core/Service/Role/SysRoleAreaService.cs index a452eac..6b030e1 100644 --- a/Api/Ewide.Core/Service/Role/SysRoleAreaService.cs +++ b/Api/Ewide.Core/Service/Role/SysRoleAreaService.cs @@ -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; diff --git a/Api/Ewide.Core/Service/User/SysUserAreaService.cs b/Api/Ewide.Core/Service/User/SysUserAreaService.cs index 887439e..1af6857 100644 --- a/Api/Ewide.Core/Service/User/SysUserAreaService.cs +++ b/Api/Ewide.Core/Service/User/SysUserAreaService.cs @@ -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; diff --git a/Api/Ewide.Core/Service/User/SysUserDataScopeService.cs b/Api/Ewide.Core/Service/User/SysUserDataScopeService.cs index 72ed189..6d1c178 100644 --- a/Api/Ewide.Core/Service/User/SysUserDataScopeService.cs +++ b/Api/Ewide.Core/Service/User/SysUserDataScopeService.cs @@ -1,5 +1,4 @@ -using Ewide.Core.Entity; -using Furion.DatabaseAccessor; +using Furion.DatabaseAccessor; using Furion.DatabaseAccessor.Extensions; using Furion.DependencyInjection; using Microsoft.EntityFrameworkCore;