From 4b28ede0add31f776ffce57b54e93274d215b8cb Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 06 5月 2025 06:39:36 +0800
Subject: [PATCH] 22
---
Weben_CMS专用代码生成器/Code/Utility/StructStrHelper.cs | 320 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 313 insertions(+), 7 deletions(-)
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
index dea907b..767112b 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
@@ -1,8 +1,10 @@
-锘縰sing System;
+锘縰sing GenerateCode_WeiBen_WMS.Model;
+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
@@ -216,7 +218,7 @@
/// </summary>
/// <param name="columnModel"></param>
/// <returns></returns>
- public static string GenerateAttributeForAddModel(ColumnModel columnModel)
+ public static string GenerateAttributeForAddModel(ColumnModel columnModel, GenerateCodeParam param)
{
try
{
@@ -238,9 +240,7 @@
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 += " public datetime" + str_NullFlag + attr + " { get; set; }\n";
attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
break;
case DataTypeEnum.dt_bigint:
@@ -248,16 +248,317 @@
attrStr += " public long" + str_NullFlag + attr + " { get; set; }\n";
attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
break;
+ case DataTypeEnum.dt_decimal:
+ if (columnModel.IsNullable) { str_NullFlag = "? "; }
+ attrStr += " public decimal" + 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";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+ var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
+ if (findEnumObj != null)
+ {
+ attrStr += $" public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
+ attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+ }
+ else
+ {
+ 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>
+ /// 鐢熸垚灞炴�у瓧绗︿覆ForAddModel-鏇存柊瀹炰綋涓撶敤
+ /// </summary>
+ /// <param name="columnModel"></param>
+ /// <returns></returns>
+ public static string GenerateAttributeForUpdateModel(ColumnModel columnModel, GenerateCodeParam param)
+ {
+ try
+ {
+ string attr = columnModel.ColumnName;
+
+ string attrStr = "";
+ attrStr += $" updateObj.{attr} = input.{attr};\n";
+
+
+ return attrStr;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+ /// <summary>
+ /// 鐢熸垚灞炴�у瓧绗︿覆ForAddModel-鏇存柊瀹炰綋涓撶敤(瀵煎叆鏃�)
+ /// </summary>
+ /// <param name="columnModel"></param>
+ /// <returns></returns>
+ public static string GenerateAttributeForUpdateModelByImport(ColumnModel columnModel, GenerateCodeParam param)
+ {
+ try
+ {
+ string attr = columnModel.ColumnName;
+
+ string attrStr = "";
+ attrStr += $" {attr} = {param.EntityInstanceName}.{attr},\n";
+
+
+ return attrStr;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+ /// <summary>
+ /// 鐢熸垚灞炴�у瓧绗︿覆ForAddModel-CheckCreateOrUpdateDtoAsync涓撶敤
+ /// </summary>
+ /// <param name="columnModel"></param>
+ /// <returns></returns>
+ public static string GenerateAttributeForCheckCreateOrUpdateDtoAsync(ColumnModel columnModel, GenerateCodeParam param)
+ {
+ try
+ {
+ string attr = columnModel.ColumnName;
+
+ string attrStr = "";
+ bool isHaveMaxLength = false;
+ if (!string.IsNullOrEmpty(columnModel.DataLength))
+ {
+ isHaveMaxLength = true;
+ }
+ if (columnModel.IsNullable == false)
+ {//蹇呭~
+ DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
+ switch (myDataType)
+ {
+ case DataTypeEnum.dt_datetime:
+ case DataTypeEnum.dt_datetime2:
+ case DataTypeEnum.dt_datetimeoffset:
+ if (isHaveMaxLength)
+ {
+ attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n";
+ }
+ else
+ {
+ attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\");\n";
+ }
+ break;
+ case DataTypeEnum.dt_bigint:
+ case DataTypeEnum.dt_decimal:
+ if (isHaveMaxLength)
+ {
+ attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n";
+ }
+ else
+ {
+ attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\");\n";
+ }
+ break;
+ case DataTypeEnum.dt_int:
+ case DataTypeEnum.dt_tinyint:
+ if (isHaveMaxLength)
+ {
+ attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n";
+ }
+ else
+ {
+ attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\");\n";
+ }
+ break;
+ default:
+ if (isHaveMaxLength)
+ {
+ attrStr += $" Check.NotNullOrWhiteSpace(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n";
+ }
+ else
+ {
+ attrStr += $" Check.NotNullOrWhiteSpace(input.{attr}, \"{columnModel.Description}\");\n";
+ }
+ break;
+ }
+ }
+ return attrStr;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+ /// <summary>
+ /// 鐢熸垚灞炴�у瓧绗︿覆ForAddModel-Dto瀹炰綋涓撶敤
+ /// </summary>
+ /// <param name="columnModel"></param>
+ /// <returns></returns>
+ public static string GenerateAttributeForDto(ColumnModel columnModel, GenerateCodeParam param)
+ {
+ 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 += " public DateTime" + 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_decimal:
+ if (columnModel.IsNullable) { str_NullFlag = "? "; }
+ attrStr += " public decimal" + str_NullFlag + attr + " { get; set; }\n";
+ attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+ break;
+ case DataTypeEnum.dt_int:
+ if (columnModel.IsNullable) { str_NullFlag = "? "; }
+ var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
+ if (findEnumObj != null)
+ {
+ attrStr += $" public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
+ attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+ }
+ else
+ {
+ 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;
+ }
+
+ //澧炲姞瀵规灇涓剧被鍨嬬殑鏀寔
+ if (param.EnumList?.Count > 0)
+ {
+ var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
+ if (findEnumObj != null)
+ {
+ attrStr += " /// <summary>\n";
+ attrStr += " /// " + columnModel.Description + "\n";
+ attrStr += " /// </summary>\n";
+ attrStr += " public string" + str_NullFlag + findEnumObj.EnumTypeDesc + "\n";
+ attrStr += " { \n";
+ attrStr += " get \n";
+ attrStr += " { \n";
+ attrStr += $" return GetEnumDescriptionUtil.GetEnumDescription({findEnumObj.EnumAttrName}); \n";
+ attrStr += " } \n";
+ attrStr += " } \n";
+ }
+ }
+
+ return attrStr;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ }
+
+ /// <summary>
+ /// 鐢熸垚灞炴�у瓧绗︿覆ForAddModel-Export瀹炰綋涓撶敤
+ /// </summary>
+ /// <param name="columnModel"></param>
+ /// <returns></returns>
+ public static string GenerateAttributeForExport(ColumnModel columnModel, GenerateCodeParam param)
+ {
+ 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";
+ attrStr += $" [ExcelColumn(Name = \"{columnModel.Description}\", Width = 25)]\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 += " public datetime" + 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_decimal:
+ if (columnModel.IsNullable) { str_NullFlag = "? "; }
+ attrStr += " public decimal" + str_NullFlag + attr + " { get; set; }\n";
+ attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+ break;
+ case DataTypeEnum.dt_int:
+ if (columnModel.IsNullable) { str_NullFlag = "? "; }
+ var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
+ if (findEnumObj != null)
+ {
+ attrStr += $" public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
+ attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+ }
+ else
+ {
+ 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;
}
@@ -309,6 +610,10 @@
break;
case DataTypeEnum.dt_bigint:
attrStr += " public long" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
+ attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+ break;
+ case DataTypeEnum.dt_decimal:
+ attrStr += " public decimal" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
break;
case DataTypeEnum.dt_int:
@@ -364,6 +669,7 @@
case DataTypeEnum.dt_datetimeoffset:
return "\n";
case DataTypeEnum.dt_bigint:
+ case DataTypeEnum.dt_decimal:
case DataTypeEnum.dt_int:
case DataTypeEnum.dt_tinyint:
attrStr += " public SearchFilterModeEnum " + attr + highSearchModeSuffix + " { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;\n";
--
Gitblit v1.9.3