|
|
|
|
using Commons.Collections;
|
|
|
|
|
using NVelocity.App;
|
|
|
|
|
using NVelocity.Runtime;
|
|
|
|
|
using NVelocity;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
#region << 版 本 注 释 >>
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
|
* 版权所有 (c) 2024 WenJY 保留所有权利。
|
|
|
|
|
* CLR版本:4.0.30319.42000
|
|
|
|
|
* 机器名称:LAPTOP-E0N2L34V
|
|
|
|
|
* 命名空间:SlnMesnac.Generate.Templates
|
|
|
|
|
* 唯一标识:4acc596a-6223-4156-b16c-952c225eff25
|
|
|
|
|
*
|
|
|
|
|
* 创建者:WenJY
|
|
|
|
|
* 电子邮箱:wenjy@mesnac.com
|
|
|
|
|
* 创建时间:2024-04-11 13:27:33
|
|
|
|
|
* 版本:V1.0.0
|
|
|
|
|
* 描述:
|
|
|
|
|
*
|
|
|
|
|
*--------------------------------------------------------------------
|
|
|
|
|
* 修改人:
|
|
|
|
|
* 时间:
|
|
|
|
|
* 修改说明:
|
|
|
|
|
*
|
|
|
|
|
* 版本:V1.0.0
|
|
|
|
|
*--------------------------------------------------------------------*/
|
|
|
|
|
#endregion << 版 本 注 释 >>
|
|
|
|
|
namespace SlnMesnac.Generate.Templates.Service.Impl
|
|
|
|
|
{
|
|
|
|
|
public class ServiceCreate
|
|
|
|
|
{
|
|
|
|
|
private static readonly string templateDir = @"E:\桌面\SlnMesnac\SlnMesnac.Generate\Templates\Service\Impl\";
|
|
|
|
|
|
|
|
|
|
public bool Create(string tableName, string NameSpace, string outdir)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
VelocityEngine velocityEngine = new VelocityEngine();
|
|
|
|
|
ExtendedProperties props = new ExtendedProperties();
|
|
|
|
|
props.AddProperty(RuntimeConstants.RESOURCE_LOADER, @"file");
|
|
|
|
|
props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, templateDir);
|
|
|
|
|
props.AddProperty(RuntimeConstants.INPUT_ENCODING, "utf-8");
|
|
|
|
|
props.AddProperty(RuntimeConstants.OUTPUT_ENCODING, "utf-8");
|
|
|
|
|
//模板的缓存设置
|
|
|
|
|
props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_CACHE, true); //是否缓存
|
|
|
|
|
props.AddProperty("file.resource.loader.modificationCheckInterval", (Int64)30); //缓存时间(秒)
|
|
|
|
|
velocityEngine.Init(props);
|
|
|
|
|
//为模板变量赋值
|
|
|
|
|
VelocityContext context = new VelocityContext();
|
|
|
|
|
context.Put("tableName", tableName);
|
|
|
|
|
context.Put("NameSpace", NameSpace);
|
|
|
|
|
context.Put("outdir", outdir);
|
|
|
|
|
//从文件中读取模板
|
|
|
|
|
Template template = velocityEngine.GetTemplate(@"\Services.vm");
|
|
|
|
|
if (!Directory.Exists(outdir + "\\Services"))
|
|
|
|
|
{
|
|
|
|
|
Directory.CreateDirectory(outdir + "\\Services");
|
|
|
|
|
}
|
|
|
|
|
//合并模板
|
|
|
|
|
using (StreamWriter writer = new StreamWriter(outdir + $"\\Services\\{tableName.Substring(0, 1).ToUpper()}{tableName.Substring(1)}ServiceImpl.cs", false))
|
|
|
|
|
{
|
|
|
|
|
template.Merge(context, writer);
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}catch(Exception ex)
|
|
|
|
|
{
|
|
|
|
|
throw new InvalidOperationException($"Service实现类模板创建异常:{ex.Message}");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|