<?php namespace app\admin\model\shopro; use app\admin\model\shopro\Common; use app\admin\model\shopro\goods\Goods; use app\admin\model\shopro\goods\SkuPrice; use addons\shopro\facade\Activity as ActivityFacade; class Cart extends Common { protected $name = 'shopro_cart'; // 追加属性 protected $append = [ ]; /** * 获取器获取所有活动 * * @param string $value * @param array $data * @return array */ public function getActivitiesAttr($value, $data) { $activities = ActivityFacade::getGoodsActivitys($data['id']); return $activities; } public function getStatusAttr($value, $data) { $status = 'normal'; if (!$this->goods || !is_null($this->goods->deletetime) || !$this->sku_price) { $status = 'deleted'; // 已删除 } else if ($this->goods->status == 'down' || $this->sku_price->status == 'down') { $status = 'down'; // 已下架 } return $status; } public function getTagsAttr($value, $data) { $tags = [ 'activity' => [], ]; $activities = $this->activities; foreach ($activities as $activity) { $tags['activity'][] = $activity['type_text'] . $activity['status_text']; } if ($this->sku_price && $this->sku_price->price < $data['snapshot_price']) { // 当前规格价格,低于加入购物车时候的价格,则提示商品比加入时降价 $tags['price'] = '距加入降 ¥ ' . bcsub($data['snapshot_price'], $this->sku_price->price, 2); } } public function goods() { return $this->belongsTo(Goods::class, 'goods_id'); } public function skuPrice() { return $this->belongsTo(SkuPrice::class, 'goods_sku_price_id'); } }