From dbb886f05af928ec4bd8b632fe7204f2551ef866 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周日, 04 5月 2025 22:09:04 +0800 Subject: [PATCH] 2222 --- Weben_CMS专用代码生成器/Code/MainForm.cs | 14 + Weben_CMS专用代码生成器/Code/Generate/Controller/Controller_Generate.cs | 17 - Weben_CMS专用代码生成器/Code/Templete/Controller模板.txt | 372 ++++++++++++++++++++-------------------------------- 3 files changed, 160 insertions(+), 243 deletions(-) diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Controller/Controller_Generate.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Controller/Controller_Generate.cs" index 3889b30..99dc295 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Controller/Controller_Generate.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Controller/Controller_Generate.cs" @@ -1,5 +1,6 @@ 锘� +using GenerateCode_WeiBen_WMS.Model; using System; using System.Collections.Generic; using System.Linq; @@ -12,24 +13,16 @@ /// </summary> public class Controller_Generate : BaseGenerate { - public static string CreateText(string Modulelogo, - string ChinaComment, List<ColumnModel> columnNameList, string entityName, string orderByName = "") + public static string CreateText(GenerateCodeParam param) { var str = TextHelper.ReadText(@"Templete\Controller妯℃澘.txt"); CommonReplace(ref str); - str = str.Replace("$ChinaComment$", ChinaComment);//涓枃娉ㄩ噴 - str = str.Replace("$EntityName$", entityName); - str = str.Replace("$Modulelogo$", Modulelogo);//妯″潡绠�鍐� - str = str.Replace("$OrderByName$", orderByName == "" ? "Id" : orderByName);//妯″潡绠�鍐� - str = str.Replace("$ValidateEmptyForInsert$", StructStrHelper.GetValidateEmptyStrForController(columnNameList)); - str = str.Replace("$ValidateEmptyForUpdate$", StructStrHelper.GetValidateEmptyStrForController(columnNameList, false)); + CommonReplace(ref str); + CommonHelper.CommonReplaceStr(param, ref str); - - var pageStr = StructStrHelper.GetPageFilterStrForController(columnNameList); - str = str.Replace("$PageSearchFilter$", pageStr); - + return str; } } diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs" index 9fd6553..f5d5089 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs" @@ -33,7 +33,7 @@ this.tb_ChinaComment.Text = "鐗╂枡鍩虹淇℃伅琛�";//涓枃娉ㄩ噴 this.tb_CreatePerson.Text = "shaocx";//鍒涘缓浜� this.tb_EntityName.Text = "WmsMaterial";//瀹炰綋绫诲悕 - this.tb_EntityProName.Text = "_wmsMaterial";//瀹炰綋绫诲璞″悕 + //this.tb_EntityProName.Text = "wmsMaterial";//瀹炰綋绫诲璞″悕 this.tb_EnumList.Text = "PurchaseType|PurchaseTypeEnum|PurchaseTypeDesc,MaterialType|MaterialTypeEnum|MaterialTypeDesc,IsMainBranch|YesNoEnum|IsMainBranchDesc"; this.cmb_DataSource.DropDownStyle = ComboBoxStyle.DropDownList; @@ -163,7 +163,7 @@ NameSpacePath = wcf_NameSpacePath, ColumnNameList = columnList, EntityName = entityName, - EntityInstanceName= tableAlias + EntityInstanceName = tableAlias }; //澶勭悊鏋氫妇绫诲瀷 List<EnumModel> enumList = new List<EnumModel>(); @@ -235,6 +235,16 @@ #endregion + #region Contorller + + //10銆佺敓鎴� Contorller 鏂囦欢 + var continerlllePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Controller"; + str_generate = Controller_Generate.CreateText(param); + tf = TextHelper.Export2File_V2(continerlllePath, $"{param.EntityName}Controller.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); + + + #endregion + ////鐢熸垚 OutputModel 鏂囦欢 //str_generate = OutputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName); diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Controller\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Controller\346\250\241\346\235\277.txt" index 7a25ce1..20a3e30 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Controller\346\250\241\346\235\277.txt" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Controller\346\250\241\346\235\277.txt" @@ -1,274 +1,188 @@ -using $ProjectNamePrefix$.Core.Common.HttpContextUser; -using $ProjectNamePrefix$.Core.Extensions.Others; -using $ProjectNamePrefix$.Core.IServices; -using $ProjectNamePrefix$.Core.Model; -using $ProjectNamePrefix$.Core.Model.CommonModel; -using $ProjectNamePrefix$.Core.Model.Models; -using $ProjectNamePrefix$.Core.Model.ParamModels; -using $ProjectNamePrefix$.Core.Utility; +using Ao.Lang; +using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; +using CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; +using CMS.Plugin.$NameSpacePath$.Application.Contracts.Services; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using Newtonsoft.Json; -using System.Collections.Generic; -using System.Threading.Tasks; -using System; +using MiniExcelLibs; +using System.Reflection; +using Volo.Abp; +using Volo.Abp.Application.Dtos; -namespace $ProjectNamePrefix$.Core.Api.Controllers +namespace CMS.Plugin.$NameSpacePath$.Controller { /// <summary> - /// $ChinaComment$ + /// $ChinaComment$服务 /// </summary> - [Route("api/[controller]/[action]")] [ApiController] - [Authorize(Permissions.Name)] + [TypeFilter(typeof(CMSLanguageFilter))] + [TypeFilter(typeof(CMSUowActionFilter))] + [TypeFilter(typeof(CMSAuditActionFilter))] + [TypeFilter(typeof(CMSExceptionFilter))] + [Route("api/v{version:apiVersion}/$NameSpacePath$/[controller]")] public class $EntityName$Controller : ControllerBase { - private readonly I$EntityName$Services _$EntityName$Services; - private readonly IUser _user; - private readonly ILogger<$EntityName$Controller> _logger; + private readonly I$EntityName$AppService _$EntityInstanceName$AppService; - public $EntityName$Controller(I$EntityName$Services $EntityName$Services, IUser user, ILogger<$EntityName$Controller> logger) + /// <summary> + /// Initializes a new instance of the <see cref="$EntityName$Controller"/> class. + /// </summary> + /// <param name="$EntityInstanceName$AppService">The $EntityInstanceName$ application service.</param> + public $EntityName$Controller(I$EntityName$AppService $EntityInstanceName$AppService) { - _$EntityName$Services = $EntityName$Services; - _user = user; - _logger = logger; + _$EntityInstanceName$AppService = $EntityInstanceName$AppService; } /// <summary> - /// 分页获取$ChinaComment$列表 + /// 获取$ChinaComment$ /// </summary> - /// <param name="param">筛选条件</param> - /// <returns>获取结果</returns> - [HttpPost] - public async Task<MessageModel<PageModel<$EntityName$>>> Get([FromBody] $EntityName$Param param) - { - if (string.IsNullOrEmpty(param.searchVal) || string.IsNullOrWhiteSpace(param.searchVal)) - { - param.searchVal = string.Empty; - } - - var whereConditions = WhereConditionsExtensions.GetWhereConditions<$EntityName$, $EntityName$Param>(param); - if (!whereConditions.IsSuccess) { - return new MessageModel<PageModel<$EntityName$>>() - { - msg = whereConditions.ErrMsg, - success = false, - response = null - }; - } - var data = await _$EntityName$Services.QueryPage(whereConditions.data, param.page, param.pageSize, " $OrderByName$ desc "); - return new MessageModel<PageModel<$EntityName$>>() - { - msg = "获取成功", - success = true, - response = data - }; - - } - - /// <summary> - /// 获取单个$ChinaComment$ - /// </summary> - /// <param name="id">主键</param> - /// <returns>获取结果</returns> - [HttpGet] - public async Task<MessageModel<$EntityName$>> Get(int id = 0) - { - return new MessageModel<$EntityName$>() - { - msg = "获取成功", - success = true, - response = await _$EntityName$Services.QueryById(id) - }; - } - - /// <summary> - /// 新增$ChinaComment$ - /// </summary> - /// <param name="request">要新增的$ChinaComment$对象</param> + /// <param name="id">标识符.</param> /// <returns></returns> - [HttpPost] - public async Task<MessageModel<string>> Post([FromBody] $EntityName$ request) + [HttpGet] + [Route("{id}")] + public virtual Task<$EntityName$Dto> GetAsync(Guid id) { - try - { - #region 验证 - MessageModel<string> retBody = null; - retBody = ValidateDataHelper.CommonValidateIsNULL<$EntityName$, string>(request); - if (retBody != null) - { - return retBody; - } + return _$EntityInstanceName$AppService.GetAsync(id); + } - List<ValidateModel> columnsList = null; - columnsList = new List<ValidateModel>() { - $ValidateEmptyForInsert$ - }; - retBody = ValidateDataHelper.CommonValidate<$EntityName$, string>(request, columnsList); - if (retBody != null) - { - return retBody; - } - #endregion + /// <summary> + /// 分页获取$ChinaComment$的列表. + /// </summary> + /// <param name="input">输入.</param> + /// <returns></returns> + [HttpGet] + [Route("Page")] + public virtual Task<PagedResultDto<$EntityName$Dto>> GetListAsync([FromQuery] Get$EntityName$Input input) + { + return _$EntityInstanceName$AppService.GetListAsync(input); + } - request.CreateTime = request.ModifyTime = DateTime.Now; - request.CreateBy = request.ModifyBy = _user.Name; - request.CreateId = request.ModifyId = _user.ID; - request.OperationRemark = "添加"; - var id = await _$EntityName$Services.Add(request); - var success = id > 0; - - if (success) - { - return MessageModel<string>.Success("添加成功", id.ObjToString()); - } - return MessageModel<string>.Fail("添加失败"); - } - catch (Exception ex) - { - _logger.LogError(ex,"新增$ChinaComment$出现异常:" + ex.Message); - return MessageModel<string>.Fail("新增$ChinaComment$出现异常:" + ex.Message); - } + /// <summary> + /// 创建$ChinaComment$ + /// </summary> + /// <param name="input">输入.</param> + /// <returns></returns> + //[Authorize] + [HttpPost] + public virtual Task<$EntityName$Dto> CreateAsync($EntityName$CreateDto input) + { + return _$EntityInstanceName$AppService.CreateAsync(input); } /// <summary> /// 更新$ChinaComment$ /// </summary> - /// <param name="request">要更新的$ChinaComment$对象</param> - /// <returns>更新结果</returns> + /// <param name="id">标识符.</param> + /// <param name="input">输入.</param> + /// <returns></returns> + //[Authorize] [HttpPut] - public async Task<MessageModel<string>> Put([FromBody] $EntityName$ request) + [Route("{id}")] + public virtual Task<$EntityName$Dto> UpdateAsync(Guid id, $EntityName$UpdateDto input) { - try - { - #region 验证 - MessageModel<string> retBody = null; - retBody = ValidateDataHelper.CommonValidateIsNULL<$EntityName$, string>(request); - if (retBody != null) - { - return retBody; - } + return _$EntityInstanceName$AppService.UpdateAsync(id, input); + } - List<ValidateModel> columnsList = null; - columnsList = new List<ValidateModel>() - { - $ValidateEmptyForUpdate$ - }; - retBody = ValidateDataHelper.CommonValidate<$EntityName$, string>(request, columnsList); - if (retBody != null) - { - return retBody; - } - #endregion - - var dbObj = await _$EntityName$Services.QueryById(request.Id); - if (dbObj == null) - { - return MessageModel<string>.Fail("数据不存在!"); - } - - request.ModifyTime = DateTime.Now; - request.ModifyBy = _user.Name; - request.ModifyId = _user.ID; - request.OperationRemark = "更新"; - var success = await _$EntityName$Services.Update(request); - - if (success) - { - return MessageModel<string>.Success("更新成功", request.Id.ObjToString()); - } - return MessageModel<string>.Fail("更新失败"); - } - catch (Exception ex) - { - _logger.LogError(ex,"更新$ChinaComment$出现异常:" + ex.Message); - return MessageModel<string>.Fail("更新$ChinaComment$出现异常:" + ex.Message); - } + /// <summary> + /// 克隆$ChinaComment$ + /// </summary> + /// <param name="ids">Id集合.</param> + /// <returns></returns> + //[Authorize] + [HttpPost] + [Route("Clone")] + public virtual Task<List<$EntityName$Dto>> CloneAsync([FromBody] IEnumerable<Guid> ids) + { + return _$EntityInstanceName$AppService.CloneAsync(ids); } /// <summary> /// 删除$ChinaComment$ /// </summary> - /// <param name="id">主键</param> - /// <returns>删除结果</returns> + /// <param name="id">标识符.</param> + /// <returns></returns> + //[Authorize] [HttpDelete] - public async Task<MessageModel<string>> Delete(int id = 0) + [Route("{id}")] + public virtual Task DeleteAsync(Guid id) { - try - { - var data = new MessageModel<string>(); - if (id > 0) - { - var detail = await _$EntityName$Services.QueryById(id); - if (detail != null) - { - data.success = await _$EntityName$Services.DeleteById(detail.Id); - if (data.success) - { - data.msg = "删除成功"; - data.response = detail?.Id.ObjToString(); - } - } - else { - return MessageModel<string>.Fail("数据不存在!"); - } - } - else - { - data.success = false; - data.msg = "删除失败,$ChinaComment$不存在"; - } - return data; - } - catch (Exception ex) - { - _logger.LogError(ex,"删除$ChinaComment$出现异常:" + ex.Message); - return MessageModel<string>.Fail("删除$ChinaComment$出现异常:" + ex.Message); - } + return _$EntityInstanceName$AppService.DeleteAsync(id); } - /// <summary> - /// 逻辑删除$ChinaComment$ + /// <summary> + /// 批量删除$ChinaComment$ /// </summary> - /// <param name="id">主键</param> - /// <returns>删除结果</returns> + /// <param name="ids">The ids.</param> + /// <returns></returns> + //[Authorize] [HttpDelete] - public async Task<MessageModel<string>> LogicDelete(int id = 0) + public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) { - try + return _$EntityInstanceName$AppService.DeleteManyAsync(ids); + } + + /// <summary> + /// 调整排序$ChinaComment$ + /// </summary> + /// <param name="id">标识符.</param> + /// <returns></returns> + [HttpPut] + [Route("{id}/AdjustSort/{sort}")] + public virtual Task AdjustSortAsync(Guid id, int sort) + { + return _$EntityInstanceName$AppService.AdjustSortAsync(id, sort); + } + + /// <summary> + /// 导入$ChinaComment$ + /// </summary> + /// <returns></returns> + [Authorize] + [HttpPost] + [Route("Import")] + public virtual async Task<IActionResult> ImportAsync(IFormFile file) + { + using var stream = new MemoryStream(); + await file.CopyToAsync(stream); + stream.Seek(0L, SeekOrigin.Begin); + + var sheetNames = stream.GetSheetNames(); + var $EntityInstanceName$Rows = sheetNames.Contains("配置") ? MiniExcel.Query<$EntityName$sImportModel.$EntityName$ImportModel>(stream, sheetName: "配置").ToList() : new(); + + if (!$EntityInstanceName$Rows.Any()) { - var data = new MessageModel<string>(); - if (id > 0) - { - var detail = await _$EntityName$Services.QueryById(id); - if (detail != null) - { - detail.ModifyTime = DateTime.Now; - detail.ModifyBy = _user.Name; - detail.ModifyId = _user.ID; - detail.IsDeleted = true; - detail.OperationRemark = "删除"; - data.success = await _$EntityName$Services.Update(detail); - if (data.success) - { - data.msg = "删除成功"; - data.response = detail?.Id.ObjToString(); - } - } - } - else - { - data.success = false; - data.msg = "删除失败,数据不存在"; - } - return data; + throw new UserFriendlyException("请检查导入的表格"); } - catch (Exception ex) + + await _$EntityInstanceName$AppService.ImportAsync(new $EntityName$sImportModel { - _logger.LogError(ex,"逻辑删除$ChinaComment$出现异常:" + ex.Message); - return MessageModel<string>.Fail("逻辑删除$ChinaComment$出现异常:" + ex.Message); + $EntityName$s = $EntityInstanceName$Rows, + }); + + return Ok(); + } + + /// <summary> + /// 导出$ChinaComment$ + /// </summary> + /// <returns></returns> + [HttpGet] + [Route("Export")] + public virtual async Task<IActionResult> ExportAsync([FromQuery] Get$EntityName$Input input) + { + input.MaxResultCount = int.MaxValue; + var exportData = await _$EntityInstanceName$AppService.ExportAsync(input); + var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/$EntityName$导出模板.xlsx"); + if (!System.IO.File.Exists(templatePath)) + { + templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/$EntityName$导出模板.xlsx"); } + + var memoryStream = new MemoryStream(); + await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); + memoryStream.Seek(0L, SeekOrigin.Begin); + return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; } } -} \ No newline at end of file +} -- Gitblit v1.9.3