// +---------------------------------------------------------------------- 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']){ $new_product_img_id = explode(",",$list['new_product_img_id']); $file1 = UploadFile::where('file_id','in' ,$new_product_img_id)->select(); $list['newProductImg'] = $file1 ?: null; }else{ $list['newProductImg'] = null; } if($list['big_brand_img_id']){ $big_brand_img_id = explode(",",$list['big_brand_img_id']); $file2 = UploadFile::where('file_id','in' ,$big_brand_img_id)->select(); $list['bigBrandImg'] = $file2 ?: null; }else{ $list['bigBrandImg'] = null; } if($list['new_people_order_img_id']){ $new_people_order_img_id = explode(",",$list['new_people_order_img_id']); $file3 = UploadFile::where('file_id','in' ,$new_people_order_img_id)->select(); $list['newPeopleOrderImg'] = $file3 ?: null; }else{ $list['newPeopleOrderImg'] = null; } if($list['presale_img_id']){ $presale_img_id = explode(",",$list['presale_img_id']); $file3 = UploadFile::where('file_id','in' ,$presale_img_id)->select(); $list['presaleImg'] = $file3 ?: null; }else{ $list['presaleImg'] = 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); } }