255], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'mall_id' => '商品ID', 'goods_id' => '商品ID', 'url' => '商品主图', 'chain_url' => '供应链端商品主图', ]; } /** * 获取详情 * * @param integer $goods_id * @return SupplyChainGoodsPic|null */ public static function getGoodsPic(int $goods_id) { return static::find() ->select(['id', 'mall_id', 'goods_id', 'chain_url', 'url']) ->where(compact('goods_id')) ->orderBy('id desc') ->one(); } /** * 商品主图 * * @param Goods $goods * @return SupplyChainGoodsPic|false */ public static function coverPic(Goods $goods) { $pic = static::getGoodsPic($goods->id); if (empty($pic)) return false; return $pic; } /** * 商品主图是否变更 * * @param Goods $goods * @param SupplyChainGoodsPic $goods_pic * @return boolean */ public static function coverPicIsChange(Goods $goods, SupplyChainGoodsPic $goods_pic) { return $goods_pic->url != $goods->cover_pic; } /** * 修改 * * @param Goods $goods * @param string $url * @param SupplyChainGoodsPic|false $chain_pic * @return void */ public static function updateUrl(Goods $goods, string $url, $chain_pic) { if ($url) { if (!$chain_pic) $chain_pic = new static(); $chain_pic->goods_id = $goods->id; $chain_pic->mall_id = $goods->mall_id; $chain_pic->chain_url = $goods->cover_pic; $chain_pic->url = $url; $goods->cover_pic = $url; $chain_pic->save(); $goods->save(); } else { if ($goods->cover_pic != $chain_pic->url) { $goods->cover_pic = $chain_pic->url; $goods->save(); } } } }