@{ ModelData modelData = Model; NamespaceObject namespaceObject = modelData.NamespaceObject; SysTableSchemaViewEntity[] sysTableSchemas = modelData.sysTableSchemas; ClassInfo classInfo= modelData.ClassInfos.FirstOrDefault(); //ClassInfo classInfo= modelData.ClassInfos.Where(x=>x.ClassName=="SecurityUserService").FirstOrDefault(); } using CloudBuilder.Core.DatabaseAccessor; using CloudBuilder.Core.Policy; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Transactions; using CloudBuilder.Core.Service; @{ if(classInfo.Usings!=null && classInfo.Usings.Length>0) { for (var i = 0; i < classInfo.Usings.Length; i++) { if(classInfo.Usings[i]=="CloudBuilder.Core.Service") continue; using @classInfo.Usings[i]; } } } namespace @namespaceObject.Namespace { [Authorize(AuthorizePolicy.PERMISSION)] [ApiController] [Route("[controller]/[action]")] public class @{@classInfo.ClassName.Replace("Service", "")}Controller : ControllerBase { private readonly IApplicationService service; private readonly @{@classInfo.InterfaceName} @classInfo.ClassName.StringToProtectedProerty(); public @{@classInfo.ClassName.Replace("Service", "")}Controller(IApplicationService service, @{@classInfo.InterfaceName} @classInfo.ClassName.StringToProtectedProerty()) { this.service = service; this.@classInfo.ClassName.StringToProtectedProerty()= @classInfo.ClassName.StringToProtectedProerty(); } @{ if(classInfo.ClassMethodInfos!=null && classInfo.ClassMethodInfos.Length>0 && classInfo.ClassMethodInfos[0].Parameters!=null) { for (var j= 0; j< classInfo.ClassMethodInfos.Length; j++) { //没有参数的情况======================================= if(classInfo.ClassMethodInfos[j].Parameters.Length==0) { if(classInfo.ClassMethodInfos[j].AuthorizeName!=null) { @classInfo.ClassMethodInfos[j].AuthorizeName } if(classInfo.ClassMethodInfos[j].PermissionOperate!=null) { @{ @string.Format(classInfo.ClassMethodInfos[j].PermissionOperate,"\""+@classInfo.ClassMethodInfos[j].PermissionOperateAttribute.Name+"\"", "\""+@classInfo.ClassMethodInfos[j].PermissionOperateAttribute.Operate.ToString()+"\"") } } if(classInfo.ClassMethodInfos[j].HttpName!=null) { @classInfo.ClassMethodInfos[j].HttpName } if(classInfo.ClassMethodInfos[j].UnitOfWorkName!=null) { @classInfo.ClassMethodInfos[j].UnitOfWorkName } if(@classInfo.ClassMethodInfos[j].MethodReturnName=="Void") { //文本开始================================================================================================================= public dynamic @{@classInfo.ClassMethodInfos[j].MethodName}() { try { @{ @classInfo.ClassName.StringToProtectedProerty()}.@{@classInfo.ClassMethodInfos[j].MethodName}(); return string.Empty; } catch (ValidatedException vex) { return vex; } catch (Exception ex) { return new ServiceErrorException(ex); } } //文本结束================================================================================================================= } else { //文本开始================================================================================================================= public dynamic @{@classInfo.ClassMethodInfos[j].MethodName}() { try { var result = @{@classInfo.ClassName.StringToProtectedProerty()}.@{@classInfo.ClassMethodInfos[j].MethodName}(); return result; } catch (ValidatedException vex) { return vex; } catch (Exception ex) { return new ServiceErrorException(ex); } } //文本结束================================================================================================================= } } //只有1个参数的情况============================================ if(classInfo.ClassMethodInfos[j].Parameters.Length>0) { //超过1个参数的情况,如果是get,不能用组合对象,如果是post,要重新组合一个类======================================== if(classInfo.ClassMethodInfos[j].Parameters.Length>1 && classInfo.ClassMethodInfos[j].HttpName!="[HttpGet]") { public class @{@classInfo.ClassMethodInfos[j].MethodName}CompositionData { for (var ik = 0; ik < classInfo.ClassMethodInfos[j].Parameters.Length; ik++){ string parameterTypeName=classInfo.ClassMethodInfos[j].Parameters[ik].ParameterTypeName; if(classInfo.ClassMethodInfos[j].Parameters[ik].IsValueType) { if(classInfo.ClassMethodInfos[j].Parameters[ik].ParameterTypeName=="String") parameterTypeName="string"; if(classInfo.ClassMethodInfos[j].Parameters[ik].ParameterTypeName=="Boolean") parameterTypeName="bool"; } public @parameterTypeName @classInfo.ClassMethodInfos[j].Parameters[ik].ParameterName { get; set; } } } } if(classInfo.ClassMethodInfos[j].AuthorizeName!=null) { @classInfo.ClassMethodInfos[j].AuthorizeName } if(classInfo.ClassMethodInfos[j].PermissionOperate!=null) { @{ @string.Format(classInfo.ClassMethodInfos[j].PermissionOperate,"\""+@classInfo.ClassMethodInfos[j].PermissionOperateAttribute.Name+"\"","\""+@classInfo.ClassMethodInfos[j].PermissionOperateAttribute.Operate.ToString()+"\"") } } if(classInfo.ClassMethodInfos[j].HttpName!=null) { @classInfo.ClassMethodInfos[j].HttpName } if(classInfo.ClassMethodInfos[j].UnitOfWorkName!=null) { @classInfo.ClassMethodInfos[j].UnitOfWorkName } if(@classInfo.ClassMethodInfos[j].MethodReturnName=="Void") { string parametersName=@classInfo.ClassMethodInfos[j].Parameters[0].ParameterTypeName.Replace("String", "string").Replace("Boolean", "bool")+" "+@classInfo.ClassMethodInfos[j].Parameters[0].ParameterName; if(classInfo.ClassMethodInfos[j].Parameters.Length>1 && classInfo.ClassMethodInfos[j].HttpName!="[HttpGet]") { parametersName=@classInfo.ClassMethodInfos[j].MethodName+"CompositionData compositionData"; } else if(classInfo.ClassMethodInfos[j].Parameters.Length>1){ parametersName=string.Empty; } //文本开始================================================ public dynamic @{@classInfo.ClassMethodInfos[j].MethodName}(@{@parametersName}){ try { @{ @classInfo.ClassName.StringToProtectedProerty()}.@{@classInfo.ClassMethodInfos[j].MethodName}(@{for (var i = 0; i < classInfo.ClassMethodInfos[j].Parameters.Length; i++){ if(classInfo.ClassMethodInfos[j].Parameters.Length>1){ if(i>0){,}compositionData.@classInfo.ClassMethodInfos[j].Parameters[i].ParameterName } else{ @classInfo.ClassMethodInfos[j].Parameters[i].ParameterName } }}); return string.Empty; } catch (ValidatedException vex) { return vex; } catch (Exception ex) { return new ServiceErrorException(ex); } } //文本结束=================================================== } else { string parametersName=@classInfo.ClassMethodInfos[j].Parameters[0].ParameterTypeName.Replace("String", "string").Replace("Boolean", "bool")+" "+@classInfo.ClassMethodInfos[j].Parameters[0].ParameterName; if(classInfo.ClassMethodInfos[j].Parameters.Length>1 && classInfo.ClassMethodInfos[j].HttpName!="[HttpGet]") { parametersName=@classInfo.ClassMethodInfos[j].MethodName+"CompositionData compositionData"; } else if(classInfo.ClassMethodInfos[j].Parameters.Length>1) { parametersName=string.Empty; for (var ikb = 0; ikb < classInfo.ClassMethodInfos[j].Parameters.Length; ikb++){ if(ikb>0)parametersName+=", "; parametersName+=@classInfo.ClassMethodInfos[j].Parameters[ikb].ParameterTypeName.Replace("String", "string").Replace("Boolean", "bool")+" "+@classInfo.ClassMethodInfos[j].Parameters[ikb].ParameterName; } } //文本开始================================================ public dynamic @{@classInfo.ClassMethodInfos[j].MethodName}(@{@parametersName}) { try { var result = @{@classInfo.ClassName.StringToProtectedProerty()}.@{@classInfo.ClassMethodInfos[j].MethodName}(@{for (var i = 0; i < classInfo.ClassMethodInfos[j].Parameters.Length; i++){ if(classInfo.ClassMethodInfos[j].Parameters.Length>1){ if(i>0){,}if(classInfo.ClassMethodInfos[j].HttpName!="[HttpGet]"){compositionData.}@classInfo.ClassMethodInfos[j].Parameters[i].ParameterName } else{ @classInfo.ClassMethodInfos[j].Parameters[i].ParameterName } }}); return result; } catch (ValidatedException vex) { return vex; } catch (Exception ex) { return new ServiceErrorException(ex); } } //文本结束=================================================== } } } } //下面}为代码段结束================================================================================================================= } } }