Beispiel #1
0
        public tokenResult Authorization(tokenRequestDTO access)
        {
            WebRequest request;
            Stream     dataStream;
            String     url = access.PythonServiceBaseURL + "/prediction_service/token";

            // Create a request using a URL that can receive a post.

            request = WebRequest.Create(url);



            // Set the Method property of the request to POST.
            request.Method = "GET";


            request.ContentType = "application/json";

            NetworkCredential myCred = new NetworkCredential(access.userNameForExternalPythonService,
                                                             access.passwordForExternalPythonService);

            request.Credentials = myCred;
            // Get the original response.
            WebResponse response = request.GetResponse();

            var Status = ((HttpWebResponse)response).StatusDescription;

            // Get the stream containing all content returned by the requested server.
            dataStream = response.GetResponseStream();

            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);

            // Read the content fully up to the end.
            string responseFromServer = reader.ReadToEnd();

            try
            {
                var obj = new tokenResult();
                obj = (tokenResult)JsonConvert.DeserializeObject(responseFromServer, typeof(tokenResult));
                //obj = (tokenResult)new JavaScriptSerializer().Deserialize(responseFromServer, typeof(tokenResult));
                // Logger.Info("Authorization Module Module :: Token Granted");
                return(obj);
            }
            catch (Exception e)
            {
                //Logger.Info("Authorization Module Module :: User Not Found");
                return(new tokenResult());
            }
        }
        /// <summary>
        /// 获取用户访问小程序数据日趋势
        /// </summary>
        public void GetAnalysisDailyVisitTrend()
        {
            try
            {
                var rep = ContainerManager.Resolve <IEfRepository>();
                LoggerHelper.WriteLogInfo($"[GetAnalysisDailyVisitTrend]:******进入方法!!******");

                string getApiTokenUrlStr = getApiTokenUrl + "&appid=" + xappid + "&secret=" + xappsecret;
                LoggerHelper.WriteLogInfo($"[GetAnalysisDailyVisitTrend]:getApiTokenUrl:" + getApiTokenUrlStr);
                //获取access_Token
                string tokenresultStr =
                    HttpWebResponseUtil.CreateGetHttpResponse(getApiTokenUrl, null, null, null);

                LoggerHelper.WriteLogInfo($"[GetAnalysisDailyVisitTrend]:获取access_Token:" + tokenresultStr);
                tokenResult model = JsonConvert.DeserializeObject <tokenResult>(tokenresultStr);

                string beforedate = DateTime.Now.AddDays(-1).ToString("yyyyMMdd");
                string postJosn   = "{\"begin_date\":\"" + beforedate + "\",\"end_date\":\"" + beforedate + "\"}";
                LoggerHelper.WriteLogInfo($"[GetAnalysisDailyVisitTrend]:analysisDailyVisitTrendUrl 参数传递:" + postJosn);

                //调用小程序接口
                string analysisDailyVisitTrendUrlStr = analysisDailyVisitTrendUrl + model.access_token;
                string dataresult = HttpWebResponseUtil.CreatePostHttpResponse(analysisDailyVisitTrendUrlStr, beforedate,
                                                                               null, null, Encoding.UTF8, null);

                LoggerHelper.WriteLogInfo($"[GetAnalysisDailyVisitTrend]:analysisDailyVisitTrendUrl 返回值:" + dataresult);

                Rootobject rootmodel = JsonConvert.DeserializeObject <Rootobject>(dataresult);
                LoggerHelper.WriteLogInfo($"[GetAnalysisDailyVisitTrend]:访问人数:" + rootmodel.list[0].visit_uv);
                if (rootmodel != null)
                {
                    var dailyVisit = rep.FirstOrDefault <AnalysisDailyVisitTrend>(s => s.ref_date == beforedate);
                    if (dailyVisit == null)
                    {
                        var newVisit = new AnalysisDailyVisitTrend();
                        newVisit.ref_date          = beforedate;
                        newVisit.session_cnt       = rootmodel.list[0].session_cnt;
                        newVisit.visit_pv          = rootmodel.list[0].visit_pv;
                        newVisit.visit_uv          = rootmodel.list[0].visit_uv;
                        newVisit.visit_uv_new      = rootmodel.list[0].visit_uv_new;
                        newVisit.stay_time_uv      = rootmodel.list[0].stay_time_uv;
                        newVisit.stay_time_session = rootmodel.list[0].stay_time_session;
                        newVisit.visit_depth       = rootmodel.list[0].visit_depth;
                        newVisit.Id         = Guid.NewGuid().ToString();
                        newVisit.IsDeleted  = 0;
                        newVisit.IsEnabled  = 0;
                        newVisit.CreateTime = (Convert.ToDateTime(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")));
                        rep.Insert(newVisit);
                        rep.SaveChanges();
                        LoggerHelper.WriteLogInfo($"[RemindMeet]:set HasReminded to 1");
                    }
                }

                //调小程序接口 保存至表单中
                //调用时日期都是前一天的
            }
            catch (Exception ex)
            {
                LoggerHelper.Error($"--------------------------------------------------------------------------------");
                LoggerHelper.Error($"[MSG]:{ex.Message};\n");
                LoggerHelper.Error($"[Source]:{ex.Source}\n");
                LoggerHelper.Error($"[StackTrace]:{ex.StackTrace}\n");
                LoggerHelper.Error($"[StackTrace]:{ex.TargetSite.Name}\n");
                LoggerHelper.Error($"[MethodName]:[[SSPC_One_HCP.WebApi.Jobs.wxAnalysisDailyVisitTrend.GetAnalysisDailyVisitTrend]]\n");
                LoggerHelper.Error($"--------------------------------------------------------------------------------");
                throw ex;
            }
        }