222
schangxiang@126.com
2025-04-29 4352ad5cbeef498392178655cb367ee38e574178
222
已添加62个文件
7732 ■■■■■ 文件已修改
Weben_CMS专用代码生成器/Code/App.config 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/DataBaseFactory/DataBaseServiceFactory.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/DataBaseFactory/DataBaseServiceHandle.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/DataBaseFactory/Default/MySqlDataBaseServiceHandle.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/DataBaseFactory/Default/SqlServerDataBaseServiceHandle.cs 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/BLL_Generate.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/BaseGenerate.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/Controller/Controller_Generate.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/DAL_Generate.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/Entity/AddModel_Generate.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/Entity/InputModel_Generate.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/Entity/OutputModel_Generate.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/InsertSQL_Generate.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/Model_Generate.cs 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/Procedure_Generate.cs 272 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/Services_InterfaceRealize_Generate.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/Services_Interface_Generate.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/VUE/VUE_FunConfig_Generate.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Generate/VUE/VUE_Generate.cs 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/GenerateCode_WeiBen_CMS.csproj 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/GenerateCode_WeiBen_CMS.sln 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/MainForm.Designer.cs 594 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/MainForm.cs 377 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/MainForm.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Model/ColumnModell.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Model/Enum/DataBaseEnum.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Model/Enum/DataTypeEnum.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Model/ListItem.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Model/Proc.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Model/SystemCommonVar.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Program.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Properties/AssemblyInfo.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Properties/Resources.Designer.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Properties/Resources.resx 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Properties/Settings.Designer.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Properties/Settings.settings 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Robot.ico 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/BLL模板.txt 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Controller模板.txt 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/DAL模板.txt 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Entity/AddModel模板.txt 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Entity/InputModel模板.txt 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Entity/OutputModel模板.txt 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/InitSQL模板.txt 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Proc/修改一条记录存储过程.txt 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Proc/修改一条记录存储过程2.txt 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Proc/分页存储过程.txt 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Proc/列表存储过程.txt 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Proc/增加一条记录存储过程.txt 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Proc/得到一个实体存储过程.txt 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Services接口实现模板.txt 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/Services接口模板.txt 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/VUE/VUE文件模板.txt 485 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Templete/VUE/VUE方法配置.txt 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Utility/CommonHelper.cs 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Utility/ListHelper.cs 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Utility/MySqlHelper.cs 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Utility/SQLHelper.cs 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Utility/StructStrHelper.cs 1682 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/Utility/TextHelper.cs 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Code/packages.config 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/版本说明.txt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/App.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="本地_MySql_CMS" connectionString="Server=localhost;Database=4b25b01c1f7f49d19153de6b0906eafc_project;Uid=root;Pwd=123abc.com;" />
    <add name="LA22012_武汉牧野_生产库_伟本环境" connectionString="Data Source=10.10.40.166;Initial Catalog=WHMY_Prod_Test;Persist Security Info=True;User ID=sa;Password=123abc.com" />
    <add name="LA22012_武汉牧野_生产库_26测试环境" connectionString="Data Source=172.27.96.26;Initial Catalog=WHMY_Prod_Test;Persist Security Info=True;User ID=sa;Password=MJC!2022@wms" />
    <add name="LA22012_武汉牧野_备件库_伟本环境" connectionString="Data Source=10.10.40.166;Initial Catalog=WHMY_Admin.NET;Persist Security Info=True;User ID=sa;Password=123abc.com" />
    <add name="LA22012_武汉牧野_备件库_26测试环境" connectionString="Data Source=172.27.96.26;Initial Catalog=WHMY_Admin.NET;Persist Security Info=True;User ID=sa;Password=MJC!2022@wms" />
    <add name="LA21030_武汉牧野_生产" connectionString="Data Source=172.27.105.59;Initial Catalog=WHMY_Admin.NET;Persist Security Info=True;User ID=sa;Password=123abc.com" />
    <add name="LA21030_武汉牧野_本地" connectionString="Data Source=localhost;Initial Catalog=WHMY_Admin.NET;Persist Security Info=True;User ID=sa;Password=123abc.com" />
    <add name="LA18032_AoSinWms_云" connectionString="Data Source=120.53.244.200;Initial Catalog=LA18032_AoSinWms;Persist Security Info=True;User ID=sa;Password=123abc.com" />
    <add name="GSiemens_LES" connectionString="Data Source=localhost;Initial Catalog=GSiemens_LES;Persist Security Info=True;User ID=sa;Password=123abc.com" />
    <add name="GSiemens_WIP" connectionString="Data Source=.;Initial Catalog=GSiemens_WIP;Persist Security Info=True;User ID=sa;Password=123abc.com" />
    <add name="LocalhostConn" connectionString="Data Source=shaocx;Initial Catalog=SOADB;User ID=sa;Password=1111" />
  </connectionStrings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /></startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/DataBaseFactory/DataBaseServiceFactory.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
