CommonHelper.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. 
  2. using System;
  3. namespace DocTools.Helper
  4. {
  5. /// <summary>
  6. /// 通用帮助类
  7. /// </summary>
  8. public class CommonHelper
  9. {
  10. /// <summary>
  11. /// 根据输入的字符串判断类型
  12. /// </summary>
  13. /// <returns></returns>
  14. public static string GetJsonDataTypeByString(string typeStr)
  15. {
  16. var enumStr = "";
  17. string result;
  18. if (typeStr.Contains("AccountString") || typeStr.Contains("BaseParamsString") || typeStr.Contains("BaseString") || typeStr.Contains("EmailString")
  19. || typeStr.Contains("PasswordString") || typeStr.Contains("PhoneString") || typeStr.Contains("UrlString") || typeStr.Contains("VerificationCode"))
  20. {
  21. typeStr = "System.String";
  22. }
  23. else if (typeStr.Contains("WingInterfaceLibrary") && typeStr.Contains("`1"))
  24. {
  25. typeStr = "Object";
  26. }
  27. else if (typeStr.Contains("`1"))
  28. {
  29. typeStr = "`1";
  30. }
  31. else if (typeStr.Contains("[]") && typeStr != "Byte[]")
  32. {
  33. typeStr = "[]";
  34. }
  35. else if (typeStr.Contains("Enum"))
  36. {
  37. enumStr = typeStr;
  38. typeStr = "Enum";
  39. }
  40. switch (typeStr)
  41. {
  42. case "Enum":
  43. result = enumStr;
  44. break;
  45. case "Int32":
  46. case "System.Int32":
  47. result = "Integer";
  48. break;
  49. case "Dictionary`2":
  50. result = "Object";
  51. break;
  52. case "Stream":
  53. case "Byte[]":
  54. result = "File";
  55. break;
  56. case "`1":
  57. case "[]":
  58. result = "Array";
  59. break;
  60. case "String":
  61. case "System.String":
  62. result = "String";
  63. break;
  64. case "Decimal":
  65. case "Long":
  66. case "Int16":
  67. case "Int64":
  68. case "System.Decimal":
  69. case "System.Int16":
  70. case "System.Long":
  71. case "System.Int64":
  72. result = "Number";
  73. break;
  74. case "Float":
  75. case "System.Float":
  76. result = "Float";
  77. break;
  78. case "Double":
  79. case "System.Double":
  80. result = "Double";
  81. break;
  82. case "DateTime":
  83. case "System.DateTime":
  84. result = "DateTime";
  85. break;
  86. case "Boolean":
  87. case "System.Boolean":
  88. result = "Boolean";
  89. break;
  90. default:
  91. result = "Object";
  92. break;
  93. }
  94. return result;
  95. }
  96. /// <summary>
  97. /// 计算字符串中子串出现的次数
  98. /// </summary>
  99. /// <param name="str">字符串</param>
  100. /// <param name="substring">子串</param>
  101. /// <returns>出现的次数</returns>
  102. public static int SubstringCount(string str, string substring)
  103. {
  104. if (str.Contains(substring))
  105. {
  106. string strReplaced = str.Replace(substring, "");
  107. return (str.Length - strReplaced.Length) / substring.Length;
  108. }
  109. return 0;
  110. }
  111. /// <summary>
  112. /// 当前时间转long时间戳
  113. /// </summary>
  114. /// <returns></returns>
  115. public static long DateTimeToUnixTime()
  116. {
  117. return (long)(DateTime.Now - TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 0, 0, 0), TimeZoneInfo.Local)).TotalMilliseconds;
  118. }
  119. /// <summary>
  120. /// 获取特殊的目标值
  121. /// </summary>
  122. /// <returns></returns>
  123. public static long GetSpecicalTargetIndex()
  124. {
  125. System.Threading.Thread.Sleep(1);
  126. long value = 1;
  127. for (int i = 0; i < 5; i++)
  128. {
  129. Random r = new Random();
  130. value = value * r.Next(10, 20);
  131. }
  132. long val = DateTimeToUnixTime() + value;
  133. return val;
  134. }
  135. }
  136. }