private function getOrderArray(ARSet $orders) { $orderArray = $orders->toArray(); $ids = array(); foreach ($orderArray as $key => $order) { $ids[$order['ID']] = $key; } ClassLoader::import('application.model.order.OrderNote'); $f = new ARSelectFilter(new INCond(new ARFieldHandle('OrderNote', 'orderID'), empty($ids) ? array(-1) : array_keys($ids))); $f->mergeCondition(new EqualsCond(new ARFieldHandle('OrderNote', 'isAdmin'), 1)); $f->mergeCondition(new EqualsCond(new ARFieldHandle('OrderNote', 'isRead'), 0)); $f->setGrouping(new ARFieldHandle('OrderNote', 'orderID')); $query = new ARSelectQueryBuilder(); $query->setFilter($f); $query->includeTable('OrderNote'); $query->removeFieldList(); $query->addField('COUNT(*)', null, 'cnt'); $query->addField('orderID'); foreach (ActiveRecordModel::getDataBySQL($query->getPreparedStatement(ActiveRecord::getDBConnection())) as $res) { $orderArray[$ids[$res['orderID']]]['unreadMessageCount'] = $res['cnt']; } return $orderArray; }