コード例 #1
0
        private void RefreshCountSumData()
        {
            var wccmCollection = GetWCCMCollection();
            var mmCollection   = mongo.GetMongoCollection <MerchantModel>();
            var cmCollection   = mongo.GetMongoCollection <WeChatCountAppModel>();
            var cmList         = cmCollection.Find(Builders <WeChatCountAppModel> .Filter.Empty).ToList();

            if (cmList != null && cmList.Count > 30)
            {
                cmCollection.DeleteMany(Builders <WeChatCountAppModel> .Filter.Lte(x => x.LastChangeTime, cmList[29].LastChangeTime));
            }
            var list       = (wccmCollection.Find(Builders <WeChatCountModel> .Filter.Empty)).ToList();
            var countModel = new WeChatCountAppModel();

            foreach (var wccm in list)
            {
                try
                {
                    var merchant      = (mmCollection.Find(x => x.uid == wccm.uid)).FirstOrDefault();
                    var merchantCount = GetMerchantCount(wccm, merchant, countModel);

                    var uniacid = int.Parse(wccm.uniacid);
                    var app     = new AppCountModel {
                        AppName = wccm.AppName, uniacid = uniacid
                    };
                    if (merchantCount.AppCountModels == null)
                    {
                        merchantCount.AppCountModels = new List <AppCountModel> {
                            app
                        };
                    }
                    else
                    {
                        merchantCount.AppCountModels.Add(app);
                    }
                    var wccmData = wccm.CountDataList.Find(x => x.DataType == WeChatCountType.昨天的概况);
                    if (wccmData != null)
                    {
                        var dataModel = JsonConvert.DeserializeObject <WeChatCountBaseJsonModel>(wccmData.CountData);
                        app.AccountSum                 = dataModel.list[0].visit_total;
                        app.ShareAccountSum            = dataModel.list[0].share_uv;
                        app.ShareSum                   = dataModel.list[0].share_pv;
                        merchantCount.ShareSum        += app.ShareSum;
                        merchantCount.ShareAccountSum += app.ShareAccountSum;
                        merchantCount.AccountSum      += app.AccountSum;
                        countModel.AccountSum         += app.AccountSum;
                        countModel.ShareAccountSum    += app.ShareAccountSum;
                        countModel.ShareSum           += app.ShareSum;
                    }
                }
                catch (Exception)
                {
                    continue;
                }
            }
            cmCollection.InsertOne(countModel);
        }
コード例 #2
0
        private MerchantCountAppModel GetMerchantCount(WeChatCountModel wccm, MerchantModel merchant, WeChatCountAppModel countModel)
        {
            MerchantCountAppModel merchant2 = null;

            if (countModel.MerchantCountAppModels != null)
            {
                merchant2 = countModel.MerchantCountAppModels.Find(x => x.uid == wccm.uid);
            }
            else
            {
                countModel.MerchantCountAppModels = new List <MerchantCountAppModel>();
            }
            if (merchant2 == null)
            {
                merchant2 = new MerchantCountAppModel {
                    uid = wccm.uid, MerchantName = merchant.MerchatName
                };
                countModel.MerchantCountAppModels.Add(merchant2);
            }
            return(merchant2);
        }