优化代码
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -109,6 +110,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
|||||||
/// <param name="pwdDto"></param>
|
/// <param name="pwdDto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPut]
|
[HttpPut]
|
||||||
|
[Authorize]
|
||||||
public async Task<Result> ChangePassword(ChangePwdDto pwdDto)
|
public async Task<Result> ChangePassword(ChangePwdDto pwdDto)
|
||||||
{
|
{
|
||||||
var uid= pwdDto.user.id;
|
var uid= pwdDto.user.id;
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
|||||||
{
|
{
|
||||||
[Route("api/[controller]/[action]")]
|
[Route("api/[controller]/[action]")]
|
||||||
[ApiController]
|
[ApiController]
|
||||||
|
[Authorize]
|
||||||
public class MenuController : ControllerBase
|
public class MenuController : ControllerBase
|
||||||
{
|
{
|
||||||
private IMenuService _menuService;
|
private IMenuService _menuService;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -12,6 +13,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
|||||||
{
|
{
|
||||||
[Route("api/[controller]/[action]")]
|
[Route("api/[controller]/[action]")]
|
||||||
[ApiController]
|
[ApiController]
|
||||||
|
[Authorize]
|
||||||
public class MouldController : ControllerBase
|
public class MouldController : ControllerBase
|
||||||
{
|
{
|
||||||
private IMouldService _mouldService;
|
private IMouldService _mouldService;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -13,6 +14,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
|||||||
{
|
{
|
||||||
[Route("api/[controller]/[action]")]
|
[Route("api/[controller]/[action]")]
|
||||||
[ApiController]
|
[ApiController]
|
||||||
|
[Authorize]
|
||||||
public class RoleController : ControllerBase
|
public class RoleController : ControllerBase
|
||||||
{
|
{
|
||||||
private IRoleService _roleService;
|
private IRoleService _roleService;
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
|||||||
{
|
{
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("api/[controller]/[action]")]
|
[Route("api/[controller]/[action]")]
|
||||||
|
[Authorize]
|
||||||
public class UserController : ControllerBase
|
public class UserController : ControllerBase
|
||||||
{
|
{
|
||||||
private readonly ILogger<UserController> _logger;
|
private readonly ILogger<UserController> _logger;
|
||||||
@@ -122,7 +123,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
|||||||
/// 根据http上下文的用户得到该用户信息,关联角色
|
/// 根据http上下文的用户得到该用户信息,关联角色
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Authorize]
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<Result> GetUserInfoById()
|
public async Task<Result> GetUserInfoById()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,6 +20,11 @@ namespace Yi.Framework.Service
|
|||||||
return menu_data;
|
return menu_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 这个getEntity没有关联子类,怎么能得到子类呢?这是一个错误的接口
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="_menu"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public async Task<List<menu>> GetChildrenByMenu(menu _menu)
|
public async Task<List<menu>> GetChildrenByMenu(menu _menu)
|
||||||
{
|
{
|
||||||
var menu_data = await GetEntity(u=>u.id==_menu.id&& u.is_delete == (short)Common.Enum.DelFlagEnum.Normal);
|
var menu_data = await GetEntity(u=>u.id==_menu.id&& u.is_delete == (short)Common.Enum.DelFlagEnum.Normal);
|
||||||
@@ -27,10 +32,15 @@ namespace Yi.Framework.Service
|
|||||||
return childrenList;
|
return childrenList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 不要返回一个新创的变量,直接返回menu.children,只要id,就不要传一个对象
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="_menu"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public async Task<List<menu>> GetChildrenMenu(menu _menu)
|
public async Task<List<menu>> GetChildrenMenu(menu _menu)
|
||||||
{
|
{
|
||||||
var menu= await _Db.Set<menu>().Include(u => u.children).Include(u=>u.mould)
|
var menu= await _Db.Set<menu>().Include(u => u.children).Include(u=>u.mould)
|
||||||
.Where(u =>u.id==_menu.id&& u.is_delete == (short)Common.Enum.DelFlagEnum.Normal&& u.is_top == (short)Common.Enum.TopFlagEnum.Children )
|
.Where(u =>u.id==_menu.id&& u.is_top == (short)Common.Enum.TopFlagEnum.Children )
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
var childrenList = menu.children.ToList();
|
var childrenList = menu.children.ToList();
|
||||||
return childrenList;
|
return childrenList;
|
||||||
@@ -44,30 +54,48 @@ namespace Yi.Framework.Service
|
|||||||
return menuList;
|
return menuList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 和GetChildrenMenu方法可以合并
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="_menu"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public async Task<menu> GetMenuMouldByMenu(menu _menu)
|
public async Task<menu> GetMenuMouldByMenu(menu _menu)
|
||||||
{
|
{
|
||||||
var menu_data = await _Db.Set<menu>().Include(u => u.children).Include(u=>u.mould)
|
var menu_data = await _Db.Set<menu>().Include(u => u.children).Include(u=>u.mould)
|
||||||
.Where(u=>u.id==_menu.id&& u.is_delete == (short)Common.Enum.DelFlagEnum.Normal && u.is_delete == (short)Common.Enum.ShowFlagEnum.Show).FirstOrDefaultAsync();
|
.Where(u=>u.id==_menu.id&& u.is_delete == (short)Common.Enum.ShowFlagEnum.Show)
|
||||||
|
.FirstOrDefaultAsync();
|
||||||
return menu_data;
|
return menu_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<mould> GetMouldByMenu(menu _menu)
|
public async Task<mould> GetMouldByMenu(menu _menu)
|
||||||
{
|
{
|
||||||
var menu_data =await _Db.Set<menu>().Include(u => u.mould)
|
var menu_data =await _Db.Set<menu>().Include(u => u.mould).Where(u => u.id == _menu.id).FirstOrDefaultAsync();
|
||||||
.Where(u => u.id == _menu.id & u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
|
|
||||||
return menu_data.mould;
|
return menu_data.mould;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 5层迭代
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
public async Task<List<menu>> GetTopMenu()
|
public async Task<List<menu>> GetTopMenu()
|
||||||
{
|
{
|
||||||
var menu_data= await _Db.Set<menu>().Include(u=>u.mould).Include(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children)
|
var menu_data= await _Db.Set<menu>().Include(u=>u.mould)
|
||||||
|
.Include(u => u.children).ThenInclude(u => u.mould)
|
||||||
|
.Include(u=>u.children).ThenInclude(u => u.children).ThenInclude(u => u.mould)
|
||||||
|
.Include(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.mould)
|
||||||
|
.Include(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.children).ThenInclude(u => u.mould)
|
||||||
.Where(u =>u.is_delete == (short)Common.Enum.DelFlagEnum.Normal && u.is_top == (short)Common.Enum.ShowFlagEnum.Show)
|
.Where(u =>u.is_delete == (short)Common.Enum.DelFlagEnum.Normal && u.is_top == (short)Common.Enum.ShowFlagEnum.Show)
|
||||||
|
.OrderByDescending(u=>u.sort)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
return TopMenuBuild(menu_data);
|
return TopMenuBuild(menu_data);
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 过滤已经被删除的(这个应该是别的地方有方法的,不应该写到service层里面的)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="menu_data"></param>
|
||||||
|
/// <returns></returns>
|
||||||
private List<menu> TopMenuBuild(List<menu> menu_data)
|
private List<menu> TopMenuBuild(List<menu> menu_data)
|
||||||
{
|
{
|
||||||
|
|
||||||
for(int i = menu_data.Count()-1; i >=0; i--)
|
for(int i = menu_data.Count()-1; i >=0; i--)
|
||||||
{
|
{
|
||||||
if(menu_data[i].is_delete == (short)Common.Enum.DelFlagEnum.Deleted)
|
if(menu_data[i].is_delete == (short)Common.Enum.DelFlagEnum.Deleted)
|
||||||
@@ -82,6 +110,12 @@ namespace Yi.Framework.Service
|
|||||||
return menu_data;
|
return menu_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 要关联啊,menudata要关联mould,而且能用find就用find
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="mouldId"></param>
|
||||||
|
/// <param name="menuId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public async Task<bool> SetMouldByMenu(int mouldId, int menuId)
|
public async Task<bool> SetMouldByMenu(int mouldId, int menuId)
|
||||||
{
|
{
|
||||||
var menu_data = await GetEntity(u => u.id == menuId);
|
var menu_data = await GetEntity(u => u.id == menuId);
|
||||||
|
|||||||
@@ -11,10 +11,14 @@ namespace Yi.Framework.Service
|
|||||||
{
|
{
|
||||||
public partial class MouldService:BaseService<mould>, IMouldService
|
public partial class MouldService:BaseService<mould>, IMouldService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 这个获取的是菜单,用的是菜单表,应该放到菜单service里面,像这种只用到id的,就传一个id就可以了
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="_mould"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public async Task<menu> GetMenuByMould(mould _mould)
|
public async Task<menu> GetMenuByMould(mould _mould)
|
||||||
{
|
{
|
||||||
var menu_data = await _Db.Set<menu>().Include(u => u.mould)
|
var menu_data = await _Db.Set<menu>().Include(u => u.mould).Where(u => u.mould == _mould && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
|
||||||
.Where(u => u.mould == _mould && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
|
|
||||||
return menu_data;
|
return menu_data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,15 +11,24 @@ namespace Yi.Framework.Service
|
|||||||
{
|
{
|
||||||
public partial class RoleService:BaseService<role>, IRoleService
|
public partial class RoleService:BaseService<role>, IRoleService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 该方法返回的是并列角色并列的菜单,无递归
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="_role"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public async Task<List<menu>> GetMenusByRole(role _role)
|
public async Task<List<menu>> GetMenusByRole(role _role)
|
||||||
{
|
{
|
||||||
var role_data =await _Db.Set<role>().Include(u => u.menus)
|
var role_data =await _Db.Set<role>().Include(u => u.menus)
|
||||||
.Where(u => u.id == _role.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
|
.Where(u => u.id == _role.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
|
||||||
var menuList =role_data.menus.Where(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal)
|
var menuList =role_data.menus.Where(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToList();
|
||||||
.ToList();
|
|
||||||
return menuList;
|
return menuList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 这个接口好像没用,算作废吧,怎么能通过角色获取用户呢?数据库表也得改,不能通过角色获取用户
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="_role"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public async Task<List<user>> GetUsersByRole(role _role)
|
public async Task<List<user>> GetUsersByRole(role _role)
|
||||||
{
|
{
|
||||||
var role_data = await _Db.Set<role>().Include(u => u.users)
|
var role_data = await _Db.Set<role>().Include(u => u.users)
|
||||||
@@ -27,10 +36,10 @@ namespace Yi.Framework.Service
|
|||||||
return role_data.users.ToList();
|
return role_data.users.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task<bool> SetMenusByRolesId(List<int> menuIds,List<int> roleIds)
|
public async Task<bool> SetMenusByRolesId(List<int> menuIds,List<int> roleIds)
|
||||||
{
|
{
|
||||||
var role_data = await _Db.Set<role>().Include(u=>u.menus)
|
var role_data = await _Db.Set<role>().Include(u=>u.menus).Where(u =>roleIds.Contains(u.id) && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToListAsync();
|
||||||
.Where(u =>roleIds.Contains(u.id) && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToListAsync();
|
|
||||||
if (role_data == null)
|
if (role_data == null)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@@ -42,10 +51,15 @@ namespace Yi.Framework.Service
|
|||||||
}
|
}
|
||||||
return await UpdateListAsync(role_data);
|
return await UpdateListAsync(role_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 好像也不需要通过菜单来获取角色啊,这个数据库也得改
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="roleId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public async Task<List<menu>> GetMenusByRoleId(int roleId)
|
public async Task<List<menu>> GetMenusByRoleId(int roleId)
|
||||||
{
|
{
|
||||||
var role_data = await _Db.Set<role>().Include(u=>u.menus)
|
var role_data = await _Db.Set<role>().Include(u=>u.menus).Where(u =>u.id==roleId && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
|
||||||
.Where(u =>u.id==roleId && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
|
|
||||||
var menuList = role_data.menus.ToList();
|
var menuList = role_data.menus.ToList();
|
||||||
menuList.ForEach(u => u.roles = null);
|
menuList.ForEach(u => u.roles = null);
|
||||||
return menuList;
|
return menuList;
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ namespace Yi.Framework.Service
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 这种就命名的话,改成MenuChildrenBuild
|
/// 这种就命名的话,改成MenuChildrenBuild,这个方法应该可以提到core层,这是一个公用的方法
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="menu_data"></param>
|
/// <param name="menu_data"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
<v-btn class="mr-2">图标:{{ item.icon }}</v-btn>
|
<v-btn class="mr-2">图标:{{ item.icon }}</v-btn>
|
||||||
<v-btn class="mr-2">路由:{{ item.router }}</v-btn>
|
<v-btn class="mr-2">路由:{{ item.router }}</v-btn>
|
||||||
<v-btn v-if="item.mould" class="mr-2">接口名:{{ item.mould.mould_name }}</v-btn>
|
<v-btn v-if="item.mould" class="mr-2">接口名:{{ item.mould.mould_name }}</v-btn>
|
||||||
<v-btn v-if="item.mould" class="mr-2">接口地址:{{ item.mould.url }}</v-btn>
|
<v-btn v-if="item.mould" class="mr-2" color="secondary">接口地址:{{ item.mould.url }}</v-btn>
|
||||||
<ccCombobox
|
<ccCombobox
|
||||||
headers="设置接口权限"
|
headers="设置接口权限"
|
||||||
itemText="url"
|
itemText="url"
|
||||||
|
|||||||
Reference in New Issue
Block a user