modules/00_Admin/Admin.Core/Application/Dict/DictService.cs

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Mkh.Cache.Abstractions;
using Mkh.Data.Abstractions.Annotations;
using Mkh.Data.Abstractions.Query;
using Mkh.Mod.Admin.Core.Application.Dict.Dto;
using Mkh.Mod.Admin.Core.Application.Dict.Vo;
using Mkh.Mod.Admin.Core.Domain.Dict;
using Mkh.Mod.Admin.Core.Domain.DictGroup;
using Mkh.Mod.Admin.Core.Domain.DictItem;
using Mkh.Mod.Admin.Core.Infrastructure;
using Mkh.Utils.Map;

namespace Mkh.Mod.Admin.Core.Application.Dict;

internal class DictService : IDictService
{
    private readonly IMapper _mapper;
    private readonly IDictRepository _repository;
    private readonly IDictGroupRepository _groupRepository;
    private readonly IDictItemRepository _itemRepository;
    private readonly ICacheProvider _cacheHandler;
    private readonly AdminCacheKeys _cacheKeys;
    private readonly AdminLocalizer _localizer;

    public DictService(IMapper mapper, IDictRepository repository, IDictGroupRepository groupRepository, IDictItemRepository itemRepository, ICacheProvider cacheHandler, AdminCacheKeys cacheKeys, AdminLocalizer localizer)
    {
        _mapper = mapper;
        _repository = repository;
        _groupRepository = groupRepository;
        _itemRepository = itemRepository;
        _cacheHandler = cacheHandler;
        _cacheKeys = cacheKeys;
        _localizer = localizer;
    }

    public Task<PagingQueryResultModel<DictEntity>> Query(DictQueryDto dto)
    {
        return _repository.Query(dto);
    }

    public async Task<IResultModel> Add(DictAddDto dto)
    {
        if (await _repository.Find(m => m.GroupCode == dto.GroupCode && m.Code == dto.Code).ToExists())
            return ResultModel.Failed(_localizer["当前分组下字典编码已存在"]);

        if (!await _groupRepository.Find(m => m.Code == dto.GroupCode).ToExists())
            return ResultModel.Failed(_localizer["当前分组不存在"]);

        var entity = _mapper.Map<DictEntity>(dto);

        var result = await _repository.Add(entity);

        return ResultModel.Result(result);
    }

    public async Task<IResultModel> Edit(int id)
    {
后面还有 185 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

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