HomepageLogLogic.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. /**
  3. * HomepageLogic.php UTF-8
  4. *
  5. *
  6. * @date : 2018/8/15 22:32
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : luowei <lw@huosdk.com>
  10. * @version : HuoMP 1.0
  11. */
  12. namespace huomp\logic\log;
  13. use huo\controller\member\MemCache;
  14. use huo\model\common\CommonModel;
  15. use huomp\model\homepage\HpVisitorModel;
  16. use huomp\model\log\HomepageLogModel;
  17. class HomepageLogLogic extends CommonModel {
  18. /**
  19. * @param array $param
  20. *
  21. * @return array
  22. */
  23. protected function getWhere($param = []) {
  24. $_map = [];
  25. if (!empty($param['parent_mem_id'])) {
  26. $_map['hp_visitor_model.parent_mem_id'] = $param['parent_mem_id'];
  27. }
  28. return $_map;
  29. }
  30. /**
  31. * 获取主页访客列表
  32. *
  33. * @param array $where
  34. * @param string $page
  35. * @param string $order
  36. *
  37. * @return mixed
  38. */
  39. public function getVisitorList($where = [], $page = '1,10', $order = '-update_time') {
  40. $_map = $this->getWhere($where);
  41. $_field = [];
  42. $_map['status'] = 2;
  43. return $this->getList($_field, $_map, $page, $order);
  44. }
  45. public function getList($_field, $where, $page = '1,10', $order = '-update_time') {
  46. $_model = new HpVisitorModel();
  47. $_count = $_model->with('visitor')->where($where)->count();
  48. if (empty($_count)) {
  49. return [
  50. 'count' => 0,
  51. 'list' => []
  52. ];
  53. }
  54. $_order = $_model->orderFilter($order);
  55. $_log_datas = $_model->with('visitor')
  56. ->where($where)
  57. ->order($_order)
  58. ->page($page)
  59. ->select();
  60. if (is_object($_log_datas)) {
  61. $_log_datas = $_log_datas->toArray();
  62. }
  63. if (empty($_log_datas)) {
  64. return [
  65. 'count' => $_count,
  66. 'list' => []
  67. ];
  68. }
  69. $_rdata = [];
  70. foreach ($_log_datas as $key => $_log_data) {
  71. $_rdata[] = [
  72. 'mem_id' => $_log_data['mem_id'],
  73. 'nickname' => !empty($_log_data['visitor']) ? $_log_data['visitor']['nickname'] : '',
  74. 'avatar' => !empty($_log_data['visitor']) ? $_log_data['visitor']['avatar'] : '',
  75. ];
  76. }
  77. return [
  78. 'count' => $_count,
  79. 'list' => $_rdata
  80. ];
  81. }
  82. /**
  83. * 添加访问记录
  84. *
  85. * @param $mem_id
  86. * @param $_to_mem_id
  87. *
  88. * @return bool
  89. */
  90. public function addVisitLog($mem_id, $_to_mem_id) {
  91. $_mem_info = (new MemCache())->getInfoById($mem_id);
  92. $_insert_data = [
  93. "mem_id" => $mem_id,
  94. "homepage_id" => $_to_mem_id,
  95. "agent_id" => $_mem_info['agent_id'],
  96. "agent_game" => $_mem_info['agent_game'],
  97. "ip" => request()->ip(),
  98. ];
  99. return (new HomepageLogModel())->insertLog($_insert_data);
  100. }
  101. }