DownLogModel.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. /**
  3. * DownLogModel.php UTF-8
  4. *
  5. *
  6. * @date : 2018/4/24 17:34
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace huo\model\log;
  13. use huo\model\common\CommonModel;
  14. class DownLogModel extends CommonModel {
  15. protected $table_prefix = 'h_log_down_';
  16. public function insertLog($data, $replace = false, $get_last_insert_id = true) {
  17. $_data['agent_id'] = get_val($data, 'agent_id', 0);
  18. $_data['agent_game'] = get_val($data, 'agent_game', '');
  19. $_data['app_id'] = get_val($data, 'app_id', 0);
  20. $_data['device_id'] = get_val($data, 'device_id', '');
  21. $_data['idfv'] = get_val($data, 'idfv', '');
  22. $_data['mac'] = get_val($data, 'mac', '');
  23. $_data['ip'] = get_val($data, 'ip', '');
  24. $_data['brand'] = get_val($data, 'brand', '');
  25. $_data['model'] = get_val($data, 'model', '');
  26. $_data['os'] = get_val($data, 'os', '');
  27. $_data['os_version'] = get_val($data, 'os_version', '');
  28. $_data['screen'] = get_val($data, 'screen', '');
  29. $_data['net'] = get_val($data, 'net', '');
  30. $_data['imsi'] = get_val($data, 'imsi', '');
  31. $_data['longitude'] = get_val($data, 'longitude', '');
  32. $_data['latitude'] = get_val($data, 'latitude', '');
  33. $_data['userua'] = get_val($data, 'userua', '');
  34. $_data['from'] = get_val($data, 'from', 0);
  35. $_data['create_time'] = time();
  36. $this->checkTable();
  37. return parent::insertLog($_data, $replace, $get_last_insert_id);
  38. }
  39. /**
  40. * 计算在哪张表
  41. *
  42. * @return \Think\Model
  43. */
  44. public function computeTable() {
  45. $_date = date('Ymd');
  46. $_table = $this->table_prefix.$_date;
  47. return $this->table($_table);
  48. }
  49. function checkTable() {
  50. $_date = date('Ymd');
  51. $this->table = $this->table_prefix.$_date;
  52. $_sql = "CREATE TABLE IF NOT EXISTS `$this->table` (";
  53. $_sql .= " `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',";
  54. $_sql .= " `date` date NOT NULL DEFAULT '$_date' COMMENT '日期',";
  55. $_sql .= " `mem_id` int(11) NOT NULL DEFAULT '0' COMMENT '玩家ID',";
  56. $_sql .= " `agent_id` int(11) NOT NULL DEFAULT '0' COMMENT '玩家归属的ch_id',";
  57. $_sql .= " `agent_game` varchar(32) NOT NULL COMMENT '子渠道编号',";
  58. $_sql .= " `app_id` int(11) NOT NULL DEFAULT '0' COMMENT '游戏id',";
  59. $_sql .= " `device_id` varchar(64) NOT NULL DEFAULT '' COMMENT '手机设备码',";
  60. $_sql .= " `idfv` varchar(64) NOT NULL DEFAULT '' COMMENT 'IOS idfv',";
  61. $_sql .= " `mac` varchar(32) NOT NULL DEFAULT '' COMMENT '设备的mac',";
  62. $_sql .= " `ip` varchar(32) NOT NULL DEFAULT '' COMMENT '设备网络IP地址',";
  63. $_sql .= " `brand` varchar(16) NOT NULL DEFAULT '' COMMENT '设备品牌',";
  64. $_sql .= " `model` varchar(16) NOT NULL DEFAULT '' COMMENT '机型',";
  65. $_sql .= " `os` varchar(8) NOT NULL DEFAULT '' COMMENT '操作系统',";
  66. $_sql .= " `os_version` varchar(16) NOT NULL DEFAULT '' COMMENT '操作系统版本',";
  67. $_sql .= " `screen` varchar(16) NOT NULL DEFAULT '' COMMENT '分辨率',";
  68. $_sql .= " `net` varchar(8) NOT NULL DEFAULT '' COMMENT '3G,4G,WIFI',";
  69. $_sql .= " `imsi` varchar(16) NOT NULL DEFAULT '' COMMENT '设备的imsi',";
  70. $_sql .= " `longitude` varchar(32) NOT NULL DEFAULT '' COMMENT '经度',";
  71. $_sql .= " `latitude` varchar(32) NOT NULL DEFAULT '' COMMENT '纬度',";
  72. $_sql .= " `userua` varchar(255) NOT NULL DEFAULT '' COMMENT '用户使用的移动终端的UA信息',";
  73. $_sql .= " `from` tinyint(2) NOT NULL DEFAULT '0' COMMENT '3 ANDROID、4 IOS、5 H5',";
  74. $_sql .= " `create_time` bigint(20) NOT NULL DEFAULT '0' COMMENT '登录时间',";
  75. $_sql .= " PRIMARY KEY (`id`),";
  76. $_sql .= " KEY `ld_time_index` (`create_time`),";
  77. $_sql .= " KEY `ld_date_index` (`date`)";
  78. $_sql .= ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='打开LOG';";
  79. return $this->execute($_sql);
  80. }
  81. }