diff --git a/ZR.Admin.WebApi/Controllers/System/SysMenuController.cs b/ZR.Admin.WebApi/Controllers/System/SysMenuController.cs index 13fa174..48f8063 100644 --- a/ZR.Admin.WebApi/Controllers/System/SysMenuController.cs +++ b/ZR.Admin.WebApi/Controllers/System/SysMenuController.cs @@ -21,13 +21,16 @@ namespace ZR.Admin.WebApi.Controllers.System { private readonly ISysRoleService sysRoleService; private readonly ISysMenuService sysMenuService; + private readonly ISysRoleMenuService sysRoleMenuService; public SysMenuController( ISysRoleService sysRoleService, - ISysMenuService sysMenuService) + ISysMenuService sysMenuService, + ISysRoleMenuService sysRoleMenuService) { this.sysRoleService = sysRoleService; this.sysMenuService = sysMenuService; + this.sysRoleMenuService = sysRoleMenuService; } /// @@ -63,7 +66,8 @@ namespace ZR.Admin.WebApi.Controllers.System [ActionPermissionFilter(Permission = "system:menu:query")] public IActionResult GetMenuList(int menuId = 0) { - return SUCCESS(sysMenuService.GetMenusByMenuId(menuId), "yyyy-MM-dd HH:mm:ss"); + long userId = HttpContext.GetUId(); + return SUCCESS(sysMenuService.GetMenusByMenuId(menuId, userId), "yyyy-MM-dd HH:mm:ss"); } /// @@ -166,7 +170,7 @@ namespace ZR.Admin.WebApi.Controllers.System { return ToResponse(ResultCode.CUSTOM_ERROR, "存在子菜单,不允许删除"); } - if (sysMenuService.CheckMenuExistRole(menuId)) + if (sysRoleMenuService.CheckMenuExistRole(menuId)) { return ToResponse(ResultCode.CUSTOM_ERROR, "菜单已分配,不允许删除"); } diff --git a/ZR.Repository/BaseRepository.cs b/ZR.Repository/BaseRepository.cs index 84ca0f7..13decfa 100644 --- a/ZR.Repository/BaseRepository.cs +++ b/ZR.Repository/BaseRepository.cs @@ -63,18 +63,34 @@ namespace ZR.Repository { return Context.Updateable(entity); } + + /// + /// 实体根据主键更新 + /// + /// + /// + /// public int Update(T entity, bool ignoreNullColumns = false) { return Context.Updateable(entity).IgnoreColumns(ignoreNullColumns).ExecuteCommand(); } + /// + /// 实体根据主键更新指定字段 + /// return Update(user, t => new { t.NickName, }, true); + /// + /// + /// + /// + /// public int Update(T entity, Expression> expression, bool ignoreAllNull = false) { return Context.Updateable(entity).UpdateColumns(expression).IgnoreColumns(ignoreAllNull).ExecuteCommand(); } /// - /// 根据实体类更新指定列 eg:Update(dept, it => new { it.Status }, f => depts.Contains(f.DeptId));只更新Status列,条件是包含 + /// 根据指定条件更新指定列 eg:Update(new SysUser(){ }, it => new { it.Status }, f => f.Userid == 1)); + /// 只更新Status列,条件是包含 /// /// /// diff --git a/ZR.Repository/System/SysRoleRepository.cs b/ZR.Repository/System/SysRoleRepository.cs deleted file mode 100644 index 8d06189..0000000 --- a/ZR.Repository/System/SysRoleRepository.cs +++ /dev/null @@ -1,211 +0,0 @@ -using Infrastructure.Attribute; -using Infrastructure.Model; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using ZR.Model; -using ZR.Model.System; - -namespace ZR.Repository.System -{ - /// - /// 角色操作类 - /// - [AppService(ServiceLifetime = LifeTime.Transient)] - public class SysRoleRepository : BaseRepository - { - /// - /// 查询所有角色数据 - /// - /// - public List SelectRoleList() - { - return Context.Queryable() - .Where(role => role.DelFlag == "0") - .OrderBy(role => role.RoleSort) - .ToList(); - } - /// - /// 根据条件分页查询角色数据 - /// - /// - /// - /// - public PagedInfo SelectRoleList(SysRole sysRole, PagerInfo pager) - { - var exp = Expressionable.Create(); - exp.And(role => role.DelFlag == "0"); - exp.AndIF(!string.IsNullOrEmpty(sysRole.RoleName), role => role.RoleName.Contains(sysRole.RoleName)); - exp.AndIF(!string.IsNullOrEmpty(sysRole.Status), role => role.Status == sysRole.Status); - exp.AndIF(!string.IsNullOrEmpty(sysRole.RoleKey), role => role.RoleKey == sysRole.RoleKey); - - var query = Context.Queryable() - .Where(exp.ToExpression()) - .OrderBy(x => x.RoleSort) - .Select((role) => new SysRole - { - RoleId = role.RoleId.SelectAll(), - UserNum = SqlFunc.Subqueryable().Where(f => f.RoleId == role.RoleId).Count() - }); - - return query.ToPage(pager); - } - - /// - /// 根据用户查询 - /// - /// - /// - public List SelectRolePermissionByUserId(long userId) - { - return Context.Queryable() - .Where(role => role.DelFlag == "0") - .Where(it => SqlFunc.Subqueryable().Where(s => s.UserId == userId).Any()) - .OrderBy(role => role.RoleSort) - .ToList(); - } - - /// - /// 通过角色ID查询角色 - /// - /// 角色编号 - /// - public SysRole SelectRoleById(long roleId) - { - return GetId(roleId); - } - - /// - /// 通过角色ID删除角色 - /// - /// - /// - public int DeleteRoleByRoleIds(long[] roleId) - { - return Delete(roleId); - } - - /// - /// 获取用户所有角色信息 - /// - /// - /// - public List SelectUserRoleListByUserId(long userId) - { - return Context.Queryable((ur, r) => new JoinQueryInfos( - JoinType.Left, ur.RoleId == r.RoleId - )).Where((ur, r) => ur.UserId == userId) - .Select((ur, r) => r).ToList(); - } - - #region 用户角色对应菜单 用户N-1角色 - - /// - /// 根据角色获取菜单id - /// - /// - /// - public List SelectRoleMenuByRoleId(long roleId) - { - return Context.Queryable().Where(it => it.Role_id == roleId).ToList(); - } - - /// - /// 根据用户所有角色获取菜单 - /// - /// - /// - public List SelectRoleMenuByRoleIds(long[] roleIds) - { - return Context.Queryable().Where(it => roleIds.Contains(it.Role_id)).ToList(); - } - - /// - /// 批量插入用户菜单 - /// - /// - /// - public int AddRoleMenu(List sysRoleMenus) - { - return Context.Insertable(sysRoleMenus).ExecuteCommand(); - } - - /// - /// 删除角色与菜单关联 - /// - /// - /// - public int DeleteRoleMenuByRoleId(long roleId) - { - return Context.Deleteable().Where(it => it.Role_id == roleId).ExecuteCommand(); - } - - #endregion - - /// - /// 添加角色 - /// - /// - /// - public long InsertRole(SysRole sysRole) - { - sysRole.Create_time = DateTime.Now; - return InsertReturnBigIdentity(sysRole); - } - - /// - /// 修改用户角色 - /// - /// - /// - public int UpdateSysRole(SysRole sysRole) - { - var db = Context; - sysRole.Update_time = db.GetDate(); - - return db.Updateable() - .SetColumns(it => it.Update_time == sysRole.Update_time) - .SetColumns(it => it.DataScope == sysRole.DataScope) - .SetColumns(it => it.Remark == sysRole.Remark) - .SetColumns(it => it.Update_by == sysRole.Update_by) - //.SetColumns(it => it.MenuCheckStrictly == sysRole.MenuCheckStrictly) - .SetColumns(it => it.DeptCheckStrictly == sysRole.DeptCheckStrictly) - .SetColumnsIF(!string.IsNullOrEmpty(sysRole.RoleName), it => it.RoleName == sysRole.RoleName) - .SetColumnsIF(!string.IsNullOrEmpty(sysRole.RoleKey), it => it.RoleKey == sysRole.RoleKey) - .SetColumnsIF(sysRole.RoleSort >= 0, it => it.RoleSort == sysRole.RoleSort) - .Where(it => it.RoleId == sysRole.RoleId) - .ExecuteCommand(); - } - - /// - /// 更改角色权限状态 - /// - /// - /// - public int UpdateRoleStatus(SysRole role) - { - return Context.Updateable(role).UpdateColumns(t => new { t.Status }).ExecuteCommand(); - } - - /// - /// 检查角色权限是否存在 - /// - /// 角色权限 - /// - public SysRole CheckRoleKeyUnique(string roleKey) - { - return GetFirst(it => it.RoleKey == roleKey); - } - - /// - /// 校验角色名称是否唯一 - /// - /// 角色名称 - /// - public SysRole CheckRoleNameUnique(string roleName) - { - return GetFirst(it => it.RoleName == roleName); - } - } -} diff --git a/ZR.Repository/System/SysUserRepository.cs b/ZR.Repository/System/SysUserRepository.cs deleted file mode 100644 index f7b8917..0000000 --- a/ZR.Repository/System/SysUserRepository.cs +++ /dev/null @@ -1,189 +0,0 @@ -using Infrastructure.Attribute; -using Infrastructure.Extensions; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using ZR.Model; -using ZR.Model.System; -using ZR.Model.System.Dto; - -namespace ZR.Repository.System -{ - /// - /// 用户管理 - /// - [AppService(ServiceLifetime = LifeTime.Transient)] - public class SysUserRepository : BaseRepository - { - /// - /// 根据条件分页查询用户列表 - /// - /// - /// - /// - public PagedInfo SelectUserList(SysUser user, PagerInfo pager) - { - var exp = Expressionable.Create(); - exp.AndIF(!string.IsNullOrEmpty(user.UserName), u => u.UserName.Contains(user.UserName)); - exp.AndIF(!string.IsNullOrEmpty(user.Status), u => u.Status == user.Status); - exp.AndIF(user.BeginTime != DateTime.MinValue && user.BeginTime != null, u => u.Create_time >= user.BeginTime); - exp.AndIF(user.EndTime != DateTime.MinValue && user.EndTime != null, u => u.Create_time <= user.EndTime); - exp.AndIF(!user.Phonenumber.IsEmpty(), u => u.Phonenumber == user.Phonenumber); - exp.And(u => u.DelFlag == "0"); - - if (user.DeptId != 0) - { - List depts = Context.Queryable().ToList(); - - var newDepts = depts.FindAll(delegate (SysDept dept) - { - string[] parentDeptId = dept.Ancestors.Split(",", StringSplitOptions.RemoveEmptyEntries); - return parentDeptId.Contains(user.DeptId.ToString()); - }); - string[] deptArr = newDepts.Select(x => x.DeptId.ToString()).ToArray(); - exp.AndIF(user.DeptId != 0, u => u.DeptId == user.DeptId || deptArr.Contains(u.DeptId.ToString())); - } - var query = Context.Queryable() - .LeftJoin((u, dept) => u.DeptId == dept.DeptId) - .Where(exp.ToExpression()) - .Select((u, dept) => new SysUser - { - UserId = u.UserId.SelectAll(), - DeptName = dept.DeptName, - }); - - return query.ToPage(pager); - } - - /// - /// 通过用户ID查询用户 - /// - /// - /// - public SysUser SelectUserById(long userId) - { - return Context.Queryable().Filter(null, true).Where(f => f.UserId == userId).First(); - } - - /// - /// 校验用户名是否存在 - /// - /// - /// - public int CheckUserNameUnique(string userName) - { - return Context.Queryable().Where(it => it.UserName == userName).Count(); - } - - /// - /// 添加用户 - /// - /// - /// - public int AddUser(SysUser sysUser) - { - sysUser.Create_time = DateTime.Now; - return Context.Insertable(sysUser).ExecuteReturnIdentity(); - } - - /// - /// 重置密码 - /// - /// - /// - /// - public int ResetPwd(long userid, string password) - { - return Context.Updateable(new SysUser() { UserId = userid, Password = password }) - .UpdateColumns(it => new { it.Password }).ExecuteCommand(); - } - - /// - /// 改变用户状态 - /// - /// - /// - public int ChangeUserStatus(SysUser user) - { - return Context.Updateable(user).UpdateColumns(t => new { t.Status }) - .ExecuteCommand(); - } - - /// - /// 删除用户(软删除) - /// - /// 用户id - /// - public int DeleteUser(long userid) - { - return Context.Updateable(new SysUser() { UserId = userid, DelFlag = "2" }) - .UpdateColumns(t => t.DelFlag) - .ExecuteCommand(); - } - - /// - /// 修改用户信息 - /// - /// - /// - public int UpdateUser(SysUser user) - { - return Context.Updateable(user) - .UpdateColumns(t => new - { - t.NickName, - t.Email, - t.Phonenumber, - t.DeptId, - t.Status, - t.Sex, - t.PostIds, - t.Remark, - t.Update_by, - t.Update_time - }) - .IgnoreColumns(ignoreAllNullColumns: true)//忽略所有为null - .Where(f => f.UserId == user.UserId).ExecuteCommand(); - } - - /// - /// 修改用户头像 - /// - /// - /// - public int UpdatePhoto(SysUser user) - { - return Context.Updateable() - .SetColumns(t => new SysUser() - { - Avatar = user.Avatar - }) - .Where(f => f.UserId == user.UserId).ExecuteCommand(); - } - - /// - /// 登录 - /// - /// 登录实体 - /// - public SysUser Login(LoginBodyDto user) - { - return GetFirst(it => it.UserName == user.Username && it.Password == user.Password); - } - - /// - /// 修改登录信息 - /// - /// - /// - /// - public void UpdateLoginInfo(LoginBodyDto user, long userId) - { - var db = Context; - db.Updateable(new SysUser() { LoginIP = user.LoginIP, LoginDate = db.GetDate(), UserId = userId }) - .UpdateColumns(it => new { it.LoginIP, it.LoginDate }) - .ExecuteCommand(); - } - } -} diff --git a/ZR.Repository/System/SysUserRoleRepository.cs b/ZR.Repository/System/SysUserRoleRepository.cs deleted file mode 100644 index 21f0b1e..0000000 --- a/ZR.Repository/System/SysUserRoleRepository.cs +++ /dev/null @@ -1,72 +0,0 @@ -using Infrastructure.Attribute; -using Infrastructure.Extensions; -using SqlSugar; -using System.Collections.Generic; -using ZR.Model; -using ZR.Model.System; -using ZR.Model.System.Dto; - -namespace ZR.Repository.System -{ - [AppService(ServiceLifetime = LifeTime.Transient)] - public class SysUserRoleRepository : BaseRepository - { - /// - /// 批量删除角色对应用户 - /// - /// 角色id - /// 用户id集合 - /// - public int DeleteRoleUserByUserIds(long roleId, List userIds) - { - return Context.Deleteable().Where(it => it.RoleId == roleId && userIds.Contains(it.UserId)) - .ExecuteCommand(); - } - - /// - /// 获取用户数据根据角色id - /// - /// - /// - public List GetSysUsersByRoleId(long roleId) - { - return Context.Queryable((t1, u) => new JoinQueryInfos( - JoinType.Left, t1.UserId == u.UserId)) - .Where((t1, u) => t1.RoleId == roleId && u.DelFlag == "0") - .Select((t1, u) => u) - .ToList(); - } - - /// - /// 获取用户数据根据角色id - /// - /// - /// - public PagedInfo GetSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto) - { - var query = Context.Queryable((t1, u) => new JoinQueryInfos( - JoinType.Left, t1.UserId == u.UserId)) - .Where((t1, u) => t1.RoleId == roleUserQueryDto.RoleId && u.DelFlag == "0"); - if (!string.IsNullOrEmpty(roleUserQueryDto.UserName)) - { - query = query.Where((t1, u) => u.UserName.Contains(roleUserQueryDto.UserName)); - } - return query.Select((t1, u) => u).ToPage(roleUserQueryDto); - } - - /// - /// 获取尚未指派的用户数据根据角色id - /// - /// - /// - public PagedInfo GetExcludedSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto) - { - var query = Context.Queryable() - .Where(it => it.DelFlag == "0") - .Where(it => SqlFunc.Subqueryable().Where(s => s.UserId == it.UserId && s.RoleId == roleUserQueryDto.RoleId).NotAny()) - .WhereIF(roleUserQueryDto.UserName.IsNotEmpty(), it => it.UserName.Contains(roleUserQueryDto.UserName)); - - return query.ToPage(roleUserQueryDto); - } - } -} diff --git a/ZR.Service/System/ArticleService.cs b/ZR.Service/System/ArticleService.cs index 695676a..7948e3b 100644 --- a/ZR.Service/System/ArticleService.cs +++ b/ZR.Service/System/ArticleService.cs @@ -1,7 +1,5 @@ using Infrastructure.Attribute; -using SqlSugar; using ZR.Model.System; -using ZR.Repository.System; using ZR.Service.System.IService; namespace ZR.Service.System diff --git a/ZR.Service/System/IService/ISysMenuService.cs b/ZR.Service/System/IService/ISysMenuService.cs index 8d34d69..9f31a12 100644 --- a/ZR.Service/System/IService/ISysMenuService.cs +++ b/ZR.Service/System/IService/ISysMenuService.cs @@ -5,7 +5,7 @@ using ZR.Model.System.Vo; namespace ZR.Service.System.IService { - public interface ISysMenuService + public interface ISysMenuService : IBaseService { //List SelectMenuList(long userId); @@ -13,7 +13,7 @@ namespace ZR.Service.System.IService List SelectTreeMenuList(MenuQueryDto menu, long userId); SysMenu GetMenuByMenuId(int menuId); - List GetMenusByMenuId(int menuId); + List GetMenusByMenuId(int menuId, long userId); int AddMenu(SysMenu menu); int EditMenu(SysMenu menu); @@ -28,14 +28,49 @@ namespace ZR.Service.System.IService List SelectMenuTreeByUserId(long userId); - List SelectMenuPermsListByUserId(long userId); + //List SelectMenuPermsListByUserId(long userId); List SelectMenuPermsByUserId(long userId); - bool CheckMenuExistRole(long menuId); + //bool CheckMenuExistRole(long menuId); List BuildMenus(List menus); List BuildMenuTreeSelect(List menus); } + + /// + /// 角色菜单 + /// + public interface ISysRoleMenuService : IBaseService + { + bool CheckMenuExistRole(long menuId); + /// + /// 根据角色获取菜单id + /// + /// + /// + List SelectRoleMenuByRoleId(long roleId); + + /// + /// 根据用户所有角色获取菜单 + /// + /// + /// + List SelectRoleMenuByRoleIds(long[] roleIds); + + /// + /// 批量插入用户菜单 + /// + /// + /// + int AddRoleMenu(List sysRoleMenus); + + /// + /// 删除角色与菜单关联 + /// + /// + /// + int DeleteRoleMenuByRoleId(long roleId); + } } diff --git a/ZR.Service/System/IService/ISysRoleService.cs b/ZR.Service/System/IService/ISysRoleService.cs index a0dd959..cff824d 100644 --- a/ZR.Service/System/IService/ISysRoleService.cs +++ b/ZR.Service/System/IService/ISysRoleService.cs @@ -137,5 +137,7 @@ namespace ZR.Service.System.IService /// 角色信息 /// public int UpdateRole(SysRole sysRole); + + int UpdateSysRole(SysRole sysRole); } } diff --git a/ZR.Service/System/IService/ISysUserService.cs b/ZR.Service/System/IService/ISysUserService.cs index 8f2997b..1c04ddf 100644 --- a/ZR.Service/System/IService/ISysUserService.cs +++ b/ZR.Service/System/IService/ISysUserService.cs @@ -1,4 +1,5 @@ -using ZR.Model; +using System.Collections.Generic; +using ZR.Model; using ZR.Model.System; using ZR.Model.System.Dto; @@ -70,5 +71,16 @@ namespace ZR.Service.System.IService SysUser Register(RegisterDto dto); void CheckUserAllowed(SysUser user); void CheckUserDataScope(long userid, long loginUserId); + + /// + /// 导入 + /// + /// + /// + string ImportUsers(List users); + + SysUser Login(LoginBodyDto user); + + void UpdateLoginInfo(LoginBodyDto user, long userId); } } diff --git a/ZR.Service/System/SysLoginService.cs b/ZR.Service/System/SysLoginService.cs index f4b573a..8048726 100644 --- a/ZR.Service/System/SysLoginService.cs +++ b/ZR.Service/System/SysLoginService.cs @@ -7,7 +7,6 @@ using ZR.Model; using ZR.Model.System; using ZR.Model.System.Dto; using ZR.Repository; -using ZR.Repository.System; using ZR.Service.System.IService; namespace ZR.Service.System @@ -18,11 +17,11 @@ namespace ZR.Service.System [AppService(ServiceType = typeof(ISysLoginService), ServiceLifetime = LifeTime.Transient)] public class SysLoginService: BaseService, ISysLoginService { - private readonly SysUserRepository SysUserRepository; + private readonly ISysUserService SysUserService; - public SysLoginService(SysUserRepository sysUserRepository) + public SysLoginService(ISysUserService sysUserService) { - SysUserRepository = sysUserRepository; + SysUserService = sysUserService; } /// @@ -35,7 +34,7 @@ namespace ZR.Service.System //密码md5 loginBody.Password = NETCore.Encrypt.EncryptProvider.Md5(loginBody.Password); - SysUser user = SysUserRepository.Login(loginBody); + SysUser user = SysUserService.Login(loginBody); logininfor.UserName = loginBody.Username; logininfor.Status = "1"; logininfor.LoginTime = DateTime.Now; @@ -56,7 +55,7 @@ namespace ZR.Service.System logininfor.Status = "0"; logininfor.Msg = "登录成功"; AddLoginInfo(logininfor); - SysUserRepository.UpdateLoginInfo(loginBody, user.UserId); + SysUserService.UpdateLoginInfo(loginBody, user.UserId); return user; } diff --git a/ZR.Service/System/SysMenuService.cs b/ZR.Service/System/SysMenuService.cs index 475bfc9..68ede52 100644 --- a/ZR.Service/System/SysMenuService.cs +++ b/ZR.Service/System/SysMenuService.cs @@ -1,13 +1,14 @@ using Infrastructure.Attribute; +using Infrastructure.Extensions; +using SqlSugar; +using System; using System.Collections.Generic; using System.Linq; -using ZR.Model.System.Dto; -using ZR.Model.System; -using ZR.Model.System.Vo; -using ZR.Repository.System; -using ZR.Service.System.IService; using ZR.Common; -using Infrastructure.Extensions; +using ZR.Model.System; +using ZR.Model.System.Dto; +using ZR.Model.System.Vo; +using ZR.Service.System.IService; namespace ZR.Service { @@ -17,14 +18,10 @@ namespace ZR.Service [AppService(ServiceType = typeof(ISysMenuService), ServiceLifetime = LifeTime.Transient)] public class SysMenuService : BaseService, ISysMenuService { - public SysMenuRepository MenuRepository; public ISysRoleService SysRoleService; - public SysMenuService( - SysMenuRepository menuRepository, - ISysRoleService sysRoleService) + public SysMenuService(ISysRoleService sysRoleService) { - MenuRepository = menuRepository; SysRoleService = sysRoleService; } @@ -37,12 +34,12 @@ namespace ZR.Service List menuList; if (SysRoleService.IsAdmin(userId)) { - menuList = MenuRepository.SelectTreeMenuList(menu); + menuList = SelectTreeMenuList(menu); } else { var userRoles = SysRoleService.SelectUserRoles(userId); - menuList = MenuRepository.SelectTreeMenuListByRoles(menu, userRoles); + menuList = SelectTreeMenuListByRoles(menu, userRoles); } return menuList; } @@ -56,12 +53,12 @@ namespace ZR.Service List menuList; if (SysRoleService.IsAdmin(userId)) { - menuList = MenuRepository.SelectMenuList(menu); + menuList = SelectAllMenuList(menu); } else { var userRoles = SysRoleService.SelectUserRoles(userId); - menuList = MenuRepository.SelectMenuListByRoles(menu, userRoles); + menuList = SelectMenuListByRoles(menu, userRoles); } return menuList; } @@ -73,17 +70,29 @@ namespace ZR.Service /// public SysMenu GetMenuByMenuId(int menuId) { - return MenuRepository.SelectMenuById(menuId); + return GetFirst(it => it.MenuId == menuId); } /// /// 根据菜单id获取菜单列表 /// /// + /// /// - public List GetMenusByMenuId(int menuId) + public List GetMenusByMenuId(int menuId, long userId) { - var list = MenuRepository.GetList(f => f.ParentId == menuId).OrderBy(f => f.OrderNum).ToList(); + var menuExpression = Expressionable.Create(); + menuExpression.And(c => c.ParentId == menuId); + + if (!SysRoleService.IsAdmin(userId)) + { + var userRoles = SysRoleService.SelectUserRoles(userId); + var roleMenus = Context.Queryable() + .Where(r => userRoles.Contains(r.Role_id)).Select(s => s.Menu_id).ToList(); + + menuExpression.And(c => roleMenus.Contains(c.MenuId)); + } + var list = GetList(menuExpression.ToExpression()).OrderBy(f => f.OrderNum).ToList(); Context.ThenMapper(list, item => { item.SubNum = Context.Queryable().SetContext(x => x.ParentId, () => item.MenuId, item).Count; @@ -98,7 +107,8 @@ namespace ZR.Service /// public int AddMenu(SysMenu menu) { - return MenuRepository.AddMenu(menu); + menu.Create_time = DateTime.Now; + return InsertReturnIdentity(menu); } /// @@ -109,7 +119,7 @@ namespace ZR.Service public int EditMenu(SysMenu menu) { menu.Icon = string.IsNullOrEmpty(menu.Icon) ? "" : menu.Icon; - return MenuRepository.EditMenu(menu); + return Update(menu, false); } /// @@ -119,7 +129,7 @@ namespace ZR.Service /// public int DeleteMenuById(int menuId) { - return MenuRepository.DeleteMenuById(menuId); + return Delete(menuId); } /// @@ -130,7 +140,7 @@ namespace ZR.Service public string CheckMenuNameUnique(SysMenu menu) { long menuId = menu.MenuId == 0 ? -1 : menu.MenuId; - SysMenu info = MenuRepository.CheckMenuNameUnique(menu); + SysMenu info = GetFirst(it => it.MenuName == menu.MenuName && it.ParentId == menu.ParentId); //if (info != null && menuId != info.menuId && menu.menuName.Equals(info.menuName)) //{ @@ -146,11 +156,11 @@ namespace ZR.Service /// /// 菜单排序 /// - /// + /// /// public int ChangeSortMenu(MenuDto menuDto) { - return MenuRepository.ChangeSortMenu(menuDto); + return Update(new SysMenu() { MenuId = menuDto.MenuId, OrderNum = menuDto.OrderNum }, it => new { it.OrderNum }); } /// @@ -160,7 +170,7 @@ namespace ZR.Service /// public bool HasChildByMenuId(long menuId) { - return MenuRepository.HasChildByMenuId(menuId) > 0; + return Count(it => it.ParentId == menuId) > 0; } /// @@ -173,25 +183,15 @@ namespace ZR.Service MenuQueryDto dto = new() { Status = "0", MenuTypeIds = "M,C" }; if (SysRoleService.IsAdmin(userId)) { - return MenuRepository.SelectTreeMenuList(dto); + return SelectTreeMenuList(dto); } else { List roleIds = SysRoleService.SelectUserRoles(userId); - return MenuRepository.SelectTreeMenuListByRoles(dto, roleIds); + return SelectTreeMenuListByRoles(dto, roleIds); } } - /// - /// 查询菜单权限 - /// - /// - /// - public List SelectMenuPermsListByUserId(long userId) - { - return MenuRepository.SelectMenuPermsByUserId(userId); - } - /// /// 查询精确到按钮的操作权限 /// @@ -199,25 +199,96 @@ namespace ZR.Service /// public List SelectMenuPermsByUserId(long userId) { - var menuList = SelectMenuPermsListByUserId(userId).Where(f => !string.IsNullOrEmpty(f.Perms)); + var menus = Context.Queryable((m, rm, ur, r) => new JoinQueryInfos( + JoinType.Left, m.MenuId == rm.Menu_id, + JoinType.Left, rm.Role_id == ur.RoleId, + JoinType.Left, ur.RoleId == r.RoleId + )) + .Where((m, rm, ur, r) => m.Status == "0" && r.Status == "0" && ur.UserId == userId) + .Select((m, rm, ur, r) => m).ToList(); + var menuList = menus.Where(f => !string.IsNullOrEmpty(f.Perms)); return menuList.Select(x => x.Perms).Distinct().ToList(); } - #region RoleMenu - /// - /// 查询菜单使用数量 + /// 根据用户查询系统菜单列表 /// - /// + /// + /// 用户角色集合 /// - public bool CheckMenuExistRole(long menuId) + private List SelectTreeMenuListByRoles(MenuQueryDto menu, List roles) { - return MenuRepository.CheckMenuExistRole(menuId) > 0; + var roleMenus = Context.Queryable() + .Where(r => roles.Contains(r.Role_id)) + .Select(f => f.Menu_id).Distinct().ToList(); + + return Queryable() + .Where(c => roleMenus.Contains(c.MenuId)) + .WhereIF(!string.IsNullOrEmpty(menu.MenuName), (c) => c.MenuName.Contains(menu.MenuName)) + .WhereIF(!string.IsNullOrEmpty(menu.Visible), (c) => c.Visible == menu.Visible) + .WhereIF(!string.IsNullOrEmpty(menu.Status), (c) => c.Status == menu.Status) + .WhereIF(!string.IsNullOrEmpty(menu.MenuTypeIds), c => menu.MenuTypeIdArr.Contains(c.MenuType)) + .OrderBy((c) => new { c.ParentId, c.OrderNum }) + .Select(c => c) + .ToTree(it => it.Children, it => it.ParentId, 0); } - #endregion + /// + /// 获取所有菜单 + /// + /// + private List SelectAllMenuList(MenuQueryDto menu) + { + return Queryable() + .WhereIF(!string.IsNullOrEmpty(menu.MenuName), it => it.MenuName.Contains(menu.MenuName)) + .WhereIF(!string.IsNullOrEmpty(menu.Visible), it => it.Visible == menu.Visible) + .WhereIF(!string.IsNullOrEmpty(menu.Status), it => it.Status == menu.Status) + .WhereIF(menu.ParentId != null, it => it.ParentId == menu.ParentId) + .OrderBy(it => new { it.ParentId, it.OrderNum }) + .ToList(); + } + /// + /// 根据用户查询系统菜单列表 + /// + /// + /// 用户角色集合 + /// + private List SelectMenuListByRoles(MenuQueryDto sysMenu, List roles) + { + var roleMenus = Context.Queryable() + .Where(r => roles.Contains(r.Role_id)); + + return Queryable() + .InnerJoin(roleMenus, (c, j) => c.MenuId == j.Menu_id) + .Where((c, j) => c.Status == "0") + .WhereIF(!string.IsNullOrEmpty(sysMenu.MenuName), (c, j) => c.MenuName.Contains(sysMenu.MenuName)) + .WhereIF(!string.IsNullOrEmpty(sysMenu.Visible), (c, j) => c.Visible == sysMenu.Visible) + .OrderBy((c, j) => new { c.ParentId, c.OrderNum }) + .Select(c => c) + .ToList(); + } + + /// + /// 获取所有菜单(菜单管理) + /// + /// + public List SelectTreeMenuList(MenuQueryDto menu) + { + int parentId = menu.ParentId != null ? (int)menu.ParentId : 0; + + var list = Queryable() + .WhereIF(!string.IsNullOrEmpty(menu.MenuName), it => it.MenuName.Contains(menu.MenuName)) + .WhereIF(!string.IsNullOrEmpty(menu.Visible), it => it.Visible == menu.Visible) + .WhereIF(!string.IsNullOrEmpty(menu.Status), it => it.Status == menu.Status) + .WhereIF(!string.IsNullOrEmpty(menu.MenuTypeIds), it => menu.MenuTypeIdArr.Contains(it.MenuType)) + .WhereIF(menu.ParentId != null, it => it.ParentId == menu.ParentId) + .OrderBy(it => new { it.ParentId, it.OrderNum }) + .ToTree(it => it.Children, it => it.ParentId, parentId); + + return list; + } #region 方法 ///// diff --git a/ZR.Service/System/SysRoleMenuService.cs b/ZR.Service/System/SysRoleMenuService.cs new file mode 100644 index 0000000..7327937 --- /dev/null +++ b/ZR.Service/System/SysRoleMenuService.cs @@ -0,0 +1,50 @@ +using Infrastructure.Attribute; +using System.Collections.Generic; +using System.Linq; +using ZR.Model.System; +using ZR.Service.System.IService; + +namespace ZR.Service.System +{ + /// + /// 角色菜单 + /// + [AppService(ServiceType = typeof(ISysRoleMenuService), ServiceLifetime = LifeTime.Transient)] + public class SysRoleMenuService : BaseService, ISysRoleMenuService + { + public int AddRoleMenu(List sysRoleMenus) + { + return Insert(sysRoleMenus); + } + + public bool CheckMenuExistRole(long menuId) + { + return Count(it => it.Menu_id == menuId) > 0; + } + + public int DeleteRoleMenuByRoleId(long roleId) + { + return Delete(roleId); + } + + /// + /// 根据角色获取菜单id + /// + /// + /// + public List SelectRoleMenuByRoleId(long roleId) + { + return GetList(f => f.Role_id == roleId); + } + + /// + /// 根据用户所有角色获取菜单 + /// + /// + /// + public List SelectRoleMenuByRoleIds(long[] roleIds) + { + return GetList(it => roleIds.Contains(it.Role_id)); + } + } +} diff --git a/ZR.Service/System/SysRoleService.cs b/ZR.Service/System/SysRoleService.cs index f99787c..fd7e756 100644 --- a/ZR.Service/System/SysRoleService.cs +++ b/ZR.Service/System/SysRoleService.cs @@ -1,14 +1,13 @@ using Infrastructure; using Infrastructure.Attribute; -using Infrastructure.Model; +using SqlSugar; using System; using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Text; using ZR.Model; using ZR.Model.System; -using ZR.Repository.System; +using ZR.Repository; using ZR.Service.System.IService; namespace ZR.Service @@ -19,29 +18,43 @@ namespace ZR.Service [AppService(ServiceType = typeof(ISysRoleService), ServiceLifetime = LifeTime.Transient)] public class SysRoleService : BaseService, ISysRoleService { - private SysRoleRepository SysRoleRepository; private ISysUserRoleService SysUserRoleService; private ISysDeptService DeptService; - + private ISysRoleMenuService RoleMenuService; public SysRoleService( - SysRoleRepository sysRoleRepository, ISysUserRoleService sysUserRoleService, - ISysDeptService deptService) + ISysDeptService deptService, + ISysRoleMenuService roleMenuService) { - SysRoleRepository = sysRoleRepository; SysUserRoleService = sysUserRoleService; DeptService = deptService; + RoleMenuService = roleMenuService; } /// /// 根据条件分页查询角色数据 /// - /// 角色信息 + /// 角色信息 /// 分页信息 /// 角色数据集合信息 - public PagedInfo SelectRoleList(SysRole role, PagerInfo pager) + public PagedInfo SelectRoleList(SysRole sysRole, PagerInfo pager) { - return SysRoleRepository.SelectRoleList(role, pager); + var exp = Expressionable.Create(); + exp.And(role => role.DelFlag == "0"); + exp.AndIF(!string.IsNullOrEmpty(sysRole.RoleName), role => role.RoleName.Contains(sysRole.RoleName)); + exp.AndIF(!string.IsNullOrEmpty(sysRole.Status), role => role.Status == sysRole.Status); + exp.AndIF(!string.IsNullOrEmpty(sysRole.RoleKey), role => role.RoleKey == sysRole.RoleKey); + + var query = Context.Queryable() + .Where(exp.ToExpression()) + .OrderBy(x => x.RoleSort) + .Select((role) => new SysRole + { + RoleId = role.RoleId.SelectAll(), + UserNum = SqlFunc.Subqueryable().Where(f => f.RoleId == role.RoleId).Count() + }); + + return query.ToPage(pager); } /// @@ -50,7 +63,10 @@ namespace ZR.Service /// public List SelectRoleAll() { - return SysRoleRepository.SelectRoleList(); + return Queryable() + .Where(role => role.DelFlag == "0") + .OrderBy(role => role.RoleSort) + .ToList(); } /// @@ -60,7 +76,11 @@ namespace ZR.Service /// public List SelectRolePermissionByUserId(long userId) { - return SysRoleRepository.SelectRolePermissionByUserId(userId); + return Queryable() + .Where(role => role.DelFlag == "0") + .Where(it => SqlFunc.Subqueryable().Where(s => s.UserId == userId).Any()) + .OrderBy(role => role.RoleSort) + .ToList(); } /// @@ -70,7 +90,7 @@ namespace ZR.Service /// 角色对象信息 public SysRole SelectRoleById(long roleId) { - return SysRoleRepository.SelectRoleById(roleId); + return GetId(roleId); } /// @@ -89,17 +109,17 @@ namespace ZR.Service throw new CustomException($"{role.RoleName}已分配,不能删除"); } } - return SysRoleRepository.DeleteRoleByRoleIds(roleIds); + return Delete(roleIds); } /// /// 更改角色权限状态 /// - /// + /// /// public int UpdateRoleStatus(SysRole roleDto) { - return SysRoleRepository.UpdateRoleStatus(roleDto); + return Update(roleDto, it => new { it.Status }, f => f.RoleId == roleDto.RoleId); } /// @@ -110,7 +130,7 @@ namespace ZR.Service public string CheckRoleKeyUnique(SysRole sysRole) { long roleId = 0 == sysRole.RoleId ? -1L : sysRole.RoleId; - SysRole info = SysRoleRepository.CheckRoleKeyUnique(sysRole.RoleKey); + SysRole info = GetFirst(it => it.RoleKey == sysRole.RoleKey); if (info != null && info.RoleId != roleId) { return UserConstants.NOT_UNIQUE; @@ -137,7 +157,8 @@ namespace ZR.Service /// public long InsertRole(SysRole sysRole) { - sysRole.RoleId = SysRoleRepository.InsertRole(sysRole); + sysRole.Create_time = DateTime.Now; + sysRole.RoleId = InsertReturnBigIdentity(sysRole); //插入角色部门数据 DeptService.InsertRoleDepts(sysRole); @@ -151,7 +172,7 @@ namespace ZR.Service /// public int DeleteRoleMenuByRoleId(long roleId) { - return SysRoleRepository.DeleteRoleMenuByRoleId(roleId); + return RoleMenuService.DeleteRoleMenuByRoleId(roleId); } /// @@ -195,7 +216,7 @@ namespace ZR.Service //添加角色菜单 if (sysRoleMenus.Count > 0) { - rows = SysRoleRepository.AddRoleMenu(sysRoleMenus); + rows = RoleMenuService.AddRoleMenu(sysRoleMenus); } return rows; @@ -210,7 +231,7 @@ namespace ZR.Service { List roles = SelectUserRoleKeys(userid); - return ((IList)roles).Contains("admin"); + return ((IList)roles).Contains(GlobalConstant.AdminRole); } /// @@ -232,7 +253,7 @@ namespace ZR.Service /// public List SelectUserRoleMenus(long roleId) { - var list = SysRoleRepository.SelectRoleMenuByRoleId(roleId); + var list = RoleMenuService.SelectRoleMenuByRoleId(roleId); return list.Select(x => x.Menu_id).Distinct().ToList(); } @@ -244,7 +265,7 @@ namespace ZR.Service /// public List SelectRoleMenuByRoleIds(long[] roleIds) { - return SysRoleRepository.SelectRoleMenuByRoleIds(roleIds) + return RoleMenuService.SelectRoleMenuByRoleIds(roleIds) .Select(x => x.Menu_id) .Distinct().ToList(); } @@ -256,7 +277,10 @@ namespace ZR.Service /// public List SelectUserRoleListByUserId(long userId) { - return SysRoleRepository.SelectUserRoleListByUserId(userId); + return Context.Queryable((ur, r) => new JoinQueryInfos( + JoinType.Left, ur.RoleId == r.RoleId + )).Where((ur, r) => ur.UserId == userId) + .Select((ur, r) => r).ToList(); } /// @@ -304,7 +328,7 @@ namespace ZR.Service var result = UseTran(() => { //修改角色信息 - SysRoleRepository.UpdateSysRole(sysRole); + UpdateSysRole(sysRole); //删除角色与部门管理 DeptService.DeleteRoleDeptByRoleId(sysRole.RoleId); //插入角色部门数据 @@ -313,5 +337,29 @@ namespace ZR.Service return result.IsSuccess ? 1 : 0; } + + /// + /// 修改用户角色 + /// + /// + /// + public int UpdateSysRole(SysRole sysRole) + { + var db = Context; + sysRole.Update_time = db.GetDate(); + + return db.Updateable() + .SetColumns(it => it.Update_time == sysRole.Update_time) + .SetColumns(it => it.DataScope == sysRole.DataScope) + .SetColumns(it => it.Remark == sysRole.Remark) + .SetColumns(it => it.Update_by == sysRole.Update_by) + //.SetColumns(it => it.MenuCheckStrictly == sysRole.MenuCheckStrictly) + .SetColumns(it => it.DeptCheckStrictly == sysRole.DeptCheckStrictly) + .SetColumnsIF(!string.IsNullOrEmpty(sysRole.RoleName), it => it.RoleName == sysRole.RoleName) + .SetColumnsIF(!string.IsNullOrEmpty(sysRole.RoleKey), it => it.RoleKey == sysRole.RoleKey) + .SetColumnsIF(sysRole.RoleSort >= 0, it => it.RoleSort == sysRole.RoleSort) + .Where(it => it.RoleId == sysRole.RoleId) + .ExecuteCommand(); + } } } diff --git a/ZR.Service/System/SysUserRoleService.cs b/ZR.Service/System/SysUserRoleService.cs index 167a631..35f7ba1 100644 --- a/ZR.Service/System/SysUserRoleService.cs +++ b/ZR.Service/System/SysUserRoleService.cs @@ -1,9 +1,11 @@ using Infrastructure.Attribute; +using Infrastructure.Extensions; +using SqlSugar; using System.Collections.Generic; using ZR.Model; using ZR.Model.System; using ZR.Model.System.Dto; -using ZR.Repository.System; +using ZR.Repository; using ZR.Service.System.IService; namespace ZR.Service.System @@ -14,12 +16,12 @@ namespace ZR.Service.System [AppService(ServiceType = typeof(ISysUserRoleService), ServiceLifetime = LifeTime.Transient)] public class SysUserRoleService : BaseService, ISysUserRoleService { - public SysUserRoleRepository SysUserRoleRepository; + //public SysUserRoleRepository SysUserRoleRepository; - public SysUserRoleService(SysUserRoleRepository sysUserRoleRepository) - { - SysUserRoleRepository = sysUserRoleRepository; - } + //public SysUserRoleService(SysUserRoleRepository sysUserRoleRepository) + //{ + // SysUserRoleRepository = sysUserRoleRepository; + //} /// /// 通过角色ID查询角色使用数量 @@ -38,7 +40,7 @@ namespace ZR.Service.System /// public int DeleteUserRoleByUserId(int userId) { - return Deleteable().Where(it => it.UserId == userId).ExecuteCommand(); + return Delete(it => it.UserId == userId) ? 1 : 0; } /// @@ -49,7 +51,7 @@ namespace ZR.Service.System /// public int DeleteRoleUserByUserIds(long roleId, List userIds) { - return SysUserRoleRepository.DeleteRoleUserByUserIds(roleId, userIds); + return Delete(it => it.RoleId == roleId && userIds.Contains(it.UserId)) ? 1 : 0; } /// @@ -69,7 +71,11 @@ namespace ZR.Service.System /// public List GetSysUsersByRoleId(long roleId) { - return SysUserRoleRepository.GetSysUsersByRoleId(roleId); + return Context.Queryable ((t1, u) => new JoinQueryInfos( + JoinType.Left, t1.UserId == u.UserId)) + .Where((t1, u) => t1.RoleId == roleId && u.DelFlag == "0") + .Select((t1, u) => u) + .ToList(); } /// @@ -79,7 +85,15 @@ namespace ZR.Service.System /// public PagedInfo GetSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto) { - return SysUserRoleRepository.GetSysUsersByRoleId(roleUserQueryDto); + //return SysUserRoleRepository.GetSysUsersByRoleId(roleUserQueryDto); + var query = Context.Queryable((t1, u) => new JoinQueryInfos( + JoinType.Left, t1.UserId == u.UserId)) + .Where((t1, u) => t1.RoleId == roleUserQueryDto.RoleId && u.DelFlag == "0"); + if (!string.IsNullOrEmpty(roleUserQueryDto.UserName)) + { + query = query.Where((t1, u) => u.UserName.Contains(roleUserQueryDto.UserName)); + } + return query.Select((t1, u) => u).ToPage(roleUserQueryDto); } /// @@ -89,7 +103,12 @@ namespace ZR.Service.System /// public PagedInfo GetExcludedSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto) { - return SysUserRoleRepository.GetExcludedSysUsersByRoleId(roleUserQueryDto); + var query = Context.Queryable() + .Where(it => it.DelFlag == "0") + .Where(it => SqlFunc.Subqueryable().Where(s => s.UserId == it.UserId && s.RoleId == roleUserQueryDto.RoleId).NotAny()) + .WhereIF(roleUserQueryDto.UserName.IsNotEmpty(), it => it.UserName.Contains(roleUserQueryDto.UserName)); + + return query.ToPage(roleUserQueryDto); } /// @@ -115,7 +134,7 @@ namespace ZR.Service.System /// public int InsertRoleUser(RoleUsersCreateDto roleUsersCreateDto) { - List userRoles = new List(); + List userRoles = new(); foreach (var item in roleUsersCreateDto.UserIds) { userRoles.Add(new SysUserRole() { RoleId = roleUsersCreateDto.RoleId, UserId = item }); diff --git a/ZR.Service/System/SysUserService.cs b/ZR.Service/System/SysUserService.cs index 2ab997e..a427ee5 100644 --- a/ZR.Service/System/SysUserService.cs +++ b/ZR.Service/System/SysUserService.cs @@ -1,17 +1,16 @@ using Infrastructure; using Infrastructure.Attribute; using Infrastructure.Extensions; -using Microsoft.AspNetCore.Http; +using SqlSugar; using System; using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Text; using ZR.Common; using ZR.Model; using ZR.Model.System; using ZR.Model.System.Dto; -using ZR.Repository.System; +using ZR.Repository; using ZR.Service.System.IService; namespace ZR.Service @@ -22,18 +21,15 @@ namespace ZR.Service [AppService(ServiceType = typeof(ISysUserService), ServiceLifetime = LifeTime.Transient)] public class SysUserService : BaseService, ISysUserService { - private readonly SysUserRepository UserRepository; private readonly ISysRoleService RoleService; private readonly ISysUserRoleService UserRoleService; private readonly ISysUserPostService UserPostService; public SysUserService( - SysUserRepository userRepository, ISysRoleService sysRoleService, ISysUserRoleService userRoleService, ISysUserPostService userPostService) { - UserRepository = userRepository; RoleService = sysRoleService; UserRoleService = userRoleService; UserPostService = userPostService; @@ -45,9 +41,36 @@ namespace ZR.Service /// public PagedInfo SelectUserList(SysUser user, PagerInfo pager) { - var list = UserRepository.SelectUserList(user, pager); + var exp = Expressionable.Create(); + exp.AndIF(!string.IsNullOrEmpty(user.UserName), u => u.UserName.Contains(user.UserName)); + exp.AndIF(!string.IsNullOrEmpty(user.Status), u => u.Status == user.Status); + exp.AndIF(user.BeginTime != DateTime.MinValue && user.BeginTime != null, u => u.Create_time >= user.BeginTime); + exp.AndIF(user.EndTime != DateTime.MinValue && user.EndTime != null, u => u.Create_time <= user.EndTime); + exp.AndIF(!user.Phonenumber.IsEmpty(), u => u.Phonenumber == user.Phonenumber); + exp.And(u => u.DelFlag == "0"); - return list; + if (user.DeptId != 0) + { + List depts = Context.Queryable().ToList(); + + var newDepts = depts.FindAll(delegate (SysDept dept) + { + string[] parentDeptId = dept.Ancestors.Split(",", StringSplitOptions.RemoveEmptyEntries); + return parentDeptId.Contains(user.DeptId.ToString()); + }); + string[] deptArr = newDepts.Select(x => x.DeptId.ToString()).ToArray(); + exp.AndIF(user.DeptId != 0, u => u.DeptId == user.DeptId || deptArr.Contains(u.DeptId.ToString())); + } + var query = Queryable() + .LeftJoin((u, dept) => u.DeptId == dept.DeptId) + .Where(exp.ToExpression()) + .Select((u, dept) => new SysUser + { + UserId = u.UserId.SelectAll(), + DeptName = dept.DeptName, + }); + + return query.ToPage(pager); } /// @@ -57,7 +80,7 @@ namespace ZR.Service /// public SysUser SelectUserById(long userId) { - var user = UserRepository.SelectUserById(userId); + var user = Queryable().Filter(null, true).Where(f => f.UserId == userId).First(); if (user != null && user.UserId > 0) { user.Roles = RoleService.SelectUserRoleListByUserId(userId); @@ -73,7 +96,7 @@ namespace ZR.Service /// public string CheckUserNameUnique(string userName) { - int count = UserRepository.CheckUserNameUnique(userName); + int count = Count(it => it.UserName == userName); if (count > 0) { return UserConstants.NOT_UNIQUE; @@ -88,7 +111,8 @@ namespace ZR.Service /// public long InsertUser(SysUser sysUser) { - long userId = UserRepository.AddUser(sysUser); + sysUser.Create_time = DateTime.Now; + long userId = Insertable(sysUser).ExecuteReturnIdentity(); sysUser.UserId = userId; //新增用户角色信息 UserRoleService.InsertUserRole(sysUser); @@ -119,12 +143,25 @@ namespace ZR.Service UserPostService.Delete(user.UserId); // 新增用户与岗位管理 UserPostService.InsertUserPost(user); - return UserRepository.UpdateUser(user); + return ChangeUser(user); } public int ChangeUser(SysUser user) { - return UserRepository.UpdateUser(user); + user.Update_time = DateTime.Now; + return Update(user, t => new + { + t.NickName, + t.Email, + t.Phonenumber, + t.DeptId, + t.Status, + t.Sex, + t.PostIds, + t.Remark, + t.Update_by, + t.Update_time + }, true); } /// @@ -135,12 +172,17 @@ namespace ZR.Service /// public int ResetPwd(long userid, string password) { - return UserRepository.ResetPwd(userid, password); + return Update(new SysUser() { UserId = userid, Password = password }, it => new { it.Password }, f => f.UserId == userid); } + /// + /// 修改用户状态 + /// + /// + /// public int ChangeUserStatus(SysUser user) { - return UserRepository.ChangeUserStatus(user); + return Update(user, it => new { it.Status }, f => f.UserId == user.UserId); } /// @@ -155,7 +197,7 @@ namespace ZR.Service UserRoleService.DeleteUserRoleByUserId((int)userid); // 删除用户与岗位关联 UserPostService.Delete(userid); - return UserRepository.DeleteUser(userid); + return Update(new SysUser() { UserId = userid, DelFlag = "2" }, it => new { it.DelFlag }, f => f.UserId == userid); } /// @@ -165,7 +207,7 @@ namespace ZR.Service /// public int UpdatePhoto(SysUser user) { - return UserRepository.UpdatePhoto(user); + return Update(user, it => new { it.Avatar }, f => f.UserId == user.UserId); ; } /// @@ -192,7 +234,7 @@ namespace ZR.Service Remark = "用户注册" }; - user.UserId = UserRepository.AddUser(user); + user.UserId = Insertable(user).ExecuteReturnIdentity(); return user; } @@ -265,5 +307,26 @@ namespace ZR.Service return msg; } + + /// + /// 登录 + /// + /// 登录实体 + /// + public SysUser Login(LoginBodyDto user) + { + return GetFirst(it => it.UserName == user.Username && it.Password == user.Password); + } + + /// + /// 修改登录信息 + /// + /// + /// + /// + public void UpdateLoginInfo(LoginBodyDto user, long userId) + { + Update(new SysUser() { LoginIP = user.LoginIP, LoginDate = DateTime.Now, UserId = userId },it => new { it.LoginIP, it.LoginDate }); + } } }