|
|
@@ -0,0 +1,110 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using MySystem.PxcModels;
|
|
|
+using MySystem.JavaUserModels;
|
|
|
+using Library;
|
|
|
+using LitJson;
|
|
|
+using System.Threading;
|
|
|
+
|
|
|
+namespace MySystem
|
|
|
+{
|
|
|
+ public class SycnJavaUsersService
|
|
|
+ {
|
|
|
+ public readonly static SycnJavaUsersService Instance = new SycnJavaUsersService();
|
|
|
+ private SycnJavaUsersService()
|
|
|
+ { }
|
|
|
+
|
|
|
+ public void Start()
|
|
|
+ {
|
|
|
+ Thread th = new Thread(DoWorks);
|
|
|
+ th.IsBackground = true;
|
|
|
+ th.Start();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void DoWorks()
|
|
|
+ {
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ DoQueue();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步创客信息异常");
|
|
|
+ }
|
|
|
+ Thread.Sleep(1800000);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void DoQueue()
|
|
|
+ {
|
|
|
+ JavaUserModels.WebCMSEntities javaUser = new JavaUserModels.WebCMSEntities();
|
|
|
+ PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
|
|
|
+
|
|
|
+ DateTime start = DateTime.Now.AddMonths(-3);
|
|
|
+ DateTime end = DateTime.Now.AddHours(-1);
|
|
|
+ IQueryable<JavaUserModels.KxsUser> kxsUser = javaUser.KxsUser.Where(m => m.CreateTime >= start && m.CreateTime < end);
|
|
|
+ int minId = kxsUser.Min(m => m.Id);
|
|
|
+ int maxId = kxsUser.Max(m => m.Id);
|
|
|
+ List<int> checkUserIds = db.Users.Select(m => m.Id).Where(m => m >= minId && m <= maxId).ToList();
|
|
|
+ var users = javaUser.KxsUser.Where(m => m.Id >= minId && m.Id <= maxId && !checkUserIds.Contains(m.Id)).ToList();
|
|
|
+ foreach(var user in users)
|
|
|
+ {
|
|
|
+ int id = user.Id;
|
|
|
+ int pid = user.Pid;
|
|
|
+ string pidPath = user.PidPath;
|
|
|
+ DateTime CreateDate = user.CreateTime.Value;
|
|
|
+ string MakerCode = user.UserCode;
|
|
|
+ string Mobile = user.Phone;
|
|
|
+ string RealName = user.Username;
|
|
|
+ string HeadPhoto = user.Avatar;
|
|
|
+
|
|
|
+ Users edit = db.Users.FirstOrDefault(m => m.Mobile == Mobile);
|
|
|
+ if(edit != null)
|
|
|
+ {
|
|
|
+ db.Users.Remove(edit);
|
|
|
+ }
|
|
|
+ UserForMobile forMobile = db.UserForMobile.FirstOrDefault(m => m.Mobile == Mobile);
|
|
|
+ if(forMobile != null)
|
|
|
+ {
|
|
|
+ db.UserForMobile.Remove(forMobile);
|
|
|
+ }
|
|
|
+ UserForMakerCode forMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
|
|
|
+ if(forMakerCode != null)
|
|
|
+ {
|
|
|
+ db.UserForMakerCode.Remove(forMakerCode);
|
|
|
+ }
|
|
|
+ db.SaveChanges();
|
|
|
+ Users add = db.Users.Add(new Users()
|
|
|
+ {
|
|
|
+ Id = id,
|
|
|
+ ParentUserId = pid,
|
|
|
+ ParentNav = pidPath,
|
|
|
+ CreateDate = CreateDate,
|
|
|
+ MakerCode = MakerCode,
|
|
|
+ Mobile = Mobile,
|
|
|
+ RealName = RealName,
|
|
|
+ HeadPhoto = HeadPhoto,
|
|
|
+ }).Entity;
|
|
|
+ db.SaveChanges();
|
|
|
+
|
|
|
+ db.UserForMobile.Add(new UserForMobile()
|
|
|
+ {
|
|
|
+ Mobile = Mobile,
|
|
|
+ UserId = add.Id
|
|
|
+ });
|
|
|
+
|
|
|
+ db.UserForMakerCode.Add(new UserForMakerCode()
|
|
|
+ {
|
|
|
+ MakerCode = MakerCode,
|
|
|
+ UserId = add.Id
|
|
|
+ });
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ javaUser.Dispose();
|
|
|
+ db.Dispose();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|