Files
g.hnyhua.cn/Mtxfw.Utility/Common.cs
2026-02-07 15:48:27 +08:00

4508 lines
169 KiB
C#
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Collections;
using System.Data;
using System.Net;
using System.Net.Security;
using System.Web.Mail;
using System.Configuration;
using System.Globalization;
using Wuqi.Webdiyer;
using System.Web;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using Excel = Microsoft.Office.Interop.Excel;
using System.Text.RegularExpressions;
using System.Management;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Xml;
using System.Web.Script.Serialization;
using System.Threading.Tasks;
using Shell32;
using TencentCloud.Common;
using TencentCloud.Common.Profile;
using TencentCloud.Sms.V20190711;
using TencentCloud.Sms.V20190711.Models;
using NPinyin;
using Microsoft.International.Converters.PinYinConverter;
namespace Mtxfw.Utility
{
public class Common
{
#region
private static Encoding gb2312 = Encoding.GetEncoding("utf-8");
/// <summary>
/// 汉字转全拼
/// </summary>
/// <param name="strChinese"></param>
/// <returns></returns>
public static string ConvertToAllSpell(string strChinese)
{
try
{
if (strChinese.Length != 0)
{
StringBuilder fullSpell = new StringBuilder();
for (int i = 0; i < strChinese.Length; i++)
{
var chr = strChinese[i];
fullSpell.Append(GetSpell(chr));
}
return fullSpell.ToString().ToUpper();
}
}
catch (Exception e)
{
Console.WriteLine("全拼转化出错!" + e.Message);
}
return string.Empty;
}
/// <summary>
/// 汉字转首字母
/// </summary>
/// <param name="strChinese"></param>
/// <returns></returns>
public static string GetFirstSpell(string strChinese)
{
//NPinyin.Pinyin.GetInitials(strChinese) 有Bug 洺无法识别
//return NPinyin.Pinyin.GetInitials(strChinese);
string strfullSpell = "";
try
{
if (strChinese.Length != 0)
{
StringBuilder fullSpell = new StringBuilder();
var chr = strChinese[0];
fullSpell.Append(GetSpell(chr)[0]);
strfullSpell = fullSpell.ToString().ToUpper();
}
}
catch (Exception e)
{
strfullSpell = "首";
Console.WriteLine("首字母转化出错!" + e.Message);
}
return strfullSpell;
}
private static string GetSpell(char chr)
{
var coverchr = NPinyin.Pinyin.GetPinyin(chr);
bool isChineses = ChineseChar.IsValidChar(coverchr[0]);
if (isChineses)
{
ChineseChar chineseChar = new ChineseChar(coverchr[0]);
foreach (string value in chineseChar.Pinyins)
{
if (!string.IsNullOrEmpty(value))
{
return value.Remove(value.Length - 1, 1);
}
}
}
return coverchr;
}
#endregion
#region
/// <summary>
/// 转换输出聊天内容
/// </summary>
/// <param name="data">需要输出内容</param>
public static string ccontent(int t, string content, emojiconsConfig econfig)
{
if (t == 1)
{
string html = "<audio id=\"bg-music\" controls=\"controls\" src=\"" + content + "\"></audio>";//<embed autoplay=\"false\" autostart=\"false\" src=\"" + content + "\" width=\"200\" height=\"45\" />
return html;
}
else if (t == 2)
{
string html = "<a href=\"" + content + "\" target=\"_blank\"><img src=\"" + content + "\" width=\"100\" /></a>";
return html;
}
else if (t == 3)
{
string html = "<video width=\"100%\" height=\"100%\" style=\"background-color: #000000;\" controls=\"\" autoplay=\"autoplay\">";
html += "<source src=\"" + content + "\" type=\"video/ogg\"/>";
html += "<source src=\"" + content + "\" type=\"video/mp4\"/><embed src=\"http://www.chinafuyida.com/swf/player.swf?vcastr_title=&IsAutoPlay=true&Autostart=false&vcastr_file=" + content + "\" type=\"application/x-shockwave-flash\" width=\"100%\" height=\"100%\" allowscriptaccess=\"always\" allowfullscreen=\"true\"/>";
html += "</video>";
return html;
}
else if (t == 4)
{
string html = "<video width=\"100%\" height=\"100%\" style=\"background-color: #000000;\" controls=\"\" autoplay=\"autoplay\">";
html += "<source src=\"" + content + "\" type=\"video/ogg\"/>";
html += "<source src=\"" + content + "\" type=\"video/mp4\"/><embed src=\"http://www.chinafuyida.com/swf/player.swf?vcastr_title=&IsAutoPlay=true&Autostart=false&vcastr_file=" + content + "\" type=\"application/x-shockwave-flash\" width=\"100%\" height=\"100%\" allowscriptaccess=\"always\" allowfullscreen=\"true\"/>";
html += "</video>";
return html;
}
else
{
string pattern2 = @"\[(.*?)\]";
Regex R2 = new Regex(pattern2);
Match M2 = R2.Match(content);
while (M2.Success)
{
string group = M2.Groups[1].ToString();
string gdata = econfig.getData("[" + group + "]");
if (group != "" && gdata != "")
{
content = content.Replace("[" + group + "]", "<img src=\"/images/emojicons/" + gdata + "\" style=\"width:20px;\" />");
}
M2 = M2.NextMatch();
}
return content;
}
}
#endregion
#region ShellClass获取音频文件时长
/// <summary>
/// 如果添加引用编译提示"不能引用嵌入式接口之类的错误",把引用属性里的嵌入式***,设为false;
/// asp.net 环境下测试未通过,c#未测试;
/// </summary>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
public static int GetDurationByShellClass(string filePath)
{
ShellClass sh = new ShellClass();
Folder dir = sh.NameSpace(Path.GetDirectoryName(filePath));
FolderItem item = dir.ParseName(Path.GetFileName(filePath));
string str = dir.GetDetailsOf(item, 27); // 获取歌曲时长。
if (str != "")
{
var matchs = Regex.Match(str, @"(\d{2}):(\d{2}):(\d{2})");
var hour = Convert.ToInt32(matchs.Groups[1].Value);
var minute = Convert.ToInt32(matchs.Groups[2].Value);
var second = Convert.ToInt32(matchs.Groups[3].Value);
var len = hour * 3600 + minute * 60 + second;
return len;
}
else
{
return 0;
}
return 0;
}
#endregion
#region
/// <summary>
/// 转换输出手机号码
/// </summary>
/// <param name="data">需要输出内容</param>
public static string cphone(string phone)
{
if (phone.Length == 11)
{
return phone.Substring(0, 3) + "****" + phone.Substring(7, 4);
}
else
{
return phone;
}
}
#endregion
#region
/// <summary>
/// 转换输出中奖号码
/// </summary>
/// <param name="data">转换输出中奖号码</param>
public static string czjhm(string zjhm)
{
if (zjhm == "1")
{
return "一";
}
else if (zjhm == "2")
{
return "二";
}
else if (zjhm == "3")
{
return "三";
}
else if (zjhm == "4")
{
return "四";
}
else if (zjhm == "5")
{
return "五";
}
else
{
return "五";
}
}
#endregion
#region
/// <summary>
/// 转换输出购买类型
/// </summary>
/// <param name="data">转换输出购买类型</param>
public static string cutype(string utype)
{
switch (utype)
{
case "0":
utype = "生活区";
break;
case "1":
utype = "流量包";
break;
case "2":
utype = "生态区";
break;
case "3":
utype = "";
break;
case "4":
utype = "创客区";
break;
case "5":
utype = "流量区";
break;
case "8":
utype = "事业联盟";
break;
}
return utype;
}
#endregion
#region
/// <summary>
/// Json打印输出
/// </summary>
/// <param name="context">HttpContext</param>
/// <param name="data">需要输出内容</param>
public static void WriteJson(HttpContext context, string data)
{
context.Response.Clear();
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.ContentType = "application/json";
context.Response.Write(data);
try
{
context.Response.Flush();
}
catch
{
}
finally
{
context.ApplicationInstance.CompleteRequest();
}
}
#endregion
#region
/// <summary>
/// 获取某一日期是该年中的第几周
/// </summary>
/// <param name="dt"> 日期 </param>
/// <returns> 该日期在该年中的周数 </returns>
public static int GetWeekOfYear(DateTime dt)
{
GregorianCalendar gc = new GregorianCalendar();
return gc.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
}
#endregion
#region DateTime
public static DateTime GetWeekStart(DateTime datePoint)//函数作用是接受某一天,然后返回该日期所处星期的第一天
{
//新建要返回的变量
DateTime result = new DateTime();
//其实到此为止。。就已经判断完所处本周中哪一天了。 C#自带了这个方法只不过DayOfWeek不是一个基本类型需要用string取出来。
//转换为我们可以判断操作的string类型
DayOfWeek day = datePoint.DayOfWeek;
string dayString = day.ToString().ToLower();
//switch判断
switch (dayString)
{
case "sunday":
result = datePoint.Date;
break;
case "monday":
//若就是星期一,那本周开头一天就是这个传进来的变量
result = datePoint.Date.AddDays(-1);
break;
case "tuesday":
//以此类推
result = datePoint.Date.AddDays(-2);
break;
case "wednesday":
result = datePoint.Date.AddDays(-3);
break;
case "thursday":
result = datePoint.Date.AddDays(-4);
break;
case "friday":
result = datePoint.Date.AddDays(-5);
break;
case "saturday":
result = datePoint.Date.AddDays(-6);
break;
}
//switch
return result;
}
#endregion
#region DateTime
public static DateTime GetWeekEnd(DateTime datePoint)//函数作用是接受某一天,然后返回该日期所处星期的最后一天
{
//新建要返回的变量
DateTime result = new DateTime();
//其实到此为止。。就已经判断完所处本周中哪一天了。 C#自带了这个方法只不过DayOfWeek不是一个基本类型需要用string取出来。
//转换为我们可以判断操作的string类型
DayOfWeek day = datePoint.DayOfWeek;
string dayString = day.ToString().ToLower();
//switch判断
switch (dayString)
{
case "sunday":
result = datePoint.Date.AddDays(6);
break;
case "monday":
//若就是星期一,那本周开头一天就是这个传进来的变量
result = datePoint.Date.AddDays(5);
break;
case "tuesday":
//以此类推
result = datePoint.Date.AddDays(4);
break;
case "wednesday":
result = datePoint.Date.AddDays(3);
break;
case "thursday":
result = datePoint.Date.AddDays(2);
break;
case "friday":
result = datePoint.Date.AddDays(1);
break;
case "saturday":
result = datePoint.Date;
break;
}
//switch
return result;
}
#endregion
#region DateTime
public static DateTime GetMonthEnd(DateTime datePoint)//函数作用是接受某一天,然后返回该日期所处星期的最后一天
{
DateTime s = DateTime.Parse(datePoint.ToString("yyyy-MM-dd") + " 23:59:59");
DateTime ss = s.AddDays(1 - s.Day);
DateTime result = ss.AddMonths(1).AddDays(-1);
return result;
}
#endregion
#region
/// <summary>
/// 判断上传的文件类型是否是允许的
/// </summary>
public static bool hasType(string[] array, string type)
{
bool isType = false;
foreach (string str in array)
{
if (type.IndexOf(str) != -1)
{
isType = true;
//如果上传的文件类型是允许的则跳出循环
break;
}
}
return isType;
}
#endregion
#region access_token
public static string getaccess_token(HttpContext context, string appKey, string appSecret, Mtxfw.Utility.Config config)
{
string straccess_token = "";
if (config.webaccess_token == "" || config.webaccess_token_time == "")
{
string str = Mtxfw.Utility.Common.getPage2("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appKey + "&secret=" + appSecret, "", "utf-8");
str = str.Replace("\n", "").Replace("\040", "").Replace("{\"access_token\":\"", "");
str = str.Replace("\",\"expires_in\":7199}", "");
str = str.Replace("\",\"expires_in\":7200}", "");
straccess_token = str;
config.webaccess_token = str;
config.webaccess_token_time = DateTime.Now.ToString();
config.Save();
}
else
{
try
{
bool b = true;
DateTime dt = Convert.ToDateTime(config.webaccess_token_time);
DateTime dt1 = DateTime.Now;
DateTime dt2 = dt.AddSeconds(7000);
if (DateTime.Compare(dt2, dt1) < 0)
{
b = false;
}
if (b)
{
straccess_token = config.webaccess_token;
}
else
{
string str = Mtxfw.Utility.Common.getPage2("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appKey + "&secret=" + appSecret, "", "utf-8");
str = str.Replace("\n", "").Replace("\040", "").Replace("{\"access_token\":\"", "");
str = str.Replace("\",\"expires_in\":7199}", "");
str = str.Replace("\",\"expires_in\":7200}", "");
straccess_token = str;
config.webaccess_token = str;
config.webaccess_token_time = DateTime.Now.ToString();
config.Save();
}
}
catch
{
string str = Mtxfw.Utility.Common.getPage2("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appKey + "&secret=" + appSecret, "", "utf-8");
str = str.Replace("\n", "").Replace("\040", "").Replace("{\"access_token\":\"", "");
str = str.Replace("\",\"expires_in\":7199}", "");
str = str.Replace("\",\"expires_in\":7200}", "");
straccess_token = str;
config.webaccess_token = str;
config.webaccess_token_time = DateTime.Now.ToString();
config.Save();
}
}
return straccess_token;
}
#endregion
#region jsapi_ticket
public static string getjsapi_ticket(HttpContext context, string appKey, string appSecret, Mtxfw.Utility.Config config)
{
string strticket = "";
if (config.webjsapi_ticket == "" || config.webjsapi_ticket_time == "")
{
string ticket = Mtxfw.Utility.Common.getPage2("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + getaccess_token(context, appKey, appSecret, config) + "&type=jsapi", "", "utf-8");
ticket = ticket.Replace("\n", "").Replace("\040", "");
ticket = ticket.Replace("{\"errcode\":0,\"errmsg\":\"ok\",\"ticket\":\"", "");
ticket = ticket.Replace("\",\"expires_in\":7199}", "");
ticket = ticket.Replace("\",\"expires_in\":7200}", "");
strticket = ticket;
config.webjsapi_ticket = ticket;
config.webjsapi_ticket_time = DateTime.Now.ToString();
config.Save();
}
else
{
try
{
bool b = true;
DateTime dt = Convert.ToDateTime(config.webjsapi_ticket_time);
DateTime dt1 = DateTime.Now;
DateTime dt2 = dt.AddSeconds(7000);
if (DateTime.Compare(dt2, dt1) < 0)
{
b = false;
}
if (b)
{
strticket = config.webjsapi_ticket;
}
else
{
string ticket = Mtxfw.Utility.Common.getPage2("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + getaccess_token(context, appKey, appSecret, config) + "&type=jsapi", "", "utf-8");
ticket = ticket.Replace("\n", "").Replace("\040", "");
ticket = ticket.Replace("{\"errcode\":0,\"errmsg\":\"ok\",\"ticket\":\"", "");
ticket = ticket.Replace("\",\"expires_in\":7199}", "");
ticket = ticket.Replace("\",\"expires_in\":7200}", "");
strticket = ticket;
config.webjsapi_ticket = ticket;
config.webjsapi_ticket_time = DateTime.Now.ToString();
config.Save();
}
}
catch
{
string ticket = Mtxfw.Utility.Common.getPage2("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + getaccess_token(context, appKey, appSecret, config) + "&type=jsapi", "", "utf-8");
ticket = ticket.Replace("\n", "").Replace("\040", "");
ticket = ticket.Replace("{\"errcode\":0,\"errmsg\":\"ok\",\"ticket\":\"", "");
ticket = ticket.Replace("\",\"expires_in\":7199}", "");
ticket = ticket.Replace("\",\"expires_in\":7200}", "");
strticket = ticket;
config.webjsapi_ticket = ticket;
config.webjsapi_ticket_time = DateTime.Now.ToString();
config.Save();
}
}
return strticket;
}
#endregion
#region access_token
public static WXaccess_token getxaccess_token(string appID, string appSecret)
{
WXaccess_token ac = null;
string str = Mtxfw.Utility.Common.getPage2("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appID + "&secret=" + appSecret + "", "", "utf-8");
//Mtxfw.Utility.Common.WriteHtml("/weixin/str0.txt", str);
if (str.IndexOf("access_token") != -1)
{
ac = (WXaccess_token)Fromaccess_token(str);
}
return ac;
}
public static object Fromaccess_token(string json)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Deserialize<WXaccess_token>(json);
}
#endregion
#region hjpay_returns0
public static object Fromhjpay_returnsJson0(string json)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Deserialize<hjpay_returns0>(json);
}
#endregion
#region
private static string[] strs = new string[]
{
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"
};
/// <summary>
/// 创建随机字符串
/// </summary>
/// <returns></returns>
public static string CreatenNonce_str()
{
Random r = new Random();
var sb = new StringBuilder();
var length = strs.Length;
for (int i = 0; i < 15; i++)
{
sb.Append(strs[r.Next(length - 1)]);
}
return sb.ToString();
}
/// <summary>
/// 生成指定位数的随机数
/// </summary>
/// <param name="VcodeNum">参数是随机数的位数</param>
/// <returns>返回一个随机数字符串</returns>
public static string RandNum(int VcodeNum)
{
Random random = new Random();
if (VcodeNum == 6)
{
return (random.Next(100000, 999999).ToString());
}
else
{
return (random.Next(1000, 9999).ToString());
}
}
#endregion
#region
/// <summary>
/// 创建时间戳
/// </summary>
/// <returns></returns>
public static long CreatenTimestamp(DateTime dt)
{
return (dt.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
}
public static string timeStamp()
{
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0)); // 当地时区
DateTime localNow = DateTime.Now;
long timeStamp = (long)((localNow - startTime).TotalSeconds);
return "" + timeStamp;
}
#endregion
#region
/// <summary>
/// 将时间戳转换为时间
/// </summary>
/// <returns></returns>
public static DateTime ToDateTime(long TimeStamps)
{
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0);
long tt = dt.Ticks + TimeStamps * 10000000;
return new DateTime(tt);
}
/// <summary>
/// 将时间戳转换为13位时间
/// </summary>
/// <returns></returns>
public static DateTime To13DateTime(long TimeStamps)
{
var date = new DateTime(1970, 1, 1).AddMilliseconds(TimeStamps);
//new DateTime().AddMilliseconds(621355968000000000/10000).AddMilliseconds(TimeStamps);//效果同上
return date;
}
#endregion
#region
/// <summary>
/// 签名算法 ///本代码来自开源微信SDK项目https://github.com/night-king/weixinSDK
/// </summary>
/// <param name="jsapi_ticket">jsapi_ticket</param>
/// <param name="noncestr">随机字符串(必须与wx.config中的nonceStr相同)</param>
/// <param name="timestamp">时间戳(必须与wx.config中的timestamp相同)</param>
/// <param name="url">当前网页的URL不包含#及其后面部分(必须是调用JS接口页面的完整URL)</param>
/// <returns></returns>
public static string GetSignature(string jsapi_ticket, string noncestr, string timestamp, string url, out string string1)
{
var string1Builder = new StringBuilder();
string1Builder.Append("jsapi_ticket=").Append(jsapi_ticket).Append("&")
.Append("noncestr=").Append(noncestr).Append("&")
.Append("timestamp=").Append(timestamp).Append("&")
.Append("url=").Append(url.IndexOf("#") >= 0 ? url.Substring(0, url.IndexOf("#")) : url);
string1 = string1Builder.ToString();
return Sha1(string1);
}
#endregion
#region Hash算法
public static string Sha1(string orgStr, string encode = "UTF-8")
{
var sha1 = new SHA1Managed();
var sha1bytes = System.Text.Encoding.GetEncoding(encode).GetBytes(orgStr);
byte[] resultHash = sha1.ComputeHash(sha1bytes);
string sha1String = BitConverter.ToString(resultHash).ToLower();
sha1String = sha1String.Replace("-", "");
return sha1String;
}
#endregion
#region
/// <summary>
/// 校验 Hash 是否有效
/// </summary>
/// <param name="hashStr">Hash 值</param>
/// <param name="difficulty">难度</param>
/// <returns></returns>
public static bool IsHashValid(string hashStr, int difficulty)
{
var bytes = Enumerable.Range(0, hashStr.Length)
.Where(n => n % 2 == 0)
.Select(n => Convert.ToByte(hashStr.Substring(n, 2), 16))
.ToArray();
var bits = new BitArray(bytes);
for (var i = 0; i < difficulty; i++)
{
if (bits[i]) return false;
}
return true;
}
/// <summary>
/// 计算区块 HASH 值
/// </summary>
/// <param name="block">区块实例</param>
/// <returns>计算完成的区块散列值</returns>
public static string CalculateHash(Block block)
{
string calculationStr = "{block.Index}{block.TimeStamp}{block.BPM}{block.PrevHash}{block.Nonce}";
SHA256 sha256Generator = SHA256.Create();
byte[] sha256HashBytes = sha256Generator.ComputeHash(Encoding.UTF8.GetBytes(calculationStr));
StringBuilder sha256StrBuilder = new StringBuilder();
foreach (byte @byte in sha256HashBytes)
{
sha256StrBuilder.Append(@byte.ToString("x2"));
}
return sha256StrBuilder.ToString();
}
/// <summary>
/// 计算当前时间的 UTC 表示格式
/// </summary>
/// <returns>UTC 时间字符串</returns>
public static string CalculateCurrentTimeUTC()
{
DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
DateTime nowTime = DateTime.Now;
long unixTime = (long)Math.Round((nowTime - startTime).TotalMilliseconds, MidpointRounding.AwayFromZero);
return unixTime.ToString();
}
/// <summary>
/// 生成新的区块
/// </summary>
/// <param name="oldBlock">旧的区块数据</param>
/// <param name="BPM">心率</param>
/// <param name="Difficulty">下一个区块生成难度</param>
/// <returns>新的区块</returns>
public static Block GenerateBlock(Block oldBlock, int BPM, int Difficulty)
{
Block newBlock = new Block()
{
Index = oldBlock.Index + 1,
TimeStamp = CalculateCurrentTimeUTC(),
BPM = BPM,
PrevHash = oldBlock.Hash,
Difficulty = Difficulty
};
// 挖矿 ing...
for (int i = 0; ; i++)
{
newBlock.Nonce = i.ToString("x2");
if (!IsHashValid(CalculateHash(newBlock), Difficulty))
{
Console.WriteLine("目前结果:{CalculateHash(newBlock)} ,正在计算中...");
System.Threading.Thread.Sleep(5000);
continue;
}
else
{
Console.WriteLine("目前结果:{CalculateHash(newBlock)} ,计算完毕...");
newBlock.Hash = CalculateHash(newBlock);
break;
}
}
// 原有代码
// newBlock.Hash = CalculateHash(newBlock);
return newBlock;
}
#endregion
#region
static string[] mobileTag = { "iphone", "ios", "ipad", "android", "mobile" };
public static bool IsMobile(string userAgent)
{
bool result = false;
userAgent = userAgent.ToLower();
foreach (string sTmp in mobileTag)
{
if (userAgent.Contains(sTmp))
{
result = true;
break;
}
}
return result;
}
#endregion
#region
//计算时间差
public static int DateDiff(DateTime DateTime1, DateTime DateTime2)
{
int dateDiff = 0;
TimeSpan ts = DateTime1.Subtract(DateTime2).Duration();
dateDiff = ts.Days;
return dateDiff;
}
#endregion
#region
/// <summary>
/// 转换输出星期几
/// </summary>
/// <param name="data">转换输出星期几</param>
public static string cweek(string utype)
{
string strweek = "";
if (utype.IndexOf("monday") != -1)
{
strweek = "星期一";
}
if (utype.IndexOf("tuesday") != -1)
{
if (strweek != "")
{
strweek += ",星期二";
}
else
{
strweek += "星期二";
}
}
if (utype.IndexOf("wednesday") != -1)
{
if (strweek != "")
{
strweek += ",星期三";
}
else
{
strweek += "星期三";
}
}
if (utype.IndexOf("thursday") != -1)
{
if (strweek != "")
{
strweek += ",星期四";
}
else
{
strweek += "星期四";
}
}
if (utype.IndexOf("friday") != -1)
{
if (strweek != "")
{
strweek += ",星期五";
}
else
{
strweek += "星期五";
}
}
if (utype.IndexOf("saturday") != -1)
{
if (strweek != "")
{
strweek += ",星期六";
}
else
{
strweek += "星期六";
}
}
if (utype.IndexOf("sunday") != -1)
{
if (strweek != "")
{
strweek += ",星期日";
}
else
{
strweek += "星期日";
}
}
return strweek;
}
#endregion
#region
/// <summary>
/// 转换输出周几
/// </summary>
/// <param name="data">转换输出周几</param>
public static string cweek0(string utype)
{
string strweek = "";
if (utype=="monday")
{
strweek = "周一";
}
if (utype=="tuesday")
{
strweek = "周二";
}
if (utype=="wednesday")
{
strweek = "周三";
}
if (utype=="thursday")
{
strweek = "周四";
}
if (utype=="friday")
{
strweek = "周五";
}
if (utype=="saturday")
{
strweek = "周六";
}
if (utype == "sunday")
{
strweek = "周日";
}
return strweek;
}
#endregion
#region
/// <summary>
/// 替换部分字符串
/// </summary>
/// <param name="sPassed">需要替换的字符串</param>
/// <returns></returns>
public static string ReplaceString(string JsonString)
{
if (JsonString == null) { return JsonString; }
//JsonString = Regex.Replace(JsonString, "style=\"(.*?)\"", "");
if (JsonString.Contains("\\"))
{
JsonString = JsonString.Replace("\\", "\\\\");
}
if (JsonString.Contains("\'"))
{
JsonString = JsonString.Replace("\'", "\\\'");
}
if (JsonString.Contains("\""))
{
JsonString = JsonString.Replace("\"", "\\\"");
}
//去掉字符串的回车换行符
JsonString = Regex.Replace(JsonString, @"[\n\r\t]", "");
JsonString = JsonString.Trim();
return JsonString;
}
#endregion
#region
/// <summary>
/// 获取推流地址
/// </summary>
/// <param name="domain">您用来推流的域名</param>
/// <param name="streamName">您用来区别不同推流地址的唯一流名称</param>
/// <param name="liveKey">安全密钥</param>
/// <param name="time">过期时间</param>
/// <returns></returns>
public static string getPushUrl(string domain, string streamName, string liveKey, DateTime time)
{
StringBuilder sb = new StringBuilder(32);
string TimeStamp = GetTimeStamp16(time, false);
MD5 md5 = new MD5CryptoServiceProvider();
//string strkey = "/agapp/" + streamName + "-" + TimeStamp + "-0-0-" + liveKey;
string strkey = liveKey + streamName + TimeStamp;
byte[] t = md5.ComputeHash(Encoding.GetEncoding("utf-8").GetBytes(strkey));
for (int i = 0; i < t.Length; i++)
{
sb.Append(t[i].ToString("x").PadLeft(2, '0'));
}
//return "rtmp://" + domain + "/agapp/" + streamName + "?auth_key=" + TimeStamp + "-0-0-" + sb.ToString();
return "rtmp://" + domain + "/live/" + streamName + "?txSecret=" + sb.ToString() + "&txTime=" + TimeStamp;// + "&txHost=" + domain
}
/// <summary>
/// 获取直播地址
/// </summary>
/// <param name="domain">您用来直播的域名</param>
/// <param name="streamName">您用来区别不同推流地址的唯一流名称</param>
/// <param name="liveKey">安全密钥</param>
/// <param name="time">过期时间</param>
/// <returns></returns>
public static string getLiveUrl(string domain, string streamName, string liveKey, DateTime time)
{
//return "http://" + domain + "/live/" + streamName + "_zm001" + ".m3u8";
StringBuilder sb = new StringBuilder(32);
string TimeStamp = GetTimeStamp16(time, false);
MD5 md5 = new MD5CryptoServiceProvider();
string strkey = liveKey + streamName + TimeStamp;
byte[] t = md5.ComputeHash(Encoding.GetEncoding("utf-8").GetBytes(strkey));
for (int i = 0; i < t.Length; i++)
{
sb.Append(t[i].ToString("x").PadLeft(2, '0'));
}
return "http://" + domain + "/live/" + streamName + ".m3u8?txSecret=" + sb.ToString() + "&txTime=" + TimeStamp;
/*StringBuilder sb = new StringBuilder(32);
string TimeStamp = GetTimeStamp16(time, false);
MD5 md5 = new MD5CryptoServiceProvider();
string strkey = "/agapp/" + streamName + "-" + TimeStamp + "-0-0-" + liveKey;
byte[] t = md5.ComputeHash(Encoding.GetEncoding("utf-8").GetBytes(strkey));
for (int i = 0; i < t.Length; i++)
{
sb.Append(t[i].ToString("x").PadLeft(2, '0'));
}
return "rtmp://" + domain + "/agapp/" + streamName + "?auth_key=" + TimeStamp + "-0-0-" + sb.ToString();*/
}
/// <summary>
/// 取16进制时间戳高并发情况下会有重复。想要解决这问题请使用sleep线程睡眠1毫秒。
/// </summary>
/// <param name="AccurateToMilliseconds">精确到毫秒</param>
/// <returns>返回一个字符串</returns>
public static string GetTimeStamp16(DateTime date, bool AccurateToMilliseconds = false)
{
if (AccurateToMilliseconds)
{
// 使用当前时间计时周期数636662920472315179减去1970年01月01日计时周期数621355968000000000除去删掉后面4位计数后四位计时单位小于毫秒快到不要不要再取整去小数点
//备注DateTime.Now.ToUniversalTime不能缩写成DateTime.Now.Ticks会有好几个小时的误差。
//621355968000000000计算方法 long ticks = (new DateTime(1970, 1, 1, 8, 0, 0)).ToUniversalTime().Ticks;
return Convert.ToString((date.ToUniversalTime().Ticks - 621355968000000000) / 10000, 16).ToUpper();
}
else
{
//上面是精确到毫秒需要在最后除去10000这里只精确到秒只要在10000后面加三个0即可1秒等于1000毫米
return Convert.ToString((date.ToUniversalTime().Ticks - 621355968000000000) / 10000000, 16).ToUpper();
}
}
#endregion
#region byte[]
/// <summary>
/// 返回byte[]数据
/// </summary>
/// <param name="JSONData">要处理的JSON数据</param>
/// <param name="Url">要提交的URL</param>
/// <returns>返回的byte[]</returns>
public static byte[] GetResponsebyte(string JSONData, string Url)
{
byte[] bytes = Encoding.UTF8.GetBytes(JSONData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentLength = bytes.Length;
request.ContentType = "text/xml";
Stream reqstream = request.GetRequestStream();
reqstream.Write(bytes, 0, bytes.Length);
//声明一个HttpWebRequest请求
request.Timeout = 90000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
byte[] img = StreamToBytes(streamReceive);
streamReceive.Dispose();
return img;
}
public static byte[] StreamToBytes(Stream stream)
{
List<byte> bytes = new List<byte>();
int temp = stream.ReadByte();
while (temp != -1)
{
bytes.Add((byte)temp);
temp = stream.ReadByte();
}
return bytes.ToArray();
}
#endregion
#region
public static string GetAddress(string lng, string lat)
{
try
{
string url = @"http://api.map.baidu.com/reverse_geocoding/v3/?ak=dvQ2j8UtSdoSlKOStN2rGj2YwroKzKGn&callback=showLocation&location=" + lat + "," + lng + @"&output=xml&coordtype=wgs84ll";
WebRequest request = WebRequest.Create(url);
request.Method = "POST";
XmlDocument xmlDoc = new XmlDocument();
string sendData = xmlDoc.InnerXml;
byte[] byteArray = Encoding.Default.GetBytes(sendData);
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream, System.Text.Encoding.GetEncoding("utf-8"));
string responseXml = reader.ReadToEnd();
//Mtxfw.Utility.Common.WriteHtml("/weixin/getindexdata.txt", responseXml);
XmlDocument xml = new XmlDocument();
xml.LoadXml(responseXml);
string status = xml.DocumentElement.SelectSingleNode("status").InnerText;
if (status == "0")
{
XmlNodeList nodes = xml.DocumentElement.GetElementsByTagName("formatted_address");
if (nodes.Count > 0)
{
return nodes[0].InnerText;
}
else
return "未获取到位置信息,错误码3";
}
else
{
return "未获取到位置信息,错误码1";
}
}
catch (System.Exception ex)
{
return "未获取到位置信息,错误码2";
}
}
#endregion
#region
public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
double radLat1 = Rad(lat1);
double radLat2 = Rad(lat2);
double a = radLat1 - radLat2;
double b = Rad(lng1) - Rad(lng2);
double s = 2 * Math.Asin(Math.Sqrt(
Math.Pow(Math.Sin(a / 2), 2) +
Math.Cos(radLat1) * Math.Cos(radLat2)
* Math.Pow(Math.Sin(b / 2), 2)));
s = s * 6378137.0;
s = Math.Round(s * 10000) / 10000;
return s;
}
private static double Rad(double d)
{
return d * Math.PI / 180.0;
}
#endregion
#region
/// <summary>
/// 姓名隐藏
/// </summary>
public static string CName(string realname)
{
if (realname.Length > 0)
{
realname = realname.Substring(0, 1) + "*" + (realname.Length >= 3 ? realname.Substring(2, realname.Length - 2) : "");
}
return realname;
}
#endregion
#region
public static string cfileurl(string url)
{
if (url.IndexOf("http://1301659355.vod2.myqcloud.com") != -1)
{
string key = "fHI4e1IgVr69Gx4sf1dC";
string strp = url.Replace("http://1301659355.vod2.myqcloud.com", "");
string Dir = strp.Substring(0, strp.LastIndexOf("/")) + "/";
string t = GetTimeStamp16(DateTime.Now.AddHours(24), false).ToLower();
string exper = "0";
string rlimit = "";
string us = DateTime.Now.ToString("yyyyMMddHHmmss");
StringBuilder sb = new StringBuilder(32);
MD5 md5 = new MD5CryptoServiceProvider();
string strkey = key + Dir + t + exper + rlimit + us;
byte[] st = md5.ComputeHash(Encoding.GetEncoding("utf-8").GetBytes(strkey));
for (int i = 0; i < st.Length; i++)
{
sb.Append(st[i].ToString("x").PadLeft(2, '0'));
}
string sign = sb.ToString();
url += "?t=" + t + "&exper=" + exper + "&rlimit=" + rlimit + "&us=" + us + "&sign=" + sign;
}
else
{
//url = cqnurl(url);
}
return url;
}
#endregion
#region
public static string cqnurl(string url)
{
if (url.IndexOf("http://fv.fuanmei.cn") != -1)
{
string key = "619a6299ed8a71996d89d3b9ef8881ab59b81d9b";
string strp = url.Replace("http://fv.fuanmei.cn", "");
string Dir = strp.Split('?')[0];
string t = GetTimeStamp16(DateTime.Now.AddHours(24), false).ToLower();
StringBuilder sb = new StringBuilder(32);
MD5 md5 = new MD5CryptoServiceProvider();
string strkey = key + Dir + t;
byte[] st = md5.ComputeHash(Encoding.GetEncoding("utf-8").GetBytes(strkey));
for (int i = 0; i < st.Length; i++)
{
sb.Append(st[i].ToString("x").PadLeft(2, '0'));
}
string sign = sb.ToString().ToLower();
if (url.IndexOf("?") != -1)
{
url += "&sign=" + sign + "&t=" + t + "";
}
else
{
url += "?sign=" + sign + "&t=" + t + "";
}
}
return url;
}
#endregion
#region Double的随机数
// <summary>
/// 生成设置范围内的Double的随机数
/// eg:_random.NextDouble(1.5, 2.5)
/// </summary>
/// <param name="random">Random</param>
/// <param name="miniDouble">生成随机数的最大值</param>
/// <param name="maxiDouble">生成随机数的最小值</param>
/// <returns>当Random等于NULL的时候返回0;</returns>
public static Double NextDouble(Random random, Double miniDouble, Double maxiDouble)
{
if (random != null)
{
return random.NextDouble() * (maxiDouble - miniDouble) + miniDouble;
}
else
{
return 0.0d;
}
}
#endregion
#region decimal保留指定位数小数
/// <summary>
/// decimal保留指定位数小数
/// </summary>
/// <param name="num">原始数量</param>
/// <param name="scale">保留小数位数</param>
/// <returns>截取指定小数位数后的数量字符串</returns>
public static string DecimalToString(Decimal num, int scale)
{
string numToString = num.ToString();
int index = numToString.IndexOf(".");
int length = numToString.Length;
if (index != -1)
{
return string.Format("{0}.{1}",
numToString.Substring(0, index),
numToString.Substring(index + 1, Math.Min(length - index - 1, scale)));
}
else
{
return num.ToString();
}
}
#endregion
/// <summary>
/// Image 转成 base64
/// </summary>
/// <param name="fileFullName"></param>
public static string ImageToBase64(string fileFullName)
{
try
{
using (Image image = Image.FromFile(fileFullName))
{
using (MemoryStream mStream = new MemoryStream())
{
// 保存图片到内存流中,并用相应的图片格式
image.Save(mStream, image.RawFormat);
// 转换图片为字节数组
byte[] imageBytes = mStream.ToArray();
// 将字节数组转换为Base64字符串
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
}
catch
{
return "";
}
}
public static string BitmapToBase64(Bitmap bmp)
{
try
{
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Png);
byte[] arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length);
ms.Close();
String strbaser64 = Convert.ToBase64String(arr);
return strbaser64;
}
catch (Exception ex)
{
return "";
}
}
public static string cstarlevel(string starlevel)
{
return "<span class=\"starlevel" + starlevel + "\">" + starlevel + "星</span>";
}
public static string cminimage(string uploadimages)
{
string src = uploadimages;
if (uploadimages.IndexOf("https://vip.ksd2023.com") != -1)
{
src = "https://vip.ksd2023.com/GetFiles.ashx?image=" + uploadimages.Replace("https://vip.ksd2023.com", "").Replace("Files/Image/", "") + "&itsize=100x100&itmode=cut";
}
else if (uploadimages.IndexOf("https://www.pmhapp.cn") != -1)
{
src = "https://www.pmhapp.cn/GetFiles.ashx?image=" + uploadimages.Replace("https://www.pmhapp.cn", "").Replace("Files/Image/", "") + "&itsize=100x100&itmode=cut";
}
else if (uploadimages.IndexOf("http://fv.fuanmei.cn") != -1)
{
src = src+"?imageView2/2/w/100/h/100/q/75";
}
else
{
if (uploadimages.IndexOf("https://") == -1 && uploadimages.IndexOf("http://") == -1)
{
src = "https://vip.ksd2023.com/GetFiles.ashx?image=" + uploadimages.Replace("Files/Image/", "") + "&itsize=100x100&itmode=cut";
}
}
return src;
}
public static string cminimage0(string uploadimages)
{
string src = uploadimages;
if (uploadimages.IndexOf("https://vip.ksd2023.com") != -1)
{
src = "https://vip.ksd2023.com/GetFiles.ashx?image=" + uploadimages.Replace("https://vip.ksd2023.com", "").Replace("Files/Image/", "") + "&itsize=220x220&itmode=cut";
}
else if (uploadimages.IndexOf("https://www.pmhapp.cn") != -1)
{
src = "https://www.pmhapp.cn/GetFiles.ashx?image=" + uploadimages.Replace("https://www.pmhapp.cn", "").Replace("Files/Image/", "") + "&itsize=220x220&itmode=cut";
}
else if (uploadimages.IndexOf("http://fv.fuanmei.cn") != -1)
{
src = src+"?imageView2/2/w/220/h/220/q/75";
}
else
{
if (uploadimages.IndexOf("https://") == -1 && uploadimages.IndexOf("http://") == -1)
{
src = "https://vip.ksd2023.com/GetFiles.ashx?image=" + uploadimages.Replace("Files/Image/", "") + "&itsize=220x220&itmode=cut";
}
}
return src;
}
public static string cmaximage(string uploadimages)
{
string src = uploadimages;
if (uploadimages.IndexOf("https://vip.ksd2023.com") != -1)
{
src = "https://vip.ksd2023.com/GetFiles.ashx?image=" + uploadimages.Replace("https://vip.ksd2023.com", "").Replace("Files/Image/", "") + "&itsize=720x460&itmode=cut";
}
else if (uploadimages.IndexOf("https://www.pmhapp.cn") != -1)
{
src = "https://www.pmhapp.cn/GetFiles.ashx?image=" + uploadimages.Replace("https://www.pmhapp.cn", "").Replace("Files/Image/", "") + "&itsize=720x460&itmode=cut";
}
else if (uploadimages.IndexOf("http://fv.fuanmei.cn") != -1)
{
src = src + "?imageView2/2/w/720/h/460/q/75";
}
else
{
if (uploadimages.IndexOf("https://") == -1 && uploadimages.IndexOf("http://") == -1)
{
src = "https://vip.ksd2023.com/GetFiles.ashx?image=" + uploadimages.Replace("Files/Image/", "") + "&itsize=720x460&itmode=cut";
}
}
return src;
}
/// <summary>
/// 获取星级奖励
/// </summary>
public static Double GetXJJLmoney(int uLevel, Mtxfw.Utility.Config config)
{
Double bb = 0;
switch (uLevel)
{
case 0:
bb = Convert.ToDouble(config.webMoney65);
break;
case 1:
bb = Convert.ToDouble(config.webMoney71);
break;
case 2:
bb = Convert.ToDouble(config.webMoney104);
break;
case 3:
bb = Convert.ToDouble(config.webMoney57);
break;
case 4:
bb = Convert.ToDouble(config.webMoney67);
break;
case 5:
bb = Convert.ToDouble(config.webMoney68);
break;
}
return bb;
}
/// <summary>
/// 获取董事奖励
/// </summary>
public static Double GetDSJLmoney(int uLevel, Mtxfw.Utility.Config config)
{
Double bb = 0;
switch (uLevel)
{
case 1:
bb = Convert.ToDouble(config.webMoney156);
break;
case 2:
bb = Convert.ToDouble(config.webMoney157);
break;
case 3:
bb = Convert.ToDouble(config.webMoney158);
break;
case 4:
bb = Convert.ToDouble(config.webMoney159);
break;
case 5:
bb = Convert.ToDouble(config.webMoney160);
break;
case 6:
bb = Convert.ToDouble(config.webMoney161);
break;
case 7:
bb = Convert.ToDouble(config.webMoney162);
break;
case 8:
bb = Convert.ToDouble(config.webMoney163);
break;
}
return bb;
}
public static Double GetHSDMoney(int uLevel, Mtxfw.Utility.Config config)
{
Double bb = 0.00;
switch (uLevel)
{
case 1:
bb = Convert.ToDouble(config.webMoney40);
break;
case 2:
bb = Convert.ToDouble(config.webMoney25);
break;
case 3:
bb = Convert.ToDouble(config.webMoney26);
break;
case 4:
bb = Convert.ToDouble(config.webMoney136);
break;
case 5:
bb = Convert.ToDouble(config.webMoney137);
break;
case 6:
bb = Convert.ToDouble(config.webMoney138);
break;
case 7:
bb = Convert.ToDouble(config.webMoney139);
break;
}
return bb;
}
public static Double GetTJHSDMoney(int tjcount, Mtxfw.Utility.Config config)
{
Double bb = 0.00;
switch (tjcount)
{
case 1:
bb = Convert.ToDouble(config.webMoney127);
break;
case 2:
bb = Convert.ToDouble(config.webMoney128);
break;
case 3:
bb = Convert.ToDouble(config.webMoney129);
break;
case 4:
bb = Convert.ToDouble(config.webMoney130);
break;
case 5:
bb = Convert.ToDouble(config.webMoney131);
break;
}
if (tjcount > 5)
{
bb = Convert.ToDouble(config.webMoney131);
}
return bb;
}
public static Double GetZTMoney(int tjcount, Mtxfw.Utility.Config config)
{
Double bb = 0.00;
switch (tjcount)
{
case 0:
bb = Convert.ToDouble(config.webMoney104);
break;
case 1:
bb = Convert.ToDouble(config.webMoney105);
break;
case 2:
bb = Convert.ToDouble(config.webMoney106);
break;
case 3:
bb = Convert.ToDouble(config.webMoney107);
break;
case 4:
bb = Convert.ToDouble(config.webMoney140);
break;
case 5:
bb = Convert.ToDouble(config.webMoney141);
break;
case 6:
bb = Convert.ToDouble(config.webMoney142);
break;
case 7:
bb = Convert.ToDouble(config.webMoney143);
break;
}
return bb;
}
public static Double GetDTMoney(int uLevel5, Mtxfw.Utility.Config config)
{
Double bb = 0.00;
switch (uLevel5)
{
case 1:
bb = Convert.ToDouble(config.webMoney81);
break;
case 2:
bb = Convert.ToDouble(config.webMoney82);
break;
case 3:
bb = Convert.ToDouble(config.webMoney83);
break;
case 4:
bb = Convert.ToDouble(config.webMoney84);
break;
case 5:
bb = Convert.ToDouble(config.webMoney85);
break;
case 6:
bb = Convert.ToDouble(config.webMoney27);
break;
}
return bb;
}
public static Double GetTemJL(int uLevel, Mtxfw.Utility.Config config)
{
Double bb = 0.00;
switch (uLevel)
{
/*case 0:
bb = Convert.ToDouble(config.webMoney2);
break;*/
case 1:
bb = Convert.ToDouble(config.webMoney24);
break;
case 2:
bb = Convert.ToDouble(config.webMoney25);
break;
case 3:
bb = Convert.ToDouble(config.webMoney26);
break;
case 4:
bb = Convert.ToDouble(config.webMoney27);
break;
case 5:
bb = Convert.ToDouble(config.webMoney28);
break;
case 6:
bb = Convert.ToDouble(config.webMoney29);
break;
case 7:
bb = Convert.ToDouble(config.webMoney30);
break;
}
return bb;
}
public static Double GetQWJL(int uLevel, Mtxfw.Utility.Config config)
{
Double bb = 0.00;
switch (uLevel)
{
case 1:
bb = Convert.ToDouble(config.webMoney31);
break;
case 2:
bb = Convert.ToDouble(config.webMoney32);
break;
case 3:
bb = Convert.ToDouble(config.webMoney33);
break;
case 4:
bb = Convert.ToDouble(config.webMoney34);
break;
case 5:
bb = Convert.ToDouble(config.webMoney35);
break;
case 6:
bb = Convert.ToDouble(config.webMoney36);
break;
case 7:
bb = Convert.ToDouble(config.webMoney37);
break;
}
return bb;
}
public static Double GetSXF(int uLevel, Mtxfw.Utility.Config config)
{
Double bb = 0.00;
if (uLevel == 0)
{
bb = Convert.ToDouble(Convert.ToDouble(config.webMoney38).ToString("f2"));
}
else if (uLevel == 1)
{
bb = Convert.ToDouble(Convert.ToDouble(config.webMoney39).ToString("f2"));
}
else if (uLevel == 2)
{
bb = Convert.ToDouble(Convert.ToDouble(config.webMoney40).ToString("f2"));
}
else if (uLevel == 3)
{
bb = Convert.ToDouble(Convert.ToDouble(config.webMoney41).ToString("f2"));
}
else if (uLevel == 4)
{
bb = Convert.ToDouble(Convert.ToDouble(config.webMoney42).ToString("f2"));
}
else
{
bb = Convert.ToDouble(Convert.ToDouble(config.webMoney43).ToString("f2"));
}
return bb;
}
/// <summary>
/// 获取充值方式
/// </summary>
public static string GetCZPayType(int PayType)
{
string strPayType = "";
switch (PayType)
{
case 0:
strPayType = "银行汇款";
break;
case 1:
strPayType = "POS机和现金";
break;
case 2:
strPayType = "支付宝转账";
break;
case 3:
strPayType = "微信转账";
break;
case 4:
strPayType = "现金券余额";
break;
case 5:
strPayType = "在线支付";
break;
}
return strPayType;
}
/// <summary>
/// 订单类型
/// </summary>
public static string GetOrderType(int GType)
{
string strType = "";
switch (GType)
{
case 0:
strType = "热卖推荐商品";
break;
case 1:
strType = "兑换商城商品";
break;
case 2:
strType = "精选商品";
break;
case 3:
strType = "套餐";
break;
case 4:
strType = "服务中心订单";
break;
case 5:
strType = "广告区订单";
break;
case 6:
strType = "枣享福订单";
break;
case 7:
strType = "其它订单";
break;
case 8:
strType = "事业联盟订单";
break;
case 9:
strType = "助农专区订单";
break;
case 10:
strType = "推广员订单";
break;
case 11:
strType = "爆品专区订单";
break;
}
return strType;
}
/// <summary>
/// 获取支付方式
/// </summary>
/// <returns></returns>
public static string GetPayType(int t)
{
string strType = "";
switch (t)
{
case 0:
strType = "余额";
break;
case 1:
strType = "兑换券兑换";
break;
case 2:
strType = "微信支付";
break;
case 3:
strType = "支付宝";
break;
case 4:
strType = "赠送";
break;
case 5:
strType = "广告积分";
break;
case 6:
strType = "佣金";
break;
case 7:
strType = "KSD";
break;
}
return strType;
}
/// <summary>
/// 获取充值方式
/// </summary>
/// <returns></returns>
public static string GetChongZhiType(int t)
{
string strType = "";
switch (t)
{
case 0:
strType = "银行汇款";
break;
case 1:
strType = "POS机";
break;
case 2:
strType = "支付宝转账";
break;
case 3:
strType = "微信转账";
break;
case 4:
strType = "现金";
break;
}
return strType;
}
/// <summary>
/// 获取购买图标类型
/// </summary>
/// <returns></returns>
public static string GetGMTBType(int t)
{
string strType = "";
switch (t)
{
case 0:
strType = "VIP";
break;
case 1:
strType = "经验值图标";
break;
case 2:
strType = "加速图标";
break;
case 3:
strType = "金卡图标";
break;
case 4:
strType = "手续费图标";
break;
}
return strType;
}
/// <summary>
/// 获取商家一级分类
/// </summary>
public static Dictionary<int, string> GetBusinessClass()
{
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(1, "饮食");
dic.Add(2, "服务");
dic.Add(3, "零售");
dic.Add(4, "服装");
dic.Add(5, "酒店");
dic.Add(6, "房产");
dic.Add(7, "数码");
dic.Add(8, "茶叶");
dic.Add(9, "健身");
dic.Add(10, "珠宝");
dic.Add(11, "美容");
dic.Add(12, "汽车");
dic.Add(18, "其他");
return dic;
}
/// <summary>
/// 获取栏目分类
/// </summary>
/// <returns></returns>
public static Dictionary<int, string> GetMenuClass()
{
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(6, "关于我们");
dic.Add(4, "需要帮助");
dic.Add(2, "我的订单");
dic.Add(1, "服务说明");
dic.Add(3, "售后服务");
dic.Add(0, "生活馆");
dic.Add(7, "会员体系");
return dic;
}//dic.Add(0, "配送范围");dic.Add(5, "商家入驻");
public static String GetMenuName(int key)
{
return GetMenuClass()[key];
}
/// <summary>
/// 获取团队
/// </summary>
/// <returns></returns>
public static Dictionary<int, string> GetTems()
{
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(8633, "A仓");
dic.Add(8634, "B仓");
dic.Add(8635, "C仓");
dic.Add(8636, "D仓");
dic.Add(8637, "E仓");
dic.Add(8638, "F仓");
dic.Add(8639, "G仓");
dic.Add(8640, "H仓");
dic.Add(8641, "I仓");
dic.Add(8642, "J仓");
dic.Add(8928, "K仓");
dic.Add(10795, "L仓");
dic.Add(10796, "M仓");
dic.Add(10797, "N仓");
dic.Add(10798, "O仓");
dic.Add(10799, "P仓");
dic.Add(10800, "Q仓");
dic.Add(10801, "R仓");
dic.Add(10802, "S仓");
dic.Add(10803, "T仓");
dic.Add(10804, "U仓");
dic.Add(10805, "V仓");
dic.Add(10806, "W仓");
dic.Add(10808, "X仓");
dic.Add(10809, "Y仓");
dic.Add(10810, "Z仓");
dic.Add(0, "");
return dic;
}
public static String GetTem(int key)
{
try
{
return GetTems()[key];
}
catch
{
return "";
}
}
/// <summary>
/// 获取加盟级别
/// </summary>
/// <returns></returns>
public static Dictionary<int, string> GetuLevels()
{
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(0, "普通消费商");
dic.Add(1, "会员店");
dic.Add(2, "品牌店");
dic.Add(3, "旗舰店");
dic.Add(4, "");
dic.Add(5, "");
dic.Add(6, "");
return dic;
}
public static String GetuLevelname(int key)
{
return GetuLevels()[key];
}
/// <summary>
/// 获取加盟级别
/// </summary>
/// <returns></returns>
public static Dictionary<int, string> GetuLevel4s()
{
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(0, "");
dic.Add(1, "银钻");
dic.Add(2, "金钻");
dic.Add(3, "铂钻");
return dic;
}
public static String GetuLevel4name(int key)
{
return GetuLevel4s()[key];
}
/// <summary>
/// 获取加盟级别
/// </summary>
/// <returns></returns>
public static Dictionary<int, string> GetuLevel24s()
{
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(0, "");
dic.Add(1, "一星董事");
dic.Add(2, "二星董事");
dic.Add(3, "三星董事");
dic.Add(4, "四星董事");
dic.Add(5, "五星董事");
dic.Add(6, "六星董事");
dic.Add(7, "七星董事");
dic.Add(8, "八星董事");
return dic;
}
public static String GetuLevel24name(int key)
{
return GetuLevel24s()[key];
}
/// <summary>
/// 获取加盟级别
/// </summary>
/// <returns></returns>
public static Dictionary<int, string> GetuLevel25s()
{
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(0, "");
dic.Add(1, "");
dic.Add(2, "乡镇服务中心");
dic.Add(3, "县服务中心");
dic.Add(4, "市服务中心");
dic.Add(5, "省服务中心");
return dic;
}
public static String GetuLevel25name(int key)
{
return GetuLevel25s()[key];
}
public static String GetuLevelStar(int key)
{
string str = "";
if (key == 0)
{
str = "<span class=\"starbox0\" title=\"体验会员\"></span>";
}
if (key == 1)
{
str = "<span class=\"starbox1\" title=\"经销商\"></span>";
}
if (key == 2)
{
str = "<span class=\"starbox2\" title=\"初级导师\"></span>";
}
if (key == 3)
{
str = "<span class=\"starbox3\" title=\"中级导师\"></span>";
}
if (key == 4)
{
str = "<span class=\"starbox4\" title=\"高级导师\"></span>";
}
if (key == 5)
{
str = "<span class=\"starbox5\" title=\"特级导师\"></span>";
}
return str;
}
public static String GetuLevel4Star(int key)
{
string str = "";
if (key == 1)
{
str = "<span class=\"starbox0\" title=\"董事\"></span>";
}
if (key == 2)
{
str = "<span class=\"starbox1\" title=\"1星董事\"></span>";
}
if (key == 3)
{
str = "<span class=\"starbox2\" title=\"2星董事\"></span>";
}
if (key == 4)
{
str = "<span class=\"starbox3\" title=\"3星董事\"></span>";
}
if (key == 5)
{
str = "<span class=\"starbox4\" title=\"4星董事\"></span>";
}
if (key == 6)
{
str = "<span class=\"starbox5\" title=\"5星董事\"></span>";
}
if (key == 7)
{
str = "<span class=\"starbox6\" title=\"6星董事\"></span>";
}
return str;
}
/// <summary>
/// 获取金卡状态
/// </summary>
/// <returns></returns>
public static string Getseef(string seef)
{
if (seef == "已审核")
{
seef = "已审核";
}
else
{
seef = "未审核";
}
return seef;
}
/// <summary>
/// 获取论坛文章分类
/// </summary>
/// <returns></returns>
public static string GetB_TType(string B_TType)
{
if (B_TType == "0")
{
B_TType = "普通";
}
else if (B_TType == "1")
{
B_TType = "贴图";
}
else if (B_TType == "2")
{
B_TType = "转贴";
}
else if (B_TType == "3")
{
B_TType = "原创";
}
else if (B_TType == "4")
{
B_TType = "新闻";
}
else if (B_TType == "5")
{
B_TType = "活动";
}
else if (B_TType == "6")
{
B_TType = "投票";
}
else if (B_TType == "7")
{
B_TType = "公告";
}
else if (B_TType == "8")
{
B_TType = "公告";
}
return B_TType;
}
/// <summary>
/// 获取论坛文章分类
/// </summary>
/// <returns></returns>
public static string Getrefundstatus(int refundstatus)
{
string str = "";
switch (refundstatus)
{
case 0:
str = "";
break;
case 1:
str = "退款成功";
break;
case 2:
str = "退款关闭";
break;
case 3:
str = "退款处理中";
break;
case 4:
str = "退款异常";
break;
}
return str;
}
/// <summary>
/// 获取订单状态和操作状态
/// </summary>
/// <returns></returns>
public static string[] GetOrderStatus(string utype, string O_Id, string OrderId, int ptype,int peitype, string O_SubmitDate, string O_Payed, string O_Payed_Date, string O_Shipped, string O_Shipped_Date, string O_received, string O_received_Date, string kdgs, string ydh, string Contacttel, string wlremarks,int refundstatus, string refund_channel, string user_received_account, string success_time,int O_Seef,Double Totalprice,String ReturnReason, int p)
{
string[] strStatus = new string[3];
string strO_Payed = "";
string IFGQ = "";
string addtime = O_Payed_Date;
if (wlremarks != "")
{
wlremarks = wlremarks.Replace("\r", "\\r").Replace("\n", "\\n").Replace("\t", "\\t").Replace("\"", "\\\"");
}
if (O_Payed == "0")
{
addtime = O_SubmitDate;
}
if (p == 0)
{
switch (O_Payed)
{
case "-1":
strO_Payed = "已取消";
break;
case "-2":
strO_Payed = "您已申请退款,等待商家同意退款";
break;
case "-3":
strO_Payed = "您已申请退货,等待商家同意退货";
break;
case "-4":
strO_Payed = "商家已同意退货,请您把商品退还给商家";
break;
case "-5":
strO_Payed = "退款完成,交易结束";
break;
case "-6":
strO_Payed = "退货完成,交易结束";
break;
case "0":
strO_Payed = "您未付款";
IFGQ = "<span onclick='showpay(" + O_Id + ")' id='pay_" + O_Id + "' class='Order_botton'>付款</span>";
IFGQ += "<span onclick='qxorder(" + O_Id + ")' id='qx_" + O_Id + "' class='Order_botton'>取消订单</span>";
break;
case "1":
if (utype == "5" && O_Shipped == "2")
{
strO_Payed = "您已退货,退货时间:" + O_Shipped_Date;
}
else
{
strO_Payed = "您已付款,等待商家确认发货<br>付款时间:" + O_Payed_Date;
//IFGQ = "<span onclick='DeleteOrder(" + O_Id + ")' id='delete_" + O_Id + "' class='Order_botton'>删除订单</span>";
//IFGQ = "<span onclick='sqtkorder(" + O_Id + ")' id='sqtk_" + O_Id + "' class='Order_botton'>申请退款</span>";
}
break;
case "2":
strO_Payed = "部分已发货";
break;
case "3":
strO_Payed = "已全部发货";
break;
case "4":
strO_Payed = "交易完成<br>完成时间:" + O_Payed_Date;
break;
case "5":
strO_Payed = "已核销";
break;
case "6":
strO_Payed = "确认中";
break;
case "7":
strO_Payed = "已退货"; //+ (utype == "2" ? Getrefundstatus(refundstatus) + " " + refund_channel + " " + user_received_account + " " + success_time : (utype == "4" ? "已退回消费积分中" : "已退回余额中"));
break;
case "8":
strO_Payed = "申请退货中";
break;
}
}
if (p == 10)
{
switch (O_Payed)
{
case "-1":
strO_Payed = "已取消";
break;
case "-2":
strO_Payed = "您已申请退款,等待商家同意退款";
break;
case "-3":
strO_Payed = "您已申请退货,等待商家同意退货";
break;
case "-4":
strO_Payed = "商家已同意退货,请您把商品退还给商家";
break;
case "-5":
strO_Payed = "退款完成,交易结束";
break;
case "-6":
strO_Payed = "退货完成,交易结束";
break;
case "0":
strO_Payed = "您未付款";
//IFGQ = "<span onclick='pay(" + O_Id + ")' id='pay_" + O_Id + "' class='Order_botton'>付款</span>";
IFGQ += "<span onclick='qxorder(" + O_Id + ")' id='qx_" + O_Id + "' class='Order_botton'>取消订单</span>";
break;
case "1":
strO_Payed = "您已付款,等待商家确认发货 付款时间:" + O_Payed_Date;
//IFGQ = "<span onclick='DeleteOrder(" + O_Id + ")' id='delete_" + O_Id + "' class='Order_botton'>删除订单</span>";
//IFGQ = "<span onclick='sqtkorder(" + O_Id + ")' id='sqtk_" + O_Id + "' class='Order_botton'>申请退款</span>";
break;
case "2":
strO_Payed = "部分已发货";
break;
case "3":
strO_Payed = "已全部发货";
break;
case "4":
strO_Payed = "交易完成<br>完成时间:" + O_Payed_Date;
break;
case "5":
strO_Payed = "确认中";
IFGQ = "<span onclick='showsel(0," + O_Id + ")' id='qyzs_" + O_Id + "' class='Order_botton'>委托寄售</span>";
IFGQ += "<span onclick='showsel(1," + O_Id + ")' id='qyth_" + O_Id + "' class='Order_botton'>我要提货</span>";
break;
case "6":
strO_Payed = "已退货";
break;
case "7":
strO_Payed = "申请退货中";
break;
}
}
else if (p == 1)
{
switch (O_Payed)
{
case "-1":
strO_Payed = "已取消";
break;
case "-2":
strO_Payed = "会员已申请退款,等待您同意退款";
IFGQ = "<span onclick='qytytkorder(" + O_Id + ",0)' id='qytytk_" + O_Id + "' class='Order_botton'>同意退款</span>";
IFGQ += "<span onclick='qytytkorder(" + O_Id + ",1)' id='qytytk_" + O_Id + "' class='Order_botton'>不同意退款</span>";
break;
case "-3":
strO_Payed = "会员已申请退货,等待您同意退货";
IFGQ = "<span onclick='qytythorder(" + O_Id + ",0)' id='qytyth_" + O_Id + "' class='Order_botton'>同意退货</span>";
IFGQ += "<span onclick='qytythorder(" + O_Id + ",1)' id='qytyth_" + O_Id + "' class='Order_botton'>不同意退货</span>";
break;
case "-4":
strO_Payed = "您已同意退货,等待您确认收到退货";
IFGQ = "<span onclick='qysdthorder(" + O_Id + ",0)' id='qytyth_" + O_Id + "' class='Order_botton'>确认收到退货</span>";
IFGQ += "<span onclick='qysdthorder(" + O_Id + ",1)' id='qytyth_" + O_Id + "' class='Order_botton'>未收到退货</span>";
break;
case "-5":
strO_Payed = "退款完成,交易结束";
break;
case "-6":
strO_Payed = "退货完成,交易结束";
break;
case "0":
strO_Payed = "未付款";
//IFGQ = "<span onclick='sqtkorder(" + O_Id + ")' id='sqtk_" + O_Id + "' class='Order_botton'>申请退款</span>";
break;
case "1":
strO_Payed = "会员已付款,等待您确认发货<br>付款时间:" + O_Payed_Date;
IFGQ = "<span onclick=\"showfh(" + O_Id + ",'" + OrderId + "'," + ptype + ");\" id='qyfh_" + O_Id + "' class='Order_botton'>确认发货</span>";
break;
case "2":
strO_Payed = "部分已发货";
IFGQ = "<span onclick=\"showfh(" + O_Id + ",'" + OrderId + "'," + ptype + ");\" id='qyfh_" + O_Id + "' class='Order_botton'>继续发货</span>";
break;
case "3":
strO_Payed = "已全部发货";
break;
case "4":
strO_Payed = "交易完成<br>完成时间:" + O_Payed_Date;
break;
case "5":
strO_Payed = "确认中";
break;
case "6":
strO_Payed = "已退货,退货理由:" + ReturnReason; //+ (utype == "2" ? Getrefundstatus(refundstatus) + " " + refund_channel + " " + user_received_account + " " + success_time : (utype == "4" ? "已退回消费积分中" : "已退回余额中"));
break;
case "7":
strO_Payed = "申请退货中,退货理由:" + ReturnReason;
break;
default:
//IFGQ += "<span onclick='setorder(" + O_Id + ")' id='set_" + O_Id + "' class='Order_botton'>设为已付款</span>";
break;
}
}
else if (p == 2)
{
switch (O_Payed)
{
case "-1":
strO_Payed = "已取消";
break;
case "-2":
strO_Payed = "申请退款中";
break;
case "-3":
strO_Payed = "申请退货中";
break;
case "-4":
strO_Payed = "退货中";
break;
case "-5":
strO_Payed = "退款完成,交易结束";
break;
case "-6":
strO_Payed = "退货完成,交易结束";
break;
case "1":
strO_Payed = "已付款<br>付款时间:" + O_Payed_Date;
break;
case "2":
strO_Payed = "已确认发货<br>发货时间:" + O_Payed_Date;
//strO_Payed += " " + Getkdcompay(kdgs) + "运单号:" + ydh;
break;
case "3":
strO_Payed = "交易完成<br>完成时间:" + O_Payed_Date;
//strO_Payed += " " + Getkdcompay(kdgs) + "运单号:" + ydh;
/*if (ptype == 1)
{
if (O_Seef == 0)
{
strO_Payed = "已确认";
}
}*/
break;
case "4":
strO_Payed = "已核销";
break;
case "5":
strO_Payed = "确认中";
break;
case "6":
strO_Payed = "已退货"; //+ (utype == "2" ? Getrefundstatus(refundstatus) + " " + refund_channel + " " + user_received_account + " " + success_time : (utype == "4" ? "已退回消费积分中" : "已退回余额中"));
break;
case "7":
strO_Payed = "申请退货中";
break;
}
}
else if (p == 3)
{
switch (O_Payed)
{
case "-1":
strO_Payed = "已取消";
break;
case "0":
strO_Payed = "未付款";
break;
case "1":
strO_Payed = "会员已付款,等待您确认发货<br>付款时间:" + O_Payed_Date;
IFGQ = "<span onclick=\\\"showfh(" + O_Id + ",'" + OrderId + "'," + peitype + ")\\\" id='qyfh_" + O_Id + "' class='Order_botton'>确认发货</span>";
//IFGQ += "<span onclick=\\\"showaddressbox(" + O_Id + ")\\\" id='editaddress_" + O_Id + "' class='Order_botton'>修改配送地址</span>";
break;
case "2":
strO_Payed = "您已确认发货,等待会员确认收货<br>发货时间:" + O_Payed_Date;
IFGQ += "<span onclick=\\\"editwlxx(" + O_Id + ",'" + kdgs + "','" + Getkdcompay(kdgs) + "','" + ydh + "','" + wlremarks + "')\\\" id='editwl_" + O_Id + "' class='Order_botton'>修改物流</span>";
IFGQ += "<span onclick=\\\"showcancelfh(" + O_Id + ",'" + kdgs + "','" + Getkdcompay(kdgs) + "','" + ydh + "','" + wlremarks + "')\\\" id='cancelfh_" + O_Id + "' class='Order_botton'>取消发货</span>";
//IFGQ += "<span onclick=\\\"showaddress(" + O_Id + ")\\\" id='editaddress_" + O_Id + "' class='Order_botton'>修改配送地址</span>";
break;
case "3":
strO_Payed = "交易完成<br>完成时间:" + O_Payed_Date;
//strO_Payed += " " + Getkdcompay(kdgs) + "运单号:" + ydh;
if (ptype == 1)
{
if (O_Seef == 0)
{
strO_Payed = "已确认";
}
}
break;
case "4":
strO_Payed = "已核销";
break;
case "5":
strO_Payed = "确认中";
break;
case "6":
strO_Payed = "已退货"; //+ (utype == "2" ? Getrefundstatus(refundstatus) + " " + refund_channel + " " + user_received_account + " " + success_time : (utype == "4" ? "已退回消费积分中" : "已退回余额中"));
break;
case "7":
strO_Payed = "申请退货中";
break;
default:
//IFGQ += "<span onclick='setorder(" + O_Id + ")' id='set_" + O_Id + "' class='Order_botton'>设为已付款</span>";
break;
}
if (ptype == 1)
{
if (O_Payed == "2" || O_Payed == "3")
{
IFGQ += "<span onclick=\"showwlxx(" + O_Id + ",'" + kdgs + "','" + Getkdcompay(kdgs) + "','" + ydh + "','" + Contacttel + "','" + wlremarks + "')\" id='wlxx_" + O_Id + "' class='Order_botton wlxx'>查看物流信息</span>";
}
}
}
strStatus[0] = strO_Payed;
strStatus[1] = IFGQ;
strStatus[2] = addtime;
return strStatus;
}
public static string GetProZT(int ProZT)
{
string str = "";
if (ProZT == 0)
{
str = "#000000";
}
else if (ProZT == 1)
{
str = "#0c5fb2";
}
else if (ProZT == 2)
{
str = "#979505";
}
else if (ProZT == 3)
{
str = "#0c7f12";
}
return str;
}
public static string GetProZT(int ProZT, int b2, int b3, int b7, int b8, int b14, int b16)
{
string str = "";
if (b8 == 0)
{
if (b2 == 0)
{
if (b3 == 0)
{
str = "待确认";
}
else
{
str = "已完成";
}
}
else
{
if (b7 == 1)
{
str = "已代售";
}
else if (b7 == 2)
{
str = "已提货";
}
else if (b7 == 3)
{
str = "已退货";
}
else if (b7 == 4)
{
str = "已完成";
}
else
{
str = "待确认";
}
}
}
else
{
if (ProZT == 0)
{
if (b16 == 1)
{
str = "待确认";
}
else
{
str = "待审核";
}
}
else if (ProZT == 1)
{
str = "待确认";
}
else if (ProZT == 2)
{
str = "待确认";
}
else
{
str = "已完成";
}
}
return str;
}
public static string GetProZT0(int ProZT, int b2, int b3, int b7, int b8, int b14, int b16)
{
string str = "";
if (b8 == 0)
{
if (b2 == 0)
{
if (b3 == 0)
{
str = "待确认";
}
else
{
str = "待提货";
if (b7 == 1)
{
str = "已自提";
}
else if (b7 == 2)
{
str = "已提货";
}
}
}
else
{
if (ProZT == 0)
{
if (b3 == 1)
{
str = "已代售";
}
else if (b3 == 2)
{
str = "已提货";
}
else
{
str = "待发货";
}
}
else if (ProZT == 1)
{
if (b3 == 1)
{
str = "已代售";
}
else if (b3 == 2)
{
str = "已提货";
}
}
else
{
str = "已完成";
}
}
}
else
{
if (ProZT == 0)
{
if (b16 == 1)
{
str = "待确认";
}
else
{
str = "待审核";
}
}
else if (ProZT == 1)
{
str = "待确认";
}
else if (ProZT == 2)
{
str = "待确认";
}
else
{
str = "已完成";
}
}
return str;
}
public static string[] GetProZT(int ProZT, int t, Mtxfw.Utility.Config config, DateTime addtime, DateTime seeftime)
{
string str = "", str2 = "";
TimeSpan ts1, ts2, ts;
DateTime dt1;
DateTime dt2;
string SJC = "";
if (t == 0)
{
switch (ProZT)
{
case 0:
str = "<font color='#bbbbbb'>未达成</font>";
//str2 = "<span class=\"abtn\" onclick=\"showqyjy(0);\">确认交易</span>";
break;
case 1:
dt1 = seeftime.AddMinutes(Convert.ToInt32(config.webMoney40));
dt2 = DateTime.Now;
if (dt1 >= dt2)
{
ts1 = new TimeSpan(seeftime.AddMinutes(Convert.ToInt32(config.webMoney40)).Ticks);
ts2 = new TimeSpan(DateTime.Now.Ticks);
ts = ts1.Subtract(ts2).Duration();
SJC = (ts.Days * 24 * 3600 + ts.Hours * 3600 + ts.Minutes * 60 + ts.Seconds).ToString();
int hours = (ts.Days * 24 + ts.Hours);
if (hours > 0)
{
str = "<font color='#0c5fb2'>交流中,确认支付倒计时&nbsp;" + hours + "&nbsp;计时</font>";
}
else
{
str = "<font color='#0c5fb2'>交流中,确认支付倒计时&nbsp;<label class='showtime' id='time_" + seeftime.ToString("yyyyMMddHHmmss") + "' time='" + SJC + "'>" + ts.Minutes + "&nbsp;分&nbsp;" + ts.Seconds + "&nbsp;秒</label></font>";
}
str2 = "<span class='button abtn' onclick='showtype(0)'>确认支付</span>&nbsp;<span class='button abtn' onclick='showtype(2)'>举报</span>";
}
else
{
str = "<font color='Red'>超时未确认支付</font>";
}
break;
case 2:
dt1 = seeftime.AddMinutes(Convert.ToInt32(config.webMoney40));
dt2 = DateTime.Now;
if (dt1 >= dt2)
{
ts1 = new TimeSpan(seeftime.AddMinutes(Convert.ToInt32(config.webMoney40)).Ticks);
ts2 = new TimeSpan(DateTime.Now.Ticks);
ts = ts1.Subtract(ts2).Duration();
SJC = (ts.Days * 24 * 3600 + ts.Hours * 3600 + ts.Minutes * 60 + ts.Seconds).ToString();
int hours = (ts.Days * 24 + ts.Hours);
if (hours > 0)
{
str = "<font color='#979505'>已支付,等待确认倒计时&nbsp;" + hours + "&nbsp;计时</font>";
}
else
{
str = "<font color='#979505'>已支付,等待确认倒计时&nbsp;<label class='showtime' id='time_" + seeftime.ToString("yyyyMMddHHmmss") + "' time='" + SJC + "'>" + ts.Minutes + "&nbsp;分&nbsp;" + ts.Seconds + "&nbsp;秒</label></font>";
}
str2 = "<span class='button abtn' onclick='showtype(1)'>确认收到</span>&nbsp;<span class='button abtn' onclick='showtype(2)'>举报</span>";
}
else
{
str = "<font color='Red'>超时未确认收到</font>";
}
break;
case 3:
str = "<font color='Green'>已完成</font>";
break;
}
}
else if (t == 1)
{
switch (ProZT)
{
case 0:
str = "<font color='#bbbbbb'>未达成</font>";
//str2 = "<span class=\"abtn\" onclick=\"showqyjy(1);\">确认交易</span>";
break;
case 1:
dt1 = seeftime.AddMinutes(Convert.ToInt32(config.webMoney40));
dt2 = DateTime.Now;
if (dt1 >= dt2)
{
ts1 = new TimeSpan(seeftime.AddMinutes(Convert.ToInt32(config.webMoney40)).Ticks);
ts2 = new TimeSpan(DateTime.Now.Ticks);
ts = ts1.Subtract(ts2).Duration();
SJC = (ts.Days * 24 * 3600 + ts.Hours * 3600 + ts.Minutes * 60 + ts.Seconds).ToString();
int hours = (ts.Days * 24 + ts.Hours);
if (hours > 0)
{
str = "<font color='#0c5fb2'>交流中,确认支付倒计时&nbsp;" + hours + "&nbsp;计时</font>";
}
else
{
str = "<font color='#0c5fb2'>交流中,确认支付倒计时&nbsp;<label class='showtime' id='time_" + seeftime.ToString("yyyyMMddHHmmss") + "' time='" + SJC + "'>" + ts.Minutes + "&nbsp;分&nbsp;" + ts.Seconds + "&nbsp;秒</label></font>";
}
str2 = "<span class='button abtn' onclick='showtype(0)'>确认支付</span>&nbsp;<span class='button abtn' onclick='showtype(2)'>举报</span>";
}
else
{
str = "<font color='Red'>超时未确认支付</font>";
}
break;
case 2:
dt1 = seeftime.AddMinutes(Convert.ToInt32(config.webMoney40));
dt2 = DateTime.Now;
if (dt1 >= dt2)
{
ts1 = new TimeSpan(seeftime.AddMinutes(Convert.ToInt32(config.webMoney40)).Ticks);
ts2 = new TimeSpan(DateTime.Now.Ticks);
ts = ts1.Subtract(ts2).Duration();
SJC = (ts.Days * 24 * 3600 + ts.Hours * 3600 + ts.Minutes * 60 + ts.Seconds).ToString();
int hours = (ts.Days * 24 + ts.Hours);
if (hours > 0)
{
str = "<font color='#979505'>已支付,确认收到倒计时&nbsp;" + hours + "&nbsp;计时</font>";
}
else
{
str = "<font color='#979505'>已支付,确认收到倒计时&nbsp;<label class='showtime' id='time_" + seeftime.ToString("yyyyMMddHHmmss") + "' time='" + SJC + "'>" + ts.Minutes + "&nbsp;分&nbsp;" + ts.Seconds + "&nbsp;秒</label></font>";
}
str2 = "<span class='button abtn' onclick='showtype(1)'>确认收到</span>&nbsp;<span class='button abtn' onclick='showtype(2)'>举报</span>";
}
else
{
str = "<font color='Red'>超时未确认收到</font>";
}
break;
case 3:
str = "<font color='Green'>已完成</font>";
break;
}
}
else if (t == 2)
{
switch (ProZT)
{
case 0:
str = "<font color='#bbbbbb'>未达成</font>";
//str2 = "<span class=\"abtn\" onclick=\"showqyjy(1);\">确认交易</span>";
break;
case 1:
dt1 = seeftime.AddMinutes(Convert.ToInt32(config.webMoney40));
dt2 = DateTime.Now;
if (dt1 >= dt2)
{
ts1 = new TimeSpan(seeftime.AddMinutes(Convert.ToInt32(config.webMoney40)).Ticks);
ts2 = new TimeSpan(DateTime.Now.Ticks);
ts = ts1.Subtract(ts2).Duration();
SJC = (ts.Days * 24 * 3600 + ts.Hours * 3600 + ts.Minutes * 60 + ts.Seconds).ToString();
int hours = (ts.Days * 24 + ts.Hours);
if (hours > 0)
{
str = "<font color='#0c5fb2'>交流中,确认支付倒计时&nbsp;" + hours + "&nbsp;计时</font>";
}
else
{
str = "<font color='#0c5fb2'>交流中,确认支付倒计时&nbsp;<label class='showtime' id='time_" + seeftime.ToString("yyyyMMddHHmmss") + "' time='" + SJC + "'>" + ts.Minutes + "&nbsp;分&nbsp;" + ts.Seconds + "&nbsp;秒</label></font>";
}
str2 = "<span class='button abtn' onclick='showtype(0)'>确认支付</span>";
}
else
{
str = "<font color='Red'>超时未确认支付</font>";
}
break;
case 2:
dt1 = seeftime.AddMinutes(Convert.ToInt32(config.webMoney40));
dt2 = DateTime.Now;
if (dt1 >= dt2)
{
ts1 = new TimeSpan(seeftime.AddMinutes(Convert.ToInt32(config.webMoney40)).Ticks);
ts2 = new TimeSpan(DateTime.Now.Ticks);
ts = ts1.Subtract(ts2).Duration();
SJC = (ts.Days * 24 * 3600 + ts.Hours * 3600 + ts.Minutes * 60 + ts.Seconds).ToString();
int hours = (ts.Days * 24 + ts.Hours);
if (hours > 0)
{
str = "<font color='#979505'>已支付,确认收到倒计时&nbsp;" + hours + "&nbsp;计时</font>";
}
else
{
str = "<font color='#979505'>已支付,确认收到倒计时&nbsp;<label class='showtime' id='time_" + seeftime.ToString("yyyyMMddHHmmss") + "' time='" + SJC + "'>" + ts.Minutes + "&nbsp;分&nbsp;" + ts.Seconds + "&nbsp;秒</label></font>";
}
str2 = "<span class='button abtn' onclick='showtype(1)'>确认收到</span>";
}
else
{
str = "<font color='Red'>超时未确认收到</font>";
str2 = "<span class='button abtn' onclick='showtype(1)'>确认收到</span>";
}
break;
case 3:
str = "<font color='Green'>已完成</font>";
break;
}
}
string[] stra = new string[2];
stra[0] = str;
stra[1] = str2;
return stra;
}
/// <summary>
/// 获取快递公司名称
/// </summary>
/// <returns></returns>
public static string Getkdcompay(string kdcompay)
{
string str = "";
switch (kdcompay)
{
case "sf":
str = "顺丰";
break;
case "sto":
str = "申通";
break;
case "yt":
str = "圆通";
break;
case "yd":
str = "韵达";
break;
case "tt":
str = "天天";
break;
case "ems":
str = "EMS";
break;
case "zto":
str = "中通";
break;
case "ht":
str = "百世快递";
break;
case "qf":
str = "全峰";
break;
case "db":
str = "德邦";
break;
case "gt":
str = "国通";
break;
case "rfd":
str = "如风达";
break;
case "jd":
str = "京东快递";
break;
case "zjs":
str = "宅急送";
break;
case "emsg":
str = "EMS国际";
break;
case "fedex":
str = "Fedex国际";
break;
case "yzgn":
str = "邮政国内(挂号信)";
break;
case "ups":
str = "UPS国际快递";
break;
case "ztky":
str = "中铁快运";
break;
case "anwl":
str = "安能物流";
break;
case "auto":
str = "自提";
break;
}
return str;
}
/// <summary>
/// 获取快递公司编号
/// </summary>
/// <returns></returns>
public static string GetkdcompayPH(string kdcompay)
{
string str = "";
switch (kdcompay)
{
case "sf":
str = "SF";
break;
case "sto":
str = "STO";
break;
case "yt":
str = "YTO";
break;
case "yd":
str = "YUNDA";
break;
case "tt":
str = "HHTT";
break;
case "ems":
str = "EMS";
break;
case "zto":
str = "ZTO";
break;
case "ht":
str = "BEST";
break;
case "jtsd":
str = "JTSD";
break;
case "qf":
str = "QF";
break;
case "db":
str = "DB";
break;
case "gt":
str = "GT";
break;
case "rfd":
str = "RFD";
break;
case "jd":
str = "JDL";
break;
case "zjs":
str = "ZJS";
break;
case "emsg":
str = "emsg";
break;
case "fedex":
str = "Fedex";
break;
case "yzgn":
str = "yzgn";
break;
case "ups":
str = "UPS";
break;
case "ztky":
str = "ZTKY";
break;
case "anwl":
str = "ANWL";
break;
case "auto":
str = "自提";
break;
}
return str;
}
/// <summary>
/// 按年月日生产文件夹 格式 /YYYY/MM/DD
/// </summary>
public static string GetDateString()
{
StringBuilder sb = new StringBuilder();
sb.Append(DateTime.Now.Year);
sb.Append("\\");
sb.Append(DateTime.Now.Month);
sb.Append("\\");
sb.Append(DateTime.Now.Day);
sb.Append("\\");
return sb.ToString();
}
/// <summary>
/// 生成GUID字符串
/// </summary>
public static string GetGuidString()
{
return Guid.NewGuid().ToString("N");
}
/// <summary>
/// 判断是否为允许的缩略图尺寸
/// </summary>
public static bool Is_ThumbNail_AllowSizes(string request_size)
{
request_size = request_size.Trim().ToLower();
if (request_size == "") return false;
string[] sizes = ThumbNail_AllowSizes.Split('|');
foreach (string size in sizes)
{
if (request_size.Equals(size, StringComparison.OrdinalIgnoreCase)) return true;
}
return false;
}
/// <summary>
/// 是否为允许上传的文件类型
/// </summary>
public static bool Is_Allow_File_Types(string extname)
{
bool isBool = false;
extname = extname.Trim();
if (extname == "")
{
return isBool;
}
string[] exts = new Config("").webUpType.Split(',');
foreach (string ext in exts)
{
if (ext.Equals(extname, StringComparison.OrdinalIgnoreCase))
{
isBool = true;
break;
}
}
return isBool;
}
/// <summary>
/// 缩略图大小
/// </summary>
public static string ThumbNail_AllowSizes
{
get
{
return new Config("").webImgAllowSize;
}
}
/// <summary>
/// 获取缩略图
/// </summary>
public static string GetCoverPic(string picPath, string picSize, string itmode)
{
string rtnValue = string.Empty;
Config config = new Config("");
return "/GetFiles.ashx?image=" + System.Web.HttpUtility.UrlEncode(picPath) + "&itsize=" + picSize + "&itmode=" + itmode;
}
/// <summary>
/// 删除指定文件
/// </summary>
public static void DeleteFile(string path)
{
if (File.Exists(path))
{
File.Delete(path);
}
}
//发送Email
public static void SendEmail(String strEmail, String strSubject, String strBody)
{
//下面一段设置信件内容
if (strEmail.IndexOf("@") != -1)
{
MailMessage mmsg = new MailMessage();
mmsg.Subject = strSubject;
mmsg.BodyFormat = MailFormat.Html;
mmsg.Body = strBody;
mmsg.BodyEncoding = Encoding.UTF8;
//优先级
mmsg.Priority = MailPriority.High;
mmsg.From = "zdyhft@126.com";
mmsg.To = strEmail;
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
//用户名
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "zdyhft");
//密码
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "KUEAHPBQOYNDLLQS");//snghymwiphorjgag
//端口
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);
//使用SSL
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
//Smtp服务器
SmtpMail.SmtpServer = "smtp.126.com";
SmtpMail.Send(mmsg);
}
}
//备份数据库
public static void BackUpData(int p, string apath)
{
string ServerName = ConfigurationManager.AppSettings["ServerName"];
string UserID = ConfigurationManager.AppSettings["UserID"];
string UserPwd = ConfigurationManager.AppSettings["UserPwd"];
string DatabaseName = ConfigurationManager.AppSettings["DatabaseName"];
string deviceName = DatabaseName + "_Data_" + DateTime.Now.ToString("yyyy_MM_dd", DateTimeFormatInfo.InvariantInfo) + ".bak";
if (p == 1)
{
deviceName = DatabaseName + "_Data_" + DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss", DateTimeFormatInfo.InvariantInfo) + ".bak";
}
string selfName = ConfigurationManager.AppSettings["selfName"] + deviceName;
string remark = "数据备份";
//◆数据备份:
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
oBackup.Action = 0;
oBackup.Initialize = true;
SQLDMO.BackupSink_PercentCompleteEventHandler pceh = new SQLDMO.BackupSink_PercentCompleteEventHandler(Step);
oBackup.PercentComplete += pceh;
oSQLServer.LoginSecure = false;
oSQLServer.Connect(ServerName, UserID, UserPwd);
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = DatabaseName;//数据库名
string path = "";
if (apath != "")
{
path = apath + selfName;
}
else
{
path = System.Web.HttpContext.Current.Request.PhysicalApplicationPath.ToString() + selfName;
}
oBackup.Files = path;//文件路径
oBackup.BackupSetName = deviceName;//备份名称
oBackup.BackupSetDescription = remark;//备份描述
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
}
//还原数据库
public static void DbRestore(string FileName)
{
string ServerName = ConfigurationManager.AppSettings["ServerName"];
string UserID = ConfigurationManager.AppSettings["UserID"];
string UserPwd = ConfigurationManager.AppSettings["UserPwd"];
string DatabaseName = ConfigurationManager.AppSettings["DatabaseName"];
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
oSQLServer.LoginSecure = false;
oSQLServer.Connect(ServerName, UserID, UserPwd);
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database = DatabaseName;
oRestore.Files = System.Web.HttpContext.Current.Server.MapPath(FileName);
oRestore.FileNumber = 1;
oRestore.ReplaceDatabase = true;
oRestore.SQLRestore(oSQLServer);
}
/// <summary>
/// 显示还原进度条
/// </summary>
private static void Step(string message, int percent)
{
//this.pBar1.Value = percent;
}
///<summary>
///遍文件夹下的文件
///</summary>
///<param name="ObjDirPath">文件夹</param>
private static DataTable GetFilesToDataTable(string ObjDirPath)
{
//构造DataTABLE
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("FilePath", typeof(string)));
dt.Columns.Add(new DataColumn("FileName", typeof(string)));
dt.Columns.Add(new DataColumn("FileLength", typeof(int)));
dt.Columns.Add(new DataColumn("FileLastWriteTime", typeof(string)));
DataRow dr;
DirectoryInfo SourceDir = new DirectoryInfo(ObjDirPath);
foreach (FileSystemInfo FSI in SourceDir.GetFileSystemInfos())
{
string FilePath = FSI.FullName;
if (FilePath.IndexOf("App_Data") != -1)
{
FilePath = "\\" + FilePath.Substring(FilePath.LastIndexOf("App_Data"));
}
else
{
FilePath = "\\" + FilePath.Substring(FilePath.IndexOf("dd"));
}
dr = dt.NewRow();
dr[0] = FilePath;//文件路径
dr[1] = Path.GetFileName(System.Web.HttpContext.Current.Server.MapPath("/" + FilePath));//文件名
//获取文件大小
FileInfo FI = new FileInfo(System.Web.HttpContext.Current.Server.MapPath("/" + FilePath));
dr[2] = Convert.ToInt32(FI.Length / 1000);//获取的是字节byte还需要转换为千字节KB
string LastWriteTime = FI.LastWriteTime.ToString();
dr[3] = CDate(LastWriteTime);
dt.Rows.Add(dr);
}
return dt;
}
///<param name="ObjDirPath">文件夹</param>
public static DataTable GetFilesDataView(int PageIndex, string ObjDirPath, out int rcount)
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("FilePath", typeof(string)));
dt.Columns.Add(new DataColumn("FileName", typeof(string)));
dt.Columns.Add(new DataColumn("FileLength", typeof(int)));
dt.Columns.Add(new DataColumn("FileLastWriteTime", typeof(string)));
DataRow dr;
int j = 0;
DataView dv = GetFilesToDataTable(ObjDirPath).DefaultView;
dv.Sort = "FileLastWriteTime Desc";
if (dv.Count > 0)
{
int pagedata = 10 * (PageIndex - 1);
int pagedata2 = 10 * (PageIndex);
for (int i = dv.Count - 1; i >= 0; i--)
{
if (j >= pagedata && j < pagedata2)
{
dr = dt.NewRow();
dr[0] = dv.Table.Rows[i]["FilePath"].ToString();//文件路径
dr[1] = dv.Table.Rows[i]["FileName"].ToString();//文件名
dr[2] = dv.Table.Rows[i]["FileLength"].ToString();//获取的是字节byte还需要转换为千字节KB
dr[3] = dv.Table.Rows[i]["FileLastWriteTime"].ToString();
dt.Rows.Add(dr);
}
j += 1;
}
}
rcount = j;
return dt;
}
public static string CDate(string Date)
{
DateTime dt = Convert.ToDateTime(Date);
string year = dt.Year.ToString();
string Month = dt.Month.ToString();
if (Month.Length == 1)
{
Month = "0" + Month;
}
string Day = dt.Day.ToString();
if (Day.Length == 1)
{
Day = "0" + Day;
}
string Hour = dt.Hour.ToString();
if (Hour.Length == 1)
{
Hour = "0" + Hour;
}
string Minute = dt.Minute.ToString();
if (Minute.Length == 1)
{
Minute = "0" + Minute;
}
string Second = dt.Second.ToString();
if (Second.Length == 1)
{
Second = "0" + Second;
}
return year + "-" + Month + "-" + Day + " " + Hour + ":" + Minute + ":" + Second;
}
/// <summary>
/// 执行导出
/// </summary>
/// <param name="DataTable">要导出的DataTable</param>
/// <param name="strExcelFileName">要导出的文件名</param>
public static void doExport(DataTable dt, string strExcelFileName)
{
Excel.Application excel = new Excel.Application();
int rowIndex = 1;
int colIndex = 0;
excel.Application.Workbooks.Add(true);
System.Data.DataTable table = dt;
foreach (DataColumn col in table.Columns)
{
colIndex++;
excel.Cells[1, colIndex] = col.ColumnName;
}
foreach (DataRow row in table.Rows)
{
rowIndex++;
colIndex = 0;
foreach (DataColumn col in table.Columns)
{
colIndex++;
excel.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
}
}
excel.Visible = false;
//excel.Sheets[0] = "sss";
excel.ActiveWorkbook.SaveAs(strExcelFileName, Excel.XlFileFormat.xlExcel9795, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null);
excel.Quit();
excel = null;
GC.Collect();//垃圾回收
}
public static string CIntro(string strIntro)
{
strIntro = strIntro.ToLower();
string str = "";
Regex R1 = new Regex(@"<([\S\s\n\t]*?)>");
Match M1 = R1.Match(strIntro);
while (M1.Success)
{
str = M1.Groups[1].ToString();
strIntro = strIntro.Replace("<" + str + ">", "");
M1 = M1.NextMatch();
}
strIntro = strIntro.Replace("&nbsp;", "");
strIntro = strIntro.Replace(" ", "");
strIntro = strIntro.Replace(" ", "");
strIntro = strIntro.Replace("●", "");
strIntro = strIntro.Replace("<br>", "");
strIntro = strIntro.Replace("\n", "");
strIntro = strIntro.Replace("\t", "");
strIntro = strIntro.Replace("\r", "");
return strIntro;
}
public static string CYIntro(string strIntro)
{
string str = "";
Regex R1 = new Regex(@"<([\S\s\n\t]*?)>");
Match M1 = R1.Match(strIntro);
while (M1.Success)
{
str = M1.Groups[1].ToString();
strIntro = strIntro.Replace("<" + str + ">", "");
M1 = M1.NextMatch();
}
strIntro = strIntro.Replace("&nbsp;", "");
strIntro = strIntro.Replace(" ", "");
strIntro = strIntro.Replace(" ", "");
strIntro = strIntro.Replace("●", "");
strIntro = strIntro.Replace("<br>", "");
strIntro = strIntro.Replace("\n", "");
strIntro = strIntro.Replace("\t", "");
strIntro = strIntro.Replace("\r", "");
return strIntro;
}
public static string CIntro0(string strIntro)
{
if (!String.IsNullOrEmpty(strIntro))
{
strIntro = strIntro.Replace("\n", "");
strIntro = strIntro.Replace("\t", "");
strIntro = strIntro.Replace("\r", "");
}
return strIntro;
}
/// <summary>
/// 截取中英文混合字符串
/// </summary>
/// <param name="original">原始字符串</param>
/// <param name="length">截取长度</param>
/// <param name="fill">截取串小于原始串时,尾部附加字符串</param>
/// <returns></returns>
public static String CnCutString(String original, Int32 length, String fill)
{
Regex CnRegex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled);
Char[] CharArray = original.ToCharArray();
Int32 tmplength = 0;
for (Int32 i = 0; i < CharArray.Length; i++)
{
tmplength += CnRegex.IsMatch(CharArray[i].ToString()) ? 2 : 1;
if (tmplength > length) return original.Substring(0, i - fill.Length) + fill;
}
return original;
}
// <summary>
/// 截取字符串
/// </summary>
/// <param name="original">原始字符串</param>
/// <param name="length">截取长度</param>
/// <param name="fill">截取串小于原始串时,尾部附加字符串</param>
/// <returns></returns>
public static String CnCutString2(String original, Int32 length, String fill)
{
if (original.Length > length) original = original.Substring(0, length) + fill;
return original;
}
#region
/*public static string sendsms(string mobile, string strContent)
{
string postReturn = "";
try
{
//string sendurl = "http://gbk.sms.webchinese.cn/";
string sendurl = "http://api.sms.cn/sms/";
StringBuilder sbTemp = new StringBuilder();
string uid = "woerke";
string pwd = "hzabc567";
string Pass = FormsAuthentication.HashPasswordForStoringInConfigFile(pwd + uid, "MD5"); //密码进行MD5加密
//POST 传值
//sbTemp.Append("?Uid=" + HttpUtility.UrlEncode(uid) + "&Key=" + HttpUtility.UrlEncode(Pass) + "&smsMob=" + HttpUtility.UrlEncode(mobile) + "&csmsText=" + HttpUtility.UrlEncode(strContent));
//postReturn = GetHtmlFromUrl(sendurl + sbTemp.ToString());
sbTemp.Append("ac=send&uid=" + uid + "&pwd=" + Pass + "&mobile=" + mobile + "&content=" + HttpUtility.UrlEncode(strContent));
byte[] bTemp = System.Text.Encoding.GetEncoding("GBK").GetBytes(sbTemp.ToString());
Getsms sms = (Getsms)Getsmsjson(doPostRequest(sendurl, bTemp));
postReturn = sms.stat;
Mtxfw.Utility.Common.WriteHtml("/weixin/sendsms0.txt", postReturn + "|" + sendurl + sbTemp.ToString());
}
catch (Exception err)
{
postReturn = "发生错误";
Mtxfw.Utility.Common.WriteHtml("/weixin/sendsms.txt", err.ToString());
}
return postReturn;
}*/
public static object Getsmsjson(string json)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Deserialize<Getsms>(json);
}
public static void sendsms(string mobile, string TemplateID, string TemplateParams, Utility.Config config)
{
try
{
// 必要步骤:
// 实例化一个认证对象,入参需要传入腾讯云账户密钥对 SecretIdSecretKey。
// 本示例采用从环境变量读取的方式,则需要在环境变量中先设置这两个值。
// 您也可以直接将密钥对写入代码中,但是注意不要复制、上传或分享代码,以免泄露密钥对危及您的财产安全。
Credential cred = new Credential
{
SecretId = "AKIDoY6RYR8cuzrWyCC6oJbfW9YkiSzIPJ0T",
SecretKey = "INErGSQAgy8GJGC1e6NTbbOzOZifQyJQ"
};
// 实例化一个 client 选项,可选的,没有特殊需求可以跳过
ClientProfile clientProfile = new ClientProfile();
// 指定签名算法(默认为 HmacSHA256
clientProfile.SignMethod = ClientProfile.SIGN_SHA1;
// 非必要步骤
// 实例化一个客户端配置对象,可以指定超时时间等配置
HttpProfile httpProfile = new HttpProfile();
// SDK 默认使用 POST 方法。
// 如果您一定要使用 GET 方法可以在这里设置。GET 方法无法处理一些较大的请求。
httpProfile.ReqMethod = "POST";
// SDK 有默认的超时时间,非必要请不要进行调整。
// 如有需要请在代码中查阅以获取最新的默认值。
httpProfile.Timeout = 120; // 请求连接超时时间单位为秒默认值为60
// SDK 会自动指定域名。通常无需指定域名,但如果您访问的是金融区的服务,则必须手动指定域名。
// 例如云服务器的上海金融区域名cvm.ap-shanghai-fsi.tencentcloudapi.com
// 代理服务器,当您的环境下有代理服务器时设定
httpProfile.WebProxy = Environment.GetEnvironmentVariable("HTTPS_PROXY");
clientProfile.HttpProfile = httpProfile;
// 实例化要请求产品(以 CVM 为例)的 client 对象
// 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou或者引用预设的常量clientProfile 是可选的
SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile);
SendSmsRequest req = new SendSmsRequest();
req.PhoneNumberSet = ("+86" + mobile).Split('|');
req.TemplateID = TemplateID;
if (TemplateParams != null)
{
req.TemplateParamSet = TemplateParams.Split('|');
}
req.SmsSdkAppid = "1401043931";
req.Sign = "银花优选";
SendSmsResponse res = client.SendSmsSync(req);
// 输出 JSON 格式的字符串回包
//Mtxfw.Utility.Common.WriteHtml("/weixin/sendsms.txt", AbstractModel.ToJsonString(res));
}
catch (Exception err)
{
Mtxfw.Utility.Common.WriteHtml("/weixin/sendsmserr.txt", err.ToString());
}
}
public static String sha256(String data)
{
try
{
SHA256 sha256 = SHA256Managed.Create();
byte[] resultByteArray = sha256.ComputeHash(System.Text.Encoding.UTF8.GetBytes(data));
return ByteArrayToHex(resultByteArray);
}
catch (Exception e)
{
e.ToString();
return null;
}
}
// 将二进制的数值转换为 16 进制字符串,如 "abc" => "616263"
private static string ByteArrayToHex(byte[] byteArray)
{
string returnStr = "";
if (byteArray != null)
{
for (int i = 0; i < byteArray.Length; i++)
{
returnStr += byteArray[i].ToString("x2");
}
}
return returnStr;
}
//POST方式发送得结果
private static String doPostRequest(string url, byte[] bData)
{
System.Net.HttpWebRequest hwRequest;
System.Net.HttpWebResponse hwResponse;
string strResult = string.Empty;
try
{
hwRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
hwRequest.Timeout = 5000;
hwRequest.Method = "POST";
hwRequest.ContentType = "application/x-www-form-urlencoded";
hwRequest.ContentLength = bData.Length;
System.IO.Stream smWrite = hwRequest.GetRequestStream();
smWrite.Write(bData, 0, bData.Length);
smWrite.Close();
}
catch (System.Exception err)
{
WriteErrLog(err.ToString());
return strResult;
}
//get response
try
{
hwResponse = (System.Net.HttpWebResponse)hwRequest.GetResponse();
StreamReader srReader = new StreamReader(hwResponse.GetResponseStream(), Encoding.ASCII);
strResult = srReader.ReadToEnd();
srReader.Close();
hwResponse.Close();
}
catch (System.Exception err)
{
WriteErrLog(err.ToString());
}
return strResult;
}
private static void WriteErrLog(string strErr)
{
Console.WriteLine(strErr);
System.Diagnostics.Trace.WriteLine(strErr);
}
#endregion
#region
public static string SFZSMYZ(string sfz, string name)
{
String host = "http://idcard.market.alicloudapi.com";
String path = "/lianzhuo/idcard";
String method = "GET";
String appcode = "d3c296a9414647479e24ccb0575fdeef";
String querys = "cardno=" + sfz + "&name=" + name;
String bodys = "";
String url = host + path;
HttpWebRequest httpRequest = null;
HttpWebResponse httpResponse = null;
if (0 < querys.Length)
{
url = url + "?" + querys;
}
httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.Method = method;
httpRequest.Headers.Add("Authorization", "APPCODE " + appcode);
if (0 < bodys.Length)
{
byte[] data = Encoding.UTF8.GetBytes(bodys);
using (Stream stream = httpRequest.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
try
{
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
}
catch (WebException ex)
{
httpResponse = (HttpWebResponse)ex.Response;
}
Stream st = httpResponse.GetResponseStream();
StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
string strResult = reader.ReadToEnd();
return strResult;
}
#endregion
#region
public static String HMACSHA1Text(String EncryptText, String EncryptKey)
{
HMACSHA1 hmacsha1 = new HMACSHA1();
hmacsha1.Key = System.Text.Encoding.UTF8.GetBytes(EncryptKey);
byte[] dataBuffer = System.Text.Encoding.UTF8.GetBytes(EncryptText);
byte[] hashBytes = hmacsha1.ComputeHash(dataBuffer);
return Convert.ToBase64String(hashBytes);
}
public static string GetKDXX(string express_id, string express_name, string mobile)
{
String url = "https://service-hjszen58-1316452486.gz.apigw.tencentcs.com/release/express/query";
String method = "POST";
String querys = "";
String postData = "mobile=" + mobile + "&waybillNo=" + express_id;
//云市场分配的密钥Id
String secretId = "AKIDk2njd1xf67uv6zl1n9h0ev7xrz0g1uo2902j";
//云市场分配的密钥Key
String secretKey = "aBhZBamLCu14AdfJ9m9rB9ThylfvbwjHJc05WgDz";
String source = "market";
String dt = DateTime.UtcNow.GetDateTimeFormats('r')[0];
url = url + "?" + querys;
String signStr = "x-date: " + dt + "\n" + "x-source: " + source;
String sign = HMACSHA1Text(signStr, secretKey);
String auth = "hmac id=\"" + secretId + "\", algorithm=\"hmac-sha1\", headers=\"x-date x-source\", signature=\"";
auth = auth + sign + "\"";
HttpWebRequest httpRequest = null;
HttpWebResponse httpResponse = null;
if (url.Contains("https://"))
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
}
else
{
httpRequest = (HttpWebRequest)WebRequest.Create(url);
}
httpRequest.Method = method;
httpRequest.ContentLength = postData.Length;
httpRequest.ContentType = "application/x-www-form-urlencoded";
httpRequest.Headers.Add("Authorization", auth);
httpRequest.Headers.Add("X-Source", source);
httpRequest.Headers.Add("X-Date", dt);
httpRequest.GetRequestStream().Write(System.Text.Encoding.ASCII.GetBytes(postData), 0, postData.Length);
try
{
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
}
catch (WebException ex)
{
httpResponse = (HttpWebResponse)ex.Response;
}
//Console.WriteLine(httpResponse.StatusCode);
//Console.WriteLine(httpResponse.Headers);
Stream st = httpResponse.GetResponseStream();
StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
string strResult = reader.ReadToEnd();
return strResult;
}
public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
#endregion
#region IP
public static string GetIP
{
get
{
string result = String.Empty;
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (result != null && result != String.Empty)
{
//可能有代理
if (result.IndexOf(".") == -1) //没有"."肯定是非IPv4格式
result = null;
else
{
if (result.IndexOf(",") != -1)
{
//有","估计多个代理。取第一个不是内网的IP。
result = result.Replace(" ", "").Replace("\"", "");
string[] temparyip = result.Split(",;".ToCharArray());
for (int i = 0; i < temparyip.Length; i++)
{
if (IsIPAddress(temparyip[i])
&& temparyip[i].Substring(0, 3) != "10."
&& temparyip[i].Substring(0, 7) != "192.168"
&& temparyip[i].Substring(0, 7) != "172.16.")
{
return temparyip[i]; //找到不是内网的地址
}
}
}
else if (IsIPAddress(result)) //代理即是IP格式
return result;
else
result = null; //代理中的内容 非IP取IP
}
}
//string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=String.Empty)?HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]:HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (null == result || result == String.Empty)
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (result == null || result == String.Empty)
result = HttpContext.Current.Request.UserHostAddress;
return result;
}
}
/**/
/// <summary>
/// 判断是否是IP地址格式 0.0.0.0
/// </summary>
/// <param name="str1">待判断的IP地址</param>
/// <returns>true or false</returns>
public static bool IsIPAddress(string str1)
{
if (str1 == null || str1 == string.Empty || str1.Length < 7 || str1.Length > 15) return false;
string regformat = @"^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$";
Regex regex = new Regex(regformat, RegexOptions.IgnoreCase);
return regex.IsMatch(str1);
}
#endregion
#region IP
/// <summary>
/// get MacAddress
/// </summary>
/// <returns></returns>
public static string GetMac()
{
string MacAddress = String.Empty;
try
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
{
MacAddress = mo["MacAddress"].ToString();
break;
}
}
moc = null;
mc = null;
// 将MAC地址用-分割
MacAddress = MacAddress.Replace(":", "-");
}
catch
{
MacAddress = "";
}
return MacAddress;
}
#endregion
#region GET数据
//GET数据
public static string getPage2(String url, string strr, string pm)
{
HttpWebResponse res = null;
string strResult = "";
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
req.KeepAlive = true;
req.AllowAutoRedirect = false;
req.Referer = strr;
req.Accept = "*/*";
req.Timeout = 10000;
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)";
res = (HttpWebResponse)req.GetResponse();
Stream ReceiveStream = res.GetResponseStream();
//将 byte 数组 转换为 string textBox2.Text = Encoding.Default.GetString(temp);
Encoding encode = System.Text.Encoding.GetEncoding(pm);
StreamReader sr = new StreamReader(ReceiveStream, encode);
Char[] read = new Char[256];
int count = sr.Read(read, 0, 256);
while (count > 0)
{
string str = new string(read, 0, count);
strResult += str;
count = sr.Read(read, 0, 256);
}
req.GetResponse().Close();
}
catch (Exception e)
{
strResult = e.ToString();
}
finally
{
if (res != null)
{
res.Close();
}
}
return strResult;
}
//GET数据
public static string getPage2(String url, string strr, string pm, bool IFJSON, bool IFPOST, string paramString)
{
System.GC.Collect();
HttpWebResponse res = null;
string strResult = "";
try
{
HttpWebRequest req;
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
| SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12;
req = (HttpWebRequest)HttpWebRequest.Create(url);
req.ProtocolVersion = HttpVersion.Version10;
}
else
{
req = (HttpWebRequest)HttpWebRequest.Create(url);
}
if (!IFPOST)
{
req.Method = "GET";
}
else
{
req.Method = "POST";
}
req.ContentType = "application/x-www-form-urlencoded";
if (IFJSON)
{
req.ContentType = "application/json";
}
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
if (IFPOST)
{
//Post 参数
if (paramString != "")
{
byte[] data = Encoding.UTF8.GetBytes(paramString);
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
}
}
using (WebResponse myWebResponse = req.GetResponse())
{
StreamReader readStream = new StreamReader(myWebResponse.GetResponseStream(), System.Text.Encoding.GetEncoding(pm));
strResult = readStream.ReadToEnd();
}
}
catch (Exception e)
{
strResult = e.ToString();
}
finally
{
if (res != null)
{
res.Close();
}
}
return strResult;
}
#endregion
#region JSon数据
/// <summary>
/// 返回JSon数据
/// </summary>
/// <param name="JSONData">要处理的JSON数据</param>
/// <param name="Url">要提交的URL</param>
/// <returns>返回的JSON处理字符串</returns>
public static string GetResponseData(string JSONData, string Url, string contenttype)
{
byte[] bytes = Encoding.UTF8.GetBytes(JSONData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentLength = bytes.Length;
request.ContentType = contenttype;// "text/xml";
Stream reqstream = request.GetRequestStream();
reqstream.Write(bytes, 0, bytes.Length);
//声明一个HttpWebRequest请求
request.Timeout = 90000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.UTF8;
StreamReader streamReader = new StreamReader(streamReceive, encoding);
string strResult = streamReader.ReadToEnd();
streamReceive.Dispose();
streamReader.Dispose();
return strResult;
}
#endregion
#region
public static string LoadTemplet(string what)
{
StreamReader reader = new StreamReader(HttpContext.Current.Server.MapPath(what), Encoding.GetEncoding("utf-8"));
string str = reader.ReadToEnd();
reader.Close();
return str;
}
#endregion
#region
public static void WriteHtml(string what, string MyHtml)
{
if (!Directory.Exists(HttpContext.Current.Server.MapPath(what.Substring(0, what.LastIndexOf("/")))))
{
Directory.CreateDirectory(HttpContext.Current.Server.MapPath(what.Substring(0, what.LastIndexOf("/"))));
}
StreamWriter writer = new StreamWriter(HttpContext.Current.Server.MapPath(what), false, Encoding.GetEncoding("utf-8"), 1);
writer.Write(MyHtml);
writer.Close();
}
#endregion
#region
//真正判断文件类型的关键函数
public static bool IsAllowedExtension(string FileName)
{
System.IO.FileStream fs = new System.IO.FileStream(FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
string fileclass = "";
//这里的位长要具体判断.
/*文件扩展名说明
* 255216 jpg
* 208207 doc xls ppt wps
* 8075 docx pptx xlsx zip
* 5150 txt
* 8297 rar
* 7790 exe
* 3780 pdf
*
* 4946/104116 txt
* 7173 gif
* 255216 jpg
* 13780 png
* 6677 bmp
* 239187 txt,aspx,asp,sql
* 208207 xls.doc.ppt
* 6063 xml
* 6033 htm,html
* 4742 js
* 8075 xlsx,zip,pptx,mmap,zip
* 8297 rar
* 01 accdb,mdb
* 7790 exe,dll
* 5666 psd
* 255254 rdp
* 10056 bt种子
* 64101 bat
* 4059 sgf
* 7076 flv
* 255251 mp3
* 00 mp4
*/
byte buffer;
try
{
buffer = r.ReadByte();
fileclass = buffer.ToString();
buffer = r.ReadByte();
fileclass += buffer.ToString();
}
catch
{
}
r.Close();
fs.Close();
if (fileclass == "255216" || fileclass == "7173" || fileclass == "6677" || fileclass == "13780" || fileclass == "13780" || fileclass == "208207" || fileclass == "8075" || fileclass == "8297" || fileclass == "3780" || fileclass == "7076" || fileclass == "255251" || fileclass == "00")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
return true;
}
else
{
return false;
}
}
#endregion
#region html
//字符串转换成html
public static string InputText(string inputString)
{
StringBuilder builder = new StringBuilder();
if ((inputString != null) && (inputString != string.Empty))
{
for (int i = 0; i < inputString.Length; i++)
{
switch (inputString[i])
{
case '<':
{
builder.Append("&lt;");
continue;
}
case '>':
{
builder.Append("&gt;");
continue;
}
case '"':
{
builder.Append("&quot;");
continue;
}
}
builder.Append(inputString[i]);
}
builder.Replace("\n", "<br>");
builder.Replace("\040", "&nbsp;");
builder.Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
builder.Replace(" ", "&nbsp;");
}
return builder.ToString();
}
#endregion
#region
/// <summary>
/// 取得某月的第一天
/// </summary>
/// <param name="datetime">要取得月份第一天的时间</param>
/// <returns></returns>
public static DateTime FirstDayOfMonth(DateTime datetime)
{
return datetime.AddDays(1 - datetime.Day);
}
/**/
/// <summary>
/// 取得某月的最后一天
/// </summary>
/// <param name="datetime">要取得月份最后一天的时间</param>
/// <returns></returns>
public static DateTime LastDayOfMonth(DateTime datetime)
{
return datetime.AddDays(1 - datetime.Day).AddMonths(1).AddDays(-1);
}
/**/
/// <summary>
/// 取得上个月第一天
/// </summary>
/// <param name="datetime">要取得上个月第一天的当前时间</param>
/// <returns></returns>
public static DateTime FirstDayOfPreviousMonth(DateTime datetime)
{
return datetime.AddDays(1 - datetime.Day).AddMonths(-1);
}
/**/
/// <summary>
/// 取得上个月的最后一天
/// </summary>
/// <param name="datetime">要取得上个月最后一天的当前时间</param>
/// <returns></returns>
public static DateTime LastDayOfPrdviousMonth(DateTime datetime)
{
return datetime.AddDays(1 - datetime.Day).AddDays(-1);
}
#endregion
public static object Fromreturn_upload_shipping_info(string json)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Deserialize<return_upload_shipping_info>(json);
}
}
public class WXaccess_token
{
public String access_token { get; set; }
}
public class return_upload_shipping_info
{
public int errcode { get; set; }
public String errmsg { get; set; }
}
public class hjpay_returns0
{
public String statusCode { get; set; }
public String message { get; set; }
public hjpay_returns0_data data { get; set; }
}
public class hjpay_returns0_data
{
public String errorCode { get; set; }
public String errorDesc { get; set; }
public String userNo { get; set; }
public String merchantOrderNo { get; set; }
}
public class Code39
{
private Hashtable m_Code39 = new Hashtable();
private byte m_Magnify = 0;
/// <summary>
/// 放大倍数
/// </summary>
public byte Magnify { get { return m_Magnify; } set { m_Magnify = value; } }
private int m_Height = 40;
/// <summary>
/// 图形高
/// </summary>
public int Height { get { return m_Height; } set { m_Height = value; } }
private Font m_ViewFont = null;
/// <summary>
/// 字体大小
/// </summary>
public Font ViewFont { get { return m_ViewFont; } set { m_ViewFont = value; } }
public Code39()
{
m_Code39.Add("A", "1101010010110");
m_Code39.Add("B", "1011010010110");
m_Code39.Add("C", "1101101001010");
m_Code39.Add("D", "1010110010110");
m_Code39.Add("E", "1101011001010");
m_Code39.Add("F", "1011011001010");
m_Code39.Add("G", "1010100110110");
m_Code39.Add("H", "1101010011010");
m_Code39.Add("I", "1011010011010");
m_Code39.Add("J", "1010110011010");
m_Code39.Add("K", "1101010100110");
m_Code39.Add("L", "1011010100110");
m_Code39.Add("M", "1101101010010");
m_Code39.Add("N", "1010110100110");
m_Code39.Add("O", "1101011010010");
m_Code39.Add("P", "1011011010010");
m_Code39.Add("Q", "1010101100110");
m_Code39.Add("R", "1101010110010");
m_Code39.Add("S", "1011010110010");
m_Code39.Add("T", "1010110110010");
m_Code39.Add("U", "1100101010110");
m_Code39.Add("V", "1001101010110");
m_Code39.Add("W", "1100110101010");
m_Code39.Add("X", "1001011010110");
m_Code39.Add("Y", "1100101101010");
m_Code39.Add("Z", "1001101101010");
m_Code39.Add("0", "1010011011010");
m_Code39.Add("1", "1101001010110");
m_Code39.Add("2", "1011001010110");
m_Code39.Add("3", "1101100101010");
m_Code39.Add("4", "1010011010110");
m_Code39.Add("5", "1101001101010");
m_Code39.Add("6", "1011001101010");
m_Code39.Add("7", "1010010110110");
m_Code39.Add("8", "1101001011010");
m_Code39.Add("9", "1011001011010");
m_Code39.Add("+", "1001010010010");
m_Code39.Add("-", "1001010110110");
m_Code39.Add("*", "1001011011010");
m_Code39.Add("/", "1001001010010");
m_Code39.Add("%", "1010010010010");
m_Code39.Add("$", "1001001001010");
m_Code39.Add(".", "1100101011010");
m_Code39.Add(" ", "1001101011010");
}
public enum Code39Model
{
/// <summary>
/// 基本类别 1234567890ABC
/// </summary>
Code39Normal,
/// <summary>
/// 全ASCII方式 +A+B 来表示小写
/// </summary>
Code39FullAscII
}
/// <summary>
/// 获得条码图形
/// </summary>
/// <param name="p_Text">文字信息</param>
/// <param name="p_Model">类别</param>
/// <param name="p_StarChar">是否增加前后*号</param>
/// <param name="p_StarChar">是否显示数字</param>
/// <returns>图形</returns>
public Bitmap GetCodeImage(string p_Text, Code39Model p_Model, bool p_StarChar, bool IFShowNum)
{
string _ValueText = "";
string _CodeText = "";
char[] _ValueChar = null;
switch (p_Model)
{
case Code39Model.Code39Normal:
_ValueText = p_Text.ToUpper();
break;
default:
_ValueChar = p_Text.ToCharArray();
for (int i = 0; i != _ValueChar.Length; i++)
{
if ((int)_ValueChar[i] >= 97 && (int)_ValueChar[i] <= 122)
{
_ValueText += "+" + _ValueChar[i].ToString().ToUpper();
}
else
{
_ValueText += _ValueChar[i].ToString();
}
}
break;
}
_ValueChar = _ValueText.ToCharArray();
if (p_StarChar == true) _CodeText += m_Code39["*"];
for (int i = 0; i != _ValueChar.Length; i++)
{
if (p_StarChar == true && _ValueChar[i] == '*') throw new Exception("带有起始符号不能出现*");
object _CharCode = m_Code39[_ValueChar[i].ToString()];
if (_CharCode == null) throw new Exception("不可用的字符" + _ValueChar[i].ToString());
_CodeText += _CharCode.ToString();
}
if (p_StarChar == true) _CodeText += m_Code39["*"];
Bitmap _CodeBmp = GetImage(_CodeText);
if (IFShowNum)
{
GetViewImage(_CodeBmp, p_Text);
}
return _CodeBmp;
}
/// <summary>
/// 绘制编码图形
/// </summary>
/// <param name="p_Text">编码</param>
/// <returns>图形</returns>
private Bitmap GetImage(string p_Text)
{
char[] _Value = p_Text.ToCharArray();
//宽 == 需要绘制的数量*放大倍数 + 两个字的宽
Bitmap _CodeImage = new Bitmap(_Value.Length * ((int)m_Magnify + 1), (int)m_Height);
Graphics _Garphics = Graphics.FromImage(_CodeImage);
_Garphics.FillRectangle(Brushes.White, new Rectangle(0, 0, _CodeImage.Width, _CodeImage.Height));
int _LenEx = 0;
for (int i = 0; i != _Value.Length; i++)
{
int _DrawWidth = m_Magnify + 1;
if (_Value[i] == '1')
{
_Garphics.FillRectangle(Brushes.Black, new Rectangle(_LenEx, 0, _DrawWidth, m_Height));
}
else
{
_Garphics.FillRectangle(Brushes.White, new Rectangle(_LenEx, 0, _DrawWidth, m_Height));
}
_LenEx += _DrawWidth;
}
_Garphics.Dispose();
return _CodeImage;
}
/// <summary>
/// 绘制文字
/// </summary>
/// <param name="p_CodeImage">图形</param>
/// <param name="p_Text">文字</param>
private void GetViewImage(Bitmap p_CodeImage, string p_Text)
{
if (m_ViewFont == null) return;
Graphics _Graphics = Graphics.FromImage(p_CodeImage);
SizeF _FontSize = _Graphics.MeasureString(p_Text, m_ViewFont);
if (_FontSize.Width > p_CodeImage.Width || _FontSize.Height > p_CodeImage.Height - 20)
{
_Graphics.Dispose();
return;
}
int _StarHeight = p_CodeImage.Height - (int)_FontSize.Height;
_Graphics.FillRectangle(Brushes.White, new Rectangle(0, _StarHeight, p_CodeImage.Width, (int)_FontSize.Height));
int _StarWidth = (p_CodeImage.Width - (int)_FontSize.Width) / 2;
_Graphics.DrawString(p_Text, m_ViewFont, Brushes.Black, _StarWidth, _StarHeight);
_Graphics.Dispose();
}
}
public class Getsms
{
public String stat { get; set; }
public String message { get; set; }
}
public struct Block
{
/// <summary>
/// 区块位置
/// </summary>
public int Index { get; set; }
/// <summary>
/// 区块生成时间戳
/// </summary>
public string TimeStamp { get; set; }
/// <summary>
/// 心率数值
/// </summary>
public int BPM { get; set; }
/// <summary>
/// 区块 SHA-256 散列值
/// </summary>
public string Hash { get; set; }
/// <summary>
/// 前一个区块 SHA-256 散列值
/// </summary>
public string PrevHash { get; set; }
/// <summary>
/// 下一个区块生成难度
/// </summary>
public int Difficulty { get; set; }
/// <summary>
/// 随机值
/// </summary>
public string Nonce { get; set; }
}
}