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); }
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); }