|
|
|
using BBWY.Common.Models;
|
|
|
|
using BBWY.JDSDK.Request;
|
|
|
|
using BBWY.Server.Model.Db;
|
|
|
|
using BBWY.Server.Model.Dto;
|
|
|
|
using Jd.Api;
|
|
|
|
using Jd.Api.Request;
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
|
|
|
using System.Text;
|
|
|
|
using System.Text.RegularExpressions;
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
using io = System.IO;
|
|
|
|
namespace BBWY.Test
|
|
|
|
{
|
|
|
|
internal class Program
|
|
|
|
{
|
|
|
|
private static IJdClient GetJdClient(string appKey, string appSecret)
|
|
|
|
{
|
|
|
|
return new DefaultJdClient("https://api.jd.com/routerjson", appKey, appSecret);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void Main(string[] args)
|
|
|
|
{
|
|
|
|
var sqlConnectString = "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwy_test;charset=utf8;sslmode=none;";
|
|
|
|
var fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, sqlConnectString).Build();
|
|
|
|
var orderDropShippingList = fsql.Select<OrderSku, OrderDropShipping>()
|
|
|
|
.InnerJoin((osku, ods) => osku.OrderId == ods.OrderId)
|
|
|
|
.Where((osku, ods) => osku.OrderDropShippingId == null)
|
|
|
|
.ToList((osku, ods) => new OrderDropShipping
|
|
|
|
{
|
|
|
|
Id = ods.Id,
|
|
|
|
OrderId = ods.OrderId
|
|
|
|
});
|
|
|
|
|
|
|
|
var orderDropShoppingCount = orderDropShippingList.Count();
|
|
|
|
var threadCount = 3;
|
|
|
|
|
|
|
|
var perTaskCount = orderDropShoppingCount / threadCount;
|
|
|
|
var lastTaskCount = orderDropShoppingCount % threadCount;
|
|
|
|
|
|
|
|
Action<IList<OrderDropShipping>, int, int> insertAction = (taskList, threadIndex, lessCount) =>
|
|
|
|
{
|
|
|
|
foreach (var ods in taskList)
|
|
|
|
{
|
|
|
|
fsql.Update<OrderSku>().Set(osku => osku.OrderDropShippingId, ods.Id).Where(osku => osku.OrderId == ods.OrderId).ExecuteAffrows();
|
|
|
|
lessCount--;
|
|
|
|
Console.WriteLine($"ThreadId:{threadIndex} OrderDropShippingId {ods.Id},Less {lessCount}");
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
for (var i = 0; i < threadCount; i++)
|
|
|
|
{
|
|
|
|
var taskList = orderDropShippingList.Skip(i * perTaskCount).Take(perTaskCount + (i == threadCount - 1 ? lastTaskCount : 0)).ToList();
|
|
|
|
var threadIndex = i;
|
|
|
|
Task.Factory.StartNew(() =>
|
|
|
|
{
|
|
|
|
var lessCount = taskList.Count();
|
|
|
|
insertAction(taskList, threadIndex, lessCount);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
Console.ReadKey();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|