UserLoginRange.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. class UserLoginRange extends Model
  5. {
  6. public static $range=[
  7. 1=>['start'=>0,'end'=>2],
  8. 2=>['start'=>2,'end'=>4],
  9. 3=>['start'=>4,'end'=>6],
  10. 4=>['start'=>6,'end'=>8],
  11. 5=>['start'=>8,'end'=>10],
  12. 6=>['start'=>10,'end'=>12],
  13. 7=>['start'=>12,'end'=>14],
  14. 8=>['start'=>14,'end'=>16],
  15. 9=>['start'=>16,'end'=>18],
  16. 10=>['start'=>18,'end'=>20],
  17. 11=>['start'=>20,'end'=>22],
  18. 12=>['start'=>22,'end'=>24],
  19. ];
  20. /**
  21. * @param null $range
  22. * @param bool $checkNow
  23. */
  24. public static function getRange($checkNow=false,$range=null)
  25. {
  26. $ranges=self::$range;
  27. foreach ($ranges as &$_range){
  28. $_range['start']=sprintf('%2d',$_range['start']);
  29. $_range['end']=sprintf('%2d',$_range['end']);
  30. }
  31. if($checkNow){
  32. $hour=date('H');
  33. foreach ($ranges as $idx=>$r){
  34. if($hour>=$r['start'] && $hour<$r['end']){
  35. $range=$idx;
  36. break;
  37. }
  38. }
  39. return $range;
  40. }
  41. if(!$range){
  42. return $ranges;
  43. }
  44. return $ranges[$range];
  45. }
  46. public static function addRange(User $user){
  47. $range=self::getRange(true);
  48. $has=$user->loginRange()->where('range',$range)->find();
  49. if($has){
  50. $has->setInc('times');
  51. }else{
  52. $user->loginRange()->save([
  53. 'range'=>$range,
  54. 'times'=>1,
  55. ]);
  56. }
  57. }
  58. }