/// <summary> /// 报平安Post /// </summary> /// <param name="user"></param> public bool PostReport(Global.User user) { try { var name = user.Name; user = Global.GetUserInfo(user.Cookie);//刷新一次账号信息 if (user.TodayTaskState == "未填报") { var rows = user.GetTodayJb; //开始整理表单参数 Invoke(new Action(() => { NutDebug("开始自动报平安!"); })); String PostData = CreatePostdate(user); var postUrl = "http://ehall.sicnu.edu.cn/qljfwapp/sys/lwReportEpidemicUndergraduate/modules/application/T_REPORT_UNDERGRADUATE_CHECKIN_SAVE.do"; var PostResult = NutWeb.Nut_Post(postUrl, PostData, user.Cookie, null); user = Global.GetUserInfo(user.Cookie);//刷新一次账号信息 AddToListView(user); return(true); } user.Name = name; AddToListView(user); return(false); } catch { Invoke(new Action(() => { NutDebug("未知错误-PostReport"); })); return(false); } }
/// <summary> /// 将账号添加到ListView并更新List和本地json /// </summary> /// <param name="AddUser"></param> public void AddToListView(Global.User AddUser) { var List = listView1.Items; var AccountNum = Form1.MainForm.listView1.Items.Count; if (AccountNum != 0) { for (int i = 0; i <= AccountNum - 1; i++) { String name = ""; Invoke(new Action(() => { name = Form1.MainForm.listView1.Items[i].SubItems[0].Text; })); if (name == AddUser.Name) { //账号已经在列表中 Invoke(new Action(() => { Form1.MainForm.listView1.Items[i].SubItems[1].Text = AddUser.TodayTaskState; })); } } } //更新json Global.AddUserToJson(AddUser); //更新List bool inlist = false; foreach (var user in Global.UserList) { if (AddUser.Name == user.Name) { int index = Global.UserList.IndexOf(user); Global.UserList[index] = AddUser; inlist = true; break; } } if (!inlist) { Invoke(new Action(() => { var item = new ListViewItem(AddUser.Name); item.SubItems.Add(AddUser.TodayTaskState); Global.UserList.Add(AddUser); listView1.Items.Add(item); })); } Global.AddUserToJson(AddUser); }
/// <summary> /// 根据cookie获取最新的账号信息 /// </summary> /// <param name="Cookie"></param> /// <returns>完成返回null 没完成返回表单wid参数</returns> public static Global.User GetUserInfo(String Cookie) { try { var GetUrl = "http://ehall.sicnu.edu.cn/qljfwapp/sys/lwReportEpidemicUndergraduate/modules/application/getMyTodayReportWid.do"; var GetResult = NutWeb.Nut_Get(GetUrl, null, Cookie); var GetUrl2 = "http://ehall.sicnu.edu.cn/qljfwapp/sys/lwReportEpidemicUndergraduate/modules/application/getLatestDailyReportData.do"; var GetResult2 = NutWeb.Nut_Get(GetUrl2, null, Cookie); var returnUser = new Global.User(); if (GetResult != null && GetResult2 != null) { JObject JsonObj = (JObject)JsonConvert.DeserializeObject(GetResult.Html); var rows = JsonObj["datas"]["getMyTodayReportWid"]["rows"].First; JObject JsonObj2 = (JObject)JsonConvert.DeserializeObject(GetResult2.Html); var rows2 = JsonObj2["datas"]["getLatestDailyReportData"]["rows"].First; if (rows != null && rows2 != null) { returnUser.Cookie = Cookie; returnUser.TodayTaskState = rows["CHECKED_DISPLAY"].ToString(); returnUser.Name = rows["USER_NAME"].ToString(); returnUser.TodayWid = rows["WID"].ToString(); returnUser.GetTodayJb = rows; returnUser.LatestDailyJb = rows2; Form1.MainForm.NutDebug("获取成功! 当前用户--->" + returnUser.Name); Form1.MainForm.NutDebug("今日填报状态--->" + returnUser.TodayTaskState); return(returnUser); } } Form1.MainForm.NutDebug("当前账号Cookie已经失效"); returnUser.TodayTaskState = "账号失效"; return(returnUser); } catch { Form1.MainForm.NutDebug("当前账号Cookie已经失效"); var returnUser = new Global.User(); returnUser.TodayTaskState = "账号失效"; return(returnUser); } }
/// <summary> /// 从本地json读取账号 /// </summary> public static void ReadUserJson() { var path = Global.DataPath + "\\UserInfo.json"; if (!File.Exists(path)) { Form1.MainForm.NutDebug("本地没有账号"); return; } var Text = File.ReadAllText(path); JObject JsonObj = (JObject)JsonConvert.DeserializeObject(Text); if (JsonObj == null) { JsonObj = new JObject(new JProperty("user", new JArray())); } //获取账号数量 if (JsonObj["user"] == null) { JsonObj.Last.AddAfterSelf(new JProperty("user", new JArray())); } var count = ((JContainer)JsonObj["user"]).Count; if (count > 0) { var users = JsonObj["user"]; foreach (var user in users) { var adduser = new Global.User(); adduser.Name = user["name"].ToString(); adduser.Cookie = user["cookie"].ToString(); adduser.TodayTaskState = user["todaydone"].ToString(); adduser.TodayWid = user["wid"].ToString(); Form1.MainForm.AddToListView(adduser); } } }
/// <summary> /// 整理报平安参数 /// </summary> /// <param name="user"></param> /// <returns></returns> public String CreatePostdate(Global.User user) { String ReturnStr = ""; String dataA = "WID&USER_ID&USER_NAME&GENDER_CODE&GENDER&DEPT_CODE&DEPT_NAME&MAJOR_CODE&MAJOR&CLASS_CODE&CLASS_NAME&TO_LOCATION"; var dataAs = dataA.Split('&'); foreach (var key in dataAs) { ReturnStr += key + "=" + Global.UrlEncode(user.GetTodayJb[key].ToString()) + "&"; } String dataB = "CAMPUS_DISPLAY&CAMPUS&PHONE_NUMBER&PARENT_NAME&PARENT_PHONE&LOCATION_PROVINCE_CODE_DISPLAY&LOCATION_PROVINCE_CODE&LOCATION_CITY_CODE_DISPLAY&LOCATION_CITY_CODE&LOCATION_COUNTY_CODE_DISPLAY&LOCATION_COUNTY_CODE&DETAIL_LOCATION&NOW_LOCATION&INFET_STATE_DISPLAY&INFET_STATE&ISOLATE_STATE_DISPLAY&ISOLATE_STATE&NOW_TEMPERATURE&AFTERNOON_TEMPERATURE&IS_TO_HUBEI_DISPLAY&IS_TO_HUBEI&IS_CONTACT_HUBEI_PEOPLE_DISPLAY&IS_CONTACT_HUBEI_PEOPLE&IS_SYMPTOM_DISPLAY&IS_SYMPTOM&IS_CONTACT_VIRUS_PEOPLE_DISPLAY&IS_CONTACT_VIRUS_PEOPLE&IS_TO_DISASTER_AREA_DISPLAY&IS_TO_DISASTER_AREA&IS_CONTACT_DISASTER_PEOPLE_DISPLAY&IS_CONTACT_DISASTER_PEOPLE&CONTACT_DATE&FAMILY_INFO"; var dataBs = dataB.Split('&'); foreach (var key in dataBs) { ReturnStr += key + "=" + Global.UrlEncode(user.LatestDailyJb[key].ToString()) + "&"; } var time = Global.UrlEncode(DateTime.Now.ToString().Replace(@"/", "-")); var time2 = Global.UrlEncode(DateTime.Now.AddDays(-1).ToShortDateString().ToString() + " 23:50:48"); ReturnStr += "CREATED_AT=" + time + "&CZR=&CZZXM=&CZRQ=" + time2 + "&CHECKED_DISPLAY=%E6%9C%AA%E5%A1%AB%E6%8A%A5&CHECKED=NO"; return(ReturnStr); }
/// <summary> /// 把账号信息添加到Json /// </summary> /// <param name="Name"></param> /// <param name="Cookie"></param> public static void AddUserToJson(Global.User AddUser) { var path = Global.DataPath + "\\UserInfo.json"; if (!File.Exists(path)) { File.Create(path).Dispose(); } var Text = File.ReadAllText(path); JObject JsonObj = (JObject)JsonConvert.DeserializeObject(Text); JObject NewAccount = new JObject(); NewAccount.Add("name", AddUser.Name); NewAccount.Add("cookie", AddUser.Cookie); NewAccount.Add("todaydone", AddUser.TodayTaskState); NewAccount.Add("wid", AddUser.TodayWid); if (JsonObj == null) { JsonObj = new JObject(new JProperty("user", new JArray(NewAccount))); } if (JsonObj["user"] == null) { JsonObj.Last.AddAfterSelf(new JProperty("user", new JArray())); } var count = ((JContainer)JsonObj["user"]).Count; if (count > 0) { var AccountList = JsonObj["user"]; for (int i = 0; i < count; i++) { var account = AccountList[i]; if (account["name"].ToString() == AddUser.Name) { //如果账号存在于json中 account["cookie"] = AddUser.Cookie; account["name"] = AddUser.Name; account["todaydone"] = AddUser.TodayTaskState; account["wid"] = AddUser.TodayWid; AccountList[i] = account; JsonObj["user"] = AccountList; string out_put = Newtonsoft.Json.JsonConvert.SerializeObject(JsonObj, Newtonsoft.Json.Formatting.Indented); File.WriteAllText(path, out_put, UTF8Encoding.UTF8); return; } } } if (count == 0) { JsonObj["user"] = new JArray(NewAccount); string out_put = Newtonsoft.Json.JsonConvert.SerializeObject(JsonObj, Newtonsoft.Json.Formatting.Indented); File.WriteAllText(path, out_put, UTF8Encoding.UTF8); return; } JsonObj["user"].Last.AddAfterSelf(NewAccount); string output = Newtonsoft.Json.JsonConvert.SerializeObject(JsonObj, Newtonsoft.Json.Formatting.Indented); File.WriteAllText(path, output, UTF8Encoding.UTF8); return; }