zs
2025-05-06 2fd8242a14241beba63e71c6f4222b702f0e2f30
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/AppService/AppServiceÄ£°å.txt
@@ -1,9 +1,8 @@
using CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityInstanceName$s;
using CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$;
using CMS.Plugin.$NameSpacePath$.Application.Contracts.Services;
using CMS.Plugin.$NameSpacePath$.Domain.Shared;
using CMS.Plugin.$NameSpacePath$.Domain.Shared.Util;
using CMS.Plugin.$NameSpacePath$.Domain.Shared.$EntityInstanceName$s;
using CMS.Plugin.$NameSpacePath$.Domain.$EntityInstanceName$s;
using CmsQueryExtensions;
using CMS.Plugin.$NameSpacePath$.Domain.$EntityName$;
using CmsQueryExtensions.Extension;
using System.Linq.Expressions;
using Volo.Abp;
@@ -25,9 +24,9 @@
    /// Initializes a new instance of the <see cref="$EntityName$AppService"/> class.
    /// </summary>
    /// <param name="$EntityName$Repository">The task job repository.</param>
    public $EntityName$AppService(I$EntityName$Repository $EntityName$Repository)
    public $EntityName$AppService(I$EntityName$Repository _$EntityName$Repository)
    {
        $EntityInstanceName$Repository = $EntityName$Repository;
        $EntityInstanceName$Repository = _$EntityName$Repository;
    }
    /// <summary>
@@ -100,10 +99,10 @@
    {
        await CheckCreateOrUpdateDtoAsync(input);
        var exist = await $EntityInstanceName$Repository.NameExistAsync(input.MaterialCode);
        var exist = await $EntityInstanceName$Repository.NameExistAsync(input.$ValidateRepeatName$);
        if (exist)
        {
            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]);
            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.$ValidateRepeatName$]);
        }
        var maxSort = await $EntityInstanceName$Repository.GetMaxSortAsync();
@@ -135,10 +134,10 @@
        await CheckCreateOrUpdateDtoAsync(input);
        var updateObj = await $EntityInstanceName$Repository.GetAsync(id);
        var exist = await $EntityInstanceName$Repository.NameExistAsync(input.MaterialCode, updateObj.Id);
        var exist = await $EntityInstanceName$Repository.NameExistAsync(input.$ValidateRepeatName$, updateObj.Id);
        if (exist)
        {
            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]);
            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.$ValidateRepeatName$]);
        }
        updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
