店铺优化相关功能

This commit is contained in:
wule committed 2026-04-24 21:48:22 +08:00
1 parent 9805792aed
commit 0e6a927cf2
43 files changed
+3305 -1604

No files matched your search

+3
View File
@@ -286,7 +286,10 @@
<Compile Include="Model\Result\WXResult\GetCateOnShelfInfo.cs" />
<Compile Include="Model\Result\WXResult\GetProdCateInfo.cs" />
<Compile Include="Model\Result\WXResult\WxCatInfo.cs" />
<Compile Include="Model\Result\WXResult\WxOptimizeOrderAfterSaleInfo.cs" />
<Compile Include="Model\Result\WXResult\WxOptimizeProductEvaluationInfo.cs" />
<Compile Include="Model\Result\WXResult\WxOrderInfoLite.cs" />
<Compile Include="Model\Result\WXResult\WxOptimizeOrderWayBillInfo.cs" />
<Compile Include="Model\Result\WXResult\WXShopTokenInfo.cs" />
<Compile Include="MultiThreadClient.cs" />
<Compile Include="OutExcel.cs" />
+1 -1
View File
@@ -27,7 +27,7 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 1006;
public static int VersionCount = 1009;
//public static int VersionCount = 613;
/// <summary>
@@ -60,7 +60,10 @@ namespace AllBase.Model.Result.PDDResult
}
}
public string sendStatus { get; set; } = "";
//public string refundStatus { get; set; } = "";
/// <summary>
/// 微信退款单状态
/// </summary>
public string wxRefundStatus { get; set; } = "";
public string buyerId { get; set; } // 买手Id
public string buyerName { get; set; } // 买手名称
+17
View File
@@ -200,6 +200,19 @@ namespace AllBase.Model.Result
public DateTime? jit_expire_time { get; set; }
/// <summary>
/// 过期时间戳,单位秒
/// </summary>
public int? expire_time { get; set; }
public bool is_shop_expire
{
get
{
return BaseClass.UserAuthority.Contains("积分用户") && BaseClass.DateTimeToTimestampSeconds(DateTime.Now) > expire_time.ParseToInt();
}
}
public string CurrentProdId { get; set; }
}
@@ -266,6 +279,10 @@ namespace AllBase.Model.Result
/// 用户(JIT推单)授权金额
/// </summary>
public decimal? authorized_amount { get; set; }
/// <summary>
/// 店铺积分
/// </summary>
public int points { get; set; }
}
public class ShopSubAccountInfo : SubAccountInfo
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Result.WXResult
{
public class WxOptimizeOrderAfterSaleInfo
{
public string shopId { get; set; }
public string shopName { get; set; }
public AfterSaleOrderInfo orderInfo { get; set; }
public string reason { get; set; } // "生锈/弯曲变形/钝化不锋利"
}
public class AfterSaleOrderInfo
{
public string name { get; set; } // "短马尾假发女低扎梨花卷绑带式仿真长发蓬松慵懒新中式发饰假辫子",
public string skuName { get; set; } // "丝带慵懒感低马尾-短款30cm-棕黑色",
public string spuId { get; set; } // "10000723851835",
public string orderId { get; set; } // "3735828805942909440",
public string price { get; set; } // "2424",
public string createTime { get; set; } // "1775941648",
public int? productCnt { get; set; } // 1,
public string imgUrl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/69b60bf70007c5d80d671bd6d9478e0b000000a100004f50",
public string skuCode { get; set; } // "2032028553182519297",
public string skuThumbUrl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/69b60bf70007c5d80d671bd6d9478e0b000000a100004f50"
public string coverageBillOrder { get; set; }
}
}
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Result.WXResult
{
public class WxOptimizeOrderWayBillInfo
{
public WayBillOrderInfo orderInfo { get; set; }
public string waybillId { get; set; } // "JT4157662637789",
public string realPickupTime { get; set; } // "1776764623",
public string pickupDuration { get; set; } // "98460",
public WayBillDelivery delivery { get; set; }
public string payTime { get; set; } // "1776666163"
}
public class WayBillDelivery
{
public string deliveryId { get; set; } // "JTSD",
public string deliveryName { get; set; } // "极兔速递",
public string imgUrl { get; set; } // "https://res.wx.qq.com/shop/public/c73723c2-efb3-4c5e-84e9-77b43c0ade05.pic.jpg"
}
public class WayBillOrderInfo
{
public string name { get; set; } // "短马尾假发女低扎梨花卷绑带式仿真长发蓬松慵懒新中式发饰假辫子",
public string skuName { get; set; } // "丝带慵懒感低马尾-短款30cm-棕黑色",
public string spuId { get; set; } // "10000723851835",
public string orderId { get; set; } // "3735828805942909440",
public string price { get; set; } // "2424",
public int? productCnt { get; set; } // 1,
public string imgUrl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/69b60bf70007c5d80d671bd6d9478e0b000000a100004f50",
public string skuCode { get; set; } // "2032028553182519297",
public string skuThumbUrl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/69b60bf70007c5d80d671bd6d9478e0b000000a100004f50"
}
}
@@ -0,0 +1,107 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Result.WXResult
{
public class WxOptimizeProductEvaluationInfo
{
public string productEvaluationId { get; set; } // "53890834526",
public OptimizeEvaluationInfo evaluationInfo { get; set; }
public EvaluationProductInfo productInfo { get; set; }
public OperationInfo operationInfo { get; set; }
public ComplaintInfo complaint { get; set; }
public ReplyInfo replyInfo { get; set; }
}
public class ReplyInfo
{
public bool? canReply { get; set; } // false,
public string replyWording { get; set; } // "发布已超过30天,不可回复",
public string replyClass { get; set; } // ""
}
public class ComplaintInfo
{
public int? isSupportComplaint { get; set; } // 1,
public int? complaintStatus { get; set; } // 0,
public string complaintUuid { get; set; } // "",
public string jumpUrl { get; set; } // "",
public int? complaintWordStatus { get; set; } // 2
}
public class OperationInfo
{
public string evaluationWording { get; set; } // "一般",
public int? canReplyExpireTime { get; set; } // 1775879104,
public int? canReply { get; set; } // 1,
public int? attitudeType { get; set; } // 2,
public string attitudeName { get; set; } // "不够好"
}
public class EvaluationProductInfo
{
public string productId { get; set; } // "10000463687558",
public string skuId { get; set; } // "7315410466",
public string spuName { get; set; } // "巧克力味圆形小饼干整箱独立包装宿舍休闲小吃零食品",
public string skuName { get; set; } // "巧克力の小黑饼358克*1箱",
public string imgUrl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/689d3eec000ad249066bef109cb91715000000a100004f50"
}
public class OptimizeEvaluationInfo
{
public int? evaluationStar { get; set; } // 3
public string buyerNickname { get; set; } // "远***",
public string buyerHeadimgurl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/6389af6b000f38e013f251a1b434b00b000000a100004f50",
public FirstEvaluationInfo firstEvaluationInfo { get; set; }
public OptimizeEvaluationBuyer buyer { get; set; }
public OptimizeEvaluationLike like { get; set; }
}
public class OptimizeEvaluationLike
{
public string countDescription { get; set; } // "0"
}
public class OptimizeEvaluationBuyer
{
public OptimizeEvaluationIdentity identity { get; set; }
}
public class OptimizeEvaluationIdentity
{
public int? type { get; set; } // 1,
public string nickname { get; set; } // "远电",
public string headimgurl { get; set; } // "https://wx.qlogo.cn/mmhead/9M0PhLTmTIcaqokDrmVaeicynnnjic5H56wKCGxtPO3CfLyJTDAnhDjA"
}
public class FirstEvaluationInfo
{
public BuyerEvaluationInfo buyerEvaluationInfo { get; set; }
}
public class BuyerEvaluationInfo
{
public string content { get; set; } // "前几天买了这个饼干,结果收到货是五片口香糖,电话咨询老板说寄错了,重新寄过来,又等几天到现在都没有消息!",
public int? createTime{get;set;} // 1773287104,
public int? isAnonymous { get; set; } // 1,
public List<string> imgUrl { get; set; } // [ "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SZ/reserved/69b236b3000a233f38faea9a156aeaa0000000a000004f50" ],
public int? autoEvaluation { get; set; } // 0,
public AuditInfo auditInfo { get; set; } // { "status": 1 },
public int? contentType { get; set; } // 0,
public string defaultContent { get; set; } // ""
}
public class AuditInfo
{
public int? status { get; set; } // 1
}
}
@@ -22,6 +22,12 @@ namespace KJD_Web.BLL.BXX
{
if (!string.IsNullOrEmpty(inputData))
{
var time = 0;
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "time"), out time);
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
if (time1 != EncrypUtil.Encryption(time))
return "{\"code\":50000,\"msg\":\"校验失败\"}";
var mobile = RegexUtils.GetStringQuery(ref inputData, "mobile")?.Replace("'", "\\'");
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
int r2 = 0;
@@ -50,7 +56,7 @@ namespace KJD_Web.BLL.BXX
//obj1["redirect_uri"] = "http%3A%2F%2Fpo.e57.cn%2Flogin%3Fsource%3Dpdd_code";
obj1["redirect_uri"] = "http%3A%2F%2Fpo.e57.cn%2Flogin%3Fsource%3Dpdd_code_pixiu";
obj1["is_current"] = false;
jArr.Add(obj1);
//jArr.Add(obj1);
JObject obj2 = new JObject();
obj2["describe"] = "小红椒商品管理";
@@ -262,7 +268,13 @@ namespace KJD_Web.BLL.BXX
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("'", "");
// 特殊处理一下修复客户端店铺导入没有立即登录导致的cookie串的bug
//var shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids")?.Replace("'", "");
var shop_ids = RegexUtils.GetStringQuery(ref inputData, "shop_ids");
if (shop_ids == "''")
shop_ids = "999999999999999";
shop_ids = shop_ids?.Replace("'", "");
if (!string.IsNullOrWhiteSpace(shop_ids))
{
List<string> shopIdLst = shop_ids.Split(',').ToList();
@@ -763,7 +775,7 @@ namespace KJD_Web.BLL.BXX
string shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id");
string mall_id = RegexUtils.GetStringQuery(ref inputData, "mall_id");
string shop_account = RegexUtils.GetStringQuery(ref inputData, "shop_account");
string group_name = RegexUtils.GetStringQuery(ref inputData, "group_name");
string group_name = HtmlUtils.UrlDecodeUtf8(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);
@@ -818,14 +830,14 @@ namespace KJD_Web.BLL.BXX
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 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 mall_id = RegexUtils.GetStringQuery(ref inputData, "mall_id");
string shop_account = RegexUtils.GetStringQuery(ref inputData, "shop_account");
string group_name = RegexUtils.GetStringQuery(ref inputData, "group_name");
string group_name = HtmlUtils.UrlDecodeUtf8(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"));
@@ -846,10 +858,10 @@ namespace KJD_Web.BLL.BXX
string sql = "update bxx.shop set";
if (login_pass != null)
sql += " login_pass='" + login_pass + "',";
if (cookie != null)
sql += " cookie='" + cookie + "',";
if (cookie2 != null)
sql += " cookie2='" + cookie2 + "',";
//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)
@@ -929,7 +941,7 @@ namespace KJD_Web.BLL.BXX
int r2 = 0;
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
if (string.IsNullOrEmpty(login_name))
if (string.IsNullOrWhiteSpace(login_name))
{
return "{\"code\":500,\"msg\":\"店铺没有登录名\"}";
}
@@ -96,12 +96,9 @@ namespace KJD_Web.BLL.WXXD
}
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.group_name,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 = "SELECT s.*,se.expire_time‌ FROM wxxd.shop s" +
" LEFT JOIN wxxd.shop_expire se ON s.shop_id=se.shop_id" +
" WHERE 1=1";
sql += where; // where 子句
sql += " ORDER BY s.id DESC";
@@ -137,6 +134,7 @@ namespace KJD_Web.BLL.WXXD
openid = row["openid"].ParseToString(),
group_name = row["group_name"].ParseToString(),
add_time = row["add_time"].IsNullOrEmpty() ? DateTime.MinValue : Convert.ToDateTime(row["add_time"]),
expire_time = row["expire_time"].IsNullOrEmpty() ? null : (int?)row["expire_time"].ParseToInt(),
};
shopList.Add(shop);
}
@@ -1,5 +1,6 @@
using KJD_Web.Model;
using KJD_Web.Utils;
using Mysqlx.Crud;
using NaiBa.Util.Extension;
using System;
using System.Collections.Generic;
@@ -8,16 +9,32 @@ using System.Linq;
using System.Net;
using System.Reflection;
using System.Web;
using System.Web.Security;
using System.Web.UI.WebControls;
namespace KJD_Web.BLL.WXXD
{
public class WXUserManage
{
public static bool GetSign(string signData)
{
if (string.IsNullOrEmpty(signData)) { return false; }
var time = 0;
int.TryParse(RegexUtils.GetStringQuery(ref signData, "time"), out time);
string time1 = RegexUtils.GetStringQuery(ref signData, "code");
if (time1 != EncrypUtil.Encryption(time))
return false;
return true;
}
public string CheckUserLogin(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var mobile = RegexUtils.GetStringQuery(ref inputData, "mobile")?.Replace("'", "\\'");
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
@@ -30,8 +47,9 @@ namespace KJD_Web.BLL.WXXD
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 + "'";
string sql = "select u.*,uu.authority as main_authority " +
"FROM wxxd.user u LEFT JOIN wxxd.user uu ON uu.user_name=u.parent_user_name where u.user_name='"
+ mobile + "' and u.password='" + password + "'";
var dt = mySql.ExecuteDataTable(sql);
mySql.Close();
@@ -52,8 +70,22 @@ namespace KJD_Web.BLL.WXXD
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,
authority = row.Table.Columns.Contains("authority") ? row["authority"].ParseToString() : "",
points = row.Table.Columns.Contains("points") ? row["points"].ParseToInt() : 0,
};
var main_authority = row.Table.Columns.Contains("main_authority") ? row["main_authority"].ParseToString() : "";
// 子账号积分用户权限跟随
if (user.group_id != "3")
{
var userAuthLst = user.authority.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
if (!main_authority.Contains("积分用户"))
{
user.authority = string.Join(",", userAuthLst.Remove("积分用户"));
}
else if (!user.authority.Contains("积分用户"))
{
user.authority = (user.authority + "," + "积分用户").Trim(',');
}
}
if (string.IsNullOrEmpty(user.company_name))
{
user.company_name = "-";
@@ -71,6 +103,9 @@ namespace KJD_Web.BLL.WXXD
{
if (!string.IsNullOrEmpty(inputData))
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
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("'", "\\'");
@@ -114,6 +149,9 @@ namespace KJD_Web.BLL.WXXD
{
if (!string.IsNullOrEmpty(inputData))
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
var password = RegexUtils.GetStringQuery(ref inputData, "password");
var group = RegexUtils.GetStringQuery(ref inputData, "group");
@@ -164,6 +202,9 @@ namespace KJD_Web.BLL.WXXD
{
if (!string.IsNullOrEmpty(inputData))
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
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("'", "\\'");
@@ -212,11 +253,13 @@ namespace KJD_Web.BLL.WXXD
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string DelUser(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
var id = RegexUtils.GetStringQuery(ref inputData, "id");
int r2 = 0;
@@ -243,6 +286,9 @@ namespace KJD_Web.BLL.WXXD
{
if (!string.IsNullOrEmpty(inputData))
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
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("'", "\\'");
@@ -254,16 +300,17 @@ namespace KJD_Web.BLL.WXXD
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";
string sql = "select u.*,uu.authority as main_authority from wxxd.user u " +
"LEFT JOIN wxxd.user uu ON uu.user_name=u.parent_user_name WHERE 1=1";
if (!string.IsNullOrEmpty(group_id))
sql += " and group_id=" + group_id;
sql += " and u.group_id=" + group_id;
if (!string.IsNullOrEmpty(sa_level))
sql += " and sa_level=" + sa_level;
sql += " and u.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";
sql += " and (u.user_name like '%" + search +
"%' or u.nick_name like '%" + search +
"%' or u.company_name like '%" + search + "%')";
sql += " order by u.id desc";
var dt = mySql.ExecuteDataTable(sql);
mySql.Close();
@@ -288,7 +335,22 @@ namespace KJD_Web.BLL.WXXD
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,
authority = row.Table.Columns.Contains("authority") ? row["authority"].ParseToString() : "",
points = row.Table.Columns.Contains("points") ? row["points"].ParseToInt() : 0,
};
var main_authority = row.Table.Columns.Contains("main_authority") ? row["main_authority"].ParseToString() : "";
// 子账号积分用户权限跟随
if (user.group_id != "3")
{
var userAuthLst = user.authority.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
if (!main_authority.Contains("积分用户"))
{
user.authority = string.Join(",", userAuthLst.Remove("积分用户"));
}
else if (!user.authority.Contains("积分用户"))
{
user.authority = (user.authority + "," + "积分用户").Trim(',');
}
}
if (string.IsNullOrEmpty(user.mobile))
{
user.mobile = row["user_name"].ToString();
@@ -306,6 +368,9 @@ namespace KJD_Web.BLL.WXXD
{
if (!string.IsNullOrEmpty(inputData))
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
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("'", "\\'");
@@ -349,6 +414,9 @@ namespace KJD_Web.BLL.WXXD
{
if (!string.IsNullOrEmpty(inputData))
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
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("'", "\\'");
@@ -406,14 +474,140 @@ namespace KJD_Web.BLL.WXXD
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string UpdateUserPointsTest(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var id = RegexUtils.GetStringQuery(ref inputData, "id")?.Replace("'", "\\'");
var delta_points = RegexUtils.GetStringQuery(ref inputData, "delta_points")?.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(delta_points))
sql += " points=points+" + delta_points.ParseToInt() + ",";
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\":\"输入为空\"}";
}
/// <summary>
/// 增加或减少用户积分
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string UpdateUserPoints(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
var user_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "update_user_name"))?.Replace("'", "\\'");
var user_nick = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "update_user_nick"))?.Replace("'", "\\'");
var delta_points = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "delta_points"))?.ParseToInt();
var option_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "option_type"))?.Replace("'", "\\'");
var operator_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "operator_type"))?.Replace("'", "\\'");
var operator_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "operator_name"))?.Replace("'", "\\'");
var shop_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_id"))?.Replace("'", "\\'");
var shop_account = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "shop_account"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(user_name) || string.IsNullOrEmpty(user_nick))
{
return "{\"code\":500,\"msg\":\"充值对象不能为空\"}";
}
if (delta_points.IsNullOrZero())
{
return "{\"code\":500,\"msg\":\"充值金额不合法\"}";
}
if (string.IsNullOrEmpty(option_type) || string.IsNullOrEmpty(operator_type) || string.IsNullOrEmpty(operator_name))
{
return "{\"code\":500,\"msg\":\"操作或操作者信息不合法\"}";
}
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
mySql.Close();
//////string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
//////MysqlUtils mySql = new MysqlUtils(conn);
//////string sql = "";
//////sql += " START TRANSACTION";
//////sql += " SELECT * FROM wxxd.user WHERE user_name='" + user_name + "' FOR UPDATE;";
//////sql += " INSERT INTO wxxd.user_points_record(user_name,user_nick,points,option_type,operator_type,operator_name,shop_id,shop_account)";
//////sql += " VALUES()";
//////sql += " UPDATE wxxd.user SET points = points + delta_points";
////////INSERT INTO TableB(column1, column2)
////////SELECT A.column1, 'some_value' AS column2
////////FROM TableA A
////////WHERE A.value > 100;
//////sql = "select points from wxxd.user where user_name='" + user_name + "'";
//////var rst1 = mySql.ExecuteFirstInt(sql);
//sql = "UPDATE wxxd.user SET";
//if (option_type == "充值")
// sql += " points=points+" + delta_points.ParseToInt() + ",";
//else
// sql += " points=points-" + delta_points.ParseToInt() + ",";
//sql = sql.TrimEnd(',');
//sql += " where id=" + id + "";
//-
//if (!string.IsNullOrEmpty(notes))
// sql += " notes='" + notes + "',";
//if (!string.IsNullOrEmpty(sa_level))
// sql += " sa_level=" + sa_level + ",";
//if (authority != null)
// sql += " authority='" + authority + "',";
//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\":200,\"msg\":\"success\"}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string ChangePassword(string inputData)
{
if (!GetSign(inputData))
return "{\"code\":999,\"msg\":\"校验失败\"}";
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("'", "\\'");
if (string.IsNullOrWhiteSpace(userName) || string.IsNullOrWhiteSpace(password) || string.IsNullOrWhiteSpace(newPassword))
{
return "{\"code\":500,\"msg\":\"输入不能为空\"}";
}
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='"
@@ -445,8 +639,16 @@ namespace KJD_Web.BLL.WXXD
}
}
/// <summary>
/// temu退回包裹的密钥
/// </summary>
public string return_package_secret_key { get; set; } = "aaMETt2bPe6YHzZ1ojbC+6wOvgtwehqc6A+/Rz+pCUU=";
/// <summary>
/// temu退回包裹的签名
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
public string GetPackageSign(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
@@ -67,6 +67,7 @@ namespace KJD_Web.Model.ShopModel
/// </summary>
public string ad_login_status { get; set; }
public DateTime? jit_expire_time { get; set; }
public int? expire_time { get; set; }
public DateTime? add_time { get; set; }
}
@@ -62,5 +62,9 @@ namespace KJD_Web.Model
/// 用户的功能操作权限
/// </summary>
public string authority { get; set; }
/// <summary>
/// 用户积分点数
/// </summary>
public int points { get; set; }
}
}
+14 -3
View File
@@ -68,6 +68,11 @@ namespace KJD_Web.Utils
ConnTo();
}
public void BeginTransaction()
{
Conn.BeginTransaction();
}
/// <summary>
/// 去掉SQL中的特殊字符
/// </summary>
@@ -329,9 +334,9 @@ namespace KJD_Web.Utils
/// </summary>
/// <param name="SqlString"></param>
/// <returns></returns>
public int ExecuteFirstInt(string SqlString)
public int ExecuteFirstInt(string SqlString, MySqlParameter[] parms = null)
{
string id = ExecuteFirst(SqlString, null);
string id = ExecuteFirst(SqlString, parms);
int i;
int.TryParse(id, out i);
return i;
@@ -659,16 +664,22 @@ namespace KJD_Web.Utils
cmd.CommandTimeout = TimeOut;
}
public MySqlTransaction Transaction { get; set; } = null;
/// <summary>
/// 连接数据库
/// </summary>
private void ConnTo()
private void ConnTo(bool isTransaction = false)
{
Close();
try
{
Conn = new MySqlConnection(ConnString);
Conn.Open();
if (isTransaction)
{
Conn.BeginTransaction();
}
}
catch (Exception e)
{
+4
View File
@@ -19,6 +19,9 @@ namespace TemuKJD.BLL.PddApi
{
if (isForceRefresh || (shop.AuthUpdateTime <= DateTime.Now.AddDays(-1) && shop.AuthExpiresTime <= DateTime.Now))
{
if (!GlobalConfig.PddClentInfoList.Any(c => c.client_id == PddApi.clientId_pi_xiu_guan_jia))
return;
string errStr = "";
var authInfo = PddApiHelper.GetE57ShopPddToken(shop, out errStr);
if (errStr.IsNullOrEmpty() || (shop.AuthUpdateTime <= DateTime.Now.AddDays(-1) && shop.AuthExpiresTime <= DateTime.Now))
@@ -104,6 +107,7 @@ namespace TemuKJD.BLL.PddApi
{
var dataStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(html)["data"]);
var serverApiAuthList = JsonHelper.DeserializeJsonToList<AuthInfo>(dataStr);
serverApiAuthList = serverApiAuthList.Where(a => GlobalConfig.PddClentInfoList.Any(c => c.client_id == a.AppKey)).ToList();
foreach (var serverAuth in serverApiAuthList)
{
var shop = shopList.FirstOrDefault(s => s.ShopId == serverAuth.ShopId);
+9
View File
@@ -274,6 +274,12 @@
<Compile Include="WXForms\ProductForms\WXFinderSquareForm.Designer.cs">
<DependentUpon>WXFinderSquareForm.cs</DependentUpon>
</Compile>
<Compile Include="WXForms\ShopForms\WXShopOptimizeForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="WXForms\ShopForms\WXShopOptimizeForm.Designer.cs">
<DependentUpon>WXShopOptimizeForm.cs</DependentUpon>
</Compile>
<Compile Include="WXForms\ShopForms\WXShopBrowserObject.cs" />
<Compile Include="WXForms\AdminForms\WXAdminShopListForm.cs">
<SubType>Form</SubType>
@@ -1316,6 +1322,9 @@
<EmbeddedResource Include="WXForms\ProductForms\WXProductForm.resx">
<DependentUpon>WXProductForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WXForms\ShopForms\WXShopOptimizeForm.resx">
<DependentUpon>WXShopOptimizeForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WXForms\ShopForms\WXShopMultiLoginForm.resx">
<DependentUpon>WXShopMultiLoginForm.cs</DependentUpon>
</EmbeddedResource>
@@ -701,7 +701,10 @@ namespace TemuKJD.PDDForms.AdminForms
}
if (html.Contains("\"code\":200") || html.Contains("已存在"))
{
successCount++;
CheckShopLogin(new ShopLoginInfo[] { shop }, false);
}
else
failCount++;
Thread.Sleep(100);
@@ -71,6 +71,7 @@ namespace TemuKJD.PDDForms.ProductForms
string sVioInfo = JsonHelper.SerializeObject(jObj);
var punishUuid = BaseRegex.GetStringJson(ref sVioInfo, "punishUuid");
var punishReason = BaseRegex.GetStringJson(ref sVioInfo, "punishReason");
var punishTime = BaseClass.StampToDateTime(BaseRegex.GetIntJson(ref sVioInfo, "punishTime"));
var productId = BaseRegex.GetStringJson(ref sVioInfo, "productId");
var productDesc = BaseRegex.GetStringJson(ref sVioInfo, "productDesc");
//相似同款低质商品 不当使用他人权利
@@ -82,7 +83,7 @@ namespace TemuKJD.PDDForms.ProductForms
var url = BaseClass.BuildPDDObjString("product/mdy_violation_prod");
var data = UserLogin.GetSignaturex();
data += "&wx_safe_status=违规商品";
data += "&notes=" + ("违规轮询-" + shop.ShopId + "-" + punishUuid + "-" + punishReason).Trim();
data += "&notes=" + GetHtml.UrlEncodeUtf8(("违规轮询-" + shop.ShopId + "-" + punishUuid + "-" + punishReason + "-" + punishTime.ToString("yy/MM/dd HH:mm")).Trim());
data += "&product_name=" + productDesc;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
@@ -8685,6 +8685,7 @@ Content-Type: image/jpeg
continue;
}
randomShopLst.Clear();
randomShopLst.AddRange(GlobalConfig.ShopLoginList.Where(s => shopIdLst.Contains(s.ShopId) && s.LoginStatus == "登录成功"));
if (randomShopLst.Count == 0)
{
@@ -8865,7 +8866,7 @@ Content-Type: image/jpeg
var rw = dgvShop.Rows.Cast<DataGridViewRow>().FirstOrDefault(r => r.Cells["colShopId"].Value.ParseToString() == shop.ShopId);
if (rw != null)
row.Cells["colSelect"].Value = false;
rw.Cells["colSelect"].Value = false;
}));
continue;
}
@@ -9225,7 +9226,11 @@ Content-Type: image/jpeg
if (panel2.Controls.Contains(cefWebBrowser))
{
panel2.Controls.Remove(cefWebBrowser);
cefWebBrowser.Dispose();
Task.Run(() =>
{
Thread.Sleep(60000);
Invoke(new Action(() => { cefWebBrowser.Dispose(); }));
});
shop.Chat = null;
}
}));
@@ -9446,7 +9451,11 @@ Content-Type: image/jpeg
if (panel2.Controls.Contains(cefWebBrowser))
{
panel2.Controls.Remove(cefWebBrowser);
cefWebBrowser.Dispose();
Task.Run(() =>
{
Thread.Sleep(60000);
Invoke(new Action(() => { cefWebBrowser.Dispose(); }));
});
shop.Chat = null;
}
}));
@@ -9558,6 +9567,8 @@ Content-Type: image/jpeg
for (int i = 0; i < prodRstObj["goods_property_list"].Count(); i++)
{
var propObj = JObject.Parse(JsonHelper.SerializeObject(prodRstObj["goods_property_list"][i]));
//if (propObj["vid"].ParseToInt() == 0)
// continue;
propObj["value"] = propObj["vvalue"];
propObj["value_unit"] = propObj["punit"];
propObj.Remove("vvalue");
@@ -9936,13 +9947,24 @@ Content-Type: image/jpeg
#region 生成属性规格id
if (dbProd.product_get_type_text == "厂商直采")
{
var apiGetPddSpecIdRst = ApiGetPddSpecId(shop, prodInfo, addPriceSkuInfoLst, cell);
// 接口获取到的spec可能和模拟提交的商品spec不符合,尽量使用模拟提交的spec
prodInfo.detail.cat_id = prodRstObj["cat_id"].ParseToInt();
var specNameDic = new Dictionary<long, string>();
for (int i = 0; i < 1 && i < prodRstObj["sku_list"].Count(); i++)
{
var skuObj = JObject.Parse(JsonHelper.SerializeObject(prodRstObj["sku_list"][i]));
foreach (var specObj in skuObj["spec"])
{
specNameDic[specObj["parent_id"].ParseToLong()] = specObj["parent_name"].ParseToString();
}
}
var apiGetPddSpecIdRst = ApiGetPddSpecId(shop, prodInfo, addPriceSkuInfoLst, cell, specNameDic);
if (!apiGetPddSpecIdRst.IsNullOrEmpty() && apiGetPddSpecIdRst != "success")
return apiGetPddSpecIdRst;
}
#endregion
#region // 添加一个多件sku,库存设置为0
#region 添加一个多件sku,库存设置为0
if (chkMultiPcsSku.Checked)
{
var addMulitPcsSkuRst = AddMulitPcsSku(shop, addPriceSkuInfoLst, skuFakeSpecNameDic1);
@@ -9953,12 +9975,39 @@ Content-Type: image/jpeg
#region 拼接sku,计算最高价格和最低价格
var skuApiString = "";
var apiGetSkuRst = ApiGetPddSku(ref skuApiString, shop, addPriceSkuInfoLst, fakeImg, skuFakeSpecNameDic1, skuFakeSpecNameDic2, cell);
var apiGetSkuRst = ApiGetPddSku(ref skuApiString, shop, addPriceSkuInfoLst, fakeImg, skuFakeSpecNameDic1, skuFakeSpecNameDic2, cell, true);
if (!apiGetSkuRst.IsNullOrEmpty() && apiGetSkuRst != "success")
return apiGetSkuRst;
pddApi.Data["sku_list"] = "[" + skuApiString.Trim(',') + "]";
#endregion
#region 按原商品拼接sku语句,作废
string skuStr = "";
if (1 == 1)
{
for (int i = 0; i < prodRstObj["sku_list"].Count(); i++)
{
var skuObj = JObject.Parse(JsonHelper.SerializeObject(prodRstObj["sku_list"][i]));
skuObj["sku_properties"] = skuObj["sku_property_list"];
skuObj["quantity"] = 0;
string spec = "";
foreach (var specObj in skuObj["spec"])
{
spec += "," + specObj["spec_id"].ParseToString();
}
spec = spec.Trim(',');
skuObj["spec_id_list"] = "[" + spec + "]";
skuObj.Remove("sku_property_list");
//skuObj.Remove("sku_properties");
skuObj.Remove("spec");
skuStr += JsonHelper.SerializeObject(skuObj) + ",";
}
skuStr = skuStr.Trim(',');
if (1 == 2)
pddApi.Data["sku_list"] = "[" + skuStr + "]";
}
#endregion
#region 计算转换列表内是否有符合条件的转换商品
var addPriceSkuInfoMinPrice = addPriceSkuInfoLst.Min(s => s.price);
var addPriceSkuInfoMaxPrice = addPriceSkuInfoLst.Max(s => s.price);
@@ -9978,7 +10027,6 @@ Content-Type: image/jpeg
}
};
Invoke(new Action(() =>
{
if (cell != null)
@@ -10027,7 +10075,7 @@ Content-Type: image/jpeg
/// <param name="addPriceSkuInfoLst"></param>
/// <param name="cell"></param>
/// <returns></returns>
private string ApiGetPddSpecId(ShopLoginInfo shop, PDDProductInfo prodInfo, List<sku_item> addPriceSkuInfoLst, DataGridViewCell cell)
private string ApiGetPddSpecId(ShopLoginInfo shop, PDDProductInfo prodInfo, List<sku_item> addPriceSkuInfoLst, DataGridViewCell cell, Dictionary<long, string> specNameDic = null)
{
PddApi PddGoodsSpecGetApi = new PddApi(shop);
PddGoodsSpecGetApi.Data["cat_id"] = prodInfo.detail.cat_id;
@@ -10040,7 +10088,8 @@ Content-Type: image/jpeg
return "初始化Sku属性失败 " + errMsg;
}
Dictionary<long, string> specNameDic = new Dictionary<long, string>();
if (specNameDic == null)
specNameDic = new Dictionary<long, string>();
foreach (var jObj in JsonHelper.JObjectParse(PddGoodsSpecGetApiRst)["goods_spec_get_response"]["goods_spec_list"])
{
string specStr = JsonHelper.SerializeObject(jObj);
@@ -10196,7 +10245,7 @@ Content-Type: image/jpeg
}
private string ApiGetPddSku(ref string skuApiString, ShopLoginInfo shop, List<sku_item> addPriceSkuInfoLst, Image fakeImg,
Dictionary<string, string> skuFakeSpecNameDic1, Dictionary<string, string> skuFakeSpecNameDic2, DataGridViewCell cell)
Dictionary<string, string> skuFakeSpecNameDic1, Dictionary<string, string> skuFakeSpecNameDic2, DataGridViewCell cell, bool isEdit = false)
{
Dictionary<string, string> skuImgDic = new Dictionary<string, string>();
// 拼接sku,计算最高价格和最低价格
@@ -10261,11 +10310,49 @@ Content-Type: image/jpeg
int weight = addPriceSkuInfoLst[i].weight.IsNullOrZero() ? 1000 : addPriceSkuInfoLst[i].weight.ParseToInt();
skuApiString += ",{\"is_onsale\":" + addPriceSkuInfoLst[i].is_onsale + ",\"limit_quantity\":" + addPriceSkuInfoLst[i].limit_quantity +
",\"price\":\"" + addPriceSkuInfoLst[i].price + "\",\"weight\":" + weight + ",\"multi_price\":\"" + addPriceSkuInfoLst[i].multi_price +
"\",\"thumb_url\":\"" + thumb_url + "\",\"out_sku_sn\":\"" + addPriceSkuInfoLst[i].out_sku_sn +
"\",\"quantity\":" + addPriceSkuInfoLst[i].quantity + ",\"spec_id_list\":\"[" + spec + "]\"}";
//skuApiString += ",{\"is_onsale\":" + addPriceSkuInfoLst[i].is_onsale + ",\"limit_quantity\":" + addPriceSkuInfoLst[i].limit_quantity +
// ",\"price\":\"" + addPriceSkuInfoLst[i].price + "\",\"weight\":" + weight + ",\"multi_price\":\"" + addPriceSkuInfoLst[i].multi_price +
// "\",\"thumb_url\":\"" + thumb_url + "\",\"out_sku_sn\":\"" + addPriceSkuInfoLst[i].out_sku_sn +
// "\",\"quantity\":" + addPriceSkuInfoLst[i].quantity + ",\"spec_id_list\":\"[" + spec + "]\"}";
var skuApiObj = new JObject();
skuApiObj["is_onsale"] = addPriceSkuInfoLst[i].is_onsale;
skuApiObj["limit_quantity"] = addPriceSkuInfoLst[i].limit_quantity;
skuApiObj["multi_price"] = addPriceSkuInfoLst[i].multi_price;
skuApiObj["price"] = addPriceSkuInfoLst[i].price;
skuApiObj["weight"] = weight;
skuApiObj["thumb_url"] = thumb_url;
skuApiObj["out_sku_sn"] = addPriceSkuInfoLst[i].out_sku_sn;
skuApiObj["quantity"] = addPriceSkuInfoLst[i].quantity;
skuApiObj["spec_id_list"] = "[" + spec + "]";
if (isEdit)
{
skuApiObj["sku_id"] = null;
//skuApiObj.RemoveAll();
//skuApiObj["out_sku_sn"] = addPriceSkuInfoLst[i].out_sku_sn;
//skuApiObj["multi_price"] = addPriceSkuInfoLst[i].multi_price;
//skuApiObj["thumb_url"] = thumb_url;
//skuApiObj["quantity"] = addPriceSkuInfoLst[i].quantity;
//skuApiObj["sku_pre_sale_time"] = 0;
//skuApiObj["reserve_quantity"] = 0;
//skuApiObj["length"] = null;
//skuApiObj["weight"] = 0;
//skuApiObj["sku_id"] = null;
//skuApiObj["oversea_sku"] = new JObject();
//skuApiObj["oversea_sku"]["record_id_list"] = null;
//skuApiObj["oversea_sku"]["measurement_code"] = null;
//skuApiObj["oversea_sku"]["measurement_unit"] = null;
//skuApiObj["oversea_sku"]["specifications"] = null;
//skuApiObj["oversea_sku"]["taxation"] = null;
//skuApiObj["is_onsale"] = addPriceSkuInfoLst[i].is_onsale;
//skuApiObj["out_source_sku_id"] = null;
//skuApiObj["price"] = addPriceSkuInfoLst[i].price;
//skuApiObj["limit_quantity"] = 999999;
//skuApiObj["sku_properties"] = null;
//skuApiObj["spec_id_list"] = "[" + spec + "]";
}
skuApiString += "," + JsonHelper.SerializeObject(skuApiObj);
}
return "success";
}
+58 -36
View File
@@ -55,6 +55,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.colMallId = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -70,6 +72,8 @@
this.colLoginStatus = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colBuyApi = new System.Windows.Forms.DataGridViewLinkColumn();
this.colBindApi = new System.Windows.Forms.DataGridViewLinkColumn();
this.colBuyOrderApi = new System.Windows.Forms.DataGridViewLinkColumn();
this.colBindOrderApi = new System.Windows.Forms.DataGridViewLinkColumn();
this.colGotoShop = new System.Windows.Forms.DataGridViewLinkColumn();
this.colShopOperate = new System.Windows.Forms.DataGridViewLinkColumn();
this.colRelogin = new System.Windows.Forms.DataGridViewLinkColumn();
@@ -81,8 +85,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();
@@ -459,6 +461,8 @@
this.colLoginStatus,
this.colBuyApi,
this.colBindApi,
this.colBuyOrderApi,
this.colBindOrderApi,
this.colGotoShop,
this.colShopOperate,
this.colRelogin,
@@ -480,6 +484,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;
@@ -578,23 +607,39 @@
// colBuyApi
//
this.colBuyApi.FillWeight = 46F;
this.colBuyApi.HeaderText = "购买授权";
this.colBuyApi.HeaderText = "上传Api";
this.colBuyApi.Name = "colBuyApi";
this.colBuyApi.ReadOnly = true;
//
// colBindApi
//
this.colBindApi.FillWeight = 46F;
this.colBindApi.HeaderText = "绑定授权";
this.colBindApi.FillWeight = 48F;
this.colBindApi.HeaderText = "上传授权";
this.colBindApi.Name = "colBindApi";
this.colBindApi.ReadOnly = true;
this.colBindApi.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colBindApi.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// colBuyOrderApi
//
this.colBuyOrderApi.FillWeight = 46F;
this.colBuyOrderApi.HeaderText = "订单Api";
this.colBuyOrderApi.Name = "colBuyOrderApi";
this.colBuyOrderApi.ReadOnly = true;
this.colBuyOrderApi.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colBuyOrderApi.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// colBindOrderApi
//
this.colBindOrderApi.FillWeight = 48F;
this.colBindOrderApi.HeaderText = "订单授权";
this.colBindOrderApi.Name = "colBindOrderApi";
this.colBindOrderApi.ReadOnly = true;
//
// colGotoShop
//
this.colGotoShop.FillWeight = 46F;
this.colGotoShop.HeaderText = "进入店铺";
this.colGotoShop.FillWeight = 38F;
this.colGotoShop.HeaderText = "进店";
this.colGotoShop.Name = "colGotoShop";
this.colGotoShop.ReadOnly = true;
this.colGotoShop.Resizable = System.Windows.Forms.DataGridViewTriState.True;
@@ -612,7 +657,7 @@
//
// colRelogin
//
this.colRelogin.FillWeight = 40F;
this.colRelogin.FillWeight = 38F;
this.colRelogin.HeaderText = "登录";
this.colRelogin.Name = "colRelogin";
this.colRelogin.ReadOnly = true;
@@ -677,7 +722,7 @@
//
// colEdit
//
this.colEdit.FillWeight = 46F;
this.colEdit.FillWeight = 38F;
this.colEdit.HeaderText = "编辑";
this.colEdit.Name = "colEdit";
this.colEdit.ReadOnly = true;
@@ -686,36 +731,11 @@
//
// colDelete
//
this.colDelete.FillWeight = 46F;
this.colDelete.FillWeight = 38F;
this.colDelete.HeaderText = "删除";
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
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -777,6 +797,7 @@
private UserControls.ButtonEx btnRefreshShop;
private System.Windows.Forms.ComboBox cmbNotes;
private UserComponent.UcCheckBox chkUsePddWorkbanch;
public UserControls.ButtonEx btnOpenOrder;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName;
private System.Windows.Forms.DataGridViewTextBoxColumn colMallId;
@@ -792,6 +813,8 @@
private System.Windows.Forms.DataGridViewTextBoxColumn colLoginStatus;
private System.Windows.Forms.DataGridViewLinkColumn colBuyApi;
private System.Windows.Forms.DataGridViewLinkColumn colBindApi;
private System.Windows.Forms.DataGridViewLinkColumn colBuyOrderApi;
private System.Windows.Forms.DataGridViewLinkColumn colBindOrderApi;
private System.Windows.Forms.DataGridViewLinkColumn colGotoShop;
private System.Windows.Forms.DataGridViewLinkColumn colShopOperate;
private System.Windows.Forms.DataGridViewLinkColumn colRelogin;
@@ -803,6 +826,5 @@
private System.Windows.Forms.DataGridViewLinkColumn colCopyCookies;
private System.Windows.Forms.DataGridViewLinkColumn colEdit;
private System.Windows.Forms.DataGridViewLinkColumn colDelete;
public UserControls.ButtonEx btnOpenOrder;
}
}
+38 -5
View File
@@ -485,6 +485,8 @@ namespace TemuKJD.PDDForms.ShopForms
"",
"购买授权",
"绑定授权",
"购买授权",
"绑定授权",
"进入",
"检测",
string.IsNullOrWhiteSpace(param.LoginStatus) ? "未登录" : param.LoginStatus.Trim(),
@@ -759,7 +761,8 @@ namespace TemuKJD.PDDForms.ShopForms
switch (headerText)
{
case "检测":
//CheckShopLoginAsync(new string[] { loginName });
//CheckShopLoginAsync(new string[] { loginName });
case "进店":
case "进入店铺":
IsOperate = true;
{
@@ -839,7 +842,7 @@ namespace TemuKJD.PDDForms.ShopForms
}
IsOperate = false;
break;
case "购买授权":
case "上传Api":
{
var currentPddClient = GlobalConfig.PddClentInfoList.FirstOrDefault(c => c.is_current == true);
if (currentPddClient != null)
@@ -855,7 +858,7 @@ namespace TemuKJD.PDDForms.ShopForms
}
}
break;
case "绑定授权":
case "上传授权":
{
var currentPddClient = GlobalConfig.PddClentInfoList.FirstOrDefault(c => c.is_current == true);
if (currentPddClient != null)
@@ -874,6 +877,36 @@ namespace TemuKJD.PDDForms.ShopForms
}
}
break;
case "订单Api":
{
var currentPddClient = GlobalConfig.PddClentInfoList.FirstOrDefault(c => c.is_current == true);
if (currentPddClient != null)
{
PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop);
shopLoginForm.InitUrl = "https://fuwu.pinduoduo.com/service-market/service-detail?detailId=84862";
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
shopLoginForm.ShowDialog();
btnRefreshCookie_Click(null, null);
}
}
break;
case "订单授权":
{
var currentPddClient = GlobalConfig.PddClentInfoList.FirstOrDefault(c => c.is_current == true);
if (currentPddClient != null)
{
PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop);
shopLoginForm.InitUrl = "https://fuwu.pinduoduo.com/service-market/auth?client_id=" + PddApi.clientId_pi_xiu_guan_jia +
"&redirect_uri=" + GetHtml.UrlEncodeUtf8("http://po.e57.cn/login?source=pdd_code_pixiu") + "&response_type=code";
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.AuthClientId = currentPddClient.client_id;
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
shopLoginForm.ShowDialog();
btnRefreshCookie_Click(null, null);
}
}
break;
//case "多重登录":
// IsOperate = true;
// ShopLoginForm shopMultiLoginForm = new ShopLoginForm(shop);
@@ -932,7 +965,7 @@ namespace TemuKJD.PDDForms.ShopForms
this.btnCheck.Enabled = false;
var t = Task.Run(() =>
{
UpdateShop();
//UpdateShop();
CheckShopListLogin(shopNameList.Distinct().ToArray());
RefreshDataGridView(false);
});
@@ -1181,7 +1214,7 @@ function setCookie(name, value, daysToLive, path, domain, secure, httpOnly, same
if (shop == null)
shop = new ShopLoginInfo();
PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop);
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.openType = EnumOpenType.order_login;
shopLoginForm.WindowState = FormWindowState.Maximized;
shopLoginForm.txtUserName.ReadOnly = false;
shopLoginForm.txtPassWord.ReadOnly = false;
@@ -162,6 +162,12 @@
<metadata name="colBindApi.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colBuyOrderApi.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colBindOrderApi.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>
+16 -2
View File
@@ -36,6 +36,7 @@ namespace TemuKJD.PDDForms.ShopForms
login,
manage,
refresh_cookie,
order_login,
}
public partial class PDDShopLoginForm : BaseGeneralForm
{
@@ -515,7 +516,19 @@ namespace TemuKJD.PDDForms.ShopForms
txtAddress.Text = e.Address;
}));
}
if (e.Address == "https://po.e57.cn/login?redirect=%2Findex" && shop != null && !string.IsNullOrEmpty(shop.LoginName))
if (e.Address == "https://po.e57.cn/login?redirect=%2Findex" && openType == EnumOpenType.manage)
{
Task.Run(() =>
{
Thread.Sleep(2000);
Invoke(new Action(() =>
{
if (this.Created && !this.IsDisposed && !this.Disposing)
this.Close();
}));
});
}
if (e.Address == "https://po.e57.cn/login?redirect=%2Findex" && openType == EnumOpenType.order_login && shop != null && !string.IsNullOrEmpty(shop.LoginName))
{
Task.Run(() =>
{
@@ -670,7 +683,8 @@ namespace TemuKJD.PDDForms.ShopForms
if (this.Created && !this.Disposing && !this.IsDisposed)
Invoke(new Action(() =>
{
try { this.TitleText = "店铺登录 - " + GetAntiContentsTimes; } catch { return; }
if (this.Created && !this.Disposing && !this.IsDisposed)
try { this.TitleText = "店铺登录 - " + GetAntiContentsTimes; } catch { return; }
}));
shop.AntiContents.Add(antiContent);
while (shop.AntiContents.Count > 100)
+65 -41
View File
@@ -30,10 +30,12 @@ namespace TemuKJD.WXForms.AdminForms
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
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();
this.splitContainer5 = new System.Windows.Forms.SplitContainer();
this.chkShopPoints = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.chkWXShowProdGetFromType = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.label7 = new System.Windows.Forms.Label();
this.chkWXComplateProd = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.cmbSaLevel = new System.Windows.Forms.ComboBox();
@@ -79,11 +81,11 @@ namespace TemuKJD.WXForms.AdminForms
this.colSaLevel = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSaLevelName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colAuthority = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colPoints = new System.Windows.Forms.DataGridViewLinkColumn();
this.colAddShop = new System.Windows.Forms.DataGridViewLinkColumn();
this.editColumn = new System.Windows.Forms.DataGridViewLinkColumn();
this.deleteColumn = new System.Windows.Forms.DataGridViewLinkColumn();
this.btnExportShopErp = new DevComponents.DotNetBar.PanelEx();
this.chkWXShowProdGetFromType = new TemuKJD.UserComponent.UcCheckBox(this.components);
((System.ComponentModel.ISupportInitialize)(this.splitContainer5)).BeginInit();
this.splitContainer5.Panel1.SuspendLayout();
this.splitContainer5.Panel2.SuspendLayout();
@@ -106,6 +108,7 @@ namespace TemuKJD.WXForms.AdminForms
// splitContainer5.Panel1
//
this.splitContainer5.Panel1.BackColor = System.Drawing.Color.WhiteSmoke;
this.splitContainer5.Panel1.Controls.Add(this.chkShopPoints);
this.splitContainer5.Panel1.Controls.Add(this.chkWXShowProdGetFromType);
this.splitContainer5.Panel1.Controls.Add(this.label7);
this.splitContainer5.Panel1.Controls.Add(this.chkWXComplateProd);
@@ -144,11 +147,29 @@ namespace TemuKJD.WXForms.AdminForms
//
this.splitContainer5.Panel2.Controls.Add(this.splitContainer1);
this.splitContainer5.Panel2.Padding = new System.Windows.Forms.Padding(0, 5, 5, 5);
this.splitContainer5.Size = new System.Drawing.Size(1376, 527);
this.splitContainer5.Size = new System.Drawing.Size(1376, 563);
this.splitContainer5.SplitterDistance = 357;
this.splitContainer5.SplitterWidth = 1;
this.splitContainer5.TabIndex = 3;
//
// chkShopPoints
//
this.chkShopPoints.Location = new System.Drawing.Point(112, 419);
this.chkShopPoints.Name = "chkShopPoints";
this.chkShopPoints.Size = new System.Drawing.Size(68, 21);
this.chkShopPoints.TabIndex = 811;
this.chkShopPoints.Text = "积分用户";
this.chkShopPoints.UseVisualStyleBackColor = true;
//
// chkWXShowProdGetFromType
//
this.chkWXShowProdGetFromType.Location = new System.Drawing.Point(192, 395);
this.chkWXShowProdGetFromType.Name = "chkWXShowProdGetFromType";
this.chkWXShowProdGetFromType.Size = new System.Drawing.Size(68, 21);
this.chkWXShowProdGetFromType.TabIndex = 810;
this.chkWXShowProdGetFromType.Text = "货源选择";
this.chkWXShowProdGetFromType.UseVisualStyleBackColor = true;
//
// label7
//
this.label7.AutoSize = true;
@@ -277,7 +298,7 @@ namespace TemuKJD.WXForms.AdminForms
//
this.label1.AutoSize = true;
this.label1.ForeColor = System.Drawing.SystemColors.ButtonShadow;
this.label1.Location = new System.Drawing.Point(56, 475);
this.label1.Location = new System.Drawing.Point(56, 493);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(212, 17);
this.label1.TabIndex = 37;
@@ -306,7 +327,7 @@ namespace TemuKJD.WXForms.AdminForms
this.btnCancel.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCancel.ForeColor = System.Drawing.Color.White;
this.btnCancel.Location = new System.Drawing.Point(59, 430);
this.btnCancel.Location = new System.Drawing.Point(59, 455);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(86, 25);
this.btnCancel.TabIndex = 35;
@@ -322,7 +343,7 @@ namespace TemuKJD.WXForms.AdminForms
this.btnOpUser.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnOpUser.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOpUser.ForeColor = System.Drawing.Color.White;
this.btnOpUser.Location = new System.Drawing.Point(174, 430);
this.btnOpUser.Location = new System.Drawing.Point(174, 455);
this.btnOpUser.Name = "btnOpUser";
this.btnOpUser.Size = new System.Drawing.Size(86, 25);
this.btnOpUser.TabIndex = 34;
@@ -500,28 +521,28 @@ namespace TemuKJD.WXForms.AdminForms
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.btnExportShopErp);
this.splitContainer1.Size = new System.Drawing.Size(1013, 517);
this.splitContainer1.SplitterDistance = 486;
this.splitContainer1.Size = new System.Drawing.Size(1013, 553);
this.splitContainer1.SplitterDistance = 522;
this.splitContainer1.TabIndex = 2;
//
// dgvUser
//
this.dgvUser.AllowUserToAddRows = false;
this.dgvUser.AllowUserToDeleteRows = false;
dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249)))));
this.dgvUser.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle4;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249)))));
this.dgvUser.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvUser.AutoRowNumber = true;
this.dgvUser.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dgvUser.BackgroundColor = System.Drawing.Color.White;
this.dgvUser.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle5.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvUser.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle5;
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.dgvUser.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvUser.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvUser.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.UserIdColumn,
@@ -535,17 +556,18 @@ namespace TemuKJD.WXForms.AdminForms
this.colSaLevel,
this.colSaLevelName,
this.colAuthority,
this.colPoints,
this.colAddShop,
this.editColumn,
this.deleteColumn});
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvUser.DefaultCellStyle = dataGridViewCellStyle6;
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvUser.DefaultCellStyle = dataGridViewCellStyle3;
this.dgvUser.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvUser.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229)))));
this.dgvUser.Location = new System.Drawing.Point(0, 0);
@@ -553,7 +575,7 @@ namespace TemuKJD.WXForms.AdminForms
this.dgvUser.Name = "dgvUser";
this.dgvUser.ReadOnly = true;
this.dgvUser.RowTemplate.Height = 23;
this.dgvUser.Size = new System.Drawing.Size(1013, 486);
this.dgvUser.Size = new System.Drawing.Size(1013, 522);
this.dgvUser.TabIndex = 1;
this.dgvUser.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvUser_CellContentClick);
//
@@ -627,6 +649,15 @@ namespace TemuKJD.WXForms.AdminForms
this.colAuthority.Name = "colAuthority";
this.colAuthority.ReadOnly = true;
//
// colPoints
//
this.colPoints.FillWeight = 60F;
this.colPoints.HeaderText = "积分点数";
this.colPoints.Name = "colPoints";
this.colPoints.ReadOnly = true;
this.colPoints.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colPoints.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// colAddShop
//
this.colAddShop.FillWeight = 60F;
@@ -677,24 +708,15 @@ namespace TemuKJD.WXForms.AdminForms
this.btnExportShopErp.Visible = false;
this.btnExportShopErp.Click += new System.EventHandler(this.btnExportShopErp_Click);
//
// chkWXShowProdGetFromType
//
this.chkWXShowProdGetFromType.Location = new System.Drawing.Point(192, 395);
this.chkWXShowProdGetFromType.Name = "chkWXShowProdGetFromType";
this.chkWXShowProdGetFromType.Size = new System.Drawing.Size(68, 21);
this.chkWXShowProdGetFromType.TabIndex = 810;
this.chkWXShowProdGetFromType.Text = "货源选择";
this.chkWXShowProdGetFromType.UseVisualStyleBackColor = true;
//
// WXAdminAccountForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1376, 527);
this.ClientSize = new System.Drawing.Size(1376, 563);
this.Controls.Add(this.splitContainer5);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.KeyPreview = true;
this.Name = "WXAdminAccountForm";
this.Text = "AccountForm";
this.Text = "微信小店用户管理";
this.Load += new System.EventHandler(this.MainAccountForm_Load);
this.VisibleChanged += new System.EventHandler(this.MainAccountForm_VisibleChanged);
this.splitContainer5.Panel1.ResumeLayout(false);
@@ -749,6 +771,7 @@ namespace TemuKJD.WXForms.AdminForms
private System.Windows.Forms.Label label7;
private UserComponent.UcCheckBox chkWXComplateProd;
private DevComponents.DotNetBar.PanelEx btnExportShopErp;
private UserComponent.UcCheckBox chkWXShowProdGetFromType;
private System.Windows.Forms.DataGridViewTextBoxColumn UserIdColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn UserNickNameColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn mobileColumn;
@@ -760,9 +783,10 @@ namespace TemuKJD.WXForms.AdminForms
private System.Windows.Forms.DataGridViewTextBoxColumn colSaLevel;
private System.Windows.Forms.DataGridViewTextBoxColumn colSaLevelName;
private System.Windows.Forms.DataGridViewTextBoxColumn colAuthority;
private System.Windows.Forms.DataGridViewLinkColumn colPoints;
private System.Windows.Forms.DataGridViewLinkColumn colAddShop;
private System.Windows.Forms.DataGridViewLinkColumn editColumn;
private System.Windows.Forms.DataGridViewLinkColumn deleteColumn;
private UserComponent.UcCheckBox chkWXShowProdGetFromType;
private UserComponent.UcCheckBox chkShopPoints;
}
}
@@ -81,6 +81,8 @@ namespace TemuKJD.WXForms.AdminForms
authority += "微信回采,";
if (chkWXShowProdGetFromType.Checked)
authority += "货源选择,";
if (chkShopPoints.Checked)
authority += "积分用户,";
data.Append("&authority=" + authority.Trim(','));
string url = BaseClass.BuildObjString("user/add_user");
@@ -162,6 +164,7 @@ namespace TemuKJD.WXForms.AdminForms
user.sa_level,
user.sa_level_name,
user.authority,
user.group_id == "3" ? user.points.ToString() : "",
user.group_id == "3" ? "添加店铺" : "",
"编辑",
"删除");
@@ -188,6 +191,7 @@ namespace TemuKJD.WXForms.AdminForms
cmbSaLevel.Text = "普通用户";
chkWXComplateProd.Checked = false;
chkWXShowProdGetFromType.Checked = false;
chkShopPoints.Checked = false;
}
private void btnRefresh_Click(object sender, EventArgs e)
@@ -220,7 +224,7 @@ namespace TemuKJD.WXForms.AdminForms
btnCancel.Visible = true;
cmbSaLevel.Text = saLevelName;
chkWXComplateProd.Checked = authority.Contains(chkWXComplateProd.Text);
chkWXShowProdGetFromType.Checked = authority.Contains(chkWXShowProdGetFromType.Text);
chkShopPoints.Checked = authority.Contains(chkShopPoints.Text);
}
if (columname == "删除")
{
@@ -150,6 +150,9 @@
<metadata name="colAuthority.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colPoints.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colAddShop.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
+2 -2
View File
@@ -986,8 +986,8 @@ namespace TemuKJD.WXForms.AdminForms
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.KeyPreview = true;
this.Name = "WXAdminShopListForm";
this.Text = "AdminShopForm";
this.TitleText = "AdminShopForm";
this.Text = "微信小店店铺列表";
this.TitleText = "微信小店店铺列表";
this.Load += new System.EventHandler(this.AdminShopForm_Load);
this.VisibleChanged += new System.EventHandler(this.AdminShopForm_VisibleChanged);
this.Controls.SetChildIndex(this.panel3, 0);
@@ -726,7 +726,10 @@ namespace TemuKJD.WXForms.AdminForms
}
if (html.Contains("\"code\":200") || html.Contains("已存在"))
{
successCount++;
CheckShopLogin(new ShopLoginInfo[] { shop }, false);
}
else
failCount++;
Thread.Sleep(100);
@@ -569,6 +569,8 @@ namespace TemuKJD.WXForms.ProductForms
{
if (shopEntity == null)
return;
if (shopEntity.is_shop_expire)
return;
if (selectShopId == null)
selectShopId = new List<string>();
@@ -3849,7 +3851,12 @@ namespace TemuKJD.WXForms.ProductForms
{
var error = BaseRegex.GetStringJson(ref uploadDraftRst, "msg");
if (string.IsNullOrEmpty(error))
error = uploadDraftRst;
{
if(uploadDraftRst.Contains("\"errcode\":9401043"))
error = "sku价格异常,请检查加价比例";
else
error = uploadDraftRst;
}
var draftId = BaseRegex.GetStringJson(ref uploadDraftRst, "productId").ParseToLong();
return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"草稿保存失败 " + GetHtml.UrlEncodeUtf8(error) + "\"}";
}
@@ -351,6 +351,8 @@ namespace TemuKJD.WXForms.ProductForms
{
if (shopEntity == null)
return;
if (shopEntity.is_shop_expire)
return;
if (selectShopId == null)
selectShopId = new List<string>();
@@ -295,6 +295,8 @@ namespace TemuKJD.WXForms.ProductForms
{
if (shopEntity == null)
return;
if (shopEntity.is_shop_expire)
return;
if (selectShopId == null)
selectShopId = new List<string>();
@@ -354,6 +354,8 @@ namespace TemuKJD.WXForms.ProductForms
{
if (shopEntity == null)
return;
if (shopEntity.is_shop_expire)
return;
if (selectShopId == null)
selectShopId = new List<string>();
@@ -822,7 +824,7 @@ namespace TemuKJD.WXForms.ProductForms
{
if (shopRow != null)
{
shopRow.Cells["colOpResult"].Value = error;
shopRow.Cells["colMessage"].Value = error;
}
}));
break;
@@ -293,6 +293,8 @@ namespace TemuKJD.WXForms.ProductForms
{
if (shopEntity == null)
return;
if (shopEntity.is_shop_expire)
return;
if (selectShopId == null)
selectShopId = new List<string>();
+9 -5
View File
@@ -31,10 +31,12 @@
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[] {
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("店铺优化");
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("店铺管理", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3});
treeNode3,
treeNode4});
this.panel1 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
@@ -131,10 +133,12 @@
treeNode2.Text = "子账号管理";
treeNode3.Name = "店铺经营统计";
treeNode3.Text = "店铺经营统计";
treeNode4.Name = "店铺管理";
treeNode4.Text = "店铺管理";
treeNode4.Name = "店铺优化";
treeNode4.Text = "店铺优化";
treeNode5.Name = "店铺管理";
treeNode5.Text = "店铺管理";
this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode4});
treeNode5});
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;
+5 -1
View File
@@ -22,6 +22,7 @@ namespace TemuKJD.WXForms.ShopForms
public Lazy<WXShopListForm> shopListForm = new Lazy<WXShopListForm>();
public Lazy<WXSubAccountListForm> sbuAccountForm = new Lazy<WXSubAccountListForm>();
public Lazy<WxShopStatisticsForm> shopStatisticsForm = new Lazy<WxShopStatisticsForm>();
public Lazy<WXShopOptimizeForm> shopOptimizeForm = new Lazy<WXShopOptimizeForm>();
public WXShopForm()
@@ -33,7 +34,7 @@ namespace TemuKJD.WXForms.ShopForms
tv.SelectedNode = tv.Nodes[0].Nodes[0];
tv.ExpandGroup(tv.Nodes[0].Name);
List<string> hideName = new List<string>() { "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计", "店铺经营统计1" };
List<string> hideName = new List<string>() { "店铺优化", "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计", "店铺经营统计1" };
if (BaseClass.GroupId == 3)
{
@@ -72,6 +73,9 @@ namespace TemuKJD.WXForms.ShopForms
case "店铺经营统计":
SetForm(shopStatisticsForm.Value);
break;
case "店铺优化":
SetForm(shopOptimizeForm.Value);
break;
}
}));
}).Start();
+68 -57
View File
@@ -59,11 +59,14 @@
this.pbLoading = new System.Windows.Forms.PictureBox();
this.btnImport = new TemuKJD.UserControls.ButtonEx();
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();
this.colShopAccount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colAddTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colExpireTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colGroupName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colCookie = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -86,8 +89,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();
@@ -130,7 +131,7 @@
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Panel2.Margin = new System.Windows.Forms.Padding(4);
this.splitContainer1.Size = new System.Drawing.Size(1264, 622);
this.splitContainer1.Size = new System.Drawing.Size(1394, 622);
this.splitContainer1.SplitterDistance = 46;
this.splitContainer1.TabIndex = 33;
//
@@ -146,7 +147,7 @@
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(1264, 46);
this.tableLayoutPanel2.Size = new System.Drawing.Size(1394, 46);
this.tableLayoutPanel2.TabIndex = 37;
//
// panel5
@@ -154,7 +155,7 @@
this.panel5.Controls.Add(this.btnCheck);
this.panel5.Controls.Add(this.btnEdit);
this.panel5.Controls.Add(this.btnLoginSelect);
this.panel5.Location = new System.Drawing.Point(1012, 3);
this.panel5.Location = new System.Drawing.Point(1142, 3);
this.panel5.Name = "panel5";
this.panel5.Size = new System.Drawing.Size(249, 40);
this.panel5.TabIndex = 1;
@@ -235,7 +236,7 @@
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(1003, 40);
this.panel4.Size = new System.Drawing.Size(1133, 40);
this.panel4.TabIndex = 0;
//
// tableLayoutPanel1
@@ -277,7 +278,7 @@
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 1;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(637, 40);
this.tableLayoutPanel1.Size = new System.Drawing.Size(767, 40);
this.tableLayoutPanel1.TabIndex = 375;
//
// cmbGroup
@@ -288,10 +289,10 @@
this.cmbGroup.DropDownWidth = 1;
this.cmbGroup.FormattingEnabled = true;
this.cmbGroup.IntegralHeight = false;
this.cmbGroup.Location = new System.Drawing.Point(307, 8);
this.cmbGroup.Location = new System.Drawing.Point(385, 8);
this.cmbGroup.Margin = new System.Windows.Forms.Padding(0, 0, 0, 4);
this.cmbGroup.Name = "cmbGroup";
this.cmbGroup.Size = new System.Drawing.Size(48, 25);
this.cmbGroup.Size = new System.Drawing.Size(74, 25);
this.cmbGroup.TabIndex = 803;
this.cmbGroup.Text = "全部";
//
@@ -314,10 +315,10 @@
this.cmbNotes.DropDownWidth = 1;
this.cmbNotes.FormattingEnabled = true;
this.cmbNotes.IntegralHeight = false;
this.cmbNotes.Location = new System.Drawing.Point(224, 8);
this.cmbNotes.Location = new System.Drawing.Point(276, 8);
this.cmbNotes.Margin = new System.Windows.Forms.Padding(0, 0, 0, 4);
this.cmbNotes.Name = "cmbNotes";
this.cmbNotes.Size = new System.Drawing.Size(48, 25);
this.cmbNotes.Size = new System.Drawing.Size(74, 25);
this.cmbNotes.TabIndex = 413;
this.cmbNotes.Text = "全部";
//
@@ -327,14 +328,14 @@
this.txtShopId.Location = new System.Drawing.Point(46, 8);
this.txtShopId.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.txtShopId.Name = "txtShopId";
this.txtShopId.Size = new System.Drawing.Size(48, 23);
this.txtShopId.Size = new System.Drawing.Size(74, 23);
this.txtShopId.TabIndex = 372;
//
// label3
//
this.label3.Anchor = System.Windows.Forms.AnchorStyles.None;
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(97, 11);
this.label3.Location = new System.Drawing.Point(123, 11);
this.label3.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(44, 17);
@@ -344,17 +345,17 @@
// txtShopName
//
this.txtShopName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.txtShopName.Location = new System.Drawing.Point(141, 8);
this.txtShopName.Location = new System.Drawing.Point(167, 8);
this.txtShopName.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.txtShopName.Name = "txtShopName";
this.txtShopName.Size = new System.Drawing.Size(48, 23);
this.txtShopName.Size = new System.Drawing.Size(74, 23);
this.txtShopName.TabIndex = 374;
//
// label4
//
this.label4.Anchor = System.Windows.Forms.AnchorStyles.None;
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(192, 11);
this.label4.Location = new System.Drawing.Point(244, 11);
this.label4.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(32, 17);
@@ -368,7 +369,7 @@
this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnRefreshShop.DisabledBackColor = System.Drawing.Color.Empty;
this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnRefreshShop.Location = new System.Drawing.Point(452, 8);
this.btnRefreshShop.Location = new System.Drawing.Point(582, 8);
this.btnRefreshShop.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.btnRefreshShop.Name = "btnRefreshShop";
this.btnRefreshShop.Size = new System.Drawing.Size(60, 23);
@@ -393,7 +394,7 @@
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(576, 8);
this.pnlEmpty.Location = new System.Drawing.Point(706, 8);
this.pnlEmpty.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.pnlEmpty.Name = "pnlEmpty";
this.pnlEmpty.Size = new System.Drawing.Size(60, 23);
@@ -420,7 +421,7 @@
this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSearch.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSearch.Location = new System.Drawing.Point(514, 8);
this.btnSearch.Location = new System.Drawing.Point(644, 8);
this.btnSearch.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.btnSearch.Name = "btnSearch";
this.btnSearch.Size = new System.Drawing.Size(60, 23);
@@ -447,10 +448,10 @@
this.cmbSubAccount.DropDownWidth = 1;
this.cmbSubAccount.FormattingEnabled = true;
this.cmbSubAccount.IntegralHeight = false;
this.cmbSubAccount.Location = new System.Drawing.Point(402, 8);
this.cmbSubAccount.Location = new System.Drawing.Point(506, 8);
this.cmbSubAccount.Margin = new System.Windows.Forms.Padding(0, 0, 0, 4);
this.cmbSubAccount.Name = "cmbSubAccount";
this.cmbSubAccount.Size = new System.Drawing.Size(48, 25);
this.cmbSubAccount.Size = new System.Drawing.Size(74, 25);
this.cmbSubAccount.TabIndex = 415;
this.cmbSubAccount.Text = "全部";
//
@@ -458,7 +459,7 @@
//
this.label5.Anchor = System.Windows.Forms.AnchorStyles.None;
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(358, 11);
this.label5.Location = new System.Drawing.Point(462, 11);
this.label5.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(44, 17);
@@ -469,7 +470,7 @@
//
this.label6.Anchor = System.Windows.Forms.AnchorStyles.None;
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(275, 11);
this.label6.Location = new System.Drawing.Point(353, 11);
this.label6.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(32, 17);
@@ -484,7 +485,7 @@
this.btnOpenOrder.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOpenOrder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOpenOrder.ForeColor = System.Drawing.Color.White;
this.btnOpenOrder.Location = new System.Drawing.Point(882, 9);
this.btnOpenOrder.Location = new System.Drawing.Point(1012, 9);
this.btnOpenOrder.Margin = new System.Windows.Forms.Padding(2);
this.btnOpenOrder.Name = "btnOpenOrder";
this.btnOpenOrder.Size = new System.Drawing.Size(119, 25);
@@ -531,7 +532,7 @@
//
this.splitContainer2.Panel2.Controls.Add(this.chkAutoDrag);
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(1264, 572);
this.splitContainer2.Size = new System.Drawing.Size(1394, 572);
this.splitContainer2.SplitterDistance = 540;
this.splitContainer2.TabIndex = 0;
//
@@ -556,7 +557,7 @@
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
this.pbLoading.Location = new System.Drawing.Point(607, 245);
this.pbLoading.Location = new System.Drawing.Point(672, 245);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -605,6 +606,7 @@
this.colShopId,
this.colShopAccount,
this.colAddTime,
this.colExpireTime,
this.colNotes,
this.colGroupName,
this.colCookie,
@@ -633,10 +635,35 @@
this.dgvShop.Name = "dgvShop";
this.dgvShop.ReadOnly = true;
this.dgvShop.RowTemplate.Height = 23;
this.dgvShop.Size = new System.Drawing.Size(1256, 540);
this.dgvShop.Size = new System.Drawing.Size(1386, 540);
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(1238, 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(1394, 29);
this.statusBar.TabIndex = 1;
//
// colSelect
//
this.colSelect.FillWeight = 26F;
@@ -675,6 +702,14 @@
this.colAddTime.Name = "colAddTime";
this.colAddTime.ReadOnly = true;
//
// colExpireTime
//
this.colExpireTime.FillWeight = 70F;
this.colExpireTime.HeaderText = "到期时间";
this.colExpireTime.Name = "colExpireTime";
this.colExpireTime.ReadOnly = true;
this.colExpireTime.Visible = false;
//
// colNotes
//
this.colNotes.FillWeight = 90F;
@@ -743,7 +778,7 @@
//
// colGotoShop
//
this.colGotoShop.FillWeight = 46F;
this.colGotoShop.FillWeight = 50F;
this.colGotoShop.HeaderText = "进入店铺";
this.colGotoShop.Name = "colGotoShop";
this.colGotoShop.ReadOnly = true;
@@ -762,7 +797,7 @@
//
// colRelogin
//
this.colRelogin.FillWeight = 46F;
this.colRelogin.FillWeight = 40F;
this.colRelogin.HeaderText = "登录";
this.colRelogin.Name = "colRelogin";
this.colRelogin.ReadOnly = true;
@@ -845,7 +880,7 @@
//
// colEdit
//
this.colEdit.FillWeight = 46F;
this.colEdit.FillWeight = 40F;
this.colEdit.HeaderText = "编辑";
this.colEdit.Name = "colEdit";
this.colEdit.ReadOnly = true;
@@ -854,41 +889,16 @@
//
// colDelete
//
this.colDelete.FillWeight = 46F;
this.colDelete.FillWeight = 40F;
this.colDelete.HeaderText = "删除";
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;
//
// WXShopListForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(1264, 622);
this.ClientSize = new System.Drawing.Size(1394, 622);
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.label1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@@ -957,6 +967,7 @@
private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopAccount;
private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime;
private System.Windows.Forms.DataGridViewTextBoxColumn colExpireTime;
private System.Windows.Forms.DataGridViewTextBoxColumn colNotes;
private System.Windows.Forms.DataGridViewTextBoxColumn colGroupName;
private System.Windows.Forms.DataGridViewTextBoxColumn colCookie;
@@ -7,6 +7,7 @@ using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
@@ -541,6 +542,7 @@ namespace TemuKJD.WXForms.ShopForms
param.ShopId,
param.ShopAccount,
param.AddTime.ToString("yy-MM-dd HH:mm"),
param.is_shop_expire ? "已过期" : BaseClass.StampToDateTime(param.expire_time.ParseToInt()).ToString("yy-MM-dd HH:mm"),
param.Notes,
param.GroupName,
param.Cookies,
@@ -568,6 +570,8 @@ namespace TemuKJD.WXForms.ShopForms
// help to scroll to latest checked
dgvShop.CurrentCell = this.dgvShop.Rows[rowIndex].Cells[2];
}
dgvr = this.dgvShop.Rows[rowIndex];
dgvr.Cells["colExpireTime"].Style.ForeColor = dgvr.Cells["colExpireTime"].Value.ParseToString() == "已过期" ? Color.Red : Color.Blue;
}
}));
}
@@ -593,6 +597,7 @@ namespace TemuKJD.WXForms.ShopForms
dgvr.Cells["colBuyAccount"].Value = param.BuyAccount;
dgvr.Cells["colChatAccount"].Value = param.ChatAccount;
dgvr.Cells["colRelogin"].Value = string.IsNullOrWhiteSpace(param.LoginStatus) ? "未登录" : param.LoginStatus.Trim();
dgvr.Cells["colExpireTime"].Value = param.is_shop_expire ? "已过期" : BaseClass.StampToDateTime(param.expire_time.ParseToInt()).ToString("yy-MM-dd HH:mm");
}
/// <summary>
@@ -728,6 +733,8 @@ namespace TemuKJD.WXForms.ShopForms
this.btnAddShop.Visible = false;
//this.btnEdit.Visible = false;
}
if (BaseClass.UserAuthority.Contains("积分用户"))
this.dgvShop.Columns["colExpireTime"].Visible = true;
this.dgvShop.AddSelectorColumn("colSelect");
this.chkAutoDrag.Checked = GlobalConfig.TemuShopSettingParam.IsAutoDragLogin;
@@ -132,6 +132,9 @@
<metadata name="colAddTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colExpireTime.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>
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,628 @@
using AllBase;
using AllBase.Helper;
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.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.Extension;
using TemuKJD.BaseForms;
using TemuKJD.ToolForms;
using Work;
using TemuKJD.BLL;
using System.Text.RegularExpressions;
using TemuKJD.PDDForms.ProductSelectForms;
using TemuKJD.WXForms.ShopForms;
using AllBase.Model.Result.PDDResult;
using AllBase.Model.Param.WXParam;
using AllBase.Model.Result.WXResult;
using Newtonsoft.Json;
using NaiBa.Util;
using AllBase.Model.Config;
using TemuKJD.WXForms.ProductForms;
namespace TemuKJD.WXForms.ShopForms
{
public partial class WXShopOptimizeForm : BaseForm
{
public CancellationTokenSource cancellationTokenSource { get; set; } = null;
public bool IsLoadComplate { get; set; } = false;
bool isInit = false;
CheckBox chkSelectAll = null;
public Dictionary<string, bool> dicCheckedShopId = new Dictionary<string, bool>();
public string pdd_product_cates = "";
ConcurrentList<WxOptimizeOrderAfterSaleInfo> lstWxOptimizeOrderAfterSaleInfo = new ConcurrentList<WxOptimizeOrderAfterSaleInfo>();
ConcurrentList<WxOptimizeProductEvaluationInfo> lstWxOptimizeProductEvaluationInfo = new ConcurrentList<WxOptimizeProductEvaluationInfo>();
public WXShopOptimizeForm()
{
InitializeComponent();
}
private void UserSelectDbProductForm_Load(object sender, EventArgs e)
{
dicCheckedShopId = NaiBa.Util.Helper.ConfigHelper.LoadConfig<Dictionary<string, bool>>("wx_checked_shop_dic");
if (dicCheckedShopId == null)
dicCheckedShopId = new Dictionary<string, bool>();
chkSelectAll = dgvShop.Columns["colSelect"].AddHeaderCheckBox(HorizontalAlignment.Center, 0, 0, null, null, false);
dgvShop.Columns["colSelect"].HeaderText = "";
chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged;
dgvData1.AddSelectorColumn("colDgv1Check");
dgvData1.AddImgColumn("colDgv1Img", "colDgv1ImgUrl");
IsLoadComplate = true;
}
private void chkSelectAll_CheckedChanged(object sender, EventArgs e)
{
if (!chkSelectAll.Checked)
{
foreach (DataGridViewRow row in dgvShop.Rows)
{
row.Cells["colSelect"].Value = false;
}
}
else
{
foreach (DataGridViewRow row in dgvShop.Rows)
{
if(row.Visible == true)
row.Cells["colSelect"].Value = true;
}
}
foreach (var r in dgvShop.Rows.Cast<DataGridViewRow>())
{
dicCheckedShopId[r.Cells["colShopId"].Value.ParseToString()] = r.Cells["colSelect"].Value.ParseToBool();
}
NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId);
}
private void btnRefreshShop_Click(object sender, EventArgs e)
{
pbLoadingShop.Visible = true;
RefreshShopLogin();
}
private void UserSelectDbProductForm_VisibleChanged(object sender, EventArgs e)
{
if (Visible == true)
{
RefreshShopLogin();
if (!isInit)
{
Task.Run(() =>
{
foreach (var shop in GlobalConfig.ShopLoginList)
{
}
});
}
isInit = true;
}
}
private void RefreshShopLogin()
{
// 店铺Id
var selectIds = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
=> row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList();
// 获取被删除的店铺
List<DataGridViewRow> dgvRowList = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
=> !GlobalConfig.ShopLoginList.Any(s => s.ShopId == row.Cells["colShopId"]?.Value?.ToString())).ToList();
// 更新被删除的店铺列表
foreach (var row in dgvRowList)
{
dgvShop.Rows.Remove(row);
}
// 绑定其他店铺(含新导入的店铺)
foreach (ShopLoginInfo shopEntity in GlobalConfig.ShopLoginList)
{
if (!string.IsNullOrEmpty(shopEntity.ShopId))
BindShop(shopEntity, selectIds);
}
cmbFilterShopNotes.Items.Clear();
//cmbFilterShopNotes.Items.Add("");
foreach (var note in GlobalConfig.ShopLoginList.Select(s => s.Notes).Where(s => !s.IsNullOrEmpty()).Distinct())
{
cmbFilterShopNotes.Items.Add(note);
}
}
private void BindShop(ShopLoginInfo shopEntity, List<string> selectShopId = null, string msg = "")
{
if (shopEntity == null)
return;
if (shopEntity.is_shop_expire)
return;
if (selectShopId == null)
selectShopId = new List<string>();
bool canUse = shopEntity.LoginStatus == "登录成功";
//canUse = true; // 内部库不需要校验登录状态
var row = dgvShop.Rows.Cast<DataGridViewRow>().FirstOrDefault(p => p.Cells.GetCellValueFromColumnName("colShopId").ParseToString() == shopEntity.ShopId);
var day = DateTime.Now.ToString("yyyyMMdd").ParseToInt();
if (row == null)
{
this.dgvShop.Rows.Add(
//!isInit || (selectShopId.Contains(shopEntity.ShopId) && canUse),
dicCheckedShopId.Keys.Contains(shopEntity.ShopId) && dicCheckedShopId[shopEntity.ShopId] == true,
shopEntity.LoginName,
shopEntity.ShopId,
shopEntity.ShopAccount,
shopEntity.Notes,
"选择商品",
canUse ? "在线" : "掉线",
"", //lstShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shopEntity.ShopId)?.ExpiresTime > DateTime.Now.AddMinutes(5) ? "可用" : "过期",
canUse,
shopEntity.AddProductRemaining,
"",
msg
);
}
else
{
row.Cells["colSelect"].Value = !isInit || (selectShopId.Contains(shopEntity.ShopId) && canUse);
row.Cells["colShopLoginName"].Value = shopEntity.LoginName;
row.Cells["colShopName"].Value = shopEntity.ShopAccount;
row.Cells["colShopNotes"].Value = shopEntity.Notes;
row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线";
row.Cells["colLoginStatus"].Style.ForeColor = canUse ? Color.Green : Color.Red;
row.Cells["colCanUse"].Value = canUse;
row.Cells["colApi"].Value = ""; //lstShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shopEntity.ShopId)?.ExpiresTime > DateTime.Now.AddMinutes(5) ? "可用" : "过期";
row.Cells["colRemaining"].Value = shopEntity.AddProductRemaining;
row.Cells["colMessage"].Value = msg;
}
displayAuthStatus(shopEntity);
}
void displayAuthStatus(ShopLoginInfo shop)
{
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colShopId"].Value.ParseToString() == shop?.ShopId);
foreach (var row in rows)
{
bool canUse = row.Cells["colLoginStatus"].Value.ParseToString() == "在线";
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Blue : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Blue : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightBlue : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkBlue : Color.DarkRed;
canUse = row.Cells["colApi"].Value.ParseToString() == "可用";
(row.Cells["colApi"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Blue : Color.Red;
(row.Cells["colApi"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Blue : Color.Red;
(row.Cells["colApi"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightBlue : Color.OrangeRed;
(row.Cells["colApi"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkBlue : Color.DarkRed;
}
}
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText;
string columnName = dgvShop.Columns[e.ColumnIndex].Name;
string shopId = dgvShop.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString();
string shopAccount = dgvShop.Rows[e.RowIndex].Cells["colShopName"].Value.ToString();
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId.ToString());
var row = dgvShop.Rows[e.RowIndex];
switch (columnName)
{
case "colSelect":
//if (row.Cells["colCanUse"].Value.ParseToBool())
{
row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool();
chkSelectAll.CheckedChanged -= chkSelectAll_CheckedChanged;
if (dgvShop.Rows.Cast<DataGridViewRow>().All(r => r.Cells["colSelect"].Value.ParseToBool()))
chkSelectAll.Checked = true;
else
chkSelectAll.Checked = false;
chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged;
}
//else
{
//BaseMsgForm.ShowInfo("店铺未登录!");
}
dicCheckedShopId[row.Cells["colShopId"].Value.ParseToString()] = row.Cells["colSelect"].Value.ParseToBool();
NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId);
break;
case "colLoginStatus":
{
if (WXShopListForm.Instance == null)
WXShopListForm.Instance = new WXShopListForm();
WXShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false);
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
//shopLoginForm.prodUserSelectForm = this;
if (shop.LoginStatus != "登录成功")
{
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShopLogin();
}
else
{
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.WindowState = FormWindowState.Maximized;
shopLoginForm.Show();
}
}
break;
case "colApi":
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.WindowState = FormWindowState.Maximized;
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/servicemarket/detail?serviceId=3984039898079707139";
shopLoginForm.Show();
}
break;
}
}
private void dgvSelectProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvData3.Columns[e.ColumnIndex].HeaderText;
var dbId = dgvData3.Rows[e.RowIndex].Cells["colSelectId"].Value.ParseToString();
var shopId = dgvData3.Rows[e.RowIndex].Cells["colSupplierId"].Value.ParseToString();
var draftId = dgvData3.Rows[e.RowIndex].Cells["colDraftId"].Value.ParseToString();
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
switch (headerText)
{
case "删除":
break;
case "登录":
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
//shopLoginForm.prodUserSelectForm = this;
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShopLogin();
}
break;
case "进店":
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
if (shop.LoginStatus == "登录成功")
{
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.WindowState = FormWindowState.Maximized;
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/home";
shopLoginForm.Show();
}
else
{
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShopLogin();
}
}
break;
case "图片":
{
ShowImgForm imgFrom = new ShowImgForm(dgvData3.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString());
imgFrom.ShowDialog();
break;
}
case "SKU替换图":
{
ShowImgForm imgFrom = new ShowImgForm(dgvData3.Rows[e.RowIndex].Cells["colSkuFakeImgUrl"].Value.ParseToString());
imgFrom.ShowDialog();
break;
}
case "":
dgvData3.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvData3.Rows[e.RowIndex].Cells["colCheck"].Value;
break;
default:
break;
}
}
private void btnStop_Click(object sender, EventArgs e)
{
if (this.cancellationTokenSource != null)
this.cancellationTokenSource.Cancel();
}
private void btnFilterShop_Click(object sender, EventArgs e)
{
foreach(DataGridViewRow row in dgvShop.Rows)
{
string notes = cmbFilterShopNotes.Text.Trim().Trim(';');
if (notes == "全部")
notes = "";
List<string> notesLst = notes.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
if (!row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim()))
{
row.Visible = false;
row.Cells["colSelect"].Value = false;
continue;
}
if (!string.IsNullOrWhiteSpace(notes) && !notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString()))
{
row.Visible = false;
row.Cells["colSelect"].Value = false;
continue;
}
row.Visible = true;
}
}
private void btnEmptyShop_Click(object sender, EventArgs e)
{
txtFilterShopName.Text = "";
cmbFilterShopNotes.Text = "全部";
btnFilterShop_Click(null, null);
}
private void btnReverse_Click(object sender, EventArgs e)
{
foreach(DataGridViewRow row in dgvShop.Rows)
{
if (row.Visible == true)
row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool();
}
}
private void btnAddSelect_Click(object sender, EventArgs e)
{
string notes = cmbFilterShopNotes.Text.Trim().Trim(';');
if (notes == "全部")
notes = "";
List<string> notesLst = notes.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (row.Visible == true)
{
if (row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim()) &&
(string.IsNullOrWhiteSpace(notes) || notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString())))
{
row.Cells["colSelect"].Value = true;
}
}
}
}
private void btnAddUnSelect_Click(object sender, EventArgs e)
{
string notes = cmbFilterShopNotes.Text.Trim().Trim(';');
if (notes == "全部")
notes = "";
List<string> notesLst = notes.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (row.Visible == true)
{
if (row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim()) &&
(string.IsNullOrWhiteSpace(notes) || notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString())))
{
row.Cells["colSelect"].Value = false;
}
}
}
}
private void btnSelectOnline_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (row.Visible == true)
{
if (row.Cells["colLoginStatus"].Value.ParseToString() == "在线")
{
row.Cells["colSelect"].Value = true;
}
else
{
row.Cells["colSelect"].Value = false;
}
}
}
}
private void btnSelectOffline_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (row.Visible == true)
{
if (row.Cells["colLoginStatus"].Value.ParseToString() != "在线")
{
row.Cells["colSelect"].Value = true;
}
else
{
row.Cells["colSelect"].Value = false;
}
}
}
}
private void btnSearch_Click(object sender, EventArgs e)
{
var lstShopId = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
=> row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList();
if (lstShopId.Count == 0)
{
BaseMsgForm.ShowInfo("请选择店铺!");
return;
}
btnSearch.Enabled = false;
pictureBox1.Visible = true;
cancellationTokenSource = new CancellationTokenSource();
dgvData1.Rows.Clear();
lstWxOptimizeOrderAfterSaleInfo.Clear();
Task.Run(() =>
{
List<ShopLoginInfo> shopLst = GlobalConfig.ShopLoginList.Where(s => lstShopId.Contains(s.ShopId)).ToList();
foreach (var shop in shopLst)
{
SearchData1(shop);
}
Invoke(new Action(() =>
{
if (cancellationTokenSource.IsCancellationRequested)
{
this.statusBar.lblTaskStatus.Text = "品质退款查询完毕 " + this.statusBar.lblTaskStatus.Text;
BaseMsgForm.ShowInfo("品质退款查询完毕");
}
else
{
this.statusBar.lblTaskStatus.Text = "品质退款查询完毕";
BaseMsgForm.ShowInfo("品质退款查询完毕");
}
pictureBox1.Visible = false;
btnSearch.Enabled = true;
}));
}, cancellationTokenSource.Token).ContinueWith(delegate
{
}, cancellationTokenSource.Token);
}
public void SearchData1(ShopLoginInfo shop)
{
if (shop.LoginStatus != "登录成功")
{
return;
}
int page = 0;
int totalPage = 1;
int pageSize = 50;
int startTime = BaseClass.DateTimeToTimestampSeconds(DateTime.Now.Date.AddDays(-30));
int endTime = BaseClass.DateTimeToTimestampSeconds(DateTime.Now.Date) - 1;
while (page < totalPage)
{
page++;
if (cancellationTokenSource.IsCancellationRequested)
break;
var getData1 = ShopOptimize.GetProductRefundOrder(shop, page, startTime, endTime);
Thread.Sleep(Randomx.GetId(300, 600));
if (!getData1.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJson(ref getData1, "msg");
if (string.IsNullOrEmpty(error))
error = getData1;
WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
if (shop.LoginStatus != "登录成功")
{
var shopIdLst = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
=> row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList();
Invoke(new Action(() => { BindShop(shop, shopIdLst, "店铺掉线"); }));
}
else
{
Invoke(new Action(() =>
{
var shopRow = dgvShop.Rows.Cast<DataGridViewRow>().FirstOrDefault(r => r.Cells["colShopId"].Value.ParseToString() == shop.ShopId);
if (shopRow != null)
shopRow.Cells["colMessage"].Value = error;
}));
}
break;
}
try
{
var prodObjs = JsonHelper.JObjectParse(getData1);
if (page == 1)
{
var totalNum = prodObjs["total"].ParseToInt();
totalPage = Math.Ceiling(1m * totalNum / pageSize).ParseToInt();
}
Invoke(new Action(() =>
{
this.pbLoading.Visible = true;
this.statusBar.lblTaskStatus.Text = "正在查询品质退款,店铺:" + shop.ShopAccount + " " + page + "/" + totalPage;
}));
foreach (JObject refundOrderObj in prodObjs["data"])
{
var oStr = JsonHelper.SerializeObject(refundOrderObj);
var refundOrder = JsonHelper.DeserializeJsonToObject<WxOptimizeOrderAfterSaleInfo>(oStr);
if (lstWxOptimizeOrderAfterSaleInfo.Any(o => o.orderInfo.orderId == refundOrder.orderInfo.orderId))
continue;
refundOrder.shopId = shop.ShopId;
refundOrder.shopName = shop.ShopAccount;
lstWxOptimizeOrderAfterSaleInfo.Add(refundOrder);
Invoke(new Action(() =>
{
var rowIndex = this.dgvData1.Rows.Add(
false,
shop.ShopId,
shop.ShopAccount,
"登录",
"进店",
refundOrder.orderInfo.imgUrl,
DataGridViewExtension.defaultBitmap,
refundOrder.orderInfo.spuId,
refundOrder.orderInfo.name,
refundOrder.orderInfo.skuName,
refundOrder.orderInfo.skuCode,
refundOrder.orderInfo.orderId,
BaseClass.StampToDateTime(refundOrder.orderInfo.createTime.ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"),
refundOrder.reason);
dgvData1.Rows[rowIndex].Height = 60;
}));
}
}
catch (Exception ex)
{
Invoke(new Action(() =>
{
var shopRow = dgvShop.Rows.Cast<DataGridViewRow>().FirstOrDefault(r => r.Cells["colShopId"].Value.ParseToString() == shop.ShopId);
if (shopRow != null)
shopRow.Cells["colMessage"].Value = ex.Message;
}));
}
}
}
private void dgvData1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
}
public static class ShopOptimize
{
public static string GetProductRefundOrder(ShopLoginInfo shop, int pageId, int beginTick, int endTick)
{
string url = "https://store.weixin.qq.com/shop-faas/statistic/dsr/product/refund/order?token=&lang=zh_CN";
string referer = "https://store.weixin.qq.com/shop/setting/ratedetail?type=product&key=productQualityRatio_30d&detail=product";
string body = @"{""page"":" + pageId + @",""pageSize"":20,""beginTs"":" + beginTick + @",""endTs"":" + endTick + @"}";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, referer);
return result;
}
}
}
@@ -0,0 +1,267 @@
<?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="colApi.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="colUploadCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colOnSaleNum.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="colDgv1Check.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1ShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1ShopName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1ShopLogin.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1InShop.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1ImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1Img.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1SpuId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1ProductName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1Spec.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1OutSn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1OrderSn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1OrderTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1AfterSaleReason.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="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="colDraftId.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="colPrice.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSoldNum.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="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="colCouponNum.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>
+90 -90
View File
@@ -44,6 +44,7 @@ namespace TemuKJD.WXForms.TalkForms
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BuyerOrderListForm));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.chkAutoAfterSale = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.btnStopStop = new DevComponents.DotNetBar.PanelEx();
this.chkPause = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.btnCheck = new DevComponents.DotNetBar.PanelEx();
@@ -66,14 +67,6 @@ namespace TemuKJD.WXForms.TalkForms
this.col_notes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colEdit = new System.Windows.Forms.DataGridViewLinkColumn();
this.dgvBuyer = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colBuyerId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dgvBuyerName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colBuyerNick = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colVisit = new System.Windows.Forms.DataGridViewLinkColumn();
this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn();
this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
this.panelEx3 = new DevComponents.DotNetBar.PanelEx();
@@ -115,7 +108,14 @@ namespace TemuKJD.WXForms.TalkForms
this.chkOnlyShowCurrentShop = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.lblCurrentShop = new System.Windows.Forms.Label();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.chkAutoAfterSale = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colBuyerId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colBuyerName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colBuyerNick = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colVisit = new System.Windows.Forms.DataGridViewLinkColumn();
this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn();
this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -166,6 +166,16 @@ namespace TemuKJD.WXForms.TalkForms
this.splitContainer1.SplitterDistance = 90;
this.splitContainer1.TabIndex = 1;
//
// chkAutoAfterSale
//
this.chkAutoAfterSale.Location = new System.Drawing.Point(242, 64);
this.chkAutoAfterSale.Name = "chkAutoAfterSale";
this.chkAutoAfterSale.Size = new System.Drawing.Size(113, 21);
this.chkAutoAfterSale.TabIndex = 953;
this.chkAutoAfterSale.Text = "未发货单自动售后";
this.chkAutoAfterSale.UseVisualStyleBackColor = true;
this.chkAutoAfterSale.CheckedChanged += new System.EventHandler(this.chkAutoAfterSale_CheckedChanged);
//
// btnStopStop
//
this.btnStopStop.CanvasColor = System.Drawing.SystemColors.Control;
@@ -490,7 +500,7 @@ namespace TemuKJD.WXForms.TalkForms
this.dgvBuyer.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colBuyerId,
this.dgvBuyerName,
this.colBuyerName,
this.colBuyerNick,
this.colShopNotes,
this.colVisit,
@@ -507,70 +517,6 @@ namespace TemuKJD.WXForms.TalkForms
this.dgvBuyer.TabIndex = 7;
this.dgvBuyer.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
//
// colSelect
//
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;
this.colSelect.Width = 28;
//
// colBuyerId
//
this.colBuyerId.HeaderText = "买手Id";
this.colBuyerId.Name = "colBuyerId";
this.colBuyerId.ReadOnly = true;
this.colBuyerId.Visible = false;
this.colBuyerId.Width = 55;
//
// dgvBuyerName
//
this.dgvBuyerName.FillWeight = 150F;
this.dgvBuyerName.HeaderText = "买手名称";
this.dgvBuyerName.Name = "dgvBuyerName";
this.dgvBuyerName.ReadOnly = true;
this.dgvBuyerName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.dgvBuyerName.Visible = false;
this.dgvBuyerName.Width = 80;
//
// colBuyerNick
//
this.colBuyerNick.HeaderText = "买手昵称";
this.colBuyerNick.Name = "colBuyerNick";
this.colBuyerNick.ReadOnly = true;
this.colBuyerNick.Width = 80;
//
// colShopNotes
//
this.colShopNotes.HeaderText = "备注";
this.colShopNotes.Name = "colShopNotes";
this.colShopNotes.ReadOnly = true;
this.colShopNotes.Width = 80;
//
// colVisit
//
this.colVisit.HeaderText = "访问";
this.colVisit.Name = "colVisit";
this.colVisit.ReadOnly = true;
this.colVisit.Visible = false;
this.colVisit.Width = 38;
//
// colLoginStatus
//
this.colLoginStatus.HeaderText = "状态";
this.colLoginStatus.Name = "colLoginStatus";
this.colLoginStatus.ReadOnly = true;
this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colLoginStatus.Width = 38;
//
// colMessage
//
this.colMessage.HeaderText = "消息";
this.colMessage.Name = "colMessage";
this.colMessage.ReadOnly = true;
//
// splitContainer2
//
this.splitContainer2.BackColor = System.Drawing.Color.White;
@@ -1156,15 +1102,69 @@ namespace TemuKJD.WXForms.TalkForms
this.statusBar.Size = new System.Drawing.Size(1438, 25);
this.statusBar.TabIndex = 5;
//
// chkAutoAfterSale
// colSelect
//
this.chkAutoAfterSale.Location = new System.Drawing.Point(242, 64);
this.chkAutoAfterSale.Name = "chkAutoAfterSale";
this.chkAutoAfterSale.Size = new System.Drawing.Size(113, 21);
this.chkAutoAfterSale.TabIndex = 953;
this.chkAutoAfterSale.Text = "未发货单自动售后";
this.chkAutoAfterSale.UseVisualStyleBackColor = true;
this.chkAutoAfterSale.CheckedChanged += new System.EventHandler(this.chkAutoAfterSale_CheckedChanged);
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;
this.colSelect.Width = 28;
//
// colBuyerId
//
this.colBuyerId.HeaderText = "买手Id";
this.colBuyerId.Name = "colBuyerId";
this.colBuyerId.ReadOnly = true;
this.colBuyerId.Visible = false;
this.colBuyerId.Width = 55;
//
// colBuyerName
//
this.colBuyerName.FillWeight = 150F;
this.colBuyerName.HeaderText = "买手名称";
this.colBuyerName.Name = "colBuyerName";
this.colBuyerName.ReadOnly = true;
this.colBuyerName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colBuyerName.Visible = false;
this.colBuyerName.Width = 80;
//
// colBuyerNick
//
this.colBuyerNick.HeaderText = "买手昵称";
this.colBuyerNick.Name = "colBuyerNick";
this.colBuyerNick.ReadOnly = true;
this.colBuyerNick.Width = 80;
//
// colShopNotes
//
this.colShopNotes.HeaderText = "备注";
this.colShopNotes.Name = "colShopNotes";
this.colShopNotes.ReadOnly = true;
this.colShopNotes.Width = 80;
//
// colVisit
//
this.colVisit.HeaderText = "访问";
this.colVisit.Name = "colVisit";
this.colVisit.ReadOnly = true;
this.colVisit.Visible = false;
this.colVisit.Width = 38;
//
// colLoginStatus
//
this.colLoginStatus.HeaderText = "状态";
this.colLoginStatus.Name = "colLoginStatus";
this.colLoginStatus.ReadOnly = true;
this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colLoginStatus.Width = 38;
//
// colMessage
//
this.colMessage.HeaderText = "消息";
this.colMessage.Name = "colMessage";
this.colMessage.ReadOnly = true;
//
// BuyerOrderListForm
//
@@ -1250,14 +1250,6 @@ namespace TemuKJD.WXForms.TalkForms
private System.Windows.Forms.DataGridViewLinkColumn colEdit;
private DevComponents.DotNetBar.PanelEx btnRefresh;
private DevComponents.DotNetBar.PanelEx btnCheck;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colBuyerId;
private System.Windows.Forms.DataGridViewTextBoxColumn dgvBuyerName;
private System.Windows.Forms.DataGridViewTextBoxColumn colBuyerNick;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes;
private System.Windows.Forms.DataGridViewLinkColumn colVisit;
private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus;
private System.Windows.Forms.DataGridViewTextBoxColumn colMessage;
private UserComponent.DataGridViewEx dgvPddBuyerOrder;
private DevComponents.DotNetBar.PanelEx panelEx3;
private DevComponents.DotNetBar.PanelEx panelEx2;
@@ -1285,5 +1277,13 @@ namespace TemuKJD.WXForms.TalkForms
private System.Windows.Forms.DataGridViewLinkColumn colSend;
private System.Windows.Forms.DataGridViewLinkColumn colAfterSale;
private UserComponent.UcCheckBox chkAutoAfterSale;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colBuyerId;
private System.Windows.Forms.DataGridViewTextBoxColumn colBuyerName;
private System.Windows.Forms.DataGridViewTextBoxColumn colBuyerNick;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes;
private System.Windows.Forms.DataGridViewLinkColumn colVisit;
private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus;
private System.Windows.Forms.DataGridViewTextBoxColumn colMessage;
}
}
@@ -198,12 +198,17 @@ namespace TemuKJD.WXForms.TalkForms
}
else if (order.order_status_prompt.Contains("退款成功") || order.order_status_prompt.Contains("交易已取消"))
{
row.Cells["colOMsg"].Value = "[退]" + row.Cells["colOMsg"].Value.ParseToString();
row.Cells["colOMsg"].Value = "[已退]" + row.Cells["colOMsg"].Value.ParseToString();
row.Cells["colOMsg"].Style.ForeColor = Color.Gray;
}
else if (order.after_sales != null)
{
row.Cells["colOMsg"].Value = "[待退]" + row.Cells["colOMsg"].Value.ParseToString();
row.Cells["colOMsg"].Value = "[退货中]" + row.Cells["colOMsg"].Value.ParseToString();
row.Cells["colOMsg"].Style.ForeColor = Color.DeepSkyBlue;
}
else if (!string.IsNullOrEmpty(order.wxRefundStatus))
{
row.Cells["colOMsg"].Value = "[" + order.wxRefundStatus + "]" + row.Cells["colOMsg"].Value.ParseToString();
row.Cells["colOMsg"].Style.ForeColor = Color.Red;
}
else
@@ -546,8 +551,8 @@ namespace TemuKJD.WXForms.TalkForms
{
row.Cells["colSelect"].Value = selectIds.Contains(buyer.buyer_id);
row.Cells["colBuyerId"].Value = buyer.buyer_id;
row.Cells["dgvBuyerName"].Value = buyer.buyer_name;
row.Cells["dgvBuyerNick"].Value = buyer.buyer_nick;
row.Cells["colBuyerName"].Value = buyer.buyer_name;
row.Cells["colBuyerNick"].Value = buyer.buyer_nick;
row.Cells["colShopNotes"].Value = buyer.notes;
row.Cells["colBuyerId"].Value = buyer.buyer_id;
row.Cells["colLoginStatus"].Value = buyer.status;
@@ -1141,7 +1146,7 @@ namespace TemuKJD.WXForms.TalkForms
if (order == null)
continue;
//order.refundStatus = order.order_status_prompt.Contains("待发货") ? "待退款" : "待退货";
order.wxRefundStatus = order.order_status_prompt.Contains("待发货") ? "待退款" : "待退货";
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
Invoke(new Action(() =>
{