// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\common\model; use cores\BaseModel; use think\model\relation\HasOne; /** * 商家记录表模型 * Class Store * @package app\common\model */ class Store extends BaseModel { // 定义表名 protected $name = 'store'; // 定义主键 protected $pk = 'store_id'; /** * 关联logo图片 * @return HasOne */ public function logoImage(): HasOne { return $this->hasOne('UploadFile', 'file_id', 'logo_image_id'); } /** * 详情信息 * @param int $storeId * @return static|array|null */ public static function detail(int $storeId) { try { $list = self::withoutGlobalScope() ->with(['logoImage']) ->where('store_id', '=', $storeId) ->find(); if ($list) { if ($list['new_product_img_id']) { $img_ids = explode(",", $list['new_product_img_id']); $files = UploadFile::getFileList($img_ids); $list['newProductImg'] = $files ?: null; } else { $list['newProductImg'] = null; } if ($list['big_brand_img_id']) { $img_ids = explode(",", $list['big_brand_img_id']); $files = UploadFile::getFileList($img_ids); $list['bigBrandImg'] = $files ?: null; } else { $list['bigBrandImg'] = null; } if ($list['new_people_order_img_id']) { $img_ids = explode(",", $list['new_people_order_img_id']); $files = UploadFile::getFileList($img_ids); $list['newPeopleOrderImg'] = $files ?: null; } else { $list['newPeopleOrderImg'] = null; } if ($list['presale_img_id']) { $img_ids = explode(",", $list['presale_img_id']); $files = UploadFile::getFileList($img_ids); $list['presaleImg'] = $files ?: null; } else { $list['presaleImg'] = null; } if ($list['flash_sale_img_id']) { $img_ids = explode(",", $list['flash_sale_img_id']); $files = UploadFile::getFileList($img_ids); $list['flashSaleImg'] = $files ?: null; } else { $list['flashSaleImg'] = null; } if ($list['ranking_img_id']) { $img_ids = explode(",", $list['ranking_img_id']); $files = UploadFile::getFileList($img_ids); $list['rankingImg'] = $files ?: null; } else { $list['rankingImg'] = null; } } return $list ?? null; } catch (\Exception $e) { return null; } } /** * 获取列表数据 * @param bool $isRecycle 是否在回收站 * @return \think\Paginator * @throws \think\db\exception\DbException */ public function getList(bool $isRecycle = false): \think\Paginator { return $this->where('is_recycle', '=', (int)$isRecycle) ->where('is_delete', '=', 0) ->order(['create_time' => 'desc', $this->getPk()]) ->paginate(15); } }