Cart.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace app\admin\model\shopro;
  3. use app\admin\model\shopro\Common;
  4. use app\admin\model\shopro\goods\Goods;
  5. use app\admin\model\shopro\goods\SkuPrice;
  6. use addons\shopro\facade\Activity as ActivityFacade;
  7. class Cart extends Common
  8. {
  9. protected $name = 'shopro_cart';
  10. // 追加属性
  11. protected $append = [
  12. ];
  13. //选中状态
  14. const CHOOSE_ON = 1; //选中
  15. const CHOOSE_OFF = 0; //未选中
  16. /**
  17. * 获取器获取所有活动
  18. *
  19. * @param string $value
  20. * @param array $data
  21. * @return array
  22. */
  23. public function getActivitiesAttr($value, $data)
  24. {
  25. $activities = ActivityFacade::getGoodsActivitys($data['id']);
  26. return $activities;
  27. }
  28. public function getStatusAttr($value, $data)
  29. {
  30. $status = 'normal';
  31. if (!$this->goods || !is_null($this->goods->deletetime) || !$this->sku_price) {
  32. $status = 'deleted'; // 已删除
  33. } else if ($this->goods->status == 'down' || $this->sku_price->status == 'down') {
  34. $status = 'down'; // 已下架
  35. }
  36. return $status;
  37. }
  38. public function getTagsAttr($value, $data)
  39. {
  40. $tags = [
  41. 'activity' => [],
  42. ];
  43. $activities = $this->activities;
  44. foreach ($activities as $activity) {
  45. $tags['activity'][] = $activity['type_text'] . $activity['status_text'];
  46. }
  47. if ($this->sku_price && $this->sku_price->price < $data['snapshot_price']) {
  48. // 当前规格价格,低于加入购物车时候的价格,则提示商品比加入时降价
  49. $tags['price'] = '距加入降 ¥ ' . bcsub($data['snapshot_price'], $this->sku_price->price, 2);
  50. }
  51. }
  52. public function goods()
  53. {
  54. return $this->belongsTo(Goods::class, 'goods_id');
  55. }
  56. public function skuPrice()
  57. {
  58. return $this->belongsTo(SkuPrice::class, 'goods_sku_price_id');
  59. }
  60. }