Пример #1
0
        public void ArticleTotalTest()
        {
            var accessToken = AccessTokenContainer.GetAccessToken(_appId);

            var result = AnalysisApi.GetArticleTotal(accessToken, beginData, endData);

            Assert.IsNotNull(result);
            Assert.AreEqual(result.errcode, ReturnCode.请求成功);
        }
Пример #2
0
        public void GetUserCumulateTest()
        {
            var accessToken = AccessTokenContainer.GetAccessToken(_appId);

            var result = AnalysisApi.GetUserCumulate(accessToken, beginData, endData);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.list[0].ref_date != null);
        }
Пример #3
0
        public void GetUpStreamMsgDistMonthTest()
        {
            var accessToken = AccessTokenContainer.GetAccessToken(_appId);

            var result = AnalysisApi.GetUpStreamMsgDistMonth(accessToken, beginData, endData);

            Assert.IsNotNull(result);
            Assert.AreEqual(result.errcode, ReturnCode.请求成功);
        }
Пример #4
0
        public void GetInterfaceSummaryHourTest()
        {
            var accessToken = AccessTokenContainer.GetAccessToken(_appId);

            var result = AnalysisApi.GetInterfaceSummaryHour(accessToken, beginData, endData);

            Assert.IsNotNull(result);
            Assert.AreEqual(result.errcode, ReturnCode.请求成功);
        }
Пример #5
0
 /// <summary>
 /// 鹰眼轨迹服务接口
 /// </summary>
 /// <param name="ak">用户的ak</param>
 /// <param name="serviceId">service的ID,service 的唯一标识</param>
 /// <param name="sk">sn签名的验证方式的 Security Key</param>
 public YingYanApi(string ak, string serviceId, string sk = null)
 {
     this.Ak   = ak;
     ServiceId = serviceId;
     this.Sk   = sk;
     _client   = new HttpClient();
     Entity    = new EntityApi(this);
     Track     = new TrackApi(this);
     Fence     = new FenceApi(this);
     Analysis  = new AnalysisApi(this);
     Export    = new ExportApi(this);
     _client   = new HttpClient {
         BaseAddress = new Uri(Url)
     };
     _client.DefaultRequestHeaders.Accept.Clear();
     _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 }
Пример #6
0
        public ActionResult Index(Analysis_IndexVD vd_Form)
        {
            IBaseAnalysisResult result1 = null;

            //if (ModelState.IsValid)
            //{

            //    var strongResult = new AnalysisResultJson<ArticleSummaryItem>();
            //    result1 = strongResult;//yin yong
            //    (result1 as AnalysisResultJson<ArticleSummaryItem>).list.Add(new ArticleSummaryItem());
            //}

            //if (result1 is AnalysisResultJson<ArticleSummaryItem>)
            //{
            //    var Strong = result1 as AnalysisResultJson<ArticleSummaryItem>;
            //   // Strong.list.First().ori_page_read_count
            //}

            IBaseAnalysisResult result = null;

            var accessToken = AccessTokenContainer.TryGetAccessToken(vd_Form.AppId, vd_Form.AppSecret);

            switch (vd_Form.AnalysisType)
            {
            case AnalysisType.图文群发每日数据:
                //var strongResult = new AnalysisResultJson<ArticleSummaryItem>();
                //result = strongResult;

                /*
                 * 如果时间跨度不符合官方要求,会返回:微信Post请求发生错误!错误代码:61501,说明:date range error hint: [43R2TA0767e541]
                 */
                result         = AnalysisApi.GetArticleSummary(accessToken, vd_Form.StartDate, vd_Form.EndDate);
                vd_Form.Result = (result as AnalysisResultJson <ArticleSummaryItem>).list;
                break;

            //case AnalysisType.图文群发总数据:
            //    result = new AnalysisResultJson<ArticleTotalItem>();
            //    result = AnalysisApi.GetArticleTotal(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 2:
            //    result = result as UserReadResultJson;
            //    result = AnalysisApi.GetUserRead(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 3:
            //    result = result as UserReadHourResultJson;
            //    result = AnalysisApi.GetUserReadHour(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 4:
            //    result = result as UserShareResultJson;
            //    result = AnalysisApi.GetUserShare(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 5:
            //    result = result as UserShareHourResultJson;
            //    result = AnalysisApi.GetUserShareHour(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 6:
            //    result = result as UserSummaryResultJson;
            //    result = AnalysisApi.GetInterfaceSummary(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 7:
            //    result = result as UserCumulateResultJson;
            //    result = AnalysisApi.GetInterfaceSummaryHour(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 8:
            //    result = result as UpStreamMsgResultJson;
            //    result = AnalysisApi.GetUpStreamMsg(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 9:
            //    result = result as UpStreamMsgHourResultJson;
            //    result = AnalysisApi.GetUpStreamMsgHour(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 10:
            //    result = result as UpStreamMsgWeekResultJson;
            //    result = AnalysisApi.GetUpStreamMsgWeek(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 11:
            //    result = result as UpStreamMsgMonthResultJson;
            //    result = AnalysisApi.GetUpStreamMsgMonth(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 12:
            //    result = result as UpStreamMsgDistResultJson;
            //    result = AnalysisApi.GetUpStreamMsgDist(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 13:
            //    result = result as UpStreamMsgDistWeekResultJson;
            //    result = AnalysisApi.GetUpStreamMsgDistWeek(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 14:
            //    result = result as UpStreamMsgDistMonthResultJson;
            //    result = AnalysisApi.GetUpStreamMsgDistMonth(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 15:
            //    result = result as UserSummaryResultJson;
            //    result = AnalysisApi.GetUserSummary(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            //case 16:
            //    result = result as UserCumulateResultJson;
            //    result = AnalysisApi.GetUserCumulate(accessToken, vd_Form.StartDate, vd_Form.EndDate);
            //    break;
            default:
                break;
            }

            //result.ListObj;

            return(View(vd_Form));
        }
