UserCoupon.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace app\common\model\plus\coupon;
  3. //use think\Hook;
  4. use app\common\model\BaseModel;
  5. /**
  6. * 用户优惠券模型
  7. */
  8. class UserCoupon extends BaseModel
  9. {
  10. protected $name = 'user_coupon';
  11. protected $pk = 'user_coupon_id';
  12. /**
  13. * 追加字段
  14. * @var array
  15. */
  16. protected $append = ['state'];
  17. /**
  18. * 关联用户表
  19. */
  20. public function user()
  21. {
  22. return $this->belongsTo('app\common\model\user\User');
  23. }
  24. /**
  25. * 关联优惠券表
  26. */
  27. public function coupon()
  28. {
  29. return $this->belongsTo('app\common\model\plus\coupon\Coupon');
  30. }
  31. /**
  32. * 关联供应商表
  33. */
  34. public function supplier()
  35. {
  36. return $this->belongsTo('app\\common\\model\\supplier\\Supplier', 'shop_supplier_id', 'shop_supplier_id')
  37. ->field(['shop_supplier_id', 'name']);
  38. }
  39. /**
  40. * 优惠券状态
  41. */
  42. public function getStateAttr($value, $data)
  43. {
  44. if ($data['is_use']) {
  45. return ['text' => '已使用', 'value' => 0];
  46. }
  47. if ($data['is_expire']) {
  48. return ['text' => '已过期', 'value' => 0];
  49. }
  50. return ['text' => '', 'value' => 1];
  51. }
  52. /**
  53. * 优惠券颜色
  54. */
  55. public function getColorAttr($value)
  56. {
  57. $status = [10 => 'blue', 20 => 'red', 30 => 'violet', 40 => 'yellow'];
  58. return ['text' => $status[$value], 'value' => $value];
  59. }
  60. /**
  61. * 优惠券类型
  62. */
  63. public function getCouponTypeAttr($value)
  64. {
  65. $status = [10 => '满减券', 20 => '折扣券'];
  66. return ['text' => $status[$value], 'value' => $value];
  67. }
  68. /**
  69. * 有效期-开始时间
  70. */
  71. public function getStartTimeAttr($value)
  72. {
  73. return ['text' => date('Y/m/d', $value), 'value' => $value];
  74. }
  75. /**
  76. * 有效期-结束时间
  77. */
  78. public function getEndTimeAttr($value)
  79. {
  80. return ['text' => date('Y/m/d', $value), 'value' => $value];
  81. }
  82. /**
  83. * 优惠券详情
  84. */
  85. public static function detail($coupon_id)
  86. {
  87. return (new static())->find($coupon_id);
  88. }
  89. /**
  90. * 设置优惠券使用状态
  91. */
  92. public static function setIsUse($couponId, $isUse = true)
  93. {
  94. $model = new static();
  95. return $model->where(['user_coupon_id' => $couponId])->update(['is_use' => (int)$isUse]);
  96. }
  97. }