schangxiang@126.com
2025-05-06 97113c38c6b4acb7d06ba498a2942fd101125d7f
2222
已添加4个文件
已修改3个文件
253 ■■■■■ 文件已修改
Weben_CMS专用代码生成器/Code/Generate/Domain/IRepository_Generate.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/EntityFrameworkCore/EfCoreRepository_Generate.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/GenerateCode_WeiBen_CMS.csproj 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/MainForm.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/AppService/AppService模板.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Domain/IRepository模板.txt 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/EntityFrameworkCore/EfCoreRepository模板.txt 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/Domain/IRepository_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@

using GenerateCode_WeiBen_WMS.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// ç”ŸæˆæŸ¥è¯¢å®žä½“ç±»
    /// </summary>
    public class IRepository_Generate : BaseGenerate
    {
        public static string CreateText(GenerateCodeParam param)
        {
            var str = TextHelper.ReadText(@"Templete\Domain\IRepository模板.txt");
            CommonReplace(ref str);
            CommonHelper.CommonReplaceStr(param, ref str);
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/EntityFrameworkCore/EfCoreRepository_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@

using GenerateCode_WeiBen_WMS.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// ç”ŸæˆæŸ¥è¯¢å®žä½“ç±»
    /// </summary>
    public class EfCoreRepository_Generate : BaseGenerate
    {
        public static string CreateText(GenerateCodeParam param)
        {
            var str = TextHelper.ReadText(@"Templete\EntityFrameworkCore\EfCoreRepository模板.txt");
            CommonReplace(ref str);
            CommonHelper.CommonReplaceStr(param, ref str);
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/GenerateCode_WeiBen_CMS.csproj
@@ -110,6 +110,8 @@
    <Compile Include="Generate\AppService\IAppService_Generate.cs" />
    <Compile Include="Generate\BaseGenerate.cs" />
    <Compile Include="Generate\Controller\Controller_Generate.cs" />
    <Compile Include="Generate\Domain\IRepository_Generate.cs" />
    <Compile Include="Generate\EntityFrameworkCore\EfCoreRepository_Generate.cs" />
    <Compile Include="Generate\Entity\ImportModel_Generate.cs" />
    <Compile Include="Generate\Entity\ExportModel_Generate.cs" />
    <Compile Include="Generate\Entity\Dto_Generate.cs" />
@@ -201,6 +203,12 @@
    <Content Include="Templete\Controller模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Domain\IRepository模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\EntityFrameworkCore\EfCoreRepository模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Entity\AddModel模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/MainForm.cs
@@ -245,6 +245,27 @@
                #endregion
                #region Domain
                //11、生成 IRepository æ–‡ä»¶
                var iRepositoryPath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Domain\" + tb_EntityName.Text.Trim(); ;
                str_generate = IRepository_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(iRepositoryPath, $"I{param.EntityName}Repository.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                #endregion
                #region EntityFrameworkCore
                //12、生成 EfCoreRepository æ–‡ä»¶
                var efCoreRepositoryPath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".EntityFrameworkCore\Repositories";
                str_generate = EfCoreRepository_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(efCoreRepositoryPath, $"EfCore{param.EntityName}Repository.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                #endregion
                ////生成 OutputModel æ–‡ä»¶
                //str_generate = OutputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName);
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/AppService/AppServiceÄ£°å.txt
@@ -2,8 +2,8 @@
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 CMS.Plugin.$NameSpacePath$.Domain.Shared.$EntityName$;
using CMS.Plugin.$NameSpacePath$.Domain.$EntityName$;
using CmsQueryExtensions.Extension;
using System.Linq.Expressions;
using Volo.Abp;
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Domain/IRepositoryÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
using CmsQueryExtensions.Extension;
using System.Linq.Expressions;
using Volo.Abp.Domain.Repositories;
namespace CMS.Plugin.$NameSpacePath$.Domain.$EntityName$;
/// <summary>
/// $ChinaComment$仓储
/// </summary>
public interface I$EntityName$Repository : IBasicRepository<$EntityName$, Guid>
{
    /// <summary>
    /// æŒ‰ç…§åç§°æŸ¥æ‰¾$ChinaComment$
    /// </summary>
    /// <param name="name"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<$EntityName$> FindByNameAsync(string name, CancellationToken cancellationToken = default);
    /// <summary>
    /// éªŒè¯åç§°æ˜¯å¦å­˜åœ¨$ChinaComment$
    /// </summary>
    /// <param name="name"></param>
    /// <param name="id"></param>
    /// <returns></returns>
    Task<bool> NameExistAsync(string name, Guid? id = null);
    /// <summary>
    /// èŽ·å–æœ€å¤§æŽ’åº$ChinaComment$
    /// </summary>
    /// <returns></returns>
    Task<int> GetMaxSortAsync();
    /// <summary>
    /// èŽ·å–åˆ†é¡µåˆ—è¡¨$ChinaComment$
    /// </summary>
    /// <param name="whereConditions"></param>
    /// <param name="sorting"></param>
    /// <param name="maxResultCount"></param>
    /// <param name="skipCount"></param>
    /// <param name="includeDetails"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<List<$EntityName$>> GetListAsync(FunReturnResultModel<Expression<Func<$EntityName$, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default);
    /// <summary>
    /// èŽ·å–æ€»æ•°$ChinaComment$
    /// </summary>
    /// <param name="whereConditions"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<$EntityName$, bool>>> whereConditions, CancellationToken cancellationToken = default);
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/EntityFrameworkCore/EfCoreRepositoryÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
using CMS.Plugin.$NameSpacePath$.Domain.$EntityName$;
using CMS.Plugin.$NameSpacePath$.EntityFrameworkCore.Extensions;
using CmsQueryExtensions.Extension;
using Microsoft.EntityFrameworkCore;
using System.Linq.Dynamic.Core;
using System.Linq.Expressions;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
namespace CMS.Plugin.$NameSpacePath$.EntityFrameworkCore.Repositories;
/// <summary>
/// $ChinaComment$仓储实现
/// </summary>
public class EfCore$EntityName$Repository : EfCoreRepository<ICMSPluginDbContext, $EntityName$, Guid>, I$EntityName$Repository
{
    /// <summary>
    /// Initializes a new instance of the <see cref="EfCore$EntityName$Repository"/> class.
    /// </summary>
    /// <param name="dbContextProvider">The database context provider.</param>
    public EfCore$EntityName$Repository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider)
        : base(dbContextProvider)
    {
    }
    /// <summary>
    /// æŒ‰ç…§åç§°æŸ¥æ‰¾$ChinaComment$
    /// </summary>
    /// <param name="name"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    public virtual async Task<$EntityName$> FindByNameAsync(string name, CancellationToken cancellationToken = default)
    {
        return await (await GetDbSetAsync())
            .IncludeDetails()
            .Where(x => !x.IsDeleted)
            .OrderBy(t => t.Sort)
            .FirstOrDefaultAsync(t => t.MaterialCode == name, GetCancellationToken(cancellationToken));
    }
    /// <summary>
    /// éªŒè¯åç§°æ˜¯å¦å­˜åœ¨$ChinaComment$
    /// </summary>
    /// <param name="materialCode"></param>
    /// <param name="id"></param>
    /// <returns></returns>
    public async Task<bool> NameExistAsync(string materialCode, Guid? id = null)
    {
        return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialCode == materialCode);
    }
    /// <summary>
    /// èŽ·å–æœ€å¤§æŽ’åº$ChinaComment$
    /// </summary>
    /// <returns></returns>
    public async Task<int> GetMaxSortAsync()
    {
        var hasAny = await (await GetQueryableAsync())
            .Where(x => !x.IsDeleted).AnyAsync();
        if (!hasAny)
        {
            return 1;
        }
        var sort = await (await GetQueryableAsync())
            .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort);
        return sort + 1;
    }
    /// <summary>
    /// èŽ·å–åˆ†é¡µåˆ—è¡¨$ChinaComment$
    /// </summary>
    /// <param name="whereConditions"></param>
    /// <param name="sorting"></param>
    /// <param name="maxResultCount"></param>
    /// <param name="skipCount"></param>
    /// <param name="includeDetails"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    public async Task<List<$EntityName$>> GetListAsync(FunReturnResultModel<Expression<Func<$EntityName$, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default)
    {
        return await (await GetDbSetAsync())
            .IncludeDetails(includeDetails)
            .WhereIf(whereConditions != null, whereConditions.data)
            .Where(x => !x.IsDeleted)
            .OrderBy(sorting.IsNullOrEmpty() ? nameof($EntityName$.Sort) : sorting)
            .PageBy(skipCount, maxResultCount)
            .ToListAsync(GetCancellationToken(cancellationToken));
    }
    /// <summary>
    /// èŽ·å–æ€»æ•°$ChinaComment$
    /// </summary>
    /// <param name="whereConditions"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<$EntityName$, bool>>> whereConditions, CancellationToken cancellationToken = default)
    {
        return await (await GetQueryableAsync())
            .WhereIf(whereConditions != null, whereConditions.data)
            .Where(x => !x.IsDeleted)
            .CountAsync(cancellationToken: GetCancellationToken(cancellationToken));
    }
    /// <inheritdoc />
    public override async Task<IQueryable<$EntityName$>> WithDetailsAsync()
    {
        return (await GetQueryableAsync())
            .Where(x => !x.IsDeleted).IncludeDetails();
    }
}