|
|
<?php |
|
|
|
|
|
namespace app\common\model; |
|
|
|
|
|
use think\Config as ThinkConfig; |
|
|
use think\Model; |
|
|
use think\Db; |
|
|
use think\Cache; |
|
|
|
|
|
class Base extends Model |
|
|
{ |
|
|
protected $tablePrefix; |
|
|
protected $primaryId; |
|
|
protected $readFromMaster; |
|
|
|
|
|
|
|
|
protected function initialize() |
|
|
{ |
|
|
|
|
|
parent::initialize(); |
|
|
|
|
|
$this->tablePrefix = isset($this->tablePrefix) ? $this->tablePrefix : ThinkConfig::get('database.prefix'); |
|
|
$this->primaryId = isset($this->primaryId) ? $this->primaryId : $this->name . '_id'; |
|
|
$this->readFromMaster = isset($this->readFromMaster) ? $this->readFromMaster : false; |
|
|
|
|
|
if (method_exists($this, 'createTableIfNotExists')) { |
|
|
$this->createTableIfNotExists(); |
|
|
} |
|
|
} |
|
|
|
|
|
public function getCountByCond($cond) |
|
|
{ |
|
|
$query_object = $this; |
|
|
if ($this->readFromMaster === true) { |
|
|
$query_object = $query_object->master(); |
|
|
} |
|
|
return (int)$query_object->where($cond)->count(); |
|
|
} |
|
|
|
|
|
public function getListByCond($offset, $limit, $cond, $orderby = '', $fields = "*", $transform = false) |
|
|
{ |
|
|
$orderby = $orderby ?: ($this->primaryId . " DESC"); |
|
|
$query_object = $this; |
|
|
if ($this->readFromMaster === true) { |
|
|
$query_object = $query_object->master(); |
|
|
} |
|
|
$list = $query_object->where($cond)->field($fields)->order($orderby)->limit($offset . ',' . $limit)->select(); |
|
|
if (!$list) { |
|
|
return []; |
|
|
} |
|
|
$final = []; |
|
|
foreach ($list as $row) { |
|
|
$row_array = $row->getData(); |
|
|
if ($transform !== false) { |
|
|
$row_array = $this->transformRow($row_array, $transform); |
|
|
} |
|
|
$final[] = $row_array; |
|
|
} |
|
|
return $final; |
|
|
} |
|
|
|
|
|
public function transformRow($row, $extends = []) { |
|
|
return $row; |
|
|
} |
|
|
} |