Пример #7
0
 /// <summary>
 /// 文章阅读数
 /// </summary>
 /// <param name="token"></param>
 /// <param name="start"></param>
 /// <param name="end"></param>
 /// <returns></returns>
 public async Task <AnalysisResultJson <ArticleSummaryItem> > GetArticleSummaryAsync(string appId, string start, string end)
 {
     return(await AnalysisApi.GetArticleSummaryAsync(appId, start, end));
 }
Пример #8
0
 /// <summary>
 /// 粉丝增减数据:一天可能有多条,根据user_source分组
 /// </summary>
 /// <param name="token"></param>
 /// <param name="start"></param>
 /// <param name="end"></param>
 /// <returns></returns>
 public async Task <AnalysisResultJson <UserSummaryItem> > GetUserSummaryAsync(string token, string start, string end)
 {
     return(await AnalysisApi.GetUserSummaryAsync(token, start, end));
 }
Пример #9
0
        public ActionResult Index()
        {
            //如果没有配置租户信息,则必须前去配置
            if (!HasConfigWeiChat && IsSystemIenant)
            {
                return(RedirectToAction("WeiChatAppConfig", "Account_Tenant",
                                        new { area = "SystemAdmin", tenantId = TenantId }));
            }

            #region 获取最新关注的用户

            var lastUsers = GetLastUsers(8);
            ViewBag.LastUsers = lastUsers;

            #endregion

            var cache = WeiChat.Infrastructure.Cache.CacheManager.Current;

            #region 累积关注数

            {
                var value = cache.GetByTenant <int>("UserSummaryCount");
                if (value == default(int))
                {
                    value = SafeReturnHelper.SafeReturn(() =>
                    {
                        //TODO:切换SDK
                        var userCumulateData = AnalysisApi.GetUserCumulate(WeChatConfigManager.Current.GetAccessToken(),
                                                                           DateTime.Now.AddDays(-5).ToString("yyyy-MM-dd"),
                                                                           DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"));

                        if ((userCumulateData.list != null) && (userCumulateData.list.Count > 0))
                        {
                            return(Convert.ToInt32(userCumulateData.list.First().cumulate_user));
                        }
                        return(default(int));
                    });
                }
                cache.AddOrUpdateByTenant("UserSummaryCount", value, TimeSpan.FromHours(12));
                ViewBag.UserSummaryCount = value;
            }

            #endregion

            #region 取消关注数、新关注数、净增用户数

            {
                //取消关注数
                var cancelUserCount = cache.GetByTenant <int>("CancelUserCount");
                //新关注数
                var newUserCount = cache.GetByTenant <int>("NewUserCount");
                //净增用户数
                var growUserCount = cache.GetByTenant <int>("GrowUserCount");
                if (newUserCount == default(int))
                {
                    var value =
                        SafeReturnHelper.SafeReturn(
                            () =>
                    {
                        //TODO:切换SDK
                        return(AnalysisApi.GetUserSummary(WeChatConfigManager.Current.GetAccessToken(),
                                                          DateTime.Now.AddDays(-5).ToString("yyyy-MM-dd"),
                                                          DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")));
                    });
                    if (value != null)
                    {
                        cancelUserCount = value.list.Select(p => Convert.ToInt32(p.cancel_user)).Sum();
                        newUserCount    = value.list.Select(p => Convert.ToInt32(p.new_user)).Sum();
                        growUserCount   = Convert.ToInt32(newUserCount) - Convert.ToInt32(cancelUserCount);
                        cache.AddOrUpdateByTenant("CancelUserCount", cancelUserCount, TimeSpan.FromHours(12));
                        cache.AddOrUpdateByTenant("NewUserCount", newUserCount, TimeSpan.FromHours(12));
                        cache.AddOrUpdateByTenant("GrowUserCount", growUserCount, TimeSpan.FromHours(12));
                    }
                }
                //取消关注数
                ViewBag.CancelUserCount = cancelUserCount;
                //新关注数
                ViewBag.NewUserCount = newUserCount;
                //净增用户数
                ViewBag.GrowUserCount = growUserCount;
            }

            #endregion

            ViewBag.ChartEnable = false;
            //如果粉丝量大于20万,禁用部分图表
            if (cache.GetByTenant <int>("UserSummaryCount") < 200000)
            {
                if (db.WeiChat_Users.Count() < 200000)
                {
                    ViewBag.ChartEnable = true;
                }
            }
            return(View());
        }