modules/00_Admin/Admin.Core/Application/Menu/MenuService.cs
(开头部分) 5KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Mkh.Data.Abstractions.Annotations;
using Mkh.Data.Abstractions.Query;
using Mkh.Mod.Admin.Core.Application.Menu.Dto;
using Mkh.Mod.Admin.Core.Domain.Menu;
using Mkh.Mod.Admin.Core.Domain.RoleButton;
using Mkh.Mod.Admin.Core.Domain.RoleMenu;
using Mkh.Mod.Admin.Core.Domain.RolePermission;
using Mkh.Mod.Admin.Core.Infrastructure;
using Mkh.Utils.Json;
using Mkh.Utils.Map;
namespace Mkh.Mod.Admin.Core.Application.Menu;
internal class MenuService : IMenuService
{
private readonly IMapper _mapper;
private readonly IMenuRepository _repository;
private readonly IRoleMenuRepository _roleMenuRepository;
private readonly IRoleButtonRepository _roleButtonRepository;
private readonly IRolePermissionRepository _rolePermissionRepository;
private readonly JsonHelper _jsonHelper;
private readonly AdminLocalizer _localizer;
public MenuService(IMapper mapper, IMenuRepository repository, IRoleMenuRepository roleMenuRepository, IRoleButtonRepository roleButtonRepository, IRolePermissionRepository rolePermissionRepository, JsonHelper jsonHelper, AdminLocalizer localizer)
{
_mapper = mapper;
_repository = repository;
_roleMenuRepository = roleMenuRepository;
_roleButtonRepository = roleButtonRepository;
_rolePermissionRepository = rolePermissionRepository;
_jsonHelper = jsonHelper;
_localizer = localizer;
}
public Task<PagingQueryResultModel<MenuEntity>> Query(MenuQueryDto dto)
{
var query = _repository.Find(m => m.GroupId == dto.GroupId && m.ParentId == dto.ParentId);
query.WhereNotNull(dto.Name, m => m.LocalesConfig.Contains(dto.Name));
query.OrderBy(m => m.Sort);
return query.ToPaginationResult(dto.Paging);
}
[Transaction]
public async Task<IResultModel> Add(MenuAddDto dto)
{
var menu = _mapper.Map<MenuEntity>(dto);
menu.Level = 1;
if (dto.Type == MenuType.Route)
{
if (dto.Module.IsNull())
return ResultModel.Failed(_localizer["模块编码不能为空"]);
if (dto.RouteName.IsNull())
return ResultModel.Failed(_localizer["路由名称不能为空"]);
}
后面还有 131 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
