stmember.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2017/5/26
  6. * Time: 下午9:52
  7. */
  8. namespace statistics;
  9. class stmember extends stat_base
  10. {
  11. public function __construct($stime)
  12. {
  13. parent::__construct($stime);
  14. }
  15. /*
  16. member_total_num int default '0' null comment '月活',
  17. day_active_member int default '0' null comment '日活用户数',
  18. week_active_member int default '0' null,
  19. halfmoon_active_member int default '0' null,
  20. month_active_member int default '0' null comment '月活用户数',
  21. */
  22. public function init_user()
  23. {
  24. $this->today_user(stat_base::cur_date_type);
  25. }
  26. public function daily()
  27. {
  28. $this->active_member(stat_base::cur_date_type,'day_active_member');
  29. $this->active_member(stat_base::last_week_type,'week_active_member');
  30. $this->active_member(stat_base::last_hmonth_type,'halfmoon_active_member');
  31. $this->active_member(stat_base::last_month_type,'month_active_member');
  32. $this->total_member();
  33. $this->today_user(stat_base::cur_date_type);
  34. }
  35. private function active_member($type,$name)
  36. {
  37. $this->calc_time($type);
  38. $mod_member = Model('member');
  39. $count = $mod_member->where(['member_login_time' => ['between',[$this->mStartm,$this->mEndtm]]])->count();
  40. if(empty($count)) {
  41. return false;
  42. }
  43. else
  44. {
  45. $result = $this->mModel->get_one($this->mDateId,'invite_user_count',true);
  46. $fEdit = empty($result) ? false : true;
  47. $datas[$name] = intval($count);
  48. return $this->save($fEdit,$datas);
  49. }
  50. }
  51. private function total_member()
  52. {
  53. $mod_member = Model('member');
  54. $count = $mod_member->count();
  55. if(empty($count)) {
  56. return false;
  57. }
  58. else
  59. {
  60. $result = $this->mModel->get_one($this->mDateId,'invite_user_count',true);
  61. $fEdit = empty($result) ? false : true;
  62. $datas['member_total_num'] = intval($count);;
  63. return $this->save($fEdit,$datas);
  64. }
  65. }
  66. private function today_user($type)
  67. {
  68. $this->calc_time($type);
  69. $mod_member = Model('member');
  70. $count = $mod_member->where(['member_time' => ['between',[$this->mStartm,$this->mEndtm]]])->count();
  71. if(empty($count)) {
  72. return false;
  73. }
  74. else
  75. {
  76. $result = $this->mModel->get_one($this->mDateId,'today_user',true);
  77. $fEdit = empty($result) ? false : true;
  78. $datas['today_user'] = intval($count);
  79. return $this->save($fEdit,$datas);
  80. }
  81. }
  82. public function onInvite()
  83. {
  84. $result = $this->mModel->get_one($this->mDateId,'invite_user_count',true);
  85. $fEdit = empty($result) ? false : true;
  86. if($fEdit) {
  87. $datas['invite_user_count'] = 1;
  88. } else {
  89. $datas['invite_user_count'] = $result[0]['invite_user_count'] + 1;
  90. }
  91. return $this->save($fEdit,$datas);
  92. }
  93. }