UserConsumeRecord.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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-read \App\Models\User|null $user
  21. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord newModelQuery()
  22. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord newQuery()
  23. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord query()
  24. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereBefore($value)
  25. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereChange($value)
  26. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereCreatedAt($value)
  27. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereCurrent($value)
  28. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereDeletedAt($value)
  29. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereId($value)
  30. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereOrderId($value)
  31. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereRemark($value)
  32. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereType($value)
  33. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereUpdatedAt($value)
  34. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord whereUserId($value)
  35. * @mixin \Eloquent
  36. * @method static \Illuminate\Database\Eloquent\Builder|UserConsumeRecord filterUser()
  37. */
  38. class UserConsumeRecord extends Model
  39. {
  40. use HasFactory, UserScope;
  41. const TYPE_RECHARGE = 1;
  42. const TYPE_CONSUME = 2;
  43. const TYPE_SIGN = 3;
  44. protected $casts = [
  45. 'before' => 'integer',
  46. 'change' => 'integer',
  47. 'current' => 'integer',
  48. ];
  49. protected function serializeDate(\DateTimeInterface $date)
  50. {
  51. return $date->format($this->dateFormat ?: 'Y-m-d H:i:s');
  52. }
  53. public function user()
  54. {
  55. return $this->belongsTo(User::class,'user_id','id');
  56. }
  57. public function record($userId, $type, $change, $remark)
  58. {
  59. $record = new UserConsumeRecord();
  60. $user = UserInfo::find($userId);
  61. $record->user_id = $user->user_id;
  62. $record->type = $type;
  63. $record->before = $user->integral;
  64. $record->change = $change;
  65. $record->current = $user->integral + $record->change;
  66. $record->remark = $remark;
  67. $record->save();
  68. }
  69. }