TempsUserSign.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace App\Modules\User\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. class TempsUserSign extends Model
  5. {
  6. protected $connection = 'api_mysql';
  7. protected $table = 'temps_user_sign';
  8. protected $fillable = ['uid','price','day','sign_time'];
  9. /**
  10. * 用户是否已签到
  11. * @param $uid
  12. * @param $day
  13. * @return mixed
  14. */
  15. public static function isSign($uid,$day){
  16. return self::where('uid',$uid)->where('day',$day)->first();
  17. }
  18. /**
  19. * 删除N天前的数据,保留热数据
  20. */
  21. static function deleteTempsUserSignByTime($end_time)
  22. {
  23. while (true)
  24. {
  25. $affect_rows = self::where('day','<=',$end_time)->limit(50000)->delete();
  26. if(!$affect_rows) break;
  27. sleep(1);
  28. }
  29. return true;
  30. //return self::where('day','<=',$end_time)->delete();
  31. }
  32. /**
  33. * 签到
  34. * @param $uid
  35. * @param $day
  36. * @return mixed
  37. */
  38. public static function sign($uid,$day,$fee){
  39. $data = ['uid'=>$uid,'price'=>$fee,'day'=>$day,'sign_time'=>time()];
  40. return self::create($data);
  41. }
  42. /**
  43. * 用户签到记录
  44. */
  45. public static function getUserSignRecord($uid){
  46. return self::where('uid',$uid)->select('price','sign_time')->orderBy('sign_time','desc')->paginate();
  47. }
  48. }