UserConsumeRecord.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Models;
  3. use App\Scopes\UserScope;
  4. use Illuminate\Database\Eloquent\Factories\HasFactory;
  5. use Illuminate\Database\Eloquent\Model;
  6. /**
  7. * App\Models\UserConsumeRecord.
  8. *
  9. * @property int $id
  10. * @property int $user_id user_id
  11. * @property int|null $type 类型
  12. * @property string $before 消费后记录
  13. * @property string $change 消费金币
  14. * @property string $current 消费后金币
  15. * @property string $remark 备注
  16. * @property int $order_id 订单
  17. * @property \Illuminate\Support\Carbon|null $updated_at
  18. * @property string|null $deleted_at
  19. * @property \Illuminate\Support\Carbon|null $created_at
  20. * @property \App\Models\User|null $user
  21. *
  22. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord newModelQuery()
  23. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord newQuery()
  24. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord query()
  25. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereBefore($value)
  26. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereChange($value)
  27. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereCreatedAt($value)
  28. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereCurrent($value)
  29. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereDeletedAt($value)
  30. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereId($value)
  31. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereOrderId($value)
  32. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereRemark($value)
  33. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereType($value)
  34. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereUpdatedAt($value)
  35. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereUserId($value)
  36. *
  37. * @mixin \Eloquent
  38. *
  39. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord filterUser()
  40. */
  41. class UserConsumeRecord extends Model
  42. {
  43. use HasFactory;
  44. use UserScope;
  45. public const TYPE_RECHARGE = 1;
  46. public const TYPE_CONSUME = 2;
  47. public const TYPE_SIGN = 3;
  48. protected $casts = [
  49. 'before' => 'integer',
  50. 'change' => 'integer',
  51. 'current' => 'integer',
  52. ];
  53. protected function serializeDate(\DateTimeInterface $date)
  54. {
  55. return $date->format($this->dateFormat ?: 'Y-m-d H:i:s');
  56. }
  57. public function user()
  58. {
  59. return $this->belongsTo(User::class, 'user_id', 'id');
  60. }
  61. public function record($userId, $type, $change, $remark)
  62. {
  63. $record = new UserConsumeRecord();
  64. $user = UserInfo::find($userId);
  65. $record->user_id = $user->user_id;
  66. $record->type = $type;
  67. $record->before = $user->integral;
  68. $record->change = $change;
  69. $record->current = $user->integral + $record->change;
  70. $record->remark = $remark;
  71. $record->save();
  72. }
  73. }