// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\store\model\card; use app\common\model\card\CardPrint as CardPrintModel; /** * 兑换卡打印记录模型 * Class CardPrint * @package app\store\model\card */ class CardPrint extends CardPrintModel { /** * 获取兑换卡打印记录列表 * @param array $param * @return \think\Paginator */ public function getList(array $param = []) { // 设置查询条件 $filter = $this->getFilter($param); // 获取列表数据 $list = $this->alias('print') ->field('print.*') ->where($filter) ->order(['print.create_time' => 'desc']) ->paginate(15); // 生成下载url foreach ($list as &$item) { $item['download_url'] = base_url() . $item['file_path']; } return $list; } /** * 设置查询条件 * @param array $param * @return array */ private function getFilter(array $param): array { // 设置默认的检索数据 $params = $this->setQueryDefaultValue($param, [ 'batch' => '', // 批号 'betweenTime' => [] // 起止时间 ]); // 检索查询条件 $filter = []; // 起止时间 if (!empty($params['betweenTime'])) { $times = between_time($params['betweenTime']); $filter[] = ['print.create_time', '>=', $times['start_time']]; $filter[] = ['print.create_time', '<', $times['end_time'] + 86400]; } !empty($params['batch']) && $filter[] = ['batch', 'like', '%' . trim($params['batch']) . '%']; return $filter; } /** * 切换下载状态 * @param $is_download * @return false|int */ public function changeStatus($is_download) { return $this->save(['is_download' => $is_download, 'download_time' => time()]); } }