public static function generateStatsMemberPropTradeQuarterlyData($propertyId, $condition) { $campaignLogDailys = StatsMemberCampaignLogDaily::getCollection()->aggregate(['$match' => $condition], ['$group' => ['_id' => ['propValue' => '$memProperty.' . $propertyId, 'memberId' => '$memberId']]], ['$group' => ['_id' => ['propValue' => '$_id.propValue'], 'total' => ['$sum' => 1]]]); $rows = []; if (!empty($campaignLogDailys)) { foreach ($campaignLogDailys as $item) { $rows[] = ['propId' => $propertyId, 'propValue' => $item['_id']['propValue'], 'total' => $item['total'], 'year' => $condition['year'], 'quarter' => $condition['quarter'], 'accountId' => $condition['accountId']]; } StatsMemberPropTradeQuarterly::batchInsert($rows); unset($rows); } }