微信app采集
This commit is contained in:
1 parent
52220daa8b
commit
2f61dc1cdd
67 files changed
+6197
-1118
No files matched your search
@@ -0,0 +1,317 @@
|
||||
using AllBase;
|
||||
using AllBase.Model.Result;
|
||||
using TemuKJD.BaseForms;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Work;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using AllBase.Model.Result.WXResult;
|
||||
using System.Threading;
|
||||
|
||||
namespace TemuKJD.ToolForms
|
||||
{
|
||||
public partial class GetAddressForm : BaseForm
|
||||
{
|
||||
public string AddressType { get; set; } = "jst";
|
||||
public CancellationTokenSource cancellationTokenSource { get; set; } = new CancellationTokenSource();
|
||||
public static List<WX1688AddressInfo> lstAddressInfo { get; set; } = new List<WX1688AddressInfo>();
|
||||
public GetAddressForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void SubAccountForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.dgvAddress.BackgroundColor = Color.White;
|
||||
cmbType.Text = AddressType;
|
||||
cmbTypeFilter.Text = AddressType;
|
||||
|
||||
Get1688Address();
|
||||
}
|
||||
|
||||
private void btnAddress_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(cmbType.Text))
|
||||
{
|
||||
BaseMsgForm.ShowError("供应商类型不能为空");
|
||||
return;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(txtCoid.Text))
|
||||
{
|
||||
BaseMsgForm.ShowError("供应商ID不能为空");
|
||||
return;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(txtSupplierName.Text))
|
||||
{
|
||||
BaseMsgForm.ShowError("供应商名称不能为空");
|
||||
return;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(txtUserName.Text))
|
||||
{
|
||||
BaseMsgForm.ShowError("收件人不能为空");
|
||||
return;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(txtProvinceName.Text))
|
||||
{
|
||||
BaseMsgForm.ShowError("省不能为空");
|
||||
return;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(txtCityName.Text))
|
||||
{
|
||||
BaseMsgForm.ShowError("市不能为空");
|
||||
return;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(txtCountyName.Text))
|
||||
{
|
||||
BaseMsgForm.ShowError("区不能为空");
|
||||
return;
|
||||
}
|
||||
if (txtTelNumber.Text.Trim().Length != 11)
|
||||
{
|
||||
BaseMsgForm.ShowError("手机号格式不正确");
|
||||
return;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(txtDetailInfo.Text))
|
||||
{
|
||||
BaseMsgForm.ShowError("详细地址不能为空");
|
||||
return;
|
||||
}
|
||||
|
||||
// 先逻辑删除再添加
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append(UserLogin.GetSignaturex());
|
||||
sb.Append("&coid=" + txtCoid.Text.Trim());
|
||||
string urlDel = BaseClass.BuildObjString("product/wx_del_address");
|
||||
string htmlDel = GetHtml.PostUtf8(urlDel, sb.ToString());
|
||||
if (!htmlDel.Contains("\"code\":200"))
|
||||
{
|
||||
var msg = BaseRegex.GetStringJson(ref htmlDel, "msg");
|
||||
if (string.IsNullOrEmpty(msg))
|
||||
msg = htmlDel;
|
||||
BaseMsgForm.ShowError("出现异常,添加失败" + msg, "错误");
|
||||
return;
|
||||
}
|
||||
|
||||
var jAfterSale = new JObject();
|
||||
jAfterSale["address_id"] = null;
|
||||
jAfterSale["user_name"] = txtUserName.Text.Trim();
|
||||
jAfterSale["tel_number"] = txtTelNumber.Text.Trim();
|
||||
jAfterSale["postal_code"] = txtPostalCode.Text.Trim();
|
||||
jAfterSale["province_name"] = txtProvinceName.Text.Trim();
|
||||
jAfterSale["city_name"] = txtCityName.Text.Trim();
|
||||
jAfterSale["county_name"] = txtCountyName.Text.Trim();
|
||||
jAfterSale["street_name"] = "";
|
||||
jAfterSale["detail_info"] = txtDetailInfo.Text.Trim();
|
||||
jAfterSale["number"] = txtCoid.Text.Trim();
|
||||
jAfterSale["name"] = txtSupplierName.Text.Trim();
|
||||
|
||||
StringBuilder data = new StringBuilder();
|
||||
data.Append(UserLogin.GetSignaturex());
|
||||
data.Append("&coid=" + GetHtml.UrlEncodeUtf8(txtCoid.Text.Trim()));
|
||||
data.Append("&after_sale_json=" + GetHtml.UrlEncodeUtf8(JsonHelper.SerializeObject(jAfterSale)));
|
||||
data.Append("&supplier_name=" + GetHtml.UrlEncodeUtf8(txtSupplierName.Text.Trim()));
|
||||
data.Append("&type=" + cmbType.Text.Trim());
|
||||
string url = BaseClass.BuildObjString("product/wx_add_mdy_after_sale");
|
||||
string html = GetHtml.PostUtf8(url, data.ToString()).Trim();
|
||||
if (!html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data.ToString()).Trim();
|
||||
|
||||
if (html.Contains("\"code\":200"))
|
||||
{
|
||||
btnAddAddress.Text = "添加地址";
|
||||
EmptyInput();
|
||||
btnCancel.Visible = false;
|
||||
Get1688Address();
|
||||
}
|
||||
else
|
||||
{
|
||||
var msg = BaseRegex.GetStringJson(ref html, "msg");
|
||||
if (string.IsNullOrEmpty(msg))
|
||||
msg = html;
|
||||
BaseMsgForm.ShowError("出现异常,添加失败" + msg, "错误");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void EmptyInput()
|
||||
{
|
||||
txtCityName.Clear();
|
||||
txtCoid.Clear();
|
||||
txtCountyName.Clear();
|
||||
txtDetailInfo.Clear();
|
||||
txtPostalCode.Clear();
|
||||
txtProvinceName.Clear();
|
||||
txtStreetName.Clear();
|
||||
txtSupplierName.Clear();
|
||||
txtTelNumber.Clear();
|
||||
txtUserName.Clear();
|
||||
cmbType.Text = AddressType;
|
||||
}
|
||||
|
||||
private void Get1688Address(int page = 1)
|
||||
{
|
||||
dgvAddress.Rows.Clear();
|
||||
lstAddressInfo.Clear();
|
||||
pbLoading.Visible = true;
|
||||
if (cancellationTokenSource != null)
|
||||
cancellationTokenSource.Cancel();
|
||||
cancellationTokenSource = new CancellationTokenSource();
|
||||
Task.Run(() =>
|
||||
{
|
||||
string url = BaseClass.BuildObjString("product/wx_get_after_sale_list");
|
||||
string data = UserLogin.GetSignaturex();
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
if (!string.IsNullOrEmpty(cmbTypeFilter.Text.Trim()))
|
||||
data += "&type=" + cmbTypeFilter.Text.Trim();
|
||||
if (!string.IsNullOrEmpty(txtSearch.Text.Trim()))
|
||||
data += "&detail=" + txtSearch.Text.Trim();
|
||||
data += "&page=" + page;
|
||||
data += "&page_size=" + ucSplitPage1.PageSize;
|
||||
}));
|
||||
string html = GetHtml.PostUtf8(url, data);
|
||||
if (!html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data.ToString()).Trim();
|
||||
if (html.Contains("\"code\":200"))
|
||||
{
|
||||
int count = BaseRegex.GetIntJson(ref html, "count");
|
||||
int pageCount = Math.Ceiling(1.0 * count / ucSplitPage1.PageSize).ParseToInt();
|
||||
pageCount = Math.Max(pageCount, 1);
|
||||
ucSplitPage1.TotalPage = pageCount;
|
||||
|
||||
var userObj = JObject.Parse(html);
|
||||
foreach (JObject addressObj in userObj["data"])
|
||||
{
|
||||
string addressStr = JsonHelper.SerializeObject(addressObj);
|
||||
WX1688AddressInfo addressInfo = JsonHelper.DeserializeJsonToObject<WX1688AddressInfo>(addressStr);
|
||||
lstAddressInfo.Add(addressInfo);
|
||||
string addressDetailStr = addressInfo.after_sale_json;
|
||||
string user_name = BaseRegex.GetStringJson(ref addressDetailStr, "user_name");
|
||||
string tel_number = BaseRegex.GetStringJson(ref addressDetailStr, "tel_number");
|
||||
string postal_code = BaseRegex.GetStringJson(ref addressDetailStr, "postal_code");
|
||||
string province_name = BaseRegex.GetStringJson(ref addressDetailStr, "province_name");
|
||||
string city_name = BaseRegex.GetStringJson(ref addressDetailStr, "city_name");
|
||||
string county_name = BaseRegex.GetStringJson(ref addressDetailStr, "county_name");
|
||||
string street_name = BaseRegex.GetStringJson(ref addressDetailStr, "street_name");
|
||||
string detail_info = BaseRegex.GetStringJson(ref addressDetailStr, "detail_info");
|
||||
string name = BaseRegex.GetStringJson(ref addressDetailStr, "name");
|
||||
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
dgvAddress.Rows.Add(
|
||||
addressInfo.id,
|
||||
addressInfo.coid,
|
||||
addressInfo.supplier_name.IsNullOrEmpty() ? name : addressInfo.supplier_name,
|
||||
user_name,
|
||||
tel_number,
|
||||
postal_code,
|
||||
province_name,
|
||||
city_name,
|
||||
county_name,
|
||||
street_name,
|
||||
detail_info,
|
||||
addressInfo.type,
|
||||
"编辑",
|
||||
"删除",
|
||||
"同步");
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
pbLoading.Visible = false;
|
||||
}));
|
||||
}, cancellationTokenSource.Token);
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
btnAddAddress.Text = "添加地址";
|
||||
EmptyInput();
|
||||
btnCancel.Visible = false;
|
||||
}
|
||||
|
||||
private void dgvUser_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
if (e.ColumnIndex < 0 || e.RowIndex < 0)
|
||||
return;
|
||||
string columname = dgvAddress.Columns[e.ColumnIndex].HeaderText;
|
||||
string coId = dgvAddress.Rows[e.RowIndex].Cells["colCoid"].Value.ToString();
|
||||
var addressInfo = lstAddressInfo.FirstOrDefault(a => a.coid == coId);
|
||||
if (columname == "编辑")
|
||||
{
|
||||
btnAddAddress.Text = "保存地址";
|
||||
btnCancel.Visible = true;
|
||||
btnCancel.Text = "取消編輯";
|
||||
txtCoid.Text = dgvAddress.Rows[e.RowIndex].Cells["colCoid"].Value.ParseToString();
|
||||
txtSupplierName.Text = dgvAddress.Rows[e.RowIndex].Cells["colSupplierName"].Value.ParseToString();
|
||||
txtUserName.Text = dgvAddress.Rows[e.RowIndex].Cells["colUserName"].Value.ParseToString();
|
||||
txtPostalCode.Text = dgvAddress.Rows[e.RowIndex].Cells["colPostalCode"].Value.ParseToString();
|
||||
txtTelNumber.Text = dgvAddress.Rows[e.RowIndex].Cells["colTelNumber"].Value.ToString();
|
||||
txtProvinceName.Text = dgvAddress.Rows[e.RowIndex].Cells["colProvinceName"].Value.ParseToString();
|
||||
txtCityName.Text = dgvAddress.Rows[e.RowIndex].Cells["colCityName"].Value.ParseToString();
|
||||
txtCountyName.Text = dgvAddress.Rows[e.RowIndex].Cells["colCountyName"].Value.ParseToString();
|
||||
txtStreetName.Text = dgvAddress.Rows[e.RowIndex].Cells["colStreetName"].Value.ParseToString();
|
||||
txtDetailInfo.Text = dgvAddress.Rows[e.RowIndex].Cells["colDetailInfo"].Value.ParseToString();
|
||||
cmbType.Text = dgvAddress.Rows[e.RowIndex].Cells["colAddressType"].Value.ParseToString();
|
||||
}
|
||||
if (columname == "删除")
|
||||
{
|
||||
if (BaseMsgForm.ShowConfirm("是否删除,删除后无法再次添加", "提示").DialogResult == DialogResult.OK)
|
||||
{
|
||||
Delete(coId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string Delete(string coid)
|
||||
{
|
||||
StringBuilder data = new StringBuilder();
|
||||
data.Append(UserLogin.GetSignaturex());
|
||||
data.Append("&coid=" + coid);
|
||||
string url = BaseClass.BuildObjString("product/wx_del_address");
|
||||
string html = GetHtml.PostUtf8(url, data.ToString());
|
||||
if (!string.IsNullOrEmpty(html))
|
||||
{
|
||||
if (html.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgForm.ShowInfo("删除成功", "提示");
|
||||
Get1688Address(ucSplitPage1.CurrentPage);
|
||||
return "";
|
||||
}
|
||||
var msg = BaseRegex.GetStringJson(ref html, "msg");
|
||||
if (string.IsNullOrEmpty(msg))
|
||||
msg = html;
|
||||
BaseMsgForm.ShowError(msg, "错误");
|
||||
return "删除失败";
|
||||
}
|
||||
BaseMsgForm.ShowError("返回异常", "错误");
|
||||
return "删除失败";
|
||||
}
|
||||
|
||||
private void btnRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
Get1688Address();
|
||||
}
|
||||
|
||||
private void pnlEmpty_Click(object sender, EventArgs e)
|
||||
{
|
||||
txtSearch.Clear();
|
||||
cmbTypeFilter.Text = AddressType;
|
||||
}
|
||||
|
||||
private void ucSplitPage1_PageChange(object obj)
|
||||
{
|
||||
Get1688Address(ucSplitPage1.CurrentPage);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user