using NetCore.BLL; using NetCore.Model.enums; using NetCore.Model.qw; using System; using System.Collections.Generic; using System.Threading; namespace NetCore.Service { public class MainThread { public string comcode { get; set; } public string funcconfig { get; set; } public void Execte() { bas_config_bll _config_bll = new bas_config_bll(comcode); while (true) { int sleepTime = 3; try { Console.WriteLine($"{comcode}企业开始执行合规数据:" + funcconfig); sleepTime = _config_bll.GetIntConfig(BasConfigEnum.MainSleepTime); ww_corp_bll _corp_bll = new ww_corp_bll(comcode); if (funcconfig.Contains("[QW]")) { Console.WriteLine("企业微信合规数据库初始化"); //new qw_orderuser_bll(comcode).InitHgOrderUser();//从oracle中读取订单客户到mysql中(已兼容) //new qw_orderuser_bll(comcode).InitHgJobUser();//从oracle中读取工作企业微信到mysql中(已兼容) } if (funcconfig.Contains("[RECORD]")) { Console.WriteLine("坐席录音合规数据库初始化"); //new crm_orderuser_bll(comcode).InitHgOrderResid();//从oracle中读取订单客户到oracle中 } if (funcconfig.Contains("[WX]")) { Console.WriteLine("微信合规数据库初始化"); //new wx_orderuser_bll(comcode).InitHgOrderUserName();//从oracle中读取订单username到sqlserver(已兼容) //new wx_orderuser_bll(comcode).InitJobUserName();//初始化工作微信到sqlserver(已兼容) } Console.WriteLine("order customer read completed!"); List corplist = _corp_bll.GetList(); Console.WriteLine("企业号主线程检测:"); bas_config config2 = _config_bll.GetConfig(BasConfigEnum.CusMsgNeedHG);//客户发得消息是否需要合规 int CusMsgNeedHG = config2 != null ? Convert.ToInt32(config2.value) : 0; #region 企业微信 //if (funcconfig.Contains("[QW]")) //{ // foreach (ww_corp item in corplist) // { // if (item.corpid != "ww89347c2378b6e050") // continue; // if (!Program.corpThread.ContainsKey($"{comcode}_{item.corpid}"))//如果有新的corp就新开一个线程 // { // Console.WriteLine("+++++++主线程:" + item.corpid); // MainCorpThread thmodel = new MainCorpThread() // { // corpid = item.corpid, // name = item.corpname, // matchstr = Program.GenerateRandomLetter(5), // seq = 0, // tablename = "", // cusmsgdeedhg = CusMsgNeedHG, // keyName = item.corpid, // comcode = comcode, // threadKey = $"{comcode}_{item.corpid}" // //checkdate = item.checkdate // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // Program.corpThread.Add($"{comcode}_{item.corpid}", item.corpname); // Thread.Sleep(1000); // break; // } // } // if (!Program.corpThread.ContainsKey($"{comcode}_qwReCord"))//企业微信电话入库 // { // Console.WriteLine("+++++++主线程:qwReCord"); // RecordThread thmodel = new RecordThread() // { // matchstr = Program.GenerateRandomLetter(5), // keyName = "企微电话", // comcode = comcode, // threadKey = $"{comcode}_qwReCord" // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // Program.corpThread.Add($"{comcode}_qwReCord", "企微电话"); // Thread.Sleep(1000); // } // if (!Program.corpThread.ContainsKey($"{comcode}_qwFiles"))// // { // Console.WriteLine("+++++++主线程:qwFiles"); // FilesThread thmodel = new FilesThread() // { // matchstr = Program.GenerateRandomLetter(5), // tablename = "", // keyName = "企微文件翻译", // comcode = comcode, // threadKey = $"{comcode}_qwFiles" // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // Program.corpThread.Add($"{comcode}_qwFiles", "企微文件翻译"); // Thread.Sleep(1000); // } // if (!Program.corpThread.ContainsKey($"{comcode}_qwHGFiles"))//如果有新的corp就新开一个线程 // { // Console.WriteLine("+++++++主线程:qwHGFiles"); // FilesHGThread thmodel = new FilesHGThread() // { // matchstr = Program.GenerateRandomLetter(5), // tablename = "", // keyName = "企微语音文本合规", // comcode = comcode, // threadKey = $"{comcode}_qwHGFiles" // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // Program.corpThread.Add($"{comcode}_qwHGFiles", "企微语音文本合规"); // Thread.Sleep(1000); // } //} #endregion #region 电话录音 //if (funcconfig.Contains("[RECORD]")) //{ // if (!Program.corpThread.ContainsKey($"{comcode}_ReCord"))//语音翻译 // { // Console.WriteLine("+++++++主线程:ReCord"); // ReCoredThread thmodel = new ReCoredThread() // { // matchstr = Program.GenerateRandomLetter(5), // keyName = "订单电话语音入库", // threadKey = $"{comcode}_ReCord" // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // Program.corpThread.Add($"{comcode}_ReCord", "订单电话语音入库"); // Thread.Sleep(1000); // } // if (!Program.corpThread.ContainsKey($"{comcode}_ReCordTrans"))//语音翻译 // { // Console.WriteLine("+++++++主线程:ReCordTrans"); // ReCoredTransThread thmodel = new ReCoredTransThread() // { // matchstr = Program.GenerateRandomLetter(5), // keyName = "电话语音翻译", // comcode = comcode, // threadKey = $"{comcode}_ReCordTrans" // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // Program.corpThread.Add($"{comcode}_ReCordTrans", "电话语音翻译"); // Thread.Sleep(1000); // } // if (!Program.corpThread.ContainsKey($"{comcode}_ReCordHG"))//语音翻译 // { // Console.WriteLine("+++++++主线程:ReCordHG"); // ReCordHGThread thmodel = new ReCordHGThread() // { // matchstr = Program.GenerateRandomLetter(5), // keyName = "电话录音文本合规", // threadKey = $"{comcode}_ReCordHG" // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // Program.corpThread.Add($"{comcode}_ReCordHG", "电话录音文本合规"); // Thread.Sleep(1000); // } //} #endregion #region 微信 //if (funcconfig.Contains("[WX]")) //{ // if (!Program.corpThread.ContainsKey($"{comcode}_wxMsgHG"))//语音翻译 // { // Console.WriteLine("+++++++主线程:wxMsgHG"); // MainMsgTread thmodel = new MainMsgTread() // { // matchstr = Program.GenerateRandomLetter(5), // keyName = "微信文本合规", // comcode = comcode, // threadKey = $"{comcode}_wxMsgHG" // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // Program.corpThread.Add($"{comcode}_wxMsgHG", "微信文本合规"); // Thread.Sleep(1000); // } // if (!Program.corpThread.ContainsKey($"{comcode}_wxFiles"))//语音翻译 // { // Console.WriteLine("+++++++主线程:wxFiles"); // wxFilesThread thmodel = new wxFilesThread() // { // matchstr = Program.GenerateRandomLetter(5), // keyName = "微信语音翻译", // comcode = comcode, // threadKey = $"{comcode}_wxFiles" // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // Program.corpThread.Add($"{comcode}_wxFiles", "微信语音合规"); // Thread.Sleep(1000); // } // if (!Program.corpThread.ContainsKey($"{comcode}_wxTransTxt"))//语音文本合规 // { // Console.WriteLine("+++++++主线程:wxTransTxt"); // wxVideoContentHgThread thmodel = new wxVideoContentHgThread() // { // matchstr = Program.GenerateRandomLetter(5), // keyName = "微信语音文本合规", // comcode = comcode, // threadKey = $"{comcode}_wxTransTxt" // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // Program.corpThread.Add($"{comcode}_wxTransTxt", "微信语音文本合规"); // Thread.Sleep(1000); // } //} #endregion #region 推送 if (!Program.corpThread.ContainsKey($"{comcode}_PushMsg"))//语音翻译 { Console.WriteLine("+++++++主线程:PushMsg"); PushThread thmodel = new PushThread() { matchstr = Program.GenerateRandomLetter(5), keyName = "推送数据", comcode = comcode, threadKey = $"{comcode}_PushMsg" }; Thread thread = new Thread(new ThreadStart(thmodel.execute)); thread.Start(); Program.corpThread.Add($"{comcode}_PushMsg", "推送数据"); Thread.Sleep(1000); } #endregion } catch (Exception e) { Console.WriteLine(e.ToString()); } Thread.Sleep((sleepTime == 0 ? 20 : sleepTime) * 60 * 1000);//默认20分钟执行一次,从数据库获取 } } } } #region 补充新增关键词后的数据,不做处理,只管当天新增的数据 //List makeuplist = _make_up.GetList();//获取补充字段得列表 //if (makeuplist.Any()) //{ // var group = makeuplist.GroupBy(m => new { m.corpid, m.pici });//通过seq相同分配到同一个线程进行处理 // foreach (var gp in group) // { // string key = string.Format("{0}_{1}", gp.Key.corpid, gp.Key.pici); // if (!makeThread.ContainsKey(key))//无此批次就新增 // { // Console.WriteLine("+++++++补充关键词线程:" + key); // List mlist = makeuplist.Where(m => m.corpid == gp.Key.corpid && m.pici == gp.Key.pici).ToList(); // int maxseq = mlist.Max(m => m.maxseq);///取最大得seq // List mywordlist = mlist.Select(m => new hg_keyword() { keyword = m.keyword }).ToList();//合并到一起关键词 // MakeUpThread thmodel = new MakeUpThread() // { // corpid = gp.Key.corpid, // //name = item.name, // matchstr = GenerateRandomLetter(5), // seq = mlist.FirstOrDefault().seq, // maxseq = maxseq, // tablename = mlist.FirstOrDefault().tablename, // words = mywordlist, // cusmsgdeedhg = CusMsgNeedHG, // makeuplist = mlist, // keyName = key // }; // Thread thread = new Thread(new ThreadStart(thmodel.execute)); // thread.Start(); // makeThread.Add(key, key); // Thread.Sleep(1000); // } // } //} #endregion