123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- using System;
- using System.Collections.Generic;
- using Library;
- using LitJson;
- using System.Linq;
- using System.Data;
- using System.Threading;
- using MySystem.PxcModels;
- namespace MySystem
- {
- public class UpUserSaveService
- {
- public readonly static UpUserSaveService Instance = new UpUserSaveService();
- private UpUserSaveService()
- { }
- public void Start()
- {
- Thread th = new Thread(StartDo);
- th.IsBackground = true;
- th.Start();
- }
- public void StartDo()
- {
- while(true)
- {
- try
- {
- if(DateTime.Now.Hour > 0)
- {
- string doDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
- string flag = function.ReadInstance("/UpUserSave/" + doDate + ".txt");
- if (string.IsNullOrEmpty(flag))
- {
- function.WritePage("/UpUserSave/", doDate + ".txt", DateTime.Now.ToString("HH:mm:ss"));
- }
- }
- }
- catch (Exception ex)
- {
- function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "异常");
- }
- Thread.Sleep(3600000);
- }
- }
- public void doSomething(string date = "")
- {
- WebCMSEntities db = new WebCMSEntities();
- var users = db.Users.Select(m => new { m.Id, m.ParentNav, m.CreateDate });
- if(!string.IsNullOrEmpty(date))
- {
- DateTime start = DateTime.Parse(date + " 00:00:00");
- DateTime end = start.AddDays(1);
- users = users.Where(m => m.CreateDate >= start && m.CreateDate < end);
- }
- string sql = "";
- int num = 0;
- foreach(var user in users.ToList())
- {
- if(!string.IsNullOrEmpty(user.ParentNav))
- {
- string[] ParentNavList = user.ParentNav.Replace(",,", ",").Trim(',').Split(',');
- int i = 0;
- foreach(string ParentUserId in ParentNavList)
- {
- i += 1;
- num += 1;
- sql += "insert into UpUserRelation (UserId,UpUserId,Floor) values (" + user.Id + ", " + ParentUserId + ", " + i + ");";
- if(num % 200 == 0)
- {
- CustomerSqlConn.op(sql, MysqlConn.SqlConnStr);
- sql = "";
- }
- }
- }
- }
- if(!string.IsNullOrEmpty(sql))
- {
- CustomerSqlConn.op(sql, MysqlConn.SqlConnStr);
- sql = "";
- }
- }
- }
- }
|