sync.du.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545
  1. using BizCom;
  2. using SiteCore.Redis;
  3. using SQLData;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Web;
  12. namespace SiteCore.Handler
  13. {
  14. public partial class sync
  15. {
  16. public void get_qdb_sitedev()
  17. {
  18. if (UrlPostParmsCheck("sid"))
  19. {
  20. int pbid = GetPostInt("sid");
  21. DataStruct dStruct = GetStruct();
  22. List<string> lw = new List<string>();
  23. lw.Add("siteid=" + pbid);
  24. string sql = "select a.id,a.name as sitename,b.* from s_dusite as a left join s_dusitedev as b on a.id=b.siteid";
  25. dStruct.Order = "sitename asc";
  26. dStruct.MainWhere = string.Join(" and ", lw.ToArray());
  27. DataTable dt = WebCache.GetData(sql, dStruct);
  28. writeGridJson(dStruct.TotalCount, Utils.Serialization.JsonString.DataTable2MiniAjaxJson(dt));
  29. }
  30. }
  31. public void save_qdb_sitedev()
  32. {
  33. if (UrlPostParmsCheck("sid"))
  34. {
  35. int sid = GetPostInt("sid");
  36. string devip1 = GetPostString("DevIP1");
  37. string devip2 = GetPostString("DevIP2");
  38. string mac1 = GetPostString("MAC1");
  39. string mac2 = GetPostString("MAC2");
  40. bool isnew = false;
  41. SDuSiteDev entity = SDuSiteDev.Get(sid);
  42. if (entity != null)
  43. {
  44. isnew = false;
  45. }
  46. else
  47. {
  48. entity = new SDuSiteDev();
  49. isnew = true;
  50. entity.SiteID = sid;
  51. }
  52. entity.DevIP1 = devip1;
  53. entity.DevIP2 = devip2;
  54. entity.MAC1 = mac1;
  55. entity.MAC2 = mac2;
  56. if (isnew) entity.Create();
  57. else entity.Update();
  58. returnSuccessMsg("保存成功");
  59. }
  60. }
  61. public void get_duentryexit()
  62. {
  63. DataStruct dStruct = GetPostStruct();
  64. List<string> lw = new List<string>();
  65. string key = GetPostString("key");
  66. if (key.Length > 0) lw.Add(string.Format(" (nickname like '%{0}%' or mobile like '%{0}%') ", key));
  67. int sid = GetPostInt("sid");
  68. if (sid > 0)
  69. {
  70. lw.Add(" siteid=" + sid);
  71. }
  72. dStruct.Order = "addtime desc";
  73. dStruct.MainWhere = string.Join(" and ", lw.ToArray());
  74. DataTable dt = WebCache.GetData("view_DuEntryExit", dStruct);
  75. writeGridJson(dStruct.TotalCount, Utils.Serialization.JsonString.DataTable2MiniAjaxJson(dt));
  76. }
  77. public void get_duinouthistory()
  78. {
  79. DataStruct dStruct = GetPostStruct();
  80. List<string> lw = new List<string>();
  81. int id = GetPostInt("sid");
  82. if (id > 0)
  83. {
  84. lw.Add("siteid=" + id);
  85. }
  86. string ctime = GetPostString("ctime");
  87. if (ctime != "")
  88. {
  89. lw.Add(string.Format(" datediff(d,addtime,'{0}')=0 ", ctime));
  90. }
  91. string key = GetPostString("key");
  92. if (key.Length > 0) lw.Add(string.Format(" (nickname like '%{0}%' or mobile like '%{0}%') ", key));
  93. dStruct.Order = "id desc";
  94. dStruct.MainWhere = string.Join(" and ", lw.ToArray());
  95. DataTable dt = WebCache.GetData("view_DuEntryExit", dStruct);
  96. writeGridJson(dStruct.TotalCount, Utils.Serialization.JsonString.DataTable2MiniAjaxJson(dt));
  97. }
  98. public void get_duuser()
  99. {
  100. DataStruct dStruct = GetPostStruct();
  101. List<string> lw = new List<string>();
  102. int id = GetPostInt("sid");
  103. string ctime = GetPostString("ctime");
  104. if (ctime != "")
  105. {
  106. lw.Add(string.Format(" datediff(d,addtime,'{0}')=0 ", ctime));
  107. }
  108. string key = GetPostString("key");
  109. if (key.Length > 0) lw.Add(string.Format(" (nickname like '%{0}%' or mobile like '%{0}%') ", key));
  110. string st = GetPostString("st");
  111. if (st.Length>0 && st!="-1")
  112. {
  113. lw.Add("state=" + st);
  114. }
  115. dStruct.Order = "id desc";
  116. dStruct.MainWhere = string.Join(" and ", lw.ToArray());
  117. DataTable dt = WebCache.GetData("s_duuser", dStruct);
  118. writeGridJson(dStruct.TotalCount, Utils.Serialization.JsonString.DataTable2MiniAjaxJson(dt));
  119. }
  120. public void set_qdb_userstate()
  121. {
  122. if (UrlPostParmsCheck("uid,state,opid"))
  123. {
  124. int state = GetPostInt("state");
  125. int uid = GetPostInt("uid");
  126. string openid = GetPostString("opid");
  127. openid = HttpUtility.UrlDecode(openid);
  128. string sql = "update s_duuser set state="+state+" where id=" + uid;
  129. DbHelper.DbConn.ExecuteNonQuery(sql);
  130. redis.RedisHelper.StringSet(openid, uid + "|" + state);
  131. returnSuccessMsg("设置成功!");
  132. }
  133. }
  134. public void get_quduba_site()
  135. {
  136. DataStruct dStruct = GetPostStruct();
  137. List<string> lw = new List<string>();
  138. string key = GetPostString("key");
  139. if (key.Length > 0) lw.Add(string.Format("name like '%{0}%'", key));
  140. dStruct.Order = "id asc";
  141. dStruct.MainWhere = string.Join(" and ", lw.ToArray());
  142. DataTable dt = WebCache.GetData("S_DuSite", dStruct);
  143. writeGridJson(dStruct.TotalCount, Utils.Serialization.JsonString.DataTable2MiniAjaxJson(dt));
  144. }
  145. public void save_quduba_site()
  146. {
  147. if (UrlPostParmsCheck("name,address"))
  148. {
  149. int sid = GetPostInt("sid");
  150. string name = GetPostString("name");
  151. string address = GetPostString("address");
  152. string optime = GetPostString("optime");
  153. string devip1 = GetPostString("devip1");
  154. string devip2 = GetPostString("devip2");
  155. string mac1 = GetPostString("mac1");
  156. string mac2 = GetPostString("mac2");
  157. string blnglat = GetPostString("blnglat");
  158. string lnglat = GetPostString("lnglat");
  159. SDuSite entity = null;
  160. if (sid > 0) entity = SDuSite.Get(sid);
  161. else entity = new SDuSite();
  162. entity.Name = name;
  163. entity.Address = address;
  164. entity.OpenTime = optime;
  165. entity.DevIP1 = devip1;
  166. entity.DevIP2 = devip2;
  167. entity.MAC1 = mac1;
  168. entity.MAC2 = mac2;
  169. string[] tmp;
  170. if (blnglat.Length > 0)
  171. {
  172. tmp = blnglat.Split(',');
  173. entity.bLng = tmp[0];
  174. entity.bLat = tmp[1];
  175. }
  176. if (lnglat.Length > 0)
  177. {
  178. tmp = lnglat.Split(',');
  179. entity.Lng = tmp[0];
  180. entity.Lat = tmp[1];
  181. }
  182. if (sid > 0) entity.Update();
  183. else entity.Create();
  184. //redis.RedisHelper.KeyDelete("duba_site");
  185. //duRedis.RedisHelper.KeyDelete("remoteOpen");
  186. returnSuccessMsg("保存成功");
  187. }
  188. }
  189. public void del_quduba_site()
  190. {
  191. if (UrlParmsCheck("sid"))
  192. {
  193. int sid = GetInt("sid");
  194. SDuSite.Del(sid);
  195. //redis.RedisHelper.KeyDelete("duba_site");
  196. //duRedis.RedisHelper.KeyDelete("remoteOpen");
  197. returnSuccessMsg("删除成功!");
  198. }
  199. }
  200. public void startstop_quduba_site()
  201. {
  202. if (UrlPostParmsCheck("sid"))
  203. {
  204. int state = GetPostInt("st");
  205. int sid = GetPostInt("sid");
  206. string sql = string.Format("update s_dusite set state={0} where id={1}", state, sid);
  207. DbHelper.DbConn.ExecuteNonQuery(sql.ToString());
  208. //redis.RedisHelper.KeyDelete("duba_site");
  209. //duRedis.RedisHelper.KeyDelete("remoteOpen");
  210. returnSuccessMsg("操作成功!");
  211. }
  212. }
  213. public void refresh_quduba_site()
  214. {
  215. redis.RedisHelper.KeyDelete("duba_site");
  216. duRedis.RedisHelper.KeyDelete("remoteOpen");
  217. returnSuccessMsg("推送成功!");
  218. }
  219. public void get_quduba_limitopen()
  220. {
  221. DataStruct dStruct = GetPostStruct();
  222. List<string> lw = new List<string>();
  223. string key = GetPostString("key");
  224. if (key.Length > 0) lw.Add(string.Format("name like '%{0}%'", key));
  225. dStruct.Order = "id asc";
  226. dStruct.MainWhere = string.Join(" and ", lw.ToArray());
  227. DataTable dt = WebCache.GetData("view_DuLimitOpen", dStruct);
  228. writeGridJson(dStruct.TotalCount, Utils.Serialization.JsonString.DataTable2MiniAjaxJson(dt));
  229. }
  230. public void del_quduba_limitopen()
  231. {
  232. if (UrlPostParmsCheck("sid"))
  233. {
  234. int sid = GetPostInt("sid");
  235. SDuLimitOpen.Del(sid);
  236. duRedis.RedisHelper.KeyDelete("remoteOpen");
  237. returnSuccessMsg("删除成功!");
  238. }
  239. }
  240. public void save_quduba_limitopen()
  241. {
  242. if (UrlPostParmsCheck("sdate,edate"))
  243. {
  244. int siteid = GetPostInt("siteid");
  245. string sdate = GetPostString("sdate");
  246. string edate = GetPostString("edate");
  247. string hstime = GetPostString("hstime");
  248. string hetime = GetPostString("hetime");
  249. int isclose = GetPostInt("isclose");
  250. int sid = GetPostInt("sid");
  251. SDuLimitOpen limit = null;
  252. if (sid > 0)
  253. {
  254. limit = SDuLimitOpen.Get(sid);
  255. }
  256. else
  257. {
  258. limit = new SDuLimitOpen();
  259. }
  260. limit.siteid = siteid;
  261. limit.sdate = sdate;
  262. limit.edate = edate;
  263. limit.stime = hstime;
  264. limit.etime = hetime;
  265. limit.isclose = isclose == 1 ? true : false;
  266. if (sid > 0) limit.Update();
  267. else limit.Create();
  268. duRedis.RedisHelper.KeyDelete("remoteOpen");
  269. returnSuccessMsg("保存成功!");
  270. }
  271. }
  272. public void get_quduba_opentime()
  273. {
  274. DataStruct dStruct = GetPostStruct();
  275. List<string> lw = new List<string>();
  276. string key = GetPostString("key");
  277. if (key.Length > 0) lw.Add(string.Format("SiteName like '%{0}%'", key));
  278. dStruct.Order = "id asc";
  279. dStruct.MainWhere = string.Join(" and ", lw.ToArray());
  280. DataTable dt = WebCache.GetData("view_DuOpenTime", dStruct);
  281. writeGridJson(dStruct.TotalCount, Utils.Serialization.JsonString.DataTable2MiniAjaxJson(dt));
  282. }
  283. public void save_qdb_opentime()
  284. {
  285. if (UrlPostParmsCheck("optime"))
  286. {
  287. int id = GetPostInt("oid");
  288. int siteid = GetPostInt("sid");
  289. string optime = GetPostString("optime");
  290. string effect = GetPostString("effect");
  291. SDuOpenTime entity = null;
  292. if (id > 0) entity = SDuOpenTime.Get(id);
  293. else
  294. {
  295. if (SDuOpenTime.Exists("SiteID=?", siteid))
  296. {
  297. returnErrorMsg("已存在该吧点的配置,直接修改就行!");
  298. return;
  299. }
  300. entity = new SDuOpenTime();
  301. }
  302. entity.SiteID = siteid;
  303. entity.OpenTime = optime;
  304. if (effect != "") entity.EffectTime = Convert.ToDateTime(effect);
  305. else entity.EffectTime = DateTime.Now;
  306. if (id > 0) entity.Update();
  307. else entity.Create();
  308. duRedis.RedisHelper.KeyDelete("remoteOpen");
  309. returnSuccessMsg("保存成功!");
  310. }
  311. }
  312. public void del_qdb_opentime()
  313. {
  314. if(UrlPostParmsCheck("oid"))
  315. {
  316. int oid = GetPostInt("oid");
  317. SDuOpenTime.Del(oid);
  318. duRedis.RedisHelper.KeyDelete("remoteOpen");
  319. returnSuccessMsg("删除成功!");
  320. }
  321. }
  322. public void get_quduba_notify()
  323. {
  324. DataStruct dStruct = GetPostStruct();
  325. List<string> lw = new List<string>();
  326. string key = GetPostString("key");
  327. if (key.Length > 0) lw.Add(string.Format("name like '%{0}%'", key));
  328. dStruct.Order = "id asc";
  329. dStruct.MainWhere = string.Join(" and ", lw.ToArray());
  330. DataTable dt = WebCache.GetData("view_DuNotify", dStruct);
  331. writeGridJson(dStruct.TotalCount, Utils.Serialization.JsonString.DataTable2MiniAjaxJson(dt));
  332. }
  333. public void save_quduba_notify()
  334. {
  335. if (UrlPostParmsCheck("con"))
  336. {
  337. int id = GetPostInt("sid");
  338. int siteid = GetPostInt("siteid");
  339. string con = GetPostString("con");
  340. string effect = GetPostString("effect");
  341. SDuNotify entity = null;
  342. if (id > 0) entity = SDuNotify.Get(id);
  343. else
  344. {
  345. if (SDuNotify.Exists("SiteID=?", siteid))
  346. {
  347. returnErrorMsg("已存在该吧点的配置,直接修改就行!");
  348. return;
  349. }
  350. entity = new SDuNotify();
  351. }
  352. entity.SiteID = siteid;
  353. entity.WavConfig = con;
  354. if (effect != "") entity.EffectTime = Convert.ToDateTime(effect);
  355. else entity.EffectTime = DateTime.Now;
  356. if (id > 0) entity.Update();
  357. else entity.Create();
  358. returnSuccessMsg("保存成功!");
  359. }
  360. }
  361. public void del_quduba_notify()
  362. {
  363. if (UrlPostParmsCheck("oid"))
  364. {
  365. int oid = GetPostInt("oid");
  366. SDuNotify.Del(oid);
  367. returnSuccessMsg("删除成功!");
  368. }
  369. }
  370. public void update_qdb_opentime()
  371. {
  372. StringBuilder sql = new StringBuilder();
  373. sql.AppendFormat("select * from S_DuOpenTime ;");
  374. DataSet ds = DbHelper.DbConn.ExecuteDataset(sql.ToString());
  375. DataTable dt = ds.Tables[0];
  376. List<string> opLst = new List<string>();
  377. foreach (DataRow dr in dt.Rows)
  378. {
  379. opLst.Add("OPSite" + dr["siteid"] + "=" + Convert.ToDateTime(dr["effecttime"]).ToString("yyyy-MM-dd") + "$" + dr["opentime"]);
  380. }
  381. if (opLst.Count > 0)
  382. {
  383. opLst.Insert(0, "[SET]");
  384. wirteFile(webConfig.dbdownPath + "\\otset.txt", opLst);
  385. updateVer();
  386. }
  387. returnSuccessMsg("已推送更新!");
  388. }
  389. public void update_qdb_limitopen()
  390. {
  391. DateTime dTime = DateTime.Now;
  392. string nTime = dTime.ToString("yyyy-MM-dd");
  393. StringBuilder sql = new StringBuilder();
  394. sql.AppendFormat("select * from S_DuLimitOpen where sdate>='" + nTime + "' order by sdate asc;");
  395. DataSet ds = DbHelper.DbConn.ExecuteDataset(sql.ToString());
  396. DataTable dt = ds.Tables[0];
  397. List<string> opLst = new List<string>();
  398. Dictionary<string, List<string>> dics = new Dictionary<string, List<string>>();
  399. foreach (DataRow dr in dt.Rows)
  400. {
  401. if(dics.ContainsKey("LOSite" + dr["siteid"]))
  402. {
  403. dics.Add("LOSite" + dr["siteid"],new List<string>());
  404. }
  405. dics["LOSite" + dr["siteid"]].Add(dr["sdate"] + "," + dr["edate"] + "," + dr["stime"] + "," + dr["etime"] + "," + (Convert.ToBoolean(dr["isclose"]) ? "1" : "0"));
  406. //opLst.Add("LOSite" + dr["siteid"] + "=" + );
  407. }
  408. foreach(KeyValuePair<string,List<string>> kvp in dics)
  409. {
  410. opLst.Add(kvp.Key+"="+ string.Join(",", kvp.Value.ToArray()));
  411. }
  412. if (opLst.Count > 0)
  413. {
  414. opLst.Insert(0, "[SET]");
  415. wirteFile(webConfig.dbdownPath + "\\lotset.txt", opLst);
  416. updateVer();
  417. }
  418. returnSuccessMsg("已推送更新!");
  419. }
  420. public void update_qdb_wavsetting()
  421. {
  422. DateTime dTime = DateTime.Now;
  423. string nTime = dTime.ToString("yyyy-MM-dd");
  424. StringBuilder sql = new StringBuilder();
  425. sql.AppendFormat("select * from S_DuNotify ;");
  426. DataSet ds = DbHelper.DbConn.ExecuteDataset(sql.ToString());
  427. DataTable dt = ds.Tables[0];
  428. List<string> opLst = new List<string>();
  429. foreach (DataRow dr in dt.Rows)
  430. {
  431. opLst.Add("WavSite" + dr["siteid"] + "=" + Convert.ToDateTime(dr["effecttime"]).ToString("yyyy-MM-dd") + "$" + dr["wavconfig"]);
  432. }
  433. if (opLst.Count > 0)
  434. {
  435. opLst.Insert(0, "[SET]");
  436. wirteFile(webConfig.dbdownPath + "\\wavset.txt", opLst);
  437. updateVer();
  438. }
  439. returnSuccessMsg("已推送更新!");
  440. }
  441. private void updateVer()
  442. {
  443. string file = con.Server.MapPath("../du/qdb_ver.html");
  444. if (!File.Exists(file)) return;
  445. string str = "";
  446. using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))
  447. {
  448. using (StreamReader sr = new StreamReader(fs, Encoding.ASCII))
  449. {
  450. str = sr.ReadToEnd();
  451. }
  452. }
  453. double ver = 0.01;
  454. if (str != "") ver = Convert.ToDouble(str) + 0.01;
  455. using (FileStream fs1 = new FileStream(file, FileMode.Open, FileAccess.Write))
  456. {
  457. using (StreamWriter sw = new StreamWriter(fs1))
  458. {
  459. sw.Write(ver.ToString());
  460. }
  461. }
  462. }
  463. private void wirteFile(string file,List<string> opLst)
  464. {
  465. FileStream fs = new FileStream(file, FileMode.Create);
  466. StreamWriter sw = new StreamWriter(fs,Encoding.Default);
  467. sw.Write(string.Join("\r\n", opLst.ToArray()));
  468. //清空缓冲区内容
  469. sw.Flush();
  470. //关闭流
  471. sw.Close();
  472. fs.Close();
  473. }
  474. }
  475. }