using GenerateCode_GEBrilliantFactory;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GenerateCode_WeiBen_WMS.DataBaseFactory
{
    public class DataBaseServiceFactory
    {
        public static DataBaseServiceHandle GetHandle(DataBaseEnum meterialType)
        {
            DataBaseServiceHandle handle = null;
            switch (meterialType)
            {
                case DataBaseEnum.SqlServer:
                    handle = new SqlServerDataBaseServiceHandle();
                    break;
                case DataBaseEnum.MySql:
                    handle = new MySqlDataBaseServiceHandle();
                    break;
            }
            return handle;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/DataBaseFactory/DataBaseServiceHandle.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
using GenerateCode_GEBrilliantFactory;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GenerateCode_WeiBen_WMS.DataBaseFactory
{
    public class DataBaseServiceHandle
    {
        #region è™šæ–¹æ³•
        /// <summary>
        /// èŽ·å–æ•°æ®åº“è¡¨åˆ—è¡¨
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="connStr"></param>
        /// <returns></returns>
        public virtual List<ColumnModel> GetColumnList(string tableName, string connStr)
        {
            return null;
        }
        /// <summary>
        /// è½¬æ¢
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public virtual List<ColumnModel> DataTableToList(DataTable dt)
        {
            return null;
        }
        #endregion
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/DataBaseFactory/Default/MySqlDataBaseServiceHandle.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
using GenerateCode_GEBrilliantFactory;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GenerateCode_WeiBen_WMS.DataBaseFactory
{
    public class MySqlDataBaseServiceHandle : DataBaseServiceHandle
    {
        public override List<ColumnModel> GetColumnList(string tableName, string connStr)
        {
            //string strSql = $"SELECT COLUMN_NAME as ColumnName, COLUMN_TYPE as DataType, IS_NULLABLE as IsNullable, CHARACTER_MAXIMUM_LENGTH as DataLength,COLUMN_COMMENT as Description " +
            //                       $"FROM INFORMATION_SCHEMA.COLUMNS " +
            //                       $"WHERE  TABLE_NAME = '{tableName}'";
            string strSql = $"SELECT c.COLUMN_NAME as ColumnName, c.COLUMN_TYPE as DataType, c.IS_NULLABLE as IsNullable, c.CHARACTER_MAXIMUM_LENGTH as DataLength, c.COLUMN_COMMENT as Description, " +
                $"CASE WHEN kcu.COLUMN_NAME IS NOT NULL THEN 'true' ELSE 'false' END AS IsPrimaryKey " +
                $"FROM INFORMATION_SCHEMA.COLUMNS c " +
                $"LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu " +
                $"ON c.TABLE_SCHEMA = kcu.TABLE_SCHEMA " +
                $"AND c.TABLE_NAME = kcu.TABLE_NAME " +
                $"AND c.COLUMN_NAME = kcu.COLUMN_NAME " +
                $"AND kcu.CONSTRAINT_NAME = 'PRIMARY' " +
                $"WHERE c.TABLE_NAME = '{tableName}'";
            List<ColumnModel> columnList = new List<ColumnModel>();
            try
            {
                DataSet ds = MySqlHelper.Query(connStr, strSql);
                columnList = DataTableToList(ds.Tables[0]);
            }
            catch
            {
                throw;
            }
            finally
            {
            }
            return columnList;
        }
        public override List<ColumnModel> DataTableToList(DataTable dt)
        {
            try
            {
                List<ColumnModel> modelList = new List<ColumnModel>();
                int rowsCount = dt.Rows.Count;
                if (rowsCount > 0)
                {
                    ColumnModel model;
                    for (int n = 0; n < rowsCount; n++)
                    {
                        model = new ColumnModel();
                        //if (dt.Rows[n]["Precision"]!=null && dt.Rows[n]["Precision"].ToString() != "")
                        //{
                        //    model.Precision = int.Parse(dt.Rows[n]["Precision"].ToString());
                        //}
                        //if (dt.Rows[n]["Scale"].ToString() != "")
                        //{
                        //    model.Scale = int.Parse(dt.Rows[n]["Scale"].ToString());
                        //}
                        model.ColumnName = dt.Rows[n]["ColumnName"].ToString();
                        model.DataLength = dt.Rows[n]["DataLength"].ToString();
                        model.DataType = dt.Rows[n]["DataType"].ToString();
                        if (model.DataType.ToUpper() == "nvarchar".ToUpper())
                        {
                            if (model.DataLength != "-1")
                            {
                                model.DataLength = ((int)Convert.ToInt32(model.DataLength) / 2).ToString();
                            }
                        }
                        model.Description = dt.Rows[n]["Description"].ToString();
                        if (dt.Rows[n]["IsNullable"].ToString() != "")
                        {
                            if ((dt.Rows[n]["IsNullable"].ToString() == "1") || (dt.Rows[n]["IsNullable"].ToString().ToLower() == "true"))
                            {
                                model.IsNullable = true;
                            }
                            else
                            {
                                model.IsNullable = false;
                            }
                        }
                        if (dt.Rows[n]["IsPrimaryKey"].ToString() != "")
                        {
                            if ((dt.Rows[n]["IsPrimaryKey"].ToString() == "1") || (dt.Rows[n]["IsPrimaryKey"].ToString().ToLower() == "true"))
                            {
                                model.IsPrimaryKey = true;
                            }
                            else
                            {
                                model.IsPrimaryKey = false;
                            }
                        }
                        modelList.Add(model);
                    }
                }
                return modelList;
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/DataBaseFactory/Default/SqlServerDataBaseServiceHandle.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
using GenerateCode_GEBrilliantFactory;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GenerateCode_WeiBen_WMS.DataBaseFactory
{
    public class SqlServerDataBaseServiceHandle : DataBaseServiceHandle
    {
        public override List<ColumnModel> GetColumnList(string tableName, string connStr)
        {
            string strSql = @" select
col.name as ColumnName,
t.name as DataType,
ep.value as Description,
col.max_length as DataLength,
col.is_nullable as IsNullable,
(
    select top 1 ind.is_primary_key from sys.index_columns ic
    left join sys.indexes ind
    on ic.object_id=ind.object_id
    and ic.index_id=ind.index_id
    and ind.name like 'PK_%'
    where ic.object_id=obj.object_id
    and ic.column_id=col.column_id
) as IsPrimaryKey,
col.Precision,
col.Scale
from sys.objects obj
inner join sys.columns col
on obj.object_id=col.object_id
left join sys.types t
on t.user_type_id=col.user_type_id
left join sys.extended_properties ep
on ep.major_id=obj.object_id
and ep.minor_id=col.column_id
and ep.name='MS_Description'
where obj.name='" + tableName + "'  ";
            List<ColumnModel> columnList = new List<ColumnModel>();
            try
            {
                DataSet ds = SqlHelper.Query(connStr, strSql);
                columnList = DataTableToList(ds.Tables[0]);
            }
            catch
            {
                throw;
            }
            finally
            {
            }
            return columnList;
        }
        public override List<ColumnModel> DataTableToList(DataTable dt)
        {
            try
            {
                List<ColumnModel> modelList = new List<ColumnModel>();
                int rowsCount = dt.Rows.Count;
                if (rowsCount > 0)
                {
                    ColumnModel model;
                    for (int n = 0; n < rowsCount; n++)
                    {
                        model = new ColumnModel();
                        if (dt.Rows[n]["Precision"].ToString() != "")
                        {
                            model.Precision = int.Parse(dt.Rows[n]["Precision"].ToString());
                        }
                        if (dt.Rows[n]["Scale"].ToString() != "")
                        {
                            model.Scale = int.Parse(dt.Rows[n]["Scale"].ToString());
                        }
                        model.ColumnName = dt.Rows[n]["ColumnName"].ToString();
                        model.DataLength = dt.Rows[n]["DataLength"].ToString();
                        model.DataType = dt.Rows[n]["DataType"].ToString();
                        if (model.DataType.ToUpper() == "nvarchar".ToUpper())
                        {
                            if (model.DataLength != "-1")
                            {
                                model.DataLength = ((int)Convert.ToInt32(model.DataLength) / 2).ToString();
                            }
                        }
                        model.Description = dt.Rows[n]["Description"].ToString();
                        if (dt.Rows[n]["IsNullable"].ToString() != "")
                        {
                            if ((dt.Rows[n]["IsNullable"].ToString() == "1") || (dt.Rows[n]["IsNullable"].ToString().ToLower() == "true"))
                            {
                                model.IsNullable = true;
                            }
                            else
                            {
                                model.IsNullable = false;
                            }
                        }
                        if (dt.Rows[n]["IsPrimaryKey"].ToString() != "")
                        {
                            if ((dt.Rows[n]["IsPrimaryKey"].ToString() == "1") || (dt.Rows[n]["IsPrimaryKey"].ToString().ToLower() == "true"))
                            {
                                model.IsPrimaryKey = true;
                            }
                            else
                            {
                                model.IsPrimaryKey = false;
                            }
                        }
                        modelList.Add(model);
                    }
                }
                return modelList;
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/BLL_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@

using System.Collections.Generic;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// ç”ŸæˆBLL
    /// </summary>
    public class BLL_Generate : BaseGenerate
    {
        public static string CreateBLLText(string filePrefixName, string TableName, string entityName, string Author,
            string ChinaComment, string primaryKey, string primaryKeyDesc, string Modulelogo, string tableAlias,
            string addEntityParam,
            List<ColumnModel> columnNameList)
        {
            var str = TextHelper.ReadText(@"Templete\BLL模板.txt");
            CommonReplace(ref str);
            str = str.Replace("$TableName$", TableName);//表名
            str = str.Replace("$Author$", Author);//作者
            str = str.Replace("$ChinaComment$", ChinaComment);//中文注释
            str = str.Replace("$CurDate$", CommonHelper.GetCurDate());//当前时间
            str = str.Replace("$EntityName$", entityName);//实体类名
            str = str.Replace("$FilePrefixName$", filePrefixName);//模块名
            str = str.Replace("$Modulelogo$", Modulelogo);//模块简写
            str = str.Replace("$PrimaryKey$", primaryKey);//主键
            str = str.Replace("$PrimaryKeyDesc$", primaryKeyDesc);//描述
            str = str.Replace("$TableAlias$", tableAlias);//表别名
            str = str.Replace("$AddEntityParam$", addEntityParam);
            str = str.Replace("$ToSingleModel$", StructStrHelper.GetToModelStr(columnNameList));//动态给实体类赋值
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/BaseGenerate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GenerateCode_GEBrilliantFactory
{
    public class BaseGenerate
    {
        public static void CommonReplace(ref string str)
        {
            str = str.Replace("$ProjectNamePrefix$", MainForm.projectNamePrefix);
            str = str.Replace("$DataBaseName$", MainForm.dataBaseName);
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/Controller/Controller_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// ç”ŸæˆControllerç±»
    /// </summary>
    public class Controller_Generate : BaseGenerate
    {
        public static string CreateText(string Modulelogo,
            string ChinaComment, List<ColumnModel> columnNameList, string entityName, string orderByName = "")
        {
            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));
            var pageStr = StructStrHelper.GetPageFilterStrForController(columnNameList);
            str = str.Replace("$PageSearchFilter$", pageStr);
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/DAL_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@

using System.Collections.Generic;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// ç”ŸæˆDAL
    /// </summary>
    public class DAL_Generate : BaseGenerate
    {
        public static string CreateDALText(string filePrefixName, string TableName, string entityName, string Author,
            string ChinaComment, string primaryKey, string primaryKeyDesc, string Modulelogo,string tableAlias,
            List<ColumnModel> columnNameList)
        {
            var str = TextHelper.ReadText(@"Templete\DAL模板.txt");
            CommonReplace(ref str);
            //存储过程名
            ProcName procName = CommonHelper.GetProcName(Modulelogo);
            str = str.Replace("$AddProcName$", procName.AddProc);
            str = str.Replace("$UpdateProcName$", procName.UpdateProc);
            str = str.Replace("$GetSingleProcName$", procName.GetSingleProc);
            str = str.Replace("$GetListProcName$", procName.ListProc);
            str = str.Replace("$GetPageListProcName$", procName.PageListProc);
            str = str.Replace("$TableName$", TableName);//表名
            str = str.Replace("$Author$", Author);//作者
            str = str.Replace("$ChinaComment$", ChinaComment);//中文注释
            str = str.Replace("$CurDate$", CommonHelper.GetCurDate());//当前时间
            str = str.Replace("$EntityName$", entityName);//实体类名
            str = str.Replace("$TableAlias$", tableAlias);//表别名
            str = str.Replace("$FilePrefixName$", filePrefixName);//模块名
            str = str.Replace("$Modulelogo$", Modulelogo);//模块简写
            str = str.Replace("$PrimaryKey$", primaryKey);//主键
            str = str.Replace("$PrimaryKeyDesc$", primaryKeyDesc);//主键描述
            str = str.Replace("$ToSingleModel$", StructStrHelper.GetToModelStr(columnNameList));//动态给实体类赋值
            str = str.Replace("$AddSqlParameter$", StructStrHelper.GetParameterForAddDAL(columnNameList));
            str = str.Replace("$UpdateSqlParameter$", StructStrHelper.GetParameterForUpdateDAL(columnNameList));
            str = str.Replace("$QueryPageSqlParameter$", StructStrHelper.GetParameterForQueryPageDAL(columnNameList));
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/Entity/AddModel_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// ç”Ÿæˆæ–°å¢žå‚数实体类
    /// </summary>
    public class AddModel_Generate : BaseGenerate
    {
        public static string CreateAddModelLText(string addEntityParam,
            string ChinaComment, List<ColumnModel> columnNameList)
        {
            //var str = TextHelper.ReadText(@"Templete\Entity\AddModel模板.txt");
            var str = TextHelper.ReadText(@"Templete\Entity\InputModel模板.txt");
            CommonReplace(ref str);
            str = str.Replace("$ChinaComment$", ChinaComment);//中文注释
            str = str.Replace("$AddEntityParam$", addEntityParam);
            string attrString = "";
            List<ColumnModel> newColumnNameList = ListHelper.RemoveIdCreatorModifier(columnNameList);
            for (int i = 0; i < newColumnNameList.Count; ++i)
            {
                attrString += StructStrHelper.GenerateAttributeForAddModel(newColumnNameList[i]);
            }
            str = str.Replace("$AddAttributes$", attrString);
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/Entity/InputModel_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// ç”ŸæˆæŸ¥è¯¢å®žä½“ç±»
    /// </summary>
    public class InputModel_Generate : BaseGenerate
    {
        public static string CreateQueryModelLText(string Modulelogo,
            string ChinaComment, List<ColumnModel> columnNameList, string entityName)
        {
            var str = TextHelper.ReadText(@"Templete\Entity\InputModel模板.txt");
            CommonReplace(ref str);
            str = str.Replace("$ChinaComment$", ChinaComment);//中文注释
            str = str.Replace("$EntityName$", entityName);
            str = str.Replace("$Modulelogo$", Modulelogo);//模块简写
            //处理 åˆ†é¡µæŸ¥è¯¢éƒ¨åˆ†
            string attrString = "";
            List<ColumnModel> newColumnNameList = ListHelper.OnlyRemoveId(columnNameList);
            for (int i = 0; i < newColumnNameList.Count; ++i)
            {
                attrString += StructStrHelper.GenerateAttributeForQueryModel(newColumnNameList[i]);
                attrString += StructStrHelper.GenerateAttributeForQueryModelMode(newColumnNameList[i]);
            }
            str = str.Replace("$QueryAttributes$", attrString);
            //处理 æ–°å¢žéƒ¨åˆ†
            attrString = "";
            newColumnNameList = ListHelper.RemoveIdCreatorModifier(columnNameList);
            for (int i = 0; i < newColumnNameList.Count; ++i)
            {
                attrString += StructStrHelper.GenerateAttribute(i,newColumnNameList[i]);
            }
            str = str.Replace("$AddAttributes$", attrString);
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/Entity/OutputModel_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// è¾“出参数- ç”ŸæˆæŸ¥è¯¢å®žä½“ç±»
    /// </summary>
    public class OutputModel_Generate : BaseGenerate
    {
        public static string CreateQueryModelLText(string Modulelogo,
            string ChinaComment, List<ColumnModel> columnNameList, string entityName)
        {
            var str = TextHelper.ReadText(@"Templete\Entity\OutputModel模板.txt");
            CommonReplace(ref str);
            str = str.Replace("$ChinaComment$", ChinaComment);//中文注释
            str = str.Replace("$EntityName$", entityName);
            str = str.Replace("$Modulelogo$", Modulelogo);//模块简写
            //处理 åˆ†é¡µæŸ¥è¯¢è¿”回部分
            string attrString = "";
            List<ColumnModel> newColumnNameList = ListHelper.RemoveCreatedTimeUpdatedTimeCreatedUserIdCreatedUserNameUpdatedUserIdUpdatedUserName(columnNameList);
            for (int i = 0; i < newColumnNameList.Count; ++i)
            {
                attrString += StructStrHelper.GenerateAttribute(i, newColumnNameList[i]);
            }
            str = str.Replace("$QueryOutputAttributes$", attrString);
            //处理 å¯¼å‡ºè¿”回部分
            attrString = "";
            newColumnNameList = ListHelper.RemoveIdCreateIdModifyIdDelFlag(columnNameList);
            for (int i = 0; i < newColumnNameList.Count; ++i)
            {
                attrString += StructStrHelper.GenerateAttribute(i, newColumnNameList[i], true);
            }
            str = str.Replace("$ExportOutputAttributes$", attrString);
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/InsertSQL_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// InsertSQL文件生成
    /// </summary>
    public class InsertSQL_Generate : BaseGenerate
    {
        /// <summary>
        /// ç”ŸæˆInsertSQL
        /// </summary>
        /// <param name="TableName"></param>
        /// <param name="Author"></param>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static string CreateInsertSQLText(string TableName, string Author, string ChinaComment,
            List<ColumnModel> columnNameList)
        {
            try
            {
                StringBuilder sbText = new StringBuilder();
                sbText.Append(GetInsertSQLStr(TableName, Author,ChinaComment, columnNameList));
                return sbText.ToString();
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// ç”ŸæˆInsertSQL
        /// </summary>
        /// <param name="TableName"></param>
        /// <param name="Author"></param>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        private static string GetInsertSQLStr(string TableName, string Author, string ChinaComment, List<ColumnModel> columnNameList)
        {
            var str = TextHelper.ReadText(@"Templete\InitSQL模板.txt");
            CommonReplace(ref str);
            str = str.Replace("$TableName$", TableName);//表名
            str = str.Replace("$Author$", Author);//作者
            str = str.Replace("$TableName$", TableName);//表名
            str = str.Replace("$Author$", Author);//作者
            str = str.Replace("$ChinaComment$", ChinaComment);//中文注释
            str = str.Replace("$CurDate$", CommonHelper.GetCurDate());//当前时间
            string str_insert_cols = StructStrHelper.GetColumnsStrNoIDForAdd(columnNameList, "");
            str = str.Replace("$insert_cols$", str_insert_cols);
            str = str.Replace("$insert_cols_values$", StructStrHelper.GetColumnsStrNoIDForInsertSQL(columnNameList));
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/Model_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    public class Model_Generate : BaseGenerate
    {
        /// <summary>
        /// åˆ›å»ºå®žä½“ç±»
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="columnNameList"></param>
        /// <param name="filePrefixName">文件前缀名</param>
        /// <param name="nameSpacePath">类命名空间</param>
        /// <param name="createPerson">创建人</param>
        /// <param name="chinaComment">中文注释</param>
        /// <param name="entityName">实体类名</param>
        /// <returns></returns>
        public static string GenerateModel(string tableName, List<ColumnModel> columnNameList, string filePrefixName, string nameSpacePath,
            string createPerson, string chinaComment, string entityName
            )
        {
            string header = "using System;\n"
                         + "using System.Runtime.Serialization; \n"
                         + "                   \n"
                         + "namespace WIP_Models \n"
                         + "{\n"
                         + "    /// <summary>\n"
                         + "    /// " + chinaComment + "实体类\n"
                         + "    /// </summary>\n"
                         + "    [DataContract]\n"
                         + "    public class $entityName$ \n"
                         + "    {\n\n";
            int columnCount = columnNameList.Count;
            string attrString = "";
            for (int i = 0; i < columnCount; ++i)
            {
                attrString += StructStrHelper.GenerateAttribute(i, columnNameList[i]);
            }
            string footer = "    }\n"
                + "}";
            string modelContent = header + attrString + footer;
            modelContent = modelContent.Replace(
                            "$NowTimeStr$", DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day
                            + " "
                            + DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second);//创建时间
            modelContent = modelContent.Replace("$CreatePerson$", createPerson);//创建人
            modelContent = modelContent.Replace("$nameSpacePath$", nameSpacePath);//命名空间
            modelContent = modelContent.Replace("$entityName$", entityName);//实体类名
            CommonReplace(ref modelContent);
            return modelContent;
        }
        /// <summary>
        /// åˆ›å»ºå®žä½“ç±»
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="columnNameList"></param>
        /// <param name="filePrefixName">文件前缀名</param>
        /// <param name="nameSpacePath">类命名空间</param>
        /// <param name="createPerson">创建人</param>
        /// <param name="chinaComment">中文注释</param>
        /// <param name="entityName">实体类名</param>
        /// <returns></returns>
        public static string GenerateModelParam(string tableName, List<ColumnModel> columnNameList, string filePrefixName, string nameSpacePath,
            string createPerson, string chinaComment, string entityName
            )
        {
            string header = "using System;\n"
                         + "using System.Runtime.Serialization; \n"
                         + "                   \n"
                         + "namespace " + MainForm.projectNamePrefix + ".Core.Model.ParamModels \n"
                         + "{\n"
                         + "    /// <summary>\n"
                         + "    /// " + chinaComment + "实体类\n"
                         + "    /// </summary>\n"
                         + "    public class $entityName$Param : PageParam \n"
                         + "    {\n\n";
            int columnCount = columnNameList.Count;
            string attrString = "";
            for (int i = 0; i < columnCount; ++i)
            {
                attrString += StructStrHelper.GenerateAttribute(i, columnNameList[i]);
            }
            string footer = "    }\n"
                + "}";
            string modelContent = header + attrString + footer;
            modelContent = modelContent.Replace(
                            "$NowTimeStr$", DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day
                            + " "
                            + DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second);//创建时间
            modelContent = modelContent.Replace("$CreatePerson$", createPerson);//创建人
            modelContent = modelContent.Replace("$nameSpacePath$", nameSpacePath);//命名空间
            modelContent = modelContent.Replace("$entityName$", entityName);//实体类名
            CommonReplace(ref modelContent);
            return modelContent;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/Procedure_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,272 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// å­˜å‚¨è¿‡ç¨‹æ–‡ä»¶ç”Ÿæˆ
    /// </summary>
    public class Procedure_Generate : BaseGenerate
    {
       /// <summary>
        /// ç”Ÿæˆå­˜å‚¨è¿‡ç¨‹æ–‡ä»¶
       /// </summary>
       /// <param name="TableName"></param>
       /// <param name="TableAlias"></param>
       /// <param name="Author"></param>
       /// <param name="ChinaComment"></param>
       /// <param name="PimaryKey"></param>
       /// <param name="filePrefixName"></param>
       /// <param name="orderByName"></param>
       /// <param name="Modulelogo">模块简写</param>
       /// <param name="columnNameList"></param>
       /// <returns></returns>
        public static string CreateProcText(string TableName, string TableAlias, string Author,
            string ChinaComment, string PimaryKey, string filePrefixName, string orderByName, string Modulelogo,
            List<ColumnModel> columnNameList)
        {
            try
            {
                StringBuilder sbText = new StringBuilder();
                var str_query_1 = StructStrHelper.GetQueryColumnsStr(columnNameList);
                var str_query_2 = StructStrHelper.GetQueryColumnsStr(columnNameList, TableAlias);//带前缀
                //1、分页存储过程
                sbText.Append(GetPageProcStr(columnNameList,TableName, TableAlias, Author, ChinaComment, str_query_1, str_query_2, filePrefixName));
                sbText.Append("\n\n");
                //2、列表存储过程
                sbText.Append(GetListProcStr(TableName, TableAlias, Author, ChinaComment, str_query_2, filePrefixName, orderByName));
                sbText.Append("\n\n");
                //2、得到一个实体存储过程
                sbText.Append(GetSingleObjectProcStr(TableName, TableAlias, Author, ChinaComment, str_query_2, PimaryKey, filePrefixName, columnNameList));
                sbText.Append("\n\n");
                //3、增加一条记录存储过程
                sbText.Append(GetAddProcStr(TableName, TableAlias, Author, ChinaComment,filePrefixName, columnNameList));
                sbText.Append("\n\n");
                //4、更新一条记录存储过程
                sbText.Append(GetUpdateProcStr(TableName, TableAlias, Author, ChinaComment, PimaryKey, filePrefixName, columnNameList));
                sbText.Append("\n\n");
                //5、更新一条记录存储过程2
                sbText.Append(GetUpdateProcStr2(TableName, TableAlias, Author, ChinaComment, PimaryKey, filePrefixName, columnNameList));
                sbText.Append("\n\n");
                //存储过程名
                ProcName procName = CommonHelper.GetProcName(Modulelogo);
                sbText = sbText.Replace("$AddProcName$", procName.AddProc);
                sbText = sbText.Replace("$UpdateProcName$", procName.UpdateProc);
                sbText = sbText.Replace("$GetSingleProcName$", procName.GetSingleProc);
                sbText = sbText.Replace("$GetListProcName$", procName.ListProc);
                sbText = sbText.Replace("$GetPageListProcName$", procName.PageListProc);
                return sbText.ToString();
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// åˆ†é¡µå­˜å‚¨è¿‡ç¨‹
        /// </summary>
        /// <param name="TableName"></param>
        /// <param name="TableAlias"></param>
        /// <param name="Author"></param>
        /// <param name="ChinaComment"></param>
        /// <param name="str_query_1"></param>
        /// <param name="str_query_2"></param>
        /// <returns></returns>
        private static string GetPageProcStr(List<ColumnModel> columnNameList,string TableName, string TableAlias, string Author, string ChinaComment,
            string str_query_1, string str_query_2, string filePrefixName)
        {
            var str_page_proc = TextHelper.ReadText(@"Templete\proc\分页存储过程.txt");
            str_page_proc = str_page_proc.Replace("$ProcName$", filePrefixName + "_GetPageList");//存储过程名
            str_page_proc = str_page_proc.Replace("$TableName$", TableName);//表名
            str_page_proc = str_page_proc.Replace("$TableAlias$", TableAlias);//别名
            str_page_proc = str_page_proc.Replace("$Author$", Author);//作者
            str_page_proc = str_page_proc.Replace("$ChinaComment$", ChinaComment);//中文注释
            str_page_proc = str_page_proc.Replace("$CurDate$", CommonHelper.GetCurDate());//当前时间
            str_page_proc = str_page_proc.Replace("$page_cols_params$", StructStrHelper.GetInputParamColumnsStrForQueryPage(columnNameList));
            str_page_proc = str_page_proc.Replace("$where_cols_params$", StructStrHelper.GetCols_AssignmentStrForWherePage(TableAlias, columnNameList));
            str_page_proc = str_page_proc.Replace("$strQueryCol_1$", str_query_1);
            str_page_proc = str_page_proc.Replace("$strQueryCol_2$", str_query_2);
            return str_page_proc;
        }
        /// <summary>
        /// åˆ—表存储过程(不分页)
        /// </summary>
        /// <param name="TableName"></param>
        /// <param name="TableAlias"></param>
        /// <param name="Author"></param>
        /// <param name="ChinaComment"></param>
        /// <param name="str_query"></param>
        /// <returns></returns>
        private static string GetListProcStr(string TableName, string TableAlias, string Author, string ChinaComment,
          string str_query, string filePrefixName, string orderByName)
        {
            var str_list_proc = TextHelper.ReadText(@"Templete\proc\列表存储过程.txt");
            str_list_proc = str_list_proc.Replace("$ProcName$", filePrefixName + "_GetList");//存储过程名
            str_list_proc = str_list_proc.Replace("$TableName$", TableName);//表名
            str_list_proc = str_list_proc.Replace("$TableAlias$", TableAlias);//别名
            str_list_proc = str_list_proc.Replace("$Author$", Author);//作者
            str_list_proc = str_list_proc.Replace("$ChinaComment$", ChinaComment);//中文注释
            str_list_proc = str_list_proc.Replace("$CurDate$", CommonHelper.GetCurDate());//当前时间
            str_list_proc = str_list_proc.Replace("$strQueryCol$", str_query);
            str_list_proc = str_list_proc.Replace("$orderByName$", orderByName);
            return str_list_proc;
        }
        /// <summary>
        /// å¾—到一个实体存储过程
        /// </summary>
        /// <param name="TableName"></param>
        /// <param name="TableAlias"></param>
        /// <param name="Author"></param>
        /// <param name="ChinaComment"></param>
        /// <param name="str_query_2"></param>
        /// <param name="PimaryKey"></param>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        private static string GetSingleObjectProcStr(string TableName, string TableAlias, string Author, string ChinaComment,
        string str_query_2, string PimaryKey, string filePrefixName, List<ColumnModel> columnNameList)
        {
            try
            {
                var str_single_proc = TextHelper.ReadText(@"Templete\proc\得到一个实体存储过程.txt");
                str_single_proc = str_single_proc.Replace("$ProcName$", filePrefixName + "_GetModel");//存储过程名
                str_single_proc = str_single_proc.Replace("$TableName$", TableName);//表名
                str_single_proc = str_single_proc.Replace("$TableAlias$", TableAlias);//别名
                str_single_proc = str_single_proc.Replace("$Author$", Author);//作者
                str_single_proc = str_single_proc.Replace("$ChinaComment$", ChinaComment);//中文注释
                str_single_proc = str_single_proc.Replace("$CurDate$", CommonHelper.GetCurDate());//当前时间
                str_single_proc = str_single_proc.Replace("$Primary$", PimaryKey);
                str_single_proc = str_single_proc.Replace("$strQueryCol$", str_query_2);
                var columnModel = StructStrHelper.GetColumnModelByName(PimaryKey, columnNameList);
                if (columnModel == null)
                    throw new Exception("没有找到相应的主键值!");
                if (columnModel.DataType.ToUpper() == "INT" || columnModel.DataType.ToUpper() == "BIGINT")
                {
                    str_single_proc = str_single_proc.Replace("$DataType$", columnModel.DataType);
                }
                else
                {
                    str_single_proc = str_single_proc.Replace("$DataType$", columnModel.DataType + "(" + columnModel.DataLength + ")");
                }
                return str_single_proc;
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// å¢žåŠ ä¸€æ¡è®°å½•å­˜å‚¨è¿‡ç¨‹
        /// </summary>
        /// <param name="TableName"></param>
        /// <param name="TableAlias"></param>
        /// <param name="Author"></param>
        /// <param name="ChinaComment"></param>
        /// <param name="str_query_2"></param>
        /// <param name="PimaryKey"></param>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        private static string GetAddProcStr(string TableName, string TableAlias, string Author, string ChinaComment,
     string filePrefixName, List<ColumnModel> columnNameList)
        {
            var str_proc = TextHelper.ReadText(@"Templete\proc\增加一条记录存储过程.txt");
            str_proc = str_proc.Replace("$ProcName$", filePrefixName + "_ADD");//存储过程名
            str_proc = str_proc.Replace("$TableName$", TableName);//表名
            str_proc = str_proc.Replace("$TableAlias$", TableAlias);//别名
            str_proc = str_proc.Replace("$Author$", Author);//作者
            str_proc = str_proc.Replace("$ChinaComment$", ChinaComment);//中文注释
            str_proc = str_proc.Replace("$CurDate$", CommonHelper.GetCurDate());//当前时间
            string str_insert_cols = StructStrHelper.GetColumnsStrNoIDForAdd(columnNameList, "");
            str_proc = str_proc.Replace("$insert_cols$", str_insert_cols);
            str_proc = str_proc.Replace("$insert_cols_values$", StructStrHelper.GetColumnsStrNoIDForAdd(columnNameList, "@"));
            str_proc = str_proc.Replace("$insert_cols_params$", StructStrHelper.GetInputParamColumnsStrForAdd(columnNameList));
            return str_proc;
        }
        /// <summary>
        /// ç¼–辑一条记录存储过程
        /// </summary>
        /// <param name="TableName"></param>
        /// <param name="TableAlias"></param>
        /// <param name="Author"></param>
        /// <param name="ChinaComment"></param>
        /// <param name="PimaryKey"></param>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        private static string GetUpdateProcStr(string TableName, string TableAlias, string Author, string ChinaComment,
      string PimaryKey, string filePrefixName, List<ColumnModel> columnNameList)
        {
            var str_proc = TextHelper.ReadText(@"Templete\proc\修改一条记录存储过程.txt");
            str_proc = str_proc.Replace("$ProcName$", filePrefixName + "_Update");//存储过程名
            str_proc = str_proc.Replace("$TableName$", TableName);//表名
            str_proc = str_proc.Replace("$TableAlias$", TableAlias);//别名
            str_proc = str_proc.Replace("$Author$", Author);//作者
            str_proc = str_proc.Replace("$ChinaComment$", ChinaComment);//中文注释
            str_proc = str_proc.Replace("$CurDate$", CommonHelper.GetCurDate());//当前时间
            str_proc = str_proc.Replace("$Primary$", PimaryKey);
            str_proc = str_proc.Replace("$update_cols_params$", StructStrHelper.GetInputParamColumnsStrForUpdate(columnNameList));
            str_proc = str_proc.Replace("$update_cols_assignment$", StructStrHelper.GetCols_AssignmentStrForUpdate(columnNameList));
            return str_proc;
        }
        private static string GetUpdateProcStr2(string TableName, string TableAlias, string Author, string ChinaComment,
    string PimaryKey, string filePrefixName, List<ColumnModel> columnNameList)
        {
            var str_proc = TextHelper.ReadText(@"Templete\proc\修改一条记录存储过程2.txt");
            str_proc = str_proc.Replace("$ProcName$", filePrefixName + "_Update");//存储过程名
            str_proc = str_proc.Replace("$TableName$", TableName);//表名
            str_proc = str_proc.Replace("$TableAlias$", TableAlias);//别名
            str_proc = str_proc.Replace("$Author$", Author);//作者
            str_proc = str_proc.Replace("$ChinaComment$", ChinaComment);//中文注释
            str_proc = str_proc.Replace("$CurDate$", CommonHelper.GetCurDate());//当前时间
            str_proc = str_proc.Replace("$Primary$", PimaryKey);
            str_proc = str_proc.Replace("$update_cols_params$", StructStrHelper.GetInputParamColumnsStrForUpdate(columnNameList));
            str_proc = str_proc.Replace("$update_cols_assignment2$", StructStrHelper.GetCols_AssignmentStrForUpdate2(columnNameList));
            return str_proc;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/Services_InterfaceRealize_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// ç”ŸæˆServices的接口实现文件
    /// </summary>
    public class Services_InterfaceRealize_Generate : BaseGenerate
    {
        public static string CreateText(string Wcf_NameSpacePath, string Modulelogo, string entityName,
            string ChinaComment, string filePrefixName, string primaryKey, string TableAlias, string addEntityParam,
            List<ColumnModel> columnList,string groupName)
        {
            var str = TextHelper.ReadText(@"Templete\Services接口实现模板.txt");
            str = str.Replace("$ValidateEmptyStrForPrimaryKey$", StructStrHelper.GetValidateEmptyStrForPrimaryKey(columnList, primaryKey));
            str = str.Replace("$Wcf_NameSpacePath$", Wcf_NameSpacePath);//WCF项目的命名空间
            str = str.Replace("$GroupName$", groupName);//分组名
            str = str.Replace("$ChinaComment$", ChinaComment);//中文注释
            str = str.Replace("$EntityName$", entityName);//实体类名
            str = str.Replace("$EntityName_FirstLetterLower$", CommonHelper.FirstLowercase(entityName));//首字母小写,局部变量名
            str = str.Replace("$Modulelogo$", Modulelogo);//模块简写
            str = str.Replace("$FilePrefixName$", filePrefixName);//模块名
            str = str.Replace("$PrimaryKey$", primaryKey);//主键名
            str = str.Replace("$ValidateEmptyForInsert$", StructStrHelper.GetValidateEmptyStr(columnList));
            str = str.Replace("$ValidateEmptyForUpdate$", StructStrHelper.GetValidateEmptyStr(columnList, false));
            str = str.Replace("$WhereQuery$", StructStrHelper.GetStrForWhereQuery(columnList));
            str = str.Replace("$AddEntityParam$", addEntityParam);
            str = str.Replace("$TableAlias$", TableAlias);//表别名
            CommonReplace(ref str);
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/Services_Interface_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// ç”ŸæˆServices的接口文件
    /// </summary>
    public class Services_Interface_Generate : BaseGenerate
    {
        public static string CreateText(string Wcf_NameSpacePath, string Modulelogo, string entityName,
            string ChinaComment, string addEntityParam)
        {
            var str = TextHelper.ReadText(@"Templete\Services接口模板.txt");
            str = str.Replace("$Wcf_NameSpacePath$", Wcf_NameSpacePath);//WCF项目的命名空间
            str = str.Replace("$ChinaComment$", ChinaComment);//中文注释
            str = str.Replace("$EntityName$", entityName);//实体类名
            str = str.Replace("$Modulelogo$", Modulelogo);//模块简写
            str = str.Replace("$AddEntityParam$", addEntityParam);
            CommonReplace(ref str);
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/VUE/VUE_FunConfig_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// VUE方法配置
    /// </summary>
    public class VUE_FunConfig_Generate : BaseGenerate
    {
        /// <summary>
        /// VUE方法配置
        /// </summary>
        /// <param name="Modulelogo">模块简写</param>
        /// <param name="ChinaComment">中文注释</param>
        /// <param name="routePrefix">WCF路由前缀</param>
        /// <returns></returns>
        public static string CreateText(string Modulelogo,
            string ChinaComment, string routePrefix,string entityName)
        {
            var str = TextHelper.ReadText(@"Templete\VUE\VUE方法配置.txt");
            CommonReplace(ref str);
            str = str.Replace("$ChinaComment$", ChinaComment);//中文注释
            str = str.Replace("$Modulelogo$", Modulelogo);//模块简写
            str = str.Replace("$RoutePrefix$", routePrefix);//模块简写
            str = str.Replace("$EntityName$", entityName);//模块简写
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/VUE/VUE_Generate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// VUE文件
    /// </summary>
    public class VUE_Generate : BaseGenerate
    {
        public static string CreateText(string TableAlias, string modulelogo, string primaryKey,
            List<ColumnModel> columnNameList, string ChinaComment
            , string emport_templeteFileDownName, string emport_excelCategroy)
        {
            var str = TextHelper.ReadText(@"Templete\VUE\VUE文件模板.txt");
            CommonReplace(ref str);
            str = str.Replace("$el-table-column$", StructStrHelper.GetElTableColumnStr(columnNameList));//列表项
            //新增/编辑界面
            str = str.Replace("$el-item$", StructStrHelper.GetElFormItemStrForAddEditForm(columnNameList));
            //查看界面
            str = str.Replace("$el-item-view$", StructStrHelper.GetElFormItemStrForViewForm(columnNameList));
            str = str.Replace("$el-form-itemForSearch$", StructStrHelper.GetElFormItemForSearchStr(columnNameList));
            //导出字符串
            str = str.Replace("$VueExportColumnHeaderStr$", StructStrHelper.GetVueExportTHeaderArrayStr(columnNameList));
            //公共查询的列
            var SearchFormInputPlaceholderNameStr = "";
            str = str.Replace("$SearchFormInputPlaceholderStr$", StructStrHelper.GetVueSearchFormInputPlaceholderStr(columnNameList, ref SearchFormInputPlaceholderNameStr));
            str = str.Replace("$SearchFormInputPlaceholderNameStr$", SearchFormInputPlaceholderNameStr);
            //高级查询
            str = str.Replace("$FormOptionsStr$", StructStrHelper.GetVueFormOptionsStr(columnNameList));
            str = str.Replace("$ChinaComment$", ChinaComment);//中文注释
            str = str.Replace("$Modulelogo$", modulelogo);//表别名(他一定要在最后替换)
            str = str.Replace("$TableAlias$", TableAlias);//表别名(他一定要在最后替换)
            str = str.Replace("$PrimaryKey$", primaryKey);//主键
            //替换导入功能
            str = str.Replace("$emport_templeteFileDownName$", emport_templeteFileDownName);
            str = str.Replace("$emport_excelCategroy$", emport_excelCategroy);
            return str;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/GenerateCode_WeiBen_CMS.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,246 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{004A790A-7F45-4D97-95E3-478FD73FB434}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>GenerateCode_WeiBen_WMS</RootNamespace>
    <AssemblyName>GenerateCode_WeiBen_WMS</AssemblyName>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <PublishUrl>publish\</PublishUrl>
    <Install>true</Install>
    <InstallFrom>Disk</InstallFrom>
    <UpdateEnabled>false</UpdateEnabled>
    <UpdateMode>Foreground</UpdateMode>
    <UpdateInterval>7</UpdateInterval>
    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
    <UpdatePeriodically>false</UpdatePeriodically>
    <UpdateRequired>false</UpdateRequired>
    <MapFileExtensions>true</MapFileExtensions>
    <ApplicationRevision>0</ApplicationRevision>
    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    <IsWebBootstrapper>false</IsWebBootstrapper>
    <UseApplicationTrust>false</UseApplicationTrust>
    <BootstrapperEnabled>true</BootstrapperEnabled>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>
  <PropertyGroup>
    <ApplicationIcon>Robot.ico</ApplicationIcon>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
      <HintPath>packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.2, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
      <HintPath>packages\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.2\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.2, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
      <HintPath>packages\Microsoft.Extensions.Logging.Abstractions.8.0.2\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
    </Reference>
    <Reference Include="MySqlConnector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=d33d3e53aa5f8c92, processorArchitecture=MSIL">
      <HintPath>packages\MySqlConnector.2.4.0\lib\net48\MySqlConnector.dll</HintPath>
    </Reference>
    <Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
      <HintPath>packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
      <HintPath>packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
    </Reference>
    <Reference Include="System.configuration" />
    <Reference Include="System.Core" />
    <Reference Include="System.Diagnostics.DiagnosticSource, Version=8.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
      <HintPath>packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll</HintPath>
    </Reference>
    <Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
      <HintPath>packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
    </Reference>
    <Reference Include="System.Numerics" />
    <Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
    </Reference>
    <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
    </Reference>
    <Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
      <HintPath>packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
    </Reference>
    <Reference Include="System.Transactions" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="System.Data" />
    <Reference Include="System.Deployment" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="DataBaseFactory\DataBaseServiceHandle.cs" />
    <Compile Include="DataBaseFactory\DataBaseServiceFactory.cs" />
    <Compile Include="DataBaseFactory\Default\SqlServerDataBaseServiceHandle.cs" />
    <Compile Include="DataBaseFactory\Default\MySqlDataBaseServiceHandle.cs" />
    <Compile Include="Generate\BaseGenerate.cs" />
    <Compile Include="Generate\Controller\Controller_Generate.cs" />
    <Compile Include="Generate\Entity\AddModel_Generate.cs" />
    <Compile Include="Generate\Entity\OutputModel_Generate.cs" />
    <Compile Include="Generate\InsertSQL_Generate.cs" />
    <Compile Include="Generate\VUE\VUE_Generate.cs" />
    <Compile Include="Generate\Services_InterfaceRealize_Generate.cs" />
    <Compile Include="Generate\VUE\VUE_FunConfig_Generate.cs" />
    <Compile Include="Generate\Services_Interface_Generate.cs" />
    <Compile Include="Generate\Entity\InputModel_Generate.cs" />
    <Compile Include="Generate\BLL_Generate.cs" />
    <Compile Include="Generate\DAL_Generate.cs" />
    <Compile Include="Generate\Procedure_Generate.cs" />
    <Compile Include="Model\Enum\DataBaseEnum.cs" />
    <Compile Include="Model\Enum\DataTypeEnum.cs" />
    <Compile Include="Model\ListItem.cs" />
    <Compile Include="Model\Proc.cs" />
    <Compile Include="Model\SystemCommonVar.cs" />
    <Compile Include="Utility\CommonHelper.cs" />
    <Compile Include="Model\ColumnModell.cs" />
    <Compile Include="Generate\Model_Generate.cs" />
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Utility\ListHelper.cs" />
    <Compile Include="Utility\MySqlHelper.cs" />
    <Compile Include="Utility\SQLHelper.cs" />
    <Compile Include="MainForm.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="MainForm.Designer.cs">
      <DependentUpon>MainForm.cs</DependentUpon>
    </Compile>
    <Compile Include="Utility\StructStrHelper.cs" />
    <Compile Include="Utility\TextHelper.cs" />
    <EmbeddedResource Include="Properties\Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
      <SubType>Designer</SubType>
    </EmbeddedResource>
    <Compile Include="Properties\Resources.Designer.cs">
      <AutoGen>True</AutoGen>
      <DependentUpon>Resources.resx</DependentUpon>
      <DesignTime>True</DesignTime>
    </Compile>
    <EmbeddedResource Include="MainForm.resx">
      <DependentUpon>MainForm.cs</DependentUpon>
    </EmbeddedResource>
    <None Include="App.config" />
    <None Include="packages.config" />
    <None Include="Properties\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
    </None>
    <Compile Include="Properties\Settings.Designer.cs">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <DesignTimeSharedInput>True</DesignTimeSharedInput>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
      <Visible>False</Visible>
      <ProductName>Windows Installer 3.1</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
  </ItemGroup>
  <ItemGroup>
    <Content Include="Robot.ico" />
    <Content Include="Templete\Controller模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Entity\AddModel模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Entity\OutputModel模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Proc\修改一条记录存储过程2.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Proc\修改一条记录存储过程.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Proc\列表存储过程.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Proc\增加一条记录存储过程.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\VUE\VUE文件模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Services接口实现模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\VUE\VUE方法配置.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Services接口模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Entity\InputModel模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\BLL模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\DAL模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Proc\得到一个实体存储过程.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\Proc\分页存储过程.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="Templete\InitSQL模板.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/GenerateCode_WeiBen_CMS.sln
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.4.33213.308
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GenerateCode_WeiBen_CMS", "GenerateCode_WeiBen_CMS.csproj", "{004A790A-7F45-4D97-95E3-478FD73FB434}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Debug|x86 = Debug|x86
        Release|Any CPU = Release|Any CPU
        Release|x86 = Release|x86
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {004A790A-7F45-4D97-95E3-478FD73FB434}.Debug|Any CPU.ActiveCfg = Debug|x86
        {004A790A-7F45-4D97-95E3-478FD73FB434}.Debug|x86.ActiveCfg = Debug|x86
        {004A790A-7F45-4D97-95E3-478FD73FB434}.Debug|x86.Build.0 = Debug|x86
        {004A790A-7F45-4D97-95E3-478FD73FB434}.Release|Any CPU.ActiveCfg = Release|x86
        {004A790A-7F45-4D97-95E3-478FD73FB434}.Release|x86.ActiveCfg = Release|x86
        {004A790A-7F45-4D97-95E3-478FD73FB434}.Release|x86.Build.0 = Release|x86
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {5076F6A8-79EC-4DE9-82F3-7095D2B9E409}
    EndGlobalSection
EndGlobal
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/MainForm.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,594 @@
namespace GenerateCode_GEBrilliantFactory
{
    partial class MainForm
    {
        /// <summary>
        /// å¿…需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// æ¸…理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Windows çª—体设计器生成的代码
        /// <summary>
        /// è®¾è®¡å™¨æ”¯æŒæ‰€éœ€çš„æ–¹æ³• - ä¸è¦
        /// ä½¿ç”¨ä»£ç ç¼–辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.btnPath = new System.Windows.Forms.Button();
            this.lblds = new System.Windows.Forms.Label();
            this.tbPath = new System.Windows.Forms.TextBox();
            this.btnExit = new System.Windows.Forms.Button();
            this.btn_CreateFile = new System.Windows.Forms.Button();
            this.tb_TableName = new System.Windows.Forms.TextBox();
            this.tb_FileName = new System.Windows.Forms.TextBox();
            this.label1 = new System.Windows.Forms.Label();
            this.tb_WCF_NameSpacePath = new System.Windows.Forms.TextBox();
            this.label2 = new System.Windows.Forms.Label();
            this.tb_ChinaComment = new System.Windows.Forms.TextBox();
            this.label4 = new System.Windows.Forms.Label();
            this.tb_CreatePerson = new System.Windows.Forms.TextBox();
            this.label5 = new System.Windows.Forms.Label();
            this.tb_Primary = new System.Windows.Forms.TextBox();
            this.label6 = new System.Windows.Forms.Label();
            this.tb_EntityProName = new System.Windows.Forms.TextBox();
            this.label7 = new System.Windows.Forms.Label();
            this.tb_EntityName = new System.Windows.Forms.TextBox();
            this.label8 = new System.Windows.Forms.Label();
            this.label9 = new System.Windows.Forms.Label();
            this.tb_OrderBy = new System.Windows.Forms.TextBox();
            this.label10 = new System.Windows.Forms.Label();
            this.tb_PrimaryDesc = new System.Windows.Forms.TextBox();
            this.label11 = new System.Windows.Forms.Label();
            this.tb_Modulelogo = new System.Windows.Forms.TextBox();
            this.label3 = new System.Windows.Forms.Label();
            this.btn_InsertSql = new System.Windows.Forms.Button();
            this.tb_RoutePrefix = new System.Windows.Forms.TextBox();
            this.label13 = new System.Windows.Forms.Label();
            this.groupBox1 = new System.Windows.Forms.GroupBox();
            this.lbl_DataSource = new System.Windows.Forms.Label();
            this.cmb_DataSource = new System.Windows.Forms.ComboBox();
            this.groupBox2 = new System.Windows.Forms.GroupBox();
            this.tb_GroupName = new System.Windows.Forms.TextBox();
            this.label16 = new System.Windows.Forms.Label();
            this.label15 = new System.Windows.Forms.Label();
            this.tb_ProjectNamePrefix = new System.Windows.Forms.TextBox();
            this.groupBox3 = new System.Windows.Forms.GroupBox();
            this.tb_importExcelCategroy = new System.Windows.Forms.TextBox();
            this.ck_IsShowImport = new System.Windows.Forms.CheckBox();
            this.label12 = new System.Windows.Forms.Label();
            this.tb_templeteFileDownName = new System.Windows.Forms.TextBox();
            this.label14 = new System.Windows.Forms.Label();
            this.cmb_DataBase = new System.Windows.Forms.ComboBox();
            this.label17 = new System.Windows.Forms.Label();
            this.groupBox1.SuspendLayout();
            this.groupBox2.SuspendLayout();
            this.groupBox3.SuspendLayout();
            this.SuspendLayout();
            //
            // btnPath
            //
            this.btnPath.Location = new System.Drawing.Point(425, 570);
            this.btnPath.Name = "btnPath";
            this.btnPath.Size = new System.Drawing.Size(97, 23);
            this.btnPath.TabIndex = 1;
            this.btnPath.Text = "选择生成路径";
            this.btnPath.UseVisualStyleBackColor = true;
            this.btnPath.Click += new System.EventHandler(this.button1_Click);
            //
            // lblds
            //
            this.lblds.AutoSize = true;
            this.lblds.Location = new System.Drawing.Point(22, 72);
            this.lblds.Name = "lblds";
            this.lblds.Size = new System.Drawing.Size(35, 12);
            this.lblds.TabIndex = 2;
            this.lblds.Text = "表名:";
            //
            // tbPath
            //
            this.tbPath.Location = new System.Drawing.Point(106, 566);
            this.tbPath.Name = "tbPath";
            this.tbPath.ReadOnly = true;
            this.tbPath.Size = new System.Drawing.Size(253, 21);
            this.tbPath.TabIndex = 7;
            //
            // btnExit
            //
            this.btnExit.Location = new System.Drawing.Point(649, 600);
            this.btnExit.Name = "btnExit";
            this.btnExit.Size = new System.Drawing.Size(171, 67);
            this.btnExit.TabIndex = 8;
            this.btnExit.Text = "退出";
            this.btnExit.UseVisualStyleBackColor = true;
            this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
            //
            // btn_CreateFile
            //
            this.btn_CreateFile.Location = new System.Drawing.Point(106, 600);
            this.btn_CreateFile.Name = "btn_CreateFile";
            this.btn_CreateFile.Size = new System.Drawing.Size(157, 67);
            this.btn_CreateFile.TabIndex = 14;
            this.btn_CreateFile.Text = "生成文件";
            this.btn_CreateFile.UseVisualStyleBackColor = true;
            this.btn_CreateFile.Click += new System.EventHandler(this.btn_CreateFile_Click);
            //
            // tb_TableName
            //
            this.tb_TableName.Location = new System.Drawing.Point(92, 69);
            this.tb_TableName.Name = "tb_TableName";
            this.tb_TableName.Size = new System.Drawing.Size(183, 21);
            this.tb_TableName.TabIndex = 15;
            this.tb_TableName.TextChanged += new System.EventHandler(this.tb_TableName_TextChanged);
            //
            // tb_FileName
            //
            this.tb_FileName.Location = new System.Drawing.Point(221, 152);
            this.tb_FileName.Name = "tb_FileName";
            this.tb_FileName.Size = new System.Drawing.Size(199, 21);
            this.tb_FileName.TabIndex = 17;
            //
            // label1
            //
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(25, 154);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(191, 12);
            this.label1.TabIndex = 16;
            this.label1.Text = "文件名称(用于给各个类名的前缀):";
            //
            // tb_WCF_NameSpacePath
            //
            this.tb_WCF_NameSpacePath.Location = new System.Drawing.Point(563, 247);
            this.tb_WCF_NameSpacePath.Name = "tb_WCF_NameSpacePath";
            this.tb_WCF_NameSpacePath.Size = new System.Drawing.Size(197, 21);
            this.tb_WCF_NameSpacePath.TabIndex = 19;
            //
            // label2
            //
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(455, 249);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(101, 12);
            this.label2.TabIndex = 18;
            this.label2.Text = "WCF项目命名空间:";
            //
            // tb_ChinaComment
            //
            this.tb_ChinaComment.Location = new System.Drawing.Point(221, 234);
            this.tb_ChinaComment.Name = "tb_ChinaComment";
            this.tb_ChinaComment.Size = new System.Drawing.Size(197, 21);
            this.tb_ChinaComment.TabIndex = 23;
            //
            // label4
            //
            this.label4.AutoSize = true;
            this.label4.Location = new System.Drawing.Point(26, 234);
            this.label4.Name = "label4";
            this.label4.Size = new System.Drawing.Size(83, 12);
            this.label4.TabIndex = 22;
            this.label4.Text = "表的中文注解:";
            //
            // tb_CreatePerson
            //
            this.tb_CreatePerson.Location = new System.Drawing.Point(221, 279);
            this.tb_CreatePerson.Name = "tb_CreatePerson";
            this.tb_CreatePerson.Size = new System.Drawing.Size(199, 21);
            this.tb_CreatePerson.TabIndex = 25;
            //
            // label5
            //
            this.label5.AutoSize = true;
            this.label5.Location = new System.Drawing.Point(26, 289);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(107, 12);
            this.label5.TabIndex = 24;
            this.label5.Text = "你的名字拼音缩写:";
            //
            // tb_Primary
            //
            this.tb_Primary.Location = new System.Drawing.Point(338, 69);
            this.tb_Primary.Name = "tb_Primary";
            this.tb_Primary.Size = new System.Drawing.Size(145, 21);
            this.tb_Primary.TabIndex = 27;
            //
            // label6
            //
            this.label6.AutoSize = true;
            this.label6.Location = new System.Drawing.Point(298, 72);
            this.label6.Name = "label6";
            this.label6.Size = new System.Drawing.Size(35, 12);
            this.label6.TabIndex = 26;
            this.label6.Text = "主键:";
            //
            // tb_EntityProName
            //
            this.tb_EntityProName.Location = new System.Drawing.Point(560, 141);
            this.tb_EntityProName.Name = "tb_EntityProName";
            this.tb_EntityProName.Size = new System.Drawing.Size(183, 21);
            this.tb_EntityProName.TabIndex = 31;
            this.tb_EntityProName.TextChanged += new System.EventHandler(this.tb_EntityProName_TextChanged);
            //
            // label7
            //
            this.label7.AutoSize = true;
            this.label7.Location = new System.Drawing.Point(436, 149);
            this.label7.Name = "label7";
            this.label7.Size = new System.Drawing.Size(125, 12);
            this.label7.TabIndex = 30;
            this.label7.Text = "实体类对象名/表别名:";
            //
            // tb_EntityName
            //
            this.tb_EntityName.Location = new System.Drawing.Point(92, 108);
            this.tb_EntityName.Name = "tb_EntityName";
            this.tb_EntityName.Size = new System.Drawing.Size(183, 21);
            this.tb_EntityName.TabIndex = 29;
            //
            // label8
            //
            this.label8.AutoSize = true;
            this.label8.Location = new System.Drawing.Point(22, 111);
            this.label8.Name = "label8";
            this.label8.Size = new System.Drawing.Size(59, 12);
            this.label8.TabIndex = 28;
            this.label8.Text = "实体类名:";
            //
            // label9
            //
            this.label9.AutoSize = true;
            this.label9.Location = new System.Drawing.Point(463, 210);
            this.label9.Name = "label9";
            this.label9.Size = new System.Drawing.Size(35, 12);
            this.label9.TabIndex = 34;
            this.label9.Text = "排序:";
            //
            // tb_OrderBy
            //
            this.tb_OrderBy.Location = new System.Drawing.Point(503, 207);
            this.tb_OrderBy.Name = "tb_OrderBy";
            this.tb_OrderBy.Size = new System.Drawing.Size(145, 21);
            this.tb_OrderBy.TabIndex = 35;
            //
            // label10
            //
            this.label10.AutoSize = true;
            this.label10.Location = new System.Drawing.Point(668, 210);
            this.label10.Name = "label10";
            this.label10.Size = new System.Drawing.Size(65, 12);
            this.label10.TabIndex = 36;
            this.label10.Text = "(默认降序)";
            //
            // tb_PrimaryDesc
            //
            this.tb_PrimaryDesc.Location = new System.Drawing.Point(569, 69);
            this.tb_PrimaryDesc.Name = "tb_PrimaryDesc";
            this.tb_PrimaryDesc.Size = new System.Drawing.Size(145, 21);
            this.tb_PrimaryDesc.TabIndex = 38;
            //
            // label11
            //
            this.label11.AutoSize = true;
            this.label11.Location = new System.Drawing.Point(508, 72);
            this.label11.Name = "label11";
            this.label11.Size = new System.Drawing.Size(59, 12);
            this.label11.TabIndex = 37;
            this.label11.Text = "主键描述:";
            //
            // tb_Modulelogo
            //
            this.tb_Modulelogo.Location = new System.Drawing.Point(221, 202);
            this.tb_Modulelogo.Name = "tb_Modulelogo";
            this.tb_Modulelogo.Size = new System.Drawing.Size(199, 21);
            this.tb_Modulelogo.TabIndex = 41;
            //
            // label3
            //
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(25, 206);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(167, 12);
            this.label3.TabIndex = 40;
            this.label3.Text = "模块简写(用于给各个方法名):";
            //
            // btn_InsertSql
            //
            this.btn_InsertSql.Location = new System.Drawing.Point(385, 600);
            this.btn_InsertSql.Name = "btn_InsertSql";
            this.btn_InsertSql.Size = new System.Drawing.Size(157, 67);
            this.btn_InsertSql.TabIndex = 42;
            this.btn_InsertSql.Text = "生成InitSQL";
            this.btn_InsertSql.UseVisualStyleBackColor = true;
            this.btn_InsertSql.Visible = false;
            this.btn_InsertSql.Click += new System.EventHandler(this.btn_InsertSql_Click);
            //
            // tb_RoutePrefix
            //
            this.tb_RoutePrefix.Location = new System.Drawing.Point(538, 276);
            this.tb_RoutePrefix.Name = "tb_RoutePrefix";
            this.tb_RoutePrefix.Size = new System.Drawing.Size(145, 21);
            this.tb_RoutePrefix.TabIndex = 44;
            this.tb_RoutePrefix.Text = "1111";
            //
            // label13
            //
            this.label13.AutoSize = true;
            this.label13.Location = new System.Drawing.Point(463, 282);
            this.label13.Name = "label13";
            this.label13.Size = new System.Drawing.Size(77, 12);
            this.label13.TabIndex = 43;
            this.label13.Text = "WCF路由前缀:";
            this.label13.Click += new System.EventHandler(this.label13_Click);
            //
            // groupBox1
            //
            this.groupBox1.Controls.Add(this.label17);
            this.groupBox1.Controls.Add(this.cmb_DataBase);
            this.groupBox1.Controls.Add(this.lbl_DataSource);
            this.groupBox1.Controls.Add(this.cmb_DataSource);
            this.groupBox1.Location = new System.Drawing.Point(51, 12);
            this.groupBox1.Name = "groupBox1";
            this.groupBox1.Size = new System.Drawing.Size(819, 72);
            this.groupBox1.TabIndex = 45;
            this.groupBox1.TabStop = false;
            this.groupBox1.Text = "数据库配置";
            //
            // lbl_DataSource
            //
            this.lbl_DataSource.AutoSize = true;
            this.lbl_DataSource.Location = new System.Drawing.Point(10, 48);
            this.lbl_DataSource.Name = "lbl_DataSource";
            this.lbl_DataSource.Size = new System.Drawing.Size(89, 12);
            this.lbl_DataSource.TabIndex = 1;
            this.lbl_DataSource.Text = "我是链接字符串";
            //
            // cmb_DataSource
            //
            this.cmb_DataSource.FormattingEnabled = true;
            this.cmb_DataSource.Location = new System.Drawing.Point(6, 20);
            this.cmb_DataSource.Name = "cmb_DataSource";
            this.cmb_DataSource.Size = new System.Drawing.Size(206, 20);
            this.cmb_DataSource.TabIndex = 0;
            this.cmb_DataSource.SelectedIndexChanged += new System.EventHandler(this.cmb_DataSource_SelectedIndexChanged);
            //
            // groupBox2
            //
            this.groupBox2.Controls.Add(this.tb_GroupName);
            this.groupBox2.Controls.Add(this.label16);
            this.groupBox2.Controls.Add(this.label15);
            this.groupBox2.Controls.Add(this.tb_ProjectNamePrefix);
            this.groupBox2.Controls.Add(this.groupBox3);
            this.groupBox2.Controls.Add(this.tb_FileName);
            this.groupBox2.Controls.Add(this.lblds);
            this.groupBox2.Controls.Add(this.tb_RoutePrefix);
            this.groupBox2.Controls.Add(this.tb_TableName);
            this.groupBox2.Controls.Add(this.label13);
            this.groupBox2.Controls.Add(this.label1);
            this.groupBox2.Controls.Add(this.label2);
            this.groupBox2.Controls.Add(this.tb_Modulelogo);
            this.groupBox2.Controls.Add(this.tb_WCF_NameSpacePath);
            this.groupBox2.Controls.Add(this.label3);
            this.groupBox2.Controls.Add(this.label4);
            this.groupBox2.Controls.Add(this.tb_ChinaComment);
            this.groupBox2.Controls.Add(this.tb_PrimaryDesc);
            this.groupBox2.Controls.Add(this.label5);
            this.groupBox2.Controls.Add(this.label11);
            this.groupBox2.Controls.Add(this.tb_CreatePerson);
            this.groupBox2.Controls.Add(this.label10);
            this.groupBox2.Controls.Add(this.label6);
            this.groupBox2.Controls.Add(this.tb_OrderBy);
            this.groupBox2.Controls.Add(this.tb_Primary);
            this.groupBox2.Controls.Add(this.label9);
            this.groupBox2.Controls.Add(this.label8);
            this.groupBox2.Controls.Add(this.tb_EntityProName);
            this.groupBox2.Controls.Add(this.tb_EntityName);
            this.groupBox2.Controls.Add(this.label7);
            this.groupBox2.Location = new System.Drawing.Point(51, 90);
            this.groupBox2.Name = "groupBox2";
            this.groupBox2.Size = new System.Drawing.Size(819, 470);
            this.groupBox2.TabIndex = 46;
            this.groupBox2.TabStop = false;
            this.groupBox2.Text = "自定义配置";
            //
            // tb_GroupName
            //
            this.tb_GroupName.Location = new System.Drawing.Point(350, 108);
            this.tb_GroupName.Name = "tb_GroupName";
            this.tb_GroupName.Size = new System.Drawing.Size(183, 21);
            this.tb_GroupName.TabIndex = 50;
            //
            // label16
            //
            this.label16.AutoSize = true;
            this.label16.Location = new System.Drawing.Point(298, 111);
            this.label16.Name = "label16";
            this.label16.Size = new System.Drawing.Size(47, 12);
            this.label16.TabIndex = 49;
            this.label16.Text = "分组名:";
            //
            // label15
            //
            this.label15.AutoSize = true;
            this.label15.Location = new System.Drawing.Point(26, 24);
            this.label15.Name = "label15";
            this.label15.Size = new System.Drawing.Size(71, 12);
            this.label15.TabIndex = 47;
            this.label15.Text = "项目名前缀:";
            //
            // tb_ProjectNamePrefix
            //
            this.tb_ProjectNamePrefix.Location = new System.Drawing.Point(104, 21);
            this.tb_ProjectNamePrefix.Name = "tb_ProjectNamePrefix";
            this.tb_ProjectNamePrefix.Size = new System.Drawing.Size(183, 21);
            this.tb_ProjectNamePrefix.TabIndex = 48;
            //
            // groupBox3
            //
            this.groupBox3.Controls.Add(this.tb_importExcelCategroy);
            this.groupBox3.Controls.Add(this.ck_IsShowImport);
            this.groupBox3.Controls.Add(this.label12);
            this.groupBox3.Controls.Add(this.tb_templeteFileDownName);
            this.groupBox3.Controls.Add(this.label14);
            this.groupBox3.Location = new System.Drawing.Point(28, 316);
            this.groupBox3.Margin = new System.Windows.Forms.Padding(2);
            this.groupBox3.Name = "groupBox3";
            this.groupBox3.Padding = new System.Windows.Forms.Padding(2);
            this.groupBox3.Size = new System.Drawing.Size(272, 118);
            this.groupBox3.TabIndex = 46;
            this.groupBox3.TabStop = false;
            this.groupBox3.Text = "导入功能";
            //
            // tb_importExcelCategroy
            //
            this.tb_importExcelCategroy.Location = new System.Drawing.Point(143, 86);
            this.tb_importExcelCategroy.Name = "tb_importExcelCategroy";
            this.tb_importExcelCategroy.Size = new System.Drawing.Size(113, 21);
            this.tb_importExcelCategroy.TabIndex = 50;
            //
            // ck_IsShowImport
            //
            this.ck_IsShowImport.AutoSize = true;
            this.ck_IsShowImport.Location = new System.Drawing.Point(21, 30);
            this.ck_IsShowImport.Margin = new System.Windows.Forms.Padding(2);
            this.ck_IsShowImport.Name = "ck_IsShowImport";
            this.ck_IsShowImport.Size = new System.Drawing.Size(108, 16);
            this.ck_IsShowImport.TabIndex = 45;
            this.ck_IsShowImport.Text = "是否有导入功能";
            this.ck_IsShowImport.UseVisualStyleBackColor = true;
            this.ck_IsShowImport.Visible = false;
            this.ck_IsShowImport.CheckedChanged += new System.EventHandler(this.ck_IsShowImport_CheckedChanged);
            //
            // label12
            //
            this.label12.AutoSize = true;
            this.label12.Location = new System.Drawing.Point(9, 94);
            this.label12.Name = "label12";
            this.label12.Size = new System.Drawing.Size(119, 12);
            this.label12.TabIndex = 49;
            this.label12.Text = "上传文件的请求分类:";
            //
            // tb_templeteFileDownName
            //
            this.tb_templeteFileDownName.Location = new System.Drawing.Point(143, 58);
            this.tb_templeteFileDownName.Name = "tb_templeteFileDownName";
            this.tb_templeteFileDownName.Size = new System.Drawing.Size(113, 21);
            this.tb_templeteFileDownName.TabIndex = 48;
            //
            // label14
            //
            this.label14.AutoSize = true;
            this.label14.Location = new System.Drawing.Point(10, 60);
            this.label14.Name = "label14";
            this.label14.Size = new System.Drawing.Size(83, 12);
            this.label14.TabIndex = 47;
            this.label14.Text = "文件下载名字:";
            //
            // cmb_DataBase
            //
            this.cmb_DataBase.FormattingEnabled = true;
            this.cmb_DataBase.Location = new System.Drawing.Point(581, 20);
            this.cmb_DataBase.Name = "cmb_DataBase";
            this.cmb_DataBase.Size = new System.Drawing.Size(206, 20);
            this.cmb_DataBase.TabIndex = 2;
            this.cmb_DataBase.SelectedIndexChanged += new System.EventHandler(this.cmb_DataBase_SelectedIndexChanged);
            //
            // label17
            //
            this.label17.AutoSize = true;
            this.label17.Location = new System.Drawing.Point(478, 23);
            this.label17.Name = "label17";
            this.label17.Size = new System.Drawing.Size(65, 12);
            this.label17.TabIndex = 3;
            this.label17.Text = "数据库类型";
            //
            // MainForm
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(927, 672);
            this.Controls.Add(this.groupBox2);
            this.Controls.Add(this.groupBox1);
            this.Controls.Add(this.btn_InsertSql);
            this.Controls.Add(this.btn_CreateFile);
            this.Controls.Add(this.btnExit);
            this.Controls.Add(this.tbPath);
            this.Controls.Add(this.btnPath);
            this.Name = "MainForm";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "伟本-CMS-代码生成器(伟本专用)V1.0";
            this.Load += new System.EventHandler(this.MainForm_Load);
            this.groupBox1.ResumeLayout(false);
            this.groupBox1.PerformLayout();
            this.groupBox2.ResumeLayout(false);
            this.groupBox2.PerformLayout();
            this.groupBox3.ResumeLayout(false);
            this.groupBox3.PerformLayout();
            this.ResumeLayout(false);
            this.PerformLayout();
        }
        #endregion
        private System.Windows.Forms.Button btnPath;
        private System.Windows.Forms.Label lblds;
        private System.Windows.Forms.TextBox tbPath;
        private System.Windows.Forms.Button btnExit;
        private System.Windows.Forms.Button btn_CreateFile;
        private System.Windows.Forms.TextBox tb_TableName;
        private System.Windows.Forms.TextBox tb_FileName;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.TextBox tb_WCF_NameSpacePath;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.TextBox tb_ChinaComment;
        private System.Windows.Forms.Label label4;
        private System.Windows.Forms.TextBox tb_CreatePerson;
        private System.Windows.Forms.Label label5;
        private System.Windows.Forms.TextBox tb_Primary;
        private System.Windows.Forms.Label label6;
        private System.Windows.Forms.TextBox tb_EntityProName;
        private System.Windows.Forms.Label label7;
        private System.Windows.Forms.TextBox tb_EntityName;
        private System.Windows.Forms.Label label8;
        private System.Windows.Forms.Label label9;
        private System.Windows.Forms.TextBox tb_OrderBy;
        private System.Windows.Forms.Label label10;
        private System.Windows.Forms.TextBox tb_PrimaryDesc;
        private System.Windows.Forms.Label label11;
        private System.Windows.Forms.TextBox tb_Modulelogo;
        private System.Windows.Forms.Label label3;
        private System.Windows.Forms.Button btn_InsertSql;
        private System.Windows.Forms.TextBox tb_RoutePrefix;
        private System.Windows.Forms.Label label13;
        private System.Windows.Forms.GroupBox groupBox1;
        private System.Windows.Forms.Label lbl_DataSource;
        private System.Windows.Forms.ComboBox cmb_DataSource;
        private System.Windows.Forms.GroupBox groupBox2;
        private System.Windows.Forms.CheckBox ck_IsShowImport;
        private System.Windows.Forms.GroupBox groupBox3;
        private System.Windows.Forms.TextBox tb_importExcelCategroy;
        private System.Windows.Forms.Label label12;
        private System.Windows.Forms.TextBox tb_templeteFileDownName;
        private System.Windows.Forms.Label label14;
        private System.Windows.Forms.Label label15;
        private System.Windows.Forms.TextBox tb_ProjectNamePrefix;
        private System.Windows.Forms.Label label16;
        private System.Windows.Forms.TextBox tb_GroupName;
        private System.Windows.Forms.ComboBox cmb_DataBase;
        private System.Windows.Forms.Label label17;
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/MainForm.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,377 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Newtonsoft.Json;
using System.Windows.Forms.VisualStyles;
using GenerateCode_WeiBen_WMS.DataBaseFactory;
namespace GenerateCode_GEBrilliantFactory
{
    public partial class MainForm : Form
    {
        public static string projectNamePrefix = "";
        public static string dataBaseName = "";
        public static DataBaseEnum dataBaseEnum = DataBaseEnum.MySql;
        public MainForm()
        {
            InitializeComponent();
            this.tbPath.Text = "D:\\C#AutoCreateCodeFile";
            this.tb_Primary.Text = "id";//主键名
            this.tb_PrimaryDesc.Text = "主键";
            this.tb_OrderBy.Text = "ModifyTime";//排序字段
            this.tb_ProjectNamePrefix.Text = "Test";
            this.tb_TableName.Text = "scms_auditlogs";//表名
            this.tb_WCF_NameSpacePath.Text = "WIP_";//WCF项目命名空间
            this.tb_FileName.Text = "Xiangzi";//文件前缀名
            this.tb_ChinaComment.Text = "表的中文注解";//中文注释
            this.tb_CreatePerson.Text = "shaocx";//创建人
            this.tb_EntityName.Text = "XiangziEntity";//实体类名
            this.tb_EntityProName.Text = "xiangzi";//实体类对象名
            this.cmb_DataSource.DropDownStyle = ComboBoxStyle.DropDownList;
            List<ListItem> itemList = CommonHelper.GetDataSources();
            foreach (var item in itemList)
            {
                this.cmb_DataSource.Items.Add(item);
            }
            this.cmb_DataSource.SelectedIndex = 0;
            this.cmb_DataBase.DropDownStyle = ComboBoxStyle.DropDownList;
            List<ListItem> itemList_Db = CommonHelper.GetDataBase();
            foreach (var item in itemList_Db)
            {
                this.cmb_DataBase.Items.Add(item);
            }
            this.cmb_DataBase.SelectedIndex = 0;
        }
        /// <summary>
        /// ä¿å­˜è·¯å¾„对话框
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            if (DialogResult.OK == fbd.ShowDialog())
            {
                tbPath.Text = fbd.SelectedPath;
            }
        }
        private void btnExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        //一键生成所有文件
        private void btn_CreateFile_Click(object sender, EventArgs e)
        {
            try
            {
                projectNamePrefix = this.tb_ProjectNamePrefix.Text;
                if (projectNamePrefix == "")
                {
                    MessageBox.Show("请输入项目名前缀!");
                    this.tb_ProjectNamePrefix.Focus();
                    return;
                }
                if (dataBaseName == "")
                {
                    MessageBox.Show("请选择数据库!");
                    return;
                }
                string primaryKey = this.tb_Primary.Text.Trim();//主键名
                string primaryKeyDesc = this.tb_PrimaryDesc.Text.Trim();//主键描述
                string tableName = this.tb_TableName.Text.Trim();//表名
                string wcf_NameSpacePath = this.tb_WCF_NameSpacePath.Text.Trim();//WCF项目命名空间
                string filePrefixName = this.tb_FileName.Text.Trim();//文件前缀名
                string modulelogo = this.tb_Modulelogo.Text.Trim();//模块简写
                string chinaComment = this.tb_ChinaComment.Text.Trim();//中文注释
                string createPerson = this.tb_CreatePerson.Text.Trim();//创建人
                string entityName = this.tb_EntityName.Text.Trim();//实体类名
                string tableAlias = this.tb_EntityProName.Text.Trim();//实体类对象名/表别名
                string orderByName = this.tb_OrderBy.Text.Trim();//排序字段名称
                string routePrefix = this.tb_RoutePrefix.Text.Trim();//WCF路由前缀
                string connStr = this.lbl_DataSource.Text.Trim();//数据库连接字符串
                if (connStr == "")
                {
                    MessageBox.Show("请选择数据库源!");
                    this.cmb_DataSource.Focus();
                    return;
                }
                if (tableName == "")
                {
                    MessageBox.Show("请输入表名!");
                    this.tb_TableName.Focus();
                    return;
                }
                if (primaryKey == "")
                {
                    MessageBox.Show("请输入主键名!");
                    this.tb_Primary.Focus();
                    return;
                }
                if (routePrefix == "")
                {
                    MessageBox.Show("请输入WCF路由前缀!");
                    this.tb_RoutePrefix.Focus();
                    return;
                }
                //读取Mysql
                var handler = DataBaseServiceFactory.GetHandle(dataBaseEnum);
                List<ColumnModel> columnList = handler.GetColumnList(tableName, connStr);
                if (columnList.Count == 0)
                {
                    MessageBox.Show("没有获取到表下面的列集合!");
                    return;
                }
                string groupName = this.tb_GroupName.Text.Trim();
                if (groupName == "")
                {
                    MessageBox.Show("请输入分组名!");
                    this.tb_GroupName.Focus();
                    return;
                }
                string addEntityParam = "Add" + modulelogo + "Param";//新增参数类名
                string str_generate = "";
                bool tf;
                //生成Model
                //CreateModelFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo);
                //CreateModelParamFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo);
                //生成 InputModel æ–‡ä»¶
                str_generate = InputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //生成 OutputModel æ–‡ä»¶
                str_generate = OutputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.OutputModel, filePrefixName, entityName, modulelogo);
                //生成Controller文件
                //str_generate = Controller_Generate.CreateText(modulelogo, chinaComment, columnList, entityName, orderByName);
                //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.Controller, filePrefixName, entityName, modulelogo);
                //生成Services接口文件
                str_generate = Services_Interface_Generate.CreateText(wcf_NameSpacePath, modulelogo, entityName, chinaComment, addEntityParam);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFace, filePrefixName, entityName, modulelogo);
                //生成Services接口实现文件
                str_generate = Services_InterfaceRealize_Generate.CreateText(wcf_NameSpacePath, modulelogo,
                    entityName, chinaComment, filePrefixName, primaryKey, tableAlias, addEntityParam, columnList, groupName);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFaceRealize, filePrefixName, entityName, modulelogo);
                /*
                //生成存储过程文件
                 str_generate = Procedure_Generate.CreateProcText(tableName, tableAlias, createPerson, chinaComment,
                    primaryKey, filePrefixName, orderByName, modulelogo, columnList);
                 tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.Proc, filePrefixName, entityName, modulelogo);
                //生成DAL文件
                str_generate = DAL_Generate.CreateDALText(filePrefixName, tableName, entityName, createPerson,
                   chinaComment, primaryKey, primaryKeyDesc, modulelogo, tableAlias, columnList);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.DAL, filePrefixName, entityName, modulelogo);
                //生成BLL文件
                str_generate = BLL_Generate.CreateBLLText(filePrefixName, tableName, entityName, createPerson,
                   chinaComment, primaryKey, primaryKeyDesc, modulelogo, tableAlias, addEntityParam, columnList);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.BLL, filePrefixName, entityName, modulelogo);
                //生成AddModel文件
                str_generate = AddModel_Generate.CreateAddModelLText(addEntityParam, chinaComment, columnList);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.AddModelParam, filePrefixName, entityName, modulelogo);
                //*/
                //VUE方法配置
                //str_generate = VUE_FunConfig_Generate.CreateText(modulelogo, chinaComment, routePrefix, entityName);
                //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.VUE_FunConfig, filePrefixName, entityName, modulelogo);
                //VUE文件
                //str_generate = VUE_Generate.CreateText(tableAlias, modulelogo, primaryKey, columnList, chinaComment
                //    , this.tb_templeteFileDownName.Text, this.tb_importExcelCategroy.Text);
                //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.VUEFile, filePrefixName, entityName, modulelogo);
                //btn_InsertSql_Click(null, null);
            }
            catch (Exception ex)
            {
                MessageBox.Show("生成文件失败!" + ex.Message);
                return;
            }
            //MessageBox.Show("生成文件成功!");
            //成功之后打开文件夹
            using (System.Diagnostics.Process.Start(this.tbPath.Text + "\\" + this.tb_TableName.Text))
            {
            }
            //*/
        }
        #region åˆ†ç±»æ–‡ä»¶
        /// <summary>
        /// ç”ŸæˆModel
        /// </summary>
        /// <param name="_tableName"></param>
        private void CreateModelFile(List<ColumnModel> strList, string _tableName, string filePrefixName, string nameSpacePath,
            string createPerson, string chinaComment, string entityName, string modulelogo)
        {
            bool tf = TextHelper.Export2File(tbPath.Text, _tableName,
                Model_Generate.GenerateModel(_tableName, strList, filePrefixName, nameSpacePath, createPerson, chinaComment, entityName),
                FileType.Model, filePrefixName, entityName, modulelogo);
        }
        /// <summary>
        /// ç”ŸæˆModel参数
        /// </summary>
        /// <param name="_tableName"></param>
        private void CreateModelParamFile(List<ColumnModel> strList, string _tableName, string filePrefixName, string nameSpacePath,
            string createPerson, string chinaComment, string entityName, string modulelogo)
        {
            bool tf = TextHelper.Export2File(tbPath.Text, _tableName,
                Model_Generate.GenerateModelParam(_tableName, strList, filePrefixName, nameSpacePath, createPerson, chinaComment, entityName),
                FileType.Model, filePrefixName, entityName, modulelogo);
        }
        #endregion
        /// <summary>
        /// æ–‡æœ¬æ”¹å˜äº‹ä»¶
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tb_TableName_TextChanged(object sender, EventArgs e)
        {
            string tableName = this.tb_TableName.Text.Trim();//表名
            if (tableName != "")
            {
                var str = CommonHelper.TitleToUpper(tableName);
                this.tb_FileName.Text = this.tb_EntityName.Text = str;
                var index = tableName.IndexOf('_');
                if (index > -1)
                {
                    var moule_str = tableName.Substring(index + 1, tableName.Length - index - 1);
                    this.tb_Modulelogo.Text = moule_str;
                    this.tb_EntityProName.Text = CommonHelper.TitleToLower(moule_str);
                }
                else
                {
                    this.tb_Modulelogo.Text = tableName;
                    this.tb_EntityProName.Text = CommonHelper.TitleToLower(tableName);
                }
            }
        }
        private void btn_InsertSql_Click(object sender, EventArgs e)
        {
            string connStr = this.lbl_DataSource.Text.Trim();//数据库连接字符串
            if (connStr == "")
            {
                MessageBox.Show("请选择数据库源!");
                this.cmb_DataSource.Focus();
                return;
            }
            var tableName = this.tb_TableName.Text.Trim();
            if (tableName == string.Empty)
            {
                MessageBox.Show("请输入表名!");
                return;
            }
            List<ColumnModel> columnList = StructStrHelper.GetColumnList(tableName, connStr);
            if (columnList.Count == 0)
            {
                MessageBox.Show("没有获取到表下面的列集合!");
                return;
            }
            string chinaComment = this.tb_ChinaComment.Text.Trim();//中文注释
            string createPerson = this.tb_CreatePerson.Text.Trim();//创建人
            var str_generate = InsertSQL_Generate.CreateInsertSQLText(tableName, createPerson, chinaComment, columnList);
            bool tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.SQL_Insert, "", "", "");
            //MessageBox.Show("生成文件成功!");
            //成功之后打开文件夹
            using (System.Diagnostics.Process.Start(this.tbPath.Text + "\\" + this.tb_TableName.Text))
            {
            }
        }
        private void label13_Click(object sender, EventArgs e)
        {
        }
        private void MainForm_Load(object sender, EventArgs e)
        {
            tb_EntityProName.Enabled = false;
            tb_FileName.Enabled = false;
            tb_Modulelogo.Enabled = false;
            tb_WCF_NameSpacePath.Enabled = false;
            tb_RoutePrefix.Enabled = false;
        }
        private void cmb_DataSource_SelectedIndexChanged(object sender, EventArgs e)
        {
            string connStr = (this.cmb_DataSource.SelectedItem as ListItem).Value;
            var name = (this.cmb_DataSource.SelectedItem as ListItem).Text;
            this.lbl_DataSource.Text = connStr;
            dataBaseName = name;
            if (name == "GSiemens_LES")
            {
                this.tb_ProjectNamePrefix.Text = "LES";
            }
            else if (name == "GSiemens_WIP")
            {
                this.tb_ProjectNamePrefix.Text = "WIP";
            }
            else if (name.Contains("AoSinWms"))
            {
                this.tb_ProjectNamePrefix.Text = "AoSinWms";
            }
            else
            {
                this.tb_ProjectNamePrefix.Text = "Test";
            }
        }
        private void ck_IsShowImport_CheckedChanged(object sender, EventArgs e)
        {
            //this.tb_templeteFileDownName.Enabled = false;
            //this.tb_importExcelCategroy.Enabled = false;
            //if (this.ck_IsShowImport.Checked)
            //{
            //    this.tb_templeteFileDownName.Enabled = true;
            //    this.tb_importExcelCategroy.Enabled = true;
            //}
        }
        private void tb_EntityProName_TextChanged(object sender, EventArgs e)
        {
        }
        private void cmb_DataBase_SelectedIndexChanged(object sender, EventArgs e)
        {
            string connStr = (this.cmb_DataBase.SelectedItem as ListItem).Value;
            var name = (this.cmb_DataBase.SelectedItem as ListItem).Text;
            dataBaseEnum = (DataBaseEnum)Enum.Parse(typeof(DataBaseEnum), name);
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/MainForm.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Model/ColumnModell.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// åˆ—对象
    /// </summary>
    public class ColumnModel
    {
        /// <summary>
        /// åˆ—名
        /// </summary>
        public string ColumnName { get; set; }
        /// <summary>
        /// æ•°æ®ç±»åž‹
        /// </summary>
        public string DataType { get; set; }
        /// <summary>
        /// æ³¨é‡Š
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// å­—段长度
        /// </summary>
        public string DataLength { get; set; }
        /// <summary>
        /// æ˜¯å¦å¯ä¸ºnull
        /// </summary>
        public bool IsNullable { get; set; }
        /// <summary>
        /// æ˜¯å¦æ˜¯ä¸»é”®
        /// </summary>
        public bool IsPrimaryKey { get; set; }
        public int Precision { get; set; }
        public int Scale { get; set; }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Model/Enum/DataBaseEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// æ•°æ®åº“枚举
    /// </summary>
    public enum DataBaseEnum
    {
        SqlServer = 0,
        MySql = 1,
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Model/Enum/DataTypeEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// æ•°æ®ç±»åž‹æžšä¸¾
    /// </summary>
    public enum DataTypeEnum
    {
        dt_char = 0,
        dt_varchar = 1,
        dt_datetime = 2,
        dt_datetime2 = 3,
        dt_int = 4,
        dt_bigint = 5,
        dt_decimal = 6,
        dt_nvarchar = 7,
        dt_Varchar_Desc = 8,
        dt_Varchar_Ext_Link = 9,
        dt_bit = 10,
        /// <summary>
        /// å”¯ä¸€ç±»åž‹
        /// uniqueidentifier数据类型可存储16字节的二进制值,其作用与全局唯一标记符(GUID)一样。GUID是唯一的二进制数:世界上的任何两台计算机都不会生成重复的GUID值。GUID主要用于在用于多个节点,多台计算机的网络中,分配必须具有唯一性的标识符。
        /// </summary>
        dt_uniqueidentifier = 11,
        dt_float = 12,
        /// <summary>
        /// æ—¥æœŸ
        /// </summary>
        dt_datetimeoffset = 13
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Model/ListItem.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// ListItem用于ComboBox控件添加项
    /// </summary>
    public class ListItem
    {
        public string Text
        {
            get;
            set;
        }
        public string Value
        {
            get;
            set;
        }
        public override string ToString()
        {
            return this.Text;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Model/Proc.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
/*
 * CLR Version:4.0.30319.42000
 * NameSpace:GenerateCode_GEBrilliantFactory.Model
 * FileName:Proc
 * CurrentYear:2018
 * CurrentTime:2018/8/31 16:46:26
 * Author:shaocx
 *
 * <更新记录>
 * ver 1.0.0.0   2018/8/31 16:46:26 æ–°è¦ä½œæˆ (by shaocx)
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// å­˜å‚¨è¿‡ç¨‹å
    /// </summary>
    public class ProcName
    {
        /// <summary>
        /// æ–°å¢žçš„存储过程名
        /// </summary>
        public string AddProc { get; set; }
        /// <summary>
        /// ç¼–辑的存储过程名
        /// </summary>
        public string UpdateProc { get; set; }
        /// <summary>
        /// åˆ—表的存储过程名
        /// </summary>
        public string ListProc { get; set; }
        /// <summary>
        /// åˆ†é¡µåˆ—表的存储过程名
        /// </summary>
        public string PageListProc { get; set; }
        /// <summary>
        /// å¾—到一个实体的存储过程名
        /// </summary>
        public string GetSingleProc { get; set; }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Model/SystemCommonVar.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GenerateCode_GEBrilliantFactory.Model
{
    public static class SystemCommonVar
    {
        //public const string c_Id = "Id";
        //public const string c_creator = "creator";
        //public const string c_createTime = "createTime";
        //public const string c_lastModifier = "lastModifier";
        //public const string c_ModifyTime = "ModifyTime";
        //public const string c_lastModifyTime = "lastModifyTime";
        //public const string c_delFlag = "delFlag";
        //public const string c_CreateId = "CreateId";
        //public const string c_ModifyId = "ModifyId";
        public const string c_Id = "Id";
        public const string c_creator = "CreatedUserName";
        public const string c_createTime = "CreatedTime";
        public const string c_lastModifier = "UpdatedUserName";
        public const string c_ModifyTime = "UpdatedTime";
        public const string c_lastModifyTime = "UpdatedTime";
        public const string c_delFlag = "IsDeleted";
        public const string c_CreateId = "CreatedUserId";
        public const string c_ModifyId = "UpdatedUserId";
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Program.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace GenerateCode_GEBrilliantFactory
{
    static class Program
    {
        /// <summary>
        /// åº”用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Properties/AssemblyInfo.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// æœ‰å…³ç¨‹åºé›†çš„常规信息通过以下
// ç‰¹æ€§é›†æŽ§åˆ¶ã€‚更改这些特性值可修改
// ä¸Žç¨‹åºé›†å…³è”的信息。
[assembly: AssemblyTitle("GenerateModel")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("GenerateModel")]
[assembly: AssemblyCopyright("Copyright Â© Microsoft 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// å°† ComVisible è®¾ç½®ä¸º false ä½¿æ­¤ç¨‹åºé›†ä¸­çš„类型
// å¯¹ COM ç»„件不可见。如果需要从 COM è®¿é—®æ­¤ç¨‹åºé›†ä¸­çš„类型,
// åˆ™å°†è¯¥ç±»åž‹ä¸Šçš„ ComVisible ç‰¹æ€§è®¾ç½®ä¸º true。
[assembly: ComVisible(false)]
// å¦‚果此项目向 COM å…¬å¼€ï¼Œåˆ™ä¸‹åˆ— GUID ç”¨äºŽç±»åž‹åº“çš„ ID
[assembly: Guid("9e79a0fb-3e1e-47cb-b0e0-4c969655489f")]
// ç¨‹åºé›†çš„版本信息由下面四个值组成:
//
//      ä¸»ç‰ˆæœ¬
//      æ¬¡ç‰ˆæœ¬
//      å†…部版本号
//      ä¿®è®¢å·
//
// å¯ä»¥æŒ‡å®šæ‰€æœ‰è¿™äº›å€¼ï¼Œä¹Ÿå¯ä»¥ä½¿ç”¨â€œå†…部版本号”和“修订号”的默认值,
// æ–¹æ³•是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Properties/Resources.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
//     æ­¤ä»£ç ç”±å·¥å…·ç”Ÿæˆã€‚
//     è¿è¡Œæ—¶ç‰ˆæœ¬:4.0.30319.42000
//
//     å¯¹æ­¤æ–‡ä»¶çš„æ›´æ”¹å¯èƒ½ä¼šå¯¼è‡´ä¸æ­£ç¡®çš„行为,并且如果
//     é‡æ–°ç”Ÿæˆä»£ç ï¼Œè¿™äº›æ›´æ”¹å°†ä¼šä¸¢å¤±ã€‚
// </auto-generated>
//------------------------------------------------------------------------------
namespace GenerateCode_WeiBen_WMS.Properties {
    using System;
    /// <summary>
    ///   ä¸€ä¸ªå¼ºç±»åž‹çš„资源类,用于查找本地化的字符串等。
    /// </summary>
    // æ­¤ç±»æ˜¯ç”± StronglyTypedResourceBuilder
    // ç±»é€šè¿‡ç±»ä¼¼äºŽ ResGen æˆ– Visual Studio çš„工具自动生成的。
    // è‹¥è¦æ·»åŠ æˆ–ç§»é™¤æˆå‘˜ï¼Œè¯·ç¼–è¾‘ .ResX æ–‡ä»¶ï¼Œç„¶åŽé‡æ–°è¿è¡Œ ResGen
    // (以 /str ä½œä¸ºå‘½ä»¤é€‰é¡¹),或重新生成 VS é¡¹ç›®ã€‚
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    internal class Resources {
        private static global::System.Resources.ResourceManager resourceMan;
        private static global::System.Globalization.CultureInfo resourceCulture;
        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
        internal Resources() {
        }
        /// <summary>
        ///   è¿”回此类使用的缓存的 ResourceManager å®žä¾‹ã€‚
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GenerateCode_WeiBen_WMS.Properties.Resources", typeof(Resources).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }
        }
        /// <summary>
        ///   é‡å†™å½“前线程的 CurrentUICulture å±žæ€§ï¼Œå¯¹
        ///   ä½¿ç”¨æ­¤å¼ºç±»åž‹èµ„源类的所有资源查找执行重写。
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Globalization.CultureInfo Culture {
            get {
                return resourceCulture;
            }
            set {
                resourceCulture = value;
            }
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Properties/Resources.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Properties/Settings.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
//     æ­¤ä»£ç ç”±å·¥å…·ç”Ÿæˆã€‚
//     è¿è¡Œæ—¶ç‰ˆæœ¬:4.0.30319.42000
//
//     å¯¹æ­¤æ–‡ä»¶çš„æ›´æ”¹å¯èƒ½ä¼šå¯¼è‡´ä¸æ­£ç¡®çš„行为,并且如果
//     é‡æ–°ç”Ÿæˆä»£ç ï¼Œè¿™äº›æ›´æ”¹å°†ä¼šä¸¢å¤±ã€‚
// </auto-generated>
//------------------------------------------------------------------------------
namespace GenerateCode_WeiBen_WMS.Properties {
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")]
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
        public static Settings Default {
            get {
                return defaultInstance;
            }
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Properties/Settings.settings
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Robot.ico
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/BLLÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,178 @@
using System;
using System.Collections.Generic;
using System.Data;
using WIP_common;
using WIP_DAL;
using WIP_Models;
namespace WIP_BLL
{
    /// <summary>
    /// $ChinaComment$业务处理类
    /// </summary>
    public class $FilePrefixName$BLL
    {
        private readonly $FilePrefixName$DAL $TableAlias$DAL = new $FilePrefixName$DAL();
        #region Add
         /// <summary>
        /// å¢žåŠ ä¸€æ¡$ChinaComment$数据
        /// </summary>
        /// <param name="param">要增加的$ChinaComment$参数类</param>
        /// <param name="creator">创建人</param>
        /// <returns>插入的最新主键值</returns>
        public int Add($AddEntityParam$ param,string creator)
        {
            $EntityName$ model = null;
            model = WIPCommon.T1ToT2<$AddEntityParam$, $EntityName$>(param);
            model.creator = model.lastModifier = creator;
            model.createTime = model.lastModifyTime = DateTime.Now;
            model.delFlag=false;
            return $TableAlias$DAL.Add(model);
        }
        #endregion
        #region Edit
        /// <summary>
        /// æ›´æ–°ä¸€æ¡$ChinaComment$数据
        /// </summary>
        /// <param name="model">要更新的$ChinaComment$实体</param>
        /// <param name="lastModifier">最后修改人</param>
        /// <returns>更新是否成功</returns>
        public bool Update($EntityName$ model,string lastModifier)
        {
            model.lastModifier = lastModifier;
            model.lastModifyTime = DateTime.Now;
            return $TableAlias$DAL.Update(model);
        }
        #endregion
        #region Del
        /// <summary>
        /// åˆ é™¤ä¸€æ¡$ChinaComment$数据
        /// </summary>
        /// <param name="$PrimaryKey$">$PrimaryKeyDesc$</param>
        /// <returns>是否删除成功</returns>
        public bool Delete(string $PrimaryKey$)
        {
            return $TableAlias$DAL.Delete($PrimaryKey$);
        }
        #endregion
        #region Enable
        /// <summary>
        /// ç¦å¯ç”¨$ChinaComment$数据
        /// </summary>
        /// <param name="$PrimaryKey$">$PrimaryKeyDesc$</param>
        /// <param name="delFlag">禁用1/启用0</param>
        /// <param name="lastModifier">最后修改人</param>
        /// <param name="transModel">事务类</param>
        /// <returns>是否禁启用成功</returns>
        public bool Enable(string $PrimaryKey$, string delFlag, string lastModifier)
        {
            return $TableAlias$DAL.Enable($PrimaryKey$,delFlag,lastModifier);
        }
        #endregion
        #region QueryList(Page)
        /// <summary>
        /// èŽ·å¾—$ChinaComment$数据列表(分页)
        /// </summary>
        /// <param name="pageParam">查询参数</param>
        /// <returns>$ChinaComment$分页数据</returns>
        public PageResultModel<$EntityName$> GetModelListForPage(Query$Modulelogo$Param pageParam)
        {
            DataSet ds = $TableAlias$DAL.GetModelListForPage(pageParam);
            List<$EntityName$> list = DataTableToList(ds.Tables[0]);
            int total = Convert.ToInt32(ds.Tables[1].Rows[0]["COUNT"]);
            PageResultModel<$EntityName$> result = new PageResultModel<$EntityName$>();
            result.total = total;
            result.rows = list;
            return result;
        }
        #endregion
        #region QueryList
        /// <summary>
        /// èŽ·å¾—$ChinaComment$数据列表
        /// </summary>
        /// <param name="strWhere">查询条件</param>
        /// <returns>$ChinaComment$数据集合</returns>
        public List<$EntityName$> GetModelList(string strWhere)
        {
            DataSet ds = $TableAlias$DAL.GetList(strWhere);
            return DataTableToList(ds.Tables[0]);
        }
        #endregion
        #region Query(Single)
        /// <summary>
        /// å¾—到一个$ChinaComment$实体
        /// </summary>
        /// <param name="$PrimaryKey$">$PrimaryKeyDesc$</param>
        /// <returns>$ChinaComment$实体</returns>
        public $EntityName$ GetModel(string $PrimaryKey$)
        {
            return $TableAlias$DAL.GetModel($PrimaryKey$);
        }
        #endregion
        #region Other
        /// <summary>
        /// æ˜¯å¦å­˜åœ¨è¯¥$ChinaComment$记录
        /// </summary>
        /// <param name="$PrimaryKey$">$PrimaryKeyDesc$</param>
        /// <returns></returns>
        public bool Exists(string $PrimaryKey$, int? id = null)
        {
            return $TableAlias$DAL.Exists($PrimaryKey$,id);
        }
        #endregion
        #region Common
        /// <summary>
        /// èŽ·å¾—$ChinaComment$数据列表
        /// </summary>
        private List<$EntityName$> DataTableToList(DataTable dt)
        {
            List<$EntityName$> modelList = new List<$EntityName$>();
            int rowsCount = dt.Rows.Count;
            if (rowsCount > 0)
            {
                $EntityName$ model;
                for (int n = 0; n < rowsCount; n++)
                {
                    model = new $EntityName$();
                    var dataRow = dt.Rows[n];
                    $ToSingleModel$
                    modelList.Add(model);
                }
            }
            return modelList;
        }
        #endregion
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/ControllerÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,274 @@
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 Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Threading.Tasks;
using System;
namespace $ProjectNamePrefix$.Core.Api.Controllers
{
    /// <summary>
    /// $ChinaComment$
    /// </summary>
    [Route("api/[controller]/[action]")]
    [ApiController]
    [Authorize(Permissions.Name)]
    public class $EntityName$Controller : ControllerBase
    {
        private readonly I$EntityName$Services _$EntityName$Services;
        private readonly IUser _user;
        private readonly ILogger<$EntityName$Controller> _logger;
        public $EntityName$Controller(I$EntityName$Services $EntityName$Services, IUser user, ILogger<$EntityName$Controller> logger)
        {
            _$EntityName$Services = $EntityName$Services;
            _user = user;
            _logger = logger;
        }
        /// <summary>
        /// åˆ†é¡µèŽ·å–$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>
        /// <returns></returns>
        [HttpPost]
        public async Task<MessageModel<string>> Post([FromBody] $EntityName$ request)
        {
            try
            {
                #region éªŒè¯
                MessageModel<string> retBody = null;
                retBody = ValidateDataHelper.CommonValidateIsNULL<$EntityName$, string>(request);
                if (retBody != null)
                {
                    return retBody;
                }
                List<ValidateModel> columnsList = null;
                columnsList = new List<ValidateModel>() {
                   $ValidateEmptyForInsert$
                };
                retBody = ValidateDataHelper.CommonValidate<$EntityName$, string>(request, columnsList);
                if (retBody != null)
                {
                    return retBody;
                }
                #endregion
                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="request">要更新的$ChinaComment$对象</param>
        /// <returns>更新结果</returns>
        [HttpPut]
        public async Task<MessageModel<string>> Put([FromBody] $EntityName$ request)
        {
            try
            {
                #region éªŒè¯
                MessageModel<string> retBody = null;
                retBody = ValidateDataHelper.CommonValidateIsNULL<$EntityName$, string>(request);
                if (retBody != null)
                {
                    return retBody;
                }
                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="id">主键</param>
        /// <returns>删除结果</returns>
        [HttpDelete]
        public async Task<MessageModel<string>> Delete(int id = 0)
        {
            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);
            }
        }
        /// <summary>
        /// é€»è¾‘删除$ChinaComment$
        /// </summary>
        /// <param name="id">主键</param>
        /// <returns>删除结果</returns>
        [HttpDelete]
        public async Task<MessageModel<string>> LogicDelete(int id = 0)
        {
            try
            {
                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;
            }
            catch (Exception ex)
            {
                _logger.LogError(ex,"逻辑删除$ChinaComment$出现异常:" + ex.Message);
                return MessageModel<string>.Fail("逻辑删除$ChinaComment$出现异常:" + ex.Message);
            }
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/DALÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,257 @@
using System;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using WIP_Models;
namespace WIP_DAL
{
    /// <summary>
    /// $ChinaComment$数据访问类
    /// </summary>
    public class $FilePrefixName$DAL
    {
        #region Add
        /// <summary>
        /// å¢žåŠ ä¸€æ¡$ChinaComment$数据
        /// </summary>
        /// <param name="model">要插入的$ChinaComment$实体</param>
        /// <param name="transModel">事务类</param>
        /// <returns>插入生成的最新主键值</returns>
        public int Add($EntityName$ model,TransactionModel transModel = null)
        {
            SqlParameter param_id = new SqlParameter();
            param_id.ParameterName = "@id";
            param_id.SqlDbType = SqlDbType.Int;
            param_id.Direction = ParameterDirection.Output;
            $AddSqlParameter$
            int rowsAffected;
            if (transModel != null)
            {
                DbHelperSQL.RunProcedure(transModel.conn,transModel.trans, "$AddProcName$", parameters, out rowsAffected);
            }
            else
            {
                DbHelperSQL.RunProcedure("$AddProcName$", parameters, out rowsAffected);
            }
            return (int)parameters[parameters.Length - 1].Value;
        }
        #endregion
        #region Edit
        /// <summary>
        /// æ›´æ–°ä¸€æ¡$ChinaComment$数据
        /// </summary>
        /// <param name="model">要更新的$ChinaComment$实体</param>
        /// <param name="transModel">事务类</param>
        /// <returns>是否更新成功</returns>
        public bool Update($EntityName$ model,TransactionModel transModel = null)
        {
            $UpdateSqlParameter$
            int rowsAffected = 0;
            if (transModel != null)
            {
                DbHelperSQL.RunProcedure(transModel.conn,transModel.trans, "$UpdateProcName$", parameters, out rowsAffected);
            }
            else
            {
                DbHelperSQL.RunProcedure("$UpdateProcName$", parameters, out rowsAffected);
            }
            if (rowsAffected > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        #endregion
        #region Del
        /// <summary>
        /// åˆ é™¤ä¸€æ¡$ChinaComment$数据
        /// </summary>
        /// <param name="$PrimaryKey$">$PrimaryKeyDesc$</param>
        /// <param name="transModel">事务类</param>
        /// <returns>是否删除成功</returns>
        public bool Delete(string $PrimaryKey$,TransactionModel transModel = null)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("DELETE FROM $TableName$ ");
            strSql.Append(" WHERE $PrimaryKey$=@$PrimaryKey$");
            SqlParameter[] parameters = {
                    new SqlParameter("@$PrimaryKey$", SqlDbType.NVarChar,50)
            };
            parameters[0].Value = $PrimaryKey$;
            int rows = 0;
            if (transModel != null)
            {
                rows = DbHelperSQL.ExecuteSql(transModel.conn, transModel.trans, strSql.ToString(), parameters);
            }
            else
            {
                rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
            }
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        #endregion
        #region Enable
        /// <summary>
        /// ç¦å¯ç”¨$ChinaComment$数据
        /// </summary>
        /// <param name="$PrimaryKey$">$PrimaryKeyDesc$</param>
        /// <param name="delFlag">禁用1/启用0</param>
        /// <param name="lastModifier">最后修改人</param>
        /// <param name="transModel">事务类</param>
        /// <returns>是否禁启用成功</returns>
        public bool Enable(string $PrimaryKey$, string delFlag, string lastModifier, TransactionModel transModel = null)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" UPDATE $TableName$  SET delflag=@delFlag ");
            strSql.Append(" ,lastModifier=@lastModifier ");
            strSql.Append(" ,lastModifyTime=@lastModifyTime ");
            strSql.Append(" WHERE $PrimaryKey$=@$PrimaryKey$");
            SqlParameter[] parameters = {
                    new SqlParameter("@delFlag", SqlDbType.NVarChar,10) ,
                    new SqlParameter("@lastModifier", SqlDbType.NVarChar,20) ,
                    new SqlParameter("@lastModifyTime", SqlDbType.DateTime) ,
                    new SqlParameter("@$PrimaryKey$", SqlDbType.NVarChar,50)
            };
            parameters[0].Value = delFlag;
            parameters[1].Value = lastModifier;
            parameters[2].Value = DateTime.Now;
            parameters[3].Value = $PrimaryKey$;
            int rows = 0;
            if (transModel != null)
            {
                rows = DbHelperSQL.ExecuteSql(transModel.conn, transModel.trans, strSql.ToString(), parameters);
            }
            else
            {
                rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
            }
            return rows > 0 ? true : false;
        }
        #endregion
        #region QueryList(Page)
        /// <summary>
        /// èŽ·å¾—$ChinaComment$数据列表(分页)
        /// </summary>
        /// <param name="pageParam">分页实体数据</param>
        /// <returns>$ChinaComment$列表DataSet</returns>
        public DataSet GetModelListForPage(Query$Modulelogo$Param pageParam)
        {
            $QueryPageSqlParameter$
            return DbHelperSQL.RunProcedure("$GetPageListProcName$", parameters, "pagetable");
        }
        #endregion
        #region QueryList
        /// <summary>
        /// èŽ·å¾—$ChinaComment$数据列表
        /// </summary>
        /// <param name="strWhere">查询条件</param>
        /// <returns>$ChinaComment$列表DataSet</returns>
        public DataSet GetList(string strWhere)
        {
            SqlParameter[] parameters = {
                        new SqlParameter("@strWhere", SqlDbType.NVarChar,500)
            };
            parameters[0].Value = strWhere;
            return DbHelperSQL.RunProcedure("$GetListProcName$", parameters, "table");
        }
        #endregion
        #region Query(Single)
        /// <summary>
        /// å¾—到一个$ChinaComment$实体
        /// </summary>
        /// <param name="$PrimaryKey$">$PrimaryKeyDesc$</param>
        /// <returns>$ChinaComment$实体</returns>
        public $EntityName$ GetModel(string $PrimaryKey$)
        {
            SqlParameter[] parameters = {
                    new SqlParameter("@$PrimaryKey$", SqlDbType.VarChar,50)
            };
            parameters[0].Value = $PrimaryKey$;
            DataSet ds = DbHelperSQL.RunProcedure("$GetSingleProcName$", parameters, "pagetable");
            $EntityName$ model = new $EntityName$();
            if (ds.Tables[0].Rows.Count == 1)
            {
                var dataRow = ds.Tables[0].Rows[0];
                $ToSingleModel$
                return model;
            }
            else
            {
                return null;
            }
        }
        #endregion
        #region Other
        /// <summary>
        /// æ˜¯å¦å­˜åœ¨è¯¥$ChinaComment$记录
        /// </summary>
        /// <param name="$PrimaryKey$">$PrimaryKeyDesc$</param>
        /// <returns>是否存在该$ChinaComment$记录</returns>
        public bool Exists(string $PrimaryKey$, int? id = null)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("SELECT COUNT(1) FROM $TableName$");
            strSql.Append(" WHERE ");
            strSql.Append("  $PrimaryKey$ = @$PrimaryKey$  ");
            if (id != null)
            {
                strSql.Append("  AND  id <> " + id.ToString());
            }
            SqlParameter[] parameters = {
                    new SqlParameter("@$PrimaryKey$", SqlDbType.NVarChar,50)           };
            parameters[0].Value = $PrimaryKey$;
            return DbHelperSQL.Exists(strSql.ToString(), parameters);
        }
        #endregion
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Entity/AddModelÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
using System;
using System.Runtime.Serialization;
namespace WIP_Models
{
    /// <summary>
    /// æ–°å¢ž$ChinaComment$参数类
    /// </summary>
    [DataContract]
    public class $AddEntityParam$
    {
        $AddAttributes$
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Entity/InputModelÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
using Furion.Extras.Admin.NET;
using Furion.Extras.Admin.NET.Extension;
using Furion.Extras.Admin.NET.Service;
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application
{
    /// <summary>
    /// åˆ†é¡µæŸ¥è¯¢$ChinaComment$输入参数
    /// </summary>
    public class $EntityName$PageInput : PageInputCustomBase
    {
        $QueryAttributes$
    }
    /// <summary>
    /// æ–°å¢ž$ChinaComment$输入参数
    /// </summary>
    public class Add$EntityName$Input : BasicsDEntity
    {
        $AddAttributes$
    }
    /// <summary>
    /// æ›´æ–°$ChinaComment$输入参数
    /// </summary>
    public class Update$EntityName$Input : Add$EntityName$Input
    {
        [Required(ErrorMessage = "Id主键不能为空")]
        public virtual new long Id { get; set; }
    }
    /// <summary>
    /// åˆ é™¤$ChinaComment$输入参数
    /// </summary>
    public class Delete$EntityName$Input
    {
        public List<long> Id { get; set; }
    }
    /// <summary>
    /// å•个查询$ChinaComment$输入参数
    /// </summary>
    public class Query$EntityName$Input : BaseId
    {
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Entity/OutputModelÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
using Admin.NET.Core.Helper.ExcelHelper;
using Furion.Extras.Admin.NET;
using Microsoft.EntityFrameworkCore;
namespace Admin.NET.Application
{
    /// <summary>
    /// æŸ¥è¯¢$ChinaComment$输出参数
    /// </summary>
    public class $EntityName$Output : BasicsDEntity
    {
        $QueryOutputAttributes$
    }
    /// <summary>
    /// å¯¼å‡º$ChinaComment$输出参数
    /// </summary>
    public class Export$EntityName$Output
    {
        $ExportOutputAttributes$
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/InitSQLÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
USE $DataBaseName$
GO
------------------------------------
--用途:初始化接口管理表-$ChinaComment$
--说明:
--作者: $Author$
--时间:$CurDate$
------------------------------------
INSERT INTO Modules ([IsDeleted], [Name], [LinkUrl], [Area], [Controller], [Action], [Icon], [Code], [OrderSort], [Description], [IsMenu], [Enabled], [CreateId], [CreateBy], [CreateTime], [ModifyId], [ModifyBy], [ModifyTime], [ParentId]) VALUES ('0', N'查询$ChinaComment$', N'/api/$TableName$/get', NULL, NULL, NULL, NULL, NULL, '0', NULL, '0', '1', '12', N'sys', GETDATE(), NULL, NULL,GETDATE(), '0');
INSERT INTO Modules ([IsDeleted], [Name], [LinkUrl], [Area], [Controller], [Action], [Icon], [Code], [OrderSort], [Description], [IsMenu], [Enabled], [CreateId], [CreateBy], [CreateTime], [ModifyId], [ModifyBy], [ModifyTime], [ParentId]) VALUES ('0', N'新增$ChinaComment$', N'/api/$TableName$/post', NULL, NULL, NULL, NULL, NULL, '0', NULL, '0', '1', '12', N'sys', GETDATE(), NULL, NULL, GETDATE(), '0');
INSERT INTO Modules ([IsDeleted], [Name], [LinkUrl], [Area], [Controller], [Action], [Icon], [Code], [OrderSort], [Description], [IsMenu], [Enabled], [CreateId], [CreateBy], [CreateTime], [ModifyId], [ModifyBy], [ModifyTime], [ParentId]) VALUES ('0', N'修改$ChinaComment$', N'/api/$TableName$/put', NULL, NULL, NULL, NULL, NULL, '0', NULL, '0', '1', '12', N'sys', GETDATE(), NULL, NULL, GETDATE(), '0');
INSERT INTO Modules ([IsDeleted], [Name], [LinkUrl], [Area], [Controller], [Action], [Icon], [Code], [OrderSort], [Description], [IsMenu], [Enabled], [CreateId], [CreateBy], [CreateTime], [ModifyId], [ModifyBy], [ModifyTime], [ParentId]) VALUES ('0', N'删除$ChinaComment$', N'/api/$TableName$/delete', NULL, NULL, NULL, NULL, NULL, '0', NULL, '0', '1', '12', N'sys', GETDATE(), NULL, NULL, GETDATE(), '0');
GO
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Proc/ÐÞ¸ÄÒ»Ìõ¼Ç¼´æ´¢¹ý³Ì.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
IF EXISTS ( SELECT 1 FROM dbo.sysobjects WHERE id = object_id(N'[$UpdateProcName$]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
  DROP PROCEDURE [$UpdateProcName$]
GO
------------------------------------
--用途:修改一条$ChinaComment$记录
--说明:
--作者: $Author$
--时间:$CurDate$
------------------------------------
CREATE PROCEDURE $UpdateProcName$
    $update_cols_params$
AS
    UPDATE [$TableName$] SET
    $update_cols_assignment$
    WHERE $Primary$=@$Primary$
GO
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Proc/ÐÞ¸ÄÒ»Ìõ¼Ç¼´æ´¢¹ý³Ì2.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
IF EXISTS ( SELECT 1 FROM dbo.sysobjects WHERE id = object_id(N'[$UpdateProcName$]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
  DROP PROCEDURE [$UpdateProcName$]
GO
------------------------------------
--用途:修改一条$ChinaComment$记录
--说明:
--作者: $Author$
--时间:$CurDate$
------------------------------------
CREATE PROCEDURE $UpdateProcName$
    $update_cols_params$
AS
    UPDATE [$TableName$] SET
    $update_cols_assignment2$
    WHERE $Primary$=@$Primary$
GO
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Proc/·ÖÒ³´æ´¢¹ý³Ì.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
IF EXISTS (SELECT 1 FROM dbo.sysobjects WHERE id = object_id(N'[$GetPageListProcName$]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
  DROP PROCEDURE [$GetPageListProcName$]
GO
------------------------------------
--用途:获得$ChinaComment$数据列表(分页)
--说明:
--作者: $Author$
--时间:$CurDate$
------------------------------------
CREATE PROCEDURE $GetPageListProcName$
    $page_cols_params$
    @pageIndex  int,
    @pageSize int
AS
  DECLARE @startRow int, @endRow int
  SET nocount ON;
  SET @startRow = (@pageIndex - 1) * @pageSize +1
  SET @endRow = @startRow + @pageSize -1
  -- æŸ¥è¯¢åˆ†é¡µæ•°æ®
  SELECT $strQueryCol_1$
  FROM
  (
     SELECT ROW_NUMBER() Over(order by id desc ) AS row_num,
            $strQueryCol_2$
            FROM $TableName$ AS $TableAlias$ WITH(NOLOCK)
            WHERE $where_cols_params$
  ) AS tabledata
  WHERE row_num  BETWEEN cast(@startRow as nvarchar(20)) AND +cast(@endRow as nvarchar(20))
  -- æŸ¥è¯¢æ€»æ¡æ•°
  SELECT COUNT(1) AS COUNT FROM $TableName$ AS $TableAlias$ WITH(NOLOCK)
  WHERE $where_cols_params$
  SET nocount OFF;
GO
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Proc/ÁÐ±í´æ´¢¹ý³Ì.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
IF EXISTS ( SELECT 1 FROM dbo.sysobjects WHERE id = object_id(N'[$GetListProcName$]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
  DROP PROCEDURE [$GetListProcName$]
GO
------------------------------------
--用途:获得$ChinaComment$数据列表
--说明:
--作者: $Author$
--时间:$CurDate$
------------------------------------
CREATE PROCEDURE $GetListProcName$
    @strWhere nvarchar(500) -- æŸ¥è¯¢æ¡ä»¶
AS
  DECLARE @strQueryCol nvarchar(max),
          @strSql nvarchar(max)
  SET nocount ON;
  SET @strQueryCol=' $strQueryCol$ '
  SET @strSql= ' SELECT '+@strQueryCol
              +' FROM $TableName$  AS $TableAlias$ WITH(NOLOCK) WHERE 1=1  '
  IF(@strWhere <> '')
    BEGIN
        SET @strSql=@strSql+' AND '+@strWhere
    END
  SET @strSql=@strSql+' ORDER BY $TableAlias$.$orderByName$ DESC '
  EXEC SP_EXECUTESQL @strSql
  SET nocount OFF;
GO
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Proc/Ôö¼ÓÒ»Ìõ¼Ç¼´æ´¢¹ý³Ì.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
IF EXISTS ( SELECT 1 FROM dbo.sysobjects WHERE id = object_id(N'[$AddProcName$]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
  DROP PROCEDURE [$AddProcName$]
GO
------------------------------------
--用途:增加一条$ChinaComment$记录
--说明:
--作者: $Author$
--时间:$CurDate$
------------------------------------
CREATE PROCEDURE $AddProcName$
    @id int output,
    $insert_cols_params$
AS
    INSERT INTO [$TableName$](
    $insert_cols$
    )VALUES(
    $insert_cols_values$
    )
    SET @id = @@IDENTITY
    RETURN @id
GO
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Proc/µÃµ½Ò»¸öʵÌå´æ´¢¹ý³Ì.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
IF EXISTS ( SELECT 1 FROM dbo.sysobjects WHERE id = object_id(N'[$GetSingleProcName$]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
  DROP PROCEDURE [$GetSingleProcName$]
GO
------------------------------------
--用途:得到一个$ChinaComment$实体
--说明:
--作者: $Author$
--时间:$CurDate$
------------------------------------
CREATE PROCEDURE $GetSingleProcName$
    @$Primary$ $DataType$
AS
  SET nocount ON;
  SELECT $strQueryCol$
  FROM $TableName$  AS $TableAlias$ WITH(NOLOCK) WHERE $Primary$=@$Primary$
  SET nocount OFF;
GO
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Services½Ó¿ÚʵÏÖÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,192 @@
using Admin.NET.Core.BasicInformation.Entity;
using Furion.DatabaseAccessor;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Furion.Extras.Admin.NET;
using Furion.Extras.Admin.NET.Extension;
using Furion.FriendlyException;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.ChangeTracking;
using PandaWork.Infrastructure;
using System.Data;
using System.Linq.Dynamic.Core;
using Furion.LinqBuilder;
using System.Linq.Expressions;
using Admin.NET.Core.Helper.ExcelHelper;
namespace Admin.NET.Application
{
    /// <summary>
    /// $ChinaComment$服务接口实现
    /// </summary>
    [ApiDescriptionSettings("$GroupName$", Name = "$ChinaComment$", Order = 100)]
    public class $EntityName$Service : ControllerBase, I$EntityName$Service, IDynamicApiController, ITransient
    {
        private readonly IRepository<$EntityName$, MasterDbContextLocator> _$EntityName_FirstLetterLower$Rep;
        /// <summary>
        /// $ChinaComment$服务构造函数
        /// </summary>
        /// <param name="$EntityName_FirstLetterLower$Rep">$ChinaComment$服务仓储对象</param>
        public $EntityName$Service(IRepository<$EntityName$, MasterDbContextLocator> $EntityName_FirstLetterLower$Rep)
        {
             _$EntityName_FirstLetterLower$Rep = $EntityName_FirstLetterLower$Rep;
        }
        /// <summary>
        /// åˆ†é¡µæŸ¥è¯¢$ChinaComment$
        /// </summary>
        /// <param name="input">分页查询参数</param>
        /// <returns></returns>
        [HttpGet("/$EntityName$/page")]
        [DisableOpLog]
        public async Task<PageResult<$EntityName$Output>> Page([FromQuery] $EntityName$PageInput input)
        {
            if (input == null)
            {
                throw Oops.Oh(ErrorCode.D4008);
            }
            #region åŠ¨æ€æž„é€ æŸ¥è¯¢æ¡ä»¶
            //动态构造查询条件
            var whereConditions = DynamicGetQueryParams(input);
            #endregion
            var pageList= await _$EntityName_FirstLetterLower$Rep.DetachedEntities
                                     .Where(whereConditions.data)
                                     .OrderBy(PageInputOrder.OrderBuilder<$EntityName$PageInput>(input))
                                     .ProjectToType<$EntityName$Output>()
                                     .ToADPagedListAsync(input.PageNo, input.PageSize);
            return pageList;
        }
        /// <summary>
        /// å¢žåŠ $ChinaComment$
        /// </summary>
        /// <param name="input">增加参数</param>
        /// <returns></returns>
        [HttpPost("/$EntityName$/add")]
        public async Task<long> Add([FromBody] Add$EntityName$Input input)
        {
            if (input == null)
            {
                throw Oops.Oh(ErrorCode.D4008);
            }
            var $EntityName_FirstLetterLower$ = input.Adapt<$EntityName$>();
            EntityEntry<$EntityName$> entityEntry = await _$EntityName_FirstLetterLower$Rep.InsertAsync($EntityName_FirstLetterLower$);
            return entityEntry.Entity.Id;
        }
        /// <summary>
        /// æ›´æ–°$ChinaComment$
        /// </summary>
        /// <param name="input">更新参数</param>
        /// <returns></returns>
        [HttpPost("/$EntityName$/update")]
        public async Task<long> Update([FromBody] Update$EntityName$Input input)
        {
            if (input == null || (input.Id) <= 0)
            {
                throw Oops.Oh(ErrorCode.D1012);
            }
            var isExist = await _$EntityName_FirstLetterLower$Rep.AnyAsync(u => u.Id == input.Id, false);
            if (!isExist)
            {
                throw Oops.Oh(ErrorCode.D1002);
            }
            var $EntityName_FirstLetterLower$ = input.Adapt<$EntityName$>();
            await _$EntityName_FirstLetterLower$Rep.UpdateAsync($EntityName_FirstLetterLower$, ignoreNullValues: true);
            return input.Id;
        }
        /// <summary>
        /// åˆ é™¤$ChinaComment$
        /// </summary>
        /// <param name="input">删除参数</param>
        /// <returns></returns>
        [HttpPost("/$EntityName$/delete")]
        public async Task<int> Delete([FromBody] Delete$EntityName$Input input)
        {
            if (input == null || input.Id.Count == 0)
            {
                throw Oops.Oh(ErrorCode.D4008);
            }
            List<$EntityName$> list = new();
            foreach (var item in input.Id)
            {
                list.Add(new $EntityName$() { Id = item });
            }
            await _$EntityName_FirstLetterLower$Rep.DeleteAsync(list);
            return input.Id.Count;
        }
        /// <summary>
        /// èŽ·å–$ChinaComment$
        /// </summary>
        /// <param name="input">获取对象参数</param>
        /// <returns></returns>
        [HttpGet("/$EntityName$/detail")]
        [DisableOpLog]
        public async Task<$EntityName$Output> Get([FromQuery] Query$EntityName$Input input)
        {
            if (input == null || input.Id <= 0)
            {
                throw Oops.Oh(ErrorCode.D1012);
            }
            return (await _$EntityName_FirstLetterLower$Rep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<$EntityName$Output>();
        }
        /// <summary>
        /// å¯¼å‡º$ChinaComment$Excel
        /// </summary>
        /// <param name="input">筛选条件</param>
        /// <returns></returns>
        [HttpPost("/$EntityName$/export")]
        [DisableOpLog]
        public async Task<ActionResult> Export([FromQuery] $EntityName$PageInput input)
        {
            if (input == null)
            {
                throw Oops.Oh(ErrorCode.D4008);
            }
            #region åŠ¨æ€æž„é€ æŸ¥è¯¢æ¡ä»¶
            //动态构造查询条件
            var whereConditions = DynamicGetQueryParams(input);
            #endregion
            var deliveryOrderExportExcel = await _$EntityName_FirstLetterLower$Rep.DetachedEntities
                .Where(whereConditions.data)
                .ProjectToType<Export$EntityName$Output>()
               .ToListAsync();
            var excelBaseResult = new Excel2003Result<Export$EntityName$Output>(deliveryOrderExportExcel, "$ChinaComment$记录" + DateTime.Now.ToString("yyyyMMdd"), false, "$ChinaComment$记录");
            return File(excelBaseResult.GetExcelStream(), "application/vnd.ms-excel");
        }
         /// <summary>
        /// åŠ¨æ€æž„é€ æŸ¥è¯¢æ¡ä»¶
        /// </summary>
        /// <param name="input">输入参数</param>
        /// <returns></returns>
        private FunReturnResultModel<Expression<Func<$EntityName$, bool>>> DynamicGetQueryParams($EntityName$PageInput input)
        {
            //动态构造查询条件
            var whereConditions = WhereConditionsExtensions.GetWhereConditions<$EntityName$, $EntityName$PageInput>(input);
            if (!whereConditions.IsSuccess)
            {
                throw Oops.Oh("动态构造查询条件失败:" + whereConditions.ErrMsg);
            }
            //也可再次自定义构建查询条件
            Expression<Func<$EntityName$, bool>> extendExpression = a => a.IsDeleted == false;
            whereConditions.data = whereConditions.data.And(extendExpression);
            return whereConditions;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Services½Ó¿ÚÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
using Furion.Extras.Admin.NET;
using Microsoft.AspNetCore.Mvc;
namespace Admin.NET.Application
{
    /// <summary>
    /// $ChinaComment$服务接口
    /// </summary>
    public interface I$EntityName$Service
    {
        /// <summary>
        /// åˆ†é¡µæŸ¥è¯¢$ChinaComment$
        /// </summary>
        /// <param name="input">分页查询参数</param>
        /// <returns></returns>
        Task<PageResult<$EntityName$Output>> Page([FromQuery] $EntityName$PageInput input);
        /// <summary>
        /// å¢žåŠ $ChinaComment$
        /// </summary>
        /// <param name="input">增加参数</param>
        /// <returns></returns>
        Task<long> Add([FromBody] Add$EntityName$Input input);
        /// <summary>
        /// æ›´æ–°$ChinaComment$
        /// </summary>
        /// <param name="input">更新参数</param>
        /// <returns></returns>
        Task<long> Update([FromBody] Update$EntityName$Input input);
        /// <summary>
        /// åˆ é™¤$ChinaComment$
        /// </summary>
        /// <param name="input">删除参数</param>
        /// <returns></returns>
        Task<int> Delete([FromBody] Delete$EntityName$Input input);
        /// <summary>
        /// èŽ·å–$ChinaComment$
        /// </summary>
        /// <param name="input">获取对象参数</param>
        /// <returns></returns>
        Task<$EntityName$Output> Get([FromQuery] Query$EntityName$Input input);
        /// <summary>
        /// å¯¼å‡º$ChinaComment$Excel
        /// </summary>
        /// <param name="input">筛选条件</param>
        /// <returns></returns>
        Task<ActionResult> Export([FromQuery] $EntityName$PageInput input);
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/VUE/VUEÎļþÄ£°å.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,485 @@
<template>
  <section>
    <!--工具条-->
    <el-col :span="24"
            class="toolbar"
            style="padding-bottom: 0px;">
      <el-form :inline="true"
               @submit.native.prevent>
        <toolbar :buttonList="buttonList"
                 @callFunction="callFunction">
        </toolbar>
        <!-- æœç´¢ -->
        <SearchForm :commonSearchOptionSet="c_commonSearchOptionSet"
                    :searchValControlStyle="c_searchValControlStyle"
                    :searchFormInputPlaceholder="c_searchFormInputPlaceholder"
                    :searchFormInputAttrs="c_searchFormInputAttrs"
                    :formOptions="h_formOptions"
                    :drawerSize="h_drawerSize"
                    :labelWidth="h_labelWidth"
                    :controlStyle="h_controlStyle"
                    ref="ChildSearchForm"
                    @onSearch="_get$Modulelogo$s" />
      </el-form>
    </el-col>
    <!--列表-->
    <el-table :data="$Modulelogo$s"
              :max-height="tableHeight"
              highlight-current-row
              size="small"
              :height="tableHeight"
              @current-change="selectCurrentRow"
              v-loading="listLoading"
              @selection-change="selsChange"
              style="width: 99%;">
      <el-table-column type="index"
                       :index="indexMethod"
                       label="#"
                       align="center"
                       width="50">
      </el-table-column>
      $el-table-column$
      <el-table-column label="操作"
                       fixed="right"
                       width="180"
                       v-if="isShowOperatorColumn">
        <template scope="scope">
          <el-button size="small"
                     icon="el-icon-edit"
                     type="primary"
                     v-if="isShowOperatorButton('edit')"
                     @click="handleEdit(scope.row)">编辑</el-button>
          <el-button type="danger"
                     size="small"
                     icon="el-icon-delete"
                     v-if="isShowOperatorButton('del')"
                     @click="handleDel(scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <!--工具条-->
    <el-col :span="24"
            style="margin:10px 10px 10px 0px;"
            class="toolbar">
      <el-pagination @size-change="handleSizeChange"
                     @current-change="handleCurrentChange"
                     :current-page="page"
                     background
                     :page-sizes="[5,10,50,100, 200, 300, 400]"
                     :page-size="pageSize"
                     layout="total, sizes, prev, pager, next, jumper"
                     :total="total">
      </el-pagination>
    </el-col>
    <!--新增/编辑界面-->
    <el-dialog :title="dialogTitle"
               :visible.sync="addFormVisible"
               :close-on-click-modal="false"
               :before-close="cancelHandle">
      <el-form :model="addForm"
               size="small"
               label-width="120px"
               ref="addForm">
        $el-item$
      </el-form>
      <div slot="footer"
           class="dialog-footer">
        <el-button @click.native="cancelHandle" icon="fa fa-power-off">取消</el-button>
        <el-button type="primary"
                   @click.native="submitDataHandle"
                   :loading="addLoading" icon="fa fa-send">提交</el-button>
      </div>
    </el-dialog>
     <!--查看界面-->
    <el-dialog title="查看"
               :visible.sync="viewDetailVisible"
               :before-close="cancelHandle">
      <el-form :model="viewDetailForm"
               size="small"
               disabled="true"
               label-width="120px"
               ref="viewDetailForm">
       $el-item-view$
      </el-form>
      <div slot="footer"
           class="dialog-footer">
        <el-button @click.native="closeViewHandle" icon="fa fa-power-off">关闭</el-button>
      </div>
    </el-dialog>
    <!-- å¯¼å‡ºç»„ä»¶ -->
    <ToolbarExport ref="cmToolbarExport"
                   :exportFileName="export_exportFileName"
                   :currentPageData="export_currentPageData"
                   :exportColumnHeader="export_columnHeader" />
    <!-- å¯¼å…¥Excel组件 -->
    <ToolbarImportExcel ref="tbImportExcel"
                        :importExcelCategroy="emport_excelCategroy"
                        :templeteFileDownName="emport_templeteFileDownName"></ToolbarImportExcel>
  </section>
</template>
<script>
import util from '../../../util/date'
import { get$Modulelogo$ListPage, remove$Modulelogo$, edit$Modulelogo$, add$Modulelogo$ } from '../../api/api';
import { getButtonList } from "../../promissionRouter";
import Toolbar from "../../components/ToolbarButton";
import SearchForm from "../../components/SearchForm";
import ToolbarExport from "../../components/ToolbarExport";
import ToolbarImportExcel from "../../components/ToolbarImportExcel";
import { formatDate, setformOptionsNewValue } from '../../../util/tools'
import { isShowOperatorButtonCommon, isNeedShowOperatorColumn, isMobile } from '../../../util/common'
export default {
  components: { Toolbar, SearchForm, ToolbarExport,ToolbarImportExcel },//注册子组件
  data () {
    return {
      //导入Excel数据相关
      emport_templeteFileDownName: '$emport_templeteFileDownName$.xlsx',//文件下载名字
      emport_excelCategroy: "$emport_excelCategroy$",//上传文件的请求分类
      //导出组件相关
      export_exportFileName: '$ChinaComment$信息',//要导出的文件名
      export_currentPageData: [],//当前页面的列表数据
      export_columnHeader: {$VueExportColumnHeaderStr$},//当前页面列表的表头汉字和属性数组,导出用
      //搜索框相关
      c_commonSearchOptionSet: "模糊",//通用查询的默认配置,"模糊"或"精准"
      c_searchValControlStyle: {//设置通用搜索框的长度等样式
        width: '300px',
      },
      c_searchFormInputPlaceholder: '请输入$SearchFormInputPlaceholderStr$',//要给子搜索组件传递的值
      c_searchFormInputAttrs: [$SearchFormInputPlaceholderNameStr$],//要给子搜索组件传递的属性名
      h_controlStyle: {//设置高级搜索控件的长度等样式
        width: '350px',
      },
      h_labelWidth: "100px",//显示Label的宽度
      h_drawerSize: "600px",//drawner宽度设置
      h_formOptions: [
        $FormOptionsStr$
      ],
      isShowOperatorColumn: true,// æ˜¯å¦æ˜¾ç¤ºã€æ“ä½œã€‘列,true显示 false不显示
      tableHeight: window.innerHeight - 180, // æŽ§åˆ¶è¡¨æ ¼çš„高度
      isAdd: false, // æ˜¯å¦æ˜¯æ–°å¢ž
      dialogTitle: '',
       //查看有关
      viewDetailVisible: false,
      viewDetailForm: {},
      filters: {
        name: ''
      },
      $Modulelogo$s: [],
      total: 0,
      buttonList: [],
      currentRow: null,
      page: 1,
      pageSize: 10,
      listLoading: false,
      sels: [],//列表选中列
      addFormVisible: false,//新增界面是否显示
      addLoading: false,
      //新增或编辑界面数据
      addForm: {
        //注意:这里不需要写初始值,初始值都写在 init_addForm中
      },
      init_addForm: {
        //注意:这里写初始值
      }
    }
  },
  methods: {
     //是否显示某个操作按钮
    isShowOperatorButton (flag) {
      return isShowOperatorButtonCommon(this.isShowOperatorColumn, flag, this.buttonList)
    },
    // è®¾ç½®ç´¢å¼•
    indexMethod (index) {
      return (this.page - 1) * this.pageSize + 1 + index
    },
    // æ—¶é—´æ ¼å¼åŒ–
    formatterDateTime (row, column, cellValue, index) {
       if (cellValue === null || cellValue === '') {
        return ''
      }
      var NewDtime = new Date(Date.parse(cellValue))
      return formatDate(NewDtime, 'yyyy-MM-dd hh:mm:ss')
    },
    selectCurrentRow (val) {
      this.currentRow = val;
    },
    callFunction (item) {
      this.filters = {
        name: item.search
      };
      this[item.Func].apply(this, item);
    },
    handleCurrentChange (val) {
      this.page = val;
      this.get$Modulelogo$s();
    },
    handleSizeChange (val) {
      this.pageSize = val;
      this.get$Modulelogo$s();
    },
    /**
     * èŽ·å–è¯·æ±‚å‚æ•°
     * flag:标记,1代表普通分页查询,2代表不分页,获取全部数据
     */
    getPostParam (flag) {
      let para = Object.assign({}, this.$refs.ChildSearchForm.getFormData());
      para.page = this.page
      para.pageSize = this.pageSize
      if (flag === '2') { // å…¨éƒ¨å¯¼å‡º
        para.page = 1
        para.pageSize = 10000
      }
      return para
    },
    //点击按钮【查询】
    _get$Modulelogo$s () {
      this.page = 1
      this.get$Modulelogo$s()
    },
    //获取列表
    get$Modulelogo$s (formValue) {
      //this.total = 0
      //this.$Modulelogo$s = null
      let para = this.getPostParam('1');
      this.listLoading = true;
      get$Modulelogo$ListPage(para).then((res) => {
        if (res.data.success) {
          this.total = res.data.response.dataCount;
          this.$Modulelogo$s = res.data.response.data;
        } else {
          this.$message({
            message: res.data.msg,
            type: 'error'
          });
        }
        this.listLoading = false;
      });
    },
    //获取全部列表
    exportAllData () {
      let para = this.getPostParam('2');
      this.listLoading = true;
      get$Modulelogo$ListPage(para).then((res) => {
        var allData = res.data.response.data;
        this.$refs.cmToolbarExport.export2Excel(allData);
        this.listLoading = false;
      });
    },
    //删除
    handleDel (selRow) {
      let row = {};
      if (selRow && selRow != undefined) {
        this.currentRow = selRow;
      }
      row = this.currentRow;
      if (!row) {
        this.$message({
          message: "请选择要删除的一行数据!",
          type: "warning"
        });
        return;
      }
      this.$confirm('确认删除该记录吗?', '提示', {
        type: 'warning'
      }).then(() => {
        this.listLoading = true;
        let para = { id: row.Id };
        remove$Modulelogo$(para).then((res) => {
          if (util.isEmt.format(res)) {
            this.listLoading = false;
            return;
          }
          this.listLoading = false;
          if (res.data.success) {
            this.$message({
              message: '删除成功',
              type: 'success'
            });
          } else {
            this.$message({
              message: res.data.msg,
              type: 'error'
            });
          }
          this._get$Modulelogo$s();
        });
      }).catch(() => {
      });
    },
    //显示编辑界面
    handleEdit (selRow) {
      let row = {};
      if (selRow && selRow != undefined) {
        this.currentRow = selRow;
      }
      row = this.currentRow;
      if (!row) {
        this.$message({
          message: "请选择要编辑的一行数据!",
          type: "warning"
        });
        return;
      }
      this.isAdd = false
      this.dialogTitle = '编辑'
      this.addFormVisible = true;
      this.addForm = Object.assign({}, row);
    },
    //显示新增界面
    handleAdd () {
      this.isAdd = true
      this.dialogTitle = '新增'
      this.addFormVisible = true;
      this.setInitAddForm()
    },
    //取消提交数据操作
    cancelHandle (done) {
      this.setInitAddForm()
      this.addFormVisible = false
      done() //done ç”¨äºŽå…³é—­ Dialog
    },
    // æäº¤æ•°æ®
    submitDataHandle (formName) {
      this.submitDisabled = true
      this.$refs.addForm.validate((valid) => {
        if (valid) {
          this.$confirm('确认提交吗?', '提示', {}).then(() => {
            this.addLoading = true;
            let para = Object.assign({}, this.addForm);
            if (this.isAdd) {//新增
              add$Modulelogo$(para).then((res) => {
                if (util.isEmt.format(res)) {
                  this.addLoading = false;
                  return;
                }
                if (res.data.success) {
                  this.addLoading = false;
                  this.$message({
                    message: res.data.msg,
                    type: 'success'
                  });
                  this.$refs['addForm'].resetFields();
                  this.addFormVisible = false;
                  this._get$Modulelogo$s();
                }
                else {
                  this.addLoading = false;
                  this.$message({
                    message: res.data.msg,
                    type: 'error'
                  });
                }
              });
            } else {//编辑
              edit$Modulelogo$(para).then((res) => {
                if (util.isEmt.format(res)) {
                  this.addLoading = false;
                  return;
                }
                if (res.data.success) {
                  this.addLoading = false;
                  //NProgress.done();
                  this.$message({
                    message: res.data.msg,
                    type: 'success'
                  });
                  this.$refs['addForm'].resetFields();
                  this.addFormVisible = false;
                  this._get$Modulelogo$s();
                }
                else {
                  this.addLoading = false;
                  this.$message({
                    message: res.data.msg,
                    type: 'error'
                  });
                }
              });
            }
          });
        }
      });
    },
    selsChange: function (sels) {
      this.sels = sels;
    },
    //导出
    handleExport () {
      this.export_currentPageData = this.$Modulelogo$s
      this.$refs.cmToolbarExport.showPrintPage()
    },
    //导入
    handleImport () {
      this.$refs.tbImportExcel.showPage()
    },
      /******************************************[查看界面]开始*********************************************************** */
    //显示查看界面
    handleView (selRow) {
      let row = {};
      if (selRow && selRow != undefined) {
        this.currentRow = selRow;
      }
      row = this.currentRow;
      if (!row) {
        this.$message({
          message: "请选择要查看的一行数据!",
          type: "warning"
        });
        return;
      }
      this.viewDetailVisible = true
      this.viewDetailForm = {
      };
      this.viewDetailForm = Object.assign({}, row);
    },
    //关闭查看界面
    closeViewHandle () {
      this.viewDetailVisible = false
    },
    /******************************************[查看界面]结束*********************************************************** */
    //addForm赋初始值
    setInitAddForm () {
      this.addForm = Object.assign({}, this.init_addForm)
    }
  },
  mounted () {
    if (isMobile()) {
      this.h_drawerSize = "99%"//drawner宽度设置
    } else {
      this.h_drawerSize = "600px"//drawner宽度设置
    }
    this.setInitAddForm()
    this._get$Modulelogo$s();
    let routers = window.localStorage.router
      ? JSON.parse(window.localStorage.router)
      : [];
    this.buttonList = getButtonList(this.$route.path, routers);
    let isShow = isNeedShowOperatorColumn(this.buttonList);//控制是否要显示【操作】列
    this.isShowOperatorColumn = isShow;
  }
}
</script>
<style lang="scss" scoped>
</style>
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/VUE/VUE·½·¨ÅäÖÃ.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
// é…ç½®$ChinaComment$方法
//分页获取$ChinaComment$列表
export const get$Modulelogo$ListPage = params => {
    return axios.post(`${base}/api/$EntityName$/get`, params);
};
//删除$ChinaComment$
export const remove$Modulelogo$ = params => {
    return axios.delete(`${base}/api/$EntityName$/delete`, { params: params });
};
//编辑$ChinaComment$
export const edit$Modulelogo$ = params => {
    return axios.put(`${base}/api/$EntityName$/put`, params);
};
//添加$ChinaComment$
export const add$Modulelogo$ = params => {
    return axios.post(`${base}/api/$EntityName$/post`, params);
};
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/CommonHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,262 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// å…¬å…±ç±»
    /// </summary>
    public class CommonHelper
    {
        /// <summary>
        /// é¦–字母小写
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string FirstLowercase(string str)
        {
            if (string.IsNullOrEmpty(str))
            {
                return str;
            }
            str = str.Substring(0, 1).ToLower() + str.Substring(1);
            return str;
        }
        /// <summary>
        /// èŽ·å–å­˜å‚¨è¿‡ç¨‹å
        /// </summary>
        /// <param name="moduleName"></param>
        /// <returns></returns>
        public static ProcName GetProcName(string moduleName)
        {
            string procPrefix = "uspWip_";
            ProcName procName = new ProcName()
            {
                AddProc = procPrefix + "Add" + moduleName,
                UpdateProc = procPrefix + "Update" + moduleName,
                GetSingleProc = procPrefix + "GetSingle" + moduleName,
                ListProc = procPrefix + "Get" + moduleName + "List",
                PageListProc = procPrefix + "Get" + moduleName + "PageList",
            };
            return procName;
        }
        /// <summary>
        /// å›žè½¦ç¬¦
        /// </summary>
        public const string enterStr = "\n";
        /// <summary>
        /// å•个回车符的字符串
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        public static string GetSinleEnterStr(string content)
        {
            return content + enterStr;
        }
        /// <summary>
        /// ä¸¤ä¸ªå›žè½¦ç¬¦çš„字符串
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        public static string GetDoubleEnterStr(string content)
        {
            return content + enterStr + enterStr;
        }
        /// <summary>
        /// å½“前时间字符串
        /// </summary>
        /// <returns></returns>
        public static string GetCurDate()
        {
            return DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day
                            + " "
                            + DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second;
        }
        /// <summary>
        /// é¦–字母大写
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string TitleToUpper(string str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return string.Empty;
            char[] s = str.ToCharArray();
            char c = s[0];
            if ('a' <= c && c <= 'z')
                c = (char)(c & ~0x20);
            s[0] = c;
            return new string(s);
        }
        /// <summary>
        /// é¦–字母小写
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string TitleToLower(string str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return string.Empty;
            char[] s = str.ToCharArray();
            char c = s[0];
            if ('A' <= c && c <= 'Z')
                c = char.ToLower(c);
            s[0] = c;
            return new string(s);
        }
        /// <summary>
        /// èŽ·å–æ•°æ®åº“è¿žæŽ¥å­—ç¬¦ä¸²åˆ—è¡¨
        /// </summary>
        /// <returns></returns>
        public static List<ListItem> GetDataSources()
        {
            List<ListItem> list = new List<ListItem>();
            ConnectionStringSettingsCollection conn = ConfigurationManager.ConnectionStrings;
            foreach (ConnectionStringSettings item in conn)
            {
                if (item.Name == "LocalSqlServer")
                    continue;
                ListItem listItem = new ListItem()
                {
                    Text = item.Name,
                    Value = item.ConnectionString
                };
                list.Add(listItem);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ•°æ®åº“ç±»åž‹åˆ—è¡¨
        /// </summary>
        /// <returns></returns>
        public static List<ListItem> GetDataBase()
        {
            List<ListItem> list = new List<ListItem>();
            ListItem listItem = new ListItem()
            {
                Text = DataBaseEnum.MySql.ToString(),
                Value = DataBaseEnum.MySql.ToString()
            };
            list.Add(listItem);
            listItem = new ListItem()
            {
                Text = DataBaseEnum.SqlServer.ToString(),
                Value = DataBaseEnum.SqlServer.ToString()
            };
            list.Add(listItem);
            return list;
        }
    }
    /// <summary>
    /// æ–‡ä»¶ç±»åž‹
    /// </summary>
    public enum FileType
    {
        /// <summary>
        /// å®žä½“类文件
        /// </summary>
        Model = 0,
        /// <summary>
        /// DAO文件
        /// </summary>
        DAO = 1,
        /// <summary>
        /// IBLL文件
        /// </summary>
        IBLL = 2,
        /// <summary>
        /// BLL文件
        /// </summary>
        BLL = 3,
        /// <summary>
        /// Controller文件
        /// </summary>
        Controller = 4,
        /// <summary>
        /// JS文件
        /// </summary>
        JS = 5,
        /// <summary>
        /// åˆ—表页面
        /// </summary>
        CSHTML_List = 6,
        /// <summary>
        /// XML文件
        /// </summary>
        XML = 7,
        /// <summary>
        /// è¯¦æƒ…页面
        /// </summary>
        CSHTML_Detail = 8,
        /// <summary>
        /// å­˜å‚¨è¿‡ç¨‹æ–‡ä»¶
        /// </summary>
        Proc = 9,
        /// <summary>
        /// DAL æ–‡ä»¶
        /// </summary>
        DAL = 10,
        /// <summary>
        /// InputModel
        /// </summary>
        InputModel = 11,
        /// <summary>
        /// WCF接口文件
        /// </summary>
        WCF_InterFace = 12,
        /// <summary>
        /// WCF接口实现文件
        /// </summary>
        WCF_InterFaceRealize = 13,
        /// <summary>
        /// InsertSQL
        /// </summary>
        SQL_Insert = 14,
        /// <summary>
        /// VUE方法配置
        /// </summary>
        VUE_FunConfig = 15,
        /// <summary>
        /// VUE文件
        /// </summary>
        VUEFile = 16,
        /// <summary>
        /// æ–°å¢žå®žä½“参数类
        /// </summary>
        AddModelParam = 17,
        /// <summary>
        /// OutputModel
        /// </summary>
        OutputModel = 18,
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/ListHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,274 @@
using GenerateCode_GEBrilliantFactory.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GenerateCode_GEBrilliantFactory
{
    public class ListHelper
    {
        /// <summary>
        /// èŽ·å–æœ€æ–°çš„åˆ—List集合(去掉 creator和createTime)
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static List<ColumnModel> RemoveCreator(List<ColumnModel> columnNameList)
        {
            //构造新的List
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {//需要去掉 åˆ›å»ºäººå’Œåˆ›å»ºæ—¶é—´
                columnModel = columnNameList[i];
                if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_creator.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_createTime.ToUpper())
                {
                    continue;
                }
                newList.Add(columnModel);
            }
            return newList;
        }
        /// <summary>
        ///  èŽ·å–æœ€æ–°çš„åˆ—List集合(移除全部)
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static List<ColumnModel> RemoveAll(List<ColumnModel> columnNameList)
        {
            //构造新的List
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {//需要去掉 åˆ›å»ºäººå’Œåˆ›å»ºæ—¶é—´
                columnModel = columnNameList[i];
                if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_creator.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_createTime.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyTime.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifier.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifyTime.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_delFlag.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper()
                   )
                {
                    continue;
                }
                newList.Add(columnModel);
            }
            return newList;
        }
        /// <summary>
        ///  èŽ·å–æœ€æ–°çš„åˆ—List集合(CreatedTime、UpdatedTime、CreatedUserId、CreatedUserName、UpdatedUserId、UpdatedUserName)
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static List<ColumnModel> RemoveCreatedTimeUpdatedTimeCreatedUserIdCreatedUserNameUpdatedUserIdUpdatedUserName(List<ColumnModel> columnNameList)
        {
            //构造新的List
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {//需要去掉 åˆ›å»ºäººå’Œåˆ›å»ºæ—¶é—´
                columnModel = columnNameList[i];
                if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_CreateId.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_creator.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_createTime.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyTime.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyId.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifier.ToUpper()
                   || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifyTime.ToUpper()
                   )
                {
                    continue;
                }
                newList.Add(columnModel);
            }
            return newList;
        }
        /// <summary>
        /// èŽ·å–æœ€æ–°çš„åˆ—List集合(去掉 delFlag、creator、createTime、lastModifier、lastModifyTime)
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static List<ColumnModel> RemoveDelFlagCreatorModifier(List<ColumnModel> columnNameList)
        {
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_creator.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_createTime.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifier.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyTime.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifyTime.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_delFlag.ToUpper()
                    )
                {
                    continue;
                }
                newList.Add(columnModel);
            }
            return newList;
        }
        /// <summary>
        /// èŽ·å–æœ€æ–°çš„åˆ—List集合(去掉 Id,OperationRemark、CreateId,ModifyId)
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static List<ColumnModel> RemoveIdOperationRemarkCreateIdModifyId(List<ColumnModel> columnNameList)
        {
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper()
                    || columnModel.ColumnName.ToUpper() == "OperationRemark".ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_CreateId.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyId.ToUpper()
                    )
                {
                    continue;
                }
                newList.Add(columnModel);
            }
            return newList;
        }
        /// <summary>
        /// èŽ·å–æœ€æ–°çš„åˆ—List集合(去掉 Id,CreateId,ModifyId)
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static List<ColumnModel> RemoveIdCreateIdModifyId(List<ColumnModel> columnNameList)
        {
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_CreateId.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyId.ToUpper()
                    )
                {
                    continue;
                }
                newList.Add(columnModel);
            }
            return newList;
        }
        /// <summary>
        /// èŽ·å–æœ€æ–°çš„åˆ—List集合(去掉 Id,CreateId,ModifyId,DelFlag)
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static List<ColumnModel> RemoveIdCreateIdModifyIdDelFlag(List<ColumnModel> columnNameList)
        {
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_CreateId.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyId.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_delFlag.ToUpper()
                    )
                {
                    continue;
                }
                newList.Add(columnModel);
            }
            return newList;
        }
        /// <summary>
        /// èŽ·å–æœ€æ–°çš„åˆ—List集合(只保留 å­—符串类型的字段)
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static List<ColumnModel> OnlyStringProValue(List<ColumnModel> columnNameList)
        {
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                //获取数据类型
                DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                switch (enumDT)
                {
                    case DataTypeEnum.dt_char:
                    case DataTypeEnum.dt_varchar:
                    case DataTypeEnum.dt_Varchar_Desc:
                    case DataTypeEnum.dt_uniqueidentifier:
                    case DataTypeEnum.dt_Varchar_Ext_Link:
                    case DataTypeEnum.dt_nvarchar:
                        newList.Add(columnModel);
                        break;
                }
            }
            return newList;
        }
        /// <summary>
        /// èŽ·å–æœ€æ–°çš„åˆ—List集合(去掉 id、creator、createTime、lastModifier、lastModifyTime)
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static List<ColumnModel> RemoveIdCreatorModifier(List<ColumnModel> columnNameList)
        {
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_creator.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_createTime.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifier.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifyTime.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyTime.ToUpper()
                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper()
                    )
                {
                    continue;
                }
                newList.Add(columnModel);
            }
            return newList;
        }
        /// <summary>
        /// èŽ·å–æœ€æ–°çš„åˆ—List集合(去掉 ID)
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static List<ColumnModel> OnlyRemoveId(List<ColumnModel> columnNameList)
        {
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper())
                {
                    continue;
                }
                newList.Add(columnModel);
            }
            return newList;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/MySqlHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,262 @@
//===============================================================================
// This file is based on the Microsoft Data Access Application Block for .NET
// For more information please go to
// http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp
//===============================================================================
using System;
using System.Configuration;
using System.Data;
using MySqlConnector;
using System.Collections;
/// <summary>
/// The MySqlHelper class is intended to encapsulate high performance,
/// scalable best practices for common uses of MySqlConnector.
/// </summary>
public abstract class MySqlHelper
{
    //Database connection strings
    public static readonly string ConnectionString = "";
    // Hashtable to store cached parameters
    private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
    /// <summary>
    /// Execute a MySqlCommand (that returns no resultset) against the database specified in the connection string
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="connectionString">a valid connection string for a MySqlConnection</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of MySqlParamters used to execute the command</param>
    /// <returns>an int representing the number of rows affected by the command</returns>
    public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {
        MySqlCommand cmd = new MySqlCommand();
        using (MySqlConnection conn = new MySqlConnection(connectionString))
        {
            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
            int val = cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            return val;
        }
    }
    /// <summary>
    /// Execute a MySqlCommand (that returns no resultset) against an existing database connection
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="conn">an existing database connection</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of MySqlParamters used to execute the command</param>
    /// <returns>an int representing the number of rows affected by the command</returns>
    public static int ExecuteNonQuery(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {
        MySqlCommand cmd = new MySqlCommand();
        PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
        int val = cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        return val;
    }
    /// <summary>
    /// Execute a MySqlCommand (that returns no resultset) using an existing SQL Transaction
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="trans">an existing sql transaction</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of MySqlParamters used to execute the command</param>
    /// <returns>an int representing the number of rows affected by the command</returns>
    public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {
        MySqlCommand cmd = new MySqlCommand();
        PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
        int val = cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        return val;
    }
    /// <summary>
    /// Execute a MySqlCommand that returns a resultset against the database specified in the connection string
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  MySqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="connectionString">a valid connection string for a MySqlConnection</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of MySqlParamters used to execute the command</param>
    /// <returns>A MySqlDataReader containing the results</returns>
    public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {
        MySqlCommand cmd = new MySqlCommand();
        MySqlConnection conn = new MySqlConnection(connectionString);
        // we use a try/catch here because if the method throws an exception we want to
        // close the connection throw code, because no datareader will exist, hence the
        // commandBehaviour.CloseConnection will not work
        try
        {
            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
            MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            cmd.Parameters.Clear();
            return rdr;
        }
        catch
        {
            conn.Close();
            throw;
        }
    }
    /// <summary>
    /// æ‰§è¡ŒæŸ¥è¯¢è¯­å¥ï¼Œè¿”回DataSet
    /// </summary>
    /// <param name="SQLString">查询语句</param>
    /// <returns>DataSet</returns>
    public static DataSet Query(string connectionString, string SQLString)
    {
        using (MySqlConnection connection = new MySqlConnection(connectionString))
        {
            DataSet ds = new DataSet();
            try
            {
                connection.Open();
                MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);
                command.Fill(ds, "ds");
            }
            catch (MySqlException ex)
            {
                throw new Exception(ex.Message);
            }
            return ds;
        }
    }
    /// <summary>
    /// Execute a MySqlCommand that returns the first column of the first record against the database specified in the connection string
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="connectionString">a valid connection string for a MySqlConnection</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of MySqlParamters used to execute the command</param>
    /// <returns>An object that should be converted to the expected type using Convert.To{Type}</returns>
    public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {
        MySqlCommand cmd = new MySqlCommand();
        using (MySqlConnection connection = new MySqlConnection(connectionString))
        {
            PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
            object val = cmd.ExecuteScalar();
            cmd.Parameters.Clear();
            return val;
        }
    }
    /// <summary>
    /// Execute a MySqlCommand that returns the first column of the first record against an existing database connection
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new MySqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="conn">an existing database connection</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of MySqlParamters used to execute the command</param>
    /// <returns>An object that should be converted to the expected type using Convert.To{Type}</returns>
    public static object ExecuteScalar(MySqlConnection connection, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
    {
        MySqlCommand cmd = new MySqlCommand();
        PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
        object val = cmd.ExecuteScalar();
        cmd.Parameters.Clear();
        return val;
    }
    /// <summary>
    /// add parameter array to the cache
    /// </summary>
    /// <param name="cacheKey">Key to the parameter cache</param>
    /// <param name="cmdParms">an array of MySqlParamters to be cached</param>
    public static void CacheParameters(string cacheKey, params MySqlParameter[] commandParameters)
    {
        parmCache[cacheKey] = commandParameters;
    }
    /// <summary>
    /// Retrieve cached parameters
    /// </summary>
    /// <param name="cacheKey">key used to lookup parameters</param>
    /// <returns>Cached MySqlParamters array</returns>
    public static MySqlParameter[] GetCachedParameters(string cacheKey)
    {
        MySqlParameter[] cachedParms = (MySqlParameter[])parmCache[cacheKey];
        if (cachedParms == null)
            return null;
        MySqlParameter[] clonedParms = new MySqlParameter[cachedParms.Length];
        for (int i = 0, j = cachedParms.Length; i < j; i++)
            clonedParms[i] = (MySqlParameter)((ICloneable)cachedParms[i]).Clone();
        return clonedParms;
    }
    /// <summary>
    /// Prepare a command for execution
    /// </summary>
    /// <param name="cmd">MySqlCommand object</param>
    /// <param name="conn">MySqlConnection object</param>
    /// <param name="trans">MySqlTransaction object</param>
    /// <param name="cmdType">Cmd type e.g. stored procedure or text</param>
    /// <param name="cmdText">Command text, e.g. Select * from Products</param>
    /// <param name="cmdParms">MySqlParameters to use in the command</param>
    private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
    {
        if (conn.State != ConnectionState.Open)
            conn.Open();
        cmd.Connection = conn;
        cmd.CommandText = cmdText;
        if (trans != null)
            cmd.Transaction = trans;
        cmd.CommandType = cmdType;
        if (cmdParms != null)
        {
            foreach (MySqlParameter parm in cmdParms)
                cmd.Parameters.Add(parm);
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/SQLHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,254 @@
//===============================================================================
// This file is based on the Microsoft Data Access Application Block for .NET
// For more information please go to
// http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp
//===============================================================================
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Data.Odbc;
using System.Collections;
/// <summary>
/// The SqlHelper class is intended to encapsulate high performance,
/// scalable best practices for common uses of SqlClient.
/// </summary>
public abstract class SqlHelper {
    //Database connection strings
    public static readonly string ConnectionString = "";
    // Hashtable to store cached parameters
    private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
    /// <summary>
    /// Execute a SqlCommand (that returns no resultset) against the database specified in the connection string
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="connectionString">a valid connection string for a SqlConnection</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of SqlParamters used to execute the command</param>
    /// <returns>an int representing the number of rows affected by the command</returns>
    public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) {
        SqlCommand cmd = new SqlCommand();
        using (SqlConnection conn = new SqlConnection(connectionString)) {
            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
            int val = cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            return val;
        }
    }
    /// <summary>
    /// Execute a SqlCommand (that returns no resultset) against an existing database connection
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="conn">an existing database connection</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of SqlParamters used to execute the command</param>
    /// <returns>an int representing the number of rows affected by the command</returns>
    public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) {
        SqlCommand cmd = new SqlCommand();
        PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
        int val = cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        return val;
    }
    /// <summary>
    /// Execute a SqlCommand (that returns no resultset) using an existing SQL Transaction
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="trans">an existing sql transaction</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of SqlParamters used to execute the command</param>
    /// <returns>an int representing the number of rows affected by the command</returns>
    public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) {
        SqlCommand cmd = new SqlCommand();
        PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
        int val = cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        return val;
    }
    /// <summary>
    /// Execute a SqlCommand that returns a resultset against the database specified in the connection string
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="connectionString">a valid connection string for a SqlConnection</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of SqlParamters used to execute the command</param>
    /// <returns>A SqlDataReader containing the results</returns>
    public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) {
        SqlCommand cmd = new SqlCommand();
        SqlConnection conn = new SqlConnection(connectionString);
        // we use a try/catch here because if the method throws an exception we want to
        // close the connection throw code, because no datareader will exist, hence the
        // commandBehaviour.CloseConnection will not work
        try {
            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
            SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            cmd.Parameters.Clear();
            return rdr;
        }
        catch {
            conn.Close();
            throw;
        }
    }
    /// <summary>
    /// æ‰§è¡ŒæŸ¥è¯¢è¯­å¥ï¼Œè¿”回DataSet
    /// </summary>
    /// <param name="SQLString">查询语句</param>
    /// <returns>DataSet</returns>
    public static DataSet Query(string connectionString, string SQLString)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            DataSet ds = new DataSet();
            try
            {
                connection.Open();
                SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                command.Fill(ds, "ds");
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                throw new Exception(ex.Message);
            }
            return ds;
        }
    }
    /// <summary>
    /// Execute a SqlCommand that returns the first column of the first record against the database specified in the connection string
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="connectionString">a valid connection string for a SqlConnection</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of SqlParamters used to execute the command</param>
    /// <returns>An object that should be converted to the expected type using Convert.To{Type}</returns>
    public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) {
        SqlCommand cmd = new SqlCommand();
        using (SqlConnection connection = new SqlConnection(connectionString)) {
            PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
            object val = cmd.ExecuteScalar();
            cmd.Parameters.Clear();
            return val;
        }
    }
    /// <summary>
    /// Execute a SqlCommand that returns the first column of the first record against an existing database connection
    /// using the provided parameters.
    /// </summary>
    /// <remarks>
    /// e.g.:
    ///  Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
    /// </remarks>
    /// <param name="conn">an existing database connection</param>
    /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
    /// <param name="commandText">the stored procedure name or T-SQL command</param>
    /// <param name="commandParameters">an array of SqlParamters used to execute the command</param>
    /// <returns>An object that should be converted to the expected type using Convert.To{Type}</returns>
    public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) {
        SqlCommand cmd = new SqlCommand();
        PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
        object val = cmd.ExecuteScalar();
        cmd.Parameters.Clear();
        return val;
    }
    /// <summary>
    /// add parameter array to the cache
    /// </summary>
    /// <param name="cacheKey">Key to the parameter cache</param>
    /// <param name="cmdParms">an array of SqlParamters to be cached</param>
    public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters) {
        parmCache[cacheKey] = commandParameters;
    }
    /// <summary>
    /// Retrieve cached parameters
    /// </summary>
    /// <param name="cacheKey">key used to lookup parameters</param>
    /// <returns>Cached SqlParamters array</returns>
    public static SqlParameter[] GetCachedParameters(string cacheKey) {
        SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];
        if (cachedParms == null)
            return null;
        SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];
        for (int i = 0, j = cachedParms.Length; i < j; i++)
            clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();
        return clonedParms;
    }
    /// <summary>
    /// Prepare a command for execution
    /// </summary>
    /// <param name="cmd">SqlCommand object</param>
    /// <param name="conn">SqlConnection object</param>
    /// <param name="trans">SqlTransaction object</param>
    /// <param name="cmdType">Cmd type e.g. stored procedure or text</param>
    /// <param name="cmdText">Command text, e.g. Select * from Products</param>
    /// <param name="cmdParms">SqlParameters to use in the command</param>
    private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms) {
        if (conn.State != ConnectionState.Open)
            conn.Open();
        cmd.Connection = conn;
        cmd.CommandText = cmdText;
        if (trans != null)
            cmd.Transaction = trans;
        cmd.CommandType = cmdType;
        if (cmdParms != null) {
            foreach (SqlParameter parm in cmdParms)
                cmd.Parameters.Add(parm);
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/StructStrHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1682 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Text;
namespace GenerateCode_GEBrilliantFactory
{
    /// <summary>
    /// æž„造字符串帮助类
    /// </summary>
    public class StructStrHelper
    {
        /// <summary>
        /// æ ¹æ®è¡¨åèŽ·å–åˆ—é›†åˆ
        /// </summary>
        /// <param name="tableName"></param>
        /// <returns></returns>
        public static List<ColumnModel> GetColumnList(string tableName, string connStr)
        {
            string strSql = @" select
col.name as ColumnName,
t.name as DataType,
ep.value as Description,
col.max_length as DataLength,
col.is_nullable as IsNullable,
(
    select top 1 ind.is_primary_key from sys.index_columns ic
    left join sys.indexes ind
    on ic.object_id=ind.object_id
    and ic.index_id=ind.index_id
    and ind.name like 'PK_%'
    where ic.object_id=obj.object_id
    and ic.column_id=col.column_id
) as IsPrimaryKey,
col.Precision,
col.Scale
from sys.objects obj
inner join sys.columns col
on obj.object_id=col.object_id
left join sys.types t
on t.user_type_id=col.user_type_id
left join sys.extended_properties ep
on ep.major_id=obj.object_id
and ep.minor_id=col.column_id
and ep.name='MS_Description'
where obj.name='" + tableName + "'  ";
            List<ColumnModel> columnList = new List<ColumnModel>();
            try
            {
                DataSet ds = SqlHelper.Query(connStr, strSql);
                columnList = DataTableToList(ds.Tables[0]);
            }
            catch
            {
                throw;
            }
            finally
            {
            }
            return columnList;
        }
        /// <summary>
        /// èŽ·å¾—æ•°æ®åˆ—è¡¨
        /// </summary>
        private static List<ColumnModel> DataTableToList(DataTable dt)
        {
            try
            {
                List<ColumnModel> modelList = new List<ColumnModel>();
                int rowsCount = dt.Rows.Count;
                if (rowsCount > 0)
                {
                    ColumnModel model;
                    for (int n = 0; n < rowsCount; n++)
                    {
                        model = new ColumnModel();
                        if (dt.Rows[n]["Precision"].ToString() != "")
                        {
                            model.Precision = int.Parse(dt.Rows[n]["Precision"].ToString());
                        }
                        if (dt.Rows[n]["Scale"].ToString() != "")
                        {
                            model.Scale = int.Parse(dt.Rows[n]["Scale"].ToString());
                        }
                        model.ColumnName = dt.Rows[n]["ColumnName"].ToString();
                        model.DataLength = dt.Rows[n]["DataLength"].ToString();
                        model.DataType = dt.Rows[n]["DataType"].ToString();
                        if (model.DataType.ToUpper() == "nvarchar".ToUpper())
                        {
                            if (model.DataLength != "-1")
                            {
                                model.DataLength = ((int)Convert.ToInt32(model.DataLength) / 2).ToString();
                            }
                        }
                        model.Description = dt.Rows[n]["Description"].ToString();
                        if (dt.Rows[n]["IsNullable"].ToString() != "")
                        {
                            if ((dt.Rows[n]["IsNullable"].ToString() == "1") || (dt.Rows[n]["IsNullable"].ToString().ToLower() == "true"))
                            {
                                model.IsNullable = true;
                            }
                            else
                            {
                                model.IsNullable = false;
                            }
                        }
                        if (dt.Rows[n]["IsPrimaryKey"].ToString() != "")
                        {
                            if ((dt.Rows[n]["IsPrimaryKey"].ToString() == "1") || (dt.Rows[n]["IsPrimaryKey"].ToString().ToLower() == "true"))
                            {
                                model.IsPrimaryKey = true;
                            }
                            else
                            {
                                model.IsPrimaryKey = false;
                            }
                        }
                        modelList.Add(model);
                    }
                }
                return modelList;
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// ç”Ÿæˆå±žæ€§å­—符串
        /// </summary>
        /// <param name="columnModel"></param>
        /// <returns></returns>
        public static string GenerateAttribute(int index, ColumnModel columnModel, bool isShowExcelDataOptionAttribute = false)
        {
            try
            {
                string attr = columnModel.ColumnName;
                string str_NullFlag = " ";
                //获取数据类型
                DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                string attrStr = "";
                attrStr += "        /// <summary>\n";
                attrStr += "        /// " + columnModel.Description + "\n";
                attrStr += "        /// </summary>\n";
                if (isShowExcelDataOptionAttribute)
                {
                    attrStr += "        [ExcelDataOptionAttribute(DisplayName = \"" + columnModel.Description + "\", ColumnIndex = " + index + ")]\n";
                }
                switch (enumDT)
                {
                    case DataTypeEnum.dt_Varchar_Desc:
                    case DataTypeEnum.dt_uniqueidentifier:
                    case DataTypeEnum.dt_Varchar_Ext_Link:
                    case DataTypeEnum.dt_char:
                    case DataTypeEnum.dt_varchar:
                    case DataTypeEnum.dt_nvarchar:
                        attrStr += "        public string" + str_NullFlag + attr + " { get; set; }\n";
                        break;
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                        if (columnModel.IsNullable) { str_NullFlag = "? "; }
                        attrStr += "        public DateTime" + str_NullFlag + attr + " { get; set; }\n";
                        break;
                    case DataTypeEnum.dt_datetimeoffset:
                        if (columnModel.IsNullable) { str_NullFlag = "? "; }
                        attrStr += "        public DateTimeOffset" + str_NullFlag + attr + " { get; set; }\n";
                        break;
                    case DataTypeEnum.dt_int:
                        if (columnModel.IsNullable) { str_NullFlag = "? "; }
                        attrStr += "        public int" + str_NullFlag + attr + " { get; set; }\n";
                        break;
                    case DataTypeEnum.dt_bigint:
                        if (columnModel.IsNullable) { str_NullFlag = "? "; }
                        attrStr += "        public long" + str_NullFlag + attr + " { get; set; }\n";
                        break;
                    case DataTypeEnum.dt_decimal:
                        if (columnModel.IsNullable) { str_NullFlag = "? "; }
                        attrStr += "        public decimal" + str_NullFlag + attr + " { get; set; }\n";
                        break;
                    case DataTypeEnum.dt_float:
                        if (columnModel.IsNullable) { str_NullFlag = "? "; }
                        attrStr += "        public float" + str_NullFlag + attr + " { get; set; }\n";
                        break;
                    case DataTypeEnum.dt_bit:
                        if (columnModel.IsNullable) { str_NullFlag = "? "; }
                        attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
                        break;
                }
                attrStr += "\n";//最后是加一个空格
                return attrStr;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// ç”Ÿæˆå±žæ€§å­—符串ForAddModel-新增实体专用
        /// </summary>
        /// <param name="columnModel"></param>
        /// <returns></returns>
        public static string GenerateAttributeForAddModel(ColumnModel columnModel)
        {
            try
            {
                string attr = columnModel.ColumnName;
                //if (attr.ToUpper() == "DBId".ToUpper())
                //{
                //    var bb = "";
                //}
                string str_NullFlag = " ";
                string attrStr = "";
                attrStr += "        /// <summary>\n";
                attrStr += "        /// " + columnModel.Description + "\n";
                attrStr += "        /// </summary>\n";
                DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                switch (myDataType)
                {
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                    case DataTypeEnum.dt_datetimeoffset:
                        attrStr += "        //表示是 é«˜çº§æŸ¥è¯¢èŒƒå›´æŸ¥è¯¢ç‰¹æ€§\n";
                        attrStr += "        [HighSearchRangeAttribute]\n";
                        attrStr += "        public List<string>" + str_NullFlag + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                    case DataTypeEnum.dt_bigint:
                        if (columnModel.IsNullable) { str_NullFlag = "? "; }
                        attrStr += "        public long" + str_NullFlag + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                    case DataTypeEnum.dt_int:
                        if (columnModel.IsNullable) { str_NullFlag = "? "; }
                        attrStr += "        public int" + str_NullFlag + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                    default:
                        attrStr += "        public string" + str_NullFlag + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                }
                return attrStr;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// ç”Ÿæˆå±žæ€§å­—符串ForQueryModel- æŸ¥è¯¢å®žä½“专用
        /// </summary>
        /// <param name="columnModel"></param>
        /// <returns></returns>
        public static string GenerateAttributeForQueryModel(ColumnModel columnModel)
        {
            try
            {
                string attr = columnModel.ColumnName;
                //if (attr.ToUpper() == "DBId".ToUpper())
                //{
                //    var bb = "";
                //}
                //注意:查询实体就不能按照数据库的可NULL限制了,因为查询内容随时可以为NULL哦
                string str_NullFlag = " ";
                str_NullFlag = "? ";
                string emptyStr = " ";//空格
                string attrStr = "";
                attrStr += "        /// <summary>\n";
                attrStr += "        /// " + columnModel.Description + "\n";
                attrStr += "        /// </summary>\n";
                DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                switch (myDataType)
                {
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                    case DataTypeEnum.dt_datetimeoffset:
                        attrStr += "        //表示是 é«˜çº§æŸ¥è¯¢èŒƒå›´æŸ¥è¯¢ç‰¹æ€§\n";
                        attrStr += "        [HighSearchRangeAttribute]\n";
                        attrStr += "        public List<string>" + emptyStr + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                    case DataTypeEnum.dt_bigint:
                        attrStr += "        public long" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                    case DataTypeEnum.dt_int:
                        attrStr += "        public int" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                    default:
                        attrStr += "        public string" + emptyStr + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                }
                return attrStr;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// ç”Ÿæˆå±žæ€§å­—符串ForQueryModel
        /// </summary>
        /// <param name="columnModel"></param>
        /// <returns></returns>
        public static string GenerateAttributeForQueryModelMode(ColumnModel columnModel)
        {
            try
            {
                string attr = columnModel.ColumnName;
                string attrStr = "";
                attrStr += "        /// <summary>\n";
                attrStr += "        /// " + columnModel.Description + "-查询关系运算符 \n";
                attrStr += "        /// </summary>\n";
                string highSearchModeSuffix = "_FilterMode";
                DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                switch (myDataType)
                {
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                    case DataTypeEnum.dt_datetimeoffset:
                        return "\n";
                    case DataTypeEnum.dt_bigint:
                    case DataTypeEnum.dt_int:
                        attrStr += "        public SearchFilterModeEnum " + attr + highSearchModeSuffix + " { get; set; }= SearchFilterModeEnum.精准查询;\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                    default:
                        attrStr += "        public SearchFilterModeEnum " + attr + highSearchModeSuffix + " { get; set; }= SearchFilterModeEnum.模糊查询;\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                }
                return attrStr;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–æŸ¥è¯¢åˆ—å­—ç¬¦ä¸²
        /// </summary>
        /// <param name="columnNameList">列集合</param>
        /// <param name="tableAlias">表别名</param>
        /// <returns>字符串,格式如 åˆ—1,列2,列3</returns>
        public static string GetQueryColumnsStr(List<ColumnModel> columnNameList, string tableAlias = null)
        {
            StringBuilder selectSql = new StringBuilder();
            tableAlias = tableAlias == null ? "" : (tableAlias + ".");
            ColumnModel columnModel = null;
            string attrColumnName = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                attrColumnName = columnModel.ColumnName;
                if (i == (columnNameList.Count - 1))
                    selectSql.Append("         " + tableAlias + attrColumnName + "\n");
                else
                    selectSql.Append("         " + tableAlias + attrColumnName + ",\n");
            }
            return selectSql.ToString();
        }
        /// <summary>
        /// èŽ·å–åˆ—å­—ç¬¦ä¸²(不包括ID) ã€æ’入用】
        /// </summary>
        /// <param name="columnNameList">列集合</param>
        /// <param name="prefix">@前缀</param>
        /// <returns>字符串,格式如 åˆ—1,列2,列3</returns>
        public static string GetColumnsStrNoIDForAdd(List<ColumnModel> columnNameList, string prefix)
        {
            StringBuilder selectSql = new StringBuilder();
            ColumnModel columnModel = null;
            string description = "";
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                description = "   --    " + columnModel.ColumnName + "  " + columnModel.Description;
                string attrColumnName = columnModel.ColumnName;
                if (attrColumnName.ToUpper() == "ID")
                    continue;
                if (i == (columnNameList.Count - 1))
                    selectSql.Append("         " + prefix + attrColumnName + description + "\n");
                else
                    selectSql.Append("         " + prefix + attrColumnName + "," + description + "\n");
            }
            return selectSql.ToString();
        }
        /// <summary>
        /// èŽ·å–åˆ—å­—ç¬¦ä¸²(不包括ID) ã€ç”ŸæˆInsertSQL文本使用】
        /// </summary>
        /// <param name="columnNameList">列集合</param>
        /// <returns>字符串,格式如 åˆ—1,列2,列3</returns>
        public static string GetColumnsStrNoIDForInsertSQL(List<ColumnModel> columnNameList)
        {
            StringBuilder selectSql = new StringBuilder();
            ColumnModel columnModel = null;
            string description = "";
            string defaultValue = "";
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                description = "   --    " + columnModel.ColumnName + "  " + columnModel.Description;
                string attrColumnName = columnModel.ColumnName;
                if (attrColumnName.ToUpper() == "ID")
                    continue;
                DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                switch (myDataType)
                {
                    case DataTypeEnum.dt_bigint:
                    case DataTypeEnum.dt_int:
                        defaultValue = "0";
                        break;
                    case DataTypeEnum.dt_decimal:
                    case DataTypeEnum.dt_float:
                        defaultValue = "0.00";
                        break;
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                    case DataTypeEnum.dt_datetimeoffset:
                        defaultValue = "getdate()";
                        break;
                    case DataTypeEnum.dt_bit:
                        defaultValue = "0";
                        break;
                    default:
                        defaultValue = "''";
                        break;
                }
                if (i == (columnNameList.Count - 1))
                    selectSql.Append("         " + defaultValue + description + "\n");
                else
                    selectSql.Append("         " + defaultValue + "," + description + "\n");
            }
            return selectSql.ToString();
        }
        /// <summary>
        /// èŽ·å–å¢žåŠ ä½¿ç”¨çš„å­˜å‚¨è¿‡ç¨‹å‚æ•°åˆ—å­—ç¬¦ä¸²ï¼ˆè¦æŽ’é™¤id)
        /// </summary>
        /// <param name="columnNameList">列集合</param>
        /// <returns>字符串,@processCardNumber nvarchar(50),@partNumber nvarchar(50),
        ///</returns>
        public static string GetInputParamColumnsStrForAdd(List<ColumnModel> columnNameList)
        {
            StringBuilder sql = new StringBuilder();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                string attrColumnName = columnModel.ColumnName;
                if (attrColumnName.ToUpper() == "ID")
                    continue;
                var fuhao = ",";
                if (i == columnNameList.Count - 1)
                {
                    fuhao = "";
                }
                DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                switch (enumDT)
                {
                    case DataTypeEnum.dt_char:
                    case DataTypeEnum.dt_varchar:
                    case DataTypeEnum.dt_Varchar_Desc:
                    case DataTypeEnum.dt_uniqueidentifier:
                    case DataTypeEnum.dt_Varchar_Ext_Link:
                    case DataTypeEnum.dt_nvarchar:
                        var dataLength = columnModel.DataLength;
                        if (dataLength == "-1")
                        {
                            dataLength = "max";
                        }
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType + "(" + dataLength + ") " + fuhao + "\n");
                        break;
                    case DataTypeEnum.dt_bigint:
                    case DataTypeEnum.dt_int:
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                    case DataTypeEnum.dt_datetimeoffset:
                    case DataTypeEnum.dt_bit:
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType + " " + fuhao + "\n");
                        break;
                    case DataTypeEnum.dt_decimal:
                    case DataTypeEnum.dt_float:
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType
                            + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ")  " + fuhao + "\n");
                        break;
                    default:
                        break;
                }
            }
            return sql.ToString();
        }
        /// <summary>
        /// èŽ·å–æ›´æ–°ä½¿ç”¨çš„å­˜å‚¨è¿‡ç¨‹å‚æ•°åˆ—å­—ç¬¦ä¸²ï¼ˆè¦æŽ’é™¤id)
        /// </summary>
        /// <param name="columnNameList">列集合</param>
        /// <returns>字符串,@processCardNumber nvarchar(50),@partNumber nvarchar(50),
        ///</returns>
        public static string GetInputParamColumnsStrForUpdate(List<ColumnModel> columnNameList)
        {
            //构造新的List
            columnNameList = ListHelper.RemoveCreator(columnNameList);
            StringBuilder sql = new StringBuilder();
            ColumnModel columnModel = null;
            string attrColumnName = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                attrColumnName = columnModel.ColumnName;
                var fuhao = ",";
                if (i == columnNameList.Count - 1)
                {
                    fuhao = "";
                }
                DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                switch (enumDT)
                {
                    case DataTypeEnum.dt_char:
                    case DataTypeEnum.dt_varchar:
                    case DataTypeEnum.dt_Varchar_Desc:
                    case DataTypeEnum.dt_uniqueidentifier:
                    case DataTypeEnum.dt_Varchar_Ext_Link:
                    case DataTypeEnum.dt_nvarchar:
                        var dataLength = columnModel.DataLength;
                        if (dataLength == "-1")
                        {
                            dataLength = "max";
                        }
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType + "(" + dataLength + ") " + fuhao + "\n");
                        break;
                    case DataTypeEnum.dt_bigint:
                    case DataTypeEnum.dt_int:
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                    case DataTypeEnum.dt_datetimeoffset:
                    case DataTypeEnum.dt_bit:
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType + " " + fuhao + "\n");
                        break;
                    case DataTypeEnum.dt_decimal:
                    case DataTypeEnum.dt_float:
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType
                            + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ")  " + fuhao + "\n");
                        break;
                    default:
                        break;
                }
            }
            return sql.ToString();
        }
        /// <summary>
        /// èŽ·å–æŸ¥è¯¢åˆ†é¡µä½¿ç”¨çš„å­˜å‚¨è¿‡ç¨‹å‚æ•°åˆ—å­—ç¬¦ä¸²
        /// </summary>
        /// <param name="columnNameList">列集合</param>
        /// <returns>字符串,@processCardNumber nvarchar(50),@partNumber nvarchar(50),
        ///</returns>
        public static string GetInputParamColumnsStrForQueryPage(List<ColumnModel> columnNameList)
        {
            //构造新的List
            columnNameList = ListHelper.RemoveAll(columnNameList);
            StringBuilder sql = new StringBuilder();
            ColumnModel columnModel = null;
            string attrColumnName = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                attrColumnName = columnModel.ColumnName;
                var fuhao = "," + "\n";
                if (i == columnNameList.Count - 1)
                {
                    fuhao = ",";
                }
                DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                switch (enumDT)
                {
                    case DataTypeEnum.dt_char:
                    case DataTypeEnum.dt_varchar:
                    case DataTypeEnum.dt_Varchar_Desc:
                    case DataTypeEnum.dt_uniqueidentifier:
                    case DataTypeEnum.dt_Varchar_Ext_Link:
                    case DataTypeEnum.dt_nvarchar:
                        var dataLength = columnModel.DataLength;
                        if (dataLength == "-1")
                        {
                            dataLength = "max";
                        }
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType + "(" + dataLength + ") " + fuhao);
                        break;
                    case DataTypeEnum.dt_bigint:
                    case DataTypeEnum.dt_int:
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                    case DataTypeEnum.dt_datetimeoffset:
                    case DataTypeEnum.dt_bit:
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType + " " + fuhao);
                        break;
                    case DataTypeEnum.dt_decimal:
                    case DataTypeEnum.dt_float:
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType
                            + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ")  " + fuhao);
                        break;
                    default:
                        break;
                }
            }
            return sql.ToString();
        }
        /// <summary>
        /// ç”Ÿæˆèµ‹å€¼sql字符串,用于修改
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <param name="primaryKey"></param>
        /// <returns></returns>
        public static string GetCols_AssignmentStrForUpdate(List<ColumnModel> columnNameList)
        {
            //构造新的List
            columnNameList = ListHelper.RemoveCreator(columnNameList);
            StringBuilder sql = new StringBuilder();
            ColumnModel columnModel = null;
            string attrColumnName = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                attrColumnName = columnModel.ColumnName;
                if (columnModel.IsPrimaryKey)
                    continue;
                if (i == columnNameList.Count - 1)
                {
                    sql.Append(attrColumnName + "=@" + attrColumnName + " \n");
                }
                else
                {
                    sql.Append(attrColumnName + "=@" + attrColumnName + ",\n");
                }
            }
            return sql.ToString();
        }
        /// <summary>
        /// ç”Ÿæˆèµ‹å€¼sql字符串,用于查询分页
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <param name="primaryKey"></param>
        /// <returns></returns>
        public static string GetCols_AssignmentStrForWherePage(string TableAlias, List<ColumnModel> columnNameList)
        {
            //构造新的List
            columnNameList = ListHelper.RemoveAll(columnNameList);
            StringBuilder sql = new StringBuilder();
            ColumnModel columnModel = null;
            string attrColumnName = null;
            sql.Append(" 1=1  \n");
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                attrColumnName = columnModel.ColumnName;
                sql.Append(" AND ( @" + attrColumnName + " IS NULL OR @" + attrColumnName + "='' OR " + TableAlias + "." + attrColumnName + "=@" + attrColumnName + " ) \n");
            }
            return sql.ToString();
        }
        /// <summary>
        /// ç”Ÿæˆèµ‹å€¼sql字符串,用于修改
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <param name="primaryKey"></param>
        /// <returns></returns>
        public static string GetCols_AssignmentStrForUpdate2(List<ColumnModel> columnNameList)
        {
            //构造新的List
            columnNameList = ListHelper.RemoveCreator(columnNameList);
            StringBuilder sql = new StringBuilder();
            ColumnModel columnModel = null;
            string attrColumnName = null;
            var updateSql = "";
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                attrColumnName = columnModel.ColumnName;
                if (columnModel.IsPrimaryKey)
                    continue;
                if (attrColumnName.ToUpper() == "lastModifier".ToUpper() || attrColumnName.ToUpper() == "lastModifyTime".ToUpper())
                {
                    updateSql = "  " + attrColumnName + "=@" + attrColumnName + "  ";
                }
                else
                {
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_char:
                        case DataTypeEnum.dt_varchar:
                        case DataTypeEnum.dt_Varchar_Desc:
                        case DataTypeEnum.dt_uniqueidentifier:
                        case DataTypeEnum.dt_Varchar_Ext_Link:
                        case DataTypeEnum.dt_nvarchar:
                            updateSql = "  " + attrColumnName + "= case ISNULL(@" + attrColumnName + ",'') when '' then "
                                + attrColumnName + " else @" + attrColumnName + " end  ";
                            break;
                        case DataTypeEnum.dt_bigint:
                        case DataTypeEnum.dt_int:
                        case DataTypeEnum.dt_decimal:
                        case DataTypeEnum.dt_float:
                            updateSql = "  " + attrColumnName + "= case ISNULL(@" + attrColumnName + ",0)  when 0 then "
                                + attrColumnName + " else @" + attrColumnName + " end  ";
                            break;
                        case DataTypeEnum.dt_datetime:
                        case DataTypeEnum.dt_datetime2:
                        case DataTypeEnum.dt_datetimeoffset:
                        case DataTypeEnum.dt_bit:
                            updateSql = "  " + attrColumnName + "= case @" + attrColumnName + " when NULL then " + attrColumnName + " else @" + attrColumnName + " end  ";
                            break;
                        default:
                            updateSql = "  " + attrColumnName + "=@" + attrColumnName + "  ";
                            break;
                    }
                }
                sql.Append(updateSql + ",\n");
            }
            //截取掉最后一个 ,\n
            var strSql = sql.ToString().Substring(0, sql.ToString().Length - 2);
            return strSql;
        }
        /// <summary>
        /// æž„造新增SQL的参数ForDAL文件
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static string GetParameterForAddDAL(List<ColumnModel> columnNameList)
        {
            //构造新的List
            List<ColumnModel> newList = new List<ColumnModel>();
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                if (columnModel.IsPrimaryKey)
                {//新增的时候,不用主键
                    continue;
                }
                newList.Add(columnModel);
            }
            StringBuilder paramSql = new StringBuilder();
            paramSql.Append("SqlParameter[] parameters = { " + "\n");
            for (int i = 0; i < newList.Count; i++)
            {
                paramSql.Append(GetSqlParameterStr(newList[i]));
            }
            paramSql.Append("              param_id \n");
            paramSql.Append("            };\n");
            for (int i = 0; i < newList.Count; i++)
            {
                paramSql.Append("            parameters[" + i.ToString() + "].Value = model." + newList[i].ColumnName + ";\n");
            }
            return paramSql.ToString();
        }
        /// <summary>
        /// æž„造更新SQL的参数ForDAL文件
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static string GetParameterForUpdateDAL(List<ColumnModel> columnNameList)
        {
            //构造新的List
            columnNameList = ListHelper.RemoveCreator(columnNameList);
            StringBuilder paramSql = new StringBuilder();
            paramSql.Append("SqlParameter[] parameters = { " + "\n");
            string firstParam = "", secondParam = "";
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                firstParam += GetSqlParameterStr(columnModel);
                secondParam += "            parameters[" + i.ToString() + "].Value = model." + columnModel.ColumnName + ";\n";
            }
            paramSql.Append(firstParam);
            paramSql.Append("            };\n");
            paramSql.Append(secondParam);
            return paramSql.ToString();
        }
        /// <summary>
        /// æž„造查询分页SQL的参数ForDAL文件
        /// </summary>
        /// <param name="columnNameList"></param>
        /// <returns></returns>
        public static string GetParameterForQueryPageDAL(List<ColumnModel> columnNameList)
        {
            //构造新的List
            columnNameList = ListHelper.RemoveAll(columnNameList);
            StringBuilder paramSql = new StringBuilder();
            paramSql.Append("SqlParameter[] parameters = { " + "\n");
            string firstParam = "", secondParam = "";
            ColumnModel columnModel = null;
            for (int i = 0; i < columnNameList.Count; i++)
            {
                columnModel = columnNameList[i];
                firstParam += GetSqlParameterStr(columnModel);
                secondParam += "            parameters[" + i.ToString() + "].Value = pageParam." + columnModel.ColumnName + ";\n";
                if (i == (columnNameList.Count - 1))
                { //增加分页参数
                    firstParam += "              new SqlParameter(\"@pageIndex\", SqlDbType.Int) , \n";
                    firstParam += "              new SqlParameter(\"@pageSize\", SqlDbType.Int)  \n";
                    secondParam += "            parameters[" + (i + 1).ToString() + "].Value = pageParam.pageIndex;\n";
                    secondParam += "            parameters[" + (i + 2).ToString() + "].Value = pageParam.pageSize;\n";
                }
            }
            paramSql.Append(firstParam);
            paramSql.Append("            };\n");
            paramSql.Append(secondParam);
            return paramSql.ToString();
        }
        private static string GetSqlParameterStr(ColumnModel columnModel)
        {
            string str = "              new SqlParameter(\"@" + columnModel.ColumnName + "\",";
            try
            {
                string attr = columnModel.ColumnName;
                //获取数据类型
                DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                switch (enumDT)
                {
                    case DataTypeEnum.dt_char:
                        str += "SqlDbType.NChar," + columnModel.DataLength.ToString();
                        break;
                    case DataTypeEnum.dt_varchar:
                        str += "SqlDbType.VarChar," + columnModel.DataLength.ToString();
                        break;
                    case DataTypeEnum.dt_Varchar_Desc:
                    case DataTypeEnum.dt_uniqueidentifier:
                    case DataTypeEnum.dt_Varchar_Ext_Link:
                    case DataTypeEnum.dt_nvarchar:
                        str += "SqlDbType.NVarChar," + columnModel.DataLength.ToString();
                        break;
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                    case DataTypeEnum.dt_datetimeoffset:
                        str += "SqlDbType.DateTime";
                        break;
                    case DataTypeEnum.dt_int:
                        str += "SqlDbType.Int," + columnModel.DataLength.ToString();
                        break;
                    case DataTypeEnum.dt_bigint:
                        str += "SqlDbType.BigInt," + columnModel.DataLength.ToString();
                        break;
                    case DataTypeEnum.dt_decimal:
                        str += "SqlDbType.Decimal," + columnModel.DataLength.ToString();
                        break;
                    case DataTypeEnum.dt_float:
                        str += "SqlDbType.Float," + columnModel.DataLength.ToString();
                        break;
                    case DataTypeEnum.dt_bit:
                        str += "SqlDbType.Bit," + columnModel.DataLength.ToString();
                        break;
                }
                str += "),\n";//最后是加一个回车
                return str;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// ç”Ÿæˆèµ‹å€¼å®žä½“类的字符串
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetToModelStr(List<ColumnModel> columnModelList)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                foreach (var columnModel in columnModelList)
                {
                    string attr = columnModel.ColumnName;
                    //获取数据类型
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_char:
                        case DataTypeEnum.dt_varchar:
                        case DataTypeEnum.dt_Varchar_Desc:
                        case DataTypeEnum.dt_uniqueidentifier:
                        case DataTypeEnum.dt_Varchar_Ext_Link:
                        case DataTypeEnum.dt_nvarchar:
                            sb.Append("model." + columnModel.ColumnName.ToString() + "=dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString();\n");
                            break;
                        case DataTypeEnum.dt_datetime:
                        case DataTypeEnum.dt_datetime2:
                        case DataTypeEnum.dt_datetimeoffset:
                            sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n");
                            sb.Append("{ \n");
                            sb.Append("   model." + columnModel.ColumnName.ToString() + " = DateTime.Parse(dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString()); \n");
                            sb.Append("} \n");
                            break;
                        case DataTypeEnum.dt_int:
                            sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n");
                            sb.Append("{ \n");
                            sb.Append("   model." + columnModel.ColumnName.ToString() + " = int.Parse(dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString()); \n");
                            sb.Append("} \n");
                            break;
                        case DataTypeEnum.dt_bigint:
                            sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n");
                            sb.Append("{ \n");
                            sb.Append("   model." + columnModel.ColumnName.ToString() + " = long.Parse(dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString()); \n");
                            sb.Append("} \n");
                            break;
                        case DataTypeEnum.dt_decimal:
                            sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n");
                            sb.Append("{ \n");
                            sb.Append("   model." + columnModel.ColumnName.ToString() + " = decimal.Parse(dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString()); \n");
                            sb.Append("} \n");
                            break;
                        case DataTypeEnum.dt_float:
                            sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n");
                            sb.Append("{ \n");
                            sb.Append("   model." + columnModel.ColumnName.ToString() + " = float.Parse(dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString()); \n");
                            sb.Append("} \n");
                            break;
                        case DataTypeEnum.dt_bit:
                            sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n");
                            sb.Append("{ \n");
                            sb.Append(" if ((dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() == \"1\") || (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString().ToLower() == \"true\")) \n");
                            sb.Append("{ \n");
                            sb.Append("   model." + columnModel.ColumnName.ToString() + " = true; \n");
                            sb.Append("} \n");
                            sb.Append("else \n");
                            sb.Append("{ \n");
                            sb.Append("   model." + columnModel.ColumnName.ToString() + " = false; \n");
                            sb.Append("} \n");
                            sb.Append("} \n");
                            break;
                    }
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #region WCF层
        /// <summary>
        /// ç”Ÿæˆéœ€è¦éªŒè¯ä¸ä¸ºç©ºçš„字符串
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <param name="isInsert">是否是新增</param>
        /// <returns></returns>
        public static string GetValidateEmptyStr(List<ColumnModel> columnModelList, bool isInsert = true)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                List<ColumnModel> newList = null;
                if (isInsert)
                {//新增
                    newList = ListHelper.RemoveAll(columnModelList);
                }
                else
                {//更新
                    newList = ListHelper.RemoveDelFlagCreatorModifier(columnModelList);
                }
                sb.Append("                List<ColumnsModel> columnsList = new List<ColumnsModel>() { \n");
                foreach (var columnModel in newList)
                {
                    string attr = columnModel.ColumnName;
                    //获取数据类型
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_char:
                        case DataTypeEnum.dt_varchar:
                        case DataTypeEnum.dt_Varchar_Desc:
                        case DataTypeEnum.dt_uniqueidentifier:
                        case DataTypeEnum.dt_Varchar_Ext_Link:
                        case DataTypeEnum.dt_nvarchar:
                            if (!columnModel.IsNullable)
                            {
                                sb.Append("                     new ColumnsModel(){ ChinaName=\"" + columnModel.Description + "\",PropertyName=\"" + columnModel.ColumnName + "\" },\n");
                            }
                            break;
                        case DataTypeEnum.dt_datetime:
                        case DataTypeEnum.dt_datetime2:
                        case DataTypeEnum.dt_datetimeoffset:
                            if (!columnModel.IsNullable)
                            {//日期必输
                                sb.Append("                     new ColumnsModel(){ ChinaName=\"" + columnModel.Description + "\",PropertyName=\"" + columnModel.ColumnName + "\",DataType=typeof(DateTime) },\n");
                            }
                            else
                            {//日期不必输
                                sb.Append("                     new ColumnsModel(){ ChinaName=\"" + columnModel.Description + "\",PropertyName=\"" + columnModel.ColumnName + "\",DataType=typeof(DateTime),IsNullable=true },\n");
                            }
                            break;
                        default:
                            break;
                    }
                }
                sb.Append("                };\n");
                return sb.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// æ ¹æ®ä¸»é”®ç±»åž‹èŽ·å–éªŒè¯ä¸»é”®çš„å­—ç¬¦ä¸²
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <param name="primaryKey"></param>
        /// <returns></returns>
        public static string GetValidateEmptyStrForPrimaryKey(List<ColumnModel> columnModelList, string primaryKey)
        {
            if (primaryKey.ToUpper() == "ID".ToUpper())
            {
                return "  model.id == 0 ";
            }
            foreach (var item in columnModelList)
            {
                if (item.ColumnName.ToUpper() == primaryKey.ToUpper())
                {
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + item.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_char:
                        case DataTypeEnum.dt_varchar:
                        case DataTypeEnum.dt_Varchar_Desc:
                        case DataTypeEnum.dt_uniqueidentifier:
                        case DataTypeEnum.dt_Varchar_Ext_Link:
                        case DataTypeEnum.dt_nvarchar:
                            return "  string.IsNullOrEmpty(model.$PrimaryKey$) ";
                        case DataTypeEnum.dt_int:
                        case DataTypeEnum.dt_bigint:
                            return "  model.$PrimaryKey$ == 0 ";
                        default:
                            break;
                    }
                }
            }
            return "";
        }
        #endregion
        #region Controller层
        #region Controller层
        /// <summary>
        /// ç”Ÿæˆéœ€è¦éªŒè¯ä¸ä¸ºç©ºçš„字符串
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <param name="isInsert">是否是新增</param>
        /// <returns></returns>
        public static string GetValidateEmptyStrForController(List<ColumnModel> columnModelList, bool isInsert = true)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                List<ColumnModel> newList = null;
                if (isInsert)
                {//新增
                    newList = ListHelper.RemoveAll(columnModelList);
                }
                else
                {//更新
                    newList = ListHelper.RemoveDelFlagCreatorModifier(columnModelList);
                }
                var commonStr = string.Empty;
                foreach (var columnModel in newList)
                {
                    commonStr = "                     new ValidateModel(){ ChinaName=\"" + columnModel.Description + "\",PropertyName=\"" + columnModel.ColumnName + "\",DataValue=request." + columnModel.ColumnName;
                    string attr = columnModel.ColumnName;
                    //获取数据类型
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_char:
                        case DataTypeEnum.dt_varchar:
                        case DataTypeEnum.dt_Varchar_Desc:
                        case DataTypeEnum.dt_uniqueidentifier:
                        case DataTypeEnum.dt_Varchar_Ext_Link:
                        case DataTypeEnum.dt_nvarchar:
                            if (!columnModel.IsNullable)
                            {
                                sb.Append(commonStr + " },\n");
                            }
                            break;
                        case DataTypeEnum.dt_int:
                            if (!columnModel.IsNullable)
                            {//数字必输
                                sb.Append(commonStr + ",DataType=typeof(int) },\n");
                            }
                            else
                            {//数字不必输
                                sb.Append(commonStr + ",DataType=typeof(int),IsNullable=true },\n");
                            }
                            break;
                        case DataTypeEnum.dt_datetime:
                        case DataTypeEnum.dt_datetime2:
                            if (!columnModel.IsNullable)
                            {//日期必输
                                sb.Append(commonStr + ",DataType=typeof(DateTime) },\n");
                            }
                            else
                            {//日期不必输
                                sb.Append(commonStr + ",DataType=typeof(DateTime),IsNullable=true },\n");
                            }
                            break;
                        case DataTypeEnum.dt_datetimeoffset:
                            if (!columnModel.IsNullable)
                            {//日期必输
                                sb.Append(commonStr + ",DataType=typeof(DateTimeOffset) },\n");
                            }
                            else
                            {//日期不必输
                                sb.Append(commonStr + ",DataType=typeof(DateTimeOffset),IsNullable=true },\n");
                            }
                            break;
                        default:
                            break;
                    }
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion
        #endregion
        #region VUE文件
        /// <summary>
        /// èŽ·å–VUE el-table-column
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetElTableColumnStr(List<ColumnModel> columnModelList)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                List<ColumnModel> newList = ListHelper.RemoveIdOperationRemarkCreateIdModifyId(columnModelList);
                foreach (var columnModel in newList)
                {
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_datetime:
                        case DataTypeEnum.dt_datetime2:
                        case DataTypeEnum.dt_datetimeoffset:
                            sb.Append("          <el-table-column prop=\"" + columnModel.ColumnName + "\" label=\"" + columnModel.Description + "\" width=\"150\" align=\"center\" :formatter=\"formatterDateTime\" > \n");
                            sb.Append("          </el-table-column> \n");
                            break;
                        case DataTypeEnum.dt_bit:
                            sb.Append("          <el-table-column prop=\"" + columnModel.ColumnName + "\" label=\"" + columnModel.Description + "\" align=\"center\"  > \n");
                            sb.Append("<template slot-scope=\"scope\">");
                            sb.Append("<el-tag :type=\"scope.row." + columnModel.ColumnName + "  ? 'danger' : 'success'\"");
                            sb.Append("disable-transitions>{{scope.row." + columnModel.ColumnName + " ? \"是\":\"否\"}}</el-tag>");
                            sb.Append(" </template>");
                            sb.Append("          </el-table-column> \n");
                            break;
                        default:
                            sb.Append("          <el-table-column prop=\"" + columnModel.ColumnName + "\" label=\"" + columnModel.Description + "\" align=\"center\" > \n");
                            sb.Append("          </el-table-column> \n");
                            break;
                    }
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–VUE el-form-item (新增/编辑界面)
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetElFormItemStrForAddEditForm(List<ColumnModel> columnModelList)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                List<ColumnModel> newList = ListHelper.RemoveIdCreatorModifier(columnModelList);
                foreach (var columnModel in newList)
                {
                    if (columnModel.IsNullable)
                    {//可以为空
                        sb.Append("                <el-form-item label=\"" + columnModel.Description + "\" prop=\"" + columnModel.ColumnName + "\" > \n");
                    }
                    else
                    {
                        sb.Append("                <el-form-item label=\"" + columnModel.Description + "\" prop=\"" + columnModel.ColumnName + "\" :rules=\"[{ required: true, message: '" + columnModel.Description + "不能为空'}]\"> \n");
                    }
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_bit:
                            sb.Append("                  <el-switch v-model=\"addForm." + columnModel.ColumnName + "\"></el-switch> \n");
                            break;
                        case DataTypeEnum.dt_datetime:
                        case DataTypeEnum.dt_datetime2:
                        case DataTypeEnum.dt_datetimeoffset:
                            sb.Append("                  <el-date-picker placeholder=\"选择日期时间\"  type=\"datetime\" v-model=\"addForm." + columnModel.ColumnName + "\"></el-date-picker> \n");
                            break;
                        case DataTypeEnum.dt_int:
                        case DataTypeEnum.dt_bigint:
                        case DataTypeEnum.dt_decimal:
                        case DataTypeEnum.dt_float:
                            sb.Append("                  <el-input-number v-model=\"addForm." + columnModel.ColumnName + "\"></el-input-number> \n");
                            break;
                        default:
                            sb.Append("                  <el-input v-model=\"addForm." + columnModel.ColumnName + "\"></el-input> \n");
                            break;
                    }
                    sb.Append("                </el-form-item> \n");
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–VUE el-form-item (查看界面)
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetElFormItemStrForViewForm(List<ColumnModel> columnModelList)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                List<ColumnModel> newList = ListHelper.RemoveIdCreateIdModifyId(columnModelList);
                foreach (var columnModel in newList)
                {
                    sb.Append("                <el-form-item label=\"" + columnModel.Description + "\" prop=\"" + columnModel.ColumnName + "\" > \n");
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_bit:
                            sb.Append("                  <el-switch v-model=\"viewDetailForm." + columnModel.ColumnName + "\"></el-switch> \n");
                            break;
                        case DataTypeEnum.dt_datetime:
                        case DataTypeEnum.dt_datetime2:
                        case DataTypeEnum.dt_datetimeoffset:
                            sb.Append("                  <el-date-picker placeholder=\"选择日期时间\"  type=\"datetime\" v-model=\"viewDetailForm." + columnModel.ColumnName + "\"></el-date-picker> \n");
                            break;
                        case DataTypeEnum.dt_int:
                        case DataTypeEnum.dt_bigint:
                        case DataTypeEnum.dt_decimal:
                        case DataTypeEnum.dt_float:
                            sb.Append("                  <el-input-number v-model=\"viewDetailForm." + columnModel.ColumnName + "\"></el-input-number> \n");
                            break;
                        default:
                            sb.Append("                  <el-input v-model=\"viewDetailForm." + columnModel.ColumnName + "\"></el-input> \n");
                            break;
                    }
                    sb.Append("                </el-form-item> \n");
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–VUE formOptions字符串(高级查询中的)
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetVueFormOptionsStr(List<ColumnModel> columnModelList)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                  {
                         label: '代码编码',
                         prop: 'code',
                         element: 'el-input'
                  },
                 */
                List<ColumnModel> newList = ListHelper.RemoveIdOperationRemarkCreateIdModifyId(columnModelList);
                foreach (var columnModel in newList)
                {
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    var elment = "el-input";
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_datetime:
                            elment = "el-date-picker";
                            break;
                        case DataTypeEnum.dt_bit:
                            elment = "el-select";
                            break;
                        default:
                            break;
                    }
                    sb.Append("                { \n");
                    sb.Append("                   label: '" + columnModel.Description + "', \n");
                    sb.Append("                   prop: '" + columnModel.ColumnName + "', \n");
                    //添加类型
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_datetime:
                            sb.Append("                   type: 'datetimerange', \n");
                            break;
                        default:
                            break;
                    }
                    sb.Append("                   element: '" + elment + "', \n");
                    //添加类型
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_bit:
                            sb.Append("                 options: [{label: '是',value: 'true'}, {label: '否',value: 'false'}] \n");
                            break;
                        default:
                            break;
                    }
                    sb.Append("                }, \n");
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–VUE å¯¼å‡ºæ•°ç»„字符串-汉字+属性
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetVueExportTHeaderArrayStr(List<ColumnModel> columnModelList)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                List<ColumnModel> newList = ListHelper.RemoveIdOperationRemarkCreateIdModifyId(columnModelList);
                foreach (var columnModel in newList)
                {
                    if (columnModel.IsPrimaryKey == false)
                    {
                        sb.Append("'" + columnModel.ColumnName + "':'" + columnModel.Description + "',");
                    }
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–VUE æœç´¢æ¡†è¾“入的提示文本
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetVueSearchFormInputPlaceholderStr(List<ColumnModel> columnModelList, ref string names)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                List<ColumnModel> newList = ListHelper.OnlyStringProValue(columnModelList);
                foreach (var columnModel in newList)
                {
                    if (columnModel.IsPrimaryKey == false)
                    {
                        sb.Append("" + columnModel.Description + "/");
                        names += "'" + columnModel.ColumnName + "',";
                    }
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                names = names.Substring(0, names.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–VUE el-form-item æŸ¥è¯¢ç”¨
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetElFormItemForSearchStr(List<ColumnModel> columnModelList)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                List<ColumnModel> newList = ListHelper.RemoveIdCreatorModifier(columnModelList);
                foreach (var columnModel in newList)
                {
                    sb.Append("          <el-form-item label=\"" + columnModel.Description + "\"> \n");
                    //获取数据类型
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_char:
                        case DataTypeEnum.dt_varchar:
                        case DataTypeEnum.dt_Varchar_Desc:
                        case DataTypeEnum.dt_uniqueidentifier:
                        case DataTypeEnum.dt_Varchar_Ext_Link:
                        case DataTypeEnum.dt_nvarchar:
                            sb.Append("<el-input v-model=\"serachObj." + columnModel.ColumnName + "\" placeholder=\"请输入" + columnModel.Description + "\"></el-input> \n");
                            break;
                        case DataTypeEnum.dt_bit:
                            sb.Append("<el-checkbox-group v-model=\"ck_delflag\" @change=\"ckDelFlag\">\n");
                            sb.Append("  <el-checkbox-button label=\"启用\" name=\"ck_delflag\"></el-checkbox-button>\n");
                            sb.Append("  <el-checkbox-button label=\"禁用\" name=\"ck_delflag\"></el-checkbox-button>\n");
                            sb.Append("</el-checkbox-group> \n");
                            break;
                        default:
                            break;
                    }
                    sb.Append("          </el-form-item> \n");
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion
        #region Controller
        /// <summary>
        /// èŽ·å–åˆ†é¡µç­›é€‰å­—ç¬¦ä¸²
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetPageFilterStrForController(List<ColumnModel> columnModelList)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                string mohuFilter = "&& (";//模糊查询
                string filter = "";//非模糊查询
                List<ColumnModel> newList = ListHelper.RemoveIdCreatorModifier(columnModelList);
                foreach (var columnModel in newList)
                {
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_bit:
                        case DataTypeEnum.dt_datetime:
                        case DataTypeEnum.dt_datetime2:
                        case DataTypeEnum.dt_datetimeoffset:
                        case DataTypeEnum.dt_int:
                        case DataTypeEnum.dt_decimal:
                        case DataTypeEnum.dt_float:
                            break;
                        default:
                            if (columnModel.IsPrimaryKey == false)
                            {
                                mohuFilter += "(a." + columnModel.ColumnName + " != null && a." + columnModel.ColumnName + ".Contains(param.searchVal))";
                                mohuFilter += " ||";
                                filter += "&& (string.IsNullOrEmpty(param." + columnModel.ColumnName + ") || param." + columnModel.ColumnName + " == a." + columnModel.ColumnName + ")  \n";
                            }
                            else
                            {
                            }
                            break;
                    }
                }
                mohuFilter += "1==1)";
                filter += ";";
                return mohuFilter + filter;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion
        /// <summary>
        /// ç”ŸæˆWhere查询条件的字符串
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetStrForWhereQuery(List<ColumnModel> columnModelList)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                List<ColumnModel> newList = ListHelper.RemoveIdCreatorModifier(columnModelList);
                foreach (var columnModel in newList)
                {
                    string attr = columnModel.ColumnName;
                    //获取数据类型
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_char:
                        case DataTypeEnum.dt_varchar:
                        case DataTypeEnum.dt_Varchar_Desc:
                        case DataTypeEnum.dt_uniqueidentifier:
                        case DataTypeEnum.dt_Varchar_Ext_Link:
                        case DataTypeEnum.dt_nvarchar:
                            sb.Append("                if (!string.IsNullOrEmpty(queryModel." + columnModel.ColumnName + ")) \n");
                            sb.Append("                { \n");
                            sb.Append("                    strWhere += \" AND $TableAlias$." + columnModel.ColumnName + " LIKE '%\" + queryModel." + columnModel.ColumnName + " + \"%'\"; \n");
                            sb.Append("                } \n");
                            break;
                        case DataTypeEnum.dt_bit:
                            sb.Append("                if (!string.IsNullOrEmpty(queryModel." + columnModel.ColumnName + ")) \n");
                            sb.Append("                { \n");
                            sb.Append("                    strWhere += \" AND $TableAlias$." + columnModel.ColumnName + " = '\" + queryModel." + columnModel.ColumnName + " + \"'\"; \n");
                            sb.Append("                } \n");
                            break;
                        case DataTypeEnum.dt_int:
                        case DataTypeEnum.dt_bigint:
                            sb.Append("                if (queryModel." + columnModel.ColumnName + " !=0) \n");
                            sb.Append("                { \n");
                            sb.Append("                    strWhere += \" AND $TableAlias$." + columnModel.ColumnName + " = \" + queryModel." + columnModel.ColumnName + " + \"\"; \n");
                            sb.Append("                } \n");
                            break;
                        default:
                            break;
                    }
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// é€šè¿‡åˆ—名查找列对象
        /// </summary>
        /// <param name="columnName"></param>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static ColumnModel GetColumnModelByName(string columnName, List<ColumnModel> columnModelList)
        {
            foreach (var item in columnModelList)
            {
                if (item.ColumnName.ToUpper() == columnName.ToUpper())
                {
                    return item;
                }
            }
            return null;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/TextHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,171 @@

using GenerateCode_GEBrilliantFactory;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GenerateCode_GEBrilliantFactory
{
    public class TextHelper
    {
        /// <summary>
        /// è¯»å–text文本内容
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static string ReadText(string path)
        {
            try
            {
                StreamReader sr = new StreamReader(path, Encoding.Default);
                String line;
                StringBuilder sb = new StringBuilder();
                while ((line = sr.ReadLine()) != null)
                {
                    sb.Append(line.ToString() + " \n");
                }
                sr.Close();
                sr.Dispose();
                return sb.ToString();
            }
            catch
            {
                throw;
            }
        }
        /// <summary>
        /// å†™å…¥text文本内容
        /// </summary>
        /// <param name="path"></param>
        /// <param name="data"></param>
        public static void WriteText(string path, string data)
        {
            //判断路径是否存在
            if (!System.IO.File.Exists(path))
            {
                throw new Exception("文件不存在");
            }
            //文件覆盖方式添加内容
            System.IO.StreamWriter file = new System.IO.StreamWriter(path, false);
            //保存数据到文件
            file.Write(data);
            //关闭文件
            file.Close();
            //释放对象
            file.Dispose();
        }
        /// <summary>
        /// ç”Ÿæˆæ–‡ä»¶
        /// </summary>
        /// <param name="_strPath">路径</param>
        /// <param name="_tableName">表名</param>
        /// <param name="_code">生成的代码字符串</param>
        /// <param name="fileType">生成的文件类型</param>
        /// <param name="filePrefixName">前缀</param>
        /// <param name="entityName">实体类名</param>
        /// <param name="modulelogo">模块名字</param>
        /// <returns></returns>
        public static bool Export2File(string _strPath, string _tableName, string _code, FileType fileType,
            string filePrefixName, string entityName, string modulelogo)
        {
            string fileFolderPath = _strPath + "\\" + _tableName;
            string fileTypeName = "";
            switch (fileType)
            {
                case FileType.Model:
                    fileTypeName = ".cs";
                    break;
                case FileType.AddModelParam:
                    entityName = "Add" + modulelogo + "Param";
                    fileTypeName = ".cs";
                    break;
                case FileType.IBLL:
                    entityName = "I" + filePrefixName + "BLL";
                    fileTypeName = ".cs";
                    break;
                case FileType.Controller:
                    entityName = entityName + "Controller";
                    fileTypeName = ".cs";
                    break;
                case FileType.JS:
                    entityName = filePrefixName;
                    fileTypeName = ".js";
                    break;
                case FileType.CSHTML_List:
                    entityName = filePrefixName;
                    fileTypeName = ".cshtml";
                    break;
                case FileType.CSHTML_Detail:
                    entityName = filePrefixName;
                    fileTypeName = "Detail.cshtml";
                    break;
                case FileType.XML:
                    entityName = filePrefixName;
                    fileTypeName = ".xml";
                    break;
                case FileType.Proc:
                    entityName = filePrefixName;
                    fileTypeName = "Proc.sql";
                    break;
                case FileType.DAL:
                    entityName = filePrefixName;
                    fileTypeName = "DAL.cs";
                    break;
                case FileType.BLL:
                    entityName = filePrefixName;
                    fileTypeName = "BLL.cs";
                    break;
                case FileType.InputModel:
                    entityName = entityName + "Input";
                    fileTypeName = ".cs";
                    fileFolderPath += "\\Dto";
                    break;
                case FileType.OutputModel:
                    entityName = entityName + "Output";
                    fileTypeName = ".cs";
                    fileFolderPath += "\\Dto";
                    break;
                case FileType.WCF_InterFace:
                    entityName = "I" + entityName + "Service";
                    fileTypeName = ".cs";
                    break;
                case FileType.WCF_InterFaceRealize:
                    entityName = entityName + "Service";
                    fileTypeName = ".cs";
                    break;
                case FileType.SQL_Insert:
                    entityName = _tableName + "InsertSQL";
                    fileTypeName = ".txt";
                    break;
                case FileType.VUE_FunConfig:
                    entityName = _tableName + "VUE方法配置";
                    fileTypeName = ".txt";
                    break;
                case FileType.VUEFile:
                    entityName = modulelogo;
                    fileTypeName = ".vue";
                    break;
            }
            if (!Directory.Exists(fileFolderPath))
            {
                Directory.CreateDirectory(fileFolderPath);
            }
            string filePath = fileFolderPath + "\\" + entityName + fileTypeName;
            using (StreamWriter outfile = new StreamWriter(filePath, false, Encoding.GetEncoding("UTF-8")))
            {
                outfile.Write(_code);
            }
            return true;
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/packages.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.Bcl.AsyncInterfaces" version="8.0.0" targetFramework="net48" />
  <package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="8.0.2" targetFramework="net48" />
  <package id="Microsoft.Extensions.Logging.Abstractions" version="8.0.2" targetFramework="net48" />
  <package id="MySqlConnector" version="2.4.0" targetFramework="net48" />
  <package id="Newtonsoft.Json" version="11.0.2" targetFramework="net451" />
  <package id="System.Buffers" version="4.5.1" targetFramework="net48" />
  <package id="System.Diagnostics.DiagnosticSource" version="8.0.1" targetFramework="net48" />
  <package id="System.Memory" version="4.5.5" targetFramework="net48" />
  <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
  <package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
  <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
</packages>
Weben_CMSרÓôúÂëÉú³ÉÆ÷/°æ±¾ËµÃ÷.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
Weben-CMS专用代码生成器
V1.0
   1、创建 2025-04-29