Coupon.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. /**
  3. *
  4. * @copyright ©2020 点小铺
  5. * @author hanj
  6. * @link: https://dyuit.com
  7. * Created by VSCode
  8. */
  9. namespace app\common\model;
  10. use app\common\library\helper;
  11. /**
  12. * 优惠券模型
  13. * Class Coupon
  14. * @package app\common\model
  15. */
  16. class Coupon extends BaseModel
  17. {
  18. protected $name = 'coupon';
  19. /**
  20. * 追加字段
  21. * @var array
  22. */
  23. protected $append = [
  24. 'state'
  25. ];
  26. /**
  27. * 优惠券状态 (是否可领取)
  28. * @param $value
  29. * @param $data
  30. * @return array
  31. */
  32. public function getStateAttr($value, $data)
  33. {
  34. if (isset($data['is_receive']) && $data['is_receive']) {
  35. return ['text' => '已领取', 'value' => 0];
  36. }
  37. if ($data['total_num'] > -1 && $data['receive_num'] >= $data['total_num']) {
  38. return ['text' => '已抢光', 'value' => 0];
  39. }
  40. if ($data['expire_type'] == 20 && ($data['end_time'] + 86400) < time()) {
  41. return ['text' => '已过期', 'value' => 0];
  42. }
  43. return ['text' => '', 'value' => 1];
  44. }
  45. /**
  46. * 优惠券颜色
  47. * @param $value
  48. * @return mixed
  49. */
  50. public function getColorAttr($value)
  51. {
  52. $status = [10 => 'blue', 20 => 'red', 30 => 'violet', 40 => 'yellow'];
  53. return ['text' => $status[$value], 'value' => $value];
  54. }
  55. /**
  56. * 优惠券类型
  57. * @param $value
  58. * @return mixed
  59. */
  60. public function getCouponTypeAttr($value)
  61. {
  62. $status = [10 => '满减券', 20 => '折扣券'];
  63. return ['text' => $status[$value], 'value' => $value];
  64. }
  65. /**
  66. * 折扣率
  67. * @param $value
  68. * @return mixed
  69. */
  70. public function getDiscountAttr($value)
  71. {
  72. return $value / 10;
  73. }
  74. /**
  75. * 有效期-开始时间
  76. * @param $value
  77. * @return mixed
  78. */
  79. public function getStartTimeAttr($value)
  80. {
  81. return ['text' => date('Y/m/d', $value), 'value' => $value];
  82. }
  83. /**
  84. * 有效期-结束时间
  85. * @param $value
  86. * @return mixed
  87. */
  88. public function getEndTimeAttr($value)
  89. {
  90. return ['text' => date('Y/m/d', $value), 'value' => $value];
  91. }
  92. /**
  93. * 修改器:折扣率
  94. * @param $value
  95. * @return mixed
  96. */
  97. public function setDiscountAttr($value)
  98. {
  99. return helper::bcmul($value, 10, 0);
  100. }
  101. /**
  102. * 优惠券详情
  103. * @param $coupon_id
  104. * @return null|static
  105. * @throws \think\exception\DbException
  106. */
  107. public static function detail($coupon_id)
  108. {
  109. return self::get($coupon_id);
  110. }
  111. }