public static function generateData($accountId, $memberPropertyId, $year, $quarter, $propertyOperate) { $statsQuarterly = ModelStatsMemberCampaignLogDaily::getPropAvgTradeQuarterly($accountId, (string) $memberPropertyId, $year, $quarter); $statsAvg = []; foreach ($statsQuarterly as $stats) { $propValueKey = 'memProperty.' . $memberPropertyId; if (empty($stats[$propValueKey])) { continue; } $propId = $propertyOperate; $propValue = $stats[$propValueKey]; $avg = $stats['avg']; $statsAvg = ModelStatsMemberPropAvgTradeQuarterly::getByPropAndDate($accountId, $propId, $propValue, $year, $quarter); if (!empty($statsAvg)) { $statsAvg->avg = $avg; } else { $statsAvg = new ModelStatsMemberPropAvgTradeQuarterly(); $statsAvg->propId = $propId; $statsAvg->propValue = $propValue; $statsAvg->avg = $avg; $statsAvg->year = $year; $statsAvg->quarter = $quarter; $statsAvg->accountId = $accountId; } try { $statsAvg->save(); } catch (Exception $e) { ResqueUtil::log(['Update StatsMemberPropAvgTradeQuarterly error' => $e->getMessage(), 'StatsMemberPropAvgTradeQuarterly' => $statsAvg]); continue; } } }
public function actionProductOperatorAvg() { $params = $this->getQuery(); if (empty($params['year'])) { throw new BadRequestHttpException(Yii::t('common', 'parameters_missing')); } $accountId = $this->getAccountId(); $statsQuater = StatsMemberPropAvgTradeQuarterly::getByYearAndAccount($accountId, $params['year']); $avgData = []; foreach ($statsQuater as $stats) { if (empty($stats->propValue)) { $stats->propValue = self::NOT_SELECTED; } else { $stats->propValue = 'KLP ' . $stats->propValue; } $avgData[$stats->propValue][$stats->quarter] = $stats->avg; } $querters = [1, 2, 3, 4]; $date = []; $data = []; foreach ($querters as $querter) { $date[] = 'Q' . $querter; foreach ($avgData as $propValue => $avgs) { $data[$propValue][] = empty($avgs[$querter]) ? 0 : (double) sprintf("%.2f", $avgs[$querter]); } } return ['date' => $date, 'data' => $data]; }
public function actionIndex($accountId) { if (empty($accountId)) { echo 'accountId is invaild' . PHP_EOL; exit; } $where['accountId'] = new \MongoId($accountId); // delete member info Member::getCollection()->remove($where); //delete MemberLogs MemberLogs::getCollection()->remove($where); //delete scoreHistory ScoreHistory::getCollection()->remove($where); //delete CampaignLog CampaignLog::getCollection()->remove($where); //delete GoodsExchangeLog GoodsExchangeLog::getCollection()->remove($where); //delete MemberStatistics MemberStatistics::getCollection()->remove($where); //delete ReMemberCampaign ReMemberCampaign::getCollection()->remove($where); //delete StatsCampaignProductCodeQuarterly StatsCampaignProductCodeQuarterly::getCollection()->remove($where); //delete StatsMemberCampaignLogDaily StatsMemberCampaignLogDaily::getCollection()->remove($where); //delete StatsMemberDaily StatsMemberDaily::getCollection()->remove($where); //delete StatsMemberGrowthMonthly StatsMemberGrowthMonthly::getCollection()->remove($where); //delete StatsMemberGrowthQuarterly StatsMemberGrowthQuarterly::getCollection()->remove($where); //delete StatsMemberMonthly StatsMemberMonthly::getCollection()->remove($where); //delete StatsMemberPropAvgTradeQuarterly StatsMemberPropAvgTradeQuarterly::getCollection()->remove($where); //delete StatsMemberPropMonthly StatsMemberPropMonthly::getCollection()->remove($where); //delete StatsMemberPropQuaterly StatsMemberPropQuaterly::getCollection()->remove($where); //delete StatsMemberPropTradeCodeAvgQuarterly StatsMemberPropTradeCodeAvgQuarterly::getCollection()->remove($where); //delete StatsMemberPropTradeCodeQuarterly StatsMemberPropTradeCodeQuarterly::getCollection()->remove($where); //delete StatsMemberPropTradeQuarterly StatsMemberPropTradeQuarterly::getCollection()->remove($where); //delete PromotionCodeAnalysis PromotionCodeAnalysis::getCollection()->remove($where); //delete order Order::getCollection()->remove($where); //delete stats member order StatsMemberOrder::getCollection()->remove($where); //delete stats order StatsOrder::getCollection()->remove($where); //delete MembershipDiscount MembershipDiscount::getCollection()->remove($where); //delete couponLog CouponLog::getCollection()->remove($where); echo 'delete data successful.' . PHP_EOL; }
public static function _setStatsMemberPropAvgTradeQuarterly($startTime, $endTime, $args) { $propertyOperate = $args['properties'][0]; $memberProperty = MemberProperty::getByPropertyId($args['accountId'], $propertyOperate); if (empty($memberProperty)) { LogUtil::error(['message' => 'Can not find the property:' . $propertyOperate], 'update_job'); } else { $memberPropertyId = $memberProperty->_id; $startQuarter = TimeUtil::getQuarter($startTime); $endQuarter = TimeUtil::getQuarter($endTime); for ($quarter = $startQuarter; $quarter <= $endQuarter; ++$quarter) { $year = date('Y', $startTime); $condition = ['accountId' => $args['accountId'], 'year' => $year, 'quarter' => $quarter]; ModelStatsMemberPropAvgTradeQuarterly::deleteAll($condition); StatsMemberPropAvgTradeQuarterly::generateData($args['accountId'], $memberPropertyId, $year, $quarter, $propertyOperate); LogUtil::info(['message' => $quarter . 'Run StatsMemberPropAvgTradeQuarterly'], 'update_job'); } } }