UserCoupon.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace app\common\model\coupon;
  3. use app\common\model\BaseModel;
  4. use app\common\model\dict\DictData;
  5. use app\common\model\user\User;
  6. use think\facade\Cache;
  7. /**
  8. * @author 林海涛
  9. * @date 2024/7/18 下午3:42
  10. */
  11. class UserCoupon extends BaseModel
  12. {
  13. protected $name = 'user_coupon';
  14. public function user()
  15. {
  16. return $this->hasOne(User::class, 'id', 'user_id');
  17. }
  18. public function couponCategory()
  19. {
  20. return $this->hasMany(CouponCategory::class, 'coupon_id', 'goods_category_id');
  21. }
  22. public function couponRules()
  23. {
  24. return $this->hasOne(CouponRules::class,'code','code');
  25. }
  26. public function getVoucherStatusTextAttr($value,$data):string
  27. {
  28. $default = Cache::get('VOUCHER_STATUS');
  29. if (!$default) {
  30. $status = DictData::whereIn('type_value', 'voucher_status')->column('name','value');
  31. Cache::set('VOUCHER_STATUS', json_encode($status,true),5);
  32. } else {
  33. $status = json_decode($default,true);
  34. }
  35. return $status[$data['voucher_status']] ?? '';
  36. }
  37. public function getDiscountRatioTextAttr($value,$data)
  38. {
  39. return !empty($data['discount_ratio'])?$data['discount_ratio']*10:'';
  40. }
  41. }