@@ -264,14 +263,14 @@
        var $EntityInstanceName$CreateDtos = new List<(int RowIndex, $EntityName$CreateDto Item)>();
        var $EntityInstanceName$UpdateDtos = new List<(int RowIndex, Guid Id, $EntityName$UpdateDto Item)>();
        var $EntityInstanceName$s = input.$EntityInstanceName$s;
        var importItems = input.$EntityName$s;
        if ($EntityInstanceName$s != null && $EntityInstanceName$s.Any())
        if (importItems != null && importItems.Any())
        {
            #region å¯¼å…¥æ ¡éªŒ
            // åˆ¤æ–­åç§°æ˜¯å¦é‡å¤ï¼Œå¹¶è¾“出第几行重复
            var duplicate$EntityName$s = $EntityInstanceName$s.GroupBy(x => x.MaterialCode).Where(x => x.Count() > 1).ToList();
            var duplicate$EntityName$s = importItems.GroupBy(x => x.$ValidateRepeatName$).Where(x => x.Count() > 1).ToList();
            if (duplicate$EntityName$s?.Any() == true)
            {
                var duplicate$EntityName$Msgs = duplicate$EntityName$s.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡Œï¼š{x.Key}  åç§°é‡å¤");
@@ -281,65 +280,65 @@
            #endregion
            foreach (var $EntityInstanceName$ in $EntityInstanceName$s)
            foreach (var impItem in importItems)
            {
                if ($EntityInstanceName$.MaterialCode.IsNullOrWhiteSpace() && $EntityInstanceName$.MaterialName.IsNullOrWhiteSpace())
                if (impItem.$ValidateRepeatName$.IsNullOrWhiteSpace())
                {
                    continue;
                }
                if ($EntityInstanceName$.MaterialCode.IsNullOrWhiteSpace())
                if (impItem.$ValidateRepeatName$.IsNullOrWhiteSpace())
                {
                    var errorMsg = $"导入失败!配置,第{$EntityInstanceName$.RowIndex}行:$EntityInstanceName$名称不能为空";
                    var errorMsg = $"导入失败!配置,第{impItem.RowIndex}行:$EntityName$名称不能为空";
                    throw new UserFriendlyException(errorMsg);
                }
                var old$EntityName$ = await $EntityInstanceName$Repository.FindByNameAsync($EntityName$.MaterialCode);
                var old$EntityName$ = await $EntityInstanceName$Repository.FindByNameAsync(impItem.$ValidateRepeatName$);
                if (old$EntityName$ != null)
                {
                    var $EntityInstanceName$UpdateDto = new $EntityName$UpdateDto
                    {
                        $UpdateAttributesForImport$
                        $AppService_ImportAsync$
                    };
                    $EntityInstanceName$UpdateDtos.Add(($EntityName$.RowIndex, old$EntityName$.Id, $EntityInstanceName$UpdateDto));
                    $EntityInstanceName$UpdateDtos.Add((impItem.RowIndex, old$EntityName$.Id, $EntityInstanceName$UpdateDto));
                }
                else
                {
                    var $EntityName$CreateDto = new $EntityName$CreateDto
                    var $EntityInstanceName$CreateDto = new $EntityName$CreateDto
                    {
                        $UpdateAttributesForImport$
                        $AppService_ImportAsync$
                    };
                    $EntityInstanceName$CreateDtos.Add(($EntityName$.RowIndex, $EntityName$CreateDto));
                    $EntityInstanceName$CreateDtos.Add((impItem.RowIndex, $EntityInstanceName$CreateDto));
                }
            }
        }
        // æ–°å¢ž
        foreach (var $EntityName$Dto in $EntityInstanceName$CreateDtos)
        foreach (var $EntityInstanceName$Dto in $EntityInstanceName$CreateDtos)
        {
            try
            {
                await CreateAsync($EntityName$Dto.Item);
                await CreateAsync($EntityInstanceName$Dto.Item);
            }
            catch (Exception e)
            {
                var errorMsg = $"导入失败!配置,第{$EntityName$Dto.RowIndex}行:{e.Message},终止导入";
                var errorMsg = $"导入失败!配置,第{$EntityInstanceName$Dto.RowIndex}行:{e.Message},终止导入";
                throw new UserFriendlyException(errorMsg);
            }
        }
        // æ›´æ–°
        foreach (var $EntityName$Dto in $EntityInstanceName$UpdateDtos)
        foreach (var $EntityInstanceName$Dto in $EntityInstanceName$UpdateDtos)
        {
            try
            {
                await UpdateAsync($EntityName$Dto.Id, $EntityName$Dto.Item);
                await UpdateAsync($EntityInstanceName$Dto.Id, $EntityInstanceName$Dto.Item);
            }
            catch (Exception e)
            {
                var errorMsg = $"导入失败!配置,第{$EntityName$Dto.RowIndex}行:{e.Message},终止导入";
                var errorMsg = $"导入失败!配置,第{$EntityInstanceName$Dto.RowIndex}行:{e.Message},终止导入";
                throw new UserFriendlyException(errorMsg);
            }
        }
@@ -375,7 +374,7 @@
            ["配置"] = ExportHelper.ConvertListToExportData(result),
        };
        var fileName = result.Count > 1 ? "$EntityName$列表" : result.Count == 1 ? result[0]?.MaterialCode : "$EntityName$模版";
        var fileName = result.Count > 1 ? "$ChinaComment$列表" : result.Count == 1 ? result[0]?.$ValidateRepeatName$ : "$EntityName$模版";
        return (sheets, fileName);
    }