1142 lines
38 KiB
C#
1142 lines
38 KiB
C#
/*
|
|
* 主要基类
|
|
* 肖俊
|
|
* 2012-5-9
|
|
*/
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Threading;
|
|
using System.Windows.Forms;
|
|
|
|
namespace AllBase
|
|
{
|
|
public static class BaseClass
|
|
{
|
|
#region oem贴牌参数
|
|
public static string AgentCode { get; set; } = "";
|
|
public static bool IsShowRegister { get; set; } = true;
|
|
public static bool IsShowOpenAccount { get; set; } = true;
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 版本ID
|
|
/// </summary>
|
|
public static int VersionCount = 558;
|
|
//public static int VersionCount = 558;
|
|
|
|
/// <summary>
|
|
/// 版本号
|
|
/// </summary>
|
|
public static string Varsion = (VersionCount / 100.0).ToString("f2");
|
|
public static string WebbrowerUrl = "";
|
|
public static string ToolName = "跨境达-管理工具";
|
|
public static string AgentName = "跨境达";
|
|
public static string ServiceQQ = "";
|
|
public static Image LoginImage = null;
|
|
public static Image LogoImage = null;
|
|
public static Icon Ico = null;
|
|
public static string MainPath = "kuajingda";
|
|
public static bool NoRegedit = false;
|
|
public static bool IsPinduoduo = false;
|
|
public static bool UserApi = true;
|
|
public static bool GroupMarket = false;
|
|
public static bool IsLoginSuccess = false;
|
|
/// <summary>
|
|
/// IP地址和名称
|
|
/// </summary>
|
|
public static string IPAddress = "";
|
|
public static string IPAddressName = "";
|
|
/// <summary>
|
|
/// 优先使用API
|
|
/// </summary>
|
|
public static bool UseApiFirst = false;
|
|
public static string PddUid = "";
|
|
|
|
/// <summary>
|
|
/// 启用新版签名验证算法
|
|
/// </summary>
|
|
public static bool NewSignatureAuth = true;
|
|
|
|
public static string IeFormCookies = "";
|
|
/// <summary>
|
|
/// 订单开始时间
|
|
/// </summary>
|
|
public static DateTime OrderBeginTime = DateTime.Now.AddDays(-60);
|
|
/// <summary>
|
|
/// 用于判断唯一性
|
|
/// </summary>
|
|
public static Dictionary<long, ProductBase> Products = new Dictionary<long, ProductBase>();
|
|
/// <summary>
|
|
/// 用于循环输出
|
|
/// </summary>
|
|
public static List<ProductBase> ProductUse = new List<ProductBase>();
|
|
/// <summary>
|
|
/// 进度条矩阵
|
|
/// </summary>
|
|
public static Dictionary<string, ProcessBase> ProcessList = new Dictionary<string, ProcessBase>();
|
|
/// <summary>
|
|
/// 上传过的
|
|
/// </summary>
|
|
public static List<string> ProductIds = new List<string>();
|
|
//public static int MaxValue, MinValue, ThisValue;
|
|
public static bool GetProductsSuccess = false;
|
|
|
|
public static bool SetProductView = false;
|
|
public static int TempSecond = 86400;
|
|
|
|
public static string OriginUrl = "http://mobile.yangkeduo.com";
|
|
public static string NewUrl = "https://yangkeduo.com";
|
|
//public static string ServerUrl = "http://localhost:9000";
|
|
public static string ServerUrl = "http://1.13.195.131:9000";
|
|
/// <summary>
|
|
/// 订单监控延迟
|
|
/// </summary>
|
|
public static int OrderStep = 5;
|
|
public static int RankPage = 3;
|
|
public static int Balance = 0;
|
|
/// <summary>
|
|
/// 采集最低销量
|
|
/// </summary>
|
|
public static int MinSales = 0;
|
|
public static int MinPercent = 0;
|
|
public static int MinLevel = 0;
|
|
public static int AlimamaPageCount = 0;
|
|
public static bool CloudTitle = false;
|
|
public static bool CloudBrand = false;
|
|
public static bool CloudSellerNick = false;
|
|
public static bool CloudProduct = false;
|
|
public static string NoKeyword = "";
|
|
public static bool ImageSheild = true;
|
|
public static string Conn = "";//"Max Pool Size = 512;Database='content';Data Source='sh-cdbrg-b674qssm.sql.tencentcdb.com';Port=62300;User Id='pinbaobao_user';Password='pinbaobao_pass_word123ZFd-';Charset=gbk;";
|
|
public static decimal MaxPrice = 0;
|
|
public static decimal MinPrice = 0;
|
|
public static decimal MinBackMoney = 0;
|
|
public static decimal Price = 5;
|
|
public static int TimeOut = 30;
|
|
public static int ThreadCount = 3;
|
|
public static int MainCatId = 0;
|
|
public static int GroupId = 0;
|
|
public static bool DarenYaoyue = false;
|
|
public static bool DyProductCollect = false;
|
|
public static bool IsCloudBuyOrder = false;
|
|
/// <summary>
|
|
/// 所在企业ID
|
|
/// </summary>
|
|
public static int CompanyId = 0;
|
|
/// <summary>
|
|
/// 企业名称
|
|
/// </summary>
|
|
public static string CompanyName = "";
|
|
/// <summary>
|
|
/// 到期时间
|
|
/// </summary>
|
|
public static string EndDate = "";
|
|
/// <summary>
|
|
/// 开户到期时间
|
|
/// </summary>
|
|
public static string OpenEndDate = "";
|
|
public static string ExpressSite = "http://shisilou.6677kb.com/";
|
|
/// <summary>
|
|
/// 图片API
|
|
/// </summary>
|
|
//public static string LoginApiUrl = "http://new.qixiaoke.com/";
|
|
public static string LoginApiUrl = ServerUrl;
|
|
public static string BigDataApiUrl = "http://bigdata.qixiaoke.com/";
|
|
public static string GateApi = "";
|
|
public static string QqGroupNum = "";
|
|
public static string QqGroupUrl = "";
|
|
public static string WechatUrl = "";
|
|
public static string IeUrlShow = "";
|
|
public static string AlimamaDomain = "";
|
|
public static string AlimamaPid = "";
|
|
public static string FissionPicUrl = "https://img1.deifei.com/upload_xnn.php";
|
|
/// <summary>
|
|
/// 店铺旺旺名
|
|
/// </summary>
|
|
public static string ShopName = "";
|
|
public static string ShopId = "";
|
|
public static string AccessToken = "";
|
|
/// <summary>
|
|
/// 拼多多店铺ID
|
|
/// </summary>
|
|
public static int MallId = 0;
|
|
public static DateTime LoginTime = DateTime.Now;
|
|
public static int ReceiverId = 0;
|
|
//////public static string TbTokenUrl = "";
|
|
public static string NewCookies = "";
|
|
public static bool MustGetShopInfo = false;
|
|
public static bool MustGetFormAlive = false;
|
|
public static string ChromeChatHtml = "";
|
|
public static string ChromeUserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36";
|
|
public const string AndroidUserAgent = "android Mozilla/5.0 (Linux; Android 6.0.1; MuMu Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.100 Mobile Safari/537.36 phh_android_version/4.70.0 phh_android_build/f92e2036701996362fb6f938b7f085b01695de5d phh_android_channel/gw_pc";
|
|
public static string ChromeCookies = "";
|
|
public static string ChromeJinBaoCookies = "";
|
|
public static bool IsMainCompany = false;
|
|
/// <summary>
|
|
/// 当前所有cookies
|
|
/// </summary>
|
|
public static Dictionary<string, Dictionary<string, string>> CookiesAll = new Dictionary<string, Dictionary<string, string>>();
|
|
/// <summary>
|
|
/// 对应多个店铺的所有cookies
|
|
/// </summary>
|
|
public static Dictionary<string, Dictionary<string, string>> MulitCookiesAll = new Dictionary<string, Dictionary<string, string>>();
|
|
/// <summary>
|
|
/// 对应多个店铺的所有cookies字符串
|
|
/// </summary>
|
|
public static Dictionary<string, Dictionary<string, string>> MulitCookiesAllString = new Dictionary<string, Dictionary<string, string>>();
|
|
/// <summary>
|
|
/// 当前所有cookies对应字符串
|
|
/// </summary>
|
|
public static Dictionary<string, string> CookiesAllString = new Dictionary<string, string>();
|
|
/// <summary>
|
|
/// API接口是否可用
|
|
/// </summary>
|
|
public static bool ApiCanUse = false;
|
|
/// <summary>
|
|
/// 启用昨日订单
|
|
/// </summary>
|
|
public static bool OrderYesterday = false;
|
|
/// <summary>
|
|
/// 店铺名
|
|
/// </summary>
|
|
public static string ShopNameString = "";
|
|
/// <summary>
|
|
/// 店铺网址
|
|
/// </summary>
|
|
public static string ShopUrl = "";
|
|
/// <summary>
|
|
/// 1:正在获取token,2:结束,3:执行,0:空闲
|
|
/// </summary>
|
|
//public static int TbTokenGeting = 0;
|
|
/// <summary>
|
|
/// 代理列表
|
|
/// </summary>
|
|
public static List<string> Proxy = new List<string>();
|
|
/// <summary>
|
|
/// 标题中不能包含的词
|
|
/// </summary>
|
|
public static List<string> CantTitleKeywords = new List<string>();
|
|
/// <summary>
|
|
/// 不能使用的分类
|
|
/// </summary>
|
|
public static List<string> CantCatId = new List<string>();
|
|
/// <summary>
|
|
/// 不能使用的标题
|
|
/// </summary>
|
|
public static List<string> CantTitle = new List<string>();
|
|
/// <summary>
|
|
/// 不能使用的品牌
|
|
/// </summary>
|
|
public static List<string> CantBrand = new List<string>();
|
|
|
|
public static string x5Sec = "";
|
|
/// <summary>
|
|
/// 所有违规上家Id
|
|
/// </summary>
|
|
public static List<string> UpIds = new List<string>();
|
|
|
|
public static string HadNoteId = "";
|
|
/// <summary>
|
|
/// 网址正则
|
|
/// </summary>
|
|
public static string LinkRegex = @"<a[\s]+[^>]*href[\s]*=[\s]*[""']{0,1}([^\s^>^""^']*)[^>]*>(.*?)</a>";
|
|
/// <summary>
|
|
/// 网址正则
|
|
/// </summary>
|
|
public static string LinkRegexOut = @"<a[\s]+[^>]*href[\s]*=[\s]*[""']{0,1}(http[s]*://[^\s^>^""^']*)[^>]*>(.*?)</a>";
|
|
/// <summary>
|
|
/// Api对接密码
|
|
/// </summary>
|
|
public static string ApiKeyword = "xiaojun&find_gold_cat";
|
|
/// <summary>
|
|
/// 接口缓存信息
|
|
/// </summary>
|
|
public static string UserAgent = null;
|
|
/// <summary>
|
|
/// 接口缓存信息
|
|
/// </summary>
|
|
public static string ViewCode = null;
|
|
/// <summary>
|
|
/// 百度权重缓存信息
|
|
/// </summary>
|
|
public static string ViewCodex = null;
|
|
/// <summary>
|
|
/// 是否暂停
|
|
/// </summary>
|
|
public static bool IsStop = false;
|
|
/// <summary>
|
|
/// 是否测试
|
|
/// </summary>
|
|
public static bool IsTest = false;
|
|
/// <summary>
|
|
/// 是否正在执行
|
|
/// </summary>
|
|
public static bool IsRunning = false;
|
|
/// <summary>
|
|
/// 权重更新时间
|
|
/// </summary>
|
|
public static int TimeBaiduRank = 0;
|
|
/// <summary>
|
|
/// 排名更新时间
|
|
/// </summary>
|
|
public static int TimeKeywordRank = 0;
|
|
/// <summary>
|
|
/// 时间差
|
|
/// </summary>
|
|
public static int TimeDifferent = 0;
|
|
/// <summary>
|
|
/// 硬件信息
|
|
/// </summary>
|
|
public static string MacInfo = "";
|
|
/// <summary>
|
|
/// 注册用户名
|
|
/// </summary>
|
|
public static string UserName = "";
|
|
//public static bool IsSa;
|
|
public static int SaLevel = 0;
|
|
/// <summary>
|
|
/// 注册昵称
|
|
/// </summary>
|
|
public static string NickName = "";
|
|
public static string Mobile = "";
|
|
public static string ClientId = "";
|
|
public static List<string> ClientIdx = new List<string>();
|
|
/// <summary>
|
|
/// 安全接口
|
|
/// </summary>
|
|
public static List<string> ClientIdSave = new List<string>();
|
|
public static string ApiKey = "";
|
|
public static string ApiKeyx = "";
|
|
/// <summary>
|
|
/// 代理权限
|
|
/// </summary>
|
|
public static Dictionary<string, string> AgentAuth = new Dictionary<string, string>();
|
|
/// <summary>
|
|
/// 注册用户名
|
|
/// </summary>
|
|
public static int UserId = 0;
|
|
/// <summary>
|
|
/// 注册用户名
|
|
/// </summary>
|
|
public static int UserKey = 0;
|
|
/// <summary>
|
|
/// 注册用户名
|
|
/// </summary>
|
|
public static int SiteBuildThreadCount = 0;
|
|
/// <summary>
|
|
/// 用户版本 99:拼多多测试版,100,定制版
|
|
/// </summary>
|
|
public static int UserVersion = 0;
|
|
/// <summary>
|
|
/// 注册用户名
|
|
/// </summary>
|
|
public static string UserVersionString = "";
|
|
/// <summary>
|
|
/// 注册密码
|
|
/// </summary>
|
|
public static string PassWord = "";
|
|
public static string PassWordBak = "";
|
|
/// <summary>
|
|
/// 间隔时间
|
|
/// </summary>
|
|
public static int WaitTime = 300;
|
|
|
|
/// <summary>
|
|
/// 注册密码
|
|
/// </summary>
|
|
public static string LogPatch = "";
|
|
|
|
|
|
public static bool Remember = false;
|
|
public static bool AutoLogin = false;
|
|
/// <summary>
|
|
/// 获取数据库链接
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
//public static string GetDataString()
|
|
//{
|
|
// if (IsMysqlDataBase)
|
|
// {
|
|
// return "Max Pool Size = 512;Database='" + DataBase + "';Data Source='" + DataIp +
|
|
// "';Port=3306;User Id='" + DataUser + "';Password='" + DataPass + "';Charset=gbk;";
|
|
// }
|
|
// return "server=" + DataIp + ";database=" + DataBase + ";uid=" + DataUser + ";pwd=" + DataPass;
|
|
|
|
//}
|
|
|
|
/// <summary>
|
|
/// 接口程序
|
|
/// </summary>
|
|
public static List<string> ApiList = new List<string>();
|
|
/// <summary>
|
|
/// 国内代理列表
|
|
/// </summary>
|
|
public static List<string> ProxyIn = new List<string>();
|
|
/// <summary>
|
|
/// 美国代理列表
|
|
/// </summary>
|
|
public static List<string> ProxyOut = new List<string>();
|
|
/// <summary>
|
|
/// 美国代理列表
|
|
/// </summary>
|
|
public static List<string> ProxyHttps = new List<string>();
|
|
/// <summary>
|
|
/// 指数代理列表
|
|
/// </summary>
|
|
public static List<string> IpChangeList = new List<string>();
|
|
|
|
/// <summary>
|
|
/// CPU使用率
|
|
/// </summary>
|
|
public static int CpuUser = 0;
|
|
/// <summary>
|
|
/// CPU温度
|
|
/// </summary>
|
|
public static int CpuTemperature = 0;
|
|
/// <summary>
|
|
/// 数据库正在执行线程数
|
|
/// </summary>
|
|
public static int DataUpdateThread = 0;
|
|
|
|
public static string ImageApiUrl = LoginApiUrl + "index.php?obj=api/image";
|
|
|
|
/// <summary>
|
|
/// 产品公告内容
|
|
/// </summary>
|
|
public static string Annoucement = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 是否显示公告
|
|
/// </summary>
|
|
public static bool Announce = true;
|
|
|
|
/// <summary>
|
|
/// 是否显示视频指南
|
|
/// </summary>
|
|
public static bool ShowVideoGuidance = true;
|
|
|
|
/// <summary>
|
|
/// CPU使用率更新线程
|
|
/// </summary>
|
|
public static void UpdateCpuThread()
|
|
{
|
|
PerformanceCounter CpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
|
|
int i;
|
|
double all;
|
|
while (true)
|
|
{
|
|
all = 0;
|
|
for (i = 1; i < 6; i++)
|
|
{
|
|
all += CpuCounter.NextValue();
|
|
Thread.Sleep(50);
|
|
}
|
|
CpuUser = (int)all / i;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 计算字节长度
|
|
/// </summary>
|
|
/// <param name="word"></param>
|
|
/// <returns></returns>
|
|
public static int GetCharLength(string word)
|
|
{
|
|
if (string.IsNullOrEmpty(word))
|
|
return 0;
|
|
return Encoding.GetEncoding("gbk").GetBytes(word).Length;
|
|
}
|
|
/// <summary>
|
|
/// 返回固定字节长度
|
|
/// </summary>
|
|
/// <param name="word"></param>
|
|
/// <param name="len"></param>
|
|
/// <returns></returns>
|
|
public static string SubCharLength(string word, int len)
|
|
{
|
|
if (string.IsNullOrEmpty(word))
|
|
return word;
|
|
word = word.Trim();
|
|
word = word.Replace("..", ".").Replace("..", ".");
|
|
word = word.Replace(" ", " ").Replace(" ", " ");
|
|
if (GetCharLength(word) <= len)
|
|
return word;
|
|
while (GetCharLength(word) > len)
|
|
{
|
|
word = word.Substring(0, word.Length - 1);
|
|
}
|
|
return word;
|
|
}
|
|
/// <summary>
|
|
/// 判断字符串是否为汉字 by ttzhao 2020.9.25
|
|
/// </summary>
|
|
/// <param name="str"></param>
|
|
/// <param name="allMatch"></param>
|
|
/// <returns></returns>
|
|
public static bool IsChinese(string str, bool allMatch)
|
|
{
|
|
string pattern;
|
|
if (allMatch)
|
|
pattern = @"^[\u4e00-\u9fa5]+$";
|
|
else
|
|
pattern = @"[\u4e00-\u9fa5]";
|
|
if (Regex.IsMatch(str, pattern))
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
/// <summary>
|
|
/// 获取字符串长度:其中,1个汉字占两个字符的情况 by ttzhao 2020.9.25
|
|
/// </summary>
|
|
/// <param name="str"></param>
|
|
/// <returns></returns>
|
|
public static int GetStrLength(string str)
|
|
{
|
|
int sum = 0;
|
|
for (int i = 0; i < str.Length; i++)
|
|
{
|
|
bool isChs = IsChinese(str[i].ToString(), true);
|
|
if (isChs)
|
|
sum += 2;
|
|
else
|
|
sum += 1;
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
/// <summary>
|
|
/// C#格式时间转换为Unix时间戳(秒)
|
|
/// </summary>
|
|
/// <param name="time"></param>
|
|
/// <returns></returns>
|
|
public static int DateTimeToTimestampSeconds(DateTime time)
|
|
{
|
|
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
|
|
return (int)(time - startTime).TotalSeconds;
|
|
}
|
|
|
|
/// <summary>
|
|
/// C#格式时间转换为Unix时间戳(毫秒)
|
|
/// </summary>
|
|
/// <param name="time"></param>
|
|
/// <returns></returns>
|
|
public static long DateTimeToTimestampMilliseconds(DateTime time)
|
|
{
|
|
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
|
|
return (long)(time - startTime).TotalMilliseconds;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Unix时间戳(秒)转为C#格式时间
|
|
/// </summary>
|
|
/// <param name="timeStamp"></param>
|
|
/// <returns></returns>
|
|
public static DateTime StampToDateTime(int timeStamp)
|
|
{
|
|
DateTime dateTimeStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
|
|
long lTime = long.Parse(timeStamp + "0000000");
|
|
TimeSpan toNow = new TimeSpan(lTime);
|
|
return dateTimeStart.Add(toNow);
|
|
}
|
|
/// <summary>
|
|
/// 获取服务器的精准时间
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static DateTime GetServerTimeString()
|
|
{
|
|
int time = GetTime();
|
|
DateTime t = StampToDateTime(time);
|
|
return t;
|
|
}
|
|
/// <summary>
|
|
/// 获取服务器的精准时间
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static string GetServerTimeString(int addSecond)
|
|
{
|
|
int time = GetTime() + addSecond;
|
|
DateTime t = StampToDateTime(time);
|
|
return t.ToString("yyyy-MM-dd HH:mm:ss");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置粘贴板
|
|
/// </summary>
|
|
/// <param name="message"></param>
|
|
public static void SetClipboard(string message)
|
|
{
|
|
try
|
|
{
|
|
Clipboard.SetDataObject(message);
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 获取绝对时间
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetTime()
|
|
{
|
|
return DateTimeToTimestampSeconds(DateTime.Now) + TimeDifferent;
|
|
}
|
|
/// <summary>
|
|
/// 获取绝对时间
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static int GetTime(DateTime t)
|
|
{
|
|
return DateTimeToTimestampSeconds(t) + TimeDifferent;
|
|
}
|
|
/// <summary>
|
|
/// MD5加密
|
|
/// </summary>
|
|
/// <param name="instring"></param>
|
|
/// <returns></returns>
|
|
public static string GetMd5(string instring)
|
|
{
|
|
byte[] result = Encoding.UTF8.GetBytes(instring.Trim());
|
|
MD5 md5 = new MD5CryptoServiceProvider();
|
|
byte[] output = md5.ComputeHash(result);
|
|
return BitConverter.ToString(output).Replace("-", "");
|
|
}
|
|
/// <summary>
|
|
/// MD5加密
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static string GetMd5(byte[] result)
|
|
{
|
|
MD5 md5 = new MD5CryptoServiceProvider();
|
|
byte[] output = md5.ComputeHash(result);
|
|
return BitConverter.ToString(output).Replace("-", "");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取文件MD5值
|
|
/// </summary>
|
|
/// <param name="FilePath"></param>
|
|
/// <returns></returns>
|
|
public static string GetFileMd5(string FilePath)
|
|
{
|
|
try
|
|
{
|
|
FileStream get_file = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
|
|
System.Security.Cryptography.MD5CryptoServiceProvider get_md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
|
|
byte[] hash_byte = get_md5.ComputeHash(get_file);
|
|
string resule = System.BitConverter.ToString(hash_byte);
|
|
resule = resule.Replace("-", "");
|
|
get_file.Close();
|
|
return resule;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
return e.ToString();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// MD5加密
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static long GetLong(byte[] result)
|
|
{
|
|
return
|
|
Convert.ToInt64(
|
|
BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(result), 4,
|
|
8).Replace("-", ""), 16);
|
|
}
|
|
|
|
/// <summary>
|
|
/// MD5 16位加密转long
|
|
/// </summary>
|
|
/// <param name="url"></param>
|
|
/// <returns></returns>
|
|
public static long GetLong(string url)
|
|
{
|
|
if (string.IsNullOrEmpty(url))
|
|
return 0;
|
|
return Convert.ToInt64(BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(url)), 4, 8).Replace("-", ""), 16);
|
|
}
|
|
/// <summary>
|
|
/// 返回表ID
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
public static int GetTableId(long id)
|
|
{
|
|
return (int)Math.Abs(id % 1024);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 签名算法
|
|
/// </summary>
|
|
/// <param name="s">随机数</param>
|
|
/// <returns>加密签名结果</returns>
|
|
public static string Encryption(int s)
|
|
{
|
|
string ss = s.ToString();
|
|
if (ss.Length > 8)
|
|
{
|
|
ss = ss.Substring(ss.Length - 8);
|
|
s = int.Parse(ss);
|
|
if (s < 100000000)
|
|
s += 100000000;
|
|
}
|
|
byte[] kb = Encoding.ASCII.GetBytes(s.ToString());
|
|
double y = s * 1.8061825125;
|
|
y += 4852095.48659959;
|
|
y += kb[3] * 943579.486548;
|
|
y += kb[7] + 4889894.30184;
|
|
byte[] k = Encoding.ASCII.GetBytes(y.ToString());
|
|
y -= 458735.48548;
|
|
y -= k[6] * 458720.454545;
|
|
y -= k[2] * 5447826.96889;
|
|
byte[] k1 = Encoding.ASCII.GetBytes(y.ToString());
|
|
y += 34779810.2455;
|
|
y -= k1[1] * 57942.0564845;
|
|
y -= k1[5] * 1548.487866;
|
|
string c = ((int)y).ToString();
|
|
return GetMd5(c); //返回签名的MD5结果
|
|
}
|
|
/// <summary>
|
|
/// 生成OBJ路径
|
|
/// </summary>
|
|
/// <param name="file"></param>
|
|
/// <returns></returns>
|
|
public static string BuildObjString(string file, bool IsLoginDef = false)
|
|
{
|
|
//if (IsLoginDef)
|
|
//{
|
|
// return "http://new.taojinhu.com/" + "?obj=pinbaobao/" + file;
|
|
//}
|
|
//return LoginApiUrl + "index.php?obj=" + BaseClass.MainPath + "/" + file;
|
|
//http://localhost:8000/user/user_login
|
|
|
|
return LoginApiUrl + "/" + file+ "?obj=" + BaseClass.MainPath + "/" + file;
|
|
}
|
|
/// <summary>
|
|
/// 净化数据OBJ路径生成
|
|
/// </summary>
|
|
/// <param name="file"></param>
|
|
/// <returns></returns>
|
|
public static string BuildFissionObjString(string file)
|
|
{
|
|
var FessionBaseUrl = "http://m.qimake.cn/";
|
|
var ObjFissionUrl = "obj=douyin/";
|
|
return FessionBaseUrl + "?" + ObjFissionUrl + file;
|
|
}
|
|
}
|
|
|
|
public class KeyValueBase
|
|
{
|
|
public KeyValueBase() { }
|
|
|
|
public KeyValueBase(string key, string value)
|
|
{
|
|
Key = key;
|
|
Value = value;
|
|
}
|
|
public KeyValueBase(string key, string value, string cat)
|
|
{
|
|
Key = key;
|
|
Value = value;
|
|
CatName = cat;
|
|
}
|
|
|
|
public string Key;
|
|
public string Value;
|
|
/// <summary>
|
|
/// 店铺ID
|
|
/// </summary>
|
|
public string Id = "";
|
|
public string CatName = "";
|
|
}
|
|
|
|
public class KeyValuesBase
|
|
{
|
|
public KeyValuesBase(string key, string value1)
|
|
{
|
|
Key = key;
|
|
Value1 = value1;
|
|
}
|
|
public KeyValuesBase(string key, string value1, string value2, string value3)
|
|
{
|
|
Key = key;
|
|
Value1 = value1;
|
|
Value2 = value2;
|
|
Value3 = value3;
|
|
}
|
|
public KeyValuesBase(string key, string value1, string value2, string value3, string value4)
|
|
{
|
|
Key = key;
|
|
Value1 = value1;
|
|
Value2 = value2;
|
|
Value3 = value3;
|
|
Value4 = value4;
|
|
}
|
|
public KeyValuesBase(string key, string value1, string value2)
|
|
{
|
|
Key = key;
|
|
Value1 = value1;
|
|
Value2 = value2;
|
|
}
|
|
|
|
public string Key;
|
|
public string Value1;
|
|
public string Value2;
|
|
public string Value3;
|
|
public string Value4;
|
|
|
|
public int Rank = 0;
|
|
}
|
|
|
|
public class CatProudctBase
|
|
{
|
|
public int CatId = 0;
|
|
public Dictionary<long, string> Products = new Dictionary<long, string>();
|
|
}
|
|
|
|
public class MarketProductBase
|
|
{
|
|
public string ProductId = "";
|
|
public string Title = "";
|
|
public string CatIds = "";
|
|
public string Image = "";
|
|
public string CampaignId = "";
|
|
public string Token = "";
|
|
}
|
|
|
|
public class ProcessBase
|
|
{
|
|
public int Min = 0;
|
|
public int Max = 0;
|
|
public int Value = 0;
|
|
}
|
|
|
|
public class ProductBase
|
|
{
|
|
public long Id;
|
|
public long UpId;
|
|
public string Title;
|
|
public string OuterId;
|
|
public decimal Price;
|
|
public bool HadFastCar = false;
|
|
/// <summary>
|
|
/// 需要上传
|
|
/// </summary>
|
|
public bool MustUpdate = false;
|
|
|
|
public int CatId = 0;
|
|
public int MainCatId = 0;
|
|
public DateTime SetTime = DateTime.Now.AddDays(-1);
|
|
public bool SetOk = false;
|
|
public string ShopName = "";
|
|
public int SoldCount = 0;
|
|
public int onSale;
|
|
}
|
|
public class ProductTaoKeBase
|
|
{
|
|
public string Title = "";
|
|
public long TaoKeId = 0;
|
|
public string TaoKeUrl = "";
|
|
public long toId = 0;
|
|
public string taoBaoUrl = "";
|
|
public string quanHou = "";
|
|
public string yuanPrice = "";
|
|
public string xiaoLiang = "";
|
|
public string yongJin = "";
|
|
public string youHuei = "";
|
|
}
|
|
public class ProductMeiLiZhe
|
|
{
|
|
public long TaobaoId { get { long id = 0; long.TryParse(TaobaoIdStr, out id); return id; } }
|
|
public string TaobaoIdStr { get; set; }
|
|
public string ProductId { get; set; }
|
|
public string ProductName { get; set; }
|
|
public string SourceUrl { get; set; }
|
|
public string Url { get; set; }
|
|
public double Price { get { return Convert.ToDouble(PriceStr); } }
|
|
public string PriceStr { get; set; }
|
|
public double PriceWidthTicket { get { return Convert.ToDouble(PriceWidthTicketStr); } }
|
|
public string PriceWidthTicketStr { get; set; }
|
|
public double TicketPrice { get { return Convert.ToDouble(TicketPriceStr); } }
|
|
public string TicketPriceStr { get; set; }
|
|
public int SaleCount { get; set; }
|
|
/// <summary>
|
|
/// 前4位表示页码,后三位表示在该页面位置
|
|
/// </summary>
|
|
public int PageOrder { get; set; }
|
|
}
|
|
public class ProductCollectBase
|
|
{
|
|
/// <summary>
|
|
/// 更新SKU是否成功
|
|
/// </summary>
|
|
public bool UpdateSuccess = false;
|
|
/// <summary>
|
|
/// 是否预售
|
|
/// </summary>
|
|
public bool IsPreSale = false;
|
|
/// <summary>
|
|
/// 是否在售
|
|
/// </summary>
|
|
public bool IsOnSale = true;
|
|
|
|
public bool UpToStock = false;
|
|
public long id = 0;
|
|
public int cat_id = 0;
|
|
public int main_cid = 0;
|
|
public string main_cat_name = "";
|
|
public long mall_id = 0;
|
|
public int cat1 = 0;
|
|
public int cat2 = 0;
|
|
public int cat3 = 0;
|
|
public int cat4 = 0;
|
|
public long from_id = 0;
|
|
public int from_shop_id = 0;
|
|
public int from_cat_id = 0;
|
|
/// <summary>
|
|
/// 1:淘宝,2:拼多多,3:阿里巴巴,4:京喜,6:微店,7:抖音
|
|
/// </summary>
|
|
public int from_site_id = 0;
|
|
public int item_weight = 1;
|
|
public int saleCount = 0;
|
|
public int num = 0;
|
|
public decimal price = -1;
|
|
public decimal before_price = -1;
|
|
public decimal discount = -1;
|
|
public decimal discountPrice = -1;
|
|
public decimal onlinePrice = -1;
|
|
public decimal market_price = 0;
|
|
public int shopAddPercent = 0;
|
|
public decimal shopAddPriceMin = 0;
|
|
public decimal shopAddPriceMax = 0;
|
|
public string image = "";
|
|
public string image_path = "";
|
|
public string image_from_url = "";
|
|
public string from_name = "";
|
|
public List<string> fission_names = new List<string>();
|
|
public string name = "";
|
|
public string name_share = "";
|
|
public string content_pinduoduo = "";
|
|
public string thumb_url_pinduoduo = "";
|
|
public string hd_thumb_url_pinduoduo = "";
|
|
public long cost_template_id_pinduoduo = 0;
|
|
public string name_shot = "";
|
|
public List<KeyValueBase> Prop = new List<KeyValueBase>();
|
|
public List<PropBase> Props = new List<PropBase>();
|
|
public List<PropBase> Props_bak = new List<PropBase>();
|
|
public List<PackBase> Packs = new List<PackBase>();
|
|
public List<SkuMapBase> SkuMaps = new List<SkuMapBase>();
|
|
public List<SkuMapBase> SkuMaps_bak = new List<SkuMapBase>();
|
|
public List<string> Images = new List<string>();
|
|
public List<string> Images_bak = new List<string>();
|
|
public string sell_pt = "";
|
|
public string from_url = "";
|
|
public string from_title = "";
|
|
public string to_shop_name = "";
|
|
public string from_shop_name = "";
|
|
public string item_size = "";
|
|
public string city = "";
|
|
public string state = "";
|
|
public string content = "";
|
|
public string out_id = "";
|
|
public string content_bak = "";
|
|
public string shop_id = "";
|
|
public string content_alibaba = "";
|
|
public string from = "";
|
|
public string message = "";
|
|
public string up_url = "";
|
|
public string country = "";
|
|
/// <summary>
|
|
/// 外部上家ID
|
|
/// </summary>
|
|
public string out_goods_sn = string.Empty;
|
|
/// <summary>
|
|
/// 邮费
|
|
/// </summary>
|
|
public decimal express_price = 0;
|
|
public long nameMd5 = 0;
|
|
public long upShopId = 0;
|
|
public string deliver_template = "408运费模板";
|
|
public string logisticsTime = "";
|
|
/// <summary>
|
|
///商品资质中的内容(目前只有两种): 3C证书 /工业许可证
|
|
/// </summary>
|
|
public string authCode = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 提示信息
|
|
/// </summary>
|
|
public string message_alert = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 是否已经单独加价
|
|
/// </summary>
|
|
public string is_changeprice = "";
|
|
/// <summary>
|
|
/// 自定义单品加价比例
|
|
/// </summary>
|
|
public decimal addPricePercent = 0;
|
|
/// <summary>
|
|
/// 自定义单品加价
|
|
/// </summary>
|
|
public decimal baseAddPrice = 0;
|
|
/// <summary>
|
|
/// 是否是净化数据数据
|
|
/// </summary>
|
|
public bool isFission = false;
|
|
/// <summary>
|
|
/// 产品数据库对应Id
|
|
/// </summary>
|
|
public int fissionDataBaseId = 0;
|
|
/// <summary>
|
|
/// 商品资质信息文件列表
|
|
/// </summary>
|
|
public List<quality_file> qualifications { get; set; }
|
|
|
|
public ProductCollectBase Clone()
|
|
{
|
|
var prop = new List<KeyValueBase>();
|
|
foreach (KeyValueBase p in Prop)
|
|
{
|
|
prop.Add(p);
|
|
}
|
|
Prop.Clear();
|
|
string html = JsonHelper.SerializeObject(this);
|
|
ProductCollectBase tp = JsonHelper.DeserializeJsonToObject<ProductCollectBase>(html);
|
|
foreach (KeyValueBase p in prop)
|
|
{
|
|
tp.Prop.Add(p);
|
|
Prop.Add(p);
|
|
}
|
|
|
|
return tp;
|
|
}
|
|
}
|
|
|
|
public class PropBase
|
|
{
|
|
public long id;
|
|
public string name = "";
|
|
public string pinduoduo_name = "";
|
|
public string pinduoduo_id = "";
|
|
public int sort = 0;
|
|
public List<PropValueBase> Values = new List<PropValueBase>();
|
|
}
|
|
|
|
public class PropValueBase
|
|
{
|
|
public string value = "";
|
|
public string name = "";
|
|
public string name_pinduoduo = "";
|
|
public string id = "";
|
|
public string image = "";
|
|
public string image_path = "";
|
|
public string image_from_url = "";
|
|
//public string image_pinduoduo_url = "";
|
|
public int number = 0;
|
|
public bool is_used = false;
|
|
//public decimal pinduoduo_price = 0;
|
|
}
|
|
|
|
public class PackBase
|
|
{
|
|
public string name = "";
|
|
public string value_count = "";
|
|
public int sort = 0;
|
|
}
|
|
|
|
public class SkuMapBase
|
|
{
|
|
public long id = 0;
|
|
public string name = "";
|
|
private string _nameLite = "";
|
|
public string nameLite
|
|
{
|
|
get
|
|
{
|
|
if (!string.IsNullOrEmpty(_nameLite)) return _nameLite;
|
|
var strArr = name.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
|
|
foreach (var item in strArr)
|
|
{
|
|
var colonIndex = item.IndexOf(':');
|
|
colonIndex = colonIndex < 0 ? 0 : colonIndex;
|
|
_nameLite += item.Substring(colonIndex).Trim(':') + ";";
|
|
}
|
|
return _nameLite;
|
|
}
|
|
set { _nameLite = value; }
|
|
}
|
|
|
|
public decimal price = 0;
|
|
public decimal before_price = 0;
|
|
/// <summary>
|
|
/// 团购价
|
|
/// </summary>
|
|
public int new_price = 0;
|
|
public int number = 0;
|
|
public int sale_count = 0;
|
|
/// <summary>
|
|
/// 单买价
|
|
/// </summary>
|
|
public int online_price = 0;
|
|
public decimal no_group_price = 0;
|
|
public string prop_image = "";
|
|
public string pinduoduo_image = "";
|
|
public string spec_pinduoduo = "";
|
|
public string outer_id = "";
|
|
public string skuPreSaleTip = "";
|
|
public long skuPreTime = 0;
|
|
public decimal quanPrice = 0M;
|
|
}
|
|
//抖店sku详情
|
|
public class spec_prices
|
|
{
|
|
public string outer_sku_id;
|
|
public long price;
|
|
public long step_stock_num;
|
|
public long stock_num;
|
|
public string spec_detail_name1;
|
|
public string spec_detail_name2;
|
|
public string spec_detail_name3;
|
|
public string picurl;
|
|
public string code;
|
|
|
|
}
|
|
|
|
public class quality
|
|
{
|
|
public string quality_key;
|
|
public string quality_name;
|
|
public List<quality_attachment> quality_attachments;
|
|
}
|
|
|
|
public class quality_file : quality
|
|
{
|
|
/// <summary>
|
|
/// 资质证书编号
|
|
/// </summary>
|
|
public string quality_number;
|
|
}
|
|
|
|
public class quality_attachment
|
|
{
|
|
/// <summary>
|
|
/// 凭证文件类型 1-图片,2-pdf
|
|
/// </summary>
|
|
public int media_type;
|
|
/// <summary>
|
|
/// 凭证url
|
|
/// </summary>
|
|
public string url;
|
|
}
|
|
}
|