CouponsUserBag.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. class CouponsUserBag extends Model
  5. {
  6. //
  7. protected $table = "coupons_user_bags";
  8. protected $guarded = [];
  9. const TYPE_ADMIN_GIVE = 1;
  10. const TYPE_INVITE_NEW_GIVE = 2;
  11. public static $typeMaps = [
  12. self::TYPE_ADMIN_GIVE => '后台管理员赠送',
  13. self::TYPE_INVITE_NEW_GIVE => '邀请新用户赠送',
  14. ];
  15. const STATUS_OK = 1;
  16. const STATUS_NO = 0;
  17. const STATUS_USED = 2;
  18. public static $statusMaps = [
  19. self::STATUS_OK=>'启用',
  20. self::STATUS_NO=>'停用',
  21. self::STATUS_USED=>'已使用',
  22. ];
  23. const VALID_TYPE_ABSOLUTELY = 1;
  24. const VALID_TYPE_RELATIVE = 2;
  25. public static $validTypeMaps = [
  26. self::VALID_TYPE_ABSOLUTELY => '绝对时效',
  27. self::VALID_TYPE_RELATIVE => '相对时效',
  28. ];
  29. const ORDER_TYPE_NORMAL = 1;
  30. const ORDER_TYPE_RENT = 2;
  31. const ORDER_TYPE_ALL = 3;
  32. public static $orderTypeMaps = [
  33. self::ORDER_TYPE_NORMAL => '仅普通订单可用',
  34. self::ORDER_TYPE_RENT => '仅日租订单可用',
  35. self::ORDER_TYPE_ALL => '所有订单可用',
  36. ];
  37. public function getCouponsDataAttribute($value)
  38. {
  39. return json_decode($value,true);
  40. }
  41. public function setCouponsDataAttribute($value)
  42. {
  43. $this->attributes['coupons_data'] = json_encode($value);
  44. }
  45. public function users(){
  46. return $this->belongsTo(User::class,'user_id','id');
  47. }
  48. public function coupons(){
  49. return $this->belongsTo(Coupon::class,'coupon_id','id');
  50. }
  51. public static function useCoupon($order_id,$id){
  52. $couponUsers = self::query()->find($id);
  53. $couponUsers->status = self::STATUS_USED;
  54. $couponUsers->order_id = $order_id;
  55. $couponUsers->save();
  56. Coupon::couponUsed($couponUsers->coupon_id);
  57. }
  58. }