using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Text;
using SuperMap.RealEstate.ServiceModel;
using CMB = SuperMap.RealEstate.Coop.Merchant.Business;
using Aliyun.Acs.Dysmsapi.Model.V20170525;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core;
using HCC = HZQR.Common.Common;
using HZQR.Common;
namespace EShang.Common
{
///
/// 公共方法
///
public class CommonHelper
{
///
/// 数字数组
///
public const string charSet = "0,1,2,3,4,5,6,7,8,9";
#region 方法 -> 将DateTime类型转换为long类型
///
/// 将DateTime类型转换为long类型
///
/// 时间
///
public static long ConvertDataTimeLong(DateTime dt)
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
TimeSpan toNow = dt.Subtract(dtStart);
long timeStamp = toNow.Ticks;
timeStamp = long.Parse(timeStamp.ToString().Substring(0, timeStamp.ToString().Length - 7));
return timeStamp;
}
#endregion
#region 方法 -> 将Long类型转换为DateTime类型
///
/// 将Long类型转换为DateTime类型
///
/// long
/// s
public static DateTime ConvertLongDateTime(long d)
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = long.Parse(d + "0000000");
TimeSpan toNow = new TimeSpan(lTime);
DateTime dtResult = dtStart.Add(toNow);
return dtResult;
}
///
/// 时间戳(毫秒值)String转换为DateTime类型转换
///
/// 毫秒时间戳
///
public static DateTime TicksToDate(string time)
{
return new DateTime((Convert.ToInt64(time) * 10000) + 621355968000000000);
}
#endregion
#region 方法 -> 比较两个日期大小,并返回相应日期
///
/// 比较两个日期大小,并返回较大日期
///
///
///
/// s
public static string GetLargerDate(string FirstDate, string SecondDate)
{
if (!FirstDate.Contains("/") && !FirstDate.Contains("-"))
{
FirstDate = HCC.Common.TranslateDateTime(FirstDate);
}
if (!SecondDate.Contains("/") && !SecondDate.Contains("-"))
{
SecondDate = HCC.Common.TranslateDateTime(SecondDate);
}
return DateTime.Parse(FirstDate) > DateTime.Parse(SecondDate) ?
DateTime.Parse(FirstDate).ToShortDateString() : DateTime.Parse(SecondDate).ToShortDateString();
}
///
/// 比较两个日期大小,并返回较大时间
///
///
///
/// s
public static string GetLargerTime(string FirstTime, string SecondTime)
{
if (!FirstTime.Contains("/") && !FirstTime.Contains("-"))
{
FirstTime = HCC.Common.TranslateDateTime(FirstTime);
}
if (!SecondTime.Contains("/") && !SecondTime.Contains("-"))
{
SecondTime = HCC.Common.TranslateDateTime(SecondTime);
}
return DateTime.Parse(FirstTime) > DateTime.Parse(SecondTime) ?
DateTime.Parse(FirstTime).ToString() : DateTime.Parse(SecondTime).ToString();
}
///
/// 比较两个日期大小,并返回较小日期
///
///
///
/// s
public static string GetSmallerDate(string FirstDate, string SecondDate)
{
if (!FirstDate.Contains("/") && !FirstDate.Contains("-"))
{
FirstDate = HCC.Common.TranslateDateTime(FirstDate);
}
if (!SecondDate.Contains("/") && !SecondDate.Contains("-"))
{
SecondDate = HCC.Common.TranslateDateTime(SecondDate);
}
return DateTime.Parse(FirstDate) > DateTime.Parse(SecondDate) ?
DateTime.Parse(SecondDate).ToShortDateString() : DateTime.Parse(FirstDate).ToShortDateString();
}
///
/// 比较两个日期大小,并返回较小时间
///
///
///
/// s
public static string GetSmallerTime(string FirstTime, string SecondTime)
{
if (!FirstTime.Contains("/") && !FirstTime.Contains("-"))
{
FirstTime = HCC.Common.TranslateDateTime(FirstTime);
}
if (!SecondTime.Contains("/") && !SecondTime.Contains("-"))
{
SecondTime = HCC.Common.TranslateDateTime(SecondTime);
}
return DateTime.Parse(FirstTime) > DateTime.Parse(SecondTime) ?
DateTime.Parse(SecondTime).ToString() : DateTime.Parse(FirstTime).ToString();
}
#endregion
#region 方法 -> 枚举参数过滤处理
///
/// 枚举参数过滤处理,解决麻烦的SQL拼接
/// (对照数据表给定添加、更新的参数枚举类型ValueType)
///
/// 数据类型
/// 数据值
///
public static string IsArrayType(ValueType _Type, object _String = null)
{
if (_String != null && _String.ToString() != "")
{
switch (_Type)
{
case ValueType.String:
return string.Format("'{0}'", _String.ToString().Replace("'", " "));
case ValueType.Int:
case ValueType.Double:
case ValueType.Boolean:
return _String.ToString();
case ValueType.DateTime:
return string.Format("TO_DATE('{0}','YYYY/MM/DD HH24:MI:SS')", _String);
}
}
return "null";
}
///
/// 枚举参数过滤处理,解决麻烦的SQL拼接
/// (对照数据表给定添加、更新的参数枚举类型ValueType)
///
/// 数据类型
/// 是否使用缺省值
///
private static string IsArrayType(ValueType _Type, bool _DefaultValue = false)
{
if (_DefaultValue)
{
switch (_Type)
{
case ValueType.String:
return "''";
case ValueType.Int:
case ValueType.Double:
case ValueType.Boolean:
return "0";
case ValueType.DateTime:
return string.Format("TO_DATE('{0}','YYYY/MM/DD HH24:MI:SS')", DateTime.Now.ToString());
}
}
return "null";
}
#endregion
#region 方法 -> 定义5个类型的枚举
///
/// 定义5个类型的枚举
///
public enum ValueType
{
///
/// 字符串
///
String = 0,
///
/// 整型
///
Int = 1,
///
/// 双精度
///
Double = 2,
///
/// true或false
///
Boolean = 3,
///
/// 日期
///
DateTime = 4
}
#endregion
#region 方法 -> SQL语句分页
///
/// SQL语句分页
///
/// SQL语句
/// 开始的行号
/// 结束的行号
///
public static string GetPageSql(string sql, int? rn = null, int? rowNum = null)
{
if (rn != null && rowNum != null)
{
//分页查询
sql = string.Format(@"
SELECT * FROM (
SELECT ROWNUM RN,N.* FROM ({0}) N WHERE ROWNUM<={1}
) M WHERE M.RN>={2}", sql, rowNum, rn);
}
return sql;
}
#endregion
#region 方法 -> 添加图片
///
/// 添加图片
///
/// 事务
/// 图片路径数组
/// 业务关联表Id
/// 业务关联表名称
/// 图片类型
///
public static string AddImageByFile(Transaction transaction, string imgArr,
int tableId, string tableName, int imageType)
{
string imageids = string.Empty; //图片集合
try
{
#region 图片信息保存
foreach (string imagePath in imgArr.Split(","))
{
using (CMB.IMAGE _IMAGE = new CMB.IMAGE(transaction))
{
_IMAGE.IMAGE_PATH = imagePath;
_IMAGE.IMAGE_DATE = DateTime.Now;
_IMAGE.TABLE_ID = tableId;
_IMAGE.TABLE_NAME = tableName;
_IMAGE.IMAGE_TYPE = (short)imageType;
_IMAGE.ISVALID = 1;
_IMAGE.Insert();
imageids += (string.IsNullOrEmpty(imageids) ? "" : ",") + _IMAGE.IMAGE_ID;
}
}
#endregion
}
catch { }
return imageids;
}
#endregion
#region 方法 -> 查询图片
///
/// 添加图片
///
/// 事务
/// 表名
/// 表内码
/// 图片类型
///
public static DataTable ImageList(Transaction transaction, string tableName, int? tableId = null, int? imgType = null)
{
//根据业务表查询图库
DataTable dtImage = new CMB.IMAGE(transaction).FillDataTable(
"WHERE TABLE_NAME = '" + tableName + "'" + " AND TABLE_ID = '" + tableId + "'" + " AND IMAGE_TYPE = '" + imgType + "'");
return dtImage;
}
#endregion
#region 方法 -> 为属性赋值
///
/// 为属性赋值
///
/// 源单类
/// 需要转换的实体类
///
///
public static S EntityConvert(T source)
{
S target = Activator.CreateInstance();
var sType = source.GetType();
var dType = typeof(S);
foreach (PropertyInfo now in sType.GetProperties())
{
var name = dType.GetProperty(now.Name);
if (name == null)
continue;
dType.GetProperty(now.Name).SetValue(target, now.GetValue(source));
}
return target;
}
#endregion
#region 方法 -> 获取指定页码Datatable数据
///
/// 获取指定页码Datatable数据
///
/// 源数据
/// 每页返回的数量
/// 返回第几页数据
/// Datatable数据格式
public static DataTable GetDataTableWithPageSize(DataTable dtOrigin, int pageSize, int pageIndex)
{
if (pageIndex == 0)
{
pageIndex = 1;
}
if (pageSize == 0)
{
pageSize = 10;
}
//克隆数据源
DataTable dtClone = dtOrigin.Clone();
dtClone.Columns.Add("RN", typeof(int));
//开始插入数据源
for (int RowCount = 0; RowCount < pageSize; RowCount++)
{
//获取当前数据源行数
int RN = pageSize * (pageIndex - 1) + RowCount;
//如果行数大于数据源实际数量,则直接跳过
if (RN >= dtOrigin.Rows.Count)
{
break;
}
//获取当前数据源内容
DataRow EndAccountDataRow = dtOrigin.Rows[RN];
//创建一个新 System.Data.DataRow 具有与表相同的架构
DataRow _DataRow = dtClone.NewRow();
//开始插入数据
for (int ColumnsCount = 0; ColumnsCount < dtOrigin.Columns.Count; ColumnsCount++)
{
_DataRow[ColumnsCount] = EndAccountDataRow[ColumnsCount];
}
_DataRow["RN"] = RN + 1;
//将数据加入到克隆的DataTable中
dtClone.Rows.Add(_DataRow);
}
return dtClone;
}
#endregion
#region 方法 -> 生成验证码
///
/// 生成验证码
/// 位数
/// 验证码字符串
public static string CreateRandomCode(int n)
{
string[] CharArray = charSet.Split(',');
string randomCode = "";
int temp = -1;
Random rand = new Random();
for (int i = 0; i < n; i++)
{
if (temp != -1)
{
rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
}
int t = rand.Next(CharArray.Length - 1);
if (temp == t)
{
return CreateRandomCode(n);
}
temp = t;
randomCode += CharArray[t];
}
return randomCode;
}
#endregion
#region 方法 -> 获取短信验证码
///
/// 获取短信验证码
///
/// 事务管理器
/// 手机号码
/// 短信签名
/// 商家名称
///
public static string GetSMSIdentityCode(Transaction _Transaction, string PhoneNumber, string SignName, string BusinessName)
{
string identityCode = CreateRandomCode(4);
string product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
string domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
string accessKeyId = Config.AppSettings.accessKeyId;//你的accessKeyId,参考本文档步骤2
string accessKeySecret = Config.AppSettings.accessKeySecret;//你的accessKeySecret,参考本文档步骤2
IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
//IAcsClient client = new DefaultAcsClient(profile);
// SingleSendSmsRequest request = new SingleSendSmsRequest();
//初始化ascClient,暂时不支持多region(请勿修改)
DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest
{
//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,
//批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
PhoneNumbers = PhoneNumber,
//必填:短信签名-可在短信控制台中找到
SignName = string.IsNullOrEmpty(SignName) ? "驿商科技" : SignName,
//必填:短信模板-可在短信控制台中找到
TemplateCode = "SMS_65150085",
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
TemplateParam = "{\"code\":\"" + identityCode + "\",\"product\":\"" +
(string.IsNullOrEmpty(BusinessName) ? "驿商云平台" : BusinessName) + "\"}"
};
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
if (sendSmsResponse.Code.ToLower() == "ok")
{
string SQLString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SMSIDENTITY (
SMSIDENTITY_ID,CELLPHONE_NUMBER,IDENTITY_DATE,IDENTITY_CODE)
VALUES (HIGHWAY_EXCHANGE.SEQ_SMSIDENTITY.NEXTVAL,'{0}',SYSDATE,'{1}')", PhoneNumber, identityCode);
new CMB.AUTOTYPE(_Transaction).ExecuteNonQuery(SQLString, null);
}
return identityCode;
}
#endregion
#region 方法 -> 合并Datatable中某个字符串的值
///
/// 合并Datatable中某个字符串的值,返回list
///
/// 数据源
/// 字段名称
/// 排序字段
///
public static List JoinListFromDataTable(DataTable dataTable, string FieldName, string SortStr = "")
{
List JoinStr = new List();
foreach (DataRow dataRow in dataTable.DefaultView.ToTable(true, FieldName).Select("", SortStr))
{
if (dataRow[FieldName].ToString() != "")
{
JoinStr.Add(dataRow[FieldName].ToString());
}
}
return JoinStr;
}
///
/// 合并Datatable中某个字符串的值,返回string
///
/// 数据源
/// 字段名称
/// 分隔符,默认为,
/// 排序字段
///
public static string JoinStrFromDataTable(DataTable dataTable, string FieldName,
string SeparateStr = ",", string SortStr = "")
{
string JoinStr = "";
foreach (DataRow dataRow in dataTable.DefaultView.ToTable(true, FieldName).Select("", SortStr))
{
if (dataRow[FieldName].ToString() != "")
{
JoinStr += (JoinStr == "" ? "" : SeparateStr) + dataRow[FieldName];
}
}
return JoinStr;
}
#endregion
#region 方法 -> 计算中位数
///
/// 计算中位数
///
/// Datatable数据源
/// 要计算的字段名称
///
public static string getMedian(DataTable datas, string fieldName)
{
string median;
if (datas.Rows.Count == 0)
{
median = "";
}
else if (datas.Rows.Count == 1)
{
median = datas.Rows[0][fieldName].ToString();
}
else if (datas.Rows.Count % 2 == 0)
{
//如果数据源的行数为偶数,则取中间两个数据的平均值作为返回值
int index = datas.Rows.Count / 2;
median = ((datas.Rows[index - 1][fieldName].TryParseToDecimal() +
datas.Rows[index][fieldName].TryParseToDecimal()) / 2).ToString();
}
else
{
//如果数据源的行数为奇数,则取中间的数据作为返回值
median = datas.Rows[datas.Rows.Count / 2][fieldName].ToString();
}
return median;
}
#endregion
#region 方法 -> 存储数字型数据至oracle数据库
///
/// 存储数字型数据至oracle数据库
///
/// 源数据值
///
public static string GetNumberIntoOra(object OriValue)
{
if (OriValue == null)
{
return "NULL";
}
else
{
return GetNumberIntoOra(OriValue.ToString());
}
}
///
/// 存储数字型数据至oracle数据库
///
/// 源数据值
///
public static string GetNumberIntoOra(string OriValue)
{
if (string.IsNullOrWhiteSpace(OriValue))
{
return "NULL";
}
else
{
return OriValue;
}
}
#endregion
#region 方法 -> 存储日期格式型数据至oracle数据库
///
/// 存储日期格式型数据至oracle数据库
///
/// 源数据值
///
public static string GetDateTimeIntoOra(string OriValue)
{
string SQLValue = "";
if (string.IsNullOrWhiteSpace(OriValue))
{
SQLValue = "NULL";
}
else
{
SQLValue = "TO_DATE('" + OriValue + "', 'YYYY/MM/DD HH24:MI:SS')";
}
return SQLValue;
}
#endregion
#region 方法 -> 获取当月的第一天
///
/// 获取当月的第一天
///
/// 月份,格式yyyyMM
/// 返回结果:日期字符串,格式yyyy-MM-dd
public static string GetFirstDayOfMonth(string Month)
{
return Month.Substring(0, 4) + "-" + Month.Substring(4, 2) + "-01";
}
#endregion
#region 方法 -> 获取当月的最后一天
///
/// 获取当月的最后一天
///
/// 月份,格式yyyyMM
/// 最后一天是否包含今天,如果是则返回今天,否则返回昨天
/// 返回结果:日期字符串,格式yyyy-MM-dd
public static string GetLastDayOfMonth(string Month, bool ContainToday = true)
{
//获取当月的第一天
string FirstDay = GetFirstDayOfMonth(Month);
//当月最后一天=当月第一天+1个月-1天
DateTime LastDay = DateTime.Parse(FirstDay).AddMonths(1).AddDays(-1);
//如果最后一天比今天大,则按今天的日期返回,否则返回最后一天的日期
if (LastDay >= DateTime.Now.Date)
{
if (ContainToday)
{
return DateTime.Now.ToString("yyyy-MM-dd");
}
else
{
return DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
}
}
else
{
return LastDay.ToString("yyyy-MM-dd");
}
}
#endregion
#region 方法 -> 获取下一个月
///
/// 获取下一个月
///
/// 月份,格式yyyyMM
/// 返回结果:日期字符串,格式yyyyMM
public static string GetNextMonth(string Month)
{
if (Month.EndsWith("12"))
{
return int.Parse(Month.Substring(0, 4)) + 1 + "01";
}
return (int.Parse(Month) + 1).ToString("00");
}
#endregion
#region 方法 -> 获取上一个月
///
/// 获取上一个月
///
/// 月份,格式yyyyMM
/// 扣减月数
/// 返回结果:日期字符串,格式yyyyMM
public static string GetLastMonth(string Month, int AddMonth = -1)
{
if (AddMonth != -1)
{
return DateTime.Parse(HCC.Common.TranslateDateTime(Month)).AddMonths(AddMonth).ToString("yyyyMM");
}
if (Month.EndsWith("01"))
{
return (int.Parse(Month.Substring(0, 4)) - 1) + "12";
}
return Month.Substring(0, 4) + (int.Parse(Month.Substring(4, 2)) - 1).ToString("00");
}
#endregion
#region 方法 -> 根据开始结束时间计算月数
///
/// 根据开始结束时间计算月数
///
/// 开始日期
/// 结束日期
///
public static decimal calcMonthCount(DateTime StartDate, DateTime EndDate)
{
//计算第一个月的月数,1-10计算为1个月,11-20计算为0.5个月,20之后不计算
decimal startCount = StartDate.Day < 11 ? 1 : StartDate.Day < 21 ? (decimal)0.5 : 0;
startCount -= EndDate.Day < 11 ? 1 : EndDate.Day < 21 ? (decimal)0.5 : 0;
return (EndDate.Year - StartDate.Year) * 12 + EndDate.Month - StartDate.Month + startCount;
}
#endregion
#region 方法 -> 获取嵌套列表最低一级数据集
///
/// 获取嵌套列表最低一级数据集
///
///
/// 原嵌套列表
/// 转换后的数据集
public static void GetNestingData(List> nestingList, List DataList)
{
foreach (Model.NestingModel nestingModel in nestingList)
{
if (nestingModel.children == null || nestingModel.children.Count == 0)
{
DataList.Add(nestingModel.node);
}
else
{
GetNestingData(nestingModel.children, DataList);
}
}
}
#endregion
#region 方法 -> 计算标准差
///
/// 样本标准差和总体标准差计算
///
/// 数据数组
/// 样本标准差:sqrt(sum((xn-x)^2)/(n-1))
/// 总体标准差:sqrt(sum((xn-x)^2)/n)
public static void CalcStandardDeviation(List arrData, out double std_dev, out double STDP) //计算标准偏差
{
decimal xAvg = arrData.Average();//样本平均值
double sSum = 0;//方差的分子
int arrNum = arrData.Count;//得到样本数量,分母
foreach (decimal data in arrData)//得到方差的分子
{
sSum += Math.Pow((double)(data - xAvg), 2);
}
std_dev = Math.Sqrt(sSum / (arrNum - 1));//样本标准差
STDP = Math.Sqrt(sSum / arrNum);//总体标准差
}
#endregion
#region 方法 -> 将字符串编码为 Base64
///
/// 将字符串编码为 Base64
///
///
///
public static string Base64Encode(string text)
{
return (Convert.ToBase64String(Encoding.UTF8.GetBytes(text)));
}
#endregion
//------------------以下是低代码平台的相关方法--------------------------//
#region 方法 -> 文本内容增加空格,数量由入参控制
///
/// 文本内容增加空格,数量由入参控制
///
/// 空格数量
///
public static string GetTabChar(int TabCount)
{
StringBuilder _TabChar = new StringBuilder();
int _Count = TabCount * 4;
for (int i = 0; i < _Count; i++)
{
_TabChar.Append(" ");
}
return _TabChar.ToString(); ;
}
#endregion
#region 方法 -> 增加代码注解
///
/// 增加代码注解
/// 在代码里面生成的中文释义
///
/// 字符串
/// 注解内容
/// 内容缩进格数
/// 方法中的参数注解,可以为空
public static void BuildCodeSummary(StringBuilder stringBuilder, string SummaryContent,
int StartIndex = 0, Dictionary parameters = null)
{
stringBuilder.AppendLine(GetTabChar(StartIndex) + "/// ");
stringBuilder.AppendLine(GetTabChar(StartIndex) + "/// " + SummaryContent);
stringBuilder.AppendLine(GetTabChar(StartIndex) + "/// ");
if (parameters != null)
{
foreach (string key in parameters.Keys)
{
stringBuilder.AppendLine(GetTabChar(2) + "/// " + parameters[key] + "");
}
}
}
#endregion
#region 方法 -> 增加catch方法代码
///
/// 增加catch方法代码
///
/// 字符串
/// 失败命名:例如“查询”失败
/// 日志名称
/// 内容缩进格数
public static void BuildCatchCode(StringBuilder stringBuilder, string FailName, string LogName, int StartIndex = 0)
{
stringBuilder.AppendLine(GetTabChar(StartIndex) + "catch (Exception ex)");
stringBuilder.AppendLine(GetTabChar(StartIndex) + "{");
stringBuilder.AppendLine(GetTabChar(StartIndex + 1) + "//事务回滚");
stringBuilder.AppendLine(GetTabChar(StartIndex + 1) + "transaction.Rollback();");
//记录异常日志
stringBuilder.AppendLine(GetTabChar(StartIndex + 1) + "LogUtil.WriteLog(null, " +
"\"" + FailName + "失败!失败原因:\" + ex.Message + \"\\r\\n\" + Parameter,");
stringBuilder.AppendLine(GetTabChar(StartIndex + 2) + "DateTime.Now.ToString(\"yyyyMMdd\") + \"_" + LogName + "\");");
stringBuilder.AppendLine(GetTabChar(StartIndex + 1) + "return Ok(Method.Common.ReturnJson(999, \"查询失败\" + ex.Message));");
stringBuilder.AppendLine(GetTabChar(StartIndex) + "}");
}
#endregion
#region 方法 -> 获取命名空间简写
///
/// 获取命名空间简写
///
/// 命名空间全称
///
public static string GetNameSpaceShortName(string WholeNameSpace)
{
string ShortName = "";
foreach (string NameSpace in WholeNameSpace.Split('.'))
{
ShortName += NameSpace.Substring(0, 1);
}
return ShortName;
}
#endregion
#region 方法 -> 转换字符串大小写
///
/// 返回首字母大写、其余字符小写的字符串model对象
///
/// 字符串
/// 原字符串CLASS_NAME,返回Class_nameModel
public static string GetClassModelName(string className)
{
return className + "Model";
}
///
/// 返回首字母大写、其余字符小写的字符串
///
/// 字符串
/// 原字符串CLASS_NAME,返回Class_name
public static string GetULClassName(string className)
{
return className.Substring(0, 1).ToUpper() + className.Substring(1, className.Length - 1).ToLower();
}
///
/// 返回小写字符串,如果有_,则_后面的第一个字符大写
///
/// 字符串
/// 原字符串CLASS_NAME,返回class_Name
public static string GetLUName(string className)
{
string resName = className.Split('_')[0].ToLower();
//以_分割字符串,从第一个_之后的字符串开始遍历,每段字符串首字母大写其余字母小写
for (int SplitLength = 1; SplitLength < className.Split('_').Length; SplitLength++)
{
resName += GetULClassName(className.Split('_')[SplitLength]);
}
return resName;
}
///
/// 返回首字母小写的字符串
/// 如原字符串CLASS_NAME,返回cLASS_NAME
///
/// 字符串
///
public static string GetFLName(string name)
{
return name.Substring(0, 1).ToLower() + name.Substring(1, name.Length - 1);
}
#endregion
#region 方法 -> 设置时间参数默认值
///
/// 设置时间参数默认值
///
/// 字符串
/// 时间参数默认值
/// 时间参数格式
/// 是否是时间段选择
public static void SetDateInitialValue(StringBuilder stringBuilder, string DefaultDateValueType, string DateFormat, bool IsDateRange)
{
switch (DefaultDateValueType)
{
case "1": //默认显示最近一天
stringBuilder.AppendLine(GetTabChar(3) + "initialValue: " + (!IsDateRange ?
"moment().add(-1, 'day').format('" + DateFormat + "')" : "[moment().add(-1, 'day').format('" +
DateFormat + "'), moment().add(-1, 'day').format('" + DateFormat + "')],"));
break;
case "2": //默认显示最近一周
stringBuilder.AppendLine(GetTabChar(3) + "initialValue: " + (!IsDateRange ?
"moment().add(-1, 'week').format('" + DateFormat + "')" : "[moment().add(-1, 'week').format('" +
DateFormat + "'), moment().add(-1, 'day').format('" + DateFormat + "')],"));
break;
case "3": //默认显示最近一月
stringBuilder.AppendLine(GetTabChar(3) + "initialValue: " + (!IsDateRange ?
"moment().add(-1, 'month').format('" + DateFormat + "')" : "[moment().add(-1, 'month').format('" +
DateFormat + "'), moment().add(-1, 'day').format('" + DateFormat + "')],"));
break;
case "4": //默认显示最近三月
stringBuilder.AppendLine(GetTabChar(3) + "initialValue: " + (!IsDateRange ?
"moment().add(-3, 'month').format('" + DateFormat + "')" : "[moment().add(-3, 'month').format('" +
DateFormat + "'), moment().add(-1, 'day').format('" + DateFormat + "')],"));
break;
case "5": //默认显示最近半年
stringBuilder.AppendLine(GetTabChar(3) + "initialValue: " + (!IsDateRange ?
"moment().add(-6, 'month').format('" + DateFormat + "')" : "[moment().add(-6, 'month').format('" +
DateFormat + "'), moment().add(-1, 'day').format('" + DateFormat + "')],"));
break;
case "6": //默认显示最近一年
stringBuilder.AppendLine(GetTabChar(3) + "initialValue: " + (!IsDateRange ?
"moment().add(-1, 'year').format('" + DateFormat + "')" : "[moment().add(-1, 'year').format('" +
DateFormat + "'), moment().add(-1, 'day').format('" + DateFormat + "')],"));
break;
}
}
#endregion
#region 方法 -> 设置字段默认排序
///
/// 设置字段默认排序
///
/// 生成代码的字符串
/// 排序方式
/// 代码缩进格数
public static void SetFieldSort(StringBuilder stringBuilder, string OrderByType, int StartIndex = 3)
{
switch (OrderByType)
{
case "1"://增加排序效果,但不设置默认排序
stringBuilder.AppendLine(GetTabChar(StartIndex) + "sorter: true,");
break;
case "2"://增加排序效果,默认按正序显示
stringBuilder.AppendLine(GetTabChar(StartIndex) + "sorter: true,");
stringBuilder.AppendLine(GetTabChar(StartIndex) + "defaultSortOrder: 'ascend',");
break;
case "3"://增加排序效果,默认按倒序显示
stringBuilder.AppendLine(GetTabChar(StartIndex) + "sorter: true,");
stringBuilder.AppendLine(GetTabChar(StartIndex) + "defaultSortOrder: 'descend',");
break;
}
}
#endregion
}
}