User.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: zilongs
  5. * Date: 20-9-23
  6. * Time: 上午11:04
  7. */
  8. namespace App\Models;
  9. class User extends BaseModel
  10. {
  11. public function getCouponNumAttribute()
  12. {
  13. return UserCoupon::where('user_id', $this->id)->where('status', 1)->where('expire_time', '>', time())->count();
  14. }
  15. //通过token获取用户信息
  16. public static function getUserByToken($is_exit = true)
  17. {
  18. $auth = request()->header('token');
  19. if (empty($auth)) {
  20. if (!$is_exit) {
  21. return '';
  22. }
  23. exit_out(null, 401, '认证失效,请重新登录');
  24. }
  25. $arr = aes_decrypt($auth);
  26. if (empty($arr['id'])) {
  27. if (!$is_exit) {
  28. return '';
  29. }
  30. exit_out(null, 401, '认证失效,请重新登录');
  31. }
  32. $user = User::where('id', $arr['id'])->first();
  33. if (empty($user)){
  34. if (!$is_exit) {
  35. return '';
  36. }
  37. exit_out(null, 601, '该账号已被删除');
  38. }
  39. $user = $user->toArray();
  40. if ($user['status'] == 0){
  41. exit_out(null, 602, '该账号已被冻结');
  42. }
  43. return $user;
  44. }
  45. //改变用户余额
  46. public static function changeBalance($user_id, $change_balance, $type, $relation_id, $remark, $admin_user_id = 0)
  47. {
  48. $user = User::select(['balance'])->where('id', $user_id)->first();
  49. User::where('id', $user_id)->increment('balance', $change_balance);
  50. UserBalanceLog::create([
  51. 'user_id' => $user_id,
  52. 'admin_user_id' => $admin_user_id,
  53. 'type' => $type,
  54. 'relation_id' => $relation_id,
  55. 'before_balance' => $user['balance'],
  56. 'change_balance' => $change_balance,
  57. 'after_balance' => $user['balance'] + $change_balance,
  58. 'remark' => $remark,
  59. ]);
  60. return true;
  61. }
  62. }