using AllBase; using AllBase.Extension; using AllBase.Helper; using AllBase.Model.Param.CollectManage; using AllBase.Model.Param.ProductManage; using AllBase.Model.Param.ShopManage; using AllBase.Model.Result; using TemuKJD.KJDForms.BaseForms; using TemuKJD.KJDForms.ProductForms; using NaiBa.Util; using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using Work; using Work.DouyinApiClass; using AllBase.Model.Param.TemuProductManage; using TemuKJD.KJDForms.ShopForms; namespace TemuKJD { public class StartUp { public static bool IsShopInit = false; public static void Init() { InitOem(); InitProxy(); GlobalConfig.ProductWords = NaiBa.Util.Helper.ConfigHelper.LoadConfig("product_words"); if (GlobalConfig.ProductWords == null) GlobalConfig.ProductWords = new TemuProductWords(); #region 抖音账号登录信息 try { GlobalConfig.DouUserCookies = NaiBa.Util.Helper.FileHelper.ReadAllText("data\\config\\dou_user_cookies")?.Trim('\"'); } catch { } if (GlobalConfig.DouUserCookies == null) GlobalConfig.DouUserCookies = ""; try { GlobalConfig.DouBuyinCookies = NaiBa.Util.Helper.FileHelper.ReadAllText("data\\config\\dou_buyin_cookies")?.Trim('\"'); } catch { } if (GlobalConfig.DouBuyinCookies == null) GlobalConfig.DouBuyinCookies = ""; GlobalConfig.dicLocalStorage = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("dou_local_Storage"); if (GlobalConfig.dicLocalStorage == null) GlobalConfig.dicLocalStorage = new Dictionary(); #endregion #region 获取抖音类目 DyCategoryParam.DyCategorys = Properties.Resources.DyCategorys; #endregion #region 读取上传违规词 //FilterForm.LoadFilterWord(); #endregion #region 数据净化参数 GlobalConfig.FissionSettingParam = NaiBa.Util.Helper.ConfigHelper.LoadConfig("fission_setting_param"); if (GlobalConfig.FissionSettingParam == null) { GlobalConfig.FissionSettingParam = new FissionSettingParam(); } #endregion #region 店铺登录信息 Task.Run((Action)(() => { //while (string.IsNullOrEmpty(BaseClass.CompanyName)) while (!BaseClass.IsLoginSuccess) Thread.Sleep(100); KJDForms.ShopForms.ShopListForm.UpdateShop(); IsShopInit = true; //while (true) //{ // var needRefresh = GlobalConfig.DouShopLoginList.Where(s => s.LastRefreshDate != DateTime.Now.ToString("yyyyMMdd")); // if (LittleRabbitForms.ShopForms.ShopListForm.Instance == null) // LittleRabbitForms.ShopForms.ShopListForm.Instance = new LittleRabbitForms.ShopForms.ShopListForm(); // LittleRabbitForms.ShopForms.ShopListForm.Instance.CheckShopListLogin(needRefresh.Select(r => r.ShopAccount).ToArray(), false); // IsShopInit = true; // Thread.Sleep(1000 * 3600 * 24); // 每天刷新下验证,如果没关闭软件的话 //} })); #endregion #region 店铺设置参数 GlobalConfig.DouShopSettingParam = NaiBa.Util.Helper.ConfigHelper.LoadConfig("dou_shop_setting_param"); if (GlobalConfig.DouShopSettingParam == null) { GlobalConfig.DouShopSettingParam = new DouShopSettingParam { IsAutoDragLogin = false, }; } #endregion #region 读取违规规则列表 var violateRuleNameSelectList = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("violate_rule_name_select"); if (violateRuleNameSelectList != null) ViolateRuleParam.LstViolateRuleNameSelect = violateRuleNameSelectList; #endregion #region 旧店铺商品数据本地缓存 供重复铺货检测使用 GlobalConfig.SameProductCheckParamList = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("same_product_check_list"); if (GlobalConfig.SameProductCheckParamList == null) GlobalConfig.SameProductCheckParamList = new List(); #endregion #region 读取店铺历史铺货 Task.Run(() => { while (!IsShopInit) { Thread.Sleep(100); } //List tList = new List(); //var tick = BaseClass.DateTimeToTimestampSeconds(new DateTime(2022, 4, 25)); //while (true) //{ // if (GlobalConfig.ShopLoginList.All(shop => shop.ApiAuthStatus != "授权成功" // || GlobalConfig.SameProductCheckParamList.Any(sp => sp.ShopId == shop.ShopId && sp.IsGetSuccess))) // { // Thread.Sleep(1000); // continue; // } // // tList.Clear(); // foreach (var shop in GlobalConfig.ShopLoginList) // { // if (GlobalConfig.SameProductCheckParamList.Any(sp => sp.ShopId == shop.ShopId && sp.IsGetSuccess)) // continue; // // if (shop.ApiAuthStatus != "授权成功") // continue; // // var t = Task.Run(() => // { // var shopTemp = shop; // try // { // var sameProductCheckParam = GlobalConfig.SameProductCheckParamList.FirstOrDefault(sp => sp.ShopId == shop.ShopId); // if (sameProductCheckParam == null) // { // sameProductCheckParam = new SameProductCheckParam() // { // ShopId = shopTemp.ShopId, // ShopName = shopTemp.ShopAccount, // ShopSamePrpductItemList = new List(), // }; // } // for (int i = 1; i <= 500; i++) // { // if (sameProductCheckParam.ShopSamePrpductItemList != null && sameProductCheckParam.ShopSamePrpductItemList.Count > 0) // tick = sameProductCheckParam.ShopSamePrpductItemList.Min(it => it.create_time).ParseToInt() - 1; // // DouyinApi douApi = new DouyinApi(shopTemp); // douApi.JsonData["page"] = "1"; // douApi.JsonData["size"] = "100"; // douApi.JsonData["end_time"] = tick.ToString(); // // check_status 指定审核状态返回商品列表:1未提审 2审核中 3审核通过 4审核驳回 5封禁 7审核通过,待上架状态 // //douApi.JsonData["check_status"] = "3"; // //douApi.JsonData["check_status"] = "1"; // //douApi.JsonData["status"] = "0"; // var resultOnline = douApi.GetProductList(); // if (resultOnline.Contains("已过期")) // { // shopTemp.ApiAuthStatus = "未授权"; // return; // } // while (!resultOnline.Contains("\"code\":10000")) // { // Thread.Sleep(Randomx.GetId(500, 1000) * tList.Count); // resultOnline = douApi.GetProductList(); // } // if (resultOnline != null && resultOnline.Contains("\"data\":[]")) // { // sameProductCheckParam.IsGetSuccess = true; // break; // } // // Newtonsoft.Json.Linq.JObject jObj = JsonHelper.JObjectParse(resultOnline); // var itemList = JsonHelper.DeserializeJsonToList(jObj["data"]?["data"]?.ToString()); // sameProductCheckParam.ShopSamePrpductItemList.AddRange(itemList); // // if (i % 10 == 9) // { // if (!GlobalConfig.SameProductCheckParamList.Contains(sameProductCheckParam)) // GlobalConfig.SameProductCheckParamList.Add(sameProductCheckParam); // sameProductCheckParam.ShopSamePrpductItemList = sameProductCheckParam.ShopSamePrpductItemList.DistinctBy(it => it.product_id).ToList(); // NaiBa.Util.Helper.ConfigHelper.SaveConfig>("same_product_check_list", GlobalConfig.SameProductCheckParamList); // } // // Thread.Sleep(Randomx.GetId(500, 1000) * tList.Count); // } // if (!GlobalConfig.SameProductCheckParamList.Contains(sameProductCheckParam)) // GlobalConfig.SameProductCheckParamList.Add(sameProductCheckParam); // sameProductCheckParam.ShopSamePrpductItemList = sameProductCheckParam.ShopSamePrpductItemList.DistinctBy(it => it.product_id).ToList(); // NaiBa.Util.Helper.ConfigHelper.SaveConfig>("same_product_check_list", GlobalConfig.SameProductCheckParamList); // } // catch (Exception ex) // { // } // }); // tList.Add(t); // } // Task.WaitAll(tList.ToArray()); // // Thread.Sleep(10000); //} }); #endregion #region 读取库存信息 Task.Run(() => { while (!IsShopInit) { Thread.Sleep(100); } ReturnPackageDetailForm retrunPackageForm = new ReturnPackageDetailForm(null); retrunPackageForm.Show(); retrunPackageForm.Hide(); Dictionary dicUpReturn = new Dictionary(); while(true) { foreach(var shop in GlobalConfig.ShopLoginList) { if (string.IsNullOrEmpty(shop.ShopId)) continue; if (dicUpReturn.Keys.Contains(shop) && dicUpReturn[shop] == DateTime.Now.ToString("yyyyMMdd")) //今日已获取过 continue; var rst = retrunPackageForm.GetReturnPackage(shop, true); // 后台读取退货信息 if (rst == false && shop.LoginStatus == "登录成功" && shop.LoginStatus2 == "国际版在线") { dicUpReturn[shop] = DateTime.Now.ToString("yyyyMMdd"); } } for (int i = 0; i< 3600; i++) { Thread.Sleep(1000); } } }); #endregion } public static void InitProxy() { GetProxyHtml.txtUrl = GetProxyHtml.orderId = ""; if (FileBase.Exists("temp/proxy.txt")) { string sAgentIpKey = FileBase.ReadAllText("temp/proxy.txt").Trim(); KJDForms.ToolForms.ProxyForm.InitProxyIp(sAgentIpKey, false); } } /// /// 贴牌管理 /// public static void InitOem() { #region 代理版本获取代理码 if (FileBase.Exists("locales/ig.pak")) { BaseClass.AgentCode = FileBase.ReadAllText("locales/ig.pak"); string agTxt = ""; string agVersion = ""; if (FileBase.Exists("locales/igx.pak")) { var agTxtArr = FileBase.ReadAllText("locales/igx.pak").Split(new string[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries); agTxt = BaseEncrypt.EncryptDecode(agTxtArr[0], "asdf1357", "vbnm2468"); if (agTxtArr.Length >= 2) agVersion = BaseEncrypt.EncryptDecode(agTxtArr[1], "asdf1357", "vbnm2468"); } if (!agTxt.Contains("oem_title") || !agTxt.Contains("oem_register") || !agTxt.Contains("oem_reset") || !agTxt.Contains("oem_notice") || !agTxt.Contains("oem_video") || !agTxt.Contains("oem_logo_link") || !agTxt.Contains("oem_icon_link")) { agTxt = ""; agVersion = ""; } // 获取贴牌版本号 string url = BaseClass.BuildObjString("oem_config&act=get_version"); string data = UserLogin.GetSignaturex("", "") + "&agent_code=" + BaseClass.AgentCode; string html = GetHtml.PostUtf8(url, data); if (!string.IsNullOrEmpty(html) && html != agVersion) { agTxt = ""; agVersion = html; } if (!html.Contains("\"code\":200")) { var msg = BaseRegex.GetStringJson(ref html, "msg"); //BaseMsgForm.ShowError("获取版本信息失败,请检查电脑时间!"); BaseMsgForm.ShowError(msg); Process.GetCurrentProcess().Kill(); return; } if (string.IsNullOrEmpty(agTxt)) { // 根据代理码给贴牌信息赋值 url = BaseClass.BuildObjString("oem_config&act=get_config_info"); data = UserLogin.GetSignaturex("", "") + "&agent_code=" + BaseClass.AgentCode; agTxt = GetHtml.PostUtf8(url, data); if (!agTxt.Contains("\"code\":200")) { var msg = BaseRegex.GetStringJson(ref html, "msg"); BaseMsgForm.ShowError(msg); Process.GetCurrentProcess().Kill(); return; } File.WriteAllText("locales/igx.pak", BaseEncrypt.EncryptEncode(agTxt, "asdf1357", "vbnm2468") + "\r\n" + BaseEncrypt.EncryptEncode(agVersion, "asdf1357", "vbnm2468")); } if (!string.IsNullOrEmpty(agTxt) && agTxt.Contains("获取配置信息成功")) { var oem_title = BaseRegex.GetStringJson(ref agTxt, "oem_title"); var oem_register = BaseRegex.GetStringJson(ref agTxt, "oem_register"); var oem_reset = BaseRegex.GetStringJson(ref agTxt, "oem_reset"); var oem_notice = BaseRegex.GetStringJson(ref agTxt, "oem_notice"); var oem_video = BaseRegex.GetStringJson(ref agTxt, "oem_video"); var oem_pay = BaseRegex.GetStringJson(ref agTxt, "oem_pay"); var oem_pay_ip = BaseRegex.GetStringJson(ref agTxt, "oem_pay_ip"); var oem_logo_link = BaseRegex.GetStringJson(ref agTxt, "oem_logo_link"); var oem_icon_link = BaseRegex.GetStringJson(ref agTxt, "oem_icon_link"); var oem_mobile = BaseRegex.GetStringJson(ref agTxt, "oem_mobile"); var oem_open = BaseRegex.GetStringJson(ref agTxt, "oem_open"); var oem_header_name = BaseRegex.GetStringJson(ref agTxt, "oem_header_name"); var oem_qq = BaseRegex.GetStringJson(ref agTxt, "oem_qq"); // 软件标题 if (!string.IsNullOrEmpty(oem_title)) { BaseClass.ToolName = oem_title; } // 开放注册 if (!string.IsNullOrEmpty(oem_register)) { BaseClass.IsShowRegister = oem_register == "1"; } // 开户续费 if (!string.IsNullOrEmpty(oem_open)) { BaseClass.IsShowOpenAccount = oem_open == "1"; } //// 找回密码 //if (!string.IsNullOrEmpty(oem_reset)) //{ // BaseClass.IsShowForgetPwd = oem_reset == "1"; //} //// 公告显示 //if (!string.IsNullOrEmpty(oem_notice)) //{ // BaseClass.IsHideAnnounce = oem_notice == "0"; //} //// 视频显示 //if (!string.IsNullOrEmpty(oem_video)) //{ // BaseClass.IsShowGuidance = oem_video == "1"; //} //// 充值元宝 //if (!string.IsNullOrEmpty(oem_pay)) //{ // BaseClass.IsShowRecharge = oem_pay == "1"; //} //// 代理ip //if (!string.IsNullOrEmpty(oem_pay_ip)) //{ // BaseClass.IsShowBuyProxyIp = oem_pay_ip == "1"; //} // logo图片地址 if (!string.IsNullOrEmpty(oem_logo_link)) { try { var bitmapBG = (Bitmap)Properties.Resources.ResourceManager.GetObject("login_bg_agent"); var img = GetHtml.LoadImage(oem_logo_link); Graphics g = Graphics.FromImage(bitmapBG); g.DrawImage(img, new Rectangle(bitmapBG.Width / 2 - img.Width / 2, bitmapBG.Height / 2 - img.Height / 2, img.Width, img.Height)); var imgBytes = ImageBuild.BitmapToBytes(bitmapBG); img.Dispose(); g.Dispose(); GetHtml.LoadImage(oem_logo_link); // 登录窗口图标 BaseClass.LoginImage = ImageBuild.BytesToImage(imgBytes); // 主窗体图标 BaseClass.LogoImage = GetHtml.LoadImage(oem_logo_link); } catch { } if (BaseClass.LoginImage == null || BaseClass.LogoImage == null) { BaseMsgForm.ShowError("获取版本信息失败,请检查电脑联网状态或电脑时间!"); Process.GetCurrentProcess().Kill(); return; } } // icon图片地址 if (!string.IsNullOrEmpty(oem_icon_link)) { BaseClass.Ico = GetHtml.LoadIcon(oem_icon_link); if (BaseClass.Ico == null) { BaseMsgForm.ShowError("获取版本信息失败,请检查电脑联网状态或电脑时间!"); Process.GetCurrentProcess().Kill(); return; } } // 客服QQ(或电话) if (!string.IsNullOrEmpty(oem_qq)) { BaseClass.ServiceQQ = oem_qq; } //if (!string.IsNullOrEmpty(oem_header_name)) //{ // BaseClass.oem_header = oem_header_name; //} } } #endregion } public static void SaveFissionSettingParam() { NaiBa.Util.Helper.ConfigHelper.SaveConfig("fission_setting_param", GlobalConfig.FissionSettingParam); } public static void SaveLocalShopLoginInfo() { ConcurrentList shopLoginListCopy = JsonHelper.DeserializeJsonToObject>(JsonHelper.SerializeObject(GlobalConfig.ShopLoginList)); shopLoginListCopy.AddRange(GlobalConfig.DouShopLoginOtherUserShopList); // 替换掉密码,cookie等敏感参数 foreach (var shop in shopLoginListCopy) { shop.Password = ""; shop.Cookies = ""; } NaiBa.Util.Helper.ConfigHelper.SaveConfig("dou_shop_login", shopLoginListCopy); } public static void SaveDouShopSettingParam() { NaiBa.Util.Helper.ConfigHelper.SaveConfig("dou_shop_setting_param", GlobalConfig.DouShopSettingParam); } /// /// 保存抖音采集用户cookie /// public static void SaveDouUserCookies() { NaiBa.Util.Helper.ConfigHelper.SaveConfig("dou_user_cookies", GlobalConfig.DouUserCookies); } public static void SaveDouBuyinCookies() { NaiBa.Util.Helper.ConfigHelper.SaveConfig("dou_buyin_cookies", GlobalConfig.DouBuyinCookies); } public static void SaveDouLocalStorage() { if (GlobalConfig.dicLocalStorage != null) NaiBa.Util.Helper.ConfigHelper.SaveConfig>("dou_local_Storage", GlobalConfig.dicLocalStorage); } public static void SaveDouLocalDetailStorage() { if (GlobalConfig.dicLocalDetailStorage != null) NaiBa.Util.Helper.ConfigHelper.SaveConfig>("dou_local_detail_Storage", GlobalConfig.dicLocalDetailStorage); } public static void SaveViolateRuleNameSelectList() { if (ViolateRuleParam.LstViolateRuleNameSelect != null) NaiBa.Util.Helper.ConfigHelper.SaveConfig>("violate_rule_name_select", ViolateRuleParam.LstViolateRuleNameSelect); } public static void SaveProductWords() { NaiBa.Util.Helper.ConfigHelper.SaveConfig("product_words", GlobalConfig.ProductWords); } } }