微信小店商品上传 50%
This commit is contained in:
1 parent
8f9bae9875
commit
343b01ab90
83 files changed
+12877
-656
No files matched your search
@@ -189,6 +189,9 @@
|
||||
<Compile Include="Model\Param\DyProductManage\ViolateRuleParam.cs" />
|
||||
<Compile Include="Model\Param\PDDCouponParam\PDDActivityMarketingParam.cs" />
|
||||
<Compile Include="Model\Param\PDDCouponParam\PDDCouponParam.cs" />
|
||||
<Compile Include="Model\Param\WXParam\WXGetShortTitleParam.cs" />
|
||||
<Compile Include="Model\Param\WXParam\WXUploadProductInitParam.cs" />
|
||||
<Compile Include="Model\Param\WXParam\WXUploadProductParam.cs" />
|
||||
<Compile Include="Model\Result\JitCardCodeInfo.cs" />
|
||||
<Compile Include="Model\Result\PDDResult\PDDCouponResult\PDDActivityToolGoodsListInfo.cs" />
|
||||
<Compile Include="Model\Result\PDDResult\PDDCouponResult\PDDActivityToolSkuDiscountListInfo.cs" />
|
||||
@@ -249,6 +252,8 @@
|
||||
<Compile Include="Model\Result\CatePropertyResponseInfo.cs" />
|
||||
<Compile Include="Model\Result\FreightTemplateInfo.cs" />
|
||||
<Compile Include="Model\Result\ViolateInfo.cs" />
|
||||
<Compile Include="Model\Result\WXResult\GetCateOnShelfInfo.cs" />
|
||||
<Compile Include="Model\Result\WXResult\GetProdCateInfo.cs" />
|
||||
<Compile Include="MultiThreadClient.cs" />
|
||||
<Compile Include="OutExcel.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace AllBase
|
||||
/// <summary>
|
||||
/// 版本ID
|
||||
/// </summary>
|
||||
public static int VersionCount = 779;
|
||||
public static int VersionCount = 781;
|
||||
//public static int VersionCount = 613;
|
||||
|
||||
/// <summary>
|
||||
@@ -733,6 +733,10 @@ namespace AllBase
|
||||
{
|
||||
return LoginApiUrl + "/dyxd_" + file + "?obj=" + BaseClass.MainPath + "/dyxd_" + file;
|
||||
}
|
||||
if (BaseClass.MainPath == "weixin")
|
||||
{
|
||||
return LoginApiUrl + "/wxxd_" + file + "?obj=" + BaseClass.MainPath + "/wxxd_" + file;
|
||||
}
|
||||
|
||||
return LoginApiUrl + "/" + file+ "?obj=" + BaseClass.MainPath + "/" + file;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AllBase.Model.Param.WXParam
|
||||
{
|
||||
public class WXGetShortTitleParam
|
||||
{
|
||||
public string productTitle { get; set; } // "大码妈妈女装裤子阔口裤保暖",
|
||||
public List<string> headImgUrls { get; set; } // ["https://wst.wxapp.tc.qq.com/160/20304/snscosdownload/SH/reserved/6xykWLEnztLdv6DMZticK1qOlvspjA8N5W55WGAEBK65jk1c864AV1iblCuiat3cgEx7v6vAnfhZIBWzrZY66Akkw", ...]
|
||||
public List<categorieParam> categories { get; set; }
|
||||
}
|
||||
|
||||
public class categorieParam
|
||||
{
|
||||
public string catId { get; set; } // "10000111",
|
||||
public string catName { get; set; } // "服饰内衣"
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AllBase.Model.Param.WXParam
|
||||
{
|
||||
public class WXUploadProductInitParam
|
||||
{
|
||||
public productInitParam product { get; set; } = new productInitParam();
|
||||
}
|
||||
|
||||
public class productInitParam
|
||||
{
|
||||
public productInitInfoParam info { get; set; } = new productInitInfoParam();
|
||||
public object productKey { get; set; } = new object();
|
||||
public List<int> checkTypes { get; set; } = new List<int>() { 2, 4 };
|
||||
/// <summary>
|
||||
/// 毫秒时间戳 + "-" + guid // "1767870757369-3d462d80-3b2b-4887-89a0-0a21164d27b7"
|
||||
/// </summary>
|
||||
public string sessionId { get; set; } =
|
||||
(long)(DateTime.Now - TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1))).TotalMilliseconds + "-" + Guid.NewGuid().ToString();
|
||||
}
|
||||
public class productInitInfoParam
|
||||
{
|
||||
public int? releaseMode { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 商品标题
|
||||
/// </summary>
|
||||
public string title { get; set; } // "妈妈长裤老年人2025冬季新款阔脚裤",
|
||||
public string model { get; set; } = "";
|
||||
public string subTitle { get; set; } = "";
|
||||
public List<string> headImg { get; set; } = new List<string>(); // ["https://wst.wxapp.tc.qq.com/160/20304/snscosdownload/SH/reserved/6xykWLEnztJH3jib01ZGXYJxkMWM9ogXvSq8VfZicnzPUghvTukFPwicsRnR3EJff480Rvxot7Vz0jIBb7K4B7hUw?token=x5Y29zUxcibCKICN3RTcFCqUzn2FoG05oBlhD1Kd3Jp8kNIMa7uiawVyJ8GdTAZ0D7&idx=1&expire=1768130066", ...]
|
||||
public productInitDetailParam detail { get; set; } = new productInitDetailParam();
|
||||
public List<object> param { get; set; } = new List<object>();
|
||||
public object expressInfo { get; set; } = new object();
|
||||
public object serviceDesc { get; set; } = new object();
|
||||
public List<object> qualificationUrl { get; set; } = new List<object>();
|
||||
public List<object> qualificationList { get; set; } = new List<object>();
|
||||
public object sizeChartInfo { get; set; } = new object();
|
||||
public string brandId { get; set; } = "";
|
||||
public List<object> category { get; set; } = new List<object>();
|
||||
public int? categoryType { get; set; } = 2;
|
||||
public List<object> shopcatId { get; set; } = new List<object>();
|
||||
public spuLimitedInitParam spuLimited { get; set; }
|
||||
public int? productType { get; set; } = 1;
|
||||
public couponcodeInfoParam couponcodeInfo { get; set; } = new couponcodeInfoParam();
|
||||
public string spuCode { get; set; } = "";
|
||||
public int? consumeStockType { get; set; } = 0;
|
||||
public int? deliverMethod { get; set; } = 0;
|
||||
public List<object> deliverAcctType { get; set; } = new List<object>();
|
||||
public object extraService { get; set; } = new object();
|
||||
public List<object> productSaleAttrs { get; set; } = new List<object>();
|
||||
public object afterSaleInfo { get; set; } = new object();
|
||||
public bool? hideInWindow { get; set; } = false;
|
||||
public object displayGeographyCert { get; set; } = new object();
|
||||
public object leagueItemInfo { get; set; } = new object();
|
||||
public timingOnsaleInfoInitParam timingOnsaleInfo { get; set; }
|
||||
public givePresentInfoInitParam givePresentInfo { get; set; }
|
||||
}
|
||||
public class givePresentInfoInitParam
|
||||
{
|
||||
public int? usePresentHeadImg { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class timingOnsaleInfoInitParam
|
||||
{
|
||||
public int? status { get; set; } = 0;
|
||||
public int? onsaleTime { get; set; } = 0;
|
||||
public int? isHidePrice { get; set; } = 0;
|
||||
public int? isHideParam { get; set; } = 0;
|
||||
|
||||
}
|
||||
|
||||
public class couponcodeInfoParam
|
||||
{
|
||||
public int? verifyType { get; set; } = 0;
|
||||
public validInfoParam validInfo { get; set; } = new validInfoParam();
|
||||
}
|
||||
public class validInfoParam
|
||||
{
|
||||
public int? validType { get; set; } = 2;
|
||||
public int? validDayNum { get; set; } = 0;
|
||||
public string startTime { get; set; } = "";
|
||||
public string endTime { get; set; } = "";
|
||||
|
||||
}
|
||||
public class spuLimitedInitParam
|
||||
{
|
||||
public int? periodType { get; set; } = 0;
|
||||
public string limitedBuyNum { get; set; } = "";
|
||||
|
||||
}
|
||||
|
||||
public class productInitDetailParam
|
||||
{
|
||||
public string desc { get; set; } = "";
|
||||
public List<object> detailImg { get; set; } = new List<object>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,755 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AllBase.Model.Param.WXParam
|
||||
{
|
||||
public class WXUploadProductParam
|
||||
{
|
||||
public int? from { get; set; } = 2; // 2,
|
||||
public WXProductParam product { get; set; } = new WXProductParam();
|
||||
public int? type { get; set; } = 0;
|
||||
public bool? listingFlag { get; set; } = true;
|
||||
public bool? skipCheckAttr { get; set; } = true;
|
||||
public sessionInfoParam sessionInfo { get; set; } = new sessionInfoParam();
|
||||
}
|
||||
|
||||
public class sessionInfoParam
|
||||
{
|
||||
//"1767692870470-ea4c0227-4579-4647-813b-7f4e8a190ad6"
|
||||
public string sessionId { get; set; } =
|
||||
(long)(DateTime.Now - TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1))).TotalMilliseconds + "-" + Guid.NewGuid().ToString();
|
||||
}
|
||||
|
||||
public class WXProductParam
|
||||
{
|
||||
public productKeyParam productKey { get; set; } = new productKeyParam();
|
||||
public int? status { get; set; } // 5,
|
||||
public int? editStatus { get; set; } // 4,
|
||||
public string auditReason { get; set; } = "";
|
||||
public auditResultInfoParam auditResultInfo { get; set; } = new auditResultInfoParam();
|
||||
public productInfoParam info { get; set; } = new productInfoParam();
|
||||
public List<productSkuParam> productSkus { get; set; } = new List<productSkuParam>();
|
||||
public int? categoryType { get; set; } = 2;
|
||||
public bool? isGoodsSpecialCategory { get; set; } = true;
|
||||
}
|
||||
|
||||
public class productSkuParam
|
||||
{
|
||||
public string __skuKey { get; set; } // "尺码.M_颜色.蓝色",
|
||||
public string __skuTitle { get; set; } // "蓝色 M",
|
||||
public bool? __skuSelected { get; set; } = true;
|
||||
public skuKeyParam skuKey { get; set; } = new skuKeyParam();
|
||||
public string skuId { get; set; } // "6134573242",
|
||||
public productSkuInfoParam productSkuInfo { get; set; } = new productSkuInfoParam();
|
||||
public int? status { get; set; } = 5;
|
||||
}
|
||||
|
||||
public class productSkuInfoParam
|
||||
{
|
||||
public string thumbImg { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/695c85e9000a3bff29d22878fedda00b000000a000004f50",
|
||||
public int? salePrice { get; set; } // 10000,
|
||||
public string skuCode { get; set; } = "";
|
||||
public string barCode { get; set; } = "";
|
||||
public stockInfoParam stockInfo { get; set; } = new stockInfoParam();
|
||||
public saleParamParam saleParam { get; set; } = new saleParamParam();
|
||||
public skuDeliverInfoParam skuDeliverInfo { get; set; } = new skuDeliverInfoParam();
|
||||
}
|
||||
|
||||
public class skuDeliverInfoParam
|
||||
{
|
||||
public int? stockType { get; set; } = 0;
|
||||
public int? fullPaymentPresaleDeliveryType { get; set; } = 0;
|
||||
public string presaleBeginTime { get; set; } = "0";
|
||||
public string presaleEndTime { get; set; } = "0";
|
||||
public int? spotDeliveryTime { get; set; } = 1;
|
||||
public string fullPaymentPresaleDeliveryTime { get; set; } = "0";
|
||||
public int? spotAfterPresaleEnd { get; set; } = 0;
|
||||
|
||||
}
|
||||
|
||||
public class saleParamParam
|
||||
{
|
||||
/// <summary>
|
||||
/// 第一个参数为sku spec类别 categoryKeyParam
|
||||
/// 第二个参数为sku spec数值 categoryValueParam
|
||||
/// </summary>
|
||||
public List<object> categorys { get; set; }
|
||||
}
|
||||
|
||||
public class categoryKeyParam
|
||||
{
|
||||
public bool? isCustomize { get; set; } // true,
|
||||
public bool? isMainSale { get; set; } // true,
|
||||
public string name { get; set; } // "颜色",
|
||||
public int? id { get; set; } // 3,
|
||||
public string catId { get; set; } // "颜色",
|
||||
public int? value { get; set; } // 0,
|
||||
public string label { get; set; } // "自定义规格",
|
||||
public int? priority { get; set; } // 1,
|
||||
public skuCatInfoParam catInfo { get; set; } // { "isCustomize": 1 }, // 自定义属性才有
|
||||
public int? catType { get; set; } // 8 //自定义属性才有
|
||||
|
||||
//以下自定义属性没有
|
||||
public string type { get; set; } // "select_one",
|
||||
public string hint { get; set; } // "",
|
||||
public string remark { get; set; } // "",
|
||||
public bool? appendAllowed { get; set; } // true,
|
||||
public releaseParam normalRelease { get; set; } // { "ruleType": 2 },
|
||||
public releaseParam quickRelease { get; set; } // { "ruleType": 0 },
|
||||
public bool? isRequired { get; set; } // false,
|
||||
public bool? display { get; set; } // true,
|
||||
public string data { get; set; } // "",
|
||||
public int? weight { get; set; } // 0,
|
||||
public decimal? key { get; set; } // 0.3529221028790839,
|
||||
public List<skuSelectParam> selectList { get; set; }
|
||||
public string unit { get; set; } // "",
|
||||
public string unitValue { get; set; } // "",
|
||||
public bool? show { get; set; } // false,
|
||||
public string initData { get; set; } // ""
|
||||
}
|
||||
public class categoryValueParam
|
||||
{
|
||||
public string catId { get; set; } // "1767670333303",
|
||||
public string name { get; set; } // "黑色",
|
||||
public string fCatId { get; set; } // "2000000000006",
|
||||
public string catType { get; set; } // 0,
|
||||
public string brandCat { get; set; } // "0",
|
||||
public categoryValueCatInfo catInfo { get; set; }
|
||||
|
||||
public string desc { get; set; } = "";
|
||||
public int? priority { get; set; } = 1;
|
||||
public string createTime { get; set; } = "0";
|
||||
public string updateTime { get; set; } = "0";
|
||||
public int? version { get; set; } = 0;
|
||||
public string auditId { get; set; } = "0";
|
||||
public bool? leaf { get; set; } = false;
|
||||
public int? state { get; set; } = 0;
|
||||
public string tips { get; set; } = "";
|
||||
public string detail { get; set; } = "";
|
||||
public string thumbImg { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/695c85e9000a3bff29d22878fedda00b000000a000004f50",
|
||||
public string skuNameValue { get; set; } = "黑色";
|
||||
|
||||
}
|
||||
|
||||
public class categoryValueCatInfo
|
||||
{
|
||||
public List<object> businessInfoList { get; set; } = new List<object>();
|
||||
public int? isCustomize { get; set; } = 0;
|
||||
public int? editByUser { get; set; } = 1;
|
||||
public int? isRequired { get; set; } = 0;
|
||||
public int? specType { get; set; } = 0;
|
||||
public string specTypeDesc { get; set; } = "";
|
||||
public string attrTemplateId { get; set; } = "0";
|
||||
public string attrTemplateName { get; set; } = "";
|
||||
public int? maxAttrNum { get; set; } = 0;
|
||||
public int? catLevel { get; set; } = 0;
|
||||
public int? highestPriceFixing { get; set; } = 0;
|
||||
public string wording { get; set; } = "";
|
||||
public string description { get; set; } = "";
|
||||
public int? maxProductNum { get; set; } = 0;
|
||||
public string qualification { get; set; } = "";
|
||||
public string productQualification { get; set; } = "";
|
||||
public string quaNeedAudit { get; set; } = "";
|
||||
public int? maxQualificationImg { get; set; } = 0;
|
||||
public long? catGroup { get; set; } // 4294967295,
|
||||
public string qualificationId { get; set; } = "0";
|
||||
public int? qualificationType { get; set; } = 0;
|
||||
public int? productQualificationType { get; set; } = 0;
|
||||
public string productQualificationId { get; set; } = "0";
|
||||
public bool? isVirtualGoods { get; set; } = false;
|
||||
public string limit { get; set; } = "0";
|
||||
public int? inputType { get; set; } = 0;
|
||||
public int? componentCatGroup { get; set; } = 0;
|
||||
public int? isHide { get; set; } = 0;
|
||||
public bool? onlyWriteOffInShop { get; set; } = false;
|
||||
|
||||
}
|
||||
|
||||
public class skuSelectParam
|
||||
{
|
||||
public string label { get; set; } // "XS",
|
||||
public string value { get; set; } // "XS"
|
||||
}
|
||||
|
||||
public class skuCatInfoParam
|
||||
{
|
||||
public int? isCustomize { get; set; } // 1
|
||||
}
|
||||
|
||||
public class stockInfoParam
|
||||
{
|
||||
public int? stockNum { get; set; } // 5
|
||||
}
|
||||
|
||||
public class skuKeyParam
|
||||
{
|
||||
public string skuId { get; set; } // "6134573242"
|
||||
public productKeyDetailParam productKey { get; set; }
|
||||
}
|
||||
|
||||
public class productKeyDetailParam
|
||||
{
|
||||
public string productId { get; set; } // "10000408181873",
|
||||
public string outProductId { get; set; } = "";
|
||||
public string appid { get; set; } = "";
|
||||
public string originProductId { get; set; } = "0";
|
||||
public int? productKeyType { get; set; } = 0;
|
||||
public int? stockType { get; set; } = 0;
|
||||
public string stockTypeId { get; set; } = "";
|
||||
public string promoterKey { get; set; } = "";
|
||||
}
|
||||
|
||||
public class productInfoParam // info
|
||||
{
|
||||
public List<string> headImg { get; set; } = new List<string>(); // [ "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/695c7f5f000d23e709f79176079a1715000000a000004f50" ...],
|
||||
public List<categoryParam> category { get; set; } = new List<categoryParam>();
|
||||
public List<propParam> param { get; set; } = new List<propParam>();
|
||||
public List<productSaleAttrParam> productSaleAttrs { get; set; } = new List<productSaleAttrParam>();
|
||||
public List<object> shopcatId { get; set; } = new List<object>();
|
||||
public List<object> qualificationUrl { get; set; } = new List<object>();
|
||||
public List<object> thirdCategoryHistories { get; set; } = new List<object>();
|
||||
public List<object> headVideoInfo { get; set; } = new List<object>();
|
||||
public List<object> labels { get; set; } = new List<object>();
|
||||
public List<object> qualificationList { get; set; } = new List<object>();
|
||||
public List<productHeadimgInfoParam> productHeadimgInfo { get; set; }
|
||||
public List<object> deliverAcctType { get; set; } = new List<object>();
|
||||
public List<headImgInfoParam> headImgInfos { get; set; }
|
||||
public List<object> iconTags { get; set; } = new List<object>();
|
||||
public List<object> orderIconTags { get; set; } = new List<object>();
|
||||
public string title { get; set; } // "中老年妈妈牛仔阔腿裤2025秋冬季新款女士显瘦高腰宽松直筒牛仔裤",
|
||||
public string subTitle { get; set; } = ""; // "",
|
||||
public string brand { get; set; } // "",
|
||||
public string model { get; set; } = ""; // "",
|
||||
public productDetailParam detail { get; set; }
|
||||
/// <summary>
|
||||
/// 品牌编号
|
||||
/// </summary>
|
||||
//public string brandId { get; set; } = "2100000000"; //
|
||||
public long? brandId { get; set; } = 2100000000;
|
||||
public skuIdListParam skuIdList { get; set; }
|
||||
public skuListParam skuList { get; set; }
|
||||
public recommendCategoryParam recommendCategory { get; set; }
|
||||
public string listingTime { get; set; } // "1767693374",
|
||||
public string totalStockNum { get; set; } // "0",
|
||||
public serviceDescParam serviceDesc { get; set; }
|
||||
/// <summary>
|
||||
/// 运费信息
|
||||
/// </summary>
|
||||
public expressInfoParam expressInfo { get; set; }
|
||||
public string totalSoldNum { get; set; } = "0";
|
||||
public string qualificationWording { get; set; } = "";
|
||||
public string appidForMedia { get; set; } = "";
|
||||
public snapshotInfoParam snapshotInfo { get; set; }
|
||||
public int? shopcatVersion { get; set; } = 0;
|
||||
public string totalOrderNum { get; set; } = "0";
|
||||
public string totalVisitNum { get; set; } = "0";
|
||||
public int? uploadSource { get; set; } = 6;
|
||||
public spuLimitedParam spuLimited { get; set; }
|
||||
public int? originUploadSource { get; set; } = 6;
|
||||
public int? virtualType { get; set; } = 2;
|
||||
public int? productType { get; set; } = 1;
|
||||
/// <summary>
|
||||
/// extCode 货号
|
||||
/// </summary>
|
||||
public string spuCode { get; set; } = "";
|
||||
public int? asyncUpproductRet { get; set; } = 0;
|
||||
public int? illegalRecordId { get; set; } = 0;
|
||||
public string headImage { get; set; } = "";
|
||||
public string componentUin { get; set; } = "0";
|
||||
public string copyFromSpuId { get; set; } = "0";
|
||||
public int? deliverMethod { get; set; } = 0;
|
||||
public int? presaleTag { get; set; } = 0;
|
||||
public int? presaleTagType { get; set; } = 0;
|
||||
public int? maxPresaleEndTime { get; set; } = 0;
|
||||
public extraServiceParam extraService { get; set; }
|
||||
/// <summary>
|
||||
/// 售后信息
|
||||
/// </summary>
|
||||
public afterSaleInfoParam afterSaleInfo { get; set; }
|
||||
public int? lastRefundOrderDays { get; set; } = 0;
|
||||
public string nodeCatId { get; set; } // "547705",
|
||||
public sizeChartInfoParam sizeChartInfo { get; set; } = new sizeChartInfoParam();
|
||||
public string lastEditDraftTime { get; set; } // "1767693275";
|
||||
public customConfigParam customConfig { get; set; } = new customConfigParam();
|
||||
public string updateStatusTime { get; set; } = "0";
|
||||
/// <summary>
|
||||
/// 短标题
|
||||
/// </summary>
|
||||
public string shortTitle { get; set; } // "显瘦高腰中老年宽松牛仔裤",
|
||||
public int? barCodeType { get; set; } = 0;
|
||||
public string originNodeCatId { get; set; } // "547705",
|
||||
public int? changeCatLevel { get; set; } = 0;
|
||||
public int? releaseMode { get; set; } = 0;
|
||||
public bool? isDuplicatedInShop { get; set; } = false;
|
||||
/// <summary>
|
||||
/// ai短标题
|
||||
/// </summary>
|
||||
public string aiGenShortTitle { get; set; } // "显瘦高腰中老年宽松牛仔裤",
|
||||
public bool? empty { get; set; } = false;
|
||||
public string uniqueId { get; set; } // "4330209544501837823",
|
||||
public string titleUtf8Token { get; set; } = "";
|
||||
public bool? hideInWindow { get; set; } = false;
|
||||
public bool? canGivePresent { get; set; } = false;
|
||||
public bool? canGenOrder { get; set; } = false;
|
||||
public int? presentPriceLimit { get; set; } = 0;
|
||||
public bool? showPresentBtn { get; set; } = false;
|
||||
public string canntGivePresnetMsg { get; set; } = "";
|
||||
public string canntGenOrderMsg { get; set; } = "";
|
||||
public bool? canAddShopBag { get; set; } = false;
|
||||
public bool? canGiveGroupPresent { get; set; } = false;
|
||||
public bool? presentNeedSelectSku { get; set; } = true;
|
||||
public givePresentInfoParam givePresentInfo { get; set; } = new givePresentInfoParam();
|
||||
public bool? hideBottomBar { get; set; } = false;
|
||||
public bool? canAddUserFavory { get; set; } = false;
|
||||
public string extendAuditData { get; set; } = "";
|
||||
public int? consumeStockType { get; set; } = 0;
|
||||
public int? auditFromPersonalTrans { get; set; } = 0;
|
||||
public bool? isClipEditGray { get; set; } = false;
|
||||
public List<object> promotingVideoInfos { get; set; } = new List<object>();
|
||||
public timingOnsaleInfoParam timingOnsaleInfo { get; set; }
|
||||
public leagueItemInfoParam leagueItemInfo { get; set; }
|
||||
}
|
||||
|
||||
public class timingOnsaleInfoParam
|
||||
{
|
||||
public int? status { get; set; } = 0;
|
||||
public int? isHidePrice { get; set; } = 0;
|
||||
|
||||
}
|
||||
|
||||
public class leagueItemInfoParam
|
||||
{
|
||||
public int? itemSwitch { get; set; } = 0;
|
||||
public int? itemRatio { get; set; } = 0;
|
||||
public int? headSupplierPublicItemSwitch { get; set; } = 0;
|
||||
public int? headSupplierPublicItemServiceRatio { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class givePresentInfoParam
|
||||
{
|
||||
public bool? supportPresentCard { get; set; } = false;
|
||||
public bool? canChangeSkus { get; set; } = false;
|
||||
public int? usePresentHeadImg { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class customConfigParam
|
||||
{
|
||||
public List<object> customType { get; set; } = new List<object>();
|
||||
public List<object> customTextInputTypes { get; set; } = new List<object>();
|
||||
public List<object> descImgList { get; set; } = new List<object>();
|
||||
public int? customTextMaxLength { get; set; } = 0;
|
||||
public int? customTextInputType { get; set; } = 0;
|
||||
public int? customTextDirection { get; set; } = 0;
|
||||
public int? customTextFontSize { get; set; } = 0;
|
||||
public string customTextColor { get; set; } = "";
|
||||
public bool? openCustom { get; set; } = false;
|
||||
public string deliveryTime { get; set; } = "0";
|
||||
public int? previewType { get; set; } = 0;
|
||||
|
||||
}
|
||||
|
||||
public class sizeChartInfoParam
|
||||
{
|
||||
public List<object> specificationList { get; set; } = new List<object>();
|
||||
public bool? enable { get; set; } = false;
|
||||
public string templateId { get; set; } = "0";
|
||||
public string title { get; set; } = "";
|
||||
public string comment { get; set; } = "";
|
||||
|
||||
}
|
||||
|
||||
public class afterSaleInfoParam
|
||||
{
|
||||
/// <summary>
|
||||
/// 售后服务地址Id
|
||||
/// </summary>
|
||||
public string afterSaleAddressId { get; set; } // "56417904002"
|
||||
}
|
||||
|
||||
public class extraServiceParam
|
||||
{
|
||||
public int? sevenDayReturn { get; set; } = 1;
|
||||
public int? payAfterUse { get; set; } = 1;
|
||||
public int? freightInsurance { get; set; } = 1; // 运费险
|
||||
public int? fastRefund { get; set; } = 1; // 快速退款
|
||||
public int? damageGuarantee { get; set; } = 0;
|
||||
public int? fakeOnePayFour { get; set; } = 0;
|
||||
public int? refundOrderTime { get; set; } = 0;
|
||||
public int? deliverAfterCheck { get; set; } = 0;
|
||||
public int? exchangeSupport { get; set; } = 1;
|
||||
public int? buyWithConfidence { get; set; } = 0;
|
||||
public int? seniorFastRefund { get; set; } = 0;
|
||||
public int? seniorCustomerService { get; set; } = 0;
|
||||
public int? seniorFreeReturn { get; set; } = 0;
|
||||
public int? seniorPlatformSupport { get; set; } = 0;
|
||||
public int? seniorFastExchange { get; set; } = 0;
|
||||
public int? elderlyUserFastRefund { get; set; } = 0;
|
||||
public int? elderlyUserCustomerService { get; set; } = 0;
|
||||
public int? elderlyUserFreeReturn { get; set; } = 0;
|
||||
public int? elderlyUserPlatformSupport { get; set; } = 0;
|
||||
public int? elderlyUserFastExchange { get; set; } = 0;
|
||||
public int? newUserFastRefund { get; set; } = 0;
|
||||
public int? newUserCustomerService { get; set; } = 0;
|
||||
public int? newUserFreeReturn { get; set; } = 0;
|
||||
public int? newUserPlatformSupport { get; set; } = 0;
|
||||
public int? newUserFastExchange { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class spuLimitedParam
|
||||
{
|
||||
public int periodType { get; set; } = 0;
|
||||
public int limitedBuyNum { get; set; } = 0;
|
||||
public int createTime { get; set; } = 0;
|
||||
public int updateTime { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class snapshotInfoParam
|
||||
{
|
||||
public string snapshotId { get; set; } // "1115465280",
|
||||
public string auditId { get; set; } // "8248460949"
|
||||
|
||||
}
|
||||
|
||||
public class expressInfoParam
|
||||
{
|
||||
/// <summary>
|
||||
/// 运费模板
|
||||
/// </summary>
|
||||
public string templateId { get; set; } // "763996138004",
|
||||
//public string weight { get; set; } = "0";
|
||||
}
|
||||
|
||||
public class serviceDescParam
|
||||
{
|
||||
public List<object> serviceList { get; set; } = new List<object>();
|
||||
public string desc { get; set; } = "";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 是否使用ai推荐类目信息,新建商品进入的照抄
|
||||
/// </summary>
|
||||
public class recommendCategoryParam
|
||||
{
|
||||
public bool? isAccepted { get; set; } = false;
|
||||
public List<object> categoryNames { get; set; } = new List<object>();
|
||||
public string recommendSource { get; set; } = "none";
|
||||
public string interfaceName { get; set; } = "";
|
||||
public int? useNewInterface { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class skuListParam
|
||||
{
|
||||
public skuInfoParam skuInfo { get; set; }
|
||||
public int? minPrice { get; set; } // 10000,
|
||||
public int? maxPrice { get; set; } // 10000,
|
||||
public int? discountedPrice { get; set; } = 0;
|
||||
public bool? isDiscounted { get; set; } = false;
|
||||
public int? estimatePrice { get; set; } = 0;
|
||||
public int? leagueDiscountedPrice { get; set; } = 0;
|
||||
public string estimateCouponId { get; set; } = "0";
|
||||
public string minPriceWording { get; set; } = "";
|
||||
public string buyButtonWording { get; set; } = "";
|
||||
public string microMemberDiscountedPrice { get; set; } = "0";
|
||||
public int? estimatePricePriceType { get; set; } = 0;
|
||||
public string withoutMicroMemberPriceWording{ get; set; } = "";
|
||||
public int? originPrice { get; set; } = 0;
|
||||
public int? discountRate { get; set; } = 0;
|
||||
public string estimateBatchId{ get; set; } = "";
|
||||
public int? estimateCouponPromoteType { get; set; } = 0;
|
||||
public string estimatePlatformDiscountCouponId{ get; set; } = "0";
|
||||
public int? estimatePlatformDiscountCouponPromoteType { get; set; } = 0;
|
||||
public int? referencePrice { get; set; } = 0;
|
||||
public int? originMaxPrice { get; set; } = 0;
|
||||
public string bulkbuyDiscountedPrice{ get; set; } = "0";
|
||||
public string bulkbuyActivityId{ get; set; } = "0";
|
||||
public string estimateCashCouponDiscountCouponId{ get; set; } = "";
|
||||
public int? subsidyQualificationStatus { get; set; } = 0;
|
||||
public int? subsidyStatus { get; set; } = 0;
|
||||
public string subsidySubPriceWording{ get; set; } = "";
|
||||
public string subsidyBannerWording{ get; set; } = "";
|
||||
public string estimateSubsidyRuleId{ get; set; } = "0";
|
||||
public string subsidyLocationWording{ get; set; } = "";
|
||||
public string subsidyDetailWording{ get; set; } = "";
|
||||
public string preEstimatePrice{ get; set; } = "0";
|
||||
public string bulkbuyNeedGap{ get; set; } = "0";
|
||||
public int? bulkbuyNeedProductCnt { get; set; } = 0;
|
||||
public bool? canUseSubsidy{ get; set; } = false;
|
||||
public string bulkbuyQuotaId{ get; set; } = "";
|
||||
public int? estimateCashCouponPromoteType { get; set; } = 0;
|
||||
public string minPriceSkuId{ get; set; } = "0";
|
||||
public int? bulkbuyNeedPeopleCnt { get; set; } = 0;
|
||||
public int? minPriceType { get; set; } = 0;
|
||||
public string canSubsidyLocationWording{ get; set; } = "";
|
||||
public int? subsidyType { get; set; } = 0;
|
||||
public int? estimateCashCouponSecondBusinessScene { get; set; } = 0;
|
||||
public string estimateActivityDiscountedPrice{ get; set; } = "0";
|
||||
public string estimateActivityId{ get; set; } = "0";
|
||||
public string estimateCashCouponDiscountPrice{ get; set; } = "0";
|
||||
public string estimateFavorCouponId{ get; set; } = "0";
|
||||
public string defaultSelectedSkuId{ get; set; } = "0";
|
||||
public int? detailTagType { get; set; } = 0;
|
||||
|
||||
}
|
||||
|
||||
public class skuInfoParam
|
||||
{
|
||||
public List<object> skuActivityInfos { get; set; } = new List<object>();
|
||||
public string skuId { get; set; } // "6134651417",
|
||||
public int? price { get; set; } // 10000,
|
||||
public string skuSnapId { get; set; } = "0"; // "0",
|
||||
public bool? isDiscounted { get; set; } = false; // false,
|
||||
public int? discountedPrice { get; set; } = 0; // 0,
|
||||
public int? estimatePrice { get; set; } = 0; // 0,
|
||||
public string estimateCouponId { get; set; } = "0"; // "0",
|
||||
public bool? canUseCoupon { get; set; } = false; // false,
|
||||
public int? marketPrice { get; set; } = 0; // 0,
|
||||
public int? priceType { get; set; } = 0; // 0,
|
||||
public string microMemberDiscountedPrice { get; set; } = "0"; // "0",
|
||||
public bool? runOutStock { get; set; } = false; // false,
|
||||
public int? originPrice { get; set; } = 0 ;// 0,
|
||||
public int? discountRate { get; set; } = 0; // 0,
|
||||
public string estimateBatchId { get; set; } = ""; // "",
|
||||
public int? estimateCouponPromoteType { get; set; } = 0;// 0,
|
||||
public string estimatePlatformDiscountCouponId { get; set; } = "0"; // "0",
|
||||
public int? estimatePlatformDiscountCouponPromoteType { get; set; } = 0;// 0,
|
||||
public int? referencePrice { get; set; } = 0; // 0,
|
||||
public string priceWording { get; set; } = ""; // "",
|
||||
public string bulkbuyDiscountedPrice { get; set; } = "0"; // "0",
|
||||
public string bulkbuyActivityId { get; set; } = "0"; // "0",
|
||||
public string estimateCashCouponDiscountCouponId { get; set; } = ""; // "",
|
||||
public string estimateActivityDiscountedPrice { get; set; } = "0"; // "0",
|
||||
public string estimateActivityId { get; set; } = "0"; // "0",
|
||||
public string estimateCashCouponDiscountPrice { get; set; } = "0"; // "0",
|
||||
public string estimateSubsidyRuleId { get; set; } = "0"; // "0",
|
||||
public string barCode { get; set; } = ""; // "",
|
||||
public string preEstimatePrice { get; set; } = "0"; // "0",
|
||||
public bool? canUseSubsidy { get; set; } = false; // false,
|
||||
public int? estimateCashCouponPromoteType { get; set; } = 0; // 0,
|
||||
public int? estimatePriceType { get; set; } = 0; // 0,
|
||||
public int? subsidyType { get; set; } = 0; // 0,
|
||||
public bool? isNewBulkbuy { get; set; } = false; // false,
|
||||
public int? estimateCashCouponSecondBusinessScene { get; set; } = 0; // 0,
|
||||
public string estimateFavorCouponId { get; set; } = "0"; // "0",
|
||||
public int? detailTagType { get; set; } = 0; // 0,
|
||||
public bool? limitedDiscountNeedReplaceStock { get; set; } = false; // false,
|
||||
public string limitedDiscountStock { get; set; } = "0"; // "0"
|
||||
}
|
||||
|
||||
public class skuIdListParam
|
||||
{
|
||||
public List<string> skuIds { get; set; } // [ "6134651417", "6134573242" ]
|
||||
}
|
||||
|
||||
public class productDetailParam
|
||||
{
|
||||
public List<string> detailImg { get; set; } // ["https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/695c863e00022b1f09b35b0e7ad91715000000a000004f50", ...]
|
||||
public List<object> detailVideos { get; set; } = new List<object>();
|
||||
public List<object> detailVideoInfo { get; set; } = new List<object>();
|
||||
public List<object> carouselImg { get; set; } = new List<object>();
|
||||
public string desc { get; set; } = ""; // ""
|
||||
}
|
||||
|
||||
public class headImgInfoParam
|
||||
{
|
||||
public string imgUrl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/695c7f5f000d23e709f79176079a1715000000a000004f50",
|
||||
public int? imgWidth { get; set; } // 800,
|
||||
public int? imgHeight { get; set; } // 800
|
||||
}
|
||||
|
||||
public class productHeadimgInfoParam
|
||||
{
|
||||
public List<object> colors { get; set; } = new List<object>();
|
||||
public string imgUrl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/695c7f5f000d23e709f79176079a1715000000a000004f50",
|
||||
public mainColorParam mainColors { get; set; }
|
||||
}
|
||||
|
||||
public class mainColorParam
|
||||
{
|
||||
public int? red { get; set; } // 80,
|
||||
public int? green { get; set; } // 78,
|
||||
public int? blue { get; set; } // 77
|
||||
|
||||
}
|
||||
|
||||
public class productSaleAttrParam
|
||||
{
|
||||
public string key { get; set; } // "颜色",
|
||||
public List<productSaleAttrItemParam> items { get; set; } // 最后要补一个空的
|
||||
public bool hasImg { get; set; }
|
||||
}
|
||||
|
||||
public class productSaleAttrItemParam
|
||||
{
|
||||
public string value { get; set; } // "蓝色",
|
||||
public string imgUrl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/695c85e5000dea52198a3d9c98a71715000000a000004f50"
|
||||
|
||||
}
|
||||
|
||||
public class propParam
|
||||
{
|
||||
public List<categoryPropParam> categorys { get; set; }
|
||||
}
|
||||
|
||||
public class categoryPropParam
|
||||
{
|
||||
public string auditId { get; set; } // "0",
|
||||
public string bizuin { get; set; } // "0",
|
||||
public string brandCat { get; set; } // "0",
|
||||
public string catId { get; set; } // "0",
|
||||
public int? catType { get; set; } // 7,
|
||||
public string createTime { get; set; } // "0",
|
||||
public string desc { get; set; } // "",
|
||||
public string fCatId { get; set; } // "0",
|
||||
public string name { get; set; } // "款式",
|
||||
public int? priority { get; set; } // 0,
|
||||
public string updateTime { get; set; } // "0",
|
||||
public int? version { get; set; } // 0,
|
||||
public catInfoParam catInfo { get; set; } // { "inputType": 1, "isRequired": 1, "isCustomize": 0 }
|
||||
}
|
||||
|
||||
public class catInfoParam
|
||||
{
|
||||
public int? inputType { get; set; } // 1,
|
||||
public int? isRequired { get; set; } // 1,
|
||||
public int? isCustomize { get; set; } // 0
|
||||
|
||||
}
|
||||
|
||||
public class categoryParam
|
||||
{
|
||||
public string id { get; set; } // "10000672",
|
||||
public string name { get; set; } // "裤子",
|
||||
public string fId { get; set; } // "10000113",
|
||||
public int? level { get; set; } // 3,
|
||||
public int? disableScene { get; set; } // 0,
|
||||
public bool? leaf { get; set; } // false,
|
||||
public int? state { get; set; } // 0,
|
||||
public string tips { get; set; } // "",
|
||||
public string detail { get; set; } // "",
|
||||
public string catId { get; set; } // "10000672",
|
||||
public string fCatId { get; set; } // "10000113"
|
||||
public bool? catAuth { get; set; } // true
|
||||
public categoryInfoParam catInfo { get; set; }
|
||||
}
|
||||
|
||||
public class categoryInfoParam
|
||||
{
|
||||
public int? catLevel { get; set; } // 3,
|
||||
public bool? onlyWriteOffInShop { get; set; } // false,
|
||||
public bool? isVirtualGoods { get; set; } // false,
|
||||
public long? highestPriceFixing { get; set; } // 250000,
|
||||
public enterpriseAuditInfoParam enterpriseAuditInfo { get; set; }
|
||||
public allAttrParam productAttr { get; set; }
|
||||
public allAttrParam saleAttr { get; set; }
|
||||
public allAttrParam sizeAttr { get; set; }
|
||||
public presaleDataParam presaleData { get; set; }
|
||||
public List<object> confirmReceiptOptions { get; set; }
|
||||
}
|
||||
|
||||
public class presaleDataParam
|
||||
{
|
||||
public bool? presaleSwitch { get; set; } // true,
|
||||
public deliveryParam deliveryAfterPresale { get; set; } // { "presaleCycleSpan": 15, "minDelayDay": 2, "maxDelayDay": 3 },
|
||||
public deliveryParam deliveryAfterPay { get; set; } // { "minDelayDay": 3, "maxDelayDay": 15 },
|
||||
public int? dsrThreshold { get; set; } // 400,
|
||||
public int? productPriceThreshold { get; set; } // 1500,
|
||||
public int? dsrLogisticsExperienceThreshold { get; set; } // 400,
|
||||
public bool? hasHotBrand { get; set; } // false
|
||||
|
||||
}
|
||||
|
||||
public class deliveryParam
|
||||
{
|
||||
public int? presaleCycleSpan { get; set; } // 15,
|
||||
public int? minDelayDay { get; set; } // 2,
|
||||
public int? maxDelayDay { get; set; } // 3
|
||||
}
|
||||
|
||||
public class allAttrParam
|
||||
{
|
||||
public List<attrParam> attr { get; set; }
|
||||
public bool? enable { get; set; } // false
|
||||
}
|
||||
|
||||
public class attrParam
|
||||
{
|
||||
public string name { get; set; } // "弹力", // "面料材质成分含量"
|
||||
public string type { get; set; } // "select_one", // "decimal4_unit"
|
||||
public string value { get; set; } // "无弹性;有弹性;微弹力;中弹力;高弹力", // "%"
|
||||
public bool? isRequired { get; set; } // true,
|
||||
public string hint { get; set; } // "",
|
||||
public string remark { get; set; } // "",
|
||||
public bool? appendAllowed { get; set; } // false,
|
||||
public attractFactorDisplayParam attractFactorDisplay { get; set; }
|
||||
public releaseParam normalRelease { get; set; } // { "ruleType": 2 }, // { "ruleType": 1 },
|
||||
public releaseParam quickRelease { get; set; } // { "ruleType": 0 }
|
||||
}
|
||||
|
||||
public class attractFactorDisplayParam
|
||||
{
|
||||
public string prefix { get; set; } // "",
|
||||
public string postfix { get; set; } // ""
|
||||
}
|
||||
|
||||
public class enterpriseAuditInfoParam
|
||||
{
|
||||
public int? maxQualificationImg { get; set; } // 10,
|
||||
public int? productQualificationType { get; set; } // 2,
|
||||
public int? qualificationType { get; set; } // 2,
|
||||
public int? productTitleQualificationType { get; set; } // 2,
|
||||
public int? productImgQualificationType { get; set; } // 2,
|
||||
public int? productDescQualificationType { get; set; } // 2,
|
||||
public List<productQualificationParam> productQualificationList { get; set; }
|
||||
}
|
||||
|
||||
public class productQualificationParam
|
||||
{
|
||||
public bool? needToApply { get; set; } // true,
|
||||
public string id { get; set; } // "50000043",
|
||||
public string tips { get; set; } // "当商品信息涉及特殊材质:真丝、蚕丝、香云纱、羊绒、羊毛、羊羔毛、羽绒、皮草等,需上传含CMA/CNAS认证标识的特殊材质质检报告或商品吊牌实拍图(二选一在相应资质入口上传)",
|
||||
public int? type { get; set; } // 2,
|
||||
public string name { get; set; } // "特殊材质质检报告",
|
||||
public int? showCertForProduct { get; set; } // 0,
|
||||
public releaseParam normalRelease { get; set; } // { "ruleType": 2 },
|
||||
public releaseParam quickRelease { get; set; } // { "ruleType": 0 }
|
||||
}
|
||||
|
||||
public class releaseParam
|
||||
{
|
||||
public int? ruleType { get; set; } // 2 // 0
|
||||
}
|
||||
|
||||
public class auditResultInfoParam
|
||||
{
|
||||
public string auditId { get; set; } // "8248460949",
|
||||
public int? auditStatus { get; set; } // 3,
|
||||
public auditResultReasonParam auditResultReason { get; set; }
|
||||
public long? auditTimestamp { get; set; } // 1767693373,
|
||||
public long? submitTimestamp { get; set; } // 1767693275,
|
||||
public string quaInspectId { get; set; } // "0",
|
||||
public long? quaInspectTimestamp { get; set; } // 0,
|
||||
public string quaInspectStatus { get; set; } // "0"
|
||||
}
|
||||
|
||||
public class auditResultReasonParam
|
||||
{
|
||||
public List<ReasonItemParam> itemList { get; set; }
|
||||
}
|
||||
|
||||
public class ReasonItemParam
|
||||
{
|
||||
public string key { get; set; } // "reason"
|
||||
public string value { get; set; } // ""
|
||||
}
|
||||
|
||||
public class productKeyParam
|
||||
{
|
||||
/// <summary>
|
||||
/// 商品id(保存草稿箱的时候才能获取到,提交上架的时候需要填写)
|
||||
/// </summary>
|
||||
public string productId { get; set; } // "10000408181873"
|
||||
}
|
||||
}
|
||||
@@ -33,6 +33,7 @@ namespace AllBase.Model.Result
|
||||
public string Cookies2 { get; set; } = "";
|
||||
public string pddid { get; set; }
|
||||
public ConcurrentList<string> AntiContents { get; set; } = new ConcurrentList<string>();
|
||||
public string openid { get; set; }
|
||||
public Dictionary<string, string> DictMultiCookies { get; set; } = new Dictionary<string, string>();
|
||||
public string LoginStatus { get; set; }
|
||||
public string LoginStatus2 { get; set; }
|
||||
@@ -274,7 +275,14 @@ namespace AllBase.Model.Result
|
||||
public string AccountId { get; set; }
|
||||
public string AccountName { get; set; }
|
||||
public string LoginStatus { get; set; }
|
||||
/// <summary>
|
||||
/// 拼多多校验数据列表
|
||||
/// </summary>
|
||||
public string AntiContent { get; set; }
|
||||
/// <summary>
|
||||
/// 微信小店开放Id信息
|
||||
/// </summary>
|
||||
public string openid { get; set; }
|
||||
}
|
||||
|
||||
public class ShopOrderStatisticsInfo
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AllBase.Model.Result.WXResult
|
||||
{
|
||||
/// <summary>
|
||||
/// 根据类目获取的类目属性信息
|
||||
/// </summary>
|
||||
public class GetCateOnShelfInfo
|
||||
{
|
||||
public int? ret { get; set; } // 0,
|
||||
public int? code { get; set; } // 0,
|
||||
public int? success { get; set; } // true,
|
||||
public int? onShelf { get; set; } // true,
|
||||
public List<categoryResult> category { get; set; }
|
||||
public brandResult brand { get; set; }
|
||||
public int? categoryType { get; set; } // 2,
|
||||
public int? categoryCatAuthType { get; set; } // 2,
|
||||
public int? isGoodsSpecialCategory { get; set; } // true
|
||||
|
||||
}
|
||||
|
||||
public class brandResult
|
||||
{
|
||||
public long? brandId { get; set; } // 2100000000,
|
||||
public long? catId { get; set; } // 547705,
|
||||
public string name { get; set; } // "无品牌"
|
||||
}
|
||||
|
||||
public class categoryResult
|
||||
{
|
||||
public string id { get; set; } // "547705",
|
||||
public string name { get; set; } // "牛仔裤",
|
||||
public string fId { get; set; } // "10000672",
|
||||
public int? level { get; set; } // 4,
|
||||
public int? disableScene { get; set; } // 0,
|
||||
public bool? leaf { get; set; } // true,
|
||||
public int? state { get; set; } // 0,
|
||||
public string tips { get; set; } // "",
|
||||
public string detail { get; set; } // "",
|
||||
public string catId { get; set; } // "547705",
|
||||
public string fCatId { get; set; } // "10000672"
|
||||
public bool? catAuth { get; set; } // true
|
||||
public catInfoResult catInfo { get; set; }
|
||||
}
|
||||
|
||||
public class catInfoResult
|
||||
{
|
||||
public int? catLevel { get; set; } // 3,
|
||||
public bool? onlyWriteOffInShop { get; set; } // false,
|
||||
public bool? isVirtualGoods { get; set; } // false,
|
||||
public int? highestPriceFixing { get; set; } // 250000,
|
||||
public enterpriseAuditInfoResult enterpriseAuditInfo { get; set; }
|
||||
public productAttrResult productAttr { get; set; }
|
||||
public productAttrResult saleAttr { get; set; }
|
||||
public productAttrResult sizeAttr { get; set; }
|
||||
public presaleDataResult presaleData { get; set; }
|
||||
public List<object> confirmReceiptOptions { get; set; }
|
||||
}
|
||||
|
||||
public class presaleDataResult
|
||||
{
|
||||
public bool? presaleSwitch { get; set; } // true,
|
||||
public deliveryResult deliveryAfterPresale { get; set; }
|
||||
public deliveryResult deliveryAfterPay { get; set; }
|
||||
public int? dsrThreshold { get; set; } // 400,
|
||||
public int? productPriceThreshold { get; set; } // 1500,
|
||||
public int? dsrLogisticsExperienceThreshold { get; set; } // 400,
|
||||
public bool? hasHotBrand { get; set; } // false
|
||||
|
||||
}
|
||||
public class deliveryResult
|
||||
{
|
||||
public int? presaleCycleSpan { get; set; } // 15,
|
||||
public int? minDelayDay { get; set; } // 2,
|
||||
public int? maxDelayDay { get; set; } // 3
|
||||
}
|
||||
|
||||
public class productAttrResult
|
||||
{
|
||||
public List<attrResult> attr { get; set; }
|
||||
public bool? enable { get; set; } // false
|
||||
}
|
||||
|
||||
public class attrResult
|
||||
{
|
||||
public string name { get; set; } // "款式",
|
||||
public string type { get; set; } // "select_one",
|
||||
public string value { get; set; } // "哈伦裤;垮裤;阔脚裤;工装裤;微喇裤;铅笔裤;直筒裤;连衣裤;背带裤;灯笼裤;束脚裤;裙裤;短裤;锥形裤;香蕉裤;做旧款;喇叭裤;其他;烟管裤",
|
||||
public bool? isRequired { get; set; } // true,
|
||||
public string hint { get; set; } // "",
|
||||
public string remark { get; set; } // "",
|
||||
public bool? appendAllowed { get; set; } // false,
|
||||
public attractFactorDisplayResult attractFactorDisplay { get; set; }
|
||||
public ReleaseResult normalRelease { get; set; } // { "ruleType": 1 },
|
||||
public ReleaseResult quickRelease { get; set; } // { "ruleType": 0 }
|
||||
}
|
||||
public class attractFactorDisplayResult
|
||||
{
|
||||
public string prefix { get; set; } // "",
|
||||
public string postfix { get; set; } // ""
|
||||
}
|
||||
|
||||
public class enterpriseAuditInfoResult
|
||||
{
|
||||
public int? maxQualificationImg { get; set; } // 10,
|
||||
public int? productQualificationType { get; set; } // 2,
|
||||
public int? qualificationType { get; set; } // 2,
|
||||
public int? productTitleQualificationType { get; set; } // 2,
|
||||
public int? productImgQualificationType { get; set; } // 2,
|
||||
public int? productDescQualificationType { get; set; } // 2,
|
||||
public List<productQualificationResult> productQualificationList { get; set; }
|
||||
}
|
||||
|
||||
public class productQualificationResult
|
||||
{
|
||||
public bool? needToApply { get; set; } // true,
|
||||
public string id { get; set; } // "50000044",
|
||||
public string tips { get; set; } // "当商品信息宣传(抗菌、防菌、抑菌、除菌)时,需上传含CMA/CNAS认证标识的除菌相关检验项目合格的质检报告。",
|
||||
public int? type { get; set; } // 2,
|
||||
public string name { get; set; } // "抑菌质检报告",
|
||||
public int? showCertForProduct { get; set; } // 0,
|
||||
public ReleaseResult normalRelease { get; set; }
|
||||
public ReleaseResult quickRelease { get; set; }
|
||||
}
|
||||
|
||||
public class ReleaseResult
|
||||
{
|
||||
public int? ruleType { get; set; } // 2
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AllBase.Model.Result.WXResult
|
||||
{
|
||||
public class WXGetProdCateInfo
|
||||
{
|
||||
public predInfoResult predInfo { get; set; }
|
||||
public List<aiCategoryResult> aiCategoryList { get; set; }
|
||||
public string version { get; set; } // "ProductClsRAG",
|
||||
public List<long> noQualificationCatIds { get; set; } // [ 547705, 547704, 547701 ],
|
||||
public List<depositCatInfoResult> depositCatInfos { get; set; }
|
||||
public string visionCallMethod { get; set; } // "ProductClsRAG"
|
||||
}
|
||||
|
||||
public class depositCatInfoResult
|
||||
{
|
||||
public long? catId { get; set; } // 547705,
|
||||
public int? amountToPay { get; set; } // 0,
|
||||
public bool? error { get; set; } // false
|
||||
}
|
||||
|
||||
public class aiCategoryResult
|
||||
{
|
||||
public long? id { get; set; } // 547705,
|
||||
public List<aiCatePathResult> paths { get; set; }
|
||||
|
||||
public int? depositAmount { get; set; } // 0,
|
||||
public bool? catAuth { get; set; } // true,
|
||||
public List<object> limitSubjectTypes { get; set; } // [ ]
|
||||
}
|
||||
|
||||
public class aiCatePathResult
|
||||
{
|
||||
public string id { get; set; } // "10000111",
|
||||
public string name { get; set; } // "服饰内衣",
|
||||
public List<string> sonIdList { get; set; } // [ "10000397", "10000115", "10000112", "10000113", "10000114" ],
|
||||
/// <summary>
|
||||
/// 父类目ID
|
||||
/// </summary>
|
||||
public string fId { get; set; } // "0",
|
||||
public int? level { get; set; } // 1,
|
||||
public bool? leaf { get; set; } // false
|
||||
public int? state { get; set; } // 0,
|
||||
public bool? hasTrialCategory { get; set; } // false,
|
||||
public bool? isTrialCategory { get; set; } // false,
|
||||
public bool? isLocalLife { get; set; } // false
|
||||
|
||||
}
|
||||
|
||||
public class predInfoResult
|
||||
{
|
||||
public List<CatResResult> firstCatRes { get; set; }
|
||||
public List<CatResResult> secondCatRes { get; set; }
|
||||
public List<CatResResult> thirdCatRes { get; set; }
|
||||
public List<object> singleSecondCatRes { get; set; }
|
||||
public List<object> singleFirstCatRes { get; set; }
|
||||
public int? isSupportedCate { get; set; } // 1
|
||||
}
|
||||
|
||||
public class CatResResult
|
||||
{
|
||||
public long? catId { get; set; } // 10000111,
|
||||
public string catName { get; set; } // "服饰内衣",
|
||||
public int? level { get; set; } // 1
|
||||
public string modelVersion { get; set; } // "商品标题含'加绒加厚、保暖'等关键词,这表示裤子具备加绒保暖功能。主图展示了加绒内衬,也符合【服饰内衣:女装:裤子:加绒裤】类目特征。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,411 @@
|
||||
using KJD_Web.Model;
|
||||
using KJD_Web.Model.ShopModel;
|
||||
using KJD_Web.Utils;
|
||||
using MySql.Data.MySqlClient;
|
||||
using NaiBa.Util.Extension;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
|
||||
namespace KJD_Web.BLL.WXXD
|
||||
{
|
||||
public class WXProductManage
|
||||
{
|
||||
public string WXGetPDDProductList(string inputData, bool isDetail = false)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
|
||||
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
|
||||
if (time1 != EncrypUtil.Encryption(time))
|
||||
return "{\"code\":50000,\"msg\":\"校验失败\"}";
|
||||
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'","\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
|
||||
var search_spu = RegexUtils.GetStringQuery(ref inputData, "search_spu")?.Replace("'", "\\'");
|
||||
var search_skc = RegexUtils.GetStringQuery(ref inputData, "search_skc")?.Replace("'", "\\'");
|
||||
var search_cat = RegexUtils.GetStringQuery(ref inputData, "search_cat")?.Replace("'", "\\'");
|
||||
var search_ext_code = RegexUtils.GetStringQuery(ref inputData, "search_ext_code")?.Replace("'", "\\'");
|
||||
var search_prod_name = RegexUtils.GetStringQuery(ref inputData, "search_prod_name")?.Replace("'", "\\'");
|
||||
var search_group = RegexUtils.GetStringQuery(ref inputData, "search_group")?.Replace("'", "\\'");
|
||||
var search_notes = RegexUtils.GetStringQuery(ref inputData, "search_notes")?.Replace("'", "\\'");
|
||||
var search_db_ids = RegexUtils.GetStringQuery(ref inputData, "search_db_ids")?.Replace("'", "\\'");
|
||||
var get_select_count = RegexUtils.GetStringQuery(ref inputData, "get_select_count")?.Replace("'", "\\'");
|
||||
var select_shop_id = RegexUtils.GetStringQuery(ref inputData, "select_shop_id")?.Replace("'", "\\'");
|
||||
var from_shop_id = RegexUtils.GetStringQuery(ref inputData, "from_shop_id")?.Replace("'", "\\'");
|
||||
var sort_field = RegexUtils.GetStringQuery(ref inputData, "sort_field")?.Replace("'", "\\'");
|
||||
|
||||
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
|
||||
int page_size= RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
|
||||
string sql = "select count(id) from bxx.product p where p.is_del=0";
|
||||
|
||||
string where = "";
|
||||
if (!string.IsNullOrWhiteSpace(search_spu))
|
||||
where += " and p.spu_id like '%" + search_spu + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_skc))
|
||||
where += " and p.skc_id like '%" + search_skc + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_cat))
|
||||
where += " and p.cat_name like '%" + search_cat + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_ext_code))
|
||||
where += " and p.ext_code like '%" + search_ext_code + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_prod_name))
|
||||
where += " and p.product_name like '%" + search_prod_name + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_group))
|
||||
where += " and p.group like '%" + search_group + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_notes))
|
||||
where += " and p.notes like '%" + search_notes + "%'";
|
||||
if (!string.IsNullOrEmpty(from_shop_id))
|
||||
where += " and p.from_shop_id ='" + from_shop_id + "'";
|
||||
if (!string.IsNullOrEmpty(search_db_ids))
|
||||
where += " and p.id in (" + search_db_ids + ")";
|
||||
sql += where;
|
||||
|
||||
var count = mySql.ExecuteRowCount(sql);
|
||||
|
||||
DataTable dt;
|
||||
if (count == 0)
|
||||
{
|
||||
dt = new DataTable();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isDetail)
|
||||
sql = "select p.*,s.img_base64,s.img_url,e.ext_code_price from bxx.product p" +
|
||||
" left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id" +
|
||||
" LEFT JOIN bxx.ext_code_price e ON p.ext_code=e.ext_code" +
|
||||
" where p.is_del=0";
|
||||
else if (string.IsNullOrEmpty(get_select_count))
|
||||
sql = "select p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,p.ext_code,p.product_name,p.main_img,p.notes," +
|
||||
" p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.sku_img_replace_id,p.group,p.product_get_type,s.img_url,e.ext_code_price" +
|
||||
" FROM bxx.product p " +
|
||||
" left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id" +
|
||||
" LEFT JOIN bxx.ext_code_price e ON p.ext_code=e.ext_code" +
|
||||
" where p.is_del=0";
|
||||
else
|
||||
sql = "SELECT p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,p.ext_code,p.product_name,p.main_img,p.notes," +
|
||||
" p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.sku_img_replace_id,p.group,p.product_get_type,s.img_url,COUNT(se.id) AS select_count," +
|
||||
" e.ext_code_price" +
|
||||
" FROM bxx.product p left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id LEFT JOIN bxx.product_select se ON p.id=se.out_product_id AND se.shop_id='" + select_shop_id + "' " +
|
||||
" LEFT JOIN bxx.ext_code_price e ON p.ext_code=e.ext_code" +
|
||||
" WHERE p.is_del=0";
|
||||
|
||||
//where子句
|
||||
sql += where;
|
||||
|
||||
if (!isDetail && !string.IsNullOrEmpty(get_select_count))
|
||||
sql += " group by p.id";
|
||||
if (sort_field == "select_total_count")
|
||||
sql += " order by p.select_total_count desc, p.id desc";
|
||||
else
|
||||
sql += " order by p.id desc";
|
||||
sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size;
|
||||
dt = mySql.ExecuteDataTable(sql);
|
||||
}
|
||||
|
||||
mySql.Close();
|
||||
if (dt != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<DBProductResultParam> productLst = new List<DBProductResultParam>();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
DBProductResultParam prod = new DBProductResultParam
|
||||
{
|
||||
id = Convert.ToInt32(row["id"]),
|
||||
from_shop_id = row["from_shop_id"].ToString(),
|
||||
skc_id = row["skc_id"].ToString(),
|
||||
spu_id = row["spu_id"].ToString(),
|
||||
cat_id = row["cat_id"].ToString(),
|
||||
cat_name = row["cat_name"].ToString(),
|
||||
product_name = row["product_name"].ToString(),
|
||||
main_img = row["main_img"].ToString(),
|
||||
ext_code = row["ext_code"].ToString(),
|
||||
ext_code_price = row["ext_code_price"].IsNullOrEmpty() ? new int?() : row["ext_code_price"].ParseToInt(),
|
||||
price_text = row["price_text"].ToString(),
|
||||
//product_json = row["product_json"].ToString(),
|
||||
//size_json = row["size_json"].ToString(),
|
||||
add_time = Convert.ToDateTime(row["add_time"]),
|
||||
mdy_time = Convert.ToDateTime(row["mdy_time"]),
|
||||
notes = row["notes"].ToString(),
|
||||
group = row["group"].ToString(),
|
||||
select_total_count = row["select_total_count"].ParseToInt(),
|
||||
end_words = row["end_words"].ParseToString(),
|
||||
fission_words = row["fission_words"].ParseToString(),
|
||||
head_words = row["head_words"].ParseToString(),
|
||||
sku_img_replace_id = row["sku_img_replace_id"].ParseToInt(),
|
||||
sku_img_replace_url = row["img_url"].ToString(),
|
||||
product_get_type_text = row["product_get_type"].ToString(),
|
||||
};
|
||||
if (isDetail)
|
||||
{
|
||||
prod.product_json = row["product_json"].ToString();
|
||||
prod.size_json = row["size_json"].ToString();
|
||||
prod.sku_edit_json = row["sku_edit_json"].ToString();
|
||||
prod.sku_img_replace_base64 = row["img_base64"].ToString();
|
||||
//prod.sku_img_replace_url = row["img_url"].ToString();
|
||||
}
|
||||
if (!string.IsNullOrEmpty(get_select_count))
|
||||
{
|
||||
prod.select_count = row["select_count"].ParseToInt();
|
||||
}
|
||||
productLst.Add(prod);
|
||||
}
|
||||
var data = JsonUtils.SerializerObjectToString(productLst);
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string WXGetPDDProductGroups(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
|
||||
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
|
||||
if (time1 != EncrypUtil.Encryption(time))
|
||||
return "{\"code\":50000,\"msg\":\"校验失败\"}";
|
||||
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
return "{\"code\":50001,\"msg\":\"没有用户名\"}";
|
||||
}
|
||||
|
||||
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
|
||||
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
|
||||
string sql = "SELECT DISTINCT p.group FROM `bxx`.`product` p where p.is_del=0";
|
||||
|
||||
string where = "";
|
||||
sql += where;
|
||||
|
||||
var dt = mySql.ExecuteDataTable(sql);
|
||||
mySql.Close();
|
||||
|
||||
if (dt != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
string group_data = "";
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
group_data += row["group"].ToString() + ",";
|
||||
}
|
||||
var data = group_data.Trim(',');
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":\"" + data + "\"}";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return "{\"code\":50002,\"msg\":\"" + ex.Message + "\",\"data\":\"\"}";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return "{\"code\":50003,\"msg\":\"" + mySql.Message + "\",\"data\":\"\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string WXGetPDDProductCates(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
|
||||
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
|
||||
if (time1 != EncrypUtil.Encryption(time))
|
||||
return "{\"code\":50000,\"msg\":\"校验失败\"}";
|
||||
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
return "{\"code\":50001,\"msg\":\"没有用户名\"}";
|
||||
}
|
||||
|
||||
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
|
||||
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
|
||||
string sql = "SELECT DISTINCT p.cat_name FROM `bxx`.`product` p where p.is_del=0";
|
||||
|
||||
string where = "";
|
||||
sql += where;
|
||||
|
||||
var dt = mySql.ExecuteDataTable(sql);
|
||||
mySql.Close();
|
||||
|
||||
if (dt != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
string group_data = "";
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
group_data += row["cat_name"].ToString() + ",";
|
||||
}
|
||||
var data = group_data.Trim(',');
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":\"" + data + "\"}";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return "{\"code\":50002,\"msg\":\"" + ex.Message + "\",\"data\":\"\"}";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return "{\"code\":50003,\"msg\":\"" + mySql.Message + "\",\"data\":\"\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 随机获取商品(无详情) 随机添加到上传列表所以不需要获取详情
|
||||
/// </summary>
|
||||
/// <param name="inputData"></param>
|
||||
/// <returns></returns>
|
||||
public string WXGetPDDProductListRandom(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
|
||||
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
|
||||
if (time1 != EncrypUtil.Encryption(time))
|
||||
return "{\"code\":50000,\"msg\":\"校验失败\"}";
|
||||
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
|
||||
var in_ext_codes = RegexUtils.GetStringQuery(ref inputData, "in_ext_codes")?.Replace("'", "\\'");
|
||||
var in_skc_ids = RegexUtils.GetStringQuery(ref inputData, "in_skc_ids")?.Replace("'", "\\'");
|
||||
var in_groups = RegexUtils.GetStringQuery(ref inputData, "in_groups")?.Replace("'", "\\'");
|
||||
var in_cates = RegexUtils.GetStringQuery(ref inputData, "in_cates")?.Replace("'", "\\'");
|
||||
|
||||
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
|
||||
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
|
||||
string sql = "select count(id) from bxx.product p where p.is_del=0";
|
||||
|
||||
string where = "";
|
||||
if (!string.IsNullOrEmpty(in_ext_codes))
|
||||
{
|
||||
in_ext_codes = "'" + string.Join("','", in_ext_codes.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'";
|
||||
where += " and p.ext_code in (" + in_ext_codes + ")";
|
||||
}
|
||||
if (!string.IsNullOrEmpty(in_skc_ids))
|
||||
{
|
||||
in_skc_ids = "'" + string.Join("','", in_skc_ids.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'";
|
||||
where += " and p.skc_id in (" + in_skc_ids + ")";
|
||||
}
|
||||
if (!string.IsNullOrEmpty(in_groups))
|
||||
{
|
||||
in_groups = "'" + string.Join("','", in_groups.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'";
|
||||
where += " and p.group in (" + in_groups + ")";
|
||||
}
|
||||
if (!string.IsNullOrEmpty(in_cates))
|
||||
{
|
||||
in_cates = "'" + string.Join("','", in_cates.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'";
|
||||
where += " and (p.cat_name in (" + in_cates + ") or p.main_cat_name in (" + in_cates + "))";
|
||||
}
|
||||
|
||||
sql += where;
|
||||
|
||||
var count = mySql.ExecuteRowCount(sql);
|
||||
|
||||
DataTable dt;
|
||||
if (count == 0)
|
||||
{
|
||||
dt = new DataTable();
|
||||
}
|
||||
else
|
||||
{
|
||||
sql = "select p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,p.ext_code," +
|
||||
"p.product_name,p.main_img,p.group,p.notes,p.add_time,p.mdy_time,p.select_total_count," +
|
||||
"p.fission_words,p.head_words,p.end_words from bxx.product p where p.is_del=0";
|
||||
|
||||
//where子句
|
||||
sql += where;
|
||||
|
||||
sql += " ORDER BY RAND()";
|
||||
sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size;
|
||||
dt = mySql.ExecuteDataTable(sql);
|
||||
}
|
||||
|
||||
mySql.Close();
|
||||
if (dt != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<DBProductResultParam> productLst = new List<DBProductResultParam>();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
DBProductResultParam prod = new DBProductResultParam
|
||||
{
|
||||
id = Convert.ToInt32(row["id"]),
|
||||
from_shop_id = row["from_shop_id"].ToString(),
|
||||
skc_id = row["skc_id"].ToString(),
|
||||
spu_id = row["spu_id"].ToString(),
|
||||
cat_id = row["cat_id"].ToString(),
|
||||
cat_name = row["cat_name"].ToString(),
|
||||
main_cat_id = row["main_cat_id"].ToString(),
|
||||
main_cat_name = row["main_cat_name"].ToString(),
|
||||
price_text = row["price_text"].ToString(),
|
||||
product_name = row["product_name"].ToString(),
|
||||
main_img = row["main_img"].ToString(),
|
||||
ext_code = row["ext_code"].ToString(),
|
||||
//product_json = row["product_json"].ToString(),
|
||||
//size_json = row["size_json"].ToString(),
|
||||
add_time = Convert.ToDateTime(row["add_time"]),
|
||||
mdy_time = Convert.ToDateTime(row["mdy_time"]),
|
||||
group = row["group"].ToString(),
|
||||
notes = row["notes"].ToString(),
|
||||
select_total_count = row["select_total_count"].ParseToInt(),
|
||||
end_words = row["end_words"].ParseToString(),
|
||||
fission_words = row["fission_words"].ParseToString(),
|
||||
head_words = row["head_words"].ParseToString(),
|
||||
};
|
||||
productLst.Add(prod);
|
||||
}
|
||||
var data = JsonUtils.SerializerObjectToString(productLst);
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,818 @@
|
||||
using KJD_Web.Model;
|
||||
using KJD_Web.Model.ShopModel;
|
||||
using KJD_Web.Utils;
|
||||
using MySqlX.XDevAPI;
|
||||
using NaiBa.Util.Extension;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
|
||||
namespace KJD_Web.BLL.WXXD
|
||||
{
|
||||
public class WXShopManage
|
||||
{
|
||||
public string GetShop(string inputData, bool isAdmin = false)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password");
|
||||
var search_id = RegexUtils.GetStringQuery(ref inputData, "search_id");
|
||||
var search_user_name = RegexUtils.GetStringQuery(ref inputData, "search_user_name");
|
||||
var search_login_name = RegexUtils.GetStringQuery(ref inputData, "search_login_name");
|
||||
var search_notes = RegexUtils.GetStringQuery(ref inputData, "search_notes");
|
||||
var search_name = RegexUtils.GetStringQuery(ref inputData, "search_name");
|
||||
var operate_sub_sa_name = RegexUtils.GetStringQuery(ref inputData, "operate_sub_sa_name")?.Replace("'", "\\'");
|
||||
var shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids")?.Replace("'", "");
|
||||
if (!string.IsNullOrWhiteSpace(shop_ids))
|
||||
{
|
||||
List<string> shopIdLst = shop_ids.Split(',').ToList();
|
||||
shop_ids = "'" + string.Join("','", shopIdLst) + "'";
|
||||
}
|
||||
var shop_names = RegexUtils.GetStringQuery(ref inputData, "shop_names");
|
||||
if (!string.IsNullOrWhiteSpace(shop_names))
|
||||
{
|
||||
List<string> shopNameLst = shop_names.Split(',').ToList();
|
||||
shop_names = "'" + string.Join("','", shopNameLst) + "'";
|
||||
}
|
||||
var shop_notes = RegexUtils.GetStringQuery(ref inputData, "shop_notes");
|
||||
if (!string.IsNullOrWhiteSpace(shop_notes))
|
||||
{
|
||||
List<string> shopNotesLst = shop_notes.Split(',').ToList();
|
||||
shop_notes = "'" + string.Join("','", shopNotesLst) + "'";
|
||||
}
|
||||
|
||||
var page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
|
||||
var page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt();
|
||||
|
||||
if (page_size == 0)
|
||||
page_size = 50;
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
|
||||
string sql = "SELECT COUNT(s.id) FROM wxxd.shop s WHERE 1=1";
|
||||
|
||||
//where子句
|
||||
string where = "";
|
||||
if (isAdmin)
|
||||
where += " and (s.cookie='' or s.shop_id!='')";
|
||||
if (!isAdmin)
|
||||
where += " and (s.user_name='" + user_name + "' or s.sub_user_name like '%" + user_name + "%')";
|
||||
if (!string.IsNullOrWhiteSpace(operate_sub_sa_name))
|
||||
where += " and s.operate_sub_sa_name='" + operate_sub_sa_name + "'";
|
||||
if (!string.IsNullOrWhiteSpace(search_user_name))
|
||||
where += " and s.user_name like '%" + search_user_name + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_login_name))
|
||||
where += " and s.login_name like '%" + search_login_name + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_notes))
|
||||
where += " and s.notes like '%" + search_notes + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_id))
|
||||
where += " and s.shop_id like '%" + search_id + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_name))
|
||||
where += " and s.shop_account like '%" + search_name + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(shop_ids))
|
||||
where += " and s.shop_id in (" + shop_ids + ")";
|
||||
if (!string.IsNullOrWhiteSpace(shop_names))
|
||||
where += " and s.shop_account in (" + shop_names + ")";
|
||||
if (!string.IsNullOrWhiteSpace(shop_notes))
|
||||
where += " and s.notes in (" + shop_notes + ")";
|
||||
sql += where;
|
||||
|
||||
var count = mySql.ExecuteRowCount(sql);
|
||||
|
||||
DataTable dt;
|
||||
if (count == 0)
|
||||
{
|
||||
dt = new DataTable();
|
||||
}
|
||||
else
|
||||
{
|
||||
sql = "SELECT s.id,s.login_name,s.login_pass,s.cookie,s.cookie2,s.anti_contents,s.openid,s.shop_id,s.shop_account,s.sub_user_name," +
|
||||
"s.user_name,s.company_name,s.notes,s.login_status,s.login_status2,c.add_product_remaining,c.add_product_month," +
|
||||
"s.add_time,s.mdy_time,s.add_sub_sa_time,s.operate_sub_sa_name";
|
||||
//sql += " FROM wxxd.shop s WHERE 1=1";
|
||||
sql += " FROM wxxd.shop s LEFT JOIN wxxd.shop_add_prod_count c ON s.shop_id=c.shop_id WHERE 1=1";
|
||||
|
||||
sql += where; // where 子句
|
||||
|
||||
sql += " ORDER BY s.id DESC";
|
||||
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
|
||||
dt = mySql.ExecuteDataTable(sql);
|
||||
}
|
||||
|
||||
mySql.Close();
|
||||
if (dt != null)
|
||||
{
|
||||
List<ShopParam> shopList=new List<ShopParam>();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
ShopParam shop = new ShopParam
|
||||
{
|
||||
id = Convert.ToInt32(row["id"]),
|
||||
login_name = row["login_name"].ToString(),
|
||||
login_pass = row["login_pass"].ToString(),
|
||||
cookie = row["cookie"].ToString(),
|
||||
cookie2 = row["cookie2"].ToString(),
|
||||
anti_contents = row["anti_contents"].ToString(),
|
||||
shop_id = row["shop_id"].ToString(),
|
||||
shop_account = row["shop_account"].ToString(),
|
||||
sub_user_name = row["sub_user_name"].ToString(),
|
||||
user_name = row["user_name"].ToString(),
|
||||
company_name = row["company_name"].ToString(),
|
||||
notes = row["notes"].ToString(),
|
||||
login_status = row["login_status"].ToString(),
|
||||
login_status2 = row["login_status2"].ToString(),
|
||||
add_product_remaining = row["add_product_remaining"].ParseToInt(),
|
||||
add_product_month = row["add_product_month"].ParseToInt(),
|
||||
operate_sub_sa_name = row["operate_sub_sa_name"].ParseToString(),
|
||||
openid = row["openid"].ParseToString(),
|
||||
};
|
||||
shopList.Add(shop);
|
||||
}
|
||||
|
||||
//sql = "\r\nINSERT INTO wxxd.shop_add_prod_count(shop_id,shop_account,add_product_remaining,add_product_month) VALUES ";
|
||||
//foreach (var shop in shopList)
|
||||
//{
|
||||
// sql += "\r\n('" + shop.shop_id + "','" + shop.shop_account + "'," + shop.add_product_remaining + "," + shop.add_product_month + "),";
|
||||
//}
|
||||
//sql = sql.TrimEnd(',') + " \r\n";
|
||||
//sql += "ON DUPLICATE KEY UPDATE " +
|
||||
// "shop_account=VALUES(shop_account)," +
|
||||
// "add_product_remaining=VALUES(add_product_remaining)," +
|
||||
// "add_product_month=VALUES(add_product_month);";
|
||||
//var result = mySql.ExecuteNonQuery(sql);
|
||||
//mySql.Close();
|
||||
|
||||
int month = DateTime.Now.Month;
|
||||
var shopMonthList = shopList.Where(s => s.add_product_month != month);
|
||||
if (shopMonthList.Count() > 0)
|
||||
{
|
||||
int remainCount = 300;
|
||||
var shopMonthIdList = shopMonthList.Select(s => s.id);
|
||||
mySql = new MysqlUtils(conn);
|
||||
string ids = string.Join(",", shopMonthIdList);
|
||||
sql = "";
|
||||
sql += "update wxxd.shop set add_product_remaining=" + remainCount + ", add_product_month=" + month +
|
||||
" where 1=1 and id in (" + ids + ");";
|
||||
|
||||
sql += "\r\nINSERT INTO wxxd.shop_add_prod_count(shop_id,shop_account,add_product_remaining,add_product_month) VALUES ";
|
||||
foreach (var shop in shopMonthList)
|
||||
{
|
||||
sql+= "\r\n('" + shop.shop_id + "','" + shop.shop_account + "'," + remainCount + "," + month + "),";
|
||||
}
|
||||
sql = sql.TrimEnd(',') + " \r\n";
|
||||
sql += "ON DUPLICATE KEY UPDATE " +
|
||||
"shop_account=VALUES(shop_account)," +
|
||||
"add_product_remaining=VALUES(add_product_remaining)," +
|
||||
"add_product_month=VALUES(add_product_month);";
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
|
||||
if (rst)
|
||||
{
|
||||
foreach (var shop in shopMonthList)
|
||||
{
|
||||
shop.add_product_month = month;
|
||||
shop.add_product_remaining = remainCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
var data = JsonUtils.SerializerObjectToString(shopList);
|
||||
|
||||
|
||||
//return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}";
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"未知错误\"}";
|
||||
}
|
||||
|
||||
public string SubSaGetSelectProdShop(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password");
|
||||
var search_id = RegexUtils.GetStringQuery(ref inputData, "search_id");
|
||||
var search_user_name = RegexUtils.GetStringQuery(ref inputData, "search_user_name");
|
||||
var search_login_name = RegexUtils.GetStringQuery(ref inputData, "search_login_name");
|
||||
var search_notes = RegexUtils.GetStringQuery(ref inputData, "search_notes");
|
||||
var search_name = RegexUtils.GetStringQuery(ref inputData, "search_name");
|
||||
var operate_sub_sa_name = RegexUtils.GetStringQuery(ref inputData, "operate_sub_sa_name")?.Replace("'", "\\'");
|
||||
var shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids")?.Replace("'", "");
|
||||
if (!string.IsNullOrWhiteSpace(shop_ids))
|
||||
{
|
||||
List<string> shopIdLst = shop_ids.Split(',').ToList();
|
||||
shop_ids = "'" + string.Join("','", shopIdLst) + "'";
|
||||
}
|
||||
var shop_names = RegexUtils.GetStringQuery(ref inputData, "shop_names");
|
||||
if (!string.IsNullOrWhiteSpace(shop_names))
|
||||
{
|
||||
List<string> shopNameLst = shop_names.Split(',').ToList();
|
||||
shop_names = "'" + string.Join("','", shopNameLst) + "'";
|
||||
}
|
||||
var shop_notes = RegexUtils.GetStringQuery(ref inputData, "shop_notes");
|
||||
if (!string.IsNullOrWhiteSpace(shop_notes))
|
||||
{
|
||||
List<string> shopNotesLst = shop_notes.Split(',').ToList();
|
||||
shop_notes = "'" + string.Join("','", shopNotesLst) + "'";
|
||||
}
|
||||
|
||||
var page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
|
||||
var page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt();
|
||||
|
||||
if (page_size == 0)
|
||||
page_size = 50;
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
|
||||
string sql = "SELECT COUNT(s.id) FROM wxxd.shop s WHERE 1=1";
|
||||
|
||||
//where子句
|
||||
string where = "";
|
||||
if (!string.IsNullOrWhiteSpace(operate_sub_sa_name))
|
||||
where += " and (s.shop_id in (SELECT DISTINCT shop_id From wxxd.product_select WHERE operate_sub_sa_name='" + operate_sub_sa_name + "') or " +
|
||||
"s.shop_id in (SELECT DISTINCT shop_id From wxxd.third_product_select WHERE operate_sub_sa_name='" + operate_sub_sa_name + "'))";
|
||||
where += " and (s.cookie='' or s.shop_id!='')";
|
||||
//if (!string.IsNullOrWhiteSpace(operate_sub_sa_name))
|
||||
// where += " and s.operate_sub_sa_name='" + operate_sub_sa_name + "'";
|
||||
if (!string.IsNullOrWhiteSpace(search_user_name))
|
||||
where += " and s.user_name like '%" + search_user_name + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_login_name))
|
||||
where += " and s.login_name like '%" + search_login_name + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_notes))
|
||||
where += " and s.notes like '%" + search_notes + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_id))
|
||||
where += " and s.shop_id like '%" + search_id + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_name))
|
||||
where += " and s.shop_account like '%" + search_name + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(shop_ids))
|
||||
where += " and s.shop_id in (" + shop_ids + ")";
|
||||
if (!string.IsNullOrWhiteSpace(shop_names))
|
||||
where += " and s.shop_account in (" + shop_names + ")";
|
||||
if (!string.IsNullOrWhiteSpace(shop_notes))
|
||||
where += " and s.notes in (" + shop_notes + ")";
|
||||
sql += where;
|
||||
|
||||
var count = mySql.ExecuteRowCount(sql);
|
||||
|
||||
DataTable dt;
|
||||
if (count == 0)
|
||||
{
|
||||
dt = new DataTable();
|
||||
}
|
||||
else
|
||||
{
|
||||
sql = "SELECT s.id,s.login_name,s.login_pass,s.cookie,s.cookie2,s.anti_contents,s.shop_id,s.openid,s.shop_account,s.sub_user_name,s.user_name," +
|
||||
"s.company_name,s.notes,s.login_status,s.login_status2,c.add_product_remaining,c.add_product_month,s.add_time,s.mdy_time," +
|
||||
"s.add_sub_sa_time,s.operate_sub_sa_name";
|
||||
sql += " FROM wxxd.shop s LEFT JOIN wxxd.shop_add_prod_count c ON s.shop_id=c.shop_id WHERE 1=1";
|
||||
|
||||
sql += where; // where 子句
|
||||
|
||||
sql += " ORDER BY s.id DESC";
|
||||
sql += " LIMIT " + Math.Max(page - 1, 0) * page_size + "," + page_size;
|
||||
dt = mySql.ExecuteDataTable(sql);
|
||||
}
|
||||
|
||||
mySql.Close();
|
||||
if (dt != null)
|
||||
{
|
||||
List<ShopParam> shopList = new List<ShopParam>();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
ShopParam shop = new ShopParam
|
||||
{
|
||||
id = Convert.ToInt32(row["id"]),
|
||||
login_name = row["login_name"].ToString(),
|
||||
login_pass = row["login_pass"].ToString(),
|
||||
cookie = row["cookie"].ToString(),
|
||||
cookie2 = row["cookie2"].ToString(),
|
||||
anti_contents = row["anti_contents"].ToString(),
|
||||
shop_id = row["shop_id"].ToString(),
|
||||
shop_account = row["shop_account"].ToString(),
|
||||
sub_user_name = row["sub_user_name"].ToString(),
|
||||
user_name = row["user_name"].ToString(),
|
||||
company_name = row["company_name"].ToString(),
|
||||
notes = row["notes"].ToString(),
|
||||
login_status = row["login_status"].ToString(),
|
||||
login_status2 = row["login_status2"].ToString(),
|
||||
add_product_remaining = row["add_product_remaining"].ParseToInt(),
|
||||
add_product_month = row["add_product_month"].ParseToInt(),
|
||||
operate_sub_sa_name = row["operate_sub_sa_name"].ParseToString(),
|
||||
openid = row["openid"].ToString(),
|
||||
};
|
||||
shopList.Add(shop);
|
||||
}
|
||||
|
||||
//sql = "\r\nINSERT INTO wxxd.shop_add_prod_count(shop_id,shop_account,add_product_remaining,add_product_month) VALUES ";
|
||||
//foreach (var shop in shopList)
|
||||
//{
|
||||
// sql += "\r\n('" + shop.shop_id + "','" + shop.shop_account + "'," + shop.add_product_remaining + "," + shop.add_product_month + "),";
|
||||
//}
|
||||
//sql = sql.TrimEnd(',') + " \r\n";
|
||||
//sql += "ON DUPLICATE KEY UPDATE " +
|
||||
// "shop_account=VALUES(shop_account)," +
|
||||
// "add_product_remaining=VALUES(add_product_remaining)," +
|
||||
// "add_product_month=VALUES(add_product_month);";
|
||||
//var result = mySql.ExecuteNonQuery(sql);
|
||||
//mySql.Close();
|
||||
|
||||
int month = DateTime.Now.Month;
|
||||
var shopMonthList = shopList.Where(s => s.add_product_month != month);
|
||||
if (shopMonthList.Count() > 0)
|
||||
{
|
||||
int remainCount = 300;
|
||||
var shopMonthIdList = shopMonthList.Select(s => s.id);
|
||||
mySql = new MysqlUtils(conn);
|
||||
string ids = string.Join(",", shopMonthIdList);
|
||||
sql = "";
|
||||
sql += "update wxxd.shop set add_product_remaining=" + remainCount + ", add_product_month=" + month +
|
||||
" where 1=1 and id in (" + ids + ");";
|
||||
|
||||
sql += "\r\nINSERT INTO wxxd.shop_add_prod_count(shop_id,shop_account,add_product_remaining,add_product_month) VALUES ";
|
||||
foreach (var shop in shopMonthList)
|
||||
{
|
||||
sql += "\r\n('" + shop.shop_id + "','" + shop.shop_account + "'," + remainCount + "," + month + "),";
|
||||
}
|
||||
sql = sql.TrimEnd(',') + " \r\n";
|
||||
sql += "ON DUPLICATE KEY UPDATE " +
|
||||
"shop_account=VALUES(shop_account)," +
|
||||
"add_product_remaining=VALUES(add_product_remaining)," +
|
||||
"add_product_month=VALUES(add_product_month);";
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
|
||||
if (rst)
|
||||
{
|
||||
foreach (var shop in shopMonthList)
|
||||
{
|
||||
shop.add_product_month = month;
|
||||
shop.add_product_remaining = remainCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
var data = JsonUtils.SerializerObjectToString(shopList);
|
||||
|
||||
|
||||
//return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}";
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"未知错误\"}";
|
||||
}
|
||||
|
||||
|
||||
|
||||
public string UpdateAddProdRemaining(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
|
||||
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
|
||||
if (time1 != EncrypUtil.Encryption(time))
|
||||
return "{\"code\":50000,\"msg\":\"校验失败\"}";
|
||||
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password");
|
||||
var remainCount = RegexUtils.GetStringQuery(ref inputData, "remain_count");
|
||||
var shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids")?.Replace("'", "");
|
||||
if (!string.IsNullOrWhiteSpace(shop_ids))
|
||||
{
|
||||
List<string> shopIdLst = shop_ids.Split(',').ToList();
|
||||
shop_ids = "'" + string.Join("','", shopIdLst) + "'";
|
||||
}
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "";
|
||||
sql += "update wxxd.shop_add_prod_count set add_product_remaining=" + remainCount +
|
||||
" where 1=1 and shop_id in (" + shop_ids + ");";
|
||||
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
var msg = mySql.Message;
|
||||
mySql.Close();
|
||||
|
||||
if (rst)
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
else
|
||||
return "{\"code\":50000,\"msg\":\"" + msg + "\"}";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
}
|
||||
|
||||
//获取一个手机登录号码下的所有店铺(以便有则更新,无则新增)
|
||||
public string GetOneLoginNameShop(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
var login_name = RegexUtils.GetStringQuery(ref inputData, "login_name");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "select id,login_name,login_pass,cookie,cookie2,anti_contents,shop_id,openid,shop_account,sub_user_name,user_name from wxxd.shop where user_name='"
|
||||
+ user_name + "' and login_name='" + login_name + "'";
|
||||
|
||||
var dt = mySql.ExecuteDataTable(sql);
|
||||
mySql.Close();
|
||||
if (dt != null)
|
||||
{
|
||||
List<ShopParam> shopList = new List<ShopParam>();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
ShopParam shop = new ShopParam
|
||||
{
|
||||
id = Convert.ToInt32(row["id"]),
|
||||
login_name = row["login_name"].ToString(),
|
||||
login_pass = row["login_pass"].ToString(),
|
||||
cookie = row["cookie"].ToString(),
|
||||
cookie2 = row["cookie2"].ToString(),
|
||||
anti_contents = row["anti_contents"].ToString(),
|
||||
shop_id = row["shop_id"].ToString(),
|
||||
shop_account = row["shop_account"].ToString(),
|
||||
sub_user_name = row["sub_user_name"].ToString(),
|
||||
user_name = row["user_name"].ToString(),
|
||||
company_name = row["company_name"].ToString(),
|
||||
notes = row["notes"].ToString(),
|
||||
login_status = row["login_status"].ToString(),
|
||||
openid = row["openid"].ToString(),
|
||||
};
|
||||
shopList.Add(shop);
|
||||
}
|
||||
var data = JsonUtils.SerializerObjectToString(shopList);
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"未知错误\"}";
|
||||
}
|
||||
|
||||
//获取一个手机登录号码下特定ID的店铺
|
||||
public string GetOneIdShop(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
var login_name = RegexUtils.GetStringQuery(ref inputData, "login_name");
|
||||
var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "select id,login_name,login_pass,cookie,cookie2,anti_contents,shop_id,openid,shop_account,sub_user_name,user_name from wxxd.shop where user_name='"
|
||||
+ user_name + "' and login_name='" + login_name + "' and shop_id='" + shop_id + "'";
|
||||
|
||||
var dt = mySql.ExecuteDataTable(sql);
|
||||
mySql.Close();
|
||||
if (dt != null)
|
||||
{
|
||||
List<ShopParam> shopList = new List<ShopParam>();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
ShopParam shop = new ShopParam
|
||||
{
|
||||
id = Convert.ToInt32(row["id"]),
|
||||
login_name = row["login_name"].ToString(),
|
||||
login_pass = row["login_pass"].ToString(),
|
||||
cookie = row["cookie"].ToString(),
|
||||
cookie2 = row["cookie2"].ToString(),
|
||||
anti_contents = row["anti_contents"].ToString(),
|
||||
shop_id = row["shop_id"].ToString(),
|
||||
shop_account = row["shop_account"].ToString(),
|
||||
sub_user_name = row["sub_user_name"].ToString(),
|
||||
user_name = row["user_name"].ToString(),
|
||||
company_name = row["company_name"].ToString(),
|
||||
notes = row["notes"].ToString(),
|
||||
login_status = row["login_status"].ToString(),
|
||||
openid = row["openid"].ToString(),
|
||||
};
|
||||
shopList.Add(shop);
|
||||
}
|
||||
var data = JsonUtils.SerializerObjectToString(shopList);
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"未知错误\"}";
|
||||
}
|
||||
|
||||
public string AddShop(string inputData, bool isAdmin=false)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
if (isAdmin)
|
||||
user_name = RegexUtils.GetStringQuery(ref inputData, "shop_user_name");
|
||||
string login_name = RegexUtils.GetStringQuery(ref inputData, "login_name");
|
||||
string login_pass = RegexUtils.GetStringQuery(ref inputData, "login_pass");
|
||||
string sub_user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_user_name"));
|
||||
string cookie = RegexUtils.GetStringQuery(ref inputData, "cookie");
|
||||
string cookie2 = RegexUtils.GetStringQuery(ref inputData, "cookie2");
|
||||
string anti_contents = RegexUtils.GetStringQuery(ref inputData, "anti_contents");
|
||||
string shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id");
|
||||
string shop_account = RegexUtils.GetStringQuery(ref inputData, "shop_account");
|
||||
string group_name = RegexUtils.GetStringQuery(ref inputData, "group_name");
|
||||
string notes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "notes"));
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"没有用户名\"}";
|
||||
}
|
||||
if (string.IsNullOrEmpty(login_name))
|
||||
{
|
||||
return "{\"code\":501,\"msg\":\"没有店铺登录名\"}";
|
||||
}
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "";
|
||||
if (string.IsNullOrEmpty(shop_id))
|
||||
sql = "select exists (select 1 from wxxd.shop where login_name='" + login_name + "' and user_name='" + user_name + "')";
|
||||
else
|
||||
sql = "select exists (select 1 from wxxd.shop where login_name='" + login_name + "' and user_name='" + user_name +
|
||||
"' and shop_id='" + shop_id + "')";
|
||||
var exist = mySql.ExecuteFirstInt(sql);
|
||||
if (exist>0)
|
||||
{
|
||||
mySql.Close();
|
||||
return "{\"code\":500,\"msg\":\"店铺" + login_name +" " + shop_account + "已存在\"}";
|
||||
}
|
||||
|
||||
sql = "insert into wxxd.shop (login_name,login_pass,cookie,cookie2,anti_contents,shop_account,shop_id,sub_user_name,user_name,group_name,notes,add_time,mdy_time) " +
|
||||
"values ('" + login_name + "','" + login_pass + "','" + cookie + "','" + cookie2 + "','" + anti_contents + "','" + shop_account + "','" + shop_id + "','" +
|
||||
sub_user_name + "','" + user_name + "','" + group_name + "','" + notes + "','" +
|
||||
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" +
|
||||
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');";
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (rst)
|
||||
{
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"未知错误\"}";
|
||||
}
|
||||
|
||||
public string MdyShop(string inputData, bool isAdmin=false)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
if (isAdmin)
|
||||
user_name = RegexUtils.GetStringQuery(ref inputData, "shop_user_name");
|
||||
string login_name = RegexUtils.GetStringQuery(ref inputData, "login_name");
|
||||
string login_pass = RegexUtils.GetStringQuery(ref inputData, "login_pass");
|
||||
string sub_user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_user_name"));
|
||||
string cookie = RegexUtils.GetStringQuery(ref inputData, "cookie");
|
||||
string cookie2 = RegexUtils.GetStringQuery(ref inputData, "cookie2");
|
||||
string anti_contents = RegexUtils.GetStringQuery(ref inputData, "anti_contents");
|
||||
string new_shop_id = RegexUtils.GetStringQuery(ref inputData, "new_shop_id");
|
||||
string old_shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id");
|
||||
string shop_account = RegexUtils.GetStringQuery(ref inputData, "shop_account");
|
||||
string group_name = RegexUtils.GetStringQuery(ref inputData, "group_name");
|
||||
string notes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "notes"));
|
||||
string login_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "login_status"));
|
||||
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"没有用户名\"}";
|
||||
}
|
||||
if (string.IsNullOrEmpty(login_name))
|
||||
{
|
||||
return "{\"code\":501,\"msg\":\"没有店铺登录名\"}";
|
||||
}
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "update wxxd.shop set";
|
||||
if (login_pass != null)
|
||||
sql += " login_pass='" + login_pass + "',";
|
||||
if (cookie != null)
|
||||
sql += " cookie='" + cookie + "',";
|
||||
if (cookie2 != null)
|
||||
sql += " cookie2='" + cookie2 + "',";
|
||||
if (anti_contents != null)
|
||||
sql += " anti_contents='" + anti_contents + "',";
|
||||
if (new_shop_id != null)
|
||||
sql += " shop_id='" + new_shop_id + "',";
|
||||
if (shop_account != null)
|
||||
sql += " shop_account='" + shop_account + "',";
|
||||
if (sub_user_name != null)
|
||||
sql += " sub_user_name='" + sub_user_name + "',";
|
||||
if (group_name != null)
|
||||
sql += " group_name='" + group_name + "',";
|
||||
if (notes != null)
|
||||
sql += " notes='" + notes + "',";
|
||||
if (login_status != null)
|
||||
sql += " login_status='" + login_status + "',";
|
||||
sql = sql.TrimEnd(',');
|
||||
sql += " where login_name='" + login_name + "' and (user_name='" + user_name + "' or sub_user_name like '%" + user_name + "%')";
|
||||
if (!string.IsNullOrEmpty(old_shop_id))
|
||||
sql += " and shop_id='" + old_shop_id + "'";
|
||||
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (rst)
|
||||
{
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"未知错误\"}";
|
||||
}
|
||||
|
||||
public string MdyAntiContent(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
string login_name = RegexUtils.GetStringQuery(ref inputData, "login_name");
|
||||
string shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id");
|
||||
string anti_contents = RegexUtils.GetStringQuery(ref inputData, "anti_contents");
|
||||
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
if (string.IsNullOrEmpty(login_name))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"店铺没有登录名\"}";
|
||||
}
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "update wxxd.shop set";
|
||||
if (anti_contents != null)
|
||||
sql += " anti_contents='" + anti_contents + "',";
|
||||
sql = sql.TrimEnd(',');
|
||||
sql += " where login_name='" + login_name + "' and shop_id='" + shop_id + "';";
|
||||
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (rst)
|
||||
{
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"未知错误\"}";
|
||||
}
|
||||
|
||||
public string MdyCookieAndLoginStatus(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
string login_name = RegexUtils.GetStringQuery(ref inputData, "login_name");
|
||||
string cookie = RegexUtils.GetStringQuery(ref inputData, "cookie");
|
||||
string cookie2 = RegexUtils.GetStringQuery(ref inputData, "cookie2");
|
||||
string login_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "login_status"));
|
||||
string login_status2 = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "login_status2"));
|
||||
string openid = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "openid"));
|
||||
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
if (string.IsNullOrEmpty(login_name))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"店铺没有登录名\"}";
|
||||
}
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "update wxxd.shop set";
|
||||
if (cookie != null)
|
||||
sql += " cookie='" + cookie + "',";
|
||||
if (cookie2 != null)
|
||||
sql += " cookie2='" + cookie2 + "',";
|
||||
if (login_status != null)
|
||||
sql += " login_status='" + login_status + "',";
|
||||
if (login_status2 != null)
|
||||
sql += " login_status2='" + login_status2 + "',";
|
||||
if (openid != null)
|
||||
sql += " openid='" + openid + "',";
|
||||
sql = sql.TrimEnd(',');
|
||||
sql += " where login_name='" + login_name + "'";
|
||||
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (rst)
|
||||
{
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"未知错误\"}";
|
||||
}
|
||||
|
||||
|
||||
public string DelShop(string inputData, bool isAdmin=false)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var login_name = RegexUtils.GetStringQuery(ref inputData, "login_name");
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
if (isAdmin)
|
||||
user_name = RegexUtils.GetStringQuery(ref inputData, "shop_user_name");
|
||||
var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"没有用户名\"}";
|
||||
}
|
||||
if (string.IsNullOrEmpty(login_name))
|
||||
{
|
||||
return "{\"code\":501,\"msg\":\"没有店铺登录名\"}";
|
||||
}
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "delete from wxxd.shop where user_name='" + user_name + "' and login_name='" + login_name + "'";
|
||||
if (!string.IsNullOrEmpty(shop_id))
|
||||
sql += " and shop_id='" + shop_id + "'";
|
||||
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (rst)
|
||||
{
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"未知错误\"}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置店铺的二级超管
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string SetShopSubSa(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
|
||||
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
|
||||
if (time1 != EncrypUtil.Encryption(time))
|
||||
return "{\"code\":50000,\"msg\":\"校验失败\"}";
|
||||
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
return "{\"code\":50001,\"msg\":\"没有用户名\"}";
|
||||
}
|
||||
|
||||
var id = RegexUtils.GetStringQuery(ref inputData, "db_id")?.Replace("'", "\\'");
|
||||
var login_name = RegexUtils.GetStringQuery(ref inputData, "shop_login_name")?.Replace("'", "\\'");
|
||||
var operate_sub_sa_name = RegexUtils.GetStringQuery(ref inputData, "operate_sub_sa_name")?.Replace("'", "\\'");
|
||||
|
||||
if (string.IsNullOrEmpty(id) && string.IsNullOrEmpty(login_name))
|
||||
{
|
||||
return "{\"code\":50002,\"msg\":\"未选择任何待上传\"}";
|
||||
}
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "update wxxd.shop set";
|
||||
if (operate_sub_sa_name != null)
|
||||
sql += " operate_sub_sa_name='" + operate_sub_sa_name + "',";
|
||||
sql += " add_sub_sa_time='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',";
|
||||
sql = sql.TrimEnd(',');
|
||||
if (!string.IsNullOrEmpty(id))
|
||||
sql += " where id in (" + id + ")";
|
||||
else if (!string.IsNullOrEmpty(login_name))
|
||||
sql += " where login_name in ('" + login_name.Replace(",", "','") + "')";
|
||||
else
|
||||
sql += " where 1=2";
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (rst)
|
||||
{
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,470 @@
|
||||
using KJD_Web.Model;
|
||||
using KJD_Web.Utils;
|
||||
using NaiBa.Util.Extension;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Web;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace KJD_Web.BLL.WXXD
|
||||
{
|
||||
public class WXUserManage
|
||||
{
|
||||
public string CheckUserLogin(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var mobile = RegexUtils.GetStringQuery(ref inputData, "mobile")?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "select * from wxxd.user where user_name='"
|
||||
+ mobile + "' and password='" + password + "'";
|
||||
|
||||
var dt = mySql.ExecuteDataTable(sql);
|
||||
mySql.Close();
|
||||
if (dt != null)
|
||||
{
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
UserLoginResultParam user = new UserLoginResultParam
|
||||
{
|
||||
id = Convert.ToInt32(row["id"]),
|
||||
user_name = row["user_name"].ToString(),
|
||||
nick_name = row["nick_name"].ToString(),
|
||||
mobile = row["user_name"].ToString(),
|
||||
password = row["password"].ToString(),
|
||||
group_id = row["group_id"].ToString(),
|
||||
card_id = row["card_id"].ToString(),
|
||||
company_name = row["company_name"].ToString(),
|
||||
is_sa = row.Table.Columns.Contains("is_sa") ? row["is_sa"].ParseToInt() : 0,
|
||||
sa_level = row.Table.Columns.Contains("sa_level") ? row["sa_level"].ParseToInt() : 0,
|
||||
};
|
||||
|
||||
if (string.IsNullOrEmpty(user.company_name))
|
||||
{
|
||||
user.company_name = "-";
|
||||
}
|
||||
var data = JsonUtils.SerializerObjectToString(user);
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}";
|
||||
}
|
||||
return "{\"code\":1,\"msg\":\"用户名或密码错误\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string AddSubUser(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var parent_user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
|
||||
var nick_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_nick_name"))?.Replace("'", "\\'");
|
||||
var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_name"))?.Replace("'", "\\'");
|
||||
var mobile = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_mobile"))?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "sub_password")?.Replace("'", "\\'");
|
||||
var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'");
|
||||
var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'");
|
||||
var company_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "company"))?.Replace("'", "\\'");
|
||||
var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "";
|
||||
sql = "select exists (select 1 from wxxd.user where user_name='" + user_name + "')";
|
||||
var exist = mySql.ExecuteFirstInt(sql);
|
||||
if (exist > 0)
|
||||
{
|
||||
mySql.Close();
|
||||
return "{\"code\":500,\"msg\":\"用户名已存在\"}";
|
||||
}
|
||||
|
||||
sql = "insert into wxxd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,parent_user_name,add_time,mdy_time) " +
|
||||
"values ('" + nick_name + "','" + user_name + "','" + mobile + "','" + password + "','" + card_id + "','" +
|
||||
group_id + "','" + company_name + "','" + notes + "','" + parent_user_name + "','" +
|
||||
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" +
|
||||
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');";
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (!rst)
|
||||
return "{\"code\":501,\"msg\":\""+ mySql.Message + "\"}";
|
||||
else
|
||||
return "{\"code\":200,\"msg\":\"子账户创建成功!\"}";
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string GetSubUser(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password");
|
||||
var group = RegexUtils.GetStringQuery(ref inputData, "group");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "select * from wxxd.user where parent_user_name='"
|
||||
+ user_name + "'";
|
||||
|
||||
var dt = mySql.ExecuteDataTable(sql);
|
||||
mySql.Close();
|
||||
if (dt != null)
|
||||
{
|
||||
List<UserLoginResultParam> userList = new List<UserLoginResultParam>();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
|
||||
UserLoginResultParam user = new UserLoginResultParam
|
||||
{
|
||||
id = Convert.ToInt32(row["id"]),
|
||||
user_name = row["user_name"].ToString(),
|
||||
nick_name = row["nick_name"].ToString(),
|
||||
mobile = row["mobile"].ToString(),
|
||||
password = row["password"].ToString(),
|
||||
group_id = row["group_id"].ToString(),
|
||||
card_id = row["card_id"].ToString(),
|
||||
parent_user_name = row["parent_user_name"].ToString(),
|
||||
company_name = row["company_name"].ToString(),
|
||||
notes = row["notes"].ToString(),
|
||||
};
|
||||
if (string.IsNullOrEmpty(user.mobile))
|
||||
{
|
||||
user.mobile = row["user_name"].ToString();
|
||||
}
|
||||
userList.Add(user);
|
||||
}
|
||||
var data = JsonUtils.SerializerObjectToString(userList);
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string UpdateSubUser(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var id = RegexUtils.GetStringQuery(ref inputData, "id")?.Replace("'", "\\'");
|
||||
var parent_user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
|
||||
var nick_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_nick_name"))?.Replace("'", "\\'");
|
||||
var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_name"))?.Replace("'", "\\'");
|
||||
var mobile = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sub_mobile"))?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "sub_password")?.Replace("'", "\\'");
|
||||
var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'");
|
||||
var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'");
|
||||
var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "";
|
||||
//sql = "select * from wxxd.user where parent_user_name='"
|
||||
// + user_name + "'";
|
||||
sql = "update wxxd.user set";
|
||||
if (!string.IsNullOrEmpty(nick_name))
|
||||
sql += " nick_name='" + nick_name + "',";
|
||||
if (!string.IsNullOrEmpty(user_name))
|
||||
sql += " user_name='" + user_name + "',";
|
||||
if (!string.IsNullOrEmpty(mobile))
|
||||
sql += " mobile='" + mobile + "',";
|
||||
if (!string.IsNullOrEmpty(password))
|
||||
sql += " password='" + password + "',";
|
||||
if (!string.IsNullOrEmpty(group_id))
|
||||
sql += " group_id=" + group_id + ",";
|
||||
if (!string.IsNullOrEmpty(card_id))
|
||||
sql += " card_id='" + card_id + "',";
|
||||
if (!string.IsNullOrEmpty(notes))
|
||||
sql += " notes='" + notes + "',";
|
||||
sql = sql.TrimEnd(',');
|
||||
sql += " where id=" + id + "";
|
||||
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (rst)
|
||||
{
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
|
||||
public string DelUser(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
var id = RegexUtils.GetStringQuery(ref inputData, "id");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "delete from wxxd.user where id='"
|
||||
+ id + "'";
|
||||
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (rst)
|
||||
{
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
else
|
||||
return "{\"code\":500,\"msg\":\"删除失败,请稍后重试\"}";
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string GetAllUser(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
|
||||
var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'");
|
||||
var search = RegexUtils.GetStringQuery(ref inputData, "search")?.Replace("'", "\\'");
|
||||
var sa_level = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
//string sql = "select * from wxxd.user where group_id=3";
|
||||
string sql = "select * from wxxd.user where 1=1";
|
||||
if (!string.IsNullOrEmpty(group_id))
|
||||
sql += " and group_id=" + group_id;
|
||||
if (!string.IsNullOrEmpty(sa_level))
|
||||
sql += " and sa_level=" + sa_level;
|
||||
if (!string.IsNullOrEmpty(search))
|
||||
sql += " and (user_name like '%" + search +
|
||||
"%' or nick_name like '%" + search +
|
||||
"%' or company_name like '%" + search + "%')";
|
||||
sql += " order by id desc";
|
||||
|
||||
var dt = mySql.ExecuteDataTable(sql);
|
||||
mySql.Close();
|
||||
if (dt != null)
|
||||
{
|
||||
List<UserLoginResultParam> userList = new List<UserLoginResultParam>();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
|
||||
UserLoginResultParam user = new UserLoginResultParam
|
||||
{
|
||||
id = Convert.ToInt32(row["id"]),
|
||||
user_name = row["user_name"].ToString(),
|
||||
nick_name = row["nick_name"].ToString(),
|
||||
mobile = row["mobile"].ToString(),
|
||||
password = row["password"].ToString(),
|
||||
group_id = row["group_id"].ToString(),
|
||||
card_id = row["card_id"].ToString(),
|
||||
parent_user_name = row["parent_user_name"].ToString(),
|
||||
company_name = row["company_name"].ToString(),
|
||||
notes = row["notes"].ToString(),
|
||||
is_sa = row.Table.Columns.Contains("is_sa") ? row["is_sa"].ParseToInt() : 0,
|
||||
sa_level = row.Table.Columns.Contains("sa_level") ? row["sa_level"].ParseToInt() : 0,
|
||||
};
|
||||
if (string.IsNullOrEmpty(user.mobile))
|
||||
{
|
||||
user.mobile = row["user_name"].ToString();
|
||||
}
|
||||
userList.Add(user);
|
||||
}
|
||||
var data = JsonUtils.SerializerObjectToString(userList);
|
||||
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string AddUser(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var nick_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_nick_name"))?.Replace("'", "\\'");
|
||||
var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_user_name"))?.Replace("'", "\\'");
|
||||
var mobile = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_mobile"))?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "add_password")?.Replace("'", "\\'");
|
||||
var company_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_company"))?.Replace("'", "\\'");
|
||||
var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'"); ;
|
||||
var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'");
|
||||
var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'");
|
||||
var sa_level = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "";
|
||||
sql = "select exists (select 1 from wxxd.user where user_name='" + user_name + "')";
|
||||
var exist = mySql.ExecuteFirstInt(sql);
|
||||
if (exist > 0)
|
||||
{
|
||||
mySql.Close();
|
||||
return "{\"code\":500,\"msg\":\"用户名已存在\"}";
|
||||
}
|
||||
|
||||
sql = "insert into wxxd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,sa_level,add_time,mdy_time) " +
|
||||
"values ('" + nick_name + "','" + user_name + "','" + mobile + "','" + password + "','" + card_id + "','" +
|
||||
group_id + "','" + company_name + "','" + notes + "'," + sa_level + ",'" +
|
||||
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" +
|
||||
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');";
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (!rst)
|
||||
return "{\"code\":501,\"msg\":\"" + mySql.Message + "\"}";
|
||||
else
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string UpdateUser(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var id = RegexUtils.GetStringQuery(ref inputData, "id")?.Replace("'", "\\'");
|
||||
var nick_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_nick_name"))?.Replace("'", "\\'");
|
||||
var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_user_name"))?.Replace("'", "\\'");
|
||||
var mobile = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_mobile"))?.Replace("'", "\\'");
|
||||
var company_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "add_company"))?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "add_password")?.Replace("'", "\\'");
|
||||
var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'");
|
||||
var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'");
|
||||
var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'");
|
||||
var sa_level = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'");
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "";
|
||||
//sql = "select * from wxxd.user where parent_user_name='"
|
||||
// + user_name + "'";
|
||||
sql = "update wxxd.user set";
|
||||
if (!string.IsNullOrEmpty(nick_name))
|
||||
sql += " nick_name='" + nick_name + "',";
|
||||
if (!string.IsNullOrEmpty(user_name))
|
||||
sql += " user_name='" + user_name + "',";
|
||||
if (!string.IsNullOrEmpty(mobile))
|
||||
sql += " mobile='" + mobile + "',";
|
||||
if (!string.IsNullOrEmpty(company_name))
|
||||
sql += " company_name='" + company_name + "',";
|
||||
if (!string.IsNullOrEmpty(password))
|
||||
sql += " password='" + password + "',";
|
||||
if (!string.IsNullOrEmpty(group_id))
|
||||
sql += " group_id=" + group_id + ",";
|
||||
if (!string.IsNullOrEmpty(card_id))
|
||||
sql += " card_id='" + card_id + "',";
|
||||
if (!string.IsNullOrEmpty(notes))
|
||||
sql += " notes='" + notes + "',";
|
||||
if (!string.IsNullOrEmpty(sa_level))
|
||||
sql += " sa_level=" + sa_level + ",";
|
||||
sql = sql.TrimEnd(',');
|
||||
sql += " where id=" + id + "";
|
||||
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
if (rst)
|
||||
{
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
|
||||
}
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
|
||||
|
||||
public string ChangePassword(string inputData)
|
||||
{
|
||||
var userName = RegexUtils.GetStringJson(ref inputData, "user_name")?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringJson(ref inputData, "password")?.Replace("'", "\\'");
|
||||
var newPassword = RegexUtils.GetStringJson(ref inputData, "new_password")?.Replace("'", "\\'");
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "select user_id,password from pepdtp.user where user_id='"
|
||||
+ userName + "' and password='" + password + "'";
|
||||
|
||||
var dw = mySql.ExecuteDataTableRow(sql);
|
||||
if (dw != null)
|
||||
{
|
||||
UserLoginResultParam user = new UserLoginResultParam
|
||||
{
|
||||
user_name = dw["user_id"].ToString(),
|
||||
password = dw["password"].ToString(),
|
||||
};
|
||||
sql = "update pepdtp.user set password = '" + newPassword + "' where user_id='" + userName + "'";
|
||||
var result = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
|
||||
if (result)
|
||||
{
|
||||
return "{\"code\":0,\"msg\":\"密码修改成功!\"}";
|
||||
}
|
||||
else
|
||||
return "{\"code\":19999,\"msg\":\"密码修改失败!请稍后再试。\"}";
|
||||
}
|
||||
else
|
||||
{
|
||||
mySql.Close();
|
||||
return "{\"code\":1,\"msg\":\"原密码错误。\"}";
|
||||
}
|
||||
}
|
||||
|
||||
public string return_package_secret_key { get; set; } = "aaMETt2bPe6YHzZ1ojbC+6wOvgtwehqc6A+/Rz+pCUU=";
|
||||
|
||||
public string GetPackageSign(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var mobile = RegexUtils.GetStringQuery(ref inputData, "mobile")?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
|
||||
var timestamp = RegexUtils.GetStringQuery(ref inputData, "timestamp")?.Replace("'", "\\'");
|
||||
var mallId = RegexUtils.GetStringQuery(ref inputData, "mallId")?.Replace("'", "\\'");
|
||||
var returnPackageNo = RegexUtils.GetStringQuery(ref inputData, "returnPackageNo")?.Replace("'", "\\'");
|
||||
int r2 = RegexUtils.GetStringQuery(ref inputData, "r2").ParseToInt();
|
||||
string c2 = RegexUtils.GetStringQuery(ref inputData, "c2");
|
||||
|
||||
if (EncrypUtil.Encryption(r2) != c2)
|
||||
return "{\"code\":2,\"msg\":\"不合法的输入内容\"}";
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "select * from wxxd.user where user_name='"
|
||||
+ mobile + "' and password='" + password + "'";
|
||||
|
||||
sql = "select * from wxxd.user where user_name='" + mobile + "'";
|
||||
|
||||
var dt = mySql.ExecuteDataTable(sql);
|
||||
mySql.Close();
|
||||
if (dt == null || dt.Rows.Count <=0)
|
||||
{
|
||||
return "{\"code\":1,\"msg\":\"用户不存在\"}";
|
||||
}
|
||||
|
||||
string sign = EncrypUtil.GetMd5(timestamp + return_package_secret_key + mallId + returnPackageNo).ToLower();
|
||||
|
||||
return "{\"code\":200, \"sign\":\"" + sign + "\", \"msg\":\"\"}";
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using KJD_Web.BLL.BXX;
|
||||
using KJD_Web.BLL.DYXD;
|
||||
using KJD_Web.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -54,7 +55,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().GetShop(jsontext);
|
||||
result = new DYShopManage().GetShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -66,7 +67,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().GetOneLoginNameShop(jsontext);
|
||||
result = new DYShopManage().GetOneLoginNameShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -78,7 +79,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().AddShop(jsontext);
|
||||
result = new DYShopManage().AddShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -90,7 +91,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().DelShop(jsontext);
|
||||
result = new DYShopManage().DelShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -102,7 +103,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().MdyShop(jsontext);
|
||||
result = new DYShopManage().MdyShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -114,7 +115,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().MdyAntiContent(jsontext);
|
||||
result = new DYShopManage().MdyAntiContent(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -126,7 +127,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().MdyCookieAndLoginStatus(jsontext);
|
||||
result = new DYShopManage().MdyCookieAndLoginStatus(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -138,7 +139,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().GetShop(jsontext, true);
|
||||
result = new DYShopManage().GetShop(jsontext, true);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -150,7 +151,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().SubSaGetSelectProdShop(jsontext);
|
||||
result = new DYShopManage().SubSaGetSelectProdShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -162,7 +163,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().UpdateAddProdRemaining(jsontext);
|
||||
result = new DYShopManage().UpdateAddProdRemaining(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -174,7 +175,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().MdyShop(jsontext, true);
|
||||
result = new DYShopManage().MdyShop(jsontext, true);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -186,7 +187,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().AddShop(jsontext, true);
|
||||
result = new DYShopManage().AddShop(jsontext, true);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -198,7 +199,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().DelShop(jsontext, true);
|
||||
result = new DYShopManage().DelShop(jsontext, true);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -210,7 +211,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXShopManage().SetShopSubSa(jsontext);
|
||||
result = new DYShopManage().SetShopSubSa(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using KJD_Web.BLL.BXX;
|
||||
using KJD_Web.BLL.DYXD;
|
||||
using KJD_Web.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -60,7 +61,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXUserManage().CheckUserLogin(jsontext);
|
||||
result = new DYUserManage().CheckUserLogin(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -72,7 +73,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXUserManage().GetPackageSign(jsontext);
|
||||
result = new DYUserManage().GetPackageSign(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -84,7 +85,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXUserManage().ChangePassword(jsontext);
|
||||
result = new DYUserManage().ChangePassword(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -96,7 +97,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXUserManage().GetSubUser(jsontext);
|
||||
result = new DYUserManage().GetSubUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -108,7 +109,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXUserManage().UpdateSubUser(jsontext);
|
||||
result = new DYUserManage().UpdateSubUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -120,7 +121,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXUserManage().AddSubUser(jsontext);
|
||||
result = new DYUserManage().AddSubUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -132,7 +133,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXUserManage().DelUser(jsontext);
|
||||
result = new DYUserManage().DelUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -144,7 +145,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXUserManage().GetAllUser(jsontext);
|
||||
result = new DYUserManage().GetAllUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -156,7 +157,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXUserManage().UpdateUser(jsontext);
|
||||
result = new DYUserManage().UpdateUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
@@ -168,7 +169,7 @@ namespace KJD_Web
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXUserManage().AddUser(jsontext);
|
||||
result = new DYUserManage().AddUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
|
||||
@@ -122,6 +122,39 @@ namespace KJD_Web
|
||||
hPath = hPath.Replace("/dyxd_price/", "/DYPriceService.asmx/");
|
||||
Context.RewritePath(hPath);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!hPath.Contains(".asmx") && hPath.Contains("/wxxd_user/"))
|
||||
{
|
||||
hPath = hPath.Replace("/wxxd_user/", "/WXUserService.asmx/");
|
||||
Context.RewritePath(hPath);
|
||||
}
|
||||
else if (!hPath.Contains(".asmx") && hPath.Contains("/wxxd_shop/"))
|
||||
{
|
||||
hPath = hPath.Replace("/wxxd_shop/", "/WXShopService.asmx/");
|
||||
Context.RewritePath(hPath);
|
||||
}
|
||||
//else if (!hPath.Contains(".asmx") && hPath.Contains("/update/"))
|
||||
//{
|
||||
// hPath = hPath.Replace("/update/", "/UpdateService.asmx/");
|
||||
// Context.RewritePath(hPath);
|
||||
//}
|
||||
else if (!hPath.Contains(".asmx") && hPath.Contains("/wxxd_product/"))
|
||||
{
|
||||
hPath = hPath.Replace("/wxxd_product/", "/WXProductService.asmx/");
|
||||
Context.RewritePath(hPath);
|
||||
}
|
||||
else if (!hPath.Contains(".asmx") && hPath.Contains("/wxxd_product_third/"))
|
||||
{
|
||||
hPath = hPath.Replace("/wxxd_product_third/", "/WXProductThirdService.asmx/");
|
||||
Context.RewritePath(hPath);
|
||||
}
|
||||
else if (!hPath.Contains(".asmx") && hPath.Contains("/wxxd_price/"))
|
||||
{
|
||||
hPath = hPath.Replace("/wxxd_price/", "/WXPriceService.asmx/");
|
||||
Context.RewritePath(hPath);
|
||||
}
|
||||
}
|
||||
|
||||
protected void Application_AuthenticateRequest(object sender, EventArgs e)
|
||||
|
||||
@@ -74,7 +74,10 @@
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="WXProductService.asmx" />
|
||||
<Content Include="WXShopService.asmx" />
|
||||
<Content Include="DYShopService.asmx" />
|
||||
<Content Include="WXUserService.asmx" />
|
||||
<Content Include="DYUserService.asmx" />
|
||||
<Content Include="Global.asax" />
|
||||
<Content Include="BXXPriceService.asmx" />
|
||||
@@ -108,10 +111,25 @@
|
||||
<Compile Include="BLL\KJD\ToolManage.cs" />
|
||||
<Compile Include="BLL\KJD\UpadteManage.cs" />
|
||||
<Compile Include="BLL\KJD\UserManage.cs" />
|
||||
<Compile Include="BLL\WXXD\WXProductManage.cs" />
|
||||
<Compile Include="BLL\WXXD\WXShopManage.cs" />
|
||||
<Compile Include="BLL\WXXD\WXUserManage.cs" />
|
||||
<Compile Include="WXProductService.asmx.cs">
|
||||
<DependentUpon>WXProductService.asmx</DependentUpon>
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="WXShopService.asmx.cs">
|
||||
<DependentUpon>WXShopService.asmx</DependentUpon>
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYShopService.asmx.cs">
|
||||
<DependentUpon>DYShopService.asmx</DependentUpon>
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="WXUserService.asmx.cs">
|
||||
<DependentUpon>WXUserService.asmx</DependentUpon>
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYUserService.asmx.cs">
|
||||
<DependentUpon>DYUserService.asmx</DependentUpon>
|
||||
<SubType>Component</SubType>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<IISExpressWindowsAuthentication />
|
||||
<IISExpressUseClassicPipelineMode />
|
||||
<UseGlobalApplicationHostFile />
|
||||
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
|
||||
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
|
||||
<ProjectView>ShowAllFiles</ProjectView>
|
||||
</PropertyGroup>
|
||||
<ProjectExtensions>
|
||||
|
||||
@@ -20,6 +20,10 @@ namespace KJD_Web.Model.ShopModel
|
||||
/// 拼多多Id
|
||||
/// </summary>
|
||||
public string pddid { get; set; }
|
||||
/// <summary>
|
||||
/// 微信openId
|
||||
/// </summary>
|
||||
public string openid { get; set; }
|
||||
public string shop_id { get; set; }
|
||||
public string shop_account { get; set; }
|
||||
public string sub_user_name { get; set; }
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<%@ WebService Language="C#" CodeBehind="WXProductService.asmx.cs" Class="KJD_Web.WXProductService" %>
|
||||
@@ -0,0 +1,113 @@
|
||||
using KJD_Web.BLL.BXX;
|
||||
using KJD_Web.BLL.WXXD;
|
||||
using KJD_Web.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.Services;
|
||||
|
||||
namespace KJD_Web
|
||||
{
|
||||
/// <summary>
|
||||
/// ProductService 的摘要说明
|
||||
/// </summary>
|
||||
[WebService(Namespace = "http://tempuri.org/")]
|
||||
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
|
||||
[System.ComponentModel.ToolboxItem(false)]
|
||||
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
|
||||
// [System.Web.Script.Services.ScriptService]
|
||||
public class WXProductService : System.Web.Services.WebService
|
||||
{
|
||||
private string GetRequestJsonString()
|
||||
{
|
||||
Context.Response.ContentType = "text/html;charset=utf-8";
|
||||
Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
|
||||
|
||||
using (Stream s = HttpContext.Current.Request.InputStream) // 获得json 字符流
|
||||
{
|
||||
// 还原数据流
|
||||
byte[] b = new byte[s.Length];
|
||||
s.Read(b, 0, (int)s.Length);
|
||||
string jsonText = Encoding.UTF8.GetString(b); // JSON字符串
|
||||
if (string.IsNullOrEmpty(jsonText))
|
||||
{
|
||||
var qs = HttpContext.Current.Request.QueryString;
|
||||
if (qs != null && qs.Keys.Count > 0)
|
||||
{
|
||||
jsonText = "{";
|
||||
foreach (var key in qs.Keys)
|
||||
{
|
||||
jsonText += "\"" + key + "\":" + "\"" + qs[key.ToString()] + "\";";
|
||||
}
|
||||
jsonText = jsonText.TrimEnd(';') + "}";
|
||||
}
|
||||
}
|
||||
return jsonText;
|
||||
}
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void get_pdd_product_list()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXProductManage().WXGetPDDProductList(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void get_pdd_product_detail_list()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXProductManage().WXGetPDDProductList(jsontext, true);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void get_pdd_product_list_random()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXProductManage().WXGetPDDProductListRandom(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
|
||||
[WebMethod]
|
||||
public void get_pdd_product_groups()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXProductManage().WXGetPDDProductGroups(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void get_pdd_product_cates()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXProductManage().WXGetPDDProductCates(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<%@ WebService Language="C#" CodeBehind="WXShopService.asmx.cs" Class="KJD_Web.WXShopService" %>
|
||||
@@ -0,0 +1,220 @@
|
||||
using KJD_Web.BLL.BXX;
|
||||
using KJD_Web.BLL.WXXD;
|
||||
using KJD_Web.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.Services;
|
||||
|
||||
namespace KJD_Web
|
||||
{
|
||||
/// <summary>
|
||||
/// ShopService 的摘要说明
|
||||
/// </summary>
|
||||
[WebService(Namespace = "http://tempuri.org/")]
|
||||
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
|
||||
[System.ComponentModel.ToolboxItem(false)]
|
||||
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
|
||||
// [System.Web.Script.Services.ScriptService]
|
||||
public class WXShopService : System.Web.Services.WebService
|
||||
{
|
||||
private string GetRequestJsonString()
|
||||
{
|
||||
Context.Response.ContentType = "text/html;charset=utf-8";
|
||||
Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
|
||||
|
||||
using (Stream s = HttpContext.Current.Request.InputStream) // 获得json 字符流
|
||||
{
|
||||
// 还原数据流
|
||||
byte[] b = new byte[s.Length];
|
||||
s.Read(b, 0, (int)s.Length);
|
||||
string jsonText = Encoding.UTF8.GetString(b); // JSON字符串
|
||||
if (string.IsNullOrEmpty(jsonText))
|
||||
{
|
||||
var qs = HttpContext.Current.Request.QueryString;
|
||||
if (qs != null && qs.Keys.Count > 0)
|
||||
{
|
||||
jsonText = "{";
|
||||
foreach (var key in qs.Keys)
|
||||
{
|
||||
jsonText += "\"" + key + "\":" + "\"" + qs[key.ToString()] + "\";";
|
||||
}
|
||||
jsonText = jsonText.TrimEnd(';') + "}";
|
||||
}
|
||||
}
|
||||
return jsonText;
|
||||
}
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void get_shop_list()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().GetShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void get_one_login_name_shop()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().GetOneLoginNameShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void add_shop()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().AddShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void del_shop()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().DelShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void mdy_shop()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().MdyShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void mdy_anti_content()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().MdyAntiContent(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void mdy_shop_cookie_and_login_status()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().MdyCookieAndLoginStatus(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void admin_get_shop_list()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().GetShop(jsontext, true);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void sub_sa_get_select_prod_shop()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().SubSaGetSelectProdShop(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void update_add_prod_remaining()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().UpdateAddProdRemaining(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void admin_mdy_shop()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().MdyShop(jsontext, true);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void admin_add_shop()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().AddShop(jsontext, true);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void admin_del_shop()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().DelShop(jsontext, true);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void set_shop_sub_sa()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXShopManage().SetShopSubSa(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<%@ WebService Language="C#" CodeBehind="WXUserService.asmx.cs" Class="KJD_Web.WXUserService" %>
|
||||
@@ -0,0 +1,178 @@
|
||||
using KJD_Web.BLL.BXX;
|
||||
using KJD_Web.BLL.WXXD;
|
||||
using KJD_Web.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.Services;
|
||||
|
||||
namespace KJD_Web
|
||||
{
|
||||
/// <summary>
|
||||
/// UserService 的摘要说明
|
||||
/// </summary>
|
||||
[WebService(Namespace = "http://tempuri.org/")]
|
||||
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
|
||||
[System.ComponentModel.ToolboxItem(false)]
|
||||
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
|
||||
// [System.Web.Script.Services.ScriptService]
|
||||
public class WXUserService : System.Web.Services.WebService
|
||||
{
|
||||
[WebMethod]
|
||||
public string hello_world()
|
||||
{
|
||||
return "Hello World";
|
||||
}
|
||||
|
||||
private string GetRequestJsonString()
|
||||
{
|
||||
Context.Response.ContentType = "text/html;charset=utf-8";
|
||||
Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
|
||||
|
||||
using (Stream s = HttpContext.Current.Request.InputStream) // 获得json 字符流
|
||||
{
|
||||
// 还原数据流
|
||||
byte[] b = new byte[s.Length];
|
||||
s.Read(b, 0, (int)s.Length);
|
||||
string jsonText = Encoding.UTF8.GetString(b); // JSON字符串
|
||||
if (string.IsNullOrEmpty(jsonText))
|
||||
{
|
||||
var qs = HttpContext.Current.Request.QueryString;
|
||||
if (qs != null && qs.Keys.Count > 0)
|
||||
{
|
||||
jsonText = "{";
|
||||
foreach (var key in qs.Keys)
|
||||
{
|
||||
jsonText += "\"" + key + "\":" + "\"" + qs[key.ToString()] + "\";";
|
||||
}
|
||||
jsonText = jsonText.TrimEnd(';') + "}";
|
||||
}
|
||||
}
|
||||
return jsonText;
|
||||
}
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void user_login()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXUserManage().CheckUserLogin(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void get_package_sign()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXUserManage().GetPackageSign(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void change_password()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXUserManage().ChangePassword(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void get_sub_user()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXUserManage().GetSubUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void update_sub_user()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXUserManage().UpdateSubUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void add_sub_user()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXUserManage().AddSubUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void delete_user()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXUserManage().DelUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void get_all_user()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXUserManage().GetAllUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void update_user()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXUserManage().UpdateUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void add_user()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new WXUserManage().AddUser(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -228,7 +228,7 @@ namespace TemuKJD.BLL
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void WriteMultipartBodyToRequest(HttpWebRequest request, string body)
|
||||
public static void WriteMultipartBodyToRequest(HttpWebRequest request, string body)
|
||||
{
|
||||
string[] multiparts = Regex.Split(body, @"<!>");
|
||||
byte[] bytes;
|
||||
|
||||
@@ -258,6 +258,7 @@ namespace TemuKJD.BLL
|
||||
shop.ad_seller_unique_id = BaseRegex.GetStringJson(ref shopStr, "ad_seller_unique_id");
|
||||
shop.ad_url = BaseRegex.GetStringJson(ref shopStr, "ad_url");
|
||||
shop.pddid = BaseRegex.GetStringJson(ref shopStr, "pddid");
|
||||
shop.openid = BaseRegex.GetStringJson(ref shopStr, "openid");
|
||||
shop.jit_expire_time = BaseRegex.GetStringJson(ref shopStr, "jit_expire_time") == null ? new DateTime?() : Convert.ToDateTime(BaseRegex.GetStringJson(ref shopStr, "jit_expire_time"));
|
||||
|
||||
if (BaseClass.MainPath == "binxixi")
|
||||
|
||||
@@ -0,0 +1,332 @@
|
||||
using AllBase;
|
||||
using AllBase.Model.Result;
|
||||
using NaiBa.Util.Extension;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace TemuKJD.BLL
|
||||
{
|
||||
public class WXHttpResponseBLL
|
||||
{
|
||||
public static string WeiXinPostResponse(ShopLoginInfo shop, string _url, string _data, string referer)
|
||||
{
|
||||
string biz_magic = "";
|
||||
string cookies = "";
|
||||
try
|
||||
{
|
||||
var cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(shop?.Cookies.ParseToString());
|
||||
if (cookieLst == null)
|
||||
cookieLst = new List<CefSharp.Cookie>();
|
||||
foreach (var cook in cookieLst)
|
||||
{
|
||||
cookies += cook.Name + "=" + cook.Value + ";";
|
||||
}
|
||||
var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic");
|
||||
if (bizMagicCookie != null)
|
||||
biz_magic = bizMagicCookie.Value;
|
||||
}
|
||||
catch { }
|
||||
|
||||
HttpWebResponse response = null;
|
||||
string result;
|
||||
try
|
||||
{
|
||||
string url = _url;
|
||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||||
|
||||
request.KeepAlive = true;
|
||||
request.Headers.Add("wecom_magic", @"");
|
||||
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
|
||||
request.Headers.Add("supplier_magic", @"");
|
||||
request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
|
||||
request.Headers.Add("sec-ch-ua-mobile", @"?0");
|
||||
request.Headers.Add("potter-scene", @"weixinShop");
|
||||
request.Headers.Add("biz_magic", biz_magic);
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
|
||||
request.Accept = "application/json, text/plain, */*";
|
||||
request.Headers.Add("talent_magic", @"");
|
||||
request.ContentType = "application/json";
|
||||
request.Headers.Add("mcn_magic", @"");
|
||||
request.Headers.Add("Origin", @"https://store.weixin.qq.com");
|
||||
request.Headers.Add("Sec-Fetch-Site", @"same-origin");
|
||||
request.Headers.Add("Sec-Fetch-Mode", @"cors");
|
||||
request.Headers.Add("Sec-Fetch-Dest", @"empty");
|
||||
request.Referer = referer;
|
||||
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
|
||||
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6");
|
||||
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
|
||||
|
||||
request.Method = "POST";
|
||||
request.ServicePoint.Expect100Continue = false;
|
||||
|
||||
string body = _data;
|
||||
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
|
||||
request.ContentLength = postBytes.Length;
|
||||
Stream stream = request.GetRequestStream();
|
||||
stream.Write(postBytes, 0, postBytes.Length);
|
||||
stream.Close();
|
||||
|
||||
response = (HttpWebResponse)request.GetResponse();
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
if (ex.Status == WebExceptionStatus.ProtocolError)
|
||||
{
|
||||
response = (HttpWebResponse)ex.Response;
|
||||
result = GetProxyHtml.ReadResponse(response);
|
||||
return result;
|
||||
}
|
||||
else return ex.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (response != null) response.Close();
|
||||
return e.Message;
|
||||
}
|
||||
result = GetProxyHtml.ReadResponse(response);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static string WeiXinImgPostResponse(ShopLoginInfo shop, string _url, string _data, string dis_k, long dis_t, string ext, string referer = "https://store.weixin.qq.com/")
|
||||
{
|
||||
string biz_magic = "";
|
||||
string cookies = "";
|
||||
try
|
||||
{
|
||||
var cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(shop?.Cookies.ParseToString());
|
||||
if (cookieLst == null)
|
||||
cookieLst = new List<CefSharp.Cookie>();
|
||||
foreach (var cook in cookieLst)
|
||||
{
|
||||
cookies += cook.Name + "=" + cook.Value + ";";
|
||||
}
|
||||
var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic");
|
||||
if (bizMagicCookie != null)
|
||||
biz_magic = bizMagicCookie.Value;
|
||||
}
|
||||
catch { }
|
||||
|
||||
HttpWebResponse response = null;
|
||||
string result;
|
||||
try
|
||||
{
|
||||
string url = _url;
|
||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||||
|
||||
request.KeepAlive = true;
|
||||
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
|
||||
request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
|
||||
request.Headers.Add("sec-ch-ua-mobile", @"?0");
|
||||
request.Headers.Add("X-Requested-With", @"XMLHttpRequest");
|
||||
//request.Headers.Add("X-Arguments", @"dis_k=9974f70b8c9e17952a3bf6aa7b0fcfee84d976d5&dis_t=1767868679&ext=1b37ffc79cfe7&apptype=160&filetype=20304&openid=ouBgG2b2iqWytVlHHK0lhZvMBf2o&groupid=0&taskid=c9059d06-383e-460e-86e6-a0cb134016a9");
|
||||
request.Headers.Add("X-Arguments", @"dis_k=" + dis_k + @"&dis_t=" + dis_t + @"&ext=" + ext + @"&apptype=160&filetype=20304&openid=" + shop.openid + @"&groupid=0&taskid=" + Guid.NewGuid().ToString());
|
||||
request.Accept = "application/json, text/plain, */*";
|
||||
request.ContentType = "application/json";
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
|
||||
request.Headers.Add("Origin", @"https://store.weixin.qq.com");
|
||||
request.Headers.Add("Sec-Fetch-Site", @"same-site");
|
||||
request.Headers.Add("Sec-Fetch-Mode", @"cors");
|
||||
request.Headers.Add("Sec-Fetch-Dest", @"empty");
|
||||
request.Referer = referer;
|
||||
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
|
||||
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
|
||||
|
||||
|
||||
request.Method = "POST";
|
||||
request.ServicePoint.Expect100Continue = false;
|
||||
|
||||
string body = _data;
|
||||
byte[] postBytes = Convert.FromBase64String(body);
|
||||
request.ContentLength = postBytes.Length;
|
||||
Stream stream = request.GetRequestStream();
|
||||
stream.Write(postBytes, 0, postBytes.Length);
|
||||
stream.Close();
|
||||
|
||||
response = (HttpWebResponse)request.GetResponse();
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
if (ex.Status == WebExceptionStatus.ProtocolError)
|
||||
{
|
||||
response = (HttpWebResponse)ex.Response;
|
||||
result = GetProxyHtml.ReadResponse(response);
|
||||
return result;
|
||||
}
|
||||
else return ex.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (response != null) response.Close();
|
||||
return e.Message;
|
||||
}
|
||||
result = GetProxyHtml.ReadResponse(response);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static string WeiXinUploadResponse(ShopLoginInfo shop, string _url, string _body, string boundaryStr, string referer)
|
||||
{
|
||||
|
||||
string biz_magic = "";
|
||||
string cookies = "";
|
||||
try
|
||||
{
|
||||
var cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(shop?.Cookies.ParseToString());
|
||||
if (cookieLst == null)
|
||||
cookieLst = new List<CefSharp.Cookie>();
|
||||
foreach (var cook in cookieLst)
|
||||
{
|
||||
if (cook.Name.StartsWith("biz"))
|
||||
cookies += cook.Name + "=" + cook.Value + ";";
|
||||
}
|
||||
var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic");
|
||||
if (bizMagicCookie != null)
|
||||
biz_magic = bizMagicCookie.Value;
|
||||
}
|
||||
catch { }
|
||||
|
||||
HttpWebResponse response = null;
|
||||
string result;
|
||||
try
|
||||
{
|
||||
string url = _url;
|
||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||||
|
||||
request.Headers.Add("wecom_magic", @"");
|
||||
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
|
||||
request.Headers.Add("supplier_magic", @"");
|
||||
request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
|
||||
request.Headers.Add("sec-ch-ua-mobile", @"?0");
|
||||
request.Headers.Add("potter-scene", @"weixinShop");
|
||||
request.Headers.Add("biz_magic", biz_magic);
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
|
||||
request.Accept = "application/json, text/plain, */*";
|
||||
request.Headers.Add("talent_magic", @"");
|
||||
request.ContentType = "multipart/form-data; boundary=" + boundaryStr;
|
||||
request.Headers.Add("mcn_magic", @"");
|
||||
request.Headers.Add("Origin", @"https://store.weixin.qq.com");
|
||||
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
|
||||
request.Headers.Add("Sec-Fetch-Site", @"same-origin");
|
||||
request.Headers.Add("Sec-Fetch-Mode", @"cors");
|
||||
request.Headers.Add("Sec-Fetch-Dest", @"empty");
|
||||
request.Referer = referer; //"https://store.weixin.qq.com/shop/goods/entry";
|
||||
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
|
||||
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
|
||||
|
||||
|
||||
request.Method = "POST";
|
||||
request.ServicePoint.Expect100Continue = false;
|
||||
|
||||
string body = _body;
|
||||
HttpResponseBLL.WriteMultipartBodyToRequest(request, body);
|
||||
response = (HttpWebResponse)request.GetResponse();
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
if (ex.Status == WebExceptionStatus.ProtocolError)
|
||||
{
|
||||
response = (HttpWebResponse)ex.Response;
|
||||
result = GetProxyHtml.ReadResponse(response);
|
||||
return result;
|
||||
}
|
||||
else return ex.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (response != null) response.Close();
|
||||
return e.Message;
|
||||
}
|
||||
result = GetProxyHtml.ReadResponse(response);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static string WeiXinGetResponse(ShopLoginInfo shop, string _url, string referer = "", bool isGetDocument = false)
|
||||
{
|
||||
string biz_magic = "";
|
||||
string cookies = "";
|
||||
try
|
||||
{
|
||||
var cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(shop?.Cookies.ParseToString());
|
||||
if (cookieLst == null)
|
||||
cookieLst = new List<CefSharp.Cookie>();
|
||||
foreach (var cook in cookieLst)
|
||||
{
|
||||
if (cook.Name.StartsWith("biz"))
|
||||
cookies += cook.Name + "=" + cook.Value + ";";
|
||||
}
|
||||
var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic");
|
||||
if (bizMagicCookie != null)
|
||||
biz_magic = bizMagicCookie.Value;
|
||||
}
|
||||
catch { }
|
||||
|
||||
HttpWebResponse response = null;
|
||||
string result;
|
||||
try
|
||||
{
|
||||
string url = _url;
|
||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||||
|
||||
request.KeepAlive = true;
|
||||
if (isGetDocument)
|
||||
{
|
||||
request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
|
||||
request.Headers.Add("sec-ch-ua-mobile", @"?0");
|
||||
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
|
||||
request.Headers.Add("Upgrade-Insecure-Requests", @"1");
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
|
||||
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7";
|
||||
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
|
||||
request.Headers.Add("Sec-Fetch-Site", @"none");
|
||||
request.Headers.Add("Sec-Fetch-Mode", @"navigate");
|
||||
request.Headers.Add("Sec-Fetch-User", @"?1");
|
||||
request.Headers.Add("Sec-Fetch-Dest", @"document");
|
||||
}
|
||||
else
|
||||
{
|
||||
request.Headers.Add("wecom_magic", @"");
|
||||
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
|
||||
request.Headers.Add("supplier_magic", @"");
|
||||
request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
|
||||
request.Headers.Add("sec-ch-ua-mobile", @"?0");
|
||||
request.Headers.Add("potter-scene", @"weixinShop");
|
||||
request.Headers.Add("biz_magic",biz_magic);
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
|
||||
request.Accept = "application/json, text/plain, */*";
|
||||
request.Headers.Add("talent_magic", @"");
|
||||
request.Headers.Add("mcn_magic", @"");
|
||||
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
|
||||
request.Headers.Add("Sec-Fetch-Site", @"same-origin");
|
||||
request.Headers.Add("Sec-Fetch-Mode", @"cors");
|
||||
request.Headers.Add("Sec-Fetch-Dest", @"empty");
|
||||
request.Referer = referer;
|
||||
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
|
||||
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
|
||||
}
|
||||
|
||||
response = (HttpWebResponse)request.GetResponse();
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
if (ex.Status == WebExceptionStatus.ProtocolError)
|
||||
{
|
||||
response = (HttpWebResponse)ex.Response;
|
||||
result = GetProxyHtml.ReadResponse(response);
|
||||
return result;
|
||||
}
|
||||
else return ex.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (response != null) response.Close();
|
||||
return e.Message;
|
||||
}
|
||||
result = GetProxyHtml.ReadResponse(response);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
Generated
+32
-24
@@ -36,7 +36,7 @@
|
||||
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.rbTemu = new System.Windows.Forms.RadioButton();
|
||||
this.rbPdd = new System.Windows.Forms.RadioButton();
|
||||
this.rbDy = new System.Windows.Forms.RadioButton();
|
||||
this.rbWX = new System.Windows.Forms.RadioButton();
|
||||
this.chkRemember = new TemuKJD.UserComponent.UcCheckBox(this.components);
|
||||
this.panel3 = new System.Windows.Forms.Panel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
@@ -57,26 +57,29 @@
|
||||
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel2.Location = new System.Drawing.Point(1, 33);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(265, 190);
|
||||
this.panel2.Size = new System.Drawing.Size(278, 190);
|
||||
this.panel2.TabIndex = 39;
|
||||
//
|
||||
// panel4
|
||||
//
|
||||
this.panel4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.panel4.Controls.Add(this.btnOK);
|
||||
this.panel4.Controls.Add(this.flowLayoutPanel1);
|
||||
this.panel4.Location = new System.Drawing.Point(4, 132);
|
||||
this.panel4.Name = "panel4";
|
||||
this.panel4.Size = new System.Drawing.Size(256, 52);
|
||||
this.panel4.Size = new System.Drawing.Size(269, 52);
|
||||
this.panel4.TabIndex = 40;
|
||||
this.panel4.Visible = false;
|
||||
//
|
||||
// btnOK
|
||||
//
|
||||
this.btnOK.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.btnOK.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnOK.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnOK.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnOK.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnOK.Location = new System.Drawing.Point(30, 24);
|
||||
this.btnOK.Location = new System.Drawing.Point(36, 24);
|
||||
this.btnOK.Name = "btnOK";
|
||||
this.btnOK.Size = new System.Drawing.Size(199, 23);
|
||||
this.btnOK.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
@@ -97,13 +100,15 @@
|
||||
//
|
||||
// flowLayoutPanel1
|
||||
//
|
||||
this.flowLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.flowLayoutPanel1.Controls.Add(this.rbTemu);
|
||||
this.flowLayoutPanel1.Controls.Add(this.rbPdd);
|
||||
this.flowLayoutPanel1.Controls.Add(this.rbDy);
|
||||
this.flowLayoutPanel1.Controls.Add(this.rbWX);
|
||||
this.flowLayoutPanel1.Controls.Add(this.chkRemember);
|
||||
this.flowLayoutPanel1.Location = new System.Drawing.Point(9, 1);
|
||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
||||
this.flowLayoutPanel1.Size = new System.Drawing.Size(250, 48);
|
||||
this.flowLayoutPanel1.Size = new System.Drawing.Size(263, 48);
|
||||
this.flowLayoutPanel1.TabIndex = 757;
|
||||
//
|
||||
// rbTemu
|
||||
@@ -132,23 +137,23 @@
|
||||
this.rbPdd.Text = "拼多多";
|
||||
this.rbPdd.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// rbDy
|
||||
// rbSPH
|
||||
//
|
||||
this.rbDy.AutoSize = true;
|
||||
this.rbDy.ForeColor = System.Drawing.SystemColors.InfoText;
|
||||
this.rbDy.Location = new System.Drawing.Point(120, 0);
|
||||
this.rbDy.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.rbDy.Name = "rbDy";
|
||||
this.rbDy.Size = new System.Drawing.Size(50, 21);
|
||||
this.rbDy.TabIndex = 28;
|
||||
this.rbDy.Text = "抖音";
|
||||
this.rbDy.UseVisualStyleBackColor = true;
|
||||
this.rbDy.Visible = false;
|
||||
this.rbWX.AutoSize = true;
|
||||
this.rbWX.ForeColor = System.Drawing.SystemColors.InfoText;
|
||||
this.rbWX.Location = new System.Drawing.Point(120, 0);
|
||||
this.rbWX.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.rbWX.Name = "rbSPH";
|
||||
this.rbWX.Size = new System.Drawing.Size(62, 21);
|
||||
this.rbWX.TabIndex = 28;
|
||||
this.rbWX.Text = "视频号";
|
||||
this.rbWX.UseVisualStyleBackColor = true;
|
||||
this.rbWX.Visible = false;
|
||||
//
|
||||
// chkRemember
|
||||
//
|
||||
this.chkRemember.AutoSize = true;
|
||||
this.chkRemember.Location = new System.Drawing.Point(170, 0);
|
||||
this.chkRemember.Location = new System.Drawing.Point(182, 0);
|
||||
this.chkRemember.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.chkRemember.Name = "chkRemember";
|
||||
this.chkRemember.Size = new System.Drawing.Size(75, 21);
|
||||
@@ -159,19 +164,22 @@
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
this.panel3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.panel3.Controls.Add(this.label1);
|
||||
this.panel3.Controls.Add(this.progressBarX1);
|
||||
this.panel3.Controls.Add(this.pbShopLoading);
|
||||
this.panel3.Location = new System.Drawing.Point(4, 27);
|
||||
this.panel3.Name = "panel3";
|
||||
this.panel3.Size = new System.Drawing.Size(257, 125);
|
||||
this.panel3.Size = new System.Drawing.Size(270, 125);
|
||||
this.panel3.TabIndex = 39;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label1.Location = new System.Drawing.Point(54, 9);
|
||||
this.label1.Location = new System.Drawing.Point(61, 9);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(150, 21);
|
||||
this.label1.TabIndex = 0;
|
||||
@@ -187,7 +195,7 @@
|
||||
this.progressBarX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.progressBarX1.Location = new System.Drawing.Point(29, 105);
|
||||
this.progressBarX1.Name = "progressBarX1";
|
||||
this.progressBarX1.Size = new System.Drawing.Size(199, 15);
|
||||
this.progressBarX1.Size = new System.Drawing.Size(212, 15);
|
||||
this.progressBarX1.TabIndex = 38;
|
||||
this.progressBarX1.TabStop = false;
|
||||
this.progressBarX1.Text = "progressBarX1";
|
||||
@@ -198,7 +206,7 @@
|
||||
this.pbShopLoading.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
|
||||
this.pbShopLoading.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||
this.pbShopLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
|
||||
this.pbShopLoading.Location = new System.Drawing.Point(96, 35);
|
||||
this.pbShopLoading.Location = new System.Drawing.Point(103, 35);
|
||||
this.pbShopLoading.Name = "pbShopLoading";
|
||||
this.pbShopLoading.Size = new System.Drawing.Size(64, 64);
|
||||
this.pbShopLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
@@ -208,7 +216,7 @@
|
||||
// InitForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(267, 224);
|
||||
this.ClientSize = new System.Drawing.Size(280, 224);
|
||||
this.Controls.Add(this.panel2);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
@@ -242,6 +250,6 @@
|
||||
private DevComponents.DotNetBar.PanelEx btnOK;
|
||||
private System.Windows.Forms.Panel panel4;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
|
||||
private System.Windows.Forms.RadioButton rbDy;
|
||||
private System.Windows.Forms.RadioButton rbWX;
|
||||
}
|
||||
}
|
||||
+6
-6
@@ -36,7 +36,7 @@ namespace TemuKJD
|
||||
#if DEBUG
|
||||
this.panel3.Location = new Point(4, 4);
|
||||
this.panel4.Visible=true;
|
||||
this.rbDy.Visible = true;
|
||||
this.rbWX.Visible = true;
|
||||
#endif
|
||||
initFormSettings = ConfigHelper.LoadConfig<InitFormSettings>("initFormSettings");
|
||||
if (initFormSettings == null)
|
||||
@@ -44,11 +44,11 @@ namespace TemuKJD
|
||||
this.chkRemember.Checked = initFormSettings.Remember;
|
||||
this.rbTemu.Checked = initFormSettings.LoginType.ToLower() == "temu";
|
||||
this.rbPdd.Checked = initFormSettings.LoginType.ToLower() == "pdd";
|
||||
this.rbDy.Checked = initFormSettings.LoginType.ToLower() == "dy";
|
||||
this.rbWX.Checked = initFormSettings.LoginType.ToLower() == "wx";
|
||||
this.rbTemu.CheckedChanged += rbTemu_CheckedChanged;
|
||||
this.rbPdd.CheckedChanged += rbTemu_CheckedChanged;
|
||||
this.rbDy.CheckedChanged += rbTemu_CheckedChanged;
|
||||
if (rbDy.Visible == false)
|
||||
this.rbWX.CheckedChanged += rbTemu_CheckedChanged;
|
||||
if (rbWX.Visible == false)
|
||||
flowLayoutPanel1.Location = new Point(38, flowLayoutPanel1.Location.Y);
|
||||
|
||||
Task.Run(() =>
|
||||
@@ -138,8 +138,8 @@ namespace TemuKJD
|
||||
newLoginType = "Temu";
|
||||
else if (sender == rbPdd && rbPdd.Checked)
|
||||
newLoginType = "Pdd";
|
||||
else if (sender == rbDy && rbDy.Checked)
|
||||
newLoginType = "Dy";
|
||||
else if (sender == rbWX && rbWX.Checked)
|
||||
newLoginType = "Wx";
|
||||
if (initFormSettings.LoginType != newLoginType)
|
||||
{
|
||||
isChangeType = true;
|
||||
|
||||
+108
-44
@@ -117,6 +117,7 @@
|
||||
<Compile Include="BLL\AuthorBLL.cs" />
|
||||
<Compile Include="BLL\MemoryReader.cs" />
|
||||
<Compile Include="BLL\ProductSelectBLL.cs" />
|
||||
<Compile Include="BLL\WXHttpResponseBLL.cs" />
|
||||
<Compile Include="BoundObject.cs" />
|
||||
<Compile Include="ChangeForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
@@ -125,59 +126,101 @@
|
||||
<DependentUpon>ChangeForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="CookieVisitor.cs" />
|
||||
<Compile Include="DYForms\AdminForms\DYAdminAccountForm.cs">
|
||||
<Compile Include="WXForms\AdminForms\WXAdminShopListForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\AdminForms\DYAdminAccountForm.Designer.cs">
|
||||
<DependentUpon>DYAdminAccountForm.cs</DependentUpon>
|
||||
<Compile Include="WXForms\AdminForms\WXAdminShopListForm.Designer.cs">
|
||||
<DependentUpon>WXAdminShopListForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\AdminForms\DYAdminForm.cs">
|
||||
<Compile Include="WXForms\AdminForms\WXAdminAccountForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\AdminForms\DYAdminForm.Designer.cs">
|
||||
<DependentUpon>DYAdminForm.cs</DependentUpon>
|
||||
<Compile Include="WXForms\AdminForms\WXAdminAccountForm.Designer.cs">
|
||||
<DependentUpon>WXAdminAccountForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\AdminForms\DYAdminShopAddSubSaForm.cs">
|
||||
<Compile Include="WXForms\AdminForms\WXAdminForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\AdminForms\DYAdminShopAddSubSaForm.Designer.cs">
|
||||
<DependentUpon>DYAdminShopAddSubSaForm.cs</DependentUpon>
|
||||
<Compile Include="WXForms\AdminForms\WXAdminForm.Designer.cs">
|
||||
<DependentUpon>WXAdminForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYShopAddEditForm.cs">
|
||||
<Compile Include="WXForms\AdminForms\WXAdminShopAddSubSaForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYShopAddEditForm.Designer.cs">
|
||||
<DependentUpon>DYShopAddEditForm.cs</DependentUpon>
|
||||
<Compile Include="WXForms\AdminForms\WXAdminShopAddSubSaForm.Designer.cs">
|
||||
<DependentUpon>WXAdminShopAddSubSaForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYShopListForm.cs">
|
||||
<Compile Include="WXForms\AdminForms\WXAdminShopLoginForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYShopListForm.Designer.cs">
|
||||
<DependentUpon>DYShopListForm.cs</DependentUpon>
|
||||
<Compile Include="WXForms\AdminForms\WXAdminShopLoginForm.Designer.cs">
|
||||
<DependentUpon>WXAdminShopLoginForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYShopLoginForm.cs">
|
||||
<Compile Include="WXForms\ProductForms\WXDBProdUploadCacheForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYShopLoginForm.Designer.cs">
|
||||
<DependentUpon>DYShopLoginForm.cs</DependentUpon>
|
||||
<Compile Include="WXForms\ProductForms\WXDBProdUploadCacheForm.Designer.cs">
|
||||
<DependentUpon>WXDBProdUploadCacheForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYSubAccountListForm.cs">
|
||||
<Compile Include="WXForms\ProductForms\WXDBProdUploadForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYSubAccountListForm.Designer.cs">
|
||||
<DependentUpon>DYSubAccountListForm.cs</DependentUpon>
|
||||
<Compile Include="WXForms\ProductForms\WXDBProdUploadForm.Designer.cs">
|
||||
<DependentUpon>WXDBProdUploadForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYSubAccountShopEditForm.cs">
|
||||
<Compile Include="WXForms\ProductForms\WXProductForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYSubAccountShopEditForm.Designer.cs">
|
||||
<DependentUpon>DYSubAccountShopEditForm.cs</DependentUpon>
|
||||
<Compile Include="WXForms\ProductForms\WXProductForm.Designer.cs">
|
||||
<DependentUpon>WXProductForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\DYShopBrowserObject.cs" />
|
||||
<Compile Include="DYForms\ShopForms\UcSubAccount.cs">
|
||||
<Compile Include="WXForms\ShopForms\WXShopUpdateCookieForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXShopUpdateCookieForm.Designer.cs">
|
||||
<DependentUpon>WXShopUpdateCookieForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXShopForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXShopForm.Designer.cs">
|
||||
<DependentUpon>WXShopForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXShopAddEditForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXShopAddEditForm.Designer.cs">
|
||||
<DependentUpon>WXShopAddEditForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXShopListForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXShopListForm.Designer.cs">
|
||||
<DependentUpon>WXShopListForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXShopLoginForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXShopLoginForm.Designer.cs">
|
||||
<DependentUpon>WXShopLoginForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXSubAccountListForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXSubAccountListForm.Designer.cs">
|
||||
<DependentUpon>WXSubAccountListForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXSubAccountShopEditForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXSubAccountShopEditForm.Designer.cs">
|
||||
<DependentUpon>WXSubAccountShopEditForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WXForms\ShopForms\WXShopBrowserObject.cs" />
|
||||
<Compile Include="WXForms\ShopForms\UcSubAccount.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DYForms\ShopForms\UcSubAccount.Designer.cs">
|
||||
<Compile Include="WXForms\ShopForms\UcSubAccount.Designer.cs">
|
||||
<DependentUpon>UcSubAccount.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Extension\DataGridViewExtension.cs" />
|
||||
@@ -965,31 +1008,52 @@
|
||||
<EmbeddedResource Include="ChangeForm.resx">
|
||||
<DependentUpon>ChangeForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DYForms\AdminForms\DYAdminAccountForm.resx">
|
||||
<DependentUpon>DYAdminAccountForm.cs</DependentUpon>
|
||||
<EmbeddedResource Include="WXForms\AdminForms\WXAdminShopListForm.resx">
|
||||
<DependentUpon>WXAdminShopListForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DYForms\AdminForms\DYAdminForm.resx">
|
||||
<DependentUpon>DYAdminForm.cs</DependentUpon>
|
||||
<EmbeddedResource Include="WXForms\AdminForms\WXAdminAccountForm.resx">
|
||||
<DependentUpon>WXAdminAccountForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DYForms\AdminForms\DYAdminShopAddSubSaForm.resx">
|
||||
<DependentUpon>DYAdminShopAddSubSaForm.cs</DependentUpon>
|
||||
<EmbeddedResource Include="WXForms\AdminForms\WXAdminForm.resx">
|
||||
<DependentUpon>WXAdminForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DYForms\ShopForms\DYShopAddEditForm.resx">
|
||||
<DependentUpon>DYShopAddEditForm.cs</DependentUpon>
|
||||
<EmbeddedResource Include="WXForms\AdminForms\WXAdminShopAddSubSaForm.resx">
|
||||
<DependentUpon>WXAdminShopAddSubSaForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DYForms\ShopForms\DYShopListForm.resx">
|
||||
<DependentUpon>DYShopListForm.cs</DependentUpon>
|
||||
<EmbeddedResource Include="WXForms\AdminForms\WXAdminShopLoginForm.resx">
|
||||
<DependentUpon>WXAdminShopLoginForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DYForms\ShopForms\DYShopLoginForm.resx">
|
||||
<DependentUpon>DYShopLoginForm.cs</DependentUpon>
|
||||
<EmbeddedResource Include="WXForms\ProductForms\WXDBProdUploadCacheForm.resx">
|
||||
<DependentUpon>WXDBProdUploadCacheForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DYForms\ShopForms\DYSubAccountListForm.resx">
|
||||
<DependentUpon>DYSubAccountListForm.cs</DependentUpon>
|
||||
<EmbeddedResource Include="WXForms\ProductForms\WXDBProdUploadForm.resx">
|
||||
<DependentUpon>WXDBProdUploadForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DYForms\ShopForms\DYSubAccountShopEditForm.resx">
|
||||
<DependentUpon>DYSubAccountShopEditForm.cs</DependentUpon>
|
||||
<EmbeddedResource Include="WXForms\ProductForms\WXProductForm.resx">
|
||||
<DependentUpon>WXProductForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DYForms\ShopForms\UcSubAccount.resx">
|
||||
<EmbeddedResource Include="WXForms\ShopForms\WXShopUpdateCookieForm.resx">
|
||||
<DependentUpon>WXShopUpdateCookieForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="WXForms\ShopForms\WXShopForm.resx">
|
||||
<DependentUpon>WXShopForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="WXForms\ShopForms\WXShopAddEditForm.resx">
|
||||
<DependentUpon>WXShopAddEditForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="WXForms\ShopForms\WXShopListForm.resx">
|
||||
<DependentUpon>WXShopListForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="WXForms\ShopForms\WXShopLoginForm.resx">
|
||||
<DependentUpon>WXShopLoginForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="WXForms\ShopForms\WXSubAccountListForm.resx">
|
||||
<DependentUpon>WXSubAccountListForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="WXForms\ShopForms\WXSubAccountShopEditForm.resx">
|
||||
<DependentUpon>WXSubAccountShopEditForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="WXForms\ShopForms\UcSubAccount.resx">
|
||||
<DependentUpon>UcSubAccount.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="InitForm.resx">
|
||||
|
||||
@@ -494,7 +494,14 @@ namespace TemuKJD.KJDForms.ProductForms
|
||||
list = JsonHelper.DeserializeJsonToList<TemuDBProductPurchasePriceInfo>(jArr.ToString());
|
||||
foreach (var pPrice in list)
|
||||
{
|
||||
pPrice.dbSkuPurchasePriceList = JsonHelper.DeserializeJsonToList<TemuDBSkuPurchasePriceInfo>(pPrice.sku_purchase_price_json);
|
||||
try
|
||||
{
|
||||
pPrice.dbSkuPurchasePriceList = JsonHelper.DeserializeJsonToList<TemuDBSkuPurchasePriceInfo>(pPrice.sku_purchase_price_json);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
pPrice.price_text = "获取失败请重新设置";
|
||||
}
|
||||
if (pPrice.dbSkuPurchasePriceList == null)
|
||||
pPrice.dbSkuPurchasePriceList = new List<TemuDBSkuPurchasePriceInfo>();
|
||||
else
|
||||
|
||||
@@ -487,7 +487,14 @@ namespace TemuKJD.KJDForms.ProductForms
|
||||
list = JsonHelper.DeserializeJsonToList<TemuDBProductPurchasePriceInfo>(jArr.ToString());
|
||||
foreach (var pPrice in list)
|
||||
{
|
||||
pPrice.dbSkuPurchasePriceList = JsonHelper.DeserializeJsonToList<TemuDBSkuPurchasePriceInfo>(pPrice.sku_purchase_price_json);
|
||||
try
|
||||
{
|
||||
pPrice.dbSkuPurchasePriceList = JsonHelper.DeserializeJsonToList<TemuDBSkuPurchasePriceInfo>(pPrice.sku_purchase_price_json);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
pPrice.price_text = "获取失败请重新设置";
|
||||
}
|
||||
if (pPrice.dbSkuPurchasePriceList == null)
|
||||
pPrice.dbSkuPurchasePriceList = new List<TemuDBSkuPurchasePriceInfo>();
|
||||
else
|
||||
|
||||
@@ -884,8 +884,9 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics
|
||||
{
|
||||
pPrice.dbSkuPurchasePriceList = JsonHelper.DeserializeJsonToList<TemuDBSkuPurchasePriceInfo>(pPrice.sku_purchase_price_json);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
catch (Exception ex)
|
||||
{
|
||||
pPrice.price_text = "获取失败请重新设置";
|
||||
}
|
||||
if (pPrice.dbSkuPurchasePriceList == null)
|
||||
pPrice.dbSkuPurchasePriceList = new List<TemuDBSkuPurchasePriceInfo>();
|
||||
|
||||
+32
-1
@@ -43,6 +43,9 @@ using TemuKJD.PDDForms.AdminForms;
|
||||
using TemuKJD.PDDForms.ShopForms;
|
||||
using TemuKJD.PDDForms.ProductForms;
|
||||
using TemuKJD.KJDForms.JITForms;
|
||||
using TemuKJD.WXForms.ShopForms;
|
||||
using TemuKJD.WXForms.AdminForms;
|
||||
using TemuKJD.WXForms.ProductForms;
|
||||
|
||||
namespace TemuKJD
|
||||
{
|
||||
@@ -156,6 +159,11 @@ namespace TemuKJD
|
||||
BaseClass.MainPath = "douyin";
|
||||
this.pnlJit.Visible = false;
|
||||
}
|
||||
else if (loginType == "Wx")
|
||||
{
|
||||
BaseClass.MainPath = "weixin";
|
||||
this.pnlJit.Visible = false;
|
||||
}
|
||||
|
||||
instance = this;
|
||||
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
|
||||
@@ -183,7 +191,6 @@ namespace TemuKJD
|
||||
//settings.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36";
|
||||
//settings.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36";
|
||||
settings.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
|
||||
//if (BaseClass.MainPath == "binxixi" && BaseClass.UsePddWorkbanch)
|
||||
if (initFormSettings.LoginType.ToLower() == "pdd")
|
||||
settings.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12";
|
||||
settings.CefCommandLineArgs.Add("disable-gpu", "1"); // 禁止显卡加速
|
||||
@@ -684,6 +691,14 @@ namespace TemuKJD
|
||||
}
|
||||
ShowMainPanel(shopForm as A_PddShopForm, sender as Panel);
|
||||
}
|
||||
else if (BaseClass.MainPath == "weixin")
|
||||
{
|
||||
if (shopForm == null)
|
||||
{
|
||||
shopForm = new WXShopForm();
|
||||
}
|
||||
ShowMainPanel(shopForm as WXShopForm, sender as Panel);
|
||||
}
|
||||
}
|
||||
|
||||
private object adminForm;
|
||||
@@ -713,6 +728,14 @@ namespace TemuKJD
|
||||
//}
|
||||
//ShowMainPanel(adminForm as PDDAdminForm, sender as Panel);
|
||||
}
|
||||
else if (BaseClass.MainPath == "weixin")
|
||||
{
|
||||
if (adminForm == null)
|
||||
{
|
||||
adminForm = new WXAdminForm();
|
||||
}
|
||||
ShowMainPanel(adminForm as WXAdminForm, sender as Panel);
|
||||
}
|
||||
}
|
||||
|
||||
private object uploadForm;
|
||||
@@ -734,6 +757,14 @@ namespace TemuKJD
|
||||
}
|
||||
ShowMainPanel(uploadForm as PDDProductForm, sender as Panel);
|
||||
}
|
||||
else if (BaseClass.MainPath == "weixin")
|
||||
{
|
||||
if (uploadForm == null)
|
||||
{
|
||||
uploadForm = new WXProductForm();
|
||||
}
|
||||
ShowMainPanel(uploadForm as WXProductForm, sender as Panel);
|
||||
}
|
||||
}
|
||||
|
||||
//private CollectForm collectForm;
|
||||
|
||||
@@ -754,7 +754,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
if (string.IsNullOrEmpty(dbProd.product_json))
|
||||
{
|
||||
dbProd = PDDDBProdUserSelectForm.GetProductDetail(dbProd.id.ParseToString());
|
||||
#if DEBUG
|
||||
Thread.Sleep(50);
|
||||
#else
|
||||
Thread.Sleep(200);
|
||||
#endif
|
||||
}
|
||||
|
||||
JObject prodJObj = new JObject();
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
|
||||
namespace TemuKJD.DYForms.AdminForms
|
||||
namespace TemuKJD.WXForms.AdminForms
|
||||
{
|
||||
partial class DYAdminAccountForm
|
||||
partial class WXAdminAccountForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
+3
-3
@@ -12,16 +12,16 @@ using System.Windows.Forms;
|
||||
using TemuKJD.BaseForms;
|
||||
using Work;
|
||||
|
||||
namespace TemuKJD.DYForms.AdminForms
|
||||
namespace TemuKJD.WXForms.AdminForms
|
||||
{
|
||||
public partial class DYAdminAccountForm
|
||||
public partial class WXAdminAccountForm
|
||||
: BaseForm
|
||||
{
|
||||
public static List<ShopSubAccountInfo> AllUsers { get; set; } = new List<ShopSubAccountInfo>();
|
||||
public MainForm Mf { get; set; } = null;
|
||||
public string Uid { get; set; } = "";
|
||||
|
||||
public DYAdminAccountForm()
|
||||
public WXAdminAccountForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
File renamed without changes.
+2
-2
@@ -1,6 +1,6 @@
|
||||
namespace TemuKJD.DYForms.AdminForms
|
||||
namespace TemuKJD.WXForms.AdminForms
|
||||
{
|
||||
partial class DYAdminForm
|
||||
partial class WXAdminForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
+12
-12
@@ -12,16 +12,16 @@ using System.Windows.Forms;
|
||||
using TemuKJD.BaseForms;
|
||||
using TemuKJD.PDDForms.ProductSelectForms;
|
||||
|
||||
namespace TemuKJD.DYForms.AdminForms
|
||||
namespace TemuKJD.WXForms.AdminForms
|
||||
{
|
||||
public partial class DYAdminForm : BaseForm
|
||||
public partial class WXAdminForm : BaseForm
|
||||
{
|
||||
public Lazy<DYAdminAccountForm> adminAccountForm = new Lazy<DYAdminAccountForm>();
|
||||
//public Lazy<DYAdminShopListForm> adminShopForm = new Lazy<DYAdminShopListForm>();
|
||||
//public Lazy<DYDBProdListForm> dbProdListForm = new Lazy<DYDBProdListForm>();
|
||||
//public Lazy<DYDBProdImgListForm> dbProdImgListForm = new Lazy<DYDBProdImgListForm>();
|
||||
public Lazy<WXAdminAccountForm> adminAccountForm = new Lazy<WXAdminAccountForm>();
|
||||
public Lazy<WXAdminShopListForm> adminShopForm = new Lazy<WXAdminShopListForm>();
|
||||
//public Lazy<WXDBProdListForm> dbProdListForm = new Lazy<WXDBProdListForm>();
|
||||
//public Lazy<WXDBProdImgListForm> dbProdImgListForm = new Lazy<WXDBProdImgListForm>();
|
||||
|
||||
public DYAdminForm()
|
||||
public WXAdminForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
@@ -39,8 +39,8 @@ namespace TemuKJD.DYForms.AdminForms
|
||||
{
|
||||
hideName.Remove("超级用户管理");
|
||||
hideName.Remove("超级店铺管理");
|
||||
hideName.Remove("产品数据库");
|
||||
hideName.Remove("SKU替换图");
|
||||
//hideName.Remove("产品数据库");
|
||||
//hideName.Remove("SKU替换图");
|
||||
}
|
||||
if (BaseClass.SaLevel==2)
|
||||
{
|
||||
@@ -74,9 +74,9 @@ namespace TemuKJD.DYForms.AdminForms
|
||||
case "超级用户管理":
|
||||
SetForm(adminAccountForm.Value);
|
||||
break;
|
||||
//case "超级店铺管理":
|
||||
// SetForm(adminShopForm.Value);
|
||||
// break;
|
||||
case "超级店铺管理":
|
||||
SetForm(adminShopForm.Value);
|
||||
break;
|
||||
//case "产品数据库":
|
||||
// SetForm(dbProdListForm.Value);
|
||||
// break;
|
||||
File renamed without changes.
+3
-3
@@ -1,7 +1,7 @@
|
||||
|
||||
namespace TemuKJD.DYForms.AdminForms
|
||||
namespace TemuKJD.WXForms.AdminForms
|
||||
{
|
||||
partial class DYAdminShopAddSubSaForm
|
||||
partial class WXAdminShopAddSubSaForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
@@ -31,7 +31,7 @@ namespace TemuKJD.DYForms.AdminForms
|
||||
{
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DYAdminShopAddSubSaForm));
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXAdminShopAddSubSaForm));
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.dgvSaUser = new TemuKJD.UserComponent.DataGridViewEx();
|
||||
+3
-3
@@ -13,14 +13,14 @@ using System.Windows.Forms;
|
||||
using TemuKJD.BaseForms;
|
||||
using Work;
|
||||
|
||||
namespace TemuKJD.DYForms.AdminForms
|
||||
namespace TemuKJD.WXForms.AdminForms
|
||||
{
|
||||
public partial class DYAdminShopAddSubSaForm : LRBaseForm
|
||||
public partial class WXAdminShopAddSubSaForm : LRBaseForm
|
||||
{
|
||||
List<string> lstShopLoginName = new List<string>();
|
||||
|
||||
List<ShopSubAccountInfo> lstSubSa = new List<ShopSubAccountInfo>();
|
||||
public DYAdminShopAddSubSaForm(List<string> ShopSelectIds = null)
|
||||
public WXAdminShopAddSubSaForm(List<string> ShopSelectIds = null)
|
||||
{
|
||||
InitializeComponent();
|
||||
if (ShopSelectIds != null)
|
||||
File renamed without changes.
@@ -0,0 +1,944 @@
|
||||
|
||||
namespace TemuKJD.WXForms.AdminForms
|
||||
{
|
||||
partial class WXAdminShopListForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.panel5 = new System.Windows.Forms.Panel();
|
||||
this.chkShowDelete = new System.Windows.Forms.CheckBox();
|
||||
this.btnLoginSelect = new TemuKJD.UserControls.ButtonEx();
|
||||
this.btnCheck = new TemuKJD.UserControls.ButtonEx();
|
||||
this.panel4 = new System.Windows.Forms.Panel();
|
||||
this.btnSetSubSa = new TemuKJD.UserControls.ButtonEx();
|
||||
this.txtUserName = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.txtLoginName = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.pnlEmpty = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnSearch = new TemuKJD.UserControls.ButtonEx();
|
||||
this.txtNotes = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.txtShopName = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.txtShopId = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||
this.pbLoading = new System.Windows.Forms.PictureBox();
|
||||
this.pnlAddProdRemaining = new System.Windows.Forms.Panel();
|
||||
this.lblShopId = new System.Windows.Forms.Label();
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.pnlCancel = new DevComponents.DotNetBar.PanelEx();
|
||||
this.numAddRemaining = new System.Windows.Forms.NumericUpDown();
|
||||
this.btnRemainOK = new DevComponents.DotNetBar.PanelEx();
|
||||
this.lblAddProdRemaining = new System.Windows.Forms.Label();
|
||||
this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx();
|
||||
this.chkAutoDrag = new System.Windows.Forms.CheckBox();
|
||||
this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
|
||||
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
|
||||
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
|
||||
this.colLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colShopAccount = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colMinus = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colProductRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colPlus = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colCookie = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colUser = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colSubUser = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colGroupName = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colUploadAccount = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colBuyAccount = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colChatAccount = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colLoginStatus = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colGotoShop = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colShopOperate = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colRelogin = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colRelogin2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colMultiLogin = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colApiAuth = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colBuyApiAuth = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colImportCookies = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colCopyCookies = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colUpload = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colSubSa = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colEdit = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colDelete = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.tableLayoutPanel2.SuspendLayout();
|
||||
this.panel5.SuspendLayout();
|
||||
this.panel4.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
|
||||
this.splitContainer2.Panel1.SuspendLayout();
|
||||
this.splitContainer2.Panel2.SuspendLayout();
|
||||
this.splitContainer2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
|
||||
this.pnlAddProdRemaining.SuspendLayout();
|
||||
this.panel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numAddRemaining)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tableLayoutPanel2);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
|
||||
this.splitContainer1.Panel2.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1273, 610);
|
||||
this.splitContainer1.SplitterDistance = 46;
|
||||
this.splitContainer1.TabIndex = 34;
|
||||
//
|
||||
// tableLayoutPanel2
|
||||
//
|
||||
this.tableLayoutPanel2.ColumnCount = 2;
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel2.Controls.Add(this.panel5, 1, 0);
|
||||
this.tableLayoutPanel2.Controls.Add(this.panel4, 0, 0);
|
||||
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||
this.tableLayoutPanel2.RowCount = 1;
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel2.Size = new System.Drawing.Size(1273, 46);
|
||||
this.tableLayoutPanel2.TabIndex = 37;
|
||||
//
|
||||
// panel5
|
||||
//
|
||||
this.panel5.Controls.Add(this.chkShowDelete);
|
||||
this.panel5.Controls.Add(this.btnLoginSelect);
|
||||
this.panel5.Controls.Add(this.btnCheck);
|
||||
this.panel5.Location = new System.Drawing.Point(1010, 3);
|
||||
this.panel5.Name = "panel5";
|
||||
this.panel5.Size = new System.Drawing.Size(260, 40);
|
||||
this.panel5.TabIndex = 1;
|
||||
//
|
||||
// chkShowDelete
|
||||
//
|
||||
this.chkShowDelete.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.chkShowDelete.AutoSize = true;
|
||||
this.chkShowDelete.BackColor = System.Drawing.Color.White;
|
||||
this.chkShowDelete.Location = new System.Drawing.Point(29, 12);
|
||||
this.chkShowDelete.Name = "chkShowDelete";
|
||||
this.chkShowDelete.Size = new System.Drawing.Size(87, 21);
|
||||
this.chkShowDelete.TabIndex = 374;
|
||||
this.chkShowDelete.Text = "显示操作栏";
|
||||
this.chkShowDelete.UseVisualStyleBackColor = false;
|
||||
this.chkShowDelete.CheckedChanged += new System.EventHandler(this.chkShowDelete_CheckedChanged);
|
||||
//
|
||||
// btnLoginSelect
|
||||
//
|
||||
this.btnLoginSelect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnLoginSelect.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnLoginSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnLoginSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnLoginSelect.ForeColor = System.Drawing.Color.White;
|
||||
this.btnLoginSelect.Location = new System.Drawing.Point(193, 9);
|
||||
this.btnLoginSelect.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnLoginSelect.Name = "btnLoginSelect";
|
||||
this.btnLoginSelect.Size = new System.Drawing.Size(66, 26);
|
||||
this.btnLoginSelect.TabIndex = 373;
|
||||
this.btnLoginSelect.Text = "登录选中";
|
||||
this.btnLoginSelect.UseVisualStyleBackColor = false;
|
||||
this.btnLoginSelect.Click += new System.EventHandler(this.btnLoginSelect_Click);
|
||||
//
|
||||
// btnCheck
|
||||
//
|
||||
this.btnCheck.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnCheck.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnCheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnCheck.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnCheck.ForeColor = System.Drawing.Color.White;
|
||||
this.btnCheck.Location = new System.Drawing.Point(123, 9);
|
||||
this.btnCheck.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnCheck.Name = "btnCheck";
|
||||
this.btnCheck.Size = new System.Drawing.Size(66, 26);
|
||||
this.btnCheck.TabIndex = 372;
|
||||
this.btnCheck.Text = "检测选中";
|
||||
this.btnCheck.UseVisualStyleBackColor = false;
|
||||
this.btnCheck.Click += new System.EventHandler(this.btnCheck_Click);
|
||||
//
|
||||
// panel4
|
||||
//
|
||||
this.panel4.Controls.Add(this.btnSetSubSa);
|
||||
this.panel4.Controls.Add(this.txtUserName);
|
||||
this.panel4.Controls.Add(this.label5);
|
||||
this.panel4.Controls.Add(this.txtLoginName);
|
||||
this.panel4.Controls.Add(this.label1);
|
||||
this.panel4.Controls.Add(this.pnlEmpty);
|
||||
this.panel4.Controls.Add(this.btnSearch);
|
||||
this.panel4.Controls.Add(this.txtNotes);
|
||||
this.panel4.Controls.Add(this.label4);
|
||||
this.panel4.Controls.Add(this.txtShopName);
|
||||
this.panel4.Controls.Add(this.label3);
|
||||
this.panel4.Controls.Add(this.txtShopId);
|
||||
this.panel4.Controls.Add(this.label2);
|
||||
this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel4.Location = new System.Drawing.Point(3, 3);
|
||||
this.panel4.Name = "panel4";
|
||||
this.panel4.Size = new System.Drawing.Size(1001, 40);
|
||||
this.panel4.TabIndex = 0;
|
||||
//
|
||||
// btnSetSubSa
|
||||
//
|
||||
this.btnSetSubSa.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSetSubSa.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnSetSubSa.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnSetSubSa.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnSetSubSa.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnSetSubSa.ForeColor = System.Drawing.Color.White;
|
||||
this.btnSetSubSa.Location = new System.Drawing.Point(895, 9);
|
||||
this.btnSetSubSa.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnSetSubSa.Name = "btnSetSubSa";
|
||||
this.btnSetSubSa.Size = new System.Drawing.Size(93, 26);
|
||||
this.btnSetSubSa.TabIndex = 424;
|
||||
this.btnSetSubSa.Text = "分配二级超管";
|
||||
this.btnSetSubSa.UseVisualStyleBackColor = false;
|
||||
this.btnSetSubSa.Click += new System.EventHandler(this.btnSetSubSa_Click);
|
||||
//
|
||||
// txtUserName
|
||||
//
|
||||
this.txtUserName.Location = new System.Drawing.Point(34, 11);
|
||||
this.txtUserName.Name = "txtUserName";
|
||||
this.txtUserName.Size = new System.Drawing.Size(90, 23);
|
||||
this.txtUserName.TabIndex = 419;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(1, 14);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(44, 17);
|
||||
this.label5.TabIndex = 420;
|
||||
this.label5.Text = "账户:";
|
||||
//
|
||||
// txtLoginName
|
||||
//
|
||||
this.txtLoginName.Location = new System.Drawing.Point(185, 11);
|
||||
this.txtLoginName.Name = "txtLoginName";
|
||||
this.txtLoginName.Size = new System.Drawing.Size(90, 23);
|
||||
this.txtLoginName.TabIndex = 417;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(128, 14);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(68, 17);
|
||||
this.label1.TabIndex = 418;
|
||||
this.label1.Text = "登录号码:";
|
||||
//
|
||||
// pnlEmpty
|
||||
//
|
||||
this.pnlEmpty.CanvasColor = System.Drawing.SystemColors.Control;
|
||||
this.pnlEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.pnlEmpty.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.pnlEmpty.Location = new System.Drawing.Point(749, 9);
|
||||
this.pnlEmpty.Name = "pnlEmpty";
|
||||
this.pnlEmpty.Size = new System.Drawing.Size(56, 26);
|
||||
this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.pnlEmpty.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.pnlEmpty.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.pnlEmpty.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
||||
this.pnlEmpty.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.pnlEmpty.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||
this.pnlEmpty.Style.GradientAngle = 90;
|
||||
this.pnlEmpty.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.pnlEmpty.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.pnlEmpty.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.pnlEmpty.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.pnlEmpty.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.pnlEmpty.TabIndex = 413;
|
||||
this.pnlEmpty.Text = "清空条件";
|
||||
this.pnlEmpty.Click += new System.EventHandler(this.pnlEmpty_Click);
|
||||
//
|
||||
// btnSearch
|
||||
//
|
||||
this.btnSearch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnSearch.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnSearch.ForeColor = System.Drawing.Color.White;
|
||||
this.btnSearch.Location = new System.Drawing.Point(688, 9);
|
||||
this.btnSearch.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnSearch.Name = "btnSearch";
|
||||
this.btnSearch.Size = new System.Drawing.Size(56, 26);
|
||||
this.btnSearch.TabIndex = 372;
|
||||
this.btnSearch.Text = "搜索";
|
||||
this.btnSearch.UseVisualStyleBackColor = false;
|
||||
this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
|
||||
//
|
||||
// txtNotes
|
||||
//
|
||||
this.txtNotes.Location = new System.Drawing.Point(589, 11);
|
||||
this.txtNotes.Name = "txtNotes";
|
||||
this.txtNotes.Size = new System.Drawing.Size(90, 23);
|
||||
this.txtNotes.TabIndex = 376;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(556, 14);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(44, 17);
|
||||
this.label4.TabIndex = 377;
|
||||
this.label4.Text = "备注:";
|
||||
//
|
||||
// txtShopName
|
||||
//
|
||||
this.txtShopName.Location = new System.Drawing.Point(462, 11);
|
||||
this.txtShopName.Name = "txtShopName";
|
||||
this.txtShopName.Size = new System.Drawing.Size(90, 23);
|
||||
this.txtShopName.TabIndex = 374;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(417, 14);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(56, 17);
|
||||
this.label3.TabIndex = 375;
|
||||
this.label3.Text = "店铺名:";
|
||||
//
|
||||
// txtShopId
|
||||
//
|
||||
this.txtShopId.Location = new System.Drawing.Point(323, 11);
|
||||
this.txtShopId.Name = "txtShopId";
|
||||
this.txtShopId.Size = new System.Drawing.Size(90, 23);
|
||||
this.txtShopId.TabIndex = 372;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(279, 14);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(55, 17);
|
||||
this.label2.TabIndex = 373;
|
||||
this.label2.Text = "店铺id:";
|
||||
//
|
||||
// splitContainer2
|
||||
//
|
||||
this.splitContainer2.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
||||
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer2.Name = "splitContainer2";
|
||||
this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer2.Panel1
|
||||
//
|
||||
this.splitContainer2.Panel1.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer2.Panel1.Controls.Add(this.pbLoading);
|
||||
this.splitContainer2.Panel1.Controls.Add(this.pnlAddProdRemaining);
|
||||
this.splitContainer2.Panel1.Controls.Add(this.dgvShop);
|
||||
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
//
|
||||
// splitContainer2.Panel2
|
||||
//
|
||||
this.splitContainer2.Panel2.Controls.Add(this.chkAutoDrag);
|
||||
this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1);
|
||||
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
|
||||
this.splitContainer2.Size = new System.Drawing.Size(1273, 560);
|
||||
this.splitContainer2.SplitterDistance = 531;
|
||||
this.splitContainer2.TabIndex = 0;
|
||||
//
|
||||
// pbLoading
|
||||
//
|
||||
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
|
||||
this.pbLoading.Location = new System.Drawing.Point(611, 240);
|
||||
this.pbLoading.Name = "pbLoading";
|
||||
this.pbLoading.Size = new System.Drawing.Size(50, 50);
|
||||
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pbLoading.TabIndex = 6;
|
||||
this.pbLoading.TabStop = false;
|
||||
//
|
||||
// pnlAddProdRemaining
|
||||
//
|
||||
this.pnlAddProdRemaining.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.pnlAddProdRemaining.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.pnlAddProdRemaining.Controls.Add(this.lblShopId);
|
||||
this.pnlAddProdRemaining.Controls.Add(this.panel2);
|
||||
this.pnlAddProdRemaining.Controls.Add(this.lblAddProdRemaining);
|
||||
this.pnlAddProdRemaining.Location = new System.Drawing.Point(399, 70);
|
||||
this.pnlAddProdRemaining.Name = "pnlAddProdRemaining";
|
||||
this.pnlAddProdRemaining.Size = new System.Drawing.Size(474, 146);
|
||||
this.pnlAddProdRemaining.TabIndex = 7;
|
||||
this.pnlAddProdRemaining.Visible = false;
|
||||
//
|
||||
// lblShopId
|
||||
//
|
||||
this.lblShopId.AutoSize = true;
|
||||
this.lblShopId.Location = new System.Drawing.Point(20, 19);
|
||||
this.lblShopId.Name = "lblShopId";
|
||||
this.lblShopId.Size = new System.Drawing.Size(50, 17);
|
||||
this.lblShopId.TabIndex = 455;
|
||||
this.lblShopId.Text = "ShopId";
|
||||
this.lblShopId.Visible = false;
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.panel2.Controls.Add(this.pnlCancel);
|
||||
this.panel2.Controls.Add(this.numAddRemaining);
|
||||
this.panel2.Controls.Add(this.btnRemainOK);
|
||||
this.panel2.Location = new System.Drawing.Point(23, 80);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(424, 29);
|
||||
this.panel2.TabIndex = 454;
|
||||
//
|
||||
// pnlCancel
|
||||
//
|
||||
this.pnlCancel.CanvasColor = System.Drawing.SystemColors.Control;
|
||||
this.pnlCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.pnlCancel.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.pnlCancel.Location = new System.Drawing.Point(273, 2);
|
||||
this.pnlCancel.Name = "pnlCancel";
|
||||
this.pnlCancel.Size = new System.Drawing.Size(56, 24);
|
||||
this.pnlCancel.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.pnlCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.pnlCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.pnlCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
||||
this.pnlCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.pnlCancel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||
this.pnlCancel.Style.GradientAngle = 90;
|
||||
this.pnlCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.pnlCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.pnlCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.pnlCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.pnlCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.pnlCancel.TabIndex = 458;
|
||||
this.pnlCancel.Text = "取消";
|
||||
this.pnlCancel.Click += new System.EventHandler(this.pnlCancel_Click);
|
||||
//
|
||||
// numAddRemaining
|
||||
//
|
||||
this.numAddRemaining.Location = new System.Drawing.Point(93, 3);
|
||||
this.numAddRemaining.Maximum = new decimal(new int[] {
|
||||
10000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numAddRemaining.Name = "numAddRemaining";
|
||||
this.numAddRemaining.Size = new System.Drawing.Size(120, 23);
|
||||
this.numAddRemaining.TabIndex = 1;
|
||||
//
|
||||
// btnRemainOK
|
||||
//
|
||||
this.btnRemainOK.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnRemainOK.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnRemainOK.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnRemainOK.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnRemainOK.Location = new System.Drawing.Point(215, 2);
|
||||
this.btnRemainOK.Name = "btnRemainOK";
|
||||
this.btnRemainOK.Size = new System.Drawing.Size(56, 24);
|
||||
this.btnRemainOK.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnRemainOK.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnRemainOK.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnRemainOK.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||
this.btnRemainOK.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
|
||||
this.btnRemainOK.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
|
||||
this.btnRemainOK.Style.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.btnRemainOK.Style.GradientAngle = 90;
|
||||
this.btnRemainOK.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnRemainOK.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnRemainOK.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnRemainOK.TabIndex = 453;
|
||||
this.btnRemainOK.Text = "确定";
|
||||
this.btnRemainOK.Click += new System.EventHandler(this.btnRemainOK_Click);
|
||||
//
|
||||
// lblAddProdRemaining
|
||||
//
|
||||
this.lblAddProdRemaining.Location = new System.Drawing.Point(23, 36);
|
||||
this.lblAddProdRemaining.Name = "lblAddProdRemaining";
|
||||
this.lblAddProdRemaining.Size = new System.Drawing.Size(424, 17);
|
||||
this.lblAddProdRemaining.TabIndex = 0;
|
||||
this.lblAddProdRemaining.Text = "shopInfo";
|
||||
this.lblAddProdRemaining.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// dgvShop
|
||||
//
|
||||
this.dgvShop.AllowUserToAddRows = false;
|
||||
this.dgvShop.AllowUserToDeleteRows = false;
|
||||
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
|
||||
this.dgvShop.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
|
||||
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
|
||||
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
|
||||
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
|
||||
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.colSelect,
|
||||
this.colLoginName,
|
||||
this.colShopId,
|
||||
this.colShopAccount,
|
||||
this.colNotes,
|
||||
this.colMinus,
|
||||
this.colProductRemaining,
|
||||
this.colPlus,
|
||||
this.colCookie,
|
||||
this.colUser,
|
||||
this.colSubUser,
|
||||
this.colGroupName,
|
||||
this.colUploadAccount,
|
||||
this.colBuyAccount,
|
||||
this.colChatAccount,
|
||||
this.colLoginStatus,
|
||||
this.colGotoShop,
|
||||
this.colShopOperate,
|
||||
this.colRelogin,
|
||||
this.colRelogin2,
|
||||
this.colMultiLogin,
|
||||
this.colApiAuth,
|
||||
this.colBuyApiAuth,
|
||||
this.colImportCookies,
|
||||
this.colCopyCookies,
|
||||
this.colUpload,
|
||||
this.colSubSa,
|
||||
this.colEdit,
|
||||
this.colDelete});
|
||||
this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.dgvShop.Location = new System.Drawing.Point(4, 0);
|
||||
this.dgvShop.Name = "dgvShop";
|
||||
this.dgvShop.ReadOnly = true;
|
||||
this.dgvShop.RowTemplate.Height = 23;
|
||||
this.dgvShop.ShowCellErrors = false;
|
||||
this.dgvShop.Size = new System.Drawing.Size(1265, 531);
|
||||
this.dgvShop.TabIndex = 5;
|
||||
this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
|
||||
this.dgvShop.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dgvShop_CellMouseDown);
|
||||
//
|
||||
// chkAutoDrag
|
||||
//
|
||||
this.chkAutoDrag.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.chkAutoDrag.AutoSize = true;
|
||||
this.chkAutoDrag.BackColor = System.Drawing.Color.White;
|
||||
this.chkAutoDrag.Location = new System.Drawing.Point(597, 0);
|
||||
this.chkAutoDrag.Name = "chkAutoDrag";
|
||||
this.chkAutoDrag.Size = new System.Drawing.Size(159, 21);
|
||||
this.chkAutoDrag.TabIndex = 3;
|
||||
this.chkAutoDrag.Text = "登录时自动滑动拼图验证";
|
||||
this.chkAutoDrag.UseVisualStyleBackColor = false;
|
||||
this.chkAutoDrag.Visible = false;
|
||||
//
|
||||
// ucSplitPage1
|
||||
//
|
||||
this.ucSplitPage1.CurrentPage = 1;
|
||||
this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.ucSplitPage1.IsShowPageSize = false;
|
||||
this.ucSplitPage1.Location = new System.Drawing.Point(911, 0);
|
||||
this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.ucSplitPage1.Name = "ucSplitPage1";
|
||||
this.ucSplitPage1.PageSize = 50;
|
||||
this.ucSplitPage1.Size = new System.Drawing.Size(362, 25);
|
||||
this.ucSplitPage1.TabIndex = 4;
|
||||
this.ucSplitPage1.TotalPage = 1;
|
||||
//
|
||||
// statusBar
|
||||
//
|
||||
this.statusBar.BackColor = System.Drawing.Color.White;
|
||||
this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.statusBar.Location = new System.Drawing.Point(0, 0);
|
||||
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.statusBar.Name = "statusBar";
|
||||
this.statusBar.Size = new System.Drawing.Size(1273, 25);
|
||||
this.statusBar.TabIndex = 1;
|
||||
//
|
||||
// colSelect
|
||||
//
|
||||
this.colSelect.FillWeight = 26F;
|
||||
this.colSelect.HeaderText = "选";
|
||||
this.colSelect.Name = "colSelect";
|
||||
this.colSelect.ReadOnly = true;
|
||||
this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
//
|
||||
// colLoginName
|
||||
//
|
||||
this.colLoginName.FillWeight = 70F;
|
||||
this.colLoginName.HeaderText = "店铺登录号码";
|
||||
this.colLoginName.Name = "colLoginName";
|
||||
this.colLoginName.ReadOnly = true;
|
||||
//
|
||||
// colShopId
|
||||
//
|
||||
this.colShopId.FillWeight = 70F;
|
||||
this.colShopId.HeaderText = "店铺Id";
|
||||
this.colShopId.Name = "colShopId";
|
||||
this.colShopId.ReadOnly = true;
|
||||
//
|
||||
// colShopAccount
|
||||
//
|
||||
this.colShopAccount.HeaderText = "店铺账号";
|
||||
this.colShopAccount.Name = "colShopAccount";
|
||||
this.colShopAccount.ReadOnly = true;
|
||||
//
|
||||
// colNotes
|
||||
//
|
||||
this.colNotes.HeaderText = "备注";
|
||||
this.colNotes.Name = "colNotes";
|
||||
this.colNotes.ReadOnly = true;
|
||||
//
|
||||
// colMinus
|
||||
//
|
||||
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
this.colMinus.DefaultCellStyle = dataGridViewCellStyle3;
|
||||
this.colMinus.FillWeight = 15F;
|
||||
this.colMinus.HeaderText = "-";
|
||||
this.colMinus.Name = "colMinus";
|
||||
this.colMinus.ReadOnly = true;
|
||||
this.colMinus.Visible = false;
|
||||
//
|
||||
// colProductRemaining
|
||||
//
|
||||
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
this.colProductRemaining.DefaultCellStyle = dataGridViewCellStyle4;
|
||||
this.colProductRemaining.FillWeight = 30F;
|
||||
this.colProductRemaining.HeaderText = "选品限额";
|
||||
this.colProductRemaining.Name = "colProductRemaining";
|
||||
this.colProductRemaining.ReadOnly = true;
|
||||
//
|
||||
// colPlus
|
||||
//
|
||||
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
this.colPlus.DefaultCellStyle = dataGridViewCellStyle5;
|
||||
this.colPlus.FillWeight = 15F;
|
||||
this.colPlus.HeaderText = "+";
|
||||
this.colPlus.Name = "colPlus";
|
||||
this.colPlus.ReadOnly = true;
|
||||
//
|
||||
// colCookie
|
||||
//
|
||||
this.colCookie.HeaderText = "店铺Cookie";
|
||||
this.colCookie.Name = "colCookie";
|
||||
this.colCookie.ReadOnly = true;
|
||||
this.colCookie.Visible = false;
|
||||
//
|
||||
// colUser
|
||||
//
|
||||
this.colUser.FillWeight = 67F;
|
||||
this.colUser.HeaderText = "所属账户";
|
||||
this.colUser.Name = "colUser";
|
||||
this.colUser.ReadOnly = true;
|
||||
//
|
||||
// colSubUser
|
||||
//
|
||||
this.colSubUser.FillWeight = 67F;
|
||||
this.colSubUser.HeaderText = "子账户";
|
||||
this.colSubUser.Name = "colSubUser";
|
||||
this.colSubUser.ReadOnly = true;
|
||||
//
|
||||
// colGroupName
|
||||
//
|
||||
this.colGroupName.FillWeight = 70F;
|
||||
this.colGroupName.HeaderText = "店铺分组";
|
||||
this.colGroupName.Name = "colGroupName";
|
||||
this.colGroupName.ReadOnly = true;
|
||||
this.colGroupName.Visible = false;
|
||||
//
|
||||
// colUploadAccount
|
||||
//
|
||||
this.colUploadAccount.FillWeight = 70F;
|
||||
this.colUploadAccount.HeaderText = "上货账户";
|
||||
this.colUploadAccount.Name = "colUploadAccount";
|
||||
this.colUploadAccount.ReadOnly = true;
|
||||
this.colUploadAccount.Visible = false;
|
||||
//
|
||||
// colBuyAccount
|
||||
//
|
||||
this.colBuyAccount.FillWeight = 70F;
|
||||
this.colBuyAccount.HeaderText = "采购账户";
|
||||
this.colBuyAccount.Name = "colBuyAccount";
|
||||
this.colBuyAccount.ReadOnly = true;
|
||||
this.colBuyAccount.Visible = false;
|
||||
//
|
||||
// colChatAccount
|
||||
//
|
||||
this.colChatAccount.FillWeight = 70F;
|
||||
this.colChatAccount.HeaderText = "客服账户";
|
||||
this.colChatAccount.Name = "colChatAccount";
|
||||
this.colChatAccount.ReadOnly = true;
|
||||
this.colChatAccount.Visible = false;
|
||||
//
|
||||
// colLoginStatus
|
||||
//
|
||||
this.colLoginStatus.HeaderText = "登录状态";
|
||||
this.colLoginStatus.Name = "colLoginStatus";
|
||||
this.colLoginStatus.ReadOnly = true;
|
||||
this.colLoginStatus.Visible = false;
|
||||
//
|
||||
// colGotoShop
|
||||
//
|
||||
this.colGotoShop.FillWeight = 46F;
|
||||
this.colGotoShop.HeaderText = "进入店铺";
|
||||
this.colGotoShop.Name = "colGotoShop";
|
||||
this.colGotoShop.ReadOnly = true;
|
||||
this.colGotoShop.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colGotoShop.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
//
|
||||
// colShopOperate
|
||||
//
|
||||
this.colShopOperate.FillWeight = 46F;
|
||||
this.colShopOperate.HeaderText = "检测";
|
||||
this.colShopOperate.Name = "colShopOperate";
|
||||
this.colShopOperate.ReadOnly = true;
|
||||
this.colShopOperate.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colShopOperate.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
this.colShopOperate.Visible = false;
|
||||
//
|
||||
// colRelogin
|
||||
//
|
||||
this.colRelogin.FillWeight = 40F;
|
||||
this.colRelogin.HeaderText = "登录";
|
||||
this.colRelogin.Name = "colRelogin";
|
||||
this.colRelogin.ReadOnly = true;
|
||||
this.colRelogin.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colRelogin.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
//
|
||||
// colRelogin2
|
||||
//
|
||||
this.colRelogin2.FillWeight = 55F;
|
||||
this.colRelogin2.HeaderText = "国际版状态";
|
||||
this.colRelogin2.Name = "colRelogin2";
|
||||
this.colRelogin2.ReadOnly = true;
|
||||
this.colRelogin2.Visible = false;
|
||||
//
|
||||
// colMultiLogin
|
||||
//
|
||||
this.colMultiLogin.FillWeight = 52F;
|
||||
this.colMultiLogin.HeaderText = "多重登录";
|
||||
this.colMultiLogin.Name = "colMultiLogin";
|
||||
this.colMultiLogin.ReadOnly = true;
|
||||
this.colMultiLogin.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colMultiLogin.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
this.colMultiLogin.Visible = false;
|
||||
//
|
||||
// colApiAuth
|
||||
//
|
||||
this.colApiAuth.FillWeight = 70F;
|
||||
this.colApiAuth.HeaderText = "上货授权";
|
||||
this.colApiAuth.Name = "colApiAuth";
|
||||
this.colApiAuth.ReadOnly = true;
|
||||
this.colApiAuth.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colApiAuth.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
this.colApiAuth.Visible = false;
|
||||
//
|
||||
// colBuyApiAuth
|
||||
//
|
||||
this.colBuyApiAuth.FillWeight = 70F;
|
||||
this.colBuyApiAuth.HeaderText = "拍单授权";
|
||||
this.colBuyApiAuth.Name = "colBuyApiAuth";
|
||||
this.colBuyApiAuth.ReadOnly = true;
|
||||
this.colBuyApiAuth.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colBuyApiAuth.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
this.colBuyApiAuth.Visible = false;
|
||||
//
|
||||
// colImportCookies
|
||||
//
|
||||
this.colImportCookies.FillWeight = 70F;
|
||||
this.colImportCookies.HeaderText = "导入Cookie";
|
||||
this.colImportCookies.Name = "colImportCookies";
|
||||
this.colImportCookies.ReadOnly = true;
|
||||
this.colImportCookies.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colImportCookies.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
this.colImportCookies.Visible = false;
|
||||
//
|
||||
// colCopyCookies
|
||||
//
|
||||
this.colCopyCookies.FillWeight = 70F;
|
||||
this.colCopyCookies.HeaderText = "复制Cookie";
|
||||
this.colCopyCookies.Name = "colCopyCookies";
|
||||
this.colCopyCookies.ReadOnly = true;
|
||||
this.colCopyCookies.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colCopyCookies.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
//
|
||||
// colUpload
|
||||
//
|
||||
this.colUpload.FillWeight = 67F;
|
||||
this.colUpload.HeaderText = "上传商品";
|
||||
this.colUpload.Name = "colUpload";
|
||||
this.colUpload.ReadOnly = true;
|
||||
this.colUpload.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colUpload.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
this.colUpload.Visible = false;
|
||||
//
|
||||
// colSubSa
|
||||
//
|
||||
this.colSubSa.FillWeight = 67F;
|
||||
this.colSubSa.HeaderText = "二级超管";
|
||||
this.colSubSa.Name = "colSubSa";
|
||||
this.colSubSa.ReadOnly = true;
|
||||
//
|
||||
// colEdit
|
||||
//
|
||||
this.colEdit.FillWeight = 46F;
|
||||
this.colEdit.HeaderText = "编辑";
|
||||
this.colEdit.Name = "colEdit";
|
||||
this.colEdit.ReadOnly = true;
|
||||
this.colEdit.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colEdit.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
this.colEdit.Visible = false;
|
||||
//
|
||||
// colDelete
|
||||
//
|
||||
this.colDelete.FillWeight = 46F;
|
||||
this.colDelete.HeaderText = "删除";
|
||||
this.colDelete.Name = "colDelete";
|
||||
this.colDelete.ReadOnly = true;
|
||||
this.colDelete.Visible = false;
|
||||
//
|
||||
// PDDAdminShopListForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(1273, 610);
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Name = "PDDAdminShopListForm";
|
||||
this.Text = "AdminShopForm";
|
||||
this.Load += new System.EventHandler(this.AdminShopForm_Load);
|
||||
this.VisibleChanged += new System.EventHandler(this.AdminShopForm_VisibleChanged);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.tableLayoutPanel2.ResumeLayout(false);
|
||||
this.panel5.ResumeLayout(false);
|
||||
this.panel5.PerformLayout();
|
||||
this.panel4.ResumeLayout(false);
|
||||
this.panel4.PerformLayout();
|
||||
this.splitContainer2.Panel1.ResumeLayout(false);
|
||||
this.splitContainer2.Panel2.ResumeLayout(false);
|
||||
this.splitContainer2.Panel2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
|
||||
this.splitContainer2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
|
||||
this.pnlAddProdRemaining.ResumeLayout(false);
|
||||
this.pnlAddProdRemaining.PerformLayout();
|
||||
this.panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.numAddRemaining)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
||||
private System.Windows.Forms.Panel panel5;
|
||||
private UserControls.ButtonEx btnLoginSelect;
|
||||
private UserControls.ButtonEx btnCheck;
|
||||
private System.Windows.Forms.Panel panel4;
|
||||
private UserControls.ButtonEx btnSearch;
|
||||
private System.Windows.Forms.TextBox txtNotes;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.TextBox txtShopName;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.TextBox txtShopId;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.SplitContainer splitContainer2;
|
||||
private System.Windows.Forms.PictureBox pbLoading;
|
||||
private UserComponent.DataGridViewEx dgvShop;
|
||||
private System.Windows.Forms.CheckBox chkAutoDrag;
|
||||
private UserControls.StatusBarUserControl statusBar;
|
||||
private DevComponents.DotNetBar.PanelEx pnlEmpty;
|
||||
private UserControls.UcSplitPage ucSplitPage1;
|
||||
private System.Windows.Forms.TextBox txtLoginName;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox txtUserName;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.CheckBox chkShowDelete;
|
||||
private UserControls.ButtonEx btnSetSubSa;
|
||||
private System.Windows.Forms.Panel pnlAddProdRemaining;
|
||||
private System.Windows.Forms.Label lblAddProdRemaining;
|
||||
private System.Windows.Forms.NumericUpDown numAddRemaining;
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private DevComponents.DotNetBar.PanelEx btnRemainOK;
|
||||
private DevComponents.DotNetBar.PanelEx pnlCancel;
|
||||
private System.Windows.Forms.Label lblShopId;
|
||||
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colShopAccount;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colNotes;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colMinus;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colProductRemaining;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colPlus;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colCookie;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colUser;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSubUser;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colGroupName;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colUploadAccount;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colBuyAccount;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colChatAccount;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colLoginStatus;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colGotoShop;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colShopOperate;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colRelogin;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colRelogin2;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colMultiLogin;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colApiAuth;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colBuyApiAuth;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colImportCookies;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colCopyCookies;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colUpload;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSubSa;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colEdit;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colDelete;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,616 @@
|
||||
using AllBase;
|
||||
using AllBase.Model.Param.TemuProductManage;
|
||||
using AllBase.Model.Result;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using TemuKJD.BLL;
|
||||
using TemuKJD.Extension;
|
||||
using TemuKJD.BaseForms;
|
||||
using Work;
|
||||
using NaiBa.Util;
|
||||
using TemuKJD.WXForms.ShopForms;
|
||||
|
||||
namespace TemuKJD.WXForms.AdminForms
|
||||
{
|
||||
public partial class WXAdminShopListForm : BaseForm
|
||||
{
|
||||
static WXAdminShopListForm inst = null;
|
||||
public static WXAdminShopListForm Instance
|
||||
{
|
||||
get { if (inst == null) inst = new WXAdminShopListForm(); return inst; }
|
||||
set { inst = value; }
|
||||
}
|
||||
|
||||
public static ConcurrentList<ShopLoginInfo> lstAdminShopInfo { get; set; } = new ConcurrentList<ShopLoginInfo>();
|
||||
|
||||
public WXAdminShopListForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
Instance = this;
|
||||
}
|
||||
|
||||
private void AdminShopForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.ucSplitPage1.PageChange += UcSplitPage1_PageChange;
|
||||
|
||||
this.dgvShop.AddSelectorColumn("colSelect");
|
||||
this.dgvShop.AddMergeColumnHeader(new List<string>() { /*"colMinus",*/ "colProductRemaining", "colPlus" }, "选品限额");
|
||||
this.dgvShop.AddMergeColumn(new List<string>() { /*"colMinus",*/ "colProductRemaining", "colPlus" });
|
||||
this.dgvShop.Columns["colMinus"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
|
||||
this.dgvShop.Columns["colPlus"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
|
||||
this.dgvShop.Columns["colPlus"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
|
||||
|
||||
|
||||
if (BaseClass.SaLevel != 1)
|
||||
{
|
||||
this.chkShowDelete.Visible = false;
|
||||
|
||||
dgvShop.Columns["colSubSa"].Visible = false;
|
||||
btnSetSubSa.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
bool firstLoad = true;
|
||||
private void AdminShopForm_VisibleChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (this.Visible == true && firstLoad)
|
||||
{
|
||||
firstLoad = false;
|
||||
this.pbLoading.Visible = true;
|
||||
SearchShop(this.ucSplitPage1.CurrentPage);
|
||||
}
|
||||
}
|
||||
|
||||
private void UcSplitPage1_PageChange(object obj)
|
||||
{
|
||||
SearchShop(this.ucSplitPage1.CurrentPage);
|
||||
}
|
||||
|
||||
public void SearchShop(int page)
|
||||
{
|
||||
List<string> shopIdList = GetCheckedShopIdList();
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.pbLoading.Visible = true;
|
||||
this.dgvShop.Rows.Clear();
|
||||
lstAdminShopInfo.Clear();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.pbLoading.Visible = true;
|
||||
this.dgvShop.Rows.Clear();
|
||||
lstAdminShopInfo.Clear();
|
||||
}
|
||||
Task.Run(() =>
|
||||
{
|
||||
int pageCount;
|
||||
var list = AdminGetServerShopLst(out pageCount, page);
|
||||
lstAdminShopInfo.AddRange(list);
|
||||
this.ucSplitPage1.TotalPage = pageCount;
|
||||
|
||||
foreach (var shop in lstAdminShopInfo)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
int rowIndex = this.dgvShop.Rows.Add(
|
||||
shopIdList.Contains(shop.ShopId + shop.UserName),
|
||||
shop.LoginName,
|
||||
shop.ShopId,
|
||||
shop.ShopAccount,
|
||||
shop.Notes,
|
||||
"-",
|
||||
shop.AddProductRemaining,
|
||||
"+",
|
||||
//"±",
|
||||
shop.Cookies,
|
||||
shop.UserName,
|
||||
shop.SubUserName,
|
||||
shop.GroupName,
|
||||
shop.UploadAccount,
|
||||
shop.BuyAccount,
|
||||
shop.ChatAccount,
|
||||
"",
|
||||
"进入",
|
||||
"检测",
|
||||
string.IsNullOrWhiteSpace(shop.LoginStatus) ? "未登录" : shop.LoginStatus.Trim(),
|
||||
string.IsNullOrWhiteSpace(shop.LoginStatus2) ? "国际版未登录" : shop.LoginStatus2.Trim(),
|
||||
"多重登录",
|
||||
shop.ApiAuthStatus,
|
||||
shop.BuyApiAuth.ApiAuthStatus,
|
||||
"导入Cookie",
|
||||
"复制Cookie",
|
||||
"上传",
|
||||
shop.OperateSubSaName,
|
||||
"编辑",
|
||||
"删除");
|
||||
}));
|
||||
}
|
||||
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.pbLoading.Visible = false;
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
private void btnSearch_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.ucSplitPage1.CurrentPage != 1)
|
||||
this.ucSplitPage1.CurrentPage = 1;
|
||||
else
|
||||
SearchShop(1);
|
||||
}
|
||||
|
||||
private void pnlEmpty_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.txtUserName.Text = "";
|
||||
this.txtLoginName.Text = "";
|
||||
this.txtNotes.Text = "";
|
||||
this.txtShopId.Text = "";
|
||||
this.txtShopName.Text = "";
|
||||
}
|
||||
|
||||
bool IsOperate = false;
|
||||
private void btnLoginSelect_Click(object sender, EventArgs e)
|
||||
{
|
||||
IsOperate = true;
|
||||
if (this.btnLoginSelect.Text == "登录选中")
|
||||
{
|
||||
List<string> shopLoginNameList = GetCheckedList();
|
||||
if (!shopLoginNameList.Any())
|
||||
{
|
||||
BaseMsgForm.ShowError("请选择需要登录的店铺");
|
||||
IsOperate = false;
|
||||
return;
|
||||
}
|
||||
|
||||
shopLoginNameList = shopLoginNameList.Distinct().ToList();
|
||||
foreach (var loginName in shopLoginNameList)
|
||||
{
|
||||
if (IsOperate == false)
|
||||
break;
|
||||
|
||||
var shopInfo = lstAdminShopInfo.FirstOrDefault(v => v.LoginName == loginName);
|
||||
if (shopInfo != null && !string.IsNullOrEmpty(shopInfo.LoginName) && !string.IsNullOrEmpty(shopInfo.Password))
|
||||
{
|
||||
WXAdminShopLoginForm shopLoginForm = new WXAdminShopLoginForm(shopInfo);
|
||||
shopLoginForm.openType = EnumOpenType.login;
|
||||
shopLoginForm.ShowDialog();
|
||||
}
|
||||
}
|
||||
if (shopLoginNameList.Count>0)
|
||||
{
|
||||
SearchShop(this.ucSplitPage1.CurrentPage);
|
||||
}
|
||||
}
|
||||
IsOperate = false;
|
||||
}
|
||||
|
||||
private void shopLoginForm_SaveComplete(object obj)
|
||||
{
|
||||
SearchShop(this.ucSplitPage1.CurrentPage);
|
||||
}
|
||||
|
||||
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
if (e.ColumnIndex < 0 || e.RowIndex < 0)
|
||||
return;
|
||||
string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText;
|
||||
string loginName = dgvShop.Rows[e.RowIndex].Cells["colLoginName"].Value.ParseToString();
|
||||
string accountId = dgvShop.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString();
|
||||
var shop = lstAdminShopInfo.FirstOrDefault(v => v.LoginName == loginName && v.ShopId == accountId);
|
||||
|
||||
switch (headerText)
|
||||
{
|
||||
case "检测":
|
||||
//CheckShopLoginAsync(new string[] { loginName });
|
||||
break;
|
||||
case "进入店铺":
|
||||
IsOperate = true;
|
||||
{
|
||||
WXAdminShopLoginForm adminLoginForm = new WXAdminShopLoginForm(shop);
|
||||
adminLoginForm.openType = EnumOpenType.manage;
|
||||
adminLoginForm.WindowState = FormWindowState.Maximized;
|
||||
adminLoginForm.InitUrl = "https://store.weixin.qq.com/shop/home";
|
||||
adminLoginForm.Show();
|
||||
}
|
||||
IsOperate = false;
|
||||
break;
|
||||
case "复制Cookie":
|
||||
List<CefSharp.Cookie> cooks = null;
|
||||
try { cooks = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(shop.Cookies); } catch (Exception ex) { }
|
||||
if (cooks == null)
|
||||
cooks = new List<CefSharp.Cookie>();
|
||||
|
||||
string cookJs = "";
|
||||
var keys = new string[] { "_qimei_uuid", "_qpsvr_localtk", "biz_magic", "biz_rand", "biz_ticket", "biz_token", "ptcz", "RK", "yyb_muid" };
|
||||
foreach (var shopCook in cooks)
|
||||
{
|
||||
var cookie = shopCook.Name + "=" + shopCook.Value;
|
||||
if (!keys.Any(k => cookie.StartsWith(k)))
|
||||
continue;
|
||||
cookJs += "\r\ndocument.cookie='" + cookie.Substring(0, Math.Max(0, cookie.IndexOf("="))) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';";
|
||||
}
|
||||
foreach (var shopCook in cooks)
|
||||
{
|
||||
var cookie = shopCook.Name + "=" + shopCook.Value;
|
||||
if (!keys.Any(k => cookie.StartsWith(k)))
|
||||
continue;
|
||||
if (!cookie.StartsWith("biz_magic") && !cookie.StartsWith("biz_rand") && !cookie.StartsWith("biz_ticket") && !cookie.StartsWith("biz_token"))
|
||||
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.qq.com; expires=" +
|
||||
DateTime.Now.AddMonths(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
|
||||
else
|
||||
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=store.weixin.qq.com; expires=" +
|
||||
DateTime.Now.AddMonths(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
|
||||
}
|
||||
cookJs += "\r\nsetTimeout(() => { window.location.href='https://store.weixin.qq.com/shop/goods/list'; }, 200)";
|
||||
Clipboard.SetDataObject(cookJs);
|
||||
BaseMsgForm.ShowInfo("复制成功");
|
||||
break;
|
||||
case "导入Cookie":
|
||||
WXShopUpdateCookieForm updateCookieForm = new WXShopUpdateCookieForm(shop);
|
||||
updateCookieForm.SaveComplete += UpdateCookieForm_SaveComplete;
|
||||
updateCookieForm.ShowDialog();
|
||||
break;
|
||||
case "删除":
|
||||
if (BaseMsgForm.ShowConfirm("确定删除店铺吗?删除后不可恢复!").DialogResult == DialogResult.Cancel)
|
||||
return;
|
||||
if (ShopBLL.AdminDelServerShop(shop))
|
||||
SearchShop(this.ucSplitPage1.CurrentPage);
|
||||
break;
|
||||
case "编辑":
|
||||
WXShopAddEditForm editForm = new WXShopAddEditForm(shop);
|
||||
editForm.SaveCompleteWithDescribe += EditForm_SaveCompleteWithDescribe;
|
||||
editForm.ShowDialog();
|
||||
break;
|
||||
case "登录":
|
||||
IsOperate = true;
|
||||
{
|
||||
WXAdminShopLoginForm shopLoginForm = new WXAdminShopLoginForm(shop);
|
||||
shopLoginForm.openType = EnumOpenType.login;
|
||||
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
|
||||
shopLoginForm.ShowDialog();
|
||||
}
|
||||
IsOperate = false;
|
||||
break;
|
||||
case "上传商品":
|
||||
IsOperate = true;
|
||||
{
|
||||
//UploadProduct(shop);
|
||||
}
|
||||
IsOperate = false;
|
||||
break;
|
||||
|
||||
case "+":
|
||||
case "±":
|
||||
this.lblAddProdRemaining.Text = shop.ShopAccount + " " + shop.ShopId + " 调整选品限额";
|
||||
this.lblShopId.Text = shop.ShopId;
|
||||
this.numAddRemaining.Value = shop.AddProductRemaining;
|
||||
this.pnlAddProdRemaining.Visible = true;
|
||||
break;
|
||||
case "":
|
||||
dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateCookieForm_SaveComplete(object obj)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
//CheckShopListLogin(new string[] { (obj as DouShopLoginInfo).LoginName });
|
||||
//RefreshDataGridView(false);
|
||||
SearchShop(this.ucSplitPage1.CurrentPage);
|
||||
});
|
||||
}
|
||||
|
||||
private void EditForm_SaveCompleteWithDescribe(object obj, object isAdd)
|
||||
{
|
||||
var shopInfo = obj as ShopLoginInfo;
|
||||
if (shopInfo != null)
|
||||
{
|
||||
if ((isAdd as bool?) == true)
|
||||
{
|
||||
var shop = lstAdminShopInfo.FirstOrDefault(v => v.LoginName == shopInfo.LoginName);
|
||||
if (shop != null)
|
||||
{
|
||||
BaseMsgForm.ShowError("店铺" + shopInfo.LoginName + "已存在!");
|
||||
}
|
||||
else
|
||||
{
|
||||
ShopBLL.AdminAddServerShop(shopInfo);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ShopBLL.AdminMdyServerShop(shopInfo);
|
||||
}
|
||||
SearchShop(this.ucSplitPage1.CurrentPage);
|
||||
}
|
||||
}
|
||||
|
||||
private List<string> GetCheckedList()
|
||||
{
|
||||
List<string> shopLoginNameList = new List<string>();
|
||||
for (int i = 0; i < dgvShop.Rows.Count; i++)
|
||||
{
|
||||
if (dgvShop.Rows[i].Cells["colSelect"].Value.ParseToBool())
|
||||
{
|
||||
string shopName = dgvShop.Rows[i].Cells["colLoginName"].Value.ParseToString();
|
||||
shopLoginNameList.Add(shopName);
|
||||
}
|
||||
}
|
||||
return shopLoginNameList;
|
||||
}
|
||||
|
||||
private List<string> GetCheckedShopIdList()
|
||||
{
|
||||
List<string> shopNameList = new List<string>();
|
||||
for (int i = 0; i < dgvShop.Rows.Count; i++)
|
||||
{
|
||||
if (dgvShop.Rows[i].Cells["colSelect"].Value.ParseToBool())
|
||||
{
|
||||
string shopName = dgvShop.Rows[i].Cells["colShopId"].Value.ParseToString();
|
||||
shopName += dgvShop.Rows[i].Cells["colUser"].Value.ParseToString();
|
||||
shopNameList.Add(shopName);
|
||||
}
|
||||
}
|
||||
return shopNameList;
|
||||
}
|
||||
|
||||
public List<ShopLoginInfo> AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 50)
|
||||
{
|
||||
List<ShopLoginInfo> list = new List<ShopLoginInfo>();
|
||||
pageCount = 1;
|
||||
|
||||
var url = BaseClass.BuildObjString("shop/admin_get_shop_list");
|
||||
var data = UserLogin.GetSignaturex() +
|
||||
"&page=" + page +
|
||||
"&page_size=" + pageSize +
|
||||
"&search_user_name=" + txtUserName.Text.Trim() +
|
||||
"&search_login_name=" + txtLoginName.Text.Trim() +
|
||||
"&search_notes=" + txtNotes.Text.Trim() +
|
||||
"&search_id=" + txtShopId.Text.Trim() +
|
||||
"&search_name=" + txtShopName.Text.Trim();
|
||||
if (BaseClass.SaLevel > 1)
|
||||
data += "&operate_sub_sa_name=" + BaseClass.UserName;
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
//if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
// html = GetHtml.PostUtf8(url, data);
|
||||
//if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
// html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html)
|
||||
|| !html.Contains("shop_id") || !html.Contains("shop_account") || !html.Contains("login_pass"))
|
||||
{
|
||||
return list;
|
||||
}
|
||||
|
||||
int count = BaseRegex.GetIntJson(ref html, "count");
|
||||
pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt();
|
||||
pageCount = Math.Max(pageCount, 1);
|
||||
|
||||
return ShopBLL.DeserializationShop(html);
|
||||
}
|
||||
|
||||
private void btnCheck_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.btnCheck.Text == "检测选中")
|
||||
{
|
||||
List<string> shopLoginNameList = GetCheckedList();
|
||||
if (!shopLoginNameList.Any())
|
||||
{
|
||||
BaseMsgForm.ShowError("请选择需要检测的店铺");
|
||||
return;
|
||||
}
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
CheckShopListLogin(shopLoginNameList.Distinct().ToArray());
|
||||
SearchShop(this.ucSplitPage1.CurrentPage);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检测店铺授权状态
|
||||
/// </summary>
|
||||
/// <param name="shopLoginNames"></param>
|
||||
/// <param name="isShowProgress"></param>
|
||||
public void CheckShopListLogin(string[] shopLoginNames, bool isShowProgress = true)
|
||||
{
|
||||
if (isShowProgress)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.pbLoading.Visible = true;
|
||||
this.statusBar.lblTaskStatus.Text = "正在检测...";
|
||||
this.statusBar.pgbTaskProgress.Maximum = shopLoginNames.Length;
|
||||
this.statusBar.UpdateProgressBar(0);
|
||||
}));
|
||||
}
|
||||
|
||||
var shops = lstAdminShopInfo.Where(s => shopLoginNames.Contains(s.LoginName));
|
||||
CheckShopLogin(shops.ToArray(), isShowProgress);
|
||||
|
||||
if (this.Created && isShowProgress)
|
||||
{
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
this.pbLoading.Visible = false;
|
||||
this.statusBar.lblTaskStatus.Text = "检测完毕";
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
public void CheckShopLogin(ShopLoginInfo[] shops, bool isShowProgress = true)
|
||||
{
|
||||
var shopLoginNames = shops.Select(s => s.LoginName).Distinct().ToArray();
|
||||
for (int i = 0; i < shopLoginNames.Length; i++)
|
||||
{
|
||||
var campanys = shops.Where(v => v.LoginName == shopLoginNames[i]).ToList();
|
||||
var shop = shops.FirstOrDefault(v => v.LoginName == shopLoginNames[i]);
|
||||
|
||||
// 先从服务端取最新cookie
|
||||
var serverCampanys = ShopBLL.AdminGetServerShopLstByIds(campanys.Select(c => c.ShopId).ToList());
|
||||
var serverShop = serverCampanys.FirstOrDefault();
|
||||
if (shop != null && serverShop != null)
|
||||
{
|
||||
shop.Cookies = serverShop.Cookies;
|
||||
shop.Cookies2 = serverShop.Cookies2;
|
||||
foreach (var sc in campanys)
|
||||
{
|
||||
sc.Cookies = serverShop.Cookies;
|
||||
sc.Cookies2 = serverShop.Cookies2;
|
||||
}
|
||||
}
|
||||
|
||||
if (shop != null)
|
||||
{
|
||||
var loginResult = WXShopListForm.CheckShopLogin(shop);
|
||||
if (loginResult.Contains("\"success\":true") && !loginResult.Contains("\"login\":true"))
|
||||
{
|
||||
shop.Cookies = "empty=true;";
|
||||
foreach (var sc in campanys)
|
||||
{
|
||||
sc.LoginStatus = "未登录";
|
||||
shop.Cookies = "empty=true;";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var sc in campanys)
|
||||
{
|
||||
sc.LoginStatus = "登录成功";
|
||||
sc.LastRefreshDate = DateTime.Now.ToString("yyyyMMdd");
|
||||
}
|
||||
}
|
||||
WXShopListForm.UpdateServerShopCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
|
||||
}
|
||||
if (this.Created && isShowProgress)
|
||||
{
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
this.statusBar.lblTaskStatus.Text = "正在检测...";
|
||||
this.statusBar.pgbTaskProgress.Value = (i + 1);
|
||||
this.statusBar.pgbTaskProgress.Text = (i + 1) + "/" + shopLoginNames.Length;
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void chkShowDelete_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if(chkShowDelete.Checked)
|
||||
{
|
||||
this.dgvShop.Columns["colEdit"].Visible = true;
|
||||
this.dgvShop.Columns["colDelete"].Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.dgvShop.Columns["colEdit"].Visible = false;
|
||||
this.dgvShop.Columns["colDelete"].Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnSetSubSa_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
var lstLoginName = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
|
||||
=> row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colLoginName"]?.Value.ToString()).ToList();
|
||||
var shopList = lstAdminShopInfo.Where(p => lstLoginName.Contains(p.LoginName)).ToArray();
|
||||
|
||||
if (shopList.Count() <= 0)
|
||||
{
|
||||
BaseMsgForm.ShowError("请选择要分配二级超管的店铺!");
|
||||
return;
|
||||
}
|
||||
|
||||
WXAdminShopAddSubSaForm subSaForm = new WXAdminShopAddSubSaForm(
|
||||
shopList.Select(p => p.LoginName.ToString()).ToList()
|
||||
);
|
||||
subSaForm.SaveComplete += SubSaForm_SaveComplete;
|
||||
subSaForm.ShowDialog();
|
||||
}
|
||||
|
||||
private void SubSaForm_SaveComplete(object subSaName)
|
||||
{
|
||||
// 同店铺下商品分配给同一个二级超管
|
||||
var lstLoginName = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
|
||||
=> row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colLoginName"]?.Value.ToString()).ToList();
|
||||
var prodList = lstAdminShopInfo.Where(p => lstLoginName.Contains(p.LoginName)).ToArray();
|
||||
|
||||
var rows = dgvShop.Rows.Cast<DataGridViewRow>().Where(row => lstLoginName.Contains(row.Cells["colLoginName"]?.Value.ParseToString()));
|
||||
foreach (var row in rows)
|
||||
{
|
||||
row.Cells["colSubSa"].Value = subSaName.ParseToString();
|
||||
}
|
||||
foreach (var p in prodList)
|
||||
{
|
||||
p.OperateSubSaName = subSaName.ParseToString();
|
||||
}
|
||||
}
|
||||
|
||||
private void dgvShop_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
private void btnRemainOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
var url = BaseClass.BuildObjString("shop/update_add_prod_remaining");
|
||||
var data = UserLogin.GetSignaturex() +
|
||||
"&remain_count=" + numAddRemaining.Text.Trim() +
|
||||
"&shop_ids=" + lblShopId.Text.Trim();
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (html.Contains("\"code\":200"))
|
||||
{
|
||||
foreach (DataGridViewRow row in this.dgvShop.Rows)
|
||||
{
|
||||
if (row.Cells["colShopId"].Value.ParseToString() == lblShopId.Text.Trim())
|
||||
{
|
||||
row.Cells["colProductRemaining"].Value = numAddRemaining.Text.Trim();
|
||||
}
|
||||
}
|
||||
foreach(var shop in lstAdminShopInfo)
|
||||
{
|
||||
if (shop.ShopId == lblShopId.Text.Trim())
|
||||
shop.AddProductRemaining = numAddRemaining.Text.Trim().ParseToInt();
|
||||
}
|
||||
this.pnlAddProdRemaining.Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var msg = BaseRegex.GetStringJson(ref html, "msg");
|
||||
if (string.IsNullOrEmpty(msg))
|
||||
msg = "选品限额修改失败!";
|
||||
BaseMsgForm.ShowError(msg);
|
||||
}
|
||||
}
|
||||
|
||||
private void pnlCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.pnlAddProdRemaining.Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,207 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colLoginName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colShopAccount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colMinus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colProductRemaining.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colPlus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colCookie.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colUser.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSubUser.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colGroupName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colUploadAccount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colBuyAccount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colChatAccount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colLoginStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colGotoShop.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colShopOperate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colRelogin.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colRelogin2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colMultiLogin.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colApiAuth.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colBuyApiAuth.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colImportCookies.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colCopyCookies.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colUpload.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSubSa.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colEdit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colDelete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -0,0 +1,384 @@
|
||||
namespace TemuKJD.WXForms.AdminForms
|
||||
{
|
||||
partial class WXAdminShopLoginForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXAdminShopLoginForm));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.pnlMultiLogin = new System.Windows.Forms.Panel();
|
||||
this.cmbMultiCookieName = new DevComponents.DotNetBar.Controls.ComboBoxEx();
|
||||
this.btnMultiLogin = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnDel = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnLoginAgain = new TemuKJD.UserControls.ButtonEx();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.btnCopyPassword = new TemuKJD.UserControls.ButtonEx();
|
||||
this.btnCopyUserName = new TemuKJD.UserControls.ButtonEx();
|
||||
this.txtPassWord = new System.Windows.Forms.TextBox();
|
||||
this.txtUserName = new System.Windows.Forms.TextBox();
|
||||
this.btnStop = new TemuKJD.UserControls.ButtonEx();
|
||||
this.btnReload = new TemuKJD.UserControls.ButtonEx();
|
||||
this.chkCloseAfterLogin = new DevComponents.DotNetBar.Controls.CheckBoxX();
|
||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||
this.txtAddress = new System.Windows.Forms.TextBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.pnlMultiLogin.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
|
||||
this.splitContainer2.Panel1.SuspendLayout();
|
||||
this.splitContainer2.Panel2.SuspendLayout();
|
||||
this.splitContainer2.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.pnlMultiLogin);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnLoginAgain);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label2);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label1);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnCopyPassword);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnCopyUserName);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.txtPassWord);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.txtUserName);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnStop);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnReload);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.chkCloseAfterLogin);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1438, 736);
|
||||
this.splitContainer1.SplitterDistance = 669;
|
||||
this.splitContainer1.SplitterWidth = 3;
|
||||
this.splitContainer1.TabIndex = 4;
|
||||
//
|
||||
// pnlMultiLogin
|
||||
//
|
||||
this.pnlMultiLogin.Controls.Add(this.cmbMultiCookieName);
|
||||
this.pnlMultiLogin.Controls.Add(this.btnMultiLogin);
|
||||
this.pnlMultiLogin.Controls.Add(this.btnDel);
|
||||
this.pnlMultiLogin.Location = new System.Drawing.Point(5, 634);
|
||||
this.pnlMultiLogin.Name = "pnlMultiLogin";
|
||||
this.pnlMultiLogin.Size = new System.Drawing.Size(251, 31);
|
||||
this.pnlMultiLogin.TabIndex = 461;
|
||||
this.pnlMultiLogin.Visible = false;
|
||||
//
|
||||
// cmbMultiCookieName
|
||||
//
|
||||
this.cmbMultiCookieName.DisplayMember = "Text";
|
||||
this.cmbMultiCookieName.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
||||
this.cmbMultiCookieName.FormattingEnabled = true;
|
||||
this.cmbMultiCookieName.ItemHeight = 18;
|
||||
this.cmbMultiCookieName.Location = new System.Drawing.Point(3, 3);
|
||||
this.cmbMultiCookieName.Name = "cmbMultiCookieName";
|
||||
this.cmbMultiCookieName.Size = new System.Drawing.Size(158, 24);
|
||||
this.cmbMultiCookieName.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.cmbMultiCookieName.TabIndex = 379;
|
||||
this.cmbMultiCookieName.Text = "cookie1";
|
||||
//
|
||||
// btnMultiLogin
|
||||
//
|
||||
this.btnMultiLogin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnMultiLogin.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnMultiLogin.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnMultiLogin.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnMultiLogin.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnMultiLogin.Location = new System.Drawing.Point(185, 3);
|
||||
this.btnMultiLogin.Name = "btnMultiLogin";
|
||||
this.btnMultiLogin.Size = new System.Drawing.Size(60, 24);
|
||||
this.btnMultiLogin.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnMultiLogin.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnMultiLogin.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnMultiLogin.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||
this.btnMultiLogin.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
|
||||
this.btnMultiLogin.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
|
||||
this.btnMultiLogin.Style.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.btnMultiLogin.Style.GradientAngle = 90;
|
||||
this.btnMultiLogin.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnMultiLogin.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnMultiLogin.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnMultiLogin.TabIndex = 460;
|
||||
this.btnMultiLogin.Text = "多重登录";
|
||||
this.btnMultiLogin.Click += new System.EventHandler(this.btnMultiLogin_Click);
|
||||
//
|
||||
// btnDel
|
||||
//
|
||||
this.btnDel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnDel.CanvasColor = System.Drawing.SystemColors.Control;
|
||||
this.btnDel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnDel.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnDel.Location = new System.Drawing.Point(163, 3);
|
||||
this.btnDel.Name = "btnDel";
|
||||
this.btnDel.Size = new System.Drawing.Size(20, 24);
|
||||
this.btnDel.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnDel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.btnDel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.btnDel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
||||
this.btnDel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnDel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||
this.btnDel.Style.GradientAngle = 90;
|
||||
this.btnDel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnDel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnDel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnDel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnDel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.btnDel.TabIndex = 409;
|
||||
this.btnDel.Text = "删";
|
||||
this.btnDel.Click += new System.EventHandler(this.btnDel_Click);
|
||||
//
|
||||
// btnLoginAgain
|
||||
//
|
||||
this.btnLoginAgain.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnLoginAgain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnLoginAgain.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnLoginAgain.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnLoginAgain.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnLoginAgain.ForeColor = System.Drawing.Color.White;
|
||||
this.btnLoginAgain.Location = new System.Drawing.Point(1155, 31);
|
||||
this.btnLoginAgain.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnLoginAgain.Name = "btnLoginAgain";
|
||||
this.btnLoginAgain.Size = new System.Drawing.Size(91, 25);
|
||||
this.btnLoginAgain.TabIndex = 462;
|
||||
this.btnLoginAgain.Text = "重新登录";
|
||||
this.btnLoginAgain.UseVisualStyleBackColor = false;
|
||||
this.btnLoginAgain.Click += new System.EventHandler(this.btnLoginAgain_Click);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Location = new System.Drawing.Point(9, 35);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(44, 17);
|
||||
this.label2.TabIndex = 378;
|
||||
this.label2.Text = "密码";
|
||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(9, 8);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(44, 17);
|
||||
this.label1.TabIndex = 377;
|
||||
this.label1.Text = "用户名";
|
||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
//
|
||||
// btnCopyPassword
|
||||
//
|
||||
this.btnCopyPassword.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnCopyPassword.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnCopyPassword.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnCopyPassword.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnCopyPassword.ForeColor = System.Drawing.Color.White;
|
||||
this.btnCopyPassword.Location = new System.Drawing.Point(276, 31);
|
||||
this.btnCopyPassword.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnCopyPassword.Name = "btnCopyPassword";
|
||||
this.btnCopyPassword.Size = new System.Drawing.Size(57, 25);
|
||||
this.btnCopyPassword.TabIndex = 376;
|
||||
this.btnCopyPassword.Text = "复制";
|
||||
this.btnCopyPassword.UseVisualStyleBackColor = false;
|
||||
this.btnCopyPassword.Click += new System.EventHandler(this.btnCopyPassword_Click);
|
||||
//
|
||||
// btnCopyUserName
|
||||
//
|
||||
this.btnCopyUserName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnCopyUserName.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnCopyUserName.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnCopyUserName.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnCopyUserName.ForeColor = System.Drawing.Color.White;
|
||||
this.btnCopyUserName.Location = new System.Drawing.Point(276, 4);
|
||||
this.btnCopyUserName.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnCopyUserName.Name = "btnCopyUserName";
|
||||
this.btnCopyUserName.Size = new System.Drawing.Size(57, 25);
|
||||
this.btnCopyUserName.TabIndex = 375;
|
||||
this.btnCopyUserName.Text = "复制";
|
||||
this.btnCopyUserName.UseVisualStyleBackColor = false;
|
||||
this.btnCopyUserName.Click += new System.EventHandler(this.btnCopyUserName_Click);
|
||||
//
|
||||
// txtPassWord
|
||||
//
|
||||
this.txtPassWord.Location = new System.Drawing.Point(53, 32);
|
||||
this.txtPassWord.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.txtPassWord.Name = "txtPassWord";
|
||||
this.txtPassWord.PasswordChar = '●';
|
||||
this.txtPassWord.ReadOnly = true;
|
||||
this.txtPassWord.Size = new System.Drawing.Size(221, 23);
|
||||
this.txtPassWord.TabIndex = 374;
|
||||
//
|
||||
// txtUserName
|
||||
//
|
||||
this.txtUserName.Location = new System.Drawing.Point(53, 5);
|
||||
this.txtUserName.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.txtUserName.Name = "txtUserName";
|
||||
this.txtUserName.ReadOnly = true;
|
||||
this.txtUserName.Size = new System.Drawing.Size(221, 23);
|
||||
this.txtUserName.TabIndex = 373;
|
||||
//
|
||||
// btnStop
|
||||
//
|
||||
this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnStop.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnStop.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnStop.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnStop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnStop.ForeColor = System.Drawing.Color.White;
|
||||
this.btnStop.Location = new System.Drawing.Point(1342, 31);
|
||||
this.btnStop.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnStop.Name = "btnStop";
|
||||
this.btnStop.Size = new System.Drawing.Size(91, 25);
|
||||
this.btnStop.TabIndex = 372;
|
||||
this.btnStop.Text = "停止操作";
|
||||
this.btnStop.UseVisualStyleBackColor = false;
|
||||
this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
|
||||
//
|
||||
// btnReload
|
||||
//
|
||||
this.btnReload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnReload.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnReload.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnReload.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnReload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnReload.ForeColor = System.Drawing.Color.White;
|
||||
this.btnReload.Location = new System.Drawing.Point(1249, 31);
|
||||
this.btnReload.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnReload.Name = "btnReload";
|
||||
this.btnReload.Size = new System.Drawing.Size(91, 25);
|
||||
this.btnReload.TabIndex = 371;
|
||||
this.btnReload.Text = "重新加载";
|
||||
this.btnReload.UseVisualStyleBackColor = false;
|
||||
this.btnReload.Click += new System.EventHandler(this.btnReload_Click);
|
||||
//
|
||||
// chkCloseAfterLogin
|
||||
//
|
||||
this.chkCloseAfterLogin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
//
|
||||
//
|
||||
//
|
||||
this.chkCloseAfterLogin.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.chkCloseAfterLogin.Checked = true;
|
||||
this.chkCloseAfterLogin.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.chkCloseAfterLogin.CheckValue = "Y";
|
||||
this.chkCloseAfterLogin.Location = new System.Drawing.Point(1306, 6);
|
||||
this.chkCloseAfterLogin.Name = "chkCloseAfterLogin";
|
||||
this.chkCloseAfterLogin.Size = new System.Drawing.Size(135, 23);
|
||||
this.chkCloseAfterLogin.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.chkCloseAfterLogin.TabIndex = 8;
|
||||
this.chkCloseAfterLogin.Text = "登录成功后关闭窗口";
|
||||
//
|
||||
// splitContainer2
|
||||
//
|
||||
this.splitContainer2.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer2.Location = new System.Drawing.Point(1, 33);
|
||||
this.splitContainer2.Name = "splitContainer2";
|
||||
this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer2.Panel1
|
||||
//
|
||||
this.splitContainer2.Panel1.Controls.Add(this.txtAddress);
|
||||
//
|
||||
// splitContainer2.Panel2
|
||||
//
|
||||
this.splitContainer2.Panel2.Controls.Add(this.splitContainer1);
|
||||
this.splitContainer2.Size = new System.Drawing.Size(1438, 766);
|
||||
this.splitContainer2.SplitterDistance = 26;
|
||||
this.splitContainer2.TabIndex = 5;
|
||||
//
|
||||
// txtAddress
|
||||
//
|
||||
this.txtAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtAddress.Location = new System.Drawing.Point(3, 3);
|
||||
this.txtAddress.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.txtAddress.Name = "txtAddress";
|
||||
this.txtAddress.Size = new System.Drawing.Size(1432, 23);
|
||||
this.txtAddress.TabIndex = 7;
|
||||
this.txtAddress.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtAddress_KeyDown);
|
||||
//
|
||||
// PDDShopLoginForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(1440, 800);
|
||||
this.Controls.Add(this.splitContainer2);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "PDDShopLoginForm";
|
||||
this.ShowMaximizeBox = true;
|
||||
this.Text = "店铺登录";
|
||||
this.TitleText = "店铺登录";
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.ShopLoginForm_FormClosed);
|
||||
this.Load += new System.EventHandler(this.ShopLoginForm_Load);
|
||||
this.Controls.SetChildIndex(this.splitContainer2, 0);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.pnlMultiLogin.ResumeLayout(false);
|
||||
this.splitContainer2.Panel1.ResumeLayout(false);
|
||||
this.splitContainer2.Panel1.PerformLayout();
|
||||
this.splitContainer2.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
|
||||
this.splitContainer2.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private UserControls.ButtonEx btnStop;
|
||||
private UserControls.ButtonEx btnReload;
|
||||
private System.Windows.Forms.TextBox txtPassWord;
|
||||
private System.Windows.Forms.TextBox txtUserName;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private UserControls.ButtonEx btnCopyPassword;
|
||||
private UserControls.ButtonEx btnCopyUserName;
|
||||
private System.Windows.Forms.SplitContainer splitContainer2;
|
||||
private System.Windows.Forms.TextBox txtAddress;
|
||||
private UserControls.ButtonEx btnLoginAgain;
|
||||
public DevComponents.DotNetBar.Controls.CheckBoxX chkCloseAfterLogin;
|
||||
private System.Windows.Forms.Panel pnlMultiLogin;
|
||||
private DevComponents.DotNetBar.Controls.ComboBoxEx cmbMultiCookieName;
|
||||
private DevComponents.DotNetBar.PanelEx btnMultiLogin;
|
||||
private DevComponents.DotNetBar.PanelEx btnDel;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,903 @@
|
||||
using AllBase;
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model.Result;
|
||||
using CefSharp;
|
||||
using CefSharp.WinForms;
|
||||
//using TemuKJD.DashBoardForms;
|
||||
using TemuKJD.Helper;
|
||||
using TemuKJD.BaseForms;
|
||||
using Microsoft.Win32;
|
||||
using NaiBa.CefHelper;
|
||||
using NaiBa.CefHelper.Handler;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
//using System.Web.Hosting;
|
||||
using System.Windows.Forms;
|
||||
using Work;
|
||||
using Work.BLL.Tools;
|
||||
using TemuKJD.BLL;
|
||||
using NaiBa.Util;
|
||||
using TemuKJD.WXForms.ShopForms;
|
||||
|
||||
namespace TemuKJD.WXForms.AdminForms
|
||||
{
|
||||
public enum EnumOpenType
|
||||
{
|
||||
login,
|
||||
manage,
|
||||
refresh_cookie,
|
||||
}
|
||||
public partial class WXAdminShopLoginForm : LRBaseForm
|
||||
{
|
||||
public static WXAdminShopLoginForm shopLoginInstance { get; set; } = null;
|
||||
|
||||
public int CloseAfterSecond { get; set; }
|
||||
public EnumOpenType openType = EnumOpenType.manage;
|
||||
public bool isMultiLogin = false;
|
||||
public string MultiLoginCookieName = "";
|
||||
public string InitUrl = "";
|
||||
private string shopCookieHead = "qq.com";
|
||||
private string shopLoginUrl = "https://store.weixin.qq.com/shop?redirect_url=%2Fhome";
|
||||
private string shopMainUrl = "https://store.weixin.qq.com/shop/home";
|
||||
public ChromiumWebBrowser cefWebBrowser = null;
|
||||
private ShopLoginInfo shop = null;
|
||||
private ConcurrentList<ShopCompany> lstShopCompany = new ConcurrentList<ShopCompany>();
|
||||
private string currentUrl = "";
|
||||
|
||||
public WXAdminShopLoginForm(ShopLoginInfo shopInfo)
|
||||
{
|
||||
shopLoginInstance = this;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
this.shop = shopInfo;
|
||||
this.txtUserName.Text = (shopInfo?.LoginName).ParseToString();
|
||||
this.txtPassWord.Text = DataOpenSSL.DecryptString((shopInfo?.Password).ParseToString());
|
||||
}
|
||||
|
||||
private void ShopLoginForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.splitContainer1.SplitterDistance = this.splitContainer1.Height - 62;
|
||||
|
||||
if (isMultiLogin && shop != null)
|
||||
{
|
||||
this.pnlMultiLogin.Visible = true;
|
||||
InitMultiLoginCookies();
|
||||
}
|
||||
|
||||
if (CloseAfterSecond > 0)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
Thread.Sleep(1000 * CloseAfterSecond);
|
||||
if (this.Created)
|
||||
{
|
||||
Invoke(new Action(() => { this.Close(); }));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!isMultiLogin)
|
||||
AutoLogin();
|
||||
|
||||
CheckAndSaveShop(); //判断登录是否成功,成功则保存店铺信息和店铺cookie
|
||||
//ClosePopWindow(); //自动关闭弹窗
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 判断登录,保存店铺
|
||||
/// </summary>
|
||||
private void CheckAndSaveShop()
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
// 自动判断是否登录成功,登录成功后记录cookie保存到服务端。
|
||||
while (this.Created)
|
||||
{
|
||||
Thread.Sleep(3000);
|
||||
|
||||
if (!this.Created)
|
||||
break;
|
||||
|
||||
if (currentUrl.TrimEnd('/') == shopMainUrl)
|
||||
{
|
||||
if (!cefWebBrowser.GetBrowser().MainFrame.IsValid)
|
||||
continue;
|
||||
|
||||
if (!lstShopCompany.Any())
|
||||
continue;
|
||||
else // 检测到登录成功后
|
||||
{
|
||||
string cookies = "";
|
||||
List<Cookie> cookieList = CEFBrowser.GetCookieList(shopCookieHead, cefWebBrowser.GetCookieManager(null));
|
||||
foreach (var cookie in cookieList)
|
||||
{
|
||||
cookie.Domain = cookie.Domain.Replace(".store.weixin.qq.com", "store.weixin.qq.com");
|
||||
}
|
||||
List<Cookie> cookieListNew = new List<Cookie>();
|
||||
if (cookieList != null && cookieList.Count > 0)
|
||||
{
|
||||
foreach (var cookie in cookieList)
|
||||
{
|
||||
cookies += cookie.Name + "=" + cookie.Value + "; ";
|
||||
cookieListNew.Add(cookie);
|
||||
}
|
||||
cookies = JsonHelper.SerializeObject(cookieListNew);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(cookies))
|
||||
{
|
||||
var lstShopCompanyCopy = lstShopCompany.ToList();
|
||||
|
||||
foreach (ShopCompany sc in lstShopCompanyCopy)
|
||||
{
|
||||
ShopLoginInfo newShop = new ShopLoginInfo()
|
||||
{
|
||||
LoginName = shop?.LoginName ?? sc.AccountId,
|
||||
Password = shop?.Password,
|
||||
GroupName = shop?.GroupName,
|
||||
ShopAccount = sc.AccountName,
|
||||
ShopId = sc.AccountId,
|
||||
SubUserName = shop?.SubUserName,
|
||||
Notes = shop?.Notes,
|
||||
openid = sc.openid,
|
||||
};
|
||||
|
||||
var oldShop = shop;
|
||||
if (oldShop.ShopId == newShop.ShopId && (newShop.ShopAccount != oldShop.ShopAccount || newShop.openid != oldShop.openid))
|
||||
{
|
||||
oldShop.ShopId = newShop.ShopId;
|
||||
oldShop.LoginName = newShop.LoginName;
|
||||
oldShop.ShopAccount = newShop.ShopAccount;
|
||||
oldShop.openid = newShop.openid;
|
||||
|
||||
// 店铺更新写入到服务端
|
||||
var url = BaseClass.BuildObjString("shop/mdy_shop");
|
||||
var data = UserLogin.GetSignaturex()
|
||||
+ "&login_name=" + oldShop.LoginName
|
||||
+ "&shop_id=" + oldShop.ShopId
|
||||
+ "&shop_account=" + oldShop.ShopAccount;
|
||||
var result = GetHtml.PostUtf8(url, data);
|
||||
}
|
||||
}
|
||||
shop.LoginStatus = "登录成功";
|
||||
shop.Cookies = cookies;
|
||||
shop.LastRefreshDate = DateTime.Now.ToString("yyyyMMdd");
|
||||
// 店铺cookie写入服务端,多店共用一个登录账号一组cookie
|
||||
WXShopListForm.UpdateServerShopCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
|
||||
|
||||
OnSaveComplete(shop);
|
||||
if (this.Created && this.chkCloseAfterLogin.Checked)
|
||||
{
|
||||
Invoke(new Action(() => { this.Close(); }));
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 自动关闭弹窗
|
||||
/// </summary>
|
||||
private void ClosePopWindow()
|
||||
{
|
||||
// 关闭弹窗
|
||||
Task.Run(() =>
|
||||
{
|
||||
var sleepTime = 2500;
|
||||
int i = 0;
|
||||
while (true && i++ < 50)
|
||||
{
|
||||
try
|
||||
{
|
||||
Thread.Sleep(sleepTime);
|
||||
var jsStr1 = "function ClosePopWindow(txt) {\r\n" +
|
||||
" var result = 'no_pop'\r\n" +
|
||||
" var item = document.getElementsByClassName(txt);\r\n" +
|
||||
" for(i = 0; i < item.length; i++) {\r\n" +
|
||||
" item[i].click();\r\n" +
|
||||
" result = 'success'\r\n" +
|
||||
" }\r\n" +
|
||||
" return result;\r\n" +
|
||||
"}\r\n" +
|
||||
"ClosePopWindow('anticon-close-circle');\r\n" +
|
||||
"ClosePopWindow('ant-modal-close-x');\r\n";
|
||||
var jsStr2 = "function clickPopWindow(txt) {\r\n"
|
||||
+ "var child = document.body.firstElementChild;\r\n"
|
||||
+ "var element1 = null;\r\n"
|
||||
+ " while (child) {\r\n"
|
||||
+ " if (child.innerHTML.indexOf(txt) >= 0) {\r\n"
|
||||
+ " element1 = child;\r\n"
|
||||
+ " if (child.firstElementChild) {\r\n"
|
||||
+ " child = child.firstElementChild; continue;\r\n"
|
||||
+ " } else break;\r\n"
|
||||
+ " }\r\n"
|
||||
+ " child = child.nextElementSibling;\r\n"
|
||||
+ " }\r\n"
|
||||
+ " if (element1) {\r\n"
|
||||
+ " element1.click(); return 'success';\r\n"
|
||||
+ " } else return 'no_pop';\r\n"
|
||||
+ "}\r\n"
|
||||
+ "clickPopWindow('我知道了');\r\n"
|
||||
+ "clickPopWindow('知道了');\r\n";
|
||||
if (cefWebBrowser != null && cefWebBrowser.IsBrowserInitialized)
|
||||
{
|
||||
var t1 = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsStr1);
|
||||
t1.Wait();
|
||||
var t2 = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsStr2);
|
||||
t2.Wait();
|
||||
if (t1.Result?.Result?.ToString() == "success" || t2.Result?.Result?.ToString() == "success")
|
||||
sleepTime = Randomx.GetId(550, 650);
|
||||
else
|
||||
sleepTime = Randomx.GetId(1500, 2000);
|
||||
}
|
||||
}
|
||||
catch (Exception ex) { }
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 自动登录店铺后台
|
||||
/// </summary>
|
||||
private void AutoLogin()
|
||||
{
|
||||
if (shop == null)
|
||||
return;
|
||||
|
||||
if (cefWebBrowser == null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(InitUrl))
|
||||
cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(InitUrl, false);
|
||||
else
|
||||
cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(shopMainUrl, false);
|
||||
CustomResourceRequestHandlerLocal resourceRequestHandler = new CustomResourceRequestHandlerLocal();
|
||||
resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete;
|
||||
resourceRequestHandler.BeforeResourceLoadEvent += RequestHandler_BeforeResourceLoad;
|
||||
cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
|
||||
var lifeSapnHandler = new LifeSpanHandlerLocal(PopWindowType.SelfWindow);
|
||||
cefWebBrowser.LifeSpanHandler = lifeSapnHandler;
|
||||
cefWebBrowser.KeyboardHandler = new KeyboardHandler();
|
||||
cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd;
|
||||
cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged;
|
||||
cefWebBrowser.LoadError += CefWebBrowser_LoadError;
|
||||
cefWebBrowser.Dock = DockStyle.Fill;
|
||||
|
||||
//js绑定C#对象
|
||||
WXShopBrowserObject shopObj = new WXShopBrowserObject();
|
||||
shopObj.OnInfoReceived += ShopObj_OnInfoReceived;
|
||||
CefSharpSettings.WcfEnabled = true;
|
||||
cefWebBrowser.JavascriptObjectRepository.Register(
|
||||
name: "shopObj",
|
||||
objectToBind: shopObj,
|
||||
isAsync: false,
|
||||
options: new BindingOptions { Binder = BindingOptions.DefaultBinder.Binder /*CamelCaseJavascriptNames = false*/ /*cef79*/ }
|
||||
);
|
||||
|
||||
List<Cookie> cookieLst = new List<Cookie>();
|
||||
try
|
||||
{
|
||||
if (shop != null)
|
||||
{
|
||||
cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(shop.Cookies.ParseToString());
|
||||
if (cookieLst == null)
|
||||
cookieLst = new List<Cookie>();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
splitContainer1.Panel1.Controls.Add(cefWebBrowser);
|
||||
//cefWebBrowser.Load(shopMainUrl);
|
||||
}));
|
||||
// cef138必须init后方可设置或删除cookie
|
||||
while (!cefWebBrowser.IsBrowserInitialized || !cefWebBrowser.GetBrowser().MainFrame.IsValid)
|
||||
Thread.Sleep(20);
|
||||
CEFBrowser.DeleteCookie(cefWebBrowser.GetCookieManager(null));
|
||||
|
||||
//cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager
|
||||
//if (this.openType != EnumOpenType.login)
|
||||
{
|
||||
//var t = CEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), cefWebBrowser.GetCookieManager(null));
|
||||
foreach (var cook in cookieLst)
|
||||
{
|
||||
var t = CEFBrowser.SetCookieAsync(cook.Domain, cook.Name + "=" + cook.Value + ";", cefWebBrowser.GetCookieManager(null));
|
||||
t.Wait(5000);
|
||||
}
|
||||
}
|
||||
|
||||
//根据登录的具体店铺设置local storage
|
||||
if (!string.IsNullOrEmpty(shop?.ShopId))
|
||||
{
|
||||
//var storageJsCode = "window.localStorage.setItem('" + "mall-info-id" + "', '" + shop.ShopId + "');\r\n";
|
||||
//storageJsCode += "window.localStorage.setItem('" + "agentseller-mall-info-id" + "', '" + shop.ShopId + "');\r\n";
|
||||
//while (!cefWebBrowser.IsBrowserInitialized || !cefWebBrowser.GetBrowser().MainFrame.IsValid)
|
||||
// Thread.Sleep(20);
|
||||
//cefWebBrowser.GetBrowser().MainFrame.ExecuteJavaScriptAsync(storageJsCode);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(InitUrl))
|
||||
cefWebBrowser.Load(InitUrl);
|
||||
else
|
||||
cefWebBrowser.Load(shopMainUrl);
|
||||
|
||||
//不是登录的话就此返回
|
||||
if (openType != EnumOpenType.login)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
chkCloseAfterLogin.Visible = false;
|
||||
btnLoginAgain.Visible = false;
|
||||
}));
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 50; i++)
|
||||
{
|
||||
if (cefWebBrowser.IsLoading)
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
Thread.Sleep(Randomx.GetId(1500,2000));
|
||||
|
||||
if (!this.Created)
|
||||
return;
|
||||
|
||||
while (!cefWebBrowser.Address.StartsWith(shopLoginUrl))
|
||||
{
|
||||
Thread.Sleep(1000);
|
||||
if (!this.Created)
|
||||
return;
|
||||
}
|
||||
|
||||
CEFBrowser.DeleteCookie(cefWebBrowser.GetCookieManager(null));
|
||||
// 扫码登录,无输入密码环节
|
||||
// InputUserNameAndPassword(cefWebBrowser, shop.LoginName, DataOpenSSL.DecryptString(shop.Password));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void ShopObj_OnInfoReceived(string information)
|
||||
{
|
||||
//BaseMsgForm.ShowInfo(information);
|
||||
if (!string.IsNullOrEmpty(information))
|
||||
cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync("alert('" + information + "');");
|
||||
}
|
||||
|
||||
private void CefWebBrowser_LoadError(object sender, CefSharp.LoadErrorEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e)
|
||||
{
|
||||
if (this.Created && !this.Disposing && !this.IsDisposed)
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
currentUrl = e.Address;
|
||||
txtAddress.Text = e.Address;
|
||||
}));
|
||||
}
|
||||
|
||||
private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
|
||||
{
|
||||
//js绑定C#对象 html页面内声明绑定的C#对象
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("(function(){");
|
||||
sb.Append("CefSharp.BindObjectAsync('shopObj');");
|
||||
sb.Append("})();");
|
||||
//cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString());
|
||||
}
|
||||
|
||||
//public Func<object, string, string, request, bool> BeforeResourceLoadEvent; // sender, requestUrl, postData, request, true(表示取消执行)
|
||||
private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request)
|
||||
{
|
||||
if (url == "https://store.weixin.qq.com/shop/home" && this.openType == EnumOpenType.login)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
if (shop == null)
|
||||
return;
|
||||
|
||||
var data = responseData;
|
||||
|
||||
var index = data.IndexOf("window.__INITIAL_PINIA_DATA__=") + "window.__INITIAL_PINIA_DATA__=".Length;
|
||||
var indexEnd = data.IndexOf(";window.__USE_VITE__=");
|
||||
if (index < 1000)
|
||||
{
|
||||
//BaseMsgForm.ShowError("cookie已失效!");
|
||||
return;
|
||||
}
|
||||
var dataStr = data.Substring(index, indexEnd - index);
|
||||
dataStr = GetHtml.Unicode2String(dataStr);
|
||||
|
||||
var shopId = BaseRegex.GetStringJson(ref data, "appid");
|
||||
var nickName = BaseRegex.GetStringJson(ref data, "nickName");
|
||||
var openId = BaseRegex.GetStringJson(ref data, "openid"); // oGu7k7HxmUyOmc1X6VM7GQwS-9cI
|
||||
if (shop != null && shop.ShopId != shopId)
|
||||
{
|
||||
BaseMsgForm.ShowError("cookie与店铺不匹配,请核对店铺!");
|
||||
return;
|
||||
}
|
||||
|
||||
ShopCompany sc = new ShopCompany()
|
||||
{
|
||||
UserName = BaseClass.UserName, // 登录的用户信息
|
||||
AccountId = shopId,
|
||||
AccountName = nickName,
|
||||
LoginName = shopId,
|
||||
openid = openId,
|
||||
LoginStatus = "登录成功",
|
||||
};
|
||||
this.lstShopCompany.RemoveAll(s => s.AccountId == sc.AccountId);
|
||||
this.lstShopCompany.Add(sc);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 自动登录
|
||||
/// </summary>
|
||||
/// <param name="webBrowser"></param>
|
||||
/// <param name="_account"></param>
|
||||
/// <param name="_password"></param>
|
||||
private void InputUserNameAndPassword(ChromiumWebBrowser webBrowser, string _account, string _password)
|
||||
{
|
||||
webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sGetElementWithText);
|
||||
|
||||
var jsStr0 = "var clickBox1 = getElementWithText('账号登录'); clickBox1.click()";
|
||||
var response0 = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr0);
|
||||
response0.Wait(1000);
|
||||
Thread.Sleep(Randomx.GetId(500, 1000));
|
||||
|
||||
string jsStr1 = "function getInputItem () {var usernameId = document.getElementById('usernameId'); if (usernameId) return 'true';} getInputItem();";
|
||||
Task<JavascriptResponse> response1 = null;
|
||||
while (response1?.Result?.Result == null || !response1.Result.Result.ParseToString().Contains("true"))
|
||||
{
|
||||
Thread.Sleep(250);
|
||||
if (!this.Created)
|
||||
return;
|
||||
|
||||
response1 = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr1);
|
||||
response1.Wait(5000);
|
||||
|
||||
if (!this.Created)
|
||||
return;
|
||||
}
|
||||
|
||||
webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sInputValueChange2);
|
||||
|
||||
jsStr1 = "var usernameId = document.getElementById('usernameId'); " +
|
||||
"changeReactInputValue(usernameId,'" + _account + "');";
|
||||
response1 = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr1);
|
||||
response1.Wait(1000);
|
||||
Thread.Sleep(Randomx.GetId(500, 1000));
|
||||
|
||||
string jsStr = "var passwordId = document.getElementById('passwordId'); "+
|
||||
"changeReactInputValue(passwordId,'" + _password + "');";
|
||||
var response = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
|
||||
response.Wait(1000);
|
||||
Thread.Sleep(Randomx.GetId(500, 1000));
|
||||
|
||||
jsStr = "var clickBox = getElementWithText('我已阅读并同意'); " +
|
||||
"clickBox.click()";
|
||||
response = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
|
||||
response.Wait(1000);
|
||||
Thread.Sleep(Randomx.GetId(500, 1000));
|
||||
|
||||
jsStr = "var clickBox = getElementWithText('登录'); " +
|
||||
"clickBox.click()";
|
||||
response = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
|
||||
response.Wait(1000);
|
||||
Thread.Sleep(Randomx.GetId(500, 1000));
|
||||
return;
|
||||
//下面代码原抖音使用,废弃
|
||||
|
||||
#region 输入用js
|
||||
string jsSetValue = @"
|
||||
function keyboardInput(dom, st) {
|
||||
var evt = new InputEvent('input', {
|
||||
//var evt = new Event('input', { // cef57
|
||||
inputType: 'insertText',
|
||||
data: st,
|
||||
dataTransfer: null,
|
||||
isComposing: false
|
||||
});
|
||||
dom.value = st;
|
||||
dom.dispatchEvent(evt);
|
||||
dom.focus();
|
||||
};";
|
||||
|
||||
string jsInputKey = @"
|
||||
function fireKeyEvent(el, evtType, keyCode) {
|
||||
var evtObj;
|
||||
if (document.createEvent)
|
||||
{
|
||||
if (window.KeyEvent)
|
||||
{
|
||||
//firefox 浏览器下模拟事件
|
||||
evtObj = document.createEvent('KeyEvents');
|
||||
evtObj.initKeyEvent(evtType, true, true, window, true, false, false, false, keyCode, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//chrome 浏览器下模拟事件
|
||||
evtObj = document.createEvent('UIEvents');
|
||||
evtObj.initUIEvent(evtType, true, true, window, 1);
|
||||
|
||||
delete evtObj.keyCode;
|
||||
if (typeof evtObj.keyCode === 'undefined')
|
||||
{
|
||||
//为了模拟keycode
|
||||
Object.defineProperty(evtObj, 'keyCode', { value: keyCode });
|
||||
}
|
||||
else
|
||||
{
|
||||
evtObj.key = String.fromCharCode(keyCode);
|
||||
}
|
||||
|
||||
if (typeof evtObj.ctrlKey === 'undefined')
|
||||
{
|
||||
//为了模拟ctrl键
|
||||
Object.defineProperty(evtObj, 'ctrlKey', { value: true });
|
||||
}
|
||||
else
|
||||
{
|
||||
evtObj.ctrlKey = true;
|
||||
}
|
||||
}
|
||||
el.dispatchEvent(evtObj);
|
||||
}
|
||||
else if (document.createEventObject)
|
||||
{
|
||||
//IE 浏览器下模拟事件
|
||||
evtObj = document.createEventObject();
|
||||
evtObj.keyCode = keyCode
|
||||
el.fireEvent('on' + evtType, evtObj);
|
||||
}
|
||||
}";
|
||||
#endregion
|
||||
|
||||
#region 输入用户名
|
||||
jsStr = @"var txt1 = document.getElementsByName('email')[0]; txt1.focus(); txt1.click(); keyboardInput(txt1, '" + _account + "');"
|
||||
+ "var uname = '" + _account + "';"
|
||||
+ "for(var i = 0; i < uname.length; i++) {"
|
||||
+ " cCode = uname.charCodeAt(i);"
|
||||
+ " fireKeyEvent(txt1, 'keydown', cCode);"
|
||||
+ " fireKeyEvent(txt1, 'keypress', cCode);"
|
||||
+ " fireKeyEvent(txt1, 'keyup', cCode);"
|
||||
+ "}";
|
||||
response = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsSetValue + jsInputKey + jsStr);
|
||||
response.Wait(2000);
|
||||
Thread.Sleep(Randomx.GetId(400, 800));
|
||||
#endregion
|
||||
|
||||
#region 输入密码
|
||||
jsStr = @"var txt2 = document.getElementsByName('password')[0]; txt2.focus(); txt2.click(); keyboardInput(txt2, '" + _password + "');"
|
||||
+ "var pwd = '" + _password + "';"
|
||||
+ "for(var i = 0; i < pwd.length; i++) {"
|
||||
+ " cCode = pwd.charCodeAt(i);"
|
||||
+ " fireKeyEvent(txt2, 'keydown', cCode);"
|
||||
+ " fireKeyEvent(txt2, 'keypress', cCode);"
|
||||
+ " fireKeyEvent(txt2, 'keyup', cCode);"
|
||||
+ "}";
|
||||
response = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsInputKey + jsStr);
|
||||
response.Wait(2000);
|
||||
Thread.Sleep(Randomx.GetId(400, 800));
|
||||
#endregion
|
||||
|
||||
#region 点击登录按钮
|
||||
jsStr = "var btn = document.getElementsByClassName('account-center-action-button')[0]; btn.click(); //btn.dispatchEvent(new Event('change'));";
|
||||
response = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
|
||||
response.Wait(2000);
|
||||
Thread.Sleep(1500 + Randomx.GetId(1000));
|
||||
#endregion
|
||||
|
||||
#region 获取验证码
|
||||
int getImageCount = 0;
|
||||
getImageAgain:
|
||||
if (!this.Created)
|
||||
return;
|
||||
|
||||
jsStr = "function getImg() { return document.getElementsByClassName('captcha_verify_img--wrapper')[0].innerHTML; }";
|
||||
jsStr += "getImg();";
|
||||
response = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
|
||||
response.Wait(2000);
|
||||
if (response.Result?.Result == null)
|
||||
{
|
||||
if (getImageCount < 50)
|
||||
{
|
||||
Thread.Sleep(2500);
|
||||
getImageCount++;
|
||||
goto getImageAgain;
|
||||
}
|
||||
}
|
||||
if (response.Result?.Result != null)
|
||||
{
|
||||
var imgStr = response.Result.Result.ToString();
|
||||
var src = BaseRegex.GetMatchRegexString(ref imgStr, "src=\"([\\s\\S]*?)\"");
|
||||
Bitmap bt = (Bitmap)GetHtml.LoadImage(src);
|
||||
if (bt != null)
|
||||
{
|
||||
int Stopxt = 0;
|
||||
int dragButtonWidth = 53;
|
||||
//Stopxt = new Base64ChangeImgUrl().CalculateNick(bt, dragButtonWidth);
|
||||
Thread.Sleep(500 + Randomx.GetId(1000));
|
||||
Stopxt = new Base64ChangeImgUrl().CalculateNickNew(bt, dragButtonWidth);
|
||||
if (Stopxt > 0)
|
||||
{
|
||||
jsStr = "function getImgPos() { return document.getElementsByClassName('secsdk-captcha-drag-icon')[0].getBoundingClientRect().left + '|' "
|
||||
+ " + document.getElementsByClassName('secsdk-captcha-drag-icon')[0].getBoundingClientRect().top;} getImgPos();";
|
||||
response = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
|
||||
response.Wait(2000);
|
||||
if (response.Result?.Result != null)
|
||||
{
|
||||
var xy = response.Result?.Result.ToString();
|
||||
var xyArr = xy.Split('|');
|
||||
if (xyArr.Length == 2)
|
||||
{
|
||||
try
|
||||
{
|
||||
int x = (int)Convert.ToDecimal(xyArr[0]) + 25;
|
||||
int y = (int)Convert.ToDecimal(xyArr[1]) + 25;
|
||||
|
||||
// 自动滑块图形验证
|
||||
if (GlobalConfig.TemuShopSettingParam.IsAutoDragLogin)
|
||||
{
|
||||
WXShopLoginForm.CefMouseDragDou(cefWebBrowser, x, y, Convert.ToInt32((x + Stopxt * 340m / 552m) - 15), y);
|
||||
for (int i = 0; i < 1; i++)
|
||||
Thread.Sleep(2000 + Randomx.GetId(1000));
|
||||
response = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
|
||||
response.Wait(2000);
|
||||
if (response.Result?.Result != null && getImageCount < 50)
|
||||
{
|
||||
getImageCount++;
|
||||
goto getImageAgain;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < 1; i++)
|
||||
Thread.Sleep(2000 + Randomx.GetId(1000));
|
||||
}
|
||||
}
|
||||
}
|
||||
Thread.Sleep(1500 + Randomx.GetId(1000));
|
||||
#endregion
|
||||
}
|
||||
|
||||
// 鼠标左键按下,移动,移动...左键抬起。
|
||||
public static void CefMouseDragDou(ChromiumWebBrowser webBrowser, int x1, int y1, int x2, int y2)
|
||||
{
|
||||
Thread.Sleep(100);
|
||||
var host = webBrowser.GetBrowser().GetHost();
|
||||
|
||||
var rx = -6 + Randomx.GetId(13);
|
||||
x2 = x2 + rx;
|
||||
// 随机按下点的位置(正负6像素),提高仿真性
|
||||
int x = x1 + rx;
|
||||
int y = y1 - 6 + Randomx.GetId(13);
|
||||
|
||||
// 按下鼠标左键
|
||||
host.SendMouseClickEvent(x, y, MouseButtonType.Left, false, 1, CefEventFlags.None);
|
||||
Thread.Sleep(100 + Randomx.GetId(300));
|
||||
|
||||
// 滑动光标
|
||||
int times = -20;
|
||||
while (x < x2 + 4 - Randomx.GetId(9))
|
||||
{
|
||||
times++;
|
||||
x += (15 + Randomx.GetId(15)) / 8;
|
||||
if (times % 5 == 0)
|
||||
y = y - 1 + Randomx.GetId(3);
|
||||
Thread.Sleep(6 + Math.Abs(times) / 5 + Randomx.GetId(16));
|
||||
host.SendMouseMoveEvent((int)x, (int)y, false, CefEventFlags.LeftMouseButton);
|
||||
}
|
||||
if (x < x2 - 1)
|
||||
while (x < x2)
|
||||
{
|
||||
times++;
|
||||
x += (8 + Randomx.GetId(8)) / 8;
|
||||
if (times % 5 == 0)
|
||||
y = y - 1 + Randomx.GetId(3);
|
||||
Thread.Sleep(6 + Math.Abs(times) / 5 + Randomx.GetId(16));
|
||||
host.SendMouseMoveEvent((int)x, (int)y, false, CefEventFlags.LeftMouseButton);
|
||||
}
|
||||
else if (x > x2 + 1)
|
||||
while (x > x2)
|
||||
{
|
||||
times++;
|
||||
x -= (8 + Randomx.GetId(8)) / 8;
|
||||
if (times % 5 == 0)
|
||||
y = y - 1 + Randomx.GetId(3);
|
||||
Thread.Sleep(6 + Math.Abs(times) / 5 + Randomx.GetId(16));
|
||||
host.SendMouseMoveEvent((int)x, (int)y, false, CefEventFlags.LeftMouseButton);
|
||||
}
|
||||
|
||||
// 如果最后位置偏差较多,再做一次调整
|
||||
x = x2 - 1 + Randomx.GetId(3);
|
||||
x = x2;
|
||||
Thread.Sleep(18 + Math.Abs(times) / 5 + Randomx.GetId(16));
|
||||
Thread.Sleep(18 + Math.Abs(times) / 5 + Randomx.GetId(16));
|
||||
host.SendMouseMoveEvent((int)x, (int)y, false, CefEventFlags.LeftMouseButton);
|
||||
|
||||
// 抬起鼠标左键
|
||||
Thread.Sleep(300 + Randomx.GetId(500));
|
||||
host.SendMouseClickEvent(x, y, MouseButtonType.Left, true, 1, CefEventFlags.None);
|
||||
host.SendMouseClickEvent(x, y, MouseButtonType.Left, true, 1, CefEventFlags.None);
|
||||
}
|
||||
|
||||
private void btnStop_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void btnCopyUserName_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(txtUserName.Text))
|
||||
Clipboard.SetDataObject(txtUserName.Text);
|
||||
}
|
||||
|
||||
private void btnCopyPassword_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(txtPassWord.Text))
|
||||
Clipboard.SetDataObject(txtPassWord.Text);
|
||||
}
|
||||
|
||||
private void btnReload_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (cefWebBrowser != null)
|
||||
{
|
||||
if (txtAddress.Text != "about:blank")
|
||||
cefWebBrowser.Load(txtAddress.Text);
|
||||
else
|
||||
cefWebBrowser.Load(shopMainUrl);
|
||||
}
|
||||
}
|
||||
|
||||
private void ShopLoginForm_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
//OnSaveComplete(shop);
|
||||
Task.Run(() => {
|
||||
Thread.Sleep(500);
|
||||
if (!this.Disposing && !this.IsDisposed)
|
||||
{
|
||||
MainForm.instance.Invoke(new Action(() => { this.Dispose(); }));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void txtAddress_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Enter)
|
||||
{
|
||||
if (cefWebBrowser != null)
|
||||
{
|
||||
cefWebBrowser.Load(txtAddress.Text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btnMultiLogin_Click(object sender, EventArgs e)
|
||||
{
|
||||
MultiLoginCookieName = cmbMultiCookieName.Text;
|
||||
AutoLogin();
|
||||
}
|
||||
|
||||
private void btnDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (shop != null)
|
||||
{
|
||||
shop.DictMultiCookies.Remove(cmbMultiCookieName.Text);
|
||||
StartUp.SaveLocalShopLoginInfo();
|
||||
|
||||
InitMultiLoginCookies();
|
||||
}
|
||||
}
|
||||
|
||||
private void InitMultiLoginCookies()
|
||||
{
|
||||
this.cmbMultiCookieName.Items.Clear();
|
||||
foreach (var cookieKey in shop.DictMultiCookies.Keys)
|
||||
{
|
||||
this.cmbMultiCookieName.Items.Add(cookieKey);
|
||||
}
|
||||
int i = 1;
|
||||
foreach (var item in this.cmbMultiCookieName.Items)
|
||||
{
|
||||
if (i <= item.ToString().Replace("cookie", "").ParseToInt())
|
||||
{
|
||||
i = item.ToString().Replace("cookie", "").ParseToInt() + 1;
|
||||
}
|
||||
}
|
||||
this.cmbMultiCookieName.Items.Insert(0, "cookie" + i);
|
||||
this.cmbMultiCookieName.Text = "cookie" + i;
|
||||
}
|
||||
|
||||
|
||||
string sInputValueChange = @"
|
||||
let usernameId = document.getElementById('usernameId');
|
||||
usernameId.value = '1';
|
||||
|
||||
var event = document.createEvent('HTMLEvents');
|
||||
event.initEvent('input', true, true);
|
||||
event.eventType = 'message';
|
||||
usernameId.dispatchEvent(event);
|
||||
";
|
||||
|
||||
string sInputValueChange2 = @"
|
||||
function changeReactInputValue(inputDom,newText){
|
||||
let lastValue = inputDom.value;
|
||||
inputDom.value = newText;
|
||||
let event = new Event('input', { bubbles: true });
|
||||
event.simulated = true;
|
||||
let tracker = inputDom._valueTracker;
|
||||
if (tracker) {
|
||||
tracker.setValue(lastValue);
|
||||
}
|
||||
inputDom.dispatchEvent(event);
|
||||
}
|
||||
";
|
||||
|
||||
string sGetElementWithText = @"
|
||||
function getElementWithText(sText)
|
||||
{
|
||||
var elem=null;
|
||||
const elements = document.querySelectorAll('*'); // 选择所有元素
|
||||
elements.forEach(element => {
|
||||
if (element.textContent.includes(sText)) {
|
||||
// 对每个匹配的元素执行操作
|
||||
//console.log(element);
|
||||
elem=element;
|
||||
}
|
||||
});
|
||||
return elem;
|
||||
};
|
||||
";
|
||||
|
||||
private void btnLoginAgain_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.currentUrl != shopLoginUrl)
|
||||
this.cefWebBrowser.Load(shopLoginUrl);
|
||||
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
InputUserNameAndPassword(cefWebBrowser, shop.LoginName, DataOpenSSL.DecryptString(shop.Password));
|
||||
});
|
||||
}
|
||||
|
||||
private void btnReturnPackage_Click(object sender, EventArgs e)
|
||||
{
|
||||
//ReturnPackageDetailForm form = new ReturnPackageDetailForm(this.shop);
|
||||
//form.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
File renamed without changes.
@@ -0,0 +1,278 @@
|
||||
|
||||
namespace TemuKJD.WXForms.ProductForms
|
||||
{
|
||||
partial class WXDBProdUploadCacheForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXDBProdUploadCacheForm));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.btnClearDgv = new DevComponents.DotNetBar.PanelEx();
|
||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||
this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx();
|
||||
this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn();
|
||||
this.colId = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colSpuId = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colProductSkcPic = new System.Windows.Forms.DataGridViewImageColumn();
|
||||
this.colProductName = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colProductCat = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colExtCode = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColDelete = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
|
||||
this.splitContainer2.Panel1.SuspendLayout();
|
||||
this.splitContainer2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(1, 33);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.btnClearDgv);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1110, 566);
|
||||
this.splitContainer1.SplitterDistance = 55;
|
||||
this.splitContainer1.TabIndex = 1;
|
||||
this.splitContainer1.TabStop = false;
|
||||
//
|
||||
// btnClearDgv
|
||||
//
|
||||
this.btnClearDgv.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnClearDgv.CanvasColor = System.Drawing.SystemColors.Control;
|
||||
this.btnClearDgv.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnClearDgv.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnClearDgv.Location = new System.Drawing.Point(1000, 16);
|
||||
this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
|
||||
this.btnClearDgv.Name = "btnClearDgv";
|
||||
this.btnClearDgv.Size = new System.Drawing.Size(84, 23);
|
||||
this.btnClearDgv.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnClearDgv.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.btnClearDgv.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.btnClearDgv.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
||||
this.btnClearDgv.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnClearDgv.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||
this.btnClearDgv.Style.GradientAngle = 90;
|
||||
this.btnClearDgv.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnClearDgv.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnClearDgv.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnClearDgv.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnClearDgv.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.btnClearDgv.TabIndex = 616;
|
||||
this.btnClearDgv.Text = "清空列表选中";
|
||||
this.btnClearDgv.Click += new System.EventHandler(this.btnClearDgv_Click);
|
||||
//
|
||||
// splitContainer2
|
||||
//
|
||||
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
||||
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer2.Name = "splitContainer2";
|
||||
this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer2.Panel1
|
||||
//
|
||||
this.splitContainer2.Panel1.Controls.Add(this.dgvSelectProduct);
|
||||
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.splitContainer2.Size = new System.Drawing.Size(1110, 507);
|
||||
this.splitContainer2.SplitterDistance = 478;
|
||||
this.splitContainer2.TabIndex = 0;
|
||||
this.splitContainer2.TabStop = false;
|
||||
//
|
||||
// dgvSelectProduct
|
||||
//
|
||||
this.dgvSelectProduct.AllowUserToAddRows = false;
|
||||
this.dgvSelectProduct.AllowUserToDeleteRows = false;
|
||||
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
|
||||
this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White;
|
||||
this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
|
||||
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||
this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
|
||||
this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.colCheck,
|
||||
this.colId,
|
||||
this.colSpuId,
|
||||
this.colImgUrl,
|
||||
this.colProductSkcPic,
|
||||
this.colProductName,
|
||||
this.colProductCat,
|
||||
this.colExtCode,
|
||||
this.colNotes,
|
||||
this.ColDelete});
|
||||
this.dgvSelectProduct.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.dgvSelectProduct.Location = new System.Drawing.Point(5, 0);
|
||||
this.dgvSelectProduct.Name = "dgvSelectProduct";
|
||||
this.dgvSelectProduct.ReadOnly = true;
|
||||
this.dgvSelectProduct.RowTemplate.Height = 23;
|
||||
this.dgvSelectProduct.Size = new System.Drawing.Size(1100, 478);
|
||||
this.dgvSelectProduct.TabIndex = 188;
|
||||
this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick);
|
||||
//
|
||||
// colCheck
|
||||
//
|
||||
this.colCheck.Frozen = true;
|
||||
this.colCheck.HeaderText = "选择";
|
||||
this.colCheck.Name = "colCheck";
|
||||
this.colCheck.ReadOnly = true;
|
||||
this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
this.colCheck.Width = 30;
|
||||
//
|
||||
// colId
|
||||
//
|
||||
this.colId.HeaderText = "序号";
|
||||
this.colId.Name = "colId";
|
||||
this.colId.ReadOnly = true;
|
||||
this.colId.Width = 45;
|
||||
//
|
||||
// colSpuId
|
||||
//
|
||||
this.colSpuId.HeaderText = "商品ID";
|
||||
this.colSpuId.Name = "colSpuId";
|
||||
this.colSpuId.ReadOnly = true;
|
||||
this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
//
|
||||
// colImgUrl
|
||||
//
|
||||
this.colImgUrl.HeaderText = "图片地址";
|
||||
this.colImgUrl.Name = "colImgUrl";
|
||||
this.colImgUrl.ReadOnly = true;
|
||||
this.colImgUrl.Visible = false;
|
||||
//
|
||||
// colProductSkcPic
|
||||
//
|
||||
this.colProductSkcPic.HeaderText = "图片";
|
||||
this.colProductSkcPic.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom;
|
||||
this.colProductSkcPic.Name = "colProductSkcPic";
|
||||
this.colProductSkcPic.ReadOnly = true;
|
||||
this.colProductSkcPic.Width = 60;
|
||||
//
|
||||
// colProductName
|
||||
//
|
||||
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colProductName.DefaultCellStyle = dataGridViewCellStyle3;
|
||||
this.colProductName.HeaderText = "商品标题";
|
||||
this.colProductName.Name = "colProductName";
|
||||
this.colProductName.ReadOnly = true;
|
||||
this.colProductName.Width = 390;
|
||||
//
|
||||
// colProductCat
|
||||
//
|
||||
this.colProductCat.HeaderText = "商品类目";
|
||||
this.colProductCat.Name = "colProductCat";
|
||||
this.colProductCat.ReadOnly = true;
|
||||
this.colProductCat.Width = 120;
|
||||
//
|
||||
// colExtCode
|
||||
//
|
||||
this.colExtCode.HeaderText = "商品货号";
|
||||
this.colExtCode.Name = "colExtCode";
|
||||
this.colExtCode.ReadOnly = true;
|
||||
this.colExtCode.Width = 120;
|
||||
//
|
||||
// colNotes
|
||||
//
|
||||
this.colNotes.HeaderText = "商品备注";
|
||||
this.colNotes.Name = "colNotes";
|
||||
this.colNotes.ReadOnly = true;
|
||||
//
|
||||
// ColDelete
|
||||
//
|
||||
this.ColDelete.HeaderText = "删除";
|
||||
this.ColDelete.Name = "ColDelete";
|
||||
this.ColDelete.ReadOnly = true;
|
||||
this.ColDelete.Width = 75;
|
||||
//
|
||||
// PDDDBProdUserSelectCacheForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(1112, 600);
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "PDDDBProdUserSelectCacheForm";
|
||||
this.Text = "待上传商品";
|
||||
this.TitleText = "待上传商品";
|
||||
this.Load += new System.EventHandler(this.WXDBProdUploadCacheForm_Load);
|
||||
this.Controls.SetChildIndex(this.splitContainer1, 0);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.splitContainer2.Panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
|
||||
this.splitContainer2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.SplitContainer splitContainer2;
|
||||
private UserComponent.DataGridViewEx dgvSelectProduct;
|
||||
private DevComponents.DotNetBar.PanelEx btnClearDgv;
|
||||
private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colId;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colSpuId;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl;
|
||||
private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colProductName;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colProductCat;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colExtCode;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colNotes;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn ColDelete;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
using AllBase;
|
||||
using AllBase.Model.Result;
|
||||
using NaiBa.Util.Extension;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using TemuKJD.BaseForms;
|
||||
using TemuKJD.Extension;
|
||||
using TemuKJD.ToolForms;
|
||||
|
||||
namespace TemuKJD.WXForms.ProductForms
|
||||
{
|
||||
public partial class WXDBProdUploadCacheForm : LRBaseForm
|
||||
{
|
||||
NaiBa.Util.ConcurrentList<TemuDBProductSelect> lstTemuDBProductSelect;
|
||||
public WXDBProdUploadCacheForm(NaiBa.Util.ConcurrentList<TemuDBProductSelect> _lstTemuDBProductSelect)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
lstTemuDBProductSelect = _lstTemuDBProductSelect;
|
||||
}
|
||||
|
||||
private void WXDBProdUploadCacheForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
dgvSelectProduct.AddSelectorColumn("colCheck");
|
||||
dgvSelectProduct.AddImgColumn("colProductSkcPic", "colImgUrl");
|
||||
|
||||
if (lstTemuDBProductSelect != null && lstTemuDBProductSelect.Count > 0)
|
||||
{
|
||||
foreach (var prodSelect in lstTemuDBProductSelect)
|
||||
{
|
||||
int rowIndex = this.dgvSelectProduct.Rows.Add(
|
||||
false,
|
||||
prodSelect.id,
|
||||
prodSelect.spu_id,
|
||||
prodSelect.main_img,
|
||||
null,
|
||||
prodSelect.product_name, // 商品名称
|
||||
prodSelect.cat_name,
|
||||
prodSelect.ext_code,
|
||||
prodSelect.notes,
|
||||
"删除"
|
||||
);
|
||||
|
||||
dgvSelectProduct.Rows[rowIndex].Height = 60;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void dgvSelectProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
if (e.ColumnIndex < 0 || e.RowIndex < 0)
|
||||
return;
|
||||
string headerText = dgvSelectProduct.Columns[e.ColumnIndex].HeaderText;
|
||||
var id = dgvSelectProduct.Rows[e.RowIndex].Cells["colId"].Value.ParseToString();
|
||||
var dbProduct = lstTemuDBProductSelect.FirstOrDefault(p => p.id.ToString() == id);
|
||||
var row = dgvSelectProduct.Rows[e.RowIndex];
|
||||
|
||||
switch (headerText)
|
||||
{
|
||||
case "删除":
|
||||
if (BaseMsgForm.ShowConfirm("确定删除商品吗?删除后不可恢复!").DialogResult == DialogResult.Cancel)
|
||||
return;
|
||||
lstTemuDBProductSelect.RemoveAll(s => s.id == row.Cells["colId"].Value.ParseToInt());
|
||||
this.dgvSelectProduct.Rows.Remove(row);
|
||||
break;
|
||||
case "图片":
|
||||
ShowImgForm imgFrom = new ShowImgForm(dgvSelectProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString());
|
||||
imgFrom.ShowDialog();
|
||||
break;
|
||||
case "":
|
||||
dgvSelectProduct.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvSelectProduct.Rows[e.RowIndex].Cells["colCheck"].Value;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnClearDgv_Click(object sender, EventArgs e)
|
||||
{
|
||||
var rows = this.dgvSelectProduct.Rows.Cast<DataGridViewRow>().ToList(); //Cast后Rows做foreach循环时仍会夹花跳过,所以要ToList转一个新的数组。
|
||||
foreach (var row in rows)
|
||||
{
|
||||
if (row.Cells["colCheck"].Value.ParseToBool() == true)
|
||||
{
|
||||
lstTemuDBProductSelect.RemoveAll(s => s.id == row.Cells["colId"].Value.ParseToInt());
|
||||
this.dgvSelectProduct.Rows.Remove(row);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,328 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="colCheck.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSpuId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colProductSkcPic.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colProductName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colProductCat.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colExtCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColDelete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
|
||||
AAD///8AAAAAAAAAAAAAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMQ
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAABM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZkzEAAAAAAAAAAAAAAAAAAAAAADOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZMwAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZkzAAAAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmTEAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAA5mZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAADmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAGZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAJmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZAAAAAA
|
||||
OZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmT
|
||||
AAAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmRAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZkwAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZkwAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZMAAJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZEAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwCZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkRmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZOZmZOZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmP+JmZmZmZmZj///////
|
||||
///4OZmZj/eZmZmZmZmZmPg5OZmZmZuI//iIuZmZmZmZmZmZmZM5mZmZmZmZmZmZmb//+JmZmZmZmP//
|
||||
//////////OZmP//uZmZmZmZmY//+ZmZOZf///////h5k5mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
|
||||
mZ/////////////4mZ///4mZmZmZmZP///uZmZmP////////+JmZmZmZmZmZkzmZmZmZmZmZmZmZj//4
|
||||
mZmZmZmf////////////+Jmf//+JmZmZmZmb///4mZmY//////////+JmZmZmZmZmZM5mZmZmZmZmZmZ
|
||||
mY//+JmZmZmZn/////////////mZmP//iZmZmZmZk///+5mZj/////iP////+JmZmZmZmZmTOZmZmZmZ
|
||||
mZmZmZmP//iZmZmZmZ////iIiIiIiIiZOZj//4mZmZmZmZP///uZmf////eZmT////+ZmZmZmZmZkzmZ
|
||||
mZmZmZmZmZmZj//4mZmZmZmf//+JmZmZmZmZk5mY//+JmZmZmZmT///7mZj///+ZmZmZj///uZmZmZmZ
|
||||
mZM5mZmZmZmZmZmZmY//+JmZmZmZn///iZmZmZmZmZmZmP//iZmZN5k5k///+5mY///zk5mZOT///4mZ
|
||||
mZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///4mZmZmZmZmZmZj//4mZmP/5k5P///uZmP//+ZmZmZmY
|
||||
//+JmZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf///4iIiIiIg5mZmY//+JOb//+JmT///7mZj//4mZ
|
||||
mZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////85mZmP//iZn///+Jk///+5mf
|
||||
//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ////////////+ZmZj//4mY////85v/
|
||||
//uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf////////////mZmY//+Jv///
|
||||
//+Z///7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////+JmZmP//
|
||||
if//////if//+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///////////4mZ
|
||||
mZj//4j///////j///uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf//+JMzMz
|
||||
MzOZOZmY//////+D///////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///
|
||||
iZmZmZmZmZmZmP//////mY//////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
|
||||
mZ///4mZmZmZmZmZmZj/////+5mf//////uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZMzM5j//4
|
||||
kzMzmZmf//+JMzMzMzM5mZmY/////4mTk//////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmP//
|
||||
/////////4mZn////////////4mZmP////+ZmZmP////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZ
|
||||
mY/////////////4mZ/////////////7mZj////7mZmZn/////uZmP//iZmZmZmY///5mZmZmZmZkzmZ
|
||||
mZmZmZn//////////////5mf////////////+Jmf////iZmZk5P////4mZ///4mZmZmZmP//+ZmZmZmZ
|
||||
mZM5mZmZmZmZj/////////////iZn/////////////iZmP///5mZmZmZj///+5mY//+JmZmZmZj//4mZ
|
||||
mZmZmZmTOZmZmZmZmZ/////////////zmZP///////////+JmZP///uTmZmZmZj//4mZm///mZmZmZmZ
|
||||
//85mZmZmZmZkzmZmZmZmZOZiIiIiIiIiIiImTmZOIiIiIiIiIiImTmZOIi5mZmZmZOZiIuZmZk4iZOZ
|
||||
mZmZOZiDmZmZmZmZmZM5mZmZmZmZOZmZmZmZmZmZmZOZmZmZmZmZmZmZmZOZmZmZmZmZmZmZOZmZmZmZ
|
||||
mZk5mZmZmZOZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmTuIiIiIs5mZmZmZmZ
|
||||
mTu4i7mZmZmZmZmZmTMzmZOZmZkzOZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmTmbj///////+HmT
|
||||
mZmZk4j/////iJmZmZk4iP////iZOZmZj/mZOZOIiIiIiIiIiDmZmZmZmZmZkzmZmZmZmZmZj///////
|
||||
///4mZk5k4///4iI///4OZOY////////iZOZmb/5mZmP///////////4mZmZmZmZmZM5mZmZmZmZn///
|
||||
//////////mZmY///5mZmZP///iZmP////////+ZOZk/iZmY/////////////4mZmZmZmZmTOZmZmZmZ
|
||||
mZ/////////////5mZ////+JmZmY////iZl/////////+ZmZP4mZP//////////////7mZmZmZmZkzmZ
|
||||
mZmZmZmb////////////uZP/j///+HM3j/////+ZmYj///////iZmT+JmY//////////////+JmZmZmZ
|
||||
mZM5mZmZmZmZmY//////////+JmT+Jv///////////iPmTmZOI/4mP//uTk/iZmP//////////////iZ
|
||||
mZmZmZmTOZmZmZmZmZmf//////////mZmZmZ///////////5mZmZmZmTOZk///mZP4mZj///////////
|
||||
///4mZmZmZmZkzmZmZmZmZmTmP////////+JOZmZOY//////////iZmZmZmZmZk5mf/4mT+JmY//////
|
||||
////////+JmZmZmZmZM5mZmZmZmZmZn/////////mZmZmZk//////////zmZmZmZmZmZmTmP/zm/iZmP
|
||||
//////////////iZmZmZmZmTOZmZmZmZmZk5v///////85OZmZkzmP////////iZmZmZmZmZmZmZn//4
|
||||
/4mZj/////hzN4/////4mZmZmZmZkzmZmZmZmZmZmZj//////4mZmTmY/4j////////4mZmZmZmZmZmZ
|
||||
mZj///+JmY////+JmZmY////+JmZmZmZmZM5mZmZmZmZmZmZ//////+ZmZmZj////////////4mZmZmZ
|
||||
mZmZmZmb////+ZmP///4mZu5mY////iZmZmZmZmTOZmZmZmZmZmZOb/////4k5mZmP/////////////7
|
||||
mZmZmZmZmZmZk/////OZv///+ZmP+Jmf///4mZmZmZmZkzmZmZmZmZmZmZmf////+ZmZmZj////////4
|
||||
eI//+JmZmZmZmZmZmZP////4mb///4mY//+JmP//+5mZmZmZmZM5mZmZmZmZmZk5v/////uTmZmb////
|
||||
///4mZmX//iZmZmZmZmZmZmZ////+Jmf//95n///+Zj///OZmZmZmZmTOZmZmZmZmZmZmf//////mZmZ
|
||||
mY//////+ZOZmZiJmZmZmZmZmZmZmY////+ZmP//+I////iP//+JmZmZmZmZkzmZmZmZmZmZmZj/////
|
||||
/4mZmZmf/////5k5mZOZmTmZmZmZmZmZmZmP///4mZP/////////////OZmZmZmZmZM5mZmZmZmZmZk/
|
||||
///////zmZmZm/////iZmZmZmZmZmZmZmZmZmZmZj///85mZj///////////+JmZmZmZmZmTOZmZmZmZ
|
||||
mZmZv///////+5mZmZmP///5mZmZmZmZmZmZmZmZmZmZmZ///3mZmZj//////////4mZmZmZmZmZkzmZ
|
||||
mZmZmZmZmb///4j///uZmZmZmP//mTmZmZmZmZmZmZmZmZmZmZmY/4OZmZmZeP///////4eZmZmZmZmZ
|
||||
mZM5mZmZmZmZmZmY/4OZOP+JmZmZmZmIiZOZmZmZmZmZmZmZmZmZmZmZmYiZmZmZmZk4iIiIiIOZmZmZ
|
||||
mZmZmZmTOZmZmZmZmZmZmTOZmZkzmZmZmZmZmZk5mZmZmZmZmZmZmZmZmZmZmZmZk5mZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmTGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZkwmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZkwA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZMACZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAABmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAJmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmRAAAAA5mZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAACZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAAAAAGZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAOZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwAAAAAA
|
||||
AAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAA
|
||||
AAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZkwAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmTAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZEAAAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAAAAAATmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAAAAAAzmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTMAAAAAAAAAAAAAAAAAAAAAAAAAAAEzMzMzMzMzMzMzMzMzMz
|
||||
MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxAAAAAAAAAAAAAAD////////////////////////4AAAA
|
||||
AAAAAAAAAB//////wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////w
|
||||
AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAA
|
||||
Af//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAA
|
||||
AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAA
|
||||
AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA
|
||||
AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
|
||||
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
|
||||
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
|
||||
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
|
||||
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
|
||||
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AA
|
||||
AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA
|
||||
AA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA
|
||||
AAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAA
|
||||
AAAAAAAAAAAH///4AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAD/////
|
||||
wAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAH////////////////////////w==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
+1486
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,210 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colShopLoginName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colShopNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSelectProduct.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colLoginStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colCanUse.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colRemaining.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colMessage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colCheck.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSelectId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSupplierId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSupplierName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colLogin.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colInShop.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSpuId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colProductSkcPic.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSkuFakeImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSkuFakeImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colProductName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colProductCat.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colExtCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colMsg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colDraftId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colUserNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColDelete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colAddTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colOpResult.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
||||
+173
@@ -0,0 +1,173 @@
|
||||
namespace TemuKJD.WXForms.ProductForms
|
||||
{
|
||||
partial class WXProductForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("选品上传");
|
||||
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("商品列表");
|
||||
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("营销工具");
|
||||
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("商品管理", new System.Windows.Forms.TreeNode[] {
|
||||
treeNode1,
|
||||
treeNode2,
|
||||
treeNode3});
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.panel3 = new System.Windows.Forms.Panel();
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.lblName = new System.Windows.Forms.Label();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.tv = new TemuKJD.UserComponent.UcTreeView();
|
||||
this.panel1.SuspendLayout();
|
||||
this.panel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.BackColor = System.Drawing.Color.White;
|
||||
this.panel1.Controls.Add(this.panel3);
|
||||
this.panel1.Controls.Add(this.panel2);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(793, 521);
|
||||
this.panel1.TabIndex = 2;
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel3.Location = new System.Drawing.Point(0, 28);
|
||||
this.panel3.Name = "panel3";
|
||||
this.panel3.Size = new System.Drawing.Size(793, 493);
|
||||
this.panel3.TabIndex = 1;
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(244)))), ((int)(((byte)(244)))));
|
||||
this.panel2.Controls.Add(this.lblName);
|
||||
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panel2.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(793, 28);
|
||||
this.panel2.TabIndex = 0;
|
||||
//
|
||||
// lblName
|
||||
//
|
||||
this.lblName.AutoSize = true;
|
||||
this.lblName.Location = new System.Drawing.Point(5, 6);
|
||||
this.lblName.Name = "lblName";
|
||||
this.lblName.Size = new System.Drawing.Size(57, 17);
|
||||
this.lblName.TabIndex = 0;
|
||||
this.lblName.Text = "lblName";
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tv);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.panel1);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(934, 521);
|
||||
this.splitContainer1.SplitterDistance = 140;
|
||||
this.splitContainer1.SplitterWidth = 1;
|
||||
this.splitContainer1.TabIndex = 3;
|
||||
//
|
||||
// tv
|
||||
//
|
||||
this.tv.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(251)))), ((int)(((byte)(251)))));
|
||||
this.tv.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.tv.ChildNodeSelectedBgColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.tv.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.tv.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tv.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawAll;
|
||||
this.tv.ExpandButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
|
||||
this.tv.FullRowSelect = true;
|
||||
this.tv.GroupBgColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249)))));
|
||||
this.tv.GroupFont = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.tv.GroupTitleColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
|
||||
this.tv.HideCollapsedGroup = false;
|
||||
this.tv.ItemHeight = 32;
|
||||
this.tv.Location = new System.Drawing.Point(0, 0);
|
||||
this.tv.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.tv.Name = "tv";
|
||||
treeNode1.Name = "选品上传";
|
||||
treeNode1.Text = "选品上传";
|
||||
treeNode2.Name = "商品列表";
|
||||
treeNode2.Text = "商品列表";
|
||||
treeNode3.Name = "营销工具";
|
||||
treeNode3.Text = "营销工具";
|
||||
treeNode4.Name = "商品管理";
|
||||
treeNode4.Text = "商品管理";
|
||||
this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
|
||||
treeNode4});
|
||||
this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235)))));
|
||||
this.tv.Size = new System.Drawing.Size(140, 521);
|
||||
this.tv.TabIndex = 1;
|
||||
this.tv.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tv_AfterSelect);
|
||||
//
|
||||
// PDDProductForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(934, 521);
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.Name = "PDDProductForm";
|
||||
this.Text = "UploadForms";
|
||||
this.Load += new System.EventHandler(this.ShopForm_Load);
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel2.ResumeLayout(false);
|
||||
this.panel2.PerformLayout();
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private UserComponent.UcTreeView tv;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private System.Windows.Forms.Label lblName;
|
||||
private System.Windows.Forms.Panel panel3;
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using TemuKJD.BaseForms;
|
||||
using AllBase;
|
||||
|
||||
namespace TemuKJD.WXForms.ProductForms
|
||||
{
|
||||
public partial class WXProductForm : BaseForm
|
||||
{
|
||||
public static WXProductForm instance;
|
||||
public Lazy<WXDBProdUploadForm> userSelectDbProductForm = new Lazy<WXDBProdUploadForm>();
|
||||
//public Lazy<PDDProductUpDownForm> productUpDownForm = new Lazy<PDDProductUpDownForm>();
|
||||
//public Lazy<PDDProdCouponForm> prodCouponForm = new Lazy<PDDProdCouponForm>();
|
||||
|
||||
public WXProductForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
try
|
||||
{
|
||||
tv.SelectedNode = tv.Nodes[0].Nodes[0];
|
||||
tv.ExpandGroup(tv.Nodes[0].Name);
|
||||
|
||||
if (BaseClass.GroupId == 3)
|
||||
{
|
||||
//hideName.Remove("设置进货价");
|
||||
if (BaseClass.SaLevel == 1)
|
||||
{
|
||||
}
|
||||
if (BaseClass.SaLevel == 2)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
private void tv_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
instance = this;
|
||||
|
||||
MainForm.sCurrentModule = e.Node.Name;
|
||||
this.lblName.Text = e.Node.Text;
|
||||
|
||||
//如果是一级菜单,不做任何动作
|
||||
if (e.Node.Parent == null) return;
|
||||
new Thread(() =>
|
||||
{
|
||||
Thread.Sleep(200);
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
switch (e.Node.Name)
|
||||
{
|
||||
case "选品上传":
|
||||
SetForm(userSelectDbProductForm.Value);
|
||||
break;
|
||||
//case "商品列表":
|
||||
// SetForm(productUpDownForm.Value);
|
||||
// break;
|
||||
//case "营销工具":
|
||||
// SetForm(prodCouponForm.Value);
|
||||
// break;
|
||||
}
|
||||
}));
|
||||
}).Start();
|
||||
}
|
||||
|
||||
public void SetTvSelect(string name)
|
||||
{
|
||||
var n = tv.Nodes[0].Nodes.Find(name, true);
|
||||
if (n.Count() > 0)
|
||||
tv.SelectedNode = n[0];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示隐藏层
|
||||
/// </summary>
|
||||
/// <param name="f"></param>
|
||||
private void SetForm(Form f)
|
||||
{
|
||||
if (f == null)
|
||||
{
|
||||
foreach (Control form in panel3.Controls)
|
||||
{
|
||||
form.Visible = false;
|
||||
if (form is Form)
|
||||
{
|
||||
panel3.Controls.Remove(form);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
bool had = false;
|
||||
string sCurrentFormName = f.Name;
|
||||
for (int i = 0; i < panel3.Controls.Count; i++)
|
||||
{
|
||||
if (sCurrentFormName == panel3.Controls[i].Name)
|
||||
{
|
||||
had = true;
|
||||
panel3.Controls[i].Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
panel3.Controls[i].Visible = false;
|
||||
}
|
||||
}
|
||||
if (had)
|
||||
{
|
||||
return;
|
||||
}
|
||||
f.TopLevel = false;
|
||||
f.Left = 0;
|
||||
f.Top = 0;
|
||||
f.FormBorderStyle = FormBorderStyle.None;
|
||||
panel3.Controls.Add(f);
|
||||
f.AutoSize = true;
|
||||
f.Dock = DockStyle.Fill;
|
||||
f.Show();
|
||||
}
|
||||
|
||||
private void ShopForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
tv.SelectedNode = tv.Nodes[0].Nodes[0];
|
||||
tv.ExpandGroup(tv.Nodes[0].Name);
|
||||
|
||||
List<string> hideName = new List<string>() { /*"营销工具"*/ };
|
||||
|
||||
foreach (var item in hideName)
|
||||
{
|
||||
var n = tv.Nodes[0].Nodes.Find(item, true);
|
||||
if (n.Count() > 0)
|
||||
n[0].Remove();
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
}
|
||||
File renamed without changes.
+1
-1
@@ -1,4 +1,4 @@
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
partial class UcSubAccount
|
||||
{
|
||||
+1
-1
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using AllBase.Model.Result;
|
||||
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
public partial class UcSubAccount : UserControl
|
||||
{
|
||||
File renamed without changes.
+3
-3
@@ -1,6 +1,6 @@
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
partial class DYShopAddEditForm
|
||||
partial class WXShopAddEditForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
@@ -28,7 +28,7 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DYShopAddEditForm));
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXShopAddEditForm));
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.cmbGroup = new System.Windows.Forms.ComboBox();
|
||||
+4
-4
@@ -11,14 +11,14 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
public partial class DYShopAddEditForm : LRBaseForm
|
||||
public partial class WXShopAddEditForm : LRBaseForm
|
||||
{
|
||||
ShopLoginInfo shopLoginInfo = null;
|
||||
bool isAdd = true;
|
||||
|
||||
public DYShopAddEditForm(ShopLoginInfo shop = null)
|
||||
public WXShopAddEditForm(ShopLoginInfo shop = null)
|
||||
{
|
||||
InitializeComponent();
|
||||
shopLoginInfo = shop;
|
||||
@@ -115,7 +115,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
|
||||
private void txt_Click(object sender, EventArgs e)
|
||||
{
|
||||
DYSubAccountShopEditForm f = new DYSubAccountShopEditForm(shopLoginInfo);
|
||||
WXSubAccountShopEditForm f = new WXSubAccountShopEditForm(shopLoginInfo);
|
||||
f.SaveComplete += F_SaveComplete;
|
||||
f.ShowDialog();
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
+3
-3
@@ -18,9 +18,9 @@ using TemuKJD.PDDForms.AdminForms;
|
||||
using TemuKJD.PDDForms.ProductThirdSelectForms;
|
||||
using Work;
|
||||
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
public class DYShopBrowserObject
|
||||
public class WXShopBrowserObject
|
||||
{
|
||||
public delegate void InfoReceivedHandler(string information);
|
||||
public event InfoReceivedHandler OnInfoReceived;
|
||||
@@ -521,7 +521,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
//}
|
||||
|
||||
List<ShopLoginInfo> shopLst = new List<ShopLoginInfo>();
|
||||
DYShopListForm.Instance.Invoke(new Action(() =>
|
||||
WXShopListForm.Instance.Invoke(new Action(() =>
|
||||
{
|
||||
PDDThirdProdSelectAddShopForm shopForm = new PDDThirdProdSelectAddShopForm();
|
||||
shopForm.ShowDialog();
|
||||
+189
@@ -0,0 +1,189 @@
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
partial class WXShopForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("店铺列表");
|
||||
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("子账号管理");
|
||||
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("订单金额统计");
|
||||
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("工作明细统计");
|
||||
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("运费模板");
|
||||
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("高级运费模板");
|
||||
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("素材库管理");
|
||||
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("店铺管理", new System.Windows.Forms.TreeNode[] {
|
||||
treeNode1,
|
||||
treeNode2,
|
||||
treeNode3,
|
||||
treeNode4,
|
||||
treeNode5,
|
||||
treeNode6,
|
||||
treeNode7});
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.panel3 = new System.Windows.Forms.Panel();
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.lblName = new System.Windows.Forms.Label();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.tv = new TemuKJD.UserComponent.UcTreeView();
|
||||
this.panel1.SuspendLayout();
|
||||
this.panel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.BackColor = System.Drawing.Color.White;
|
||||
this.panel1.Controls.Add(this.panel3);
|
||||
this.panel1.Controls.Add(this.panel2);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(792, 461);
|
||||
this.panel1.TabIndex = 2;
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel3.Location = new System.Drawing.Point(0, 28);
|
||||
this.panel3.Name = "panel3";
|
||||
this.panel3.Size = new System.Drawing.Size(792, 433);
|
||||
this.panel3.TabIndex = 1;
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(244)))), ((int)(((byte)(244)))));
|
||||
this.panel2.Controls.Add(this.lblName);
|
||||
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panel2.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(792, 28);
|
||||
this.panel2.TabIndex = 0;
|
||||
//
|
||||
// lblName
|
||||
//
|
||||
this.lblName.AutoSize = true;
|
||||
this.lblName.Location = new System.Drawing.Point(5, 6);
|
||||
this.lblName.Name = "lblName";
|
||||
this.lblName.Size = new System.Drawing.Size(57, 17);
|
||||
this.lblName.TabIndex = 0;
|
||||
this.lblName.Text = "lblName";
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tv);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.panel1);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(933, 461);
|
||||
this.splitContainer1.SplitterDistance = 140;
|
||||
this.splitContainer1.SplitterWidth = 1;
|
||||
this.splitContainer1.TabIndex = 3;
|
||||
//
|
||||
// tv
|
||||
//
|
||||
this.tv.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(251)))), ((int)(((byte)(251)))));
|
||||
this.tv.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.tv.ChildNodeSelectedBgColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.tv.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.tv.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tv.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawAll;
|
||||
this.tv.ExpandButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
|
||||
this.tv.FullRowSelect = true;
|
||||
this.tv.GroupBgColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249)))));
|
||||
this.tv.GroupFont = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.tv.GroupTitleColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
|
||||
this.tv.HideCollapsedGroup = false;
|
||||
this.tv.ItemHeight = 32;
|
||||
this.tv.Location = new System.Drawing.Point(0, 0);
|
||||
this.tv.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.tv.Name = "tv";
|
||||
treeNode1.Name = "店铺列表";
|
||||
treeNode1.Text = "店铺列表";
|
||||
treeNode2.Name = "子账号管理";
|
||||
treeNode2.Text = "子账号管理";
|
||||
treeNode3.Name = "订单金额统计";
|
||||
treeNode3.Text = "订单金额统计";
|
||||
treeNode4.Name = "工作明细统计";
|
||||
treeNode4.Text = "工作明细统计";
|
||||
treeNode5.Name = "运费模板";
|
||||
treeNode5.Text = "运费模板";
|
||||
treeNode6.Name = "高级运费模板";
|
||||
treeNode6.Text = "高级运费模板";
|
||||
treeNode7.Name = "素材库管理";
|
||||
treeNode7.Text = "素材库管理";
|
||||
treeNode8.Name = "店铺管理";
|
||||
treeNode8.Text = "店铺管理";
|
||||
this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
|
||||
treeNode8});
|
||||
this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235)))));
|
||||
this.tv.Size = new System.Drawing.Size(140, 461);
|
||||
this.tv.TabIndex = 1;
|
||||
this.tv.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tv_AfterSelect);
|
||||
//
|
||||
// ShopForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(933, 461);
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.Name = "ShopForm";
|
||||
this.Text = "ShopForm";
|
||||
this.Load += new System.EventHandler(this.ShopForm_Load);
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel2.ResumeLayout(false);
|
||||
this.panel2.PerformLayout();
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private UserComponent.UcTreeView tv;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private System.Windows.Forms.Label lblName;
|
||||
private System.Windows.Forms.Panel panel3;
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
using AllBase;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using TemuKJD.KJDForms.AdminForms;
|
||||
using TemuKJD.BaseForms;
|
||||
using TemuKJD.KJDForms.ProductSelectForms;
|
||||
using TemuKJD.KJDForms.ProductThirdSelectForms;
|
||||
using TemuKJD.KJDForms.ShopForms.Statistics;
|
||||
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
public partial class WXShopForm : BaseForm
|
||||
{
|
||||
public Lazy<WXShopListForm> shopListForm = new Lazy<WXShopListForm>();
|
||||
public Lazy<WXSubAccountListForm> sbuAccountForm = new Lazy<WXSubAccountListForm>();
|
||||
|
||||
|
||||
public WXShopForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
try
|
||||
{
|
||||
tv.SelectedNode = tv.Nodes[0].Nodes[0];
|
||||
tv.ExpandGroup(tv.Nodes[0].Name);
|
||||
|
||||
List<string> hideName = new List<string>() { "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计" };
|
||||
|
||||
if (BaseClass.GroupId == 3)
|
||||
{
|
||||
hideName.Remove("子账号管理");
|
||||
}
|
||||
|
||||
foreach (var item in hideName)
|
||||
{
|
||||
var n = tv.Nodes[0].Nodes.Find(item, true);
|
||||
if (n.Count() > 0)
|
||||
n[0].Remove();
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
private void tv_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
MainForm.sCurrentModule = e.Node.Name;
|
||||
this.lblName.Text = e.Node.Text;
|
||||
// 如果是一级菜单,不做任何动作
|
||||
if (e.Node.Parent == null) return;
|
||||
new Thread(() =>
|
||||
{
|
||||
Thread.Sleep(200);
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
switch (e.Node.Name)
|
||||
{
|
||||
case "店铺列表":
|
||||
SetForm(shopListForm.Value);
|
||||
break;
|
||||
case "子账号管理":
|
||||
SetForm(sbuAccountForm.Value);
|
||||
break;
|
||||
}
|
||||
}));
|
||||
}).Start();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示隐藏层
|
||||
/// </summary>
|
||||
/// <param name="f"></param>
|
||||
private void SetForm(Form f)
|
||||
{
|
||||
if (f == null)
|
||||
{
|
||||
foreach (Control form in panel3.Controls)
|
||||
{
|
||||
form.Visible = false;
|
||||
if (form is Form)
|
||||
{
|
||||
panel3.Controls.Remove(form as Form);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
bool had = false;
|
||||
string sCurrentFormName = f.Name;
|
||||
for (int i = 0; i < panel3.Controls.Count; i++)
|
||||
{
|
||||
if (sCurrentFormName == panel3.Controls[i].Name)
|
||||
{
|
||||
had = true;
|
||||
panel3.Controls[i].Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
panel3.Controls[i].Visible = false;
|
||||
}
|
||||
}
|
||||
if (had)
|
||||
{
|
||||
f = null;
|
||||
return;
|
||||
}
|
||||
f.TopLevel = false;
|
||||
f.Left = 0;
|
||||
f.Top = 0;
|
||||
f.FormBorderStyle = FormBorderStyle.None;
|
||||
panel3.Controls.Add(f);
|
||||
f.AutoSize = true;
|
||||
f.Dock = DockStyle.Fill;
|
||||
try
|
||||
{
|
||||
f.Show();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private void ShopForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var ns = tv.Nodes.Find("运费模板", true);
|
||||
if (ns.Count() > 0)
|
||||
{
|
||||
//foreach (var n in ns)
|
||||
//{
|
||||
// tv.Nodes.Remove(n);
|
||||
//}
|
||||
|
||||
if (AllBase.BaseClass.IsCloudBuyOrder)
|
||||
this.tv.Nodes[0].Nodes.Insert(ns[0].Index + 1, new TreeNode() { Text = "高级运费模板", Name = "高级运费模板" });
|
||||
}
|
||||
tv.SelectedNode = tv.Nodes[0].Nodes[0];
|
||||
tv.ExpandGroup(tv.Nodes[0].Name);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
+37
-51
@@ -1,6 +1,6 @@
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
partial class DYShopListForm
|
||||
partial class WXShopListForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
@@ -28,7 +28,6 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
@@ -39,7 +38,6 @@
|
||||
this.btnLoginSelect = new TemuKJD.UserControls.ButtonEx();
|
||||
this.btnCheck = new TemuKJD.UserControls.ButtonEx();
|
||||
this.panel4 = new System.Windows.Forms.Panel();
|
||||
this.chkUsePddWorkbanch = new TemuKJD.UserComponent.UcCheckBox(this.components);
|
||||
this.cmbNotes = new System.Windows.Forms.ComboBox();
|
||||
this.pnlEmpty = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnSearch = new TemuKJD.UserControls.ButtonEx();
|
||||
@@ -54,6 +52,8 @@
|
||||
this.btnRefreshAuth = new TemuKJD.UserControls.ButtonEx();
|
||||
this.pbLoading = new System.Windows.Forms.PictureBox();
|
||||
this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx();
|
||||
this.chkAutoDrag = new System.Windows.Forms.CheckBox();
|
||||
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
|
||||
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
|
||||
this.colLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
@@ -77,8 +77,6 @@
|
||||
this.colCopyCookies = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colEdit = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colDelete = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.chkAutoDrag = new System.Windows.Forms.CheckBox();
|
||||
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
@@ -199,7 +197,7 @@
|
||||
//
|
||||
// panel4
|
||||
//
|
||||
this.panel4.Controls.Add(this.chkUsePddWorkbanch);
|
||||
this.panel4.Controls.Add(this.btnAddShop);
|
||||
this.panel4.Controls.Add(this.cmbNotes);
|
||||
this.panel4.Controls.Add(this.pnlEmpty);
|
||||
this.panel4.Controls.Add(this.btnSearch);
|
||||
@@ -209,25 +207,12 @@
|
||||
this.panel4.Controls.Add(this.txtShopId);
|
||||
this.panel4.Controls.Add(this.label2);
|
||||
this.panel4.Controls.Add(this.btnImport);
|
||||
this.panel4.Controls.Add(this.btnAddShop);
|
||||
this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel4.Location = new System.Drawing.Point(3, 3);
|
||||
this.panel4.Name = "panel4";
|
||||
this.panel4.Size = new System.Drawing.Size(1023, 40);
|
||||
this.panel4.TabIndex = 0;
|
||||
//
|
||||
// chkUsePddWorkbanch
|
||||
//
|
||||
this.chkUsePddWorkbanch.AutoSize = true;
|
||||
this.chkUsePddWorkbanch.Location = new System.Drawing.Point(897, 11);
|
||||
this.chkUsePddWorkbanch.Name = "chkUsePddWorkbanch";
|
||||
this.chkUsePddWorkbanch.Size = new System.Drawing.Size(128, 21);
|
||||
this.chkUsePddWorkbanch.TabIndex = 417;
|
||||
this.chkUsePddWorkbanch.Text = "使用工作台Cookie";
|
||||
this.chkUsePddWorkbanch.UseVisualStyleBackColor = true;
|
||||
this.chkUsePddWorkbanch.Visible = false;
|
||||
this.chkUsePddWorkbanch.CheckedChanged += new System.EventHandler(this.chkUsePddWorkbanch_CheckedChanged);
|
||||
//
|
||||
// cmbNotes
|
||||
//
|
||||
this.cmbNotes.FormattingEnabled = true;
|
||||
@@ -332,6 +317,7 @@
|
||||
this.btnImport.TabIndex = 371;
|
||||
this.btnImport.Text = "导入店铺";
|
||||
this.btnImport.UseVisualStyleBackColor = false;
|
||||
this.btnImport.Visible = false;
|
||||
this.btnImport.Click += new System.EventHandler(this.btnImport_Click);
|
||||
//
|
||||
// btnAddShop
|
||||
@@ -344,9 +330,9 @@
|
||||
this.btnAddShop.Location = new System.Drawing.Point(1, 9);
|
||||
this.btnAddShop.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnAddShop.Name = "btnAddShop";
|
||||
this.btnAddShop.Size = new System.Drawing.Size(66, 26);
|
||||
this.btnAddShop.Size = new System.Drawing.Size(107, 26);
|
||||
this.btnAddShop.TabIndex = 370;
|
||||
this.btnAddShop.Text = "添加店铺";
|
||||
this.btnAddShop.Text = "扫码添加店铺";
|
||||
this.btnAddShop.UseVisualStyleBackColor = false;
|
||||
this.btnAddShop.Click += new System.EventHandler(this.btnAddShop_Click);
|
||||
//
|
||||
@@ -408,6 +394,7 @@
|
||||
this.dgvShop.AllowUserToDeleteRows = false;
|
||||
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
|
||||
this.dgvShop.AutoRowNumber = true;
|
||||
this.dgvShop.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
|
||||
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
|
||||
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
@@ -453,6 +440,31 @@
|
||||
this.dgvShop.TabIndex = 5;
|
||||
this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
|
||||
//
|
||||
// chkAutoDrag
|
||||
//
|
||||
this.chkAutoDrag.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.chkAutoDrag.AutoSize = true;
|
||||
this.chkAutoDrag.BackColor = System.Drawing.Color.White;
|
||||
this.chkAutoDrag.Location = new System.Drawing.Point(1108, 2);
|
||||
this.chkAutoDrag.Name = "chkAutoDrag";
|
||||
this.chkAutoDrag.Size = new System.Drawing.Size(159, 21);
|
||||
this.chkAutoDrag.TabIndex = 3;
|
||||
this.chkAutoDrag.Text = "登录时自动滑动拼图验证";
|
||||
this.chkAutoDrag.UseVisualStyleBackColor = false;
|
||||
this.chkAutoDrag.Visible = false;
|
||||
this.chkAutoDrag.Click += new System.EventHandler(this.chkAutoDrag_Click);
|
||||
//
|
||||
// statusBar
|
||||
//
|
||||
this.statusBar.BackColor = System.Drawing.Color.White;
|
||||
this.statusBar.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.statusBar.Location = new System.Drawing.Point(0, -1);
|
||||
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.statusBar.Name = "statusBar";
|
||||
this.statusBar.Size = new System.Drawing.Size(1264, 29);
|
||||
this.statusBar.TabIndex = 1;
|
||||
//
|
||||
// colSelect
|
||||
//
|
||||
this.colSelect.FillWeight = 26F;
|
||||
@@ -610,7 +622,7 @@
|
||||
// colUpdateCookies
|
||||
//
|
||||
this.colUpdateCookies.FillWeight = 67F;
|
||||
this.colUpdateCookies.HeaderText = "获取Cookie";
|
||||
this.colUpdateCookies.HeaderText = "导入Cookie";
|
||||
this.colUpdateCookies.Name = "colUpdateCookies";
|
||||
this.colUpdateCookies.ReadOnly = true;
|
||||
this.colUpdateCookies.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
@@ -641,32 +653,7 @@
|
||||
this.colDelete.Name = "colDelete";
|
||||
this.colDelete.ReadOnly = true;
|
||||
//
|
||||
// chkAutoDrag
|
||||
//
|
||||
this.chkAutoDrag.Anchor = System.Windows.Forms.AnchorStyles.Right;
|
||||
this.chkAutoDrag.AutoSize = true;
|
||||
this.chkAutoDrag.BackColor = System.Drawing.Color.White;
|
||||
this.chkAutoDrag.Location = new System.Drawing.Point(1108, 2);
|
||||
this.chkAutoDrag.Name = "chkAutoDrag";
|
||||
this.chkAutoDrag.Size = new System.Drawing.Size(159, 21);
|
||||
this.chkAutoDrag.TabIndex = 3;
|
||||
this.chkAutoDrag.Text = "登录时自动滑动拼图验证";
|
||||
this.chkAutoDrag.UseVisualStyleBackColor = false;
|
||||
this.chkAutoDrag.Visible = false;
|
||||
this.chkAutoDrag.Click += new System.EventHandler(this.chkAutoDrag_Click);
|
||||
//
|
||||
// statusBar
|
||||
//
|
||||
this.statusBar.BackColor = System.Drawing.Color.White;
|
||||
this.statusBar.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.statusBar.Location = new System.Drawing.Point(0, -1);
|
||||
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.statusBar.Name = "statusBar";
|
||||
this.statusBar.Size = new System.Drawing.Size(1264, 29);
|
||||
this.statusBar.TabIndex = 1;
|
||||
//
|
||||
// PDDShopListForm
|
||||
// WXShopListForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
@@ -675,7 +662,7 @@
|
||||
this.Controls.Add(this.label1);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.Name = "PDDShopListForm";
|
||||
this.Name = "WXShopListForm";
|
||||
this.Text = "ShopListForm";
|
||||
this.Load += new System.EventHandler(this.ShopListForm_Load);
|
||||
this.VisibleChanged += new System.EventHandler(this.ShopListForm_VisibleChanged);
|
||||
@@ -748,6 +735,5 @@
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colCopyCookies;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colEdit;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colDelete;
|
||||
private UserComponent.UcCheckBox chkUsePddWorkbanch;
|
||||
}
|
||||
}
|
||||
+53
-186
@@ -24,13 +24,13 @@ using TemuKJD.BLL;
|
||||
using System.Diagnostics;
|
||||
//using TemuKJD.PDDForms.AdminForms;
|
||||
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
public partial class DYShopListForm : BaseForm
|
||||
public partial class WXShopListForm : BaseForm
|
||||
{
|
||||
public static List<DYShopListForm> LstShopListFormInatance = new List<DYShopListForm>();
|
||||
private static DYShopListForm _instance = null;
|
||||
public static DYShopListForm Instance { get { if (_instance == null) { _instance = new DYShopListForm(); } return _instance; } set { _instance = value; } }
|
||||
public static List<WXShopListForm> LstShopListFormInatance = new List<WXShopListForm>();
|
||||
private static WXShopListForm _instance = null;
|
||||
public static WXShopListForm Instance { get { if (_instance == null) { _instance = new WXShopListForm(); } return _instance; } set { _instance = value; } }
|
||||
public static bool IsOperate { get; set; } = false;
|
||||
private bool isLoading { get; set; } = false;
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
// 获取本地店铺和服务端店铺。将服务端相关信息与本地店铺合并后暂时存在内存中(不保存敏感信息)。
|
||||
GlobalConfig.ShopLoginList = new ConcurrentList<ShopLoginInfo>();
|
||||
// 获取服务端店铺
|
||||
var serverShopList = DYShopListForm.GetServerShop();
|
||||
var serverShopList = WXShopListForm.GetServerShop();
|
||||
var localShopList = new ConcurrentList<ShopLoginInfo>();
|
||||
localShopList.AddRange(serverShopList);
|
||||
foreach (var localShop in localShopList)
|
||||
@@ -202,7 +202,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
+ "&login_status2=" + shop.LoginStatus2
|
||||
+ "&cookie=" + shop.Cookies.Replace("&", "&").Replace("%", "%").Replace("+", "+")
|
||||
+ "&cookie2=" + shop.Cookies2.Replace("&", "&").Replace("%", "%").Replace("+", "+")
|
||||
+ "&pddid=" + shop.pddid
|
||||
+ "&openid=" + shop.openid
|
||||
+ fTool;
|
||||
var result = GetHtml.PostUtf8(url, data);
|
||||
if (!result.Contains("\"code\":200"))
|
||||
@@ -233,7 +233,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
return result;
|
||||
}
|
||||
|
||||
public DYShopListForm()
|
||||
public WXShopListForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
@@ -244,9 +244,15 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
|
||||
private void btnAddShop_Click(object sender, EventArgs e)
|
||||
{
|
||||
DYShopAddEditForm sae = new DYShopAddEditForm();
|
||||
sae.SaveCompleteWithDescribe += Sae_SaveComplete;
|
||||
sae.Show();
|
||||
//WXShopAddEditForm sae = new WXShopAddEditForm();
|
||||
//sae.SaveCompleteWithDescribe += Sae_SaveComplete;
|
||||
//sae.Show();
|
||||
WXShopLoginForm shopLoginForm = new WXShopLoginForm(null);
|
||||
shopLoginForm.openType = EnumOpenType.login;
|
||||
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop?redirect_url=%2Fhome";
|
||||
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
|
||||
shopLoginForm.ShowDialog();
|
||||
btnRefreshCookie_Click(null, null);
|
||||
}
|
||||
|
||||
private void Sae_SaveComplete(object obj, object isAdd)
|
||||
@@ -288,7 +294,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
Task.Run(() =>
|
||||
{
|
||||
//CheckShopListLogin(new string[] { (obj as DouShopLoginInfo).LoginName });
|
||||
StartUp.SaveLocalShopLoginInfo();
|
||||
//StartUp.SaveLocalShopLoginInfo();
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
btnRefreshCookie_Click(null, null);
|
||||
@@ -488,7 +494,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
"多重登录",
|
||||
param.ApiAuthStatus,
|
||||
param.BuyApiAuth.ApiAuthStatus,
|
||||
"获取Cookie",
|
||||
"导入Cookie",
|
||||
"复制Cookie",
|
||||
"编辑",
|
||||
"删除");
|
||||
@@ -550,6 +556,12 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void CheckShopLogin(ShopLoginInfo[] shops, bool isShowProgress = true)
|
||||
{
|
||||
CheckShopLogin(shops.Select(s => s.ShopId).ToArray(), isShowProgress);
|
||||
}
|
||||
|
||||
public void CheckShopLogin(string[] shopNames, bool isShowProgress = true)
|
||||
{
|
||||
|
||||
@@ -560,7 +572,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
|
||||
// 先从服务端取最新cookie
|
||||
var serverCampanys = ShopBLL.AdminGetServerShopLstByIds(campanys.Select(c => c.ShopId).ToList());
|
||||
var sss = string.Join(",", serverCampanys.Select(s => s.UserName + s.ShopAccount));
|
||||
//var shopInfoTmp = string.Join(",", serverCampanys.Select(s => s.UserName + s.ShopAccount));
|
||||
var serverShop = serverCampanys.FirstOrDefault();
|
||||
if (shop != null && serverShop != null)
|
||||
{
|
||||
@@ -576,7 +588,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
if (shop != null)
|
||||
{
|
||||
var loginResult = CheckShopLogin(shop);
|
||||
if (loginResult.Contains("\"success\":true") && !loginResult.Contains("\"login\":true"))
|
||||
if (!loginResult.Contains("\"code\":0"))
|
||||
{
|
||||
shop.Cookies = "empty=true;";
|
||||
foreach (var sc in campanys)
|
||||
@@ -608,45 +620,21 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetShopStatus(ShopLoginInfo shop)
|
||||
public static string GetShopInfo(ShopLoginInfo shop)
|
||||
{
|
||||
string url = "https://mms.pinduoduo.com/janus/api/userinfo";
|
||||
string refere = "https://mms.pinduoduo.com/login/";
|
||||
refere = "https://mms.pinduoduo.com/home";
|
||||
string body = @"{}";
|
||||
var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere);
|
||||
string url = "https://store.weixin.qq.com/shop/home";
|
||||
string refere = "";
|
||||
var result = WXHttpResponseBLL.WeiXinGetResponse(shop, url, refere, true);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static string CheckShopLogin(ShopLoginInfo shop, string refere = "https://mms.pinduoduo.com/home/")
|
||||
{
|
||||
string url = "https://mms.pinduoduo.com/janus/api/checkLogin";
|
||||
string body = @"{}";
|
||||
return HttpResponseBLL.PDDPostResponse(shop, url, body, refere);
|
||||
string url = "https://store.weixin.qq.com/shop-faas/mmecnodebase/reachDiolog/getBizNotifyConfig?token=&lang=zh_CN";
|
||||
string body = @"{""path"":""https://store.weixin.qq.com/shop/home""}";
|
||||
return WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取国际版登录状态
|
||||
/// </summary>
|
||||
/// <param name="shop"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetShopStatus2(ShopLoginInfo shop)
|
||||
{
|
||||
//string url = "https://agentseller.temu.com/api/seller/auth/userInfo";
|
||||
//string refere = "https://agentseller.temu.com/";
|
||||
//string body = @"{}";
|
||||
//return HttpResponseBLL.PDDPostResponse2(shop, url, body, refere);
|
||||
return "";
|
||||
}
|
||||
|
||||
public static string GetShopLogin2Code(ShopLoginInfo shop)
|
||||
{
|
||||
//string url = "https://seller.kuajingmaihuo.com/bg/quiet/api/auth/obtainCode";
|
||||
//string refere = "https://seller.kuajingmaihuo.com/settle/seller-login?redirectUrl=https%3A%2F%2Fagentseller.temu.com%2F®ion=1&source=https%3A%2F%2Fagentseller.temu.com%2Fmain%2Fauthentication%3FredirectUrl%3Dhttps%253A%252F%252Fagentseller.temu.com%252F";
|
||||
//string body = @"{""redirectUrl"":""https://agentseller.temu.com/main/authentication""}";
|
||||
//return HttpResponseBLL.PostResponse(shop, url, body, refere);
|
||||
return "";
|
||||
}
|
||||
|
||||
private void ShopListForm_VisibleChanged(object sender, EventArgs e)
|
||||
{
|
||||
@@ -659,10 +647,6 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
|
||||
private void ShopListForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
chkUsePddWorkbanch.CheckedChanged -= chkUsePddWorkbanch_CheckedChanged;
|
||||
chkUsePddWorkbanch.Checked = BaseClass.UsePddWorkbanch;
|
||||
chkUsePddWorkbanch.CheckedChanged += chkUsePddWorkbanch_CheckedChanged;
|
||||
|
||||
if (BaseClass.GroupId != 3)
|
||||
{
|
||||
this.dgvShop.Columns["ColEdit"].Visible = false;
|
||||
@@ -676,20 +660,6 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
this.chkAutoDrag.Checked = GlobalConfig.TemuShopSettingParam.IsAutoDragLogin;
|
||||
this.splitContainer2.FixedPanel = FixedPanel.Panel2;
|
||||
|
||||
//子账号
|
||||
//var url = BaseClass.BuildObjString("shop&act=get_shop_user_sub_group");
|
||||
//var data = UserLogin.GetSignaturex();
|
||||
//var result = GetHtml.PostUtf8(url, data);
|
||||
//if (result?.Contains("\"code\":200") == true)
|
||||
//{
|
||||
// var jObj = JObject.Parse(result);
|
||||
// List<DouShopSubAccountInfo> shopSubAccountList = JsonHelper.DeserializeJsonToList<DouShopSubAccountInfo>(jObj["data"].ToString());
|
||||
// foreach (var shop in GlobalConfig.DouShopLoginList)
|
||||
// {
|
||||
// shop.ShopSubAccountList.Clear();
|
||||
// shop.ShopSubAccountList.AddRange(shopSubAccountList.Where(s => s.shop_login_name == shop.LoginName));
|
||||
// }
|
||||
//}
|
||||
foreach (var shop in GlobalConfig.ShopLoginList)
|
||||
{
|
||||
shop.ShopSubAccountList.Clear();
|
||||
@@ -703,44 +673,6 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
shop.ShopSubAccountList.Add(subAccount);
|
||||
}
|
||||
}
|
||||
|
||||
GetWorkBenchCookie();
|
||||
}
|
||||
|
||||
void GetWorkBenchCookie()
|
||||
{
|
||||
return;
|
||||
//FiddlerCore.Utilities.SmartAssembly.Attributes.
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
var process = Process.GetProcessesByName("notepad").FirstOrDefault();// 获取Notepad进程的实例
|
||||
if (process != null)
|
||||
{
|
||||
IntPtr handle = process.Handle;
|
||||
MemoryReader.ReadMemory(handle.ToInt32(), 0X1474DEC8, 0X50000000);
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
//var memory = new Memory(process); // 创建Memory对象来操作进程内存
|
||||
//IntPtr address = new IntPtr(0x12345678); // 假设的内存地址(需要根据实际情况调整)
|
||||
//byte[] buffer = new byte[1024]; // 读取数据的缓冲区大小根据需要调整
|
||||
//if (memory.Read(address, buffer)) // 读取内存到buffer中
|
||||
//{
|
||||
// Console.WriteLine("Read successful.");
|
||||
// Console.WriteLine(Encoding.ASCII.GetString(buffer)); // 打印读取的数据(这里假设是ASCII文本)
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// Console.WriteLine("Read failed.");
|
||||
//}
|
||||
|
||||
Thread.Sleep(5000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||||
@@ -756,17 +688,17 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
{
|
||||
case "检测":
|
||||
//CheckShopLoginAsync(new string[] { loginName });
|
||||
break;
|
||||
case "进入店铺":
|
||||
IsOperate = true;
|
||||
{
|
||||
PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop);
|
||||
//shopLoginForm.Parent = this;
|
||||
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
|
||||
shopLoginForm.openType = EnumOpenType.manage;
|
||||
shopLoginForm.WindowState = FormWindowState.Maximized;
|
||||
shopLoginForm.InitUrl = "https://mms.pinduoduo.com/home/";
|
||||
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/home";
|
||||
shopLoginForm.Show();
|
||||
IsOperate = false;
|
||||
}
|
||||
IsOperate = false;
|
||||
break;
|
||||
case "复制Cookie":
|
||||
List<CefSharp.Cookie> cooks = null;
|
||||
@@ -775,8 +707,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
cooks = new List<CefSharp.Cookie>();
|
||||
|
||||
string cookJs = "";
|
||||
var keys = new string[] { "_a42", "_bee", "_f77", "_nano_fp", "api_uid", "JSESSIONID", "mms_b84d1838", "rckk", "ru1k", "ru2k", "PASS_ID", "webp", "x-visit-time" };
|
||||
var keys2 = new string[] { /*"_bee", "_nano_fp", "api_uid", "dilx", "hfsc", "njrpl", "seller_temp"*/ };
|
||||
var keys = new string[] { "_qimei_uuid", "_qpsvr_localtk", "biz_magic", "biz_rand", "biz_ticket", "biz_token", "ptcz", "RK", "yyb_muid" };
|
||||
foreach (var shopCook in cooks)
|
||||
{
|
||||
var cookie = shopCook.Name + "=" + shopCook.Value;
|
||||
@@ -789,44 +720,22 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
var cookie = shopCook.Name + "=" + shopCook.Value;
|
||||
if (!keys.Any(k => cookie.StartsWith(k)))
|
||||
continue;
|
||||
if (!cookie.StartsWith("PASS_ID") && !cookie.StartsWith("_nano_fp") && !cookie.StartsWith("JSESSIONID") &&
|
||||
!cookie.StartsWith("mms_b84d1838") && !cookie.StartsWith("webp") && !cookie.StartsWith("x-visit-time"))
|
||||
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.pinduoduo.com;expires=" +
|
||||
if (!cookie.StartsWith("biz_magic") && !cookie.StartsWith("biz_rand") && !cookie.StartsWith("biz_ticket") && !cookie.StartsWith("biz_token"))
|
||||
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.qq.com; expires=" +
|
||||
DateTime.Now.AddMonths(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
|
||||
else
|
||||
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=mms.pinduoduo.com; expires=" +
|
||||
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=store.weixin.qq.com; expires=" +
|
||||
DateTime.Now.AddMonths(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
|
||||
}
|
||||
// 全球站cookie
|
||||
//foreach (var shopCook in shop.Cookies2.Split(';'))
|
||||
//{
|
||||
// var cookie = shopCook.Trim();
|
||||
// if (cookie.StartsWith("mallid"))
|
||||
// cookie = "mallid=" + shop.ShopId;
|
||||
// if (!keys2.Any(k => cookie.StartsWith(k)))
|
||||
// continue;
|
||||
// if (!cookie.StartsWith("seller_temp") && !cookie.StartsWith("_nano_fp") && !cookie.StartsWith("mallid"))
|
||||
// cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.temu.com; expires=" +
|
||||
// DateTime.Now.AddDays(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
|
||||
// else
|
||||
// cookJs += "\r\ndocument.cookie='" + cookie + "; domain=agentseller.temu.com; expires=" +
|
||||
// DateTime.Now.AddDays(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
|
||||
//}
|
||||
//cookJs += "\r\nwindow.localStorage.setItem('" + "mall-info-id" + "', '" + shop.ShopId + "');";
|
||||
//cookJs += "\r\nwindow.localStorage.setItem('" + "agentseller-mall-info-id" + "', '" + shop.ShopId + "');";
|
||||
cookJs += "\r\nsetTimeout(() => { window.location.href='https://mms.pinduoduo.com/home'; }, 200)";
|
||||
cookJs += "\r\nsetTimeout(() => { window.location.href='https://store.weixin.qq.com/shop/goods/list'; }, 200)";
|
||||
Clipboard.SetDataObject(cookJs);
|
||||
BaseMsgForm.ShowInfo("复制成功");
|
||||
break;
|
||||
case "获取Cookie":
|
||||
case "导入Cookie":
|
||||
////PDDShopUpdateCookieForm updateCookieForm = new PDDShopUpdateCookieForm(shop);
|
||||
////updateCookieForm.SaveComplete += UpdateCookieForm_SaveComplete;
|
||||
////updateCookieForm.ShowDialog();
|
||||
//PDDShopUpdateFddlCookieForm updateFddlCookieForm = new PDDShopUpdateFddlCookieForm(shop);
|
||||
//updateFddlCookieForm.SaveComplete += UpdateCookieForm_SaveComplete;
|
||||
//updateFddlCookieForm.ShowDialog();
|
||||
//updateFddlCookieForm.fddlHelper.UninstallFiddler();
|
||||
WXShopUpdateCookieForm updateCookieForm = new WXShopUpdateCookieForm(shop);
|
||||
updateCookieForm.SaveComplete += UpdateCookieForm_SaveComplete;
|
||||
updateCookieForm.ShowDialog();
|
||||
break;
|
||||
case "删除":
|
||||
if (BaseMsgForm.ShowConfirm("确定删除店铺吗?删除后不可恢复!").DialogResult == DialogResult.Cancel)
|
||||
@@ -836,14 +745,14 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
StartUp.SaveLocalShopLoginInfo();
|
||||
break;
|
||||
case "编辑":
|
||||
DYShopAddEditForm editForm = new DYShopAddEditForm(shop);
|
||||
WXShopAddEditForm editForm = new WXShopAddEditForm(shop);
|
||||
editForm.SaveCompleteWithDescribe += Sae_SaveComplete;
|
||||
editForm.ShowDialog();
|
||||
break;
|
||||
case "登录":
|
||||
IsOperate = true;
|
||||
{
|
||||
PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop);
|
||||
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
|
||||
shopLoginForm.openType = EnumOpenType.login;
|
||||
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
|
||||
shopLoginForm.ShowDialog();
|
||||
@@ -993,27 +902,27 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
|
||||
private void btnLoginSelect_Click(object sender, EventArgs e)
|
||||
{
|
||||
DYShopListForm.IsOperate = true;
|
||||
WXShopListForm.IsOperate = true;
|
||||
if (this.btnLoginSelect.Text == "登录选中")
|
||||
{
|
||||
List<string> shopLoginNameList = GetCheckedList();
|
||||
if (!shopLoginNameList.Any())
|
||||
{
|
||||
BaseMsgForm.ShowError("请选择需要登录的店铺");
|
||||
DYShopListForm.IsOperate = false;
|
||||
WXShopListForm.IsOperate = false;
|
||||
return;
|
||||
}
|
||||
|
||||
shopLoginNameList = shopLoginNameList.Distinct().ToList();
|
||||
foreach (var loginName in shopLoginNameList)
|
||||
{
|
||||
if (DYShopListForm.IsOperate == false)
|
||||
if (WXShopListForm.IsOperate == false)
|
||||
break;
|
||||
|
||||
var shopInfo = GlobalConfig.ShopLoginList.FirstOrDefault(v => v.LoginName == loginName);
|
||||
if (shopInfo != null && !string.IsNullOrEmpty(shopInfo.LoginName) && !string.IsNullOrEmpty(shopInfo.Password))
|
||||
{
|
||||
PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shopInfo);
|
||||
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shopInfo);
|
||||
shopLoginForm.openType = EnumOpenType.login;
|
||||
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
|
||||
shopLoginForm.ShowDialog();
|
||||
@@ -1021,7 +930,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
}
|
||||
btnRefreshCookie_Click(null, null);
|
||||
}
|
||||
DYShopListForm.IsOperate = false;
|
||||
WXShopListForm.IsOperate = false;
|
||||
}
|
||||
|
||||
private void chkAutoDrag_Click(object sender, EventArgs e)
|
||||
@@ -1109,47 +1018,5 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
this.txtShopId.Text = "";
|
||||
this.txtShopName.Text = "";
|
||||
}
|
||||
|
||||
private static string sJsSetCookie = @"
|
||||
function setCookie(name, value, daysToLive, path, domain, secure, httpOnly, sameSite) {
|
||||
//let cookie = name + '=' + encodeURIComponent(value) + ';';
|
||||
let cookie = name + '=' + value + ';';
|
||||
if (daysToLive) {
|
||||
if (typeof daysToLive === 'string' && daysToLive.toLowerCase() == 'session') {
|
||||
cookie += 'expires=Session;';
|
||||
}
|
||||
else {
|
||||
let date = new Date();
|
||||
date.setTime(date.getTime() + (daysToLive * 24 * 60 * 60 * 1000));
|
||||
cookie += 'expires=' + date.toUTCString() + ';';
|
||||
}
|
||||
}
|
||||
if (path) {
|
||||
cookie += 'path=' + path + ';';
|
||||
}
|
||||
if (domain)
|
||||
{
|
||||
cookie += 'domain=' + domain + ';';
|
||||
}
|
||||
if (secure)
|
||||
{
|
||||
cookie += 'secure;';
|
||||
}
|
||||
if (httpOnly)
|
||||
{
|
||||
cookie += 'HttpOnly;';
|
||||
}
|
||||
if (sameSite)
|
||||
{
|
||||
cookie += 'SameSite=' + sameSite + ';';
|
||||
}
|
||||
document.cookie = cookie;
|
||||
}";
|
||||
|
||||
private void chkUsePddWorkbanch_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
BaseMsgForm.ShowInfo("您已切换Cookie来源,请重启软件生效!");
|
||||
NaiBa.Util.Helper.ConfigHelper.SaveConfig("use_pdd_workbanch", chkUsePddWorkbanch.Checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
File renamed without changes.
+3
-3
@@ -1,6 +1,6 @@
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
partial class PDDShopLoginForm
|
||||
partial class WXShopLoginForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
@@ -28,7 +28,7 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDDShopLoginForm));
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXShopLoginForm));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.pnlMultiLogin = new System.Windows.Forms.Panel();
|
||||
this.cmbMultiCookieName = new DevComponents.DotNetBar.Controls.ComboBoxEx();
|
||||
+85
-262
@@ -26,8 +26,9 @@ using Work;
|
||||
using Work.BLL.Tools;
|
||||
using TemuKJD.BLL;
|
||||
using AllBase.Model.Result.PDDResult;
|
||||
using NaiBa.Util;
|
||||
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
public enum EnumOpenType
|
||||
{
|
||||
@@ -35,56 +36,37 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
manage,
|
||||
refresh_cookie,
|
||||
}
|
||||
public partial class PDDShopLoginForm : LRBaseForm
|
||||
public partial class WXShopLoginForm : LRBaseForm
|
||||
{
|
||||
public static PDDShopLoginForm shopLoginInstance { get; set; } = null;
|
||||
|
||||
public string pddUploadGoodsData = "";
|
||||
//public static AllBase.Model.Param.PDDProdParam.PDDProductUploadParam prodParam = null;
|
||||
public string pddSourceGoodsDetail = "";
|
||||
//public static AllBase.Model.Result.PDDResult.PDDProductDetailInfo prodInfo = null;
|
||||
public string pddSourceGoodsDetailTemp = "";
|
||||
public string pddSourceGoodsDecorationTemp = "";
|
||||
public string pddSourceGoodsChanceId = "";
|
||||
public string pddGetChanceGoodsRefere = "";
|
||||
public string pddEditChanceGoodsRefereChanceTab = "";
|
||||
public static WXShopLoginForm shopLoginInstance { get; set; } = null;
|
||||
|
||||
public int CloseAfterSecond { get; set; }
|
||||
public EnumOpenType openType = EnumOpenType.manage;
|
||||
public bool isMultiLogin = false;
|
||||
public string MultiLoginCookieName = "";
|
||||
public string InitUrl = "";
|
||||
private string shopCookieHead = "pinduoduo.com";
|
||||
private string shopLoginUrl = "https://mms.pinduoduo.com/login";
|
||||
private string shopMainUrl = "https://mms.pinduoduo.com/home";
|
||||
private string shopCookieHead = "qq.com";
|
||||
private string shopLoginUrl = "https://store.weixin.qq.com/shop?redirect_url=%2Fhome";
|
||||
private string shopMainUrl = "https://store.weixin.qq.com/shop/home";
|
||||
public ChromiumWebBrowser cefWebBrowser = null;
|
||||
private ShopLoginInfo shop = null;
|
||||
private List<ShopCompany> lstShopCompany = new List<ShopCompany>();
|
||||
private ConcurrentList<ShopCompany> lstShopCompany = new ConcurrentList<ShopCompany>();
|
||||
private string currentUrl = "";
|
||||
|
||||
public PDDShopLoginForm(ShopLoginInfo shopInfo)
|
||||
public WXShopLoginForm(ShopLoginInfo shopInfo)
|
||||
{
|
||||
//if (shopLoginInstance != null && !shopLoginInstance.IsDisposed)
|
||||
//{
|
||||
// shopLoginInstance.Dispose();
|
||||
//}
|
||||
shopLoginInstance = this;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
this.shop = shopInfo;
|
||||
this.txtUserName.Text = shopInfo.LoginName;
|
||||
this.txtPassWord.Text = DataOpenSSL.DecryptString(shopInfo.Password);
|
||||
this.txtUserName.Text = (shopInfo?.LoginName).ParseToString();
|
||||
this.txtPassWord.Text = DataOpenSSL.DecryptString((shopInfo?.Password).ParseToString());
|
||||
}
|
||||
|
||||
private void ShopLoginForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.splitContainer1.SplitterDistance = this.splitContainer1.Height - 62;
|
||||
pddSourceGoodsDetailTemp = "";
|
||||
pddSourceGoodsDecorationTemp = ""; // 详情装修
|
||||
pddSourceGoodsChanceId = "";
|
||||
pddGetChanceGoodsRefere = "";
|
||||
pddEditChanceGoodsRefereChanceTab = "";
|
||||
|
||||
if (isMultiLogin && shop != null)
|
||||
{
|
||||
@@ -126,62 +108,12 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
if (!this.Created)
|
||||
break;
|
||||
|
||||
if (this.shop != null && currentUrl.TrimEnd('/') == shopMainUrl)
|
||||
if (currentUrl.TrimEnd('/') == shopMainUrl)
|
||||
{
|
||||
if (!cefWebBrowser.GetBrowser().MainFrame.IsValid)
|
||||
continue;
|
||||
|
||||
// 刷新cookie
|
||||
if (openType == EnumOpenType.refresh_cookie)
|
||||
{
|
||||
string cookies = "";
|
||||
List<Cookie> cookieList = CEFBrowser.GetCookieList(shopCookieHead, cefWebBrowser.GetCookieManager(null));
|
||||
foreach (var cookie in cookieList)
|
||||
{
|
||||
cookie.Domain = cookie.Domain.Replace(".mms.pinduoduo.com", "mms.pinduoduo.com");
|
||||
}
|
||||
List<Cookie> cookieListNew = new List<Cookie>();
|
||||
if (cookieList != null && cookieList.Count > 0)
|
||||
{
|
||||
foreach (var cookie in cookieList)
|
||||
{
|
||||
//PASS_ID同时出现两个,domain是mms.pinduoduo.com才是能登录店铺后台的
|
||||
if (cookie.Name == "PASS_ID" && cookie.Domain != "mms.pinduoduo.com"
|
||||
&& cookieList.Any(c => c.Name == "PASS_ID" && c.Domain == "mms.pinduoduo.com"))
|
||||
continue;
|
||||
|
||||
cookies += cookie.Name + "=" + cookie.Value + "; ";
|
||||
cookieListNew.Add(cookie);
|
||||
}
|
||||
|
||||
if (cookieListNew.Any(c => c.Name == "PASS_ID" && c.Value.StartsWith("windows_1")) &&
|
||||
!cookieListNew.Any(c => c.Name == "PddBrowser"))
|
||||
{
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "PddBrowser", Value = "1", Expires = DateTime.Now.AddYears(1), });
|
||||
}
|
||||
cookies = JsonHelper.SerializeObject(cookieListNew);
|
||||
|
||||
if (!string.IsNullOrEmpty(cookies))
|
||||
{
|
||||
shop.Cookies = cookies;
|
||||
shop.LastRefreshDate = DateTime.Now.ToString("yyyyMMdd");
|
||||
DYShopListForm.UpdateServerShopCookies(shop); // 店铺cookie写入服务端
|
||||
if (this.Created && this.chkCloseAfterLogin.Checked)
|
||||
{
|
||||
Invoke(new Action(() => { this.Close(); }));
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (openType!= EnumOpenType.login)
|
||||
continue;
|
||||
|
||||
if (!lstShopCompany.Any(c => c.LoginName == shop.LoginName))
|
||||
if (!lstShopCompany.Any())
|
||||
continue;
|
||||
else // 检测到登录成功后
|
||||
{
|
||||
@@ -189,86 +121,72 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
List<Cookie> cookieList = CEFBrowser.GetCookieList(shopCookieHead, cefWebBrowser.GetCookieManager(null));
|
||||
foreach (var cookie in cookieList)
|
||||
{
|
||||
cookie.Domain = cookie.Domain.Replace(".mms.pinduoduo.com", "mms.pinduoduo.com");
|
||||
cookie.Domain = cookie.Domain.Replace(".store.weixin.qq.com", "store.weixin.qq.com");
|
||||
}
|
||||
List<Cookie> cookieListNew = new List<Cookie>();
|
||||
if (cookieList != null && cookieList.Count > 0)
|
||||
{
|
||||
foreach (var cookie in cookieList)
|
||||
{
|
||||
//PASS_ID同时出现两个,domain是mms.pinduoduo.com才是能登录店铺后台的
|
||||
if (cookie.Name == "PASS_ID" && cookie.Domain != "mms.pinduoduo.com"
|
||||
&& cookieList.Any(c => c.Name == "PASS_ID" && c.Domain == "mms.pinduoduo.com"))
|
||||
continue;
|
||||
|
||||
cookies += cookie.Name + "=" + cookie.Value + "; ";
|
||||
cookieListNew.Add(cookie);
|
||||
}
|
||||
//cookies = cookies.Trim().TrimEnd(';');
|
||||
cookies = JsonHelper.SerializeObject(cookieListNew);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(cookies)
|
||||
&& lstShopCompany.Any(c => c.LoginName == shop.LoginName))
|
||||
if (!string.IsNullOrEmpty(cookies))
|
||||
{
|
||||
var lstShopCompanyCopy = lstShopCompany.ToList();
|
||||
lstShopCompanyCopy = lstShopCompanyCopy.Where(l => l.LoginName == shop.LoginName).ToList();
|
||||
|
||||
foreach (ShopCompany sc in lstShopCompanyCopy)
|
||||
{
|
||||
ShopLoginInfo newShop = new ShopLoginInfo()
|
||||
{
|
||||
LoginName = shop.LoginName,
|
||||
Password = shop.Password,
|
||||
GroupName = shop.GroupName,
|
||||
LoginName = shop?.LoginName ?? sc.AccountId,
|
||||
Password = shop?.Password,
|
||||
GroupName = shop?.GroupName,
|
||||
ShopAccount = sc.AccountName,
|
||||
ShopId = sc.AccountId,
|
||||
SubUserName = shop.SubUserName,
|
||||
Notes = shop.Notes,
|
||||
AntiContents = new NaiBa.Util.ConcurrentList<string> { sc.AntiContent },
|
||||
SubUserName = shop?.SubUserName,
|
||||
Notes = shop?.Notes,
|
||||
openid = sc.openid,
|
||||
};
|
||||
|
||||
var oldShop = GlobalConfig.ShopLoginList.FirstOrDefault(l =>
|
||||
l.LoginName == newShop.LoginName);
|
||||
var oldShop = GlobalConfig.ShopLoginList.FirstOrDefault(l => l.ShopId == newShop.ShopId);
|
||||
if (oldShop == null)
|
||||
{
|
||||
GlobalConfig.ShopLoginList.Add(newShop);
|
||||
ShopBLL.AddServerShop(newShop); // 店铺写入到服务端
|
||||
if (shop == null)
|
||||
shop = newShop;
|
||||
}
|
||||
else
|
||||
{
|
||||
oldShop.LoginName = newShop.LoginName;
|
||||
oldShop.Password = newShop.Password;
|
||||
oldShop.GroupName = newShop.GroupName;
|
||||
oldShop.ShopAccount = newShop.ShopAccount;
|
||||
oldShop.ShopId = newShop.ShopId;
|
||||
oldShop.SubUserName = newShop.SubUserName;
|
||||
oldShop.Notes = newShop.Notes;
|
||||
oldShop.AntiContents.AddRange(newShop.AntiContents);
|
||||
while (oldShop.AntiContents.Count > 50)
|
||||
oldShop.AntiContents.RemoveAt(0);
|
||||
oldShop.LoginName = newShop.LoginName;
|
||||
oldShop.ShopAccount = newShop.ShopAccount;
|
||||
oldShop.openid = newShop.openid;
|
||||
|
||||
// 店铺更新写入到服务端
|
||||
var url = BaseClass.BuildObjString("shop/mdy_shop");
|
||||
var data = UserLogin.GetSignaturex()
|
||||
+ "&login_name=" + oldShop.LoginName
|
||||
+ "&new_shop_id=" + oldShop.ShopId
|
||||
+ "&shop_id=" + oldShop.ShopId
|
||||
+ "&shop_account=" + oldShop.ShopAccount;
|
||||
var result = GetHtml.PostUtf8(url, data);
|
||||
|
||||
ShopBLL.MdyAntiContent(oldShop);
|
||||
}
|
||||
}
|
||||
var lstShop = GlobalConfig.ShopLoginList.Where(l => l.LoginName == shop.LoginName).ToList();
|
||||
|
||||
}
|
||||
// 店铺cookie写入服务端,多店共用一个登录账号一组cookie
|
||||
WXShopListForm.UpdateServerShopCookies(shop);
|
||||
// 手动更新内存中的店铺cookie
|
||||
var lstShop = GlobalConfig.ShopLoginList.Where(l => l.LoginName == shop?.LoginName).ToList();
|
||||
foreach (var s in lstShop)
|
||||
{
|
||||
s.LoginStatus = "登录成功";
|
||||
s.Cookies = cookies;
|
||||
s.LastRefreshDate = DateTime.Now.ToString("yyyyMMdd");
|
||||
s.pddid = ""; // 网页登录无拼多多id(pddid)
|
||||
}
|
||||
StartUp.SaveLocalShopLoginInfo(); // 店铺保存到本地
|
||||
DYShopListForm.UpdateServerShopCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
|
||||
|
||||
OnSaveComplete(shop);
|
||||
if (this.Created && this.chkCloseAfterLogin.Checked)
|
||||
@@ -352,13 +270,12 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
/// </summary>
|
||||
private void AutoLogin()
|
||||
{
|
||||
if (shop == null)
|
||||
if (openType != EnumOpenType.login && shop == null)
|
||||
return;
|
||||
|
||||
if (cefWebBrowser == null)
|
||||
{
|
||||
//cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser("about:blank", false);
|
||||
if (!string.IsNullOrEmpty(InitUrl)) //temu国际版不支持无痕模式多开,此处改为true,每次创建cefwebbrowser时删除cookie
|
||||
if (!string.IsNullOrEmpty(InitUrl))
|
||||
cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(InitUrl, false);
|
||||
else
|
||||
cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(shopMainUrl, false);
|
||||
@@ -375,7 +292,7 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
cefWebBrowser.Dock = DockStyle.Fill;
|
||||
|
||||
//js绑定C#对象
|
||||
DYShopBrowserObject shopObj = new DYShopBrowserObject();
|
||||
WXShopBrowserObject shopObj = new WXShopBrowserObject();
|
||||
shopObj.OnInfoReceived += ShopObj_OnInfoReceived;
|
||||
CefSharpSettings.WcfEnabled = true;
|
||||
cefWebBrowser.JavascriptObjectRepository.Register(
|
||||
@@ -385,20 +302,15 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
options: new BindingOptions { Binder = BindingOptions.DefaultBinder.Binder /*CamelCaseJavascriptNames = false*/ /*cef79*/ }
|
||||
);
|
||||
|
||||
if (shop.Cookies == null)
|
||||
shop.Cookies = "";
|
||||
if (shop.Cookies2 == null)
|
||||
shop.Cookies2 = "";
|
||||
|
||||
//var cookie = shop.Cookies;
|
||||
//if (isMultiLogin)
|
||||
// cookie = shop.DictMultiCookies.Keys.Contains(MultiLoginCookieName) ? shop.DictMultiCookies[MultiLoginCookieName] : "";
|
||||
List<Cookie> cookieLst = new List<Cookie>();
|
||||
try
|
||||
{
|
||||
cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(shop.Cookies);
|
||||
if (cookieLst == null)
|
||||
cookieLst = new List<Cookie>();
|
||||
if (shop != null)
|
||||
{
|
||||
cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(shop.Cookies.ParseToString());
|
||||
if (cookieLst == null)
|
||||
cookieLst = new List<Cookie>();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -416,9 +328,6 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
Thread.Sleep(20);
|
||||
CEFBrowser.DeleteCookie(cefWebBrowser.GetCookieManager(null));
|
||||
|
||||
//if (cookieLst.Any(c => c.Value.StartsWith("windows_1")))
|
||||
// cefWebBrowser.ExecuteScriptAsync("navigator.__defineGetter__('userAgent', function() { return 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12'; });");
|
||||
|
||||
//cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager
|
||||
//if (this.openType != EnumOpenType.login)
|
||||
{
|
||||
@@ -430,15 +339,8 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
}
|
||||
}
|
||||
|
||||
if (this.openType != EnumOpenType.login)
|
||||
{
|
||||
//var cookie2 = shop.Cookies2;
|
||||
//var t2 = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.GetCookieManager(null));
|
||||
//t2.Wait(5000);
|
||||
}
|
||||
|
||||
//根据登录的具体店铺设置local storage
|
||||
if (!string.IsNullOrEmpty(shop.ShopId))
|
||||
if (!string.IsNullOrEmpty(shop?.ShopId))
|
||||
{
|
||||
//var storageJsCode = "window.localStorage.setItem('" + "mall-info-id" + "', '" + shop.ShopId + "');\r\n";
|
||||
//storageJsCode += "window.localStorage.setItem('" + "agentseller-mall-info-id" + "', '" + shop.ShopId + "');\r\n";
|
||||
@@ -481,10 +383,12 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
}
|
||||
|
||||
CEFBrowser.DeleteCookie(cefWebBrowser.GetCookieManager(null));
|
||||
InputUserNameAndPassword(cefWebBrowser, shop.LoginName, DataOpenSSL.DecryptString(shop.Password));
|
||||
// 扫码登录,无输入密码环节
|
||||
// InputUserNameAndPassword(cefWebBrowser, shop.LoginName, DataOpenSSL.DecryptString(shop.Password));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void ShopObj_OnInfoReceived(string information)
|
||||
{
|
||||
//BaseMsgForm.ShowInfo(information);
|
||||
@@ -513,139 +417,58 @@ namespace TemuKJD.DYForms.ShopForms
|
||||
sb.Append("(function(){");
|
||||
sb.Append("CefSharp.BindObjectAsync('shopObj');");
|
||||
sb.Append("})();");
|
||||
cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString());
|
||||
|
||||
// 库存上传按钮 pdd不需要
|
||||
if (1 == 2 && currentUrl.StartsWith("https://mms.pinduoduo.com/goods/goods_list"))
|
||||
{
|
||||
Task.Run(() => {
|
||||
string sAddInputJs = @"
|
||||
document.addEventListener('wheel', function(event) {
|
||||
// 检查滚动方向
|
||||
//if (event.deltaY < 0) {
|
||||
// console.log('向上滚动');
|
||||
//} else {
|
||||
// console.log('向下滚动');
|
||||
//}
|
||||
// 或者使用 event.deltaX 来检查水平滚动
|
||||
//if (event.deltaX < 0) {
|
||||
// console.log('向左滚动');
|
||||
//} else if (event.deltaX > 0) {
|
||||
// console.log('向右滚动');
|
||||
//}
|
||||
|
||||
// 阻止默认的滚动行为(如果有需要)
|
||||
//event.preventDefault();
|
||||
|
||||
addGetProdButton();
|
||||
});
|
||||
addGetProdButton();
|
||||
|
||||
function addGetProdButton() {
|
||||
var productLst = document.getElementsByClassName('goods-id');
|
||||
for(i=0; i<productLst.length; i++) {
|
||||
var addBtnItem = productLst[i].parentElement.parentElement;
|
||||
if (addBtnItem.parentElement.innerHTML.indexOf('库存上传') < 0 && addBtnItem.parentElement.innerHTML.indexOf('ID:') >= 0) {
|
||||
var sSpuId = addBtnItem.innerText.replace('\r','').replace('\n','').replace('ID: ', '');
|
||||
addBtnItem.outerHTML = addBtnItem.outerHTML.replace(""<section>"",""<section style=\""display:inline; float:left; \"">"")
|
||||
.replace(""</section>"", ""</section><input type=\""button\"" style=\""display:inline; width:60px; margin-left:10px; margin-top:0px; cursor:pointer; border:1px solid\"" value =\""库存上传\"" onclick=\""shopObj.getThirdProduct('"" + sSpuId + ""','" + this.shop.ShopId + @"')\"">"");
|
||||
}
|
||||
}
|
||||
}";
|
||||
cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sAddInputJs);
|
||||
});
|
||||
}
|
||||
//cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString());
|
||||
}
|
||||
|
||||
//public Func<object, string, string, request, bool> BeforeResourceLoadEvent; // sender, requestUrl, postData, request, true(表示取消执行)
|
||||
private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request)
|
||||
{
|
||||
if (BaseClass.MainPath == "binxixi" && BaseClass.UsePddWorkbanch && !shop.Cookies.Contains("windows_1"))
|
||||
{
|
||||
var ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
|
||||
//ua = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36";
|
||||
request.SetHeaderByName("User-Agent", ua, true);
|
||||
|
||||
//var ua = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12";
|
||||
//request.SetHeaderByName("User-Agent", ua, true);
|
||||
////if (request.Method == "POST")
|
||||
//request.SetHeaderByName("pddid", shop.pddid, true);
|
||||
//request.SetHeaderByName("Accept-Encoding", "gzip, deflate, br", true);
|
||||
//var headers = request.Headers;
|
||||
//headers.Remove("sec-ch-ua");
|
||||
//headers.Remove("sec-ch-ua-mobile");
|
||||
//headers.Remove("sec-ch-ua-platform");
|
||||
//headers.Remove("Accept-Language");
|
||||
//headers.Remove("Origin");
|
||||
////headers["User-Agent"] = ua;
|
||||
////headers["Accept-Encoding"] = "gzip, deflate, br";
|
||||
//request.Headers = headers;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static int GetAntiContentsTimes = 40;
|
||||
|
||||
private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request)
|
||||
{
|
||||
var antiContent = request.Headers.AllKeys.Contains("Anti-Content") ? request.Headers["Anti-Content"] : "";
|
||||
var refere = request.ReferrerUrl;
|
||||
if (shop != null && !url.StartsWith("https://mms.pinduoduo.com/janus/api/userinfo") && !string.IsNullOrEmpty(antiContent) && request.Method == "POST")
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
GetAntiContentsTimes++;
|
||||
if (this.Created && !this.Disposing && !this.IsDisposed)
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
try { this.TitleText = "店铺登录 - " + GetAntiContentsTimes; } catch { return; }
|
||||
}));
|
||||
shop.AntiContents.Add(antiContent);
|
||||
while (shop.AntiContents.Count > 100)
|
||||
shop.AntiContents.RemoveAt(0);
|
||||
if (!string.IsNullOrEmpty(shop.ShopId) && GetAntiContentsTimes > 500)
|
||||
{
|
||||
GetAntiContentsTimes = 0;
|
||||
ShopBLL.MdyAntiContent(shop);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (url == "https://mms.pinduoduo.com/janus/api/userinfo")
|
||||
if (url == "https://store.weixin.qq.com/shop/home" && this.openType == EnumOpenType.login)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
var data = responseData;
|
||||
if (this.shop != null && data.Contains("\"success\":true"))
|
||||
|
||||
var index = data.IndexOf("window.__INITIAL_PINIA_DATA__=") + "window.__INITIAL_PINIA_DATA__=".Length;
|
||||
var indexEnd = data.IndexOf(";window.__USE_VITE__=");
|
||||
if (index < 1000)
|
||||
{
|
||||
var username = BaseRegex.GetStringJson(ref data, "username");
|
||||
var maskMobile = BaseRegex.GetStringJson(ref data, "mobile");
|
||||
maskMobile = maskMobile.Split('*').Last();
|
||||
if (string.IsNullOrWhiteSpace(maskMobile) || string.IsNullOrWhiteSpace(username))
|
||||
return;
|
||||
|
||||
if (shop.LoginName.EndsWith(maskMobile) || shop.LoginName == username)
|
||||
{
|
||||
lstShopCompany.Clear();
|
||||
var jObj = JObject.Parse(data);
|
||||
var jArr = jObj["result"] as JArray;
|
||||
if (jArr == null)
|
||||
jArr = new JArray();
|
||||
|
||||
Thread.Sleep(500);
|
||||
|
||||
ShopCompany sc = new ShopCompany()
|
||||
{
|
||||
//AccountId = BaseRegex.GetStringJson(ref data, "mallId"),
|
||||
AccountId = BaseRegex.GetStringJson(ref data, "username"),
|
||||
AccountName = BaseRegex.GetStringJson(ref data, "mall_name"),
|
||||
LoginName = shop.LoginName,
|
||||
UserName = BaseClass.UserName,
|
||||
LoginStatus = "登录成功",
|
||||
AntiContent = antiContent,
|
||||
};
|
||||
this.lstShopCompany.Add(sc);
|
||||
}
|
||||
//BaseMsgForm.ShowError("cookie已失效!");
|
||||
return;
|
||||
}
|
||||
var dataStr = data.Substring(index, indexEnd - index);
|
||||
dataStr = GetHtml.Unicode2String(dataStr);
|
||||
|
||||
var shopId = BaseRegex.GetStringJson(ref data, "appid");
|
||||
var nickName = BaseRegex.GetStringJson(ref data, "nickName");
|
||||
var openId = BaseRegex.GetStringJson(ref data, "openid"); // oGu7k7HxmUyOmc1X6VM7GQwS-9cI
|
||||
if (shop != null && shop.ShopId != shopId)
|
||||
{
|
||||
BaseMsgForm.ShowError("cookie与店铺不匹配,请核对店铺!");
|
||||
return;
|
||||
}
|
||||
if (shop == null && GlobalConfig.ShopLoginList.Any(s=>s.ShopId == shopId))
|
||||
{
|
||||
BaseMsgForm.ShowError("录入的新店铺已存在,请核对店铺!");
|
||||
return;
|
||||
}
|
||||
|
||||
ShopCompany sc = new ShopCompany()
|
||||
{
|
||||
UserName = BaseClass.UserName, // 登录的用户信息
|
||||
AccountId = shopId,
|
||||
AccountName = nickName,
|
||||
LoginName = shopId,
|
||||
openid = openId,
|
||||
LoginStatus = "登录成功",
|
||||
};
|
||||
this.lstShopCompany.RemoveAll(s => s.AccountId == sc.AccountId);
|
||||
this.lstShopCompany.Add(sc);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -859,7 +682,7 @@ function fireKeyEvent(el, evtType, keyCode) {
|
||||
// 自动滑块图形验证
|
||||
if (GlobalConfig.TemuShopSettingParam.IsAutoDragLogin)
|
||||
{
|
||||
PDDShopLoginForm.CefMouseDragDou(cefWebBrowser, x, y, Convert.ToInt32((x + Stopxt * 340m / 552m) - 15), y);
|
||||
WXShopLoginForm.CefMouseDragDou(cefWebBrowser, x, y, Convert.ToInt32((x + Stopxt * 340m / 552m) - 15), y);
|
||||
for (int i = 0; i < 1; i++)
|
||||
Thread.Sleep(2000 + Randomx.GetId(1000));
|
||||
response = webBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
|
||||
@@ -0,0 +1,298 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAgIAQYAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
|
||||
AAD///8AAAAAAAAAAAAAAAAABEZmbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZkQAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAZszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMxmAAAAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMxkAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzGQAAAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAABszMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAbMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMx3d4iIiIiIiIh3fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAABszMzMzMzMzMzM
|
||||
zMzMzMzMzMzHeIiIiIj/////////iIiIiId8zMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAGzMzMzMzM
|
||||
zMzMzMzMzMzMzMeIiI/////////////////////4iIh8zMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAATMzM
|
||||
zMzMzMzMzMzMzMzMzHiI////////////////////////////iIfMzMzMzMzMzMzMzMzMzMzMxAAAAAAA
|
||||
AGzMzMzMzMzMzMzMzMzMx3iP///////////////////////////////4iHzMzMzMzMzMzMzMzMzMzMYA
|
||||
AAAAAAbMzMzMzMzMzMzMzMzMx3iP//////////////////////////////////+IfMzMzMzMzMzMzMzM
|
||||
zMzMYAAAAABMzMzMzMzMzMzMzMzMx3iP/////////////////////////////////////4h8zMzMzMzM
|
||||
zMzMzMzMzMQAAAAAbMzMzMzMzMzMzMzMzHiP////////////////////////////////////////h3zM
|
||||
zMzMzMzMzMzMzMzGAAAABMzMzMzMzMzMzMzMzHiP////////////////////////////////////////
|
||||
//iHzMzMzMzMzMzMzMzMzEAAAAbMzMzMzMzMzMzMzMeI////////////////////////////////////
|
||||
////////+IfMzMzMzMzMzMzMzMxgAABMzMzMzMzMzMzMzMx4////////////////////////////////
|
||||
//////////////+IfMzMzMzMzMzMzMzMxAAAbMzMzMzMzMzMzMzHj///////////////////////////
|
||||
/////////////////////4fMzMzMzMzMzMzMzMYAAMzMzMzMzMzMzMzMeP//////////////////////
|
||||
///////////////////////////4fMzMzMzMzMzMzMzMAAbMzMzMzMzMzMzMx4//////////////////
|
||||
/////////////////////////////////4fMzMzMzMzMzMzMzGAGzMzMzMzMzMzMzHj/////////////
|
||||
///////////////////////////////////////4fMzMzMzMzMzMzMxgDMzMzMzMzMzMzMyI////////
|
||||
/////////////////////////////////////////////4zMzMzMzMzMzMzMwEzMzMzMzMzMzMzHj///
|
||||
//////////////////////////////////////////////////+HzMzMzMzMzMzMzMRszMzMzMzMzMzM
|
||||
eP//////////////////////////////////////////////////////+HzMzMzMzMzMzMzGbMzMzMzM
|
||||
zMzMzHj///////////////////////////////////////////////////////+MzMzMzMzMzMzMxmzM
|
||||
zMzMzMzMzMyP////+IiP////////////////////////////////////////+I//////h8zMzMzMzMzM
|
||||
zMZszMzMzMzMzMzHj////4iIiI//////////////////////////////////////+IiIj/////jMzMzM
|
||||
zMzMzMzGbMzMzMzMzMzMyP////iIiIiI/////////////////////////////////////4iIiIj////4
|
||||
fMzMzMzMzMzMxszMzMzMzMzMzHj////4iIiIiP////////////////////////////////////+IiIiI
|
||||
j////4zMzMzMzMzMzMbMzMzMzMzMzMx4////iIiIiIj////////////////////////////////////4
|
||||
iIiIiI////+HzMzMzMzMzMzMzMzMzMzMzMzMj////4iIiIiI//////////////+IiP//iI//////////
|
||||
////+IiIiIiP////h8zMzMzMzMzMzMzMzMzMzMzMzI/////4iIiIiP/////////////4d3eIiIeIj///
|
||||
//////////+IiIiIj/////jMzMzMzMzMzMzMzMzMzMzMzMyP////+IiIiIj/////////////iIiId3eI
|
||||
iI//////////////iIiIiI/////4zMzMzMzMzMzMzMzMzMzMzMzHj/////+IiIiP/////////////4//
|
||||
/4d4j/+P//////////////iIiIj/////+MzMzMzMzMzMzMzMzMzMzMzMx4//////+IiP////////////
|
||||
///////4j///////////////////iIiP//////jMzMzMzMzMzMzMzMzMzMzMzMeP//////////+IiIj/
|
||||
///////////////////////////////////////////4fMzMzMzMzMzMzMzMzMzMzMzH//////////+H
|
||||
fMx8eP//////////////////////////iId3iP//////////+HzMzMzMzMzMzMzMzMzMzMzMyP//////
|
||||
///4fMzHh8eP////////////////////////+MzMzMd4//////////h8zMzMzMzMzMzMzMzMzMzMzMf/
|
||||
////////+MzMePjMeP///////////////////////4zMzMeHx4/////////4fMzMzMzMzMzMzMzMzMzM
|
||||
zMzH/////////4fMd3eHzMeP//////////////////////iMzMzIiHx4////////+HzMzMzMzMzMzMzM
|
||||
zMzMzMzMx/////////+Hx4iIfMzMj//////////////////////4h3d8x4h8yP////////jMzMzMzMzM
|
||||
zMzMzMzMzMzMzMeP////////+HiP+IfMzI//////////////////////+HiIiHd3zHj////////4zMzM
|
||||
zMzMzMzMzMzMzMzMzMzHj/////////h4//+HzMeP//////////////////////h4//h8zMyP////////
|
||||
+MzMzMzMzMzMzMzMzMzMzMzMzI/////////4iP//h8x4///////////////////////4j//4fMzHj///
|
||||
//////jMzMzMzMzMzMzMzMzMzMzMzMyP///////4iIiP+IfHj///////////////////////+Ij/+HzM
|
||||
eP/////////4zMzMzMzMzMzMzMzMzMzMzMzMj///////iIiIiIh3eP////////////////////////+I
|
||||
j4h8x3iI////////h8zMzMzMzMzMzMzMzMzMzMzMzH//////+Hj///iIiI//////////////////////
|
||||
/////4iId4iIiIj//////4zMzMzMzMzMzMzMzMzMzMzMzMx4//////iP////iP//////////////////
|
||||
/////////////4iP//iI//////+MzMzMzMzMzMzMzMzMzMzMzMzMyP//////////+I//////////////
|
||||
///////////////////4eP//iP//////jMzMzMzMzMzMzMzMzMzMzMzMzMj///////////iP////////
|
||||
/////////////////////////4j/////////+HzMzMzMzMzMzMzMzMzMzMzMzMzHj///////////////
|
||||
//////////////////////////////+I//////////jMzMzMzMzMzMzMzMzMzMzMzMzMzI//////////
|
||||
//////////////////////////////////////////////+HzMzMzMzMzMzMzMzMzMzMzMzMzMyP////
|
||||
////////////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
eP///////////////////////////////////////////////////////4zMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMj///////////////////////////////////////////////////////h8zMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzHj//////////////////////////////////////////////////////4zMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzI//////////////////////////////////////////////////////h8zMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMx4////////////////////////////////////////////////////+HzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMyI////+I////////////////////////////////////////////
|
||||
//h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////+Ij/////////////////////////////////////
|
||||
//////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////+IiIiIj//////////////////////////4
|
||||
////iI/////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMiP/////4iIiP//////////////////////
|
||||
////+IiIiIj/////iHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP//////////////////////////
|
||||
///////////4iIj//////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP////////////////////
|
||||
//////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP//////////////
|
||||
//////////////////////////////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHj/////////
|
||||
///////////////////////////////////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////
|
||||
////////////////////////////////////////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzI
|
||||
j/////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMeP//////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMx4////////+I//////////////////////////////////////jMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMeP///////4iIj///////////////////////////iP///////4fMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMx4////////iIiIiP///////////////////////4iIiP///////4zMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiI////////////////////+IiIiIj///////+HzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIj////////////////////4iIiIiIj///////
|
||||
+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiI////////////////////+IiIiIiI//
|
||||
//////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIiP////////////////////iIiI
|
||||
iIiI///////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiIj/////iIiIiIiIj/////
|
||||
/4iIiIiIiP///////4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIiI/////4zMzMzMzM
|
||||
j/////+IiIiIiIiP//////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP//////+IiIiIiIj/////+MzM
|
||||
zMzMzI//////+IiIiIiIj///////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzI////////iIiIiIiI////
|
||||
//jMzMzMzMyP//////iIiIiIiIj///////jMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP///////4iIiIiI
|
||||
iP/////4zMzMzMzMj//////4iIiIiIiI///////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzI////////iI
|
||||
iIiIiI//////+MzMzMzMzI//////+IiIiIiIiP///////4zMzMzMzMzMzMzMzMzMzMzMzMzMzMyP////
|
||||
///4iIiIiIiP//////fMzMzMzMyP//////+IiIiIiIj///////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzH
|
||||
j///////+IiIiIiI//////+HzMzMzMzMeP//////iIiIiIiIj///////jMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMyP////////iIiIiIiP//////jMzMzMzMzHj///////iIiIiIiI///////4fMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMj///////+IiIiIiI///////4zMzMzMzMzI///////4iIiIiIiI///////3zMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzI////////iIiIiIiP//////+MzMzMzMzMyP//////+IiIiIiIiP//////+MzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMeP///////4iIiIiIj///////jMzMzMzMzMj///////+IiIiIiIj///////jM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzI////////+IiIiIiP//////+HzMzMzMzMzHj///////iIiIiIiI////
|
||||
///4zMzMzMzMzMzMzMzMzMzMzMzMzMyP////////iIiIiI////////jMzMzMzMzMzI///////4iIiIiI
|
||||
iI//////+MzMzMzMzMzMzMzMzMzMzMzMzMzMj////////4iIiIiP///////4zMzMzMzMzMyP///////4
|
||||
iIiIiIiP//////jMzMzMzMzMzMzMzMzMzMzMzMzMzI////////+IiIiI////////h8zMzMzMzMzMeP//
|
||||
/////4iIiIiIj//////4fMzMzMzMzMzMzMzMzMzMzMzMzMyP////////iIiIj////////4fMzMzMzMzM
|
||||
zHj///////+IiIiIiI//////+HzMzMzMzMzMzMzMzMzMzMzMzMzHj/////////iIiP////////+MzMzM
|
||||
zMzMzMzI////////+IiIiIiP//////h8zMzMzMzMzMzMxmzMzMzMzMzMx4/////////4iP/////////4
|
||||
fMzMzMzMzMzMx4////////+IiIiIj//////4fMzMzMzMzMzMzMZszMzMzMzMzMeP////////////////
|
||||
////+MzMzMzMzMzMzMyP////////iIiIiP//////+HzMzMzMzMzMzMzGbMzMzMzMzMzH////////////
|
||||
//////////fMzMzMzMzMzMzMeP////////iIiIj///////98zMzMzMzMzMzMxmzMzMzMzMzMyP//////
|
||||
//////////////+HzMzMzMzMzMzMzHj/////////+IiP////////jMzMzMzMzMzMzMZszMzMzMzMzMj/
|
||||
////////////////////jMzMzMzMzMzMzMzIj////////////////////4zMzMzMzMzMzMzGTMzMzMzM
|
||||
zMzH////////////////////+HzMzMzMzMzMzMzMx4////////////////////+MzMzMzMzMzMzMxAzM
|
||||
zMzMzMzMx/////////////////////jMzMzMzMzMzMzMzMyI///////////////////4fMzMzMzMzMzM
|
||||
zMAGzMzMzMzMzMeP//////////////////+HzMzMzMzMzMzMzMzMeP//////////////////+HzMzMzM
|
||||
zMzMzMxgBszMzMzMzMzHj//////////////////4fMzMzMzMzMzMzMzMzMeP//////////////////h8
|
||||
zMzMzMzMzMzMYADMzMzMzMzMzI//////////////////+HzMzMzMzMzMzMzMzMzHj///////////////
|
||||
///4zMzMzMzMzMzMzAAAbMzMzMzMzMyP/////////////////4fMzMzMzMzMzMzMzMzMzHj/////////
|
||||
////////+MzMzMzMzMzMzMYAAEzMzMzMzMzMj/////////////////+MzMzMzMzMzMzMzMzMzMzIj///
|
||||
/////////////4fMzMzMzMzMzMzEAAAGzMzMzMzMzHj////////////////4fMzMzMzMzMzMzMzMzMzM
|
||||
x4////////////////+MzMzMzMzMzMzMYAAABMzMzMzMzMx4////////////////h8zMzMzMzMzMzMzM
|
||||
zMzMzMx4///////////////4fMzMzMzMzMzMzEAAAABszMzMzMzMx4//////////////+HzMzMzMzMzM
|
||||
zMzMzMzMzMzMx4//////////////+MzMzMzMzMzMzMYAAAAATMzMzMzMzMyP/////////////4fMzMzM
|
||||
zMzMzMzMzMzMzMzMzMeI/////////////4fMzMzMzMzMzMzEAAAAAAbMzMzMzMzMeP////////////h8
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMeI////////////h8zMzMzMzMzMzMYAAAAAAAbMzMzMzMzMeP////////
|
||||
//iHzMzMzMzMzMzMzMzMzMzMzMzMzMyI//////////+HzMzMzMzMzMzMxgAAAAAAAEzMzMzMzMzMeP//
|
||||
//////iHfMzMzMzMzMzMzMzMzMzMzMzMzMzMx4/////////4fMzMzMzMzMzMzMQAAAAAAAAGzMzMzMzM
|
||||
zMeI//////iHfMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4j//////4h8zMzMzMzMzMzMxgAAAAAAAAAGzM
|
||||
zMzMzMzMx4iIiIiHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiIj/+Ih3zMzMzMzMzMzMzGAAAAAAAA
|
||||
AAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx3iId8zMzMzMzMzMzMzMYAAA
|
||||
AAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
xgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzGAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzGQAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAABGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAAAABmzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGZmzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZEAAAAAAAAAAAAAAAAD////+AAAAAAAAAAD/////////AAAA
|
||||
AAAAAAAAAP//////+AAAAAAAAAAAAAAf/////+AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAAAAH////+
|
||||
AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAA
|
||||
B///wAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA
|
||||
AAAAAAB//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
|
||||
AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAB+AA
|
||||
AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA
|
||||
AAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABAAAAAAAA
|
||||
AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA
|
||||
AAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AA
|
||||
AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAA
|
||||
AD/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA
|
||||
AAAAAAH//8AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////wAAAAA
|
||||
AAAAAAAAAAA////+AAAAAAAAAAAAAAAAf////4AAAAAAAAAAAAAAAf/////gAAAAAAAAAAAAAAf/////
|
||||
+AAAAAAAAAAAAAAf//////8AAAAAAAAAAAAA/////////gAAAAAAAAAAf////w==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,203 @@
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
partial class WXShopUpdateCookieForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXShopUpdateCookieForm));
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.txtCookieJs1 = new DevComponents.DotNetBar.Controls.TextBoxX();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.txtSubPassId = new System.Windows.Forms.TextBox();
|
||||
this.txtLoginName = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.btnOk = new TemuKJD.UserControls.ButtonEx();
|
||||
this.panel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.BackColor = System.Drawing.Color.White;
|
||||
this.panel2.Controls.Add(this.splitContainer1);
|
||||
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel2.Location = new System.Drawing.Point(1, 33);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(698, 424);
|
||||
this.panel2.TabIndex = 1;
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label4);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.txtCookieJs1);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label3);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.txtSubPassId);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.txtLoginName);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label1);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnOk);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(698, 424);
|
||||
this.splitContainer1.SplitterDistance = 348;
|
||||
this.splitContainer1.TabIndex = 394;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(40, 103);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(60, 17);
|
||||
this.label4.TabIndex = 399;
|
||||
this.label4.Text = "CookieJs";
|
||||
//
|
||||
// txtCookieJs1
|
||||
//
|
||||
this.txtCookieJs1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
//
|
||||
//
|
||||
//
|
||||
this.txtCookieJs1.Border.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
|
||||
this.txtCookieJs1.Border.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
|
||||
this.txtCookieJs1.Border.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
|
||||
this.txtCookieJs1.Border.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
|
||||
this.txtCookieJs1.Border.Class = "CrumbBarBackgroundKey";
|
||||
this.txtCookieJs1.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.txtCookieJs1.Border.PaddingBottom = 2;
|
||||
this.txtCookieJs1.Border.PaddingLeft = 2;
|
||||
this.txtCookieJs1.Border.PaddingRight = 2;
|
||||
this.txtCookieJs1.Border.PaddingTop = 2;
|
||||
this.txtCookieJs1.Location = new System.Drawing.Point(100, 101);
|
||||
this.txtCookieJs1.Multiline = true;
|
||||
this.txtCookieJs1.Name = "txtCookieJs1";
|
||||
this.txtCookieJs1.Size = new System.Drawing.Size(569, 227);
|
||||
this.txtCookieJs1.TabIndex = 398;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(16, 72);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(84, 17);
|
||||
this.label3.TabIndex = 397;
|
||||
this.label3.Text = "SUB_PASS_ID";
|
||||
this.label3.Visible = false;
|
||||
//
|
||||
// txtSubPassId
|
||||
//
|
||||
this.txtSubPassId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtSubPassId.Location = new System.Drawing.Point(100, 69);
|
||||
this.txtSubPassId.Name = "txtSubPassId";
|
||||
this.txtSubPassId.Size = new System.Drawing.Size(569, 23);
|
||||
this.txtSubPassId.TabIndex = 396;
|
||||
this.txtSubPassId.Visible = false;
|
||||
//
|
||||
// txtLoginName
|
||||
//
|
||||
this.txtLoginName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtLoginName.Location = new System.Drawing.Point(100, 15);
|
||||
this.txtLoginName.Name = "txtLoginName";
|
||||
this.txtLoginName.Size = new System.Drawing.Size(569, 23);
|
||||
this.txtLoginName.TabIndex = 395;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(44, 18);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(56, 17);
|
||||
this.label1.TabIndex = 394;
|
||||
this.label1.Text = "登录账号";
|
||||
//
|
||||
// btnOk
|
||||
//
|
||||
this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnOk.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnOk.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnOk.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnOk.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnOk.ForeColor = System.Drawing.Color.White;
|
||||
this.btnOk.Location = new System.Drawing.Point(614, 28);
|
||||
this.btnOk.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnOk.Name = "btnOk";
|
||||
this.btnOk.Size = new System.Drawing.Size(55, 26);
|
||||
this.btnOk.TabIndex = 392;
|
||||
this.btnOk.Text = "保存";
|
||||
this.btnOk.UseVisualStyleBackColor = false;
|
||||
this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
|
||||
//
|
||||
// WXShopUpdateCookieForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(700, 458);
|
||||
this.Controls.Add(this.panel2);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "WXShopUpdateCookieForm";
|
||||
this.Text = "更新Cookie";
|
||||
this.TitleText = "更新Cookie";
|
||||
this.Load += new System.EventHandler(this.ShopUpdateCookieForm_Load);
|
||||
this.Controls.SetChildIndex(this.panel2, 0);
|
||||
this.panel2.ResumeLayout(false);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel1.PerformLayout();
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private DevComponents.DotNetBar.Controls.TextBoxX txtCookieJs1;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.TextBox txtSubPassId;
|
||||
private System.Windows.Forms.TextBox txtLoginName;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private UserControls.ButtonEx btnOk;
|
||||
private System.Windows.Forms.Label label4;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model.Result;
|
||||
using TemuKJD.BaseForms;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using AllBase;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Work;
|
||||
using TemuKJD.KJDForms.AdminForms;
|
||||
using TemuKJD.BLL;
|
||||
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
public enum SetCookieFromEnum
|
||||
{
|
||||
normal_user,
|
||||
sa,
|
||||
}
|
||||
public partial class WXShopUpdateCookieForm : LRBaseForm
|
||||
{
|
||||
ShopLoginInfo shopLoginInfo = null;
|
||||
SetCookieFromEnum updateFrom;
|
||||
string cookieVersion = "";
|
||||
|
||||
public WXShopUpdateCookieForm(ShopLoginInfo shop = null, SetCookieFromEnum from = SetCookieFromEnum.normal_user, string _cookieVersion="国内版")
|
||||
{
|
||||
InitializeComponent();
|
||||
shopLoginInfo = shop;
|
||||
updateFrom = from;
|
||||
cookieVersion = _cookieVersion;
|
||||
this.TitleText = "更新Cookie";
|
||||
}
|
||||
|
||||
private void ShopUpdateCookieForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (shopLoginInfo != null)
|
||||
txtLoginName.Text = shopLoginInfo.LoginName + " " + shopLoginInfo.ShopAccount + " " + shopLoginInfo.Notes;
|
||||
}
|
||||
|
||||
/*
|
||||
document.cookie='_qimei_uuid42=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
||||
document.cookie='_qpsvr_localtk=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
||||
document.cookie='biz_magic=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
||||
document.cookie='biz_rand=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
||||
document.cookie='biz_ticket=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
||||
document.cookie='biz_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
||||
document.cookie='ptcz=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
||||
document.cookie='RK=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
||||
document.cookie='yyb_muid=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
|
||||
|
||||
document.cookie='_qimei_uuid42=19b0b09361e100c47695a05aaf3375f6d5eb35bb32; domain=.qq.com; expires=2026-11-11T01:54:30.000Z; path=/';
|
||||
document.cookie='_qpsvr_localtk=5432784879518021; domain=.qq.com;expires=Fri, 06 Feb 2026 01:31:39 UTC; path=/';
|
||||
document.cookie='biz_magic=4a425a343f033dd057463cfafc3e04b1531e36a25b0e99be21efce245c9129e8; domain=store.weixin.qq.com;expires=Fri, 06 Feb 2026 01:31:39 UTC; path=/';
|
||||
document.cookie='biz_rand=CAESIMo2sjiyv4vip6jSSg+6B6Uh7gdgW4GBae7AEySSXswt; domain=store.weixin.qq.com;expires=Fri, 06 Feb 2026 01:31:39 UTC; path=/';
|
||||
document.cookie='biz_ticket=; domain=store.weixin.qq.com;expires=Fri, 06 Feb 2026 01:31:39 UTC; path=/';
|
||||
document.cookie='biz_token=b_0000019b_8e3d689c_f4835bf4_23267fa7_c4ff2be1; domain=store.weixin.qq.com;expires=Fri, 06 Feb 2026 01:31:39 UTC; path=/';
|
||||
document.cookie='ptcz=584e5aff2216045382bfed928d03d10924787f910ea5a5e09e0df73b6c5e6c9d; domain=.qq.com;expires=2027-02-09T06:15:17.542Z; path=/';
|
||||
document.cookie='RK=WCfEwM0OZQ; domain=.qq.com;expires=2026-07-30T07:12:51.627Z; path=/';
|
||||
document.cookie='yyb_muid=3B8E28E6B8EA60762CCA3EF0B9EF61AB; domain=.qq.com; expires=2026-08-01T04:50:29.209Z; path=/';
|
||||
window.location.href='https://store.weixin.qq.com/shop/goods/list';
|
||||
*/
|
||||
|
||||
private void btnOk_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (shopLoginInfo == null)
|
||||
{
|
||||
BaseMsgForm.ShowError("店铺为空!");
|
||||
return;
|
||||
}
|
||||
|
||||
bool ok1 = false;
|
||||
bool ok2 = false;
|
||||
if (!string.IsNullOrWhiteSpace(txtSubPassId.Text) || !string.IsNullOrWhiteSpace(txtCookieJs1.Text))
|
||||
{
|
||||
ok1 = GetCookie1();
|
||||
}
|
||||
|
||||
if (ok1 || ok2)
|
||||
{
|
||||
this.OnSaveComplete(shopLoginInfo);
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
bool GetCookie1()
|
||||
{
|
||||
string txt = this.txtCookieJs1.Text;
|
||||
txt = txt.Replace("_qimei_uuid42=;", "").Replace("_qpsvr_localtk=;", "").Replace("biz_magic=;", "")
|
||||
.Replace("biz_rand=;", "").Replace("biz_ticket=;", "").Replace("biz_token=;", "")
|
||||
.Replace("ptcz=;", "").Replace("RK=;", "").Replace("yyb_muid=;", "");
|
||||
|
||||
List<CefSharp.Cookie> cookieLst = new List<CefSharp.Cookie>();
|
||||
|
||||
|
||||
string _qimei_uuid42 = BaseRegex.GetStringCookie(ref txt, "_qimei_uuid42").ParseToString().Trim('\'');
|
||||
string _qpsvr_localtk = BaseRegex.GetStringCookie(ref txt, "_qpsvr_localtk").ParseToString().Trim('\'');
|
||||
string biz_magic = BaseRegex.GetStringCookie(ref txt, "biz_magic").ParseToString().Trim('\'');
|
||||
string biz_rand = BaseRegex.GetStringCookie(ref txt, "biz_rand").ParseToString().Trim('\'');
|
||||
string biz_ticket = BaseRegex.GetStringCookie(ref txt, "biz_ticket").ParseToString().Trim('\'');
|
||||
string biz_token = BaseRegex.GetStringCookie(ref txt, "biz_token").ParseToString().Trim('\'');
|
||||
string ptcz = BaseRegex.GetStringCookie(ref txt, "ptcz").ParseToString().Trim('\'');
|
||||
string RK = BaseRegex.GetStringCookie(ref txt, "RK").ParseToString().Trim('\'');
|
||||
string yyb_muid = BaseRegex.GetStringCookie(ref txt, "yyb_muid").ParseToString().Trim('\'');
|
||||
|
||||
cookieLst.Add(new CefSharp.Cookie() { Name = "_qimei_uuid42", Value = _qimei_uuid42, Domain = ".qq.com", Expires = DateTime.Now.AddMonths(1) });
|
||||
cookieLst.Add(new CefSharp.Cookie() { Name = "_qpsvr_localtk", Value = _qpsvr_localtk, Domain = ".qq.com", Expires = DateTime.Now.AddMonths(1) });
|
||||
cookieLst.Add(new CefSharp.Cookie() { Name = "biz_magic", Value = biz_magic, Domain = "store.weixin.qq.com", Expires = DateTime.Now.AddMonths(1) });
|
||||
cookieLst.Add(new CefSharp.Cookie() { Name = "biz_rand", Value = biz_rand, Domain = "store.weixin.qq.com", Expires = DateTime.Now.AddMonths(1) });
|
||||
cookieLst.Add(new CefSharp.Cookie() { Name = "biz_ticket", Value = biz_ticket, Domain = "store.weixin.qq.com", Expires = DateTime.Now.AddMonths(1) });
|
||||
cookieLst.Add(new CefSharp.Cookie() { Name = "biz_token", Value = biz_token, Domain = "store.weixin.qq.com", Expires = DateTime.Now.AddMonths(1) });
|
||||
cookieLst.Add(new CefSharp.Cookie() { Name = "ptcz", Value = ptcz, Domain = ".qq.com", Expires = DateTime.Now.AddMonths(1) });
|
||||
cookieLst.Add(new CefSharp.Cookie() { Name = "RK", Value = RK, Domain = ".qq.com", Expires = DateTime.Now.AddMonths(1) });
|
||||
cookieLst.Add(new CefSharp.Cookie() { Name = "yyb_muid", Value = yyb_muid, Domain = ".qq.com", Expires = DateTime.Now.AddMonths(1) });
|
||||
|
||||
if (string.IsNullOrEmpty(biz_magic))
|
||||
{
|
||||
BaseMsgForm.ShowError("Cookie缺少关键字段,请检查!");
|
||||
return false;
|
||||
}
|
||||
|
||||
// 建立一个临时店铺并用这个店铺去登录
|
||||
var cookieShop = new ShopLoginInfo();
|
||||
cookieShop.Cookies = JsonHelper.SerializeObject(cookieLst);
|
||||
|
||||
var data = "";
|
||||
|
||||
data = WXShopListForm.GetShopInfo(cookieShop);
|
||||
var index = data.IndexOf("window.__INITIAL_PINIA_DATA__=") + "window.__INITIAL_PINIA_DATA__=".Length;
|
||||
var indexEnd = data.IndexOf(";window.__USE_VITE__=");
|
||||
if (index < 1000)
|
||||
{
|
||||
BaseMsgForm.ShowError("cookie已失效!");
|
||||
return false;
|
||||
}
|
||||
var dataStr = data.Substring(index, indexEnd - index);
|
||||
dataStr = GetHtml.Unicode2String(dataStr);
|
||||
|
||||
var shopId = BaseRegex.GetStringJson(ref data, "appid");
|
||||
var nickName = BaseRegex.GetStringJson(ref data, "nickName");
|
||||
if (shopLoginInfo.ShopId != shopId)
|
||||
{
|
||||
BaseMsgForm.ShowError("cookie与店铺不匹配,请核对店铺!");
|
||||
return false;
|
||||
}
|
||||
|
||||
shopLoginInfo.Cookies = JsonHelper.SerializeObject(cookieLst);
|
||||
shopLoginInfo.ShopAccount = nickName;
|
||||
shopLoginInfo.LoginStatus = "登录成功";
|
||||
WXShopListForm.UpdateServerShopCookies(shopLoginInfo); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 如果店铺没有cookie登录过,处理店铺第一次登录(分裂cookie下的所有店铺)
|
||||
/// </summary>
|
||||
/// <param name="loginData"></param>
|
||||
void GetShopFirstLogin(string loginData, List<ShopLoginInfo> lstServerShop)
|
||||
{
|
||||
if (this.shopLoginInfo == null)
|
||||
return;
|
||||
if (lstServerShop == null)
|
||||
lstServerShop = new List<ShopLoginInfo>();
|
||||
|
||||
List<ShopCompany> lstShopCompany = new List<ShopCompany>();
|
||||
var jObj = JObject.Parse(loginData);
|
||||
var jArr = jObj["result"]?["companyList"]?[0]?["malInfoList"] as JArray;
|
||||
if (jArr == null)
|
||||
jArr = new JArray();
|
||||
|
||||
foreach (var productObj in jArr)
|
||||
{
|
||||
var prod = JsonHelper.SerializeObject(productObj);
|
||||
ShopCompany sc = new ShopCompany()
|
||||
{
|
||||
AccountId = BaseRegex.GetStringJson(ref prod, "mallId"),
|
||||
AccountName = BaseRegex.GetStringJson(ref prod, "mallName"),
|
||||
LoginName = shopLoginInfo.LoginName,
|
||||
UserName = BaseClass.UserName,
|
||||
LoginStatus = "登录成功",
|
||||
};
|
||||
lstShopCompany.Add(sc);
|
||||
}
|
||||
|
||||
var lstShopCompanyCopy = lstShopCompany.ToList();
|
||||
foreach (ShopCompany sc in lstShopCompanyCopy)
|
||||
{
|
||||
ShopLoginInfo newShop = new ShopLoginInfo()
|
||||
{
|
||||
UserName = shopLoginInfo.UserName,
|
||||
LoginName = shopLoginInfo.LoginName,
|
||||
Password = shopLoginInfo.Password,
|
||||
GroupName = shopLoginInfo.GroupName,
|
||||
ShopAccount = sc.AccountName,
|
||||
ShopId = sc.AccountId,
|
||||
SubUserName = shopLoginInfo.SubUserName,
|
||||
Notes = shopLoginInfo.Notes,
|
||||
};
|
||||
|
||||
var oldServerShop = lstServerShop.FirstOrDefault(s =>
|
||||
s.LoginName == newShop.LoginName && s.ShopId == newShop.ShopId);
|
||||
if (oldServerShop == null)
|
||||
{
|
||||
if (updateFrom != SetCookieFromEnum.normal_user)
|
||||
ShopBLL.AdminAddServerShop(newShop); // 店铺写入到服务端
|
||||
else
|
||||
ShopBLL.AddServerShop(newShop); // 店铺写入到服务端
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btnGetCookie_Click(object sender, EventArgs e)
|
||||
{
|
||||
//复制cookie
|
||||
var cookJs = @"
|
||||
document.body.innerHTML = '<button id=""button1"" onclick=""geCookie();"" style=""margin:10px;"">点击我复制cookie</button>' + document.body.innerHTML;
|
||||
function geCookie()
|
||||
{
|
||||
var cookieText = document.cookie;
|
||||
navigator.clipboard.writeText(cookieText).then(function() {
|
||||
alert('复制cookie成功!');
|
||||
}, function(err) {
|
||||
alert('复制cookie失败: ', err);
|
||||
});
|
||||
}";
|
||||
Clipboard.SetDataObject(cookJs);
|
||||
BaseMsgForm.ShowInfo("js复制成功");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,298 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAgIAQYAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
|
||||
AAD///8AAAAAAAAAAAAAAAAABEZmbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZkQAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAZszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMxmAAAAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMxkAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzGQAAAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAABszMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAbMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMx3d4iIiIiIiIh3fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAABszMzMzMzMzMzM
|
||||
zMzMzMzMzMzHeIiIiIj/////////iIiIiId8zMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAGzMzMzMzM
|
||||
zMzMzMzMzMzMzMeIiI/////////////////////4iIh8zMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAATMzM
|
||||
zMzMzMzMzMzMzMzMzHiI////////////////////////////iIfMzMzMzMzMzMzMzMzMzMzMxAAAAAAA
|
||||
AGzMzMzMzMzMzMzMzMzMx3iP///////////////////////////////4iHzMzMzMzMzMzMzMzMzMzMYA
|
||||
AAAAAAbMzMzMzMzMzMzMzMzMx3iP//////////////////////////////////+IfMzMzMzMzMzMzMzM
|
||||
zMzMYAAAAABMzMzMzMzMzMzMzMzMx3iP/////////////////////////////////////4h8zMzMzMzM
|
||||
zMzMzMzMzMQAAAAAbMzMzMzMzMzMzMzMzHiP////////////////////////////////////////h3zM
|
||||
zMzMzMzMzMzMzMzGAAAABMzMzMzMzMzMzMzMzHiP////////////////////////////////////////
|
||||
//iHzMzMzMzMzMzMzMzMzEAAAAbMzMzMzMzMzMzMzMeI////////////////////////////////////
|
||||
////////+IfMzMzMzMzMzMzMzMxgAABMzMzMzMzMzMzMzMx4////////////////////////////////
|
||||
//////////////+IfMzMzMzMzMzMzMzMxAAAbMzMzMzMzMzMzMzHj///////////////////////////
|
||||
/////////////////////4fMzMzMzMzMzMzMzMYAAMzMzMzMzMzMzMzMeP//////////////////////
|
||||
///////////////////////////4fMzMzMzMzMzMzMzMAAbMzMzMzMzMzMzMx4//////////////////
|
||||
/////////////////////////////////4fMzMzMzMzMzMzMzGAGzMzMzMzMzMzMzHj/////////////
|
||||
///////////////////////////////////////4fMzMzMzMzMzMzMxgDMzMzMzMzMzMzMyI////////
|
||||
/////////////////////////////////////////////4zMzMzMzMzMzMzMwEzMzMzMzMzMzMzHj///
|
||||
//////////////////////////////////////////////////+HzMzMzMzMzMzMzMRszMzMzMzMzMzM
|
||||
eP//////////////////////////////////////////////////////+HzMzMzMzMzMzMzGbMzMzMzM
|
||||
zMzMzHj///////////////////////////////////////////////////////+MzMzMzMzMzMzMxmzM
|
||||
zMzMzMzMzMyP////+IiP////////////////////////////////////////+I//////h8zMzMzMzMzM
|
||||
zMZszMzMzMzMzMzHj////4iIiI//////////////////////////////////////+IiIj/////jMzMzM
|
||||
zMzMzMzGbMzMzMzMzMzMyP////iIiIiI/////////////////////////////////////4iIiIj////4
|
||||
fMzMzMzMzMzMxszMzMzMzMzMzHj////4iIiIiP////////////////////////////////////+IiIiI
|
||||
j////4zMzMzMzMzMzMbMzMzMzMzMzMx4////iIiIiIj////////////////////////////////////4
|
||||
iIiIiI////+HzMzMzMzMzMzMzMzMzMzMzMzMj////4iIiIiI//////////////+IiP//iI//////////
|
||||
////+IiIiIiP////h8zMzMzMzMzMzMzMzMzMzMzMzI/////4iIiIiP/////////////4d3eIiIeIj///
|
||||
//////////+IiIiIj/////jMzMzMzMzMzMzMzMzMzMzMzMyP////+IiIiIj/////////////iIiId3eI
|
||||
iI//////////////iIiIiI/////4zMzMzMzMzMzMzMzMzMzMzMzHj/////+IiIiP/////////////4//
|
||||
/4d4j/+P//////////////iIiIj/////+MzMzMzMzMzMzMzMzMzMzMzMx4//////+IiP////////////
|
||||
///////4j///////////////////iIiP//////jMzMzMzMzMzMzMzMzMzMzMzMeP//////////+IiIj/
|
||||
///////////////////////////////////////////4fMzMzMzMzMzMzMzMzMzMzMzH//////////+H
|
||||
fMx8eP//////////////////////////iId3iP//////////+HzMzMzMzMzMzMzMzMzMzMzMyP//////
|
||||
///4fMzHh8eP////////////////////////+MzMzMd4//////////h8zMzMzMzMzMzMzMzMzMzMzMf/
|
||||
////////+MzMePjMeP///////////////////////4zMzMeHx4/////////4fMzMzMzMzMzMzMzMzMzM
|
||||
zMzH/////////4fMd3eHzMeP//////////////////////iMzMzIiHx4////////+HzMzMzMzMzMzMzM
|
||||
zMzMzMzMx/////////+Hx4iIfMzMj//////////////////////4h3d8x4h8yP////////jMzMzMzMzM
|
||||
zMzMzMzMzMzMzMeP////////+HiP+IfMzI//////////////////////+HiIiHd3zHj////////4zMzM
|
||||
zMzMzMzMzMzMzMzMzMzHj/////////h4//+HzMeP//////////////////////h4//h8zMyP////////
|
||||
+MzMzMzMzMzMzMzMzMzMzMzMzI/////////4iP//h8x4///////////////////////4j//4fMzHj///
|
||||
//////jMzMzMzMzMzMzMzMzMzMzMzMyP///////4iIiP+IfHj///////////////////////+Ij/+HzM
|
||||
eP/////////4zMzMzMzMzMzMzMzMzMzMzMzMj///////iIiIiIh3eP////////////////////////+I
|
||||
j4h8x3iI////////h8zMzMzMzMzMzMzMzMzMzMzMzH//////+Hj///iIiI//////////////////////
|
||||
/////4iId4iIiIj//////4zMzMzMzMzMzMzMzMzMzMzMzMx4//////iP////iP//////////////////
|
||||
/////////////4iP//iI//////+MzMzMzMzMzMzMzMzMzMzMzMzMyP//////////+I//////////////
|
||||
///////////////////4eP//iP//////jMzMzMzMzMzMzMzMzMzMzMzMzMj///////////iP////////
|
||||
/////////////////////////4j/////////+HzMzMzMzMzMzMzMzMzMzMzMzMzHj///////////////
|
||||
//////////////////////////////+I//////////jMzMzMzMzMzMzMzMzMzMzMzMzMzI//////////
|
||||
//////////////////////////////////////////////+HzMzMzMzMzMzMzMzMzMzMzMzMzMyP////
|
||||
////////////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
eP///////////////////////////////////////////////////////4zMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMj///////////////////////////////////////////////////////h8zMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzHj//////////////////////////////////////////////////////4zMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzI//////////////////////////////////////////////////////h8zMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMx4////////////////////////////////////////////////////+HzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMyI////+I////////////////////////////////////////////
|
||||
//h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////+Ij/////////////////////////////////////
|
||||
//////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////+IiIiIj//////////////////////////4
|
||||
////iI/////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMiP/////4iIiP//////////////////////
|
||||
////+IiIiIj/////iHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP//////////////////////////
|
||||
///////////4iIj//////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP////////////////////
|
||||
//////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP//////////////
|
||||
//////////////////////////////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHj/////////
|
||||
///////////////////////////////////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////
|
||||
////////////////////////////////////////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzI
|
||||
j/////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMeP//////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMx4////////+I//////////////////////////////////////jMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMeP///////4iIj///////////////////////////iP///////4fMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMx4////////iIiIiP///////////////////////4iIiP///////4zMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiI////////////////////+IiIiIj///////+HzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIj////////////////////4iIiIiIj///////
|
||||
+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiI////////////////////+IiIiIiI//
|
||||
//////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIiP////////////////////iIiI
|
||||
iIiI///////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiIj/////iIiIiIiIj/////
|
||||
/4iIiIiIiP///////4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIiI/////4zMzMzMzM
|
||||
j/////+IiIiIiIiP//////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP//////+IiIiIiIj/////+MzM
|
||||
zMzMzI//////+IiIiIiIj///////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzI////////iIiIiIiI////
|
||||
//jMzMzMzMyP//////iIiIiIiIj///////jMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP///////4iIiIiI
|
||||
iP/////4zMzMzMzMj//////4iIiIiIiI///////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzI////////iI
|
||||
iIiIiI//////+MzMzMzMzI//////+IiIiIiIiP///////4zMzMzMzMzMzMzMzMzMzMzMzMzMzMyP////
|
||||
///4iIiIiIiP//////fMzMzMzMyP//////+IiIiIiIj///////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzH
|
||||
j///////+IiIiIiI//////+HzMzMzMzMeP//////iIiIiIiIj///////jMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMyP////////iIiIiIiP//////jMzMzMzMzHj///////iIiIiIiI///////4fMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMj///////+IiIiIiI///////4zMzMzMzMzI///////4iIiIiIiI///////3zMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzI////////iIiIiIiP//////+MzMzMzMzMyP//////+IiIiIiIiP//////+MzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMeP///////4iIiIiIj///////jMzMzMzMzMj///////+IiIiIiIj///////jM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzI////////+IiIiIiP//////+HzMzMzMzMzHj///////iIiIiIiI////
|
||||
///4zMzMzMzMzMzMzMzMzMzMzMzMzMyP////////iIiIiI////////jMzMzMzMzMzI///////4iIiIiI
|
||||
iI//////+MzMzMzMzMzMzMzMzMzMzMzMzMzMj////////4iIiIiP///////4zMzMzMzMzMyP///////4
|
||||
iIiIiIiP//////jMzMzMzMzMzMzMzMzMzMzMzMzMzI////////+IiIiI////////h8zMzMzMzMzMeP//
|
||||
/////4iIiIiIj//////4fMzMzMzMzMzMzMzMzMzMzMzMzMyP////////iIiIj////////4fMzMzMzMzM
|
||||
zHj///////+IiIiIiI//////+HzMzMzMzMzMzMzMzMzMzMzMzMzHj/////////iIiP////////+MzMzM
|
||||
zMzMzMzI////////+IiIiIiP//////h8zMzMzMzMzMzMxmzMzMzMzMzMx4/////////4iP/////////4
|
||||
fMzMzMzMzMzMx4////////+IiIiIj//////4fMzMzMzMzMzMzMZszMzMzMzMzMeP////////////////
|
||||
////+MzMzMzMzMzMzMyP////////iIiIiP//////+HzMzMzMzMzMzMzGbMzMzMzMzMzH////////////
|
||||
//////////fMzMzMzMzMzMzMeP////////iIiIj///////98zMzMzMzMzMzMxmzMzMzMzMzMyP//////
|
||||
//////////////+HzMzMzMzMzMzMzHj/////////+IiP////////jMzMzMzMzMzMzMZszMzMzMzMzMj/
|
||||
////////////////////jMzMzMzMzMzMzMzIj////////////////////4zMzMzMzMzMzMzGTMzMzMzM
|
||||
zMzH////////////////////+HzMzMzMzMzMzMzMx4////////////////////+MzMzMzMzMzMzMxAzM
|
||||
zMzMzMzMx/////////////////////jMzMzMzMzMzMzMzMyI///////////////////4fMzMzMzMzMzM
|
||||
zMAGzMzMzMzMzMeP//////////////////+HzMzMzMzMzMzMzMzMeP//////////////////+HzMzMzM
|
||||
zMzMzMxgBszMzMzMzMzHj//////////////////4fMzMzMzMzMzMzMzMzMeP//////////////////h8
|
||||
zMzMzMzMzMzMYADMzMzMzMzMzI//////////////////+HzMzMzMzMzMzMzMzMzHj///////////////
|
||||
///4zMzMzMzMzMzMzAAAbMzMzMzMzMyP/////////////////4fMzMzMzMzMzMzMzMzMzHj/////////
|
||||
////////+MzMzMzMzMzMzMYAAEzMzMzMzMzMj/////////////////+MzMzMzMzMzMzMzMzMzMzIj///
|
||||
/////////////4fMzMzMzMzMzMzEAAAGzMzMzMzMzHj////////////////4fMzMzMzMzMzMzMzMzMzM
|
||||
x4////////////////+MzMzMzMzMzMzMYAAABMzMzMzMzMx4////////////////h8zMzMzMzMzMzMzM
|
||||
zMzMzMx4///////////////4fMzMzMzMzMzMzEAAAABszMzMzMzMx4//////////////+HzMzMzMzMzM
|
||||
zMzMzMzMzMzMx4//////////////+MzMzMzMzMzMzMYAAAAATMzMzMzMzMyP/////////////4fMzMzM
|
||||
zMzMzMzMzMzMzMzMzMeI/////////////4fMzMzMzMzMzMzEAAAAAAbMzMzMzMzMeP////////////h8
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMeI////////////h8zMzMzMzMzMzMYAAAAAAAbMzMzMzMzMeP////////
|
||||
//iHzMzMzMzMzMzMzMzMzMzMzMzMzMyI//////////+HzMzMzMzMzMzMxgAAAAAAAEzMzMzMzMzMeP//
|
||||
//////iHfMzMzMzMzMzMzMzMzMzMzMzMzMzMx4/////////4fMzMzMzMzMzMzMQAAAAAAAAGzMzMzMzM
|
||||
zMeI//////iHfMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4j//////4h8zMzMzMzMzMzMxgAAAAAAAAAGzM
|
||||
zMzMzMzMx4iIiIiHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiIj/+Ih3zMzMzMzMzMzMzGAAAAAAAA
|
||||
AAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx3iId8zMzMzMzMzMzMzMYAAA
|
||||
AAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
xgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzGAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzGQAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAABGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAAAABmzMzMzMzMzMzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGZmzMzMzMzMzMzMzM
|
||||
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZEAAAAAAAAAAAAAAAAD////+AAAAAAAAAAD/////////AAAA
|
||||
AAAAAAAAAP//////+AAAAAAAAAAAAAAf/////+AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAAAAH////+
|
||||
AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAA
|
||||
B///wAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA
|
||||
AAAAAAB//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
|
||||
AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAB+AA
|
||||
AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA
|
||||
AAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABAAAAAAAA
|
||||
AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA
|
||||
AAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AA
|
||||
AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAA
|
||||
AD/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA
|
||||
AAAAAAH//8AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////wAAAAA
|
||||
AAAAAAAAAAA////+AAAAAAAAAAAAAAAAf////4AAAAAAAAAAAAAAAf/////gAAAAAAAAAAAAAAf/////
|
||||
+AAAAAAAAAAAAAAf//////8AAAAAAAAAAAAA/////////gAAAAAAAAAAf////w==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
partial class DYSubAccountListForm
|
||||
partial class WXSubAccountListForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
+3
-3
@@ -12,14 +12,14 @@ using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Work;
|
||||
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
public partial class DYSubAccountListForm : BaseForm
|
||||
public partial class WXSubAccountListForm : BaseForm
|
||||
{
|
||||
public static List<ShopSubAccountInfo> AllUsers { get; set; } = new List<ShopSubAccountInfo>();
|
||||
public MainForm Mf { get; set; } = null;
|
||||
public string Uid { get; set; } = "";
|
||||
public DYSubAccountListForm()
|
||||
public WXSubAccountListForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
File renamed without changes.
+3
-3
@@ -1,6 +1,6 @@
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
partial class DYSubAccountShopEditForm
|
||||
partial class WXSubAccountShopEditForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
@@ -28,7 +28,7 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DYSubAccountShopEditForm));
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXSubAccountShopEditForm));
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.flpShopSubAccount = new System.Windows.Forms.FlowLayoutPanel();
|
||||
+3
-3
@@ -12,15 +12,15 @@ using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Work;
|
||||
|
||||
namespace TemuKJD.DYForms.ShopForms
|
||||
namespace TemuKJD.WXForms.ShopForms
|
||||
{
|
||||
public partial class DYSubAccountShopEditForm : LRBaseForm
|
||||
public partial class WXSubAccountShopEditForm : LRBaseForm
|
||||
{
|
||||
ShopLoginInfo shop = null;
|
||||
public List<ShopSubAccountInfo> AllSubAccountList { get; set; } = new List<ShopSubAccountInfo>();
|
||||
public List<ShopSubAccountInfo> ShopSubAccountList { get; set; } = new List<ShopSubAccountInfo>();
|
||||
public List<ShopSubAccountInfo> NotShopSubAccountList { get; set; } = new List<ShopSubAccountInfo>();
|
||||
public DYSubAccountShopEditForm(ShopLoginInfo _shop)
|
||||
public WXSubAccountShopEditForm(ShopLoginInfo _shop)
|
||||
{
|
||||
InitializeComponent();
|
||||
shop = _shop;
|
||||
File renamed without changes.
Reference in new issue
Block a user