|
|
using Microsoft.Extensions.FileSystemGlobbing.Internal;using Microsoft.Extensions.FileSystemGlobbing;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Volo.Abp;using Shentun.Peis.Models;using TencentCloud.Bda.V20200324.Models;using Shentun.Peis.Enums;
namespace Shentun.Peis{ public static class DataHelper { /// <summary>
/// 验证是否为空或者空字符串
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static bool IsNullOrEmpty(string obj) { bool msg = false; if (string.IsNullOrEmpty(obj)) { msg = true; } else { if (obj.Trim() == "") { msg = true; } }
return msg; }
/// <summary>
/// 验证十进制颜色代码是否合规
/// </summary>
/// <param name="str"></param>
/// <returns>格式不正确返回为false</returns>
public static bool IsColorNumber(int str) { //0~16777215
if (str > 16777215 || str < 0) return false; else return true;
}
/// <summary>
/// 转换guid
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static Guid ConvertGuid(Guid? id) { if (id == null) { return Guid.Empty; } else { return id.Value; } }
/// <summary>将大驼峰命名转为蛇形命名</summary>
public static string RenameSnakeCase(string str) { var builder = new StringBuilder(); var name = str; var previousUpper = false;
for (var i = 0; i < name.Length; i++) { var c = name[i]; if (char.IsUpper(c)) { if (i > 0 && !previousUpper) { builder.Append("_"); } builder.Append(char.ToLowerInvariant(c)); previousUpper = true; } else { builder.Append(c); previousUpper = false; } } return builder.ToString(); }
public static string RenameSnakeCase2(string str) { return str; }
/// <summary>
/// 转换人民币大小金额
/// </summary>
/// <param name="num">金额</param>
/// <returns>返回大写形式</returns>
public static string CmycurD(decimal num) { string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字
string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字
string str3 = ""; //从原num值中取出的值
string str4 = ""; //数字的字符串形式
string str5 = ""; //人民币大写金额形式
int i; //循环变量
int j; //num的值乘以100的字符串长度
string ch1 = ""; //数字的汉语读法
string ch2 = ""; //数字位的汉字读法
int nzero = 0; //用来计算连续的零值是几个
int temp; //从原num值中取出的值
num = Math.Round(Math.Abs(num), 2); //将num取绝对值并四舍五入取2位小数
str4 = ((long)(num * 100)).ToString(); //将num乘100并转换成字符串形式
j = str4.Length; //找出最高位
if (j > 15) { return "溢出"; } str2 = str2.Substring(15 - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分
//循环取出每一位需要转换的值
for (i = 0; i < j; i++) { str3 = str4.Substring(i, 1); //取出需转换的某一位的值
temp = Convert.ToInt32(str3); //转换为数字
if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15)) { //当所取位数不为元、万、亿、万亿上的数字时
if (str3 == "0") { ch1 = ""; ch2 = ""; nzero = nzero + 1; } else { if (str3 != "0" && nzero != 0) { ch1 = "零" + str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { ch1 = str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } } } else { //该位是万亿,亿,万,元位等关键位
if (str3 != "0" && nzero != 0) { ch1 = "零" + str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { if (str3 != "0" && nzero == 0) { ch1 = str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { if (str3 == "0" && nzero >= 3) { ch1 = ""; ch2 = ""; nzero = nzero + 1; } else { if (j >= 11) { ch1 = ""; nzero = nzero + 1; } else { ch1 = ""; ch2 = str2.Substring(i, 1); nzero = nzero + 1; } } } } } if (i == (j - 11) || i == (j - 3)) { //如果该位是亿位或元位,则必须写上
ch2 = str2.Substring(i, 1); } str5 = str5 + ch1 + ch2;
if (i == j - 1 && str3 == "0") { //最后一位(分)为0时,加上“整”
str5 = str5 + '整'; } } if (num == 0) { str5 = "零元整"; } return str5; }
/// <summary>
/// 解析身份证信息
/// </summary>
/// <param name="IdNo">身份证号码</param>
/// <returns></returns>
public static AutoCardInfo AutoIDCard(string IdNo) { if (!string.IsNullOrEmpty(IdNo) && (IdNo.Trim().Length == 15 || IdNo.Trim().Length == 18)) {
AutoCardInfo msg = new AutoCardInfo();
string birthday = ""; string sex = "";
string identityCard = IdNo.Trim(); if (identityCard.Length == 18) { birthday = identityCard.Substring(6, 4) + "-" + identityCard.Substring(10, 2) + "-" + identityCard.Substring(12, 2); sex = identityCard.Substring(14, 3);
} else if (identityCard.Length == 15) { birthday = "19" + identityCard.Substring(6, 2) + "-" + identityCard.Substring(8, 2) + "-" + identityCard.Substring(10, 2); sex = identityCard.Substring(12, 3); }
try { DateTime cvdate = Convert.ToDateTime(birthday); if (cvdate > DateTime.Now || cvdate < new DateTime(1900, 1, 1)) { return null; }
if (int.Parse(sex) % 2 == 0) { msg.SexId = 'F'; }
else { msg.SexId = 'M'; } } catch { return null; }
short age = 0; DateTime dt = Convert.ToDateTime(birthday); age = (short)(DateTime.Now.Year - dt.Year); if (DateTime.Now.Month < dt.Month || (DateTime.Now.Month == dt.Month && DateTime.Now.Day < dt.Day)) { age--; }
msg.BirthDate = birthday; msg.IdNo = IdNo; msg.Age = age;
return msg; } else { return null; } }
/// <summary>
/// 出生日期转换年龄
/// </summary>
/// <param name="birthday">出生日期</param>
/// <returns></returns>
public static short? AutoAgeInBirthday(string birthday) { if (!string.IsNullOrEmpty(birthday)) { short age;
try { DateTime cvdate = Convert.ToDateTime(birthday); if (cvdate > DateTime.Now || cvdate < new DateTime(1900, 1, 1)) { return null; } } catch { return null; }
DateTime dt = Convert.ToDateTime(birthday); age = (short)(DateTime.Now.Year - dt.Year); if (DateTime.Now.Month < dt.Month || (DateTime.Now.Month == dt.Month && DateTime.Now.Day < dt.Day)) { age--; }
return age; } else { return null; } }
/// <summary>
/// 年龄转换出生日期
/// </summary>
/// <param name="age">年龄</param>
/// <returns></returns>
public static string AutoBirthdayInAge(short age) { string birthday;
DateTime now = DateTime.Now; birthday = now.AddYears(0 - age).ToString("yyyy-MM-dd");
return birthday;
} /// <summary>
/// 保留小数 转换decimal
/// </summary>
/// <param name="value"></param>
/// <param name="decimalLength"></param>
/// <returns></returns>
public static decimal DecimalRetainDecimals(decimal? value, int decimalLength) { decimal newValue = 0; if (value != null) { Math.Round(value.Value, decimalLength); } return newValue; }
#region 数据检查
/// <summary>
/// 数据检查 对象
/// </summary>
/// <param name="value">需要验证的对象</param>
/// <param name="parameterName">字段名称</param>
/// <param name="ExceptionMessage">异常提示后缀</param>
/// <exception cref="ArgumentException"></exception>
public static void CheckEntityIsNull(object value, string parameterName = "对象", string ExceptionMessage = "不能为空") { if (value == null) { throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); } }
/// <summary>
/// 数据检查 字符串
/// </summary>
/// <param name="value">需要验证的值</param>
/// <param name="parameterName">字段名称</param>
/// <param name="ExceptionMessage">异常提示后缀</param>
/// <exception cref="ArgumentException"></exception>
public static void CheckStringIsNull(string value, string parameterName, string ExceptionMessage = "不能为空") { if (string.IsNullOrWhiteSpace(value)) { throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); } }
#region 验证char类型参数
/// <summary>
/// 验证char类型参数是否为null
/// </summary>
/// <param name="value">需要验证的值</param>
/// <param name="parameterName">字段名称</param>
/// <param name="ExceptionMessage">异常提示后缀</param>
/// <exception cref="ArgumentException"></exception>
public static void CheckCharIsNull(char? value, string parameterName, string ExceptionMessage = "不能为空") { if (value == null) { throw new ArgumentException($"{parameterName}{ExceptionMessage}"); }
}
/// <summary>
/// 验证char类型参数是否为0
/// </summary>
/// <param name="value">需要验证的值</param>
/// <param name="parameterName">字段名称</param>
/// <param name="ExceptionMessage">异常提示后缀</param>
/// <exception cref="ArgumentException"></exception>
public static void CheckCharIsZero(char value, string parameterName, string ExceptionMessage = "不能为0") { if (value == '0') { throw new ArgumentException($"{parameterName}{ExceptionMessage}"); } }
/// <summary>
/// 验证char类型参数是否为Y、N
/// </summary>
/// <param name="value">需要验证的值</param>
/// <param name="parameterName">字段名称</param>
/// <exception cref="ArgumentException"></exception>
public static void CheckCharIsYOrN(char value, string parameterName) { if (value != 'Y' && value != 'N') { throw new ArgumentException($"{parameterName}参数为:{value},是无效值,只能为Y跟N"); } } #endregion
/// <summary>
/// 验证Int类型数据是否>0
/// </summary>
/// <param name="value">需要验证的值</param>
/// <param name="parameterName">字段名称</param>
/// <param name="ExceptionMessage">异常提示后缀</param>
/// <exception cref="ArgumentException"></exception>
public static void CheckIntIsGeaterThanZero(int value, string parameterName, string ExceptionMessage = "只能为大于0的值") { if (value <= 0) { throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); } }
/// <summary>
/// 验证Guid数据是否为null
/// </summary>
/// <param name="value">需要验证的值</param>
/// <param name="parameterName">字段名称</param>
/// <param name="ExceptionMessage">异常提示后缀</param>
/// <exception cref="ArgumentException"></exception>
public static void CheckGuidIsNull(Guid? value, string parameterName, string ExceptionMessage = "不能为空") { if (value == null) { throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); } }
/// <summary>
/// 验证Guid数据是否为默认值00000000-0000-0000-0000-000000000000
/// </summary>
/// <param name="value">需要验证的值</param>
/// <param name="parameterName">字段名称</param>
/// <param name="ExceptionMessage">异常提示后缀</param>
/// <exception cref="ArgumentException"></exception>
public static void CheckGuidIsDefaultValue(Guid value, string parameterName, string ExceptionMessage = "不能为默认值00000000-0000-0000-0000-000000000000") { if (value == Guid.Empty || value == default(Guid)) { throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); } }
/// <summary>
///验证decimal类型数据大于0
/// </summary>
/// <param name="value">需要验证的值</param>
/// <param name="parameterName">字段名称</param>
/// <param name="ExceptionMessage">异常提示后缀</param>
/// <exception cref="ArgumentException"></exception>
public static void CheckDecimalIsGeaterThanZero(decimal value, string parameterName, string ExceptionMessage = "值只能大于0") { if (value <= 0) { throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); } }
/// <summary>
/// 数据检查 decimal
/// </summary>
/// <param name="value">需要验证的值</param>
/// <param name="parameterName">字段名称</param>
/// <param name="ExceptionMessage">异常提示后缀</param>
/// <exception cref="ArgumentException"></exception>
public static void CheckDecimalIsNull(decimal? value, string parameterName, string ExceptionMessage = "不能为空") { if (value == null) { throw new UserFriendlyException($"{parameterName}{ExceptionMessage}"); } }
public static void CheckSex(char value) { if (value != SexFlag.Male && value != SexFlag.Female && value != SexFlag.UnKnown) { throw new ArgumentException($"性别参数不正确"); } }
public static void CheckForSex(char value) { if (value != ForSexFlag.Male && value != ForSexFlag.Female && value != ForSexFlag.All) { throw new UserFriendlyException($"性别参数不正确"); } }
public static void CheckMaritalStatus(char value) { if (value != MaritalStatusFlag.UnMarried && value != MaritalStatusFlag.Married && value != MaritalStatusFlag.Divorce && value != MaritalStatusFlag.Widowed && value != MaritalStatusFlag.DivorceOrWidowed && value != MaritalStatusFlag.UnKnown) { throw new UserFriendlyException($"婚姻状况参数不正确"); } }
public static void CheckForMaritalStatus(char value) { if (value != MaritalStatusFlag.UnMarried && value != MaritalStatusFlag.Married && value != MaritalStatusFlag.All) { throw new UserFriendlyException($"婚姻状况参数不正确"); } }
#endregion
}}
|