public function getColumns() { $criteria = clone self::$_criteria; $criteria->select = 'SUM(amount) AS amount'; $amount = $this->find($criteria)->amount; $criteria->select = 'SUM(ROUND((CASE WHEN status=0 OR status=5 THEN 0 WHEN channel="nowPay" AND device_type="02" THEN amount*0.02 WHEN channel="nowPay" THEN amount*0.06 ELSE amount*0.012 END) / 100, 2)) AS amount'; $fee = $this->find($criteria)->amount; $columns = array('id', array('name' => 'user_id', 'value' => '$data->user->getCompetitionName()'), array('name' => 'channel', 'value' => '$data->channel', 'filter' => Pay::getChannels()), array('name' => 'type', 'value' => '$data->getTypeText()', 'filter' => Pay::getTypes()), array('name' => 'amount', 'value' => 'number_format($data->amount / 100, 2)', 'footer' => number_format($amount / 100, 2)), array('name' => 'fee', 'footer' => $fee, 'filter' => false, 'header' => '手续费'), array('name' => 'create_time', 'type' => 'raw', 'value' => 'date("Y-m-d H:i:s", $data->create_time)', 'filter' => false), array('name' => 'update_time', 'type' => 'raw', 'value' => 'date("Y-m-d H:i:s", $data->update_time)', 'filter' => false), array('name' => 'status', 'type' => 'raw', 'value' => '$data->getStatusText()', 'filter' => Pay::getAllStatus())); if ($this->type !== '') { switch ($this->type) { case self::TYPE_REGISTRATION: array_splice($columns, 4, 0, array(array('name' => 'type_id', 'header' => Yii::t('common', 'Competition'), 'value' => '$data->competition->name_zh', 'filter' => Competition::getRegistrationCompetitions()))); break; } } return $columns; }