using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Reflection; using System.Text; using System.Text.RegularExpressions; using System.Web.Mvc; using System.Web.Script.Serialization; namespace WX.CRM.Common { public class OperationUtil { public static string GetCodeByEid(int eid) { //string v = System.DateTime.Now.ToString("ddHHmm"); //int y = Convert.ToInt16(System.DateTime.Now.ToString("dd")); //int x = (y + eid) % 9; //long lv = Convert.ToInt64(string.Format("{0}{1}{2}", v, eid.ToString("0000"), x)); //return Conver10To64(lv); //================================================================== System.DateTime cdt = System.DateTime.Now; int MM = cdt.Minute + cdt.Day; int HH = cdt.Hour + (eid + MM) % 9; string LVStr = string.Format("{0}{1}{2}", eid.ToString("0000"), HH.ToString("00"), MM.ToString("00")); return LVStr; } /// /// 远程邀请码 /// /// /// /// public static string encyptCodeByEid(int eid) { string deptCode = ConfigurationManager.AppSettings["InviteDeptCode"]; DateTime curDate = System.DateTime.Now; System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding(); string BM = string.Format("{0}", (int)asciiEncoding.GetBytes(deptCode)[0]); int nHH = curDate.Hour + Convert.ToInt32(curDate.Year.ToString().Substring(2, 2)); int nMM = curDate.Minute + curDate.Day; string nLVStr = string.Format("{0}{1}{2}{3}", eid.ToString("000000"), nHH.ToString("00"), nMM.ToString("00"), BM); Int64 _nLVStr = Convert.ToInt64(nLVStr); string nstr_binary = Convert.ToString(_nLVStr, 2); //除最高位,其余各位取反 char[] t = nstr_binary.ToArray(); for (int i = 1; i < t.Length; i++) { t[i] = t[i] == '1' ? '0' : '1'; } string n_binstr = string.Join("", t); Int64 n_encypt64 = Convert.ToInt64(n_binstr, 2); return n_encypt64.ToString(); //返回十进制字符串 } public static decimal[] ConvertToDecimal(string[] source) { decimal[] res = new decimal[source.Length]; for (int i = 0; i < source.Length; i++) { res[i] = Convert.ToDecimal(source[i]); } return res; } /// /// 相同成员的list数据集合转换 /// /// /// /// /// public static List ConvertToList(List resource) where T : class, new() { Type _Ttype = typeof(T); var list = new List(); if (resource.Count == 0) return list; PropertyInfo[] propertyInfo = resource[0].GetType().GetProperties(); foreach (var iterm in resource) { T temp = new T(); foreach (PropertyInfo column in propertyInfo) { _Ttype.GetProperty(column.Name).SetValue(temp, column.GetValue(iterm)); } list.Add(temp); } return list; } /// /// 相同成员的类之间转换 /// /// /// /// public static T CopySameFieldsObject(Object source) { Type _SrcT = source.GetType(); Type _DestT = typeof(T); // 构造一个要转换对象实例 Object _Instance = _DestT.InvokeMember("", BindingFlags.CreateInstance, null, null, null); // 这里指定搜索所有公开和非公开的字段 FieldInfo[] _SrcFields = _SrcT.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); // 将源头对象的每个字段的值分别赋值到转换对象里,因为假定字段都一样,这里就不做容错处理了 foreach (FieldInfo field in _SrcFields) { _DestT.GetField(field.Name, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).SetValue(_Instance, field.GetValue(source)); } return (T)_Instance; } /// /// 过滤字符串只留下数字 /// /// public static string GetIntStr(string str) { StringBuilder sb = new StringBuilder(); bool isFirst = true; foreach (char var in str.Trim().ToCharArray()) { bool flag = Char.IsNumber(var); if (flag == false)// 发现不是数字 跳出 { if (isFirst) continue; else break; } else isFirst = false;//第一次发现数字 sb.Append(flag ? var.ToString() : string.Empty); } string value = sb.ToString(); return value; } /// /// 获取字符串中的数字 /// /// 字符串 /// 数字 public static decimal GetNumber(string str) { decimal result = 0; if (str != null && str != string.Empty) { // 正则表达式剔除非数字字符(不包含小数点.) str = Regex.Replace(str, @"[^\d.\d]", ""); // 如果是数字,则转换为decimal类型 if (str.Trim() != "" && Regex.IsMatch(str, @"^[+-]?\d*[.]?\d*$")) { result = decimal.Parse(str); } } return result; } #region 枚举 public static IList GetItemFromEnum() { IList list = new List(); SelectListItem item; string[] names = Enum.GetNames(typeof(T)); int x = 0; foreach (int i in Enum.GetValues(typeof(T))) { item = new SelectListItem(); item.Text = names[x]; item.Value = i.ToString(); list.Add(item); x++; } return list; } public static Dictionary GetDicFromEnum() { Dictionary dic = new Dictionary(); string[] names = Enum.GetNames(typeof(T)); int x = 0; foreach (int i in Enum.GetValues(typeof(T))) { dic.Add(i, names[x]); x++; } return dic; } public static string GetEnumName(int i) { string name = null; string[] names = Enum.GetNames(typeof(T)); if (i < names.Length) { name = names[i]; } return name; } #endregion /// /// 时间转换 /// /// /// public static DateTime? GetDateTime(string data) { DateTime dt; if (!string.IsNullOrWhiteSpace(data) && DateTime.TryParse(data, out dt)) return dt; else return null; } public static T JsonDivertToObj(string json) { JavaScriptSerializer script = new JavaScriptSerializer(); T dic = script.Deserialize(json); return dic; } public static string ObjDivertToJson(object obj) { JavaScriptSerializer script = new JavaScriptSerializer(); string json = script.Serialize(obj); return json; } } }