using IOM_cs.insertForm.data.dto; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Reflection; using System.Text; using Newtonsoft.Json; using IOM_cs.irisDb.service; using IOM_cs.irisDb.service.mySqlImpl; using IOM_cs.irisDb; namespace IOM_cs.insertForm.service.impl { public class DataSynchServiceImpl : IDataSynchService { public int synchIrisCollData(List<RequestData> requestDatas) { int code = 0; String ip=ConfigHelper.GetAppConfig("SyServerIp"); String port= ConfigHelper.GetAppConfig("SyServerPort"); String synchUrl = "http://"+ip+":"+port+"/iris/regIris"; try { foreach(RequestData requestData in requestDatas) { String jsonParam = buildParam(requestData.RequestDataBody); LogHelper.WriteLog(MethodBase.GetCurrentMethod().DeclaringType, jsonParam); var request = (HttpWebRequest)WebRequest.Create(synchUrl); request.Method = "POST"; request.ContentType = "application/json;charset=UTF-8"; byte[] byteData = Encoding.UTF8.GetBytes(jsonParam); int length = byteData.Length; request.ContentLength = length; Stream writer = request.GetRequestStream(); writer.Write(byteData, 0, length); writer.Close(); //获取输出 var response = (HttpWebResponse)request.GetResponse(); var responseString = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")).ReadToEnd(); LogHelper.WriteLog(MethodBase.GetCurrentMethod().DeclaringType, requestData.RequestDataBody.request_id + "上传结果:" + responseString.ToString()); ReponseData rb = JsonConvert.DeserializeObject<ReponseData>(responseString); dealCollData(rb, requestData.IrId); LogHelper.WriteLog(MethodBase.GetCurrentMethod().DeclaringType, requestData.RequestDataBody.request_id + "修改本地数据库成功"); } } catch (Exception ex) { LogHelper.WriteLog(MethodBase.GetCurrentMethod().DeclaringType, "上传失败:" + ex.Message); code = -1; } return code; } private String buildParam(RequestDataBody requestDataBody) { return JsonConvert.SerializeObject(requestDataBody); } private void dealCollData(ReponseData reponseData,long irid) { IIrisDataCollService iIrisDataCollService = (IIrisDataCollService)DbService.getEntity("IIrisDataCollService"); if (reponseData.status_code == "1000") { iIrisDataCollService.UpdateColldata(irid,"1",FormLogin.user.Name,reponseData.result.xxms); } else { iIrisDataCollService.UpdateColldata(irid, "3", FormLogin.user.Name, reponseData.result.xxms); } } } }