From 0fc67424025f6ea154398d04bfb4759115188938 Mon Sep 17 00:00:00 2001 From: zhaoy <137053305@qq.com> Date: Tue, 2 Jan 2024 16:52:42 +0800 Subject: [PATCH] =?UTF-8?q?1=E7=BB=84=E7=BB=87=E6=9C=BA=E6=9E=84=E5=90=8E?= =?UTF-8?q?=E5=8F=B0api=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=202=E8=A7=92=E8=89=B2=E6=9D=83=E9=99=90=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=92=8C=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=203=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=2017=20=E7=A7=92=E5=89=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Org/Interface/IRoleService.cs | 2 + .../Org/Services/CompanyService.cs | 42 +++++++---- .../Org/Services/RoleService.cs | 69 +++++++++++++++++-- .../Org/Services/UserService.cs | 5 +- .../System/Services/DictDataService.cs | 2 +- .../System/Services/DictTypeService.cs | 7 +- .../System/Services/MenuService.cs | 18 +++-- BPA.SAAS.Manage.Core/Base/IBaseEntity.cs | 23 ++++++- BPA.SAAS.Manage.Core/Org/BPA_Organize.cs | 11 ++- BPA.SAAS.Manage.Core/Org/BPA_Roles.cs | 6 +- 10 files changed, 139 insertions(+), 46 deletions(-) diff --git a/BPA.SAAS.Manage.Application/Org/Interface/IRoleService.cs b/BPA.SAAS.Manage.Application/Org/Interface/IRoleService.cs index 52f6475..1e5720e 100644 --- a/BPA.SAAS.Manage.Application/Org/Interface/IRoleService.cs +++ b/BPA.SAAS.Manage.Application/Org/Interface/IRoleService.cs @@ -10,5 +10,7 @@ namespace BPA.SAAS.Manage.Application.Org.Interface public interface IRoleService { Task Add(RoleDtoInput input); + Task> GetMenuRole(string RoleId); + Task AddOrUpdateMenuRole(RoleMenuDtoInput input); } } diff --git a/BPA.SAAS.Manage.Application/Org/Services/CompanyService.cs b/BPA.SAAS.Manage.Application/Org/Services/CompanyService.cs index 0c40f1b..36bac92 100644 --- a/BPA.SAAS.Manage.Application/Org/Services/CompanyService.cs +++ b/BPA.SAAS.Manage.Application/Org/Services/CompanyService.cs @@ -2,12 +2,15 @@ using BPA.SAAS.Manage.Application.Org.Dtos.Role; using BPA.SAAS.Manage.Application.Org.Dtos.Users; using BPA.SAAS.Manage.Application.Org.Interface; +using BPA.SAAS.Manage.Comm.Const; using BPA.SAAS.Manage.Comm.Enum; using BPA.SAAS.Manage.Core.Base; using BPA.SAAS.Manage.Core.Org; +using BPA.SAAS.Manage.Core.System; using Furion.LinqBuilder; using System; using System.Collections.Generic; +using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -17,13 +20,9 @@ namespace BPA.SAAS.Manage.Application.Org.Services public class CompanyService: ICompanyService, ITransient { private readonly ISqlSugarClient _db; - IUserService _UserService; - IRoleService _RoleService; - public CompanyService(ISqlSugarClient db, IUserService userService, IRoleService roleService) + public CompanyService(ISqlSugarClient db) { _db = db; - _UserService = userService; - _RoleService = roleService; } /// /// 查询企业信息 @@ -63,34 +62,36 @@ namespace BPA.SAAS.Manage.Application.Org.Services /// public async Task AddCompany(CompanyDtoInput input) { + _db.Ado.BeginTran(); var company = input.Adapt(); - var Companycheck = _db.Queryable().Where(x => x.IsDeleted == 0).First(x => x.Email == company.Email); if (Companycheck != null) throw Oops.Oh($"账号已存在"); - var res =await _db.Insertable(company).ExecuteReturnEntityAsync(); + var res =await _db.Insertable(company).CallEntityMethod(t => t.Create()).ExecuteReturnEntityAsync(); input.Email = input.Email.IsNullOrEmpty() ? input.Phone : input.Email; //创建企业,管理员用户,管理员角色 - bool adduser =await _UserService.AddUser(new UserDtoInput + var adduser = await _db.Insertable(new BPA_Users() { GroupId = res.Id, Account = input.Email, - AdminType = AdminEnums.Admin, + AdminType = 2, Name = input.Name, - }); + Password = MD5Encryption.Encrypt("123456").ToLower() + }).CallEntityMethod(t => t.Create()).ExecuteCommandAsync()>0; + if (adduser) { - var addrole = _RoleService.Add(new RoleDtoInput + var addrole =await _db.Insertable(new BPA_Roles { - Id= Guid.NewGuid().ToString(), GroupId = res.Id, Name = input.Name + "管理员", Remark = "系统默认创建管理员角色不允许修改", Code = "sys_manager_role", - }); + RoleType=1 + }).CallEntityMethod(t => t.Create()).ExecuteCommandAsync() > 0; // 查询用户 var UserRes = _db.Queryable().Filter(null, true).Where(a => a.GroupId == res.Id && a.Account == input.Email).ToList(); ////查询角色 @@ -104,10 +105,12 @@ namespace BPA.SAAS.Manage.Application.Org.Services userRole.SysRoleId = RoleRes.First().Id; _db.Insertable(userRole).ExecuteReturnEntity(); } + _db.Ado.CommitTran(); } else { - _db.Deleteable(res).ExecuteCommand(); + _db.Ado.RollbackTran(); + //_db.Deleteable(res).ExecuteCommand(); return false; } @@ -147,6 +150,17 @@ namespace BPA.SAAS.Manage.Application.Org.Services { x.IsDeleted = 1; }); + //删除加盟商下面的角色和用户以及相关的菜单权限 + var Roles=_db.Queryable().Where(x=> inputList.Contains(x.GroupId)).ToList(); + var Roleids= Roles.Select(x=>x.Id).ToList(); + var Users = _db.Queryable().Where(x => inputList.Contains(x.GroupId)).ToList(); + var Usersids = Users.Select(x => x.Id).ToList(); + var UserRole=_db.Queryable().Where(x => Usersids.Contains(x.SysUserId)).ToList(); + var RoleMenu = _db.Queryable().Where(x => Roleids.Contains(x.SysRoleId)).ToList(); + await _db.Deleteable(Roles).ExecuteCommandAsync(); + await _db.Deleteable(Users).ExecuteCommandAsync(); + await _db.Deleteable(UserRole).ExecuteCommandAsync(); + await _db.Deleteable(RoleMenu).ExecuteCommandAsync(); var res = await _db.Updateable(resEntitites).ExecuteCommandAsync(); _db.Ado.CommitTran(); return true; diff --git a/BPA.SAAS.Manage.Application/Org/Services/RoleService.cs b/BPA.SAAS.Manage.Application/Org/Services/RoleService.cs index 03ecfcc..05415ea 100644 --- a/BPA.SAAS.Manage.Application/Org/Services/RoleService.cs +++ b/BPA.SAAS.Manage.Application/Org/Services/RoleService.cs @@ -2,6 +2,7 @@ using BPA.SAAS.Manage.Application.Org.Interface; using BPA.SAAS.Manage.Comm.Const; using BPA.SAAS.Manage.Core.Org; +using BPA.SAAS.Manage.Core.System; using System; using System.Collections.Generic; using System.Linq; @@ -29,11 +30,71 @@ namespace BPA.SAAS.Manage.Application.Org.Services } } var role = input.Adapt(); - role.Id = Guid.NewGuid().ToString(); - role.CreateAt=DateTime.Now; - role.CreateBy = App.User?.FindFirst(ClaimConst.CLAINM_USERID)?.Value; // role.DataScopeType = DataScopeType.ALL; - return await _db.Insertable(role).ExecuteCommandAsync() > 0; + return await _db.Insertable(role).CallEntityMethod(t => t.Create()).ExecuteCommandAsync() > 0; + } + /// + /// 根据角色查询角色菜单 + /// + /// + /// + public async Task> GetMenuRole(string RoleId) + { + var MenuName =await _db.Queryable().LeftJoin((t, x) => t.SysMenuId == x.Id) + .Where(t => t.SysRoleId == RoleId).OrderBy((t, x) => x.CreateAt).Select((t, x) => new QueryRoleMenuListDto() + { + Name = x.Name, + Id = x.Id, + IsParentMenu = string.IsNullOrWhiteSpace(x.Pid) + }).ToListAsync(); + + return MenuName; + } + /// + /// 编辑角色菜单 + /// + /// + /// + public async Task AddOrUpdateMenuRole(RoleMenuDtoInput input) + { + List models = new List(); + List NewMenuId = new List(); + if (input.SysMenuId != null) + { + var Menus = _db.Queryable().ToList(); + + foreach (var item in input.SysMenuId) + { + var Pid = Menus.FirstOrDefault(t => t.Id == item).Pid; + if (Pid != null && Pid != "") + { + var Pid2 = Menus.FirstOrDefault(t => t.Id == Pid).Pid; + + if (Pid2 != null) + { + NewMenuId.Add(Pid2); + } + NewMenuId.Add(Pid); + } + NewMenuId.Add(item); + } + NewMenuId.Distinct().ToList().ForEach(item => + { + models.Add(new BPA_RoleMenu + { + Id = Guid.NewGuid().ToString(), + SysMenuId = item, + SysRoleId = input.SysRoleId + }); + }); + } + if (models.Count <= 0) + return true; + + _db.Deleteable(t => t.SysRoleId == input.SysRoleId).ExecuteCommandHasChange(); + return await _db.Insertable(models).ExecuteCommandAsync() > 0; + + } } } diff --git a/BPA.SAAS.Manage.Application/Org/Services/UserService.cs b/BPA.SAAS.Manage.Application/Org/Services/UserService.cs index 4243ccd..7995d28 100644 --- a/BPA.SAAS.Manage.Application/Org/Services/UserService.cs +++ b/BPA.SAAS.Manage.Application/Org/Services/UserService.cs @@ -21,14 +21,11 @@ namespace BPA.SAAS.Manage.Application.Org.Services public async Task AddUser(UserDtoInput input) { var user = input.Adapt(); - user.Id= Guid.NewGuid().ToString(); user.Password = MD5Encryption.Encrypt("123456").ToLower(); - user.CreateAt=DateTime.Now; - user.CreateBy = App.User?.FindFirst(ClaimConst.CLAINM_USERID)?.Value; var check = _db.Queryable().First(t => t.Account == user.Account); if (check != null) return false; - return await _db.Insertable(user).ExecuteCommandAsync()> 0; + return await _db.Insertable(user).CallEntityMethod(t => t.Create()).ExecuteCommandAsync()> 0; } } } diff --git a/BPA.SAAS.Manage.Application/System/Services/DictDataService.cs b/BPA.SAAS.Manage.Application/System/Services/DictDataService.cs index ad42838..6f774c5 100644 --- a/BPA.SAAS.Manage.Application/System/Services/DictDataService.cs +++ b/BPA.SAAS.Manage.Application/System/Services/DictDataService.cs @@ -105,7 +105,7 @@ namespace BPA.SAAS.Manage.Application Code = dto.Code, Remark = dto.Remark, }; - var res =await _db.Insertable(dictData).ExecuteCommandAsync(); + var res =await _db.Insertable(dictData).CallEntityMethod(t => t.Create()).ExecuteCommandAsync(); _db.Ado.CommitTran(); return res>0; } diff --git a/BPA.SAAS.Manage.Application/System/Services/DictTypeService.cs b/BPA.SAAS.Manage.Application/System/Services/DictTypeService.cs index 6578583..5a2441d 100644 --- a/BPA.SAAS.Manage.Application/System/Services/DictTypeService.cs +++ b/BPA.SAAS.Manage.Application/System/Services/DictTypeService.cs @@ -85,14 +85,11 @@ namespace BPA.SAAS.Manage.Application.System.Services _db.Ado.BeginTran(); var dictType = new BPA_DictType { - Id = Guid.NewGuid().ToString(), Code = dto.Code, Name = dto.Name, - Remark = dto.Remark, - CreateAt = DateTime.Now, - CreateBy = App.User?.FindFirst(ClaimConst.CLAINM_USERID)?.Value + Remark = dto.Remark }; - var res =await _db.Insertable(dictType).ExecuteCommandAsync(); + var res =await _db.Insertable(dictType).CallEntityMethod(t => t.Create()).ExecuteCommandAsync(); _db.Ado.CommitTran(); return true; } diff --git a/BPA.SAAS.Manage.Application/System/Services/MenuService.cs b/BPA.SAAS.Manage.Application/System/Services/MenuService.cs index 8bc5cb6..43c0183 100644 --- a/BPA.SAAS.Manage.Application/System/Services/MenuService.cs +++ b/BPA.SAAS.Manage.Application/System/Services/MenuService.cs @@ -85,10 +85,7 @@ namespace BPA.SAAS.Manage.Application.System.Services public async Task Add(MenuDtoInput input) { var menu = input.Adapt(); - menu.Id= Guid.NewGuid().ToString(); - menu.CreateAt= DateTime.Now; - menu.CreateBy= App.User?.FindFirst(ClaimConst.CLAINM_USERID)?.Value; - return await _db.Insertable(menu).ExecuteCommandAsync()> 0; + return await _db.Insertable(menu).CallEntityMethod(t => t.Create()).ExecuteCommandAsync()> 0; } /// @@ -98,9 +95,16 @@ namespace BPA.SAAS.Manage.Application.System.Services /// public async Task Update(MenuDtoInput input) { - var menu = input.Adapt(); - menu.CreateAt = DateTime.Now; - menu.CreateBy = App.User?.FindFirst(ClaimConst.CLAINM_USERID)?.Value; + var menu = await _db.Queryable< BPA_Menu >().Where(x=>x.Id== input.Id).FirstAsync(); + //menu = input.Adapt(); + menu.Code = input.Code; + menu.Component = input.Component; + menu.Name= input.Name; + menu.Pid= input.Pid; + menu.Router = input.Router; + menu.Remark= input.Remark; + menu.Sort = input.Sort; + menu.Icon = input.Icon; return await _db.Updateable(menu).ExecuteCommandAsync()>0; } diff --git a/BPA.SAAS.Manage.Core/Base/IBaseEntity.cs b/BPA.SAAS.Manage.Core/Base/IBaseEntity.cs index 2c78c01..601df7d 100644 --- a/BPA.SAAS.Manage.Core/Base/IBaseEntity.cs +++ b/BPA.SAAS.Manage.Core/Base/IBaseEntity.cs @@ -1,4 +1,6 @@ -using SqlSugar; +using BPA.SAAS.Manage.Comm.Const; +using Furion; +using SqlSugar; using System; using System.Collections.Generic; using System.Linq; @@ -20,5 +22,24 @@ namespace BPA.SAAS.Manage.Core.Base /// 是否删除 /// public int IsDeleted { get; set; } = 0; + /// + /// 新增 + /// + public virtual void Create() + { + var userId = App.User?.FindFirst(ClaimConst.CLAINM_USERID)?.Value; + this.Id = Guid.NewGuid().ToString(); + this.CreateAt = DateTime.Now; + if (!string.IsNullOrEmpty(userId)) + { + this.CreateBy = userId; + } + else + { + + this.CreateBy = "admin"; + } + } + } } diff --git a/BPA.SAAS.Manage.Core/Org/BPA_Organize.cs b/BPA.SAAS.Manage.Core/Org/BPA_Organize.cs index 7192951..d11609e 100644 --- a/BPA.SAAS.Manage.Core/Org/BPA_Organize.cs +++ b/BPA.SAAS.Manage.Core/Org/BPA_Organize.cs @@ -26,7 +26,7 @@ namespace BPA.SAAS.Manage.Core.Org /// /// 类型 默认 机构 /// - public string Type { get; set; } + public int Type { get; set; } /// /// 上级ID集合 /// @@ -36,13 +36,9 @@ namespace BPA.SAAS.Manage.Core.Org /// public string Remark { get; set; } /// - /// 店铺地址 + /// 电话 /// - public string Store_Addr { get; set; } - /// - /// 店铺坐标 - /// - public string Store_Loc { get; set; } + public string Tel { get; set; } /// /// AutoKey 唯一值 /// @@ -55,5 +51,6 @@ namespace BPA.SAAS.Manage.Core.Org /// 加盟商id /// public string GroupId { get; set; } + public int Sort { get; set; } } } diff --git a/BPA.SAAS.Manage.Core/Org/BPA_Roles.cs b/BPA.SAAS.Manage.Core/Org/BPA_Roles.cs index 787e551..2001446 100644 --- a/BPA.SAAS.Manage.Core/Org/BPA_Roles.cs +++ b/BPA.SAAS.Manage.Core/Org/BPA_Roles.cs @@ -11,7 +11,7 @@ namespace BPA.SAAS.Manage.Core.Org /// /// 角色 /// - [SugarTable("bpa_role")] + [SugarTable("bpa_roles")] public class BPA_Roles:IBaseEntity { /// @@ -25,7 +25,7 @@ namespace BPA.SAAS.Manage.Core.Org /// /// 排序 /// - public string Sort { get; set; } + public int Sort { get; set; } /// /// 备注 /// @@ -33,7 +33,7 @@ namespace BPA.SAAS.Manage.Core.Org /// /// 角色类型-集团角色_0、加盟商角色_1、门店角色_2 /// - public string RoleType { get; set; } + public int RoleType { get; set; } /// /// 加盟商id ///