95 lines
3.2 KiB
C#
95 lines
3.2 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using System.Threading;
|
|
using Quartz;
|
|
using System.Net.Http;
|
|
using model;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
namespace wwsync
|
|
{
|
|
[DisallowConcurrentExecutionAttribute]
|
|
public class userdesc : IJob
|
|
{
|
|
static bool userdesc_running = false;
|
|
public userdesc()
|
|
{
|
|
}
|
|
|
|
public Task Execute(IJobExecutionContext context)
|
|
{
|
|
if(userdesc_running)
|
|
return Task.CompletedTask;
|
|
try
|
|
{
|
|
userdesc_running = true;
|
|
Console.WriteLine($"userdesc Execute at {DateTime.Now}.");
|
|
var t = userdesc_sync();
|
|
t.Wait();
|
|
}
|
|
finally
|
|
{ userdesc_running = false; }
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
public async Task userdesc_sync()
|
|
{
|
|
int maxcount = 500;
|
|
while (true)
|
|
{
|
|
List<ww_user_extuser> allfriends;
|
|
using (var context = new DataContext())
|
|
{
|
|
allfriends = context.ww_user_extusers.Where(obj => !obj.description.Contains("@[")&&obj.errnum<4).OrderBy(obj=>obj.errnum).Take(maxcount).ToList();
|
|
// obj.userid== "211229-101938-24"
|
|
}
|
|
LogHelper.Info($"userdesc_sync({allfriends.Count})");
|
|
if (allfriends == null || allfriends.Count == 0)
|
|
return;
|
|
int i = 0;
|
|
foreach (var user in allfriends)
|
|
{
|
|
//LogHelper.Info($"setdescription: ({user.corpid},{user.userid},{user.extuserid}) {i++}");
|
|
var finish = await setdescription(user);
|
|
if (finish)
|
|
Thread.Sleep(100);
|
|
else
|
|
Thread.Sleep(200);
|
|
}
|
|
if (allfriends.Count < maxcount)
|
|
return;
|
|
Thread.Sleep(15*1000);
|
|
}
|
|
}
|
|
|
|
public async Task<bool> setdescription(ww_user_extuser ueu)
|
|
{
|
|
string desc = $"{ueu.description}@[{ueu.extuserid}]@";
|
|
//string desc = ueu.description.Replace("@id@20220206","");
|
|
object data = new { userid = ueu.userid, external_userid = ueu.extuserid, description = desc };
|
|
var obj = await apicaller.wwapiwithtoken(appsetteings.URL_remark, ueu.corpid, appsetteings.allcorp[ueu.corpid].khsecret, "post", data);
|
|
using (var context = new DataContext())
|
|
{
|
|
context.Attach(ueu);
|
|
if (obj["errcode"].ToString() != "0")
|
|
ueu.errnum = ueu.errnum + 1;
|
|
else
|
|
ueu.description = desc;
|
|
context.SaveChanges();
|
|
}
|
|
if (obj["errcode"].ToString() != "0")
|
|
{
|
|
if (obj["errcode"].ToString() != "84061")
|
|
{
|
|
LogHelper.Info($"setdescription err:{obj.ToString()},{ueu.userid},{ueu.extuserid}");
|
|
Thread.Sleep(2 * 1000);
|
|
}
|
|
return false;
|
|
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
} |