Newer
Older
IRIS_COLLECT_GA / IOM_cs / insertForm / service / impl / DataSynchServiceImpl.cs
yangqianqian on 1 Jun 2021 3 KB first commit
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);
            }
        }


    }
}