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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。