* @version : HuoMP 1.0 */ namespace huomp\model\log; use huo\model\log\LogModel; use huo\model\member\MemberModel; use huomp\model\homepage\HpVisitorModel; class HomepageLogModel extends LogModel { /* 数据库名 */ protected $table = 'mp_log_homepage'; /** * 关联访问者 * * @return \think\model\relation\BelongsTo */ public function visitor() { return $this->belongsTo(MemberModel::className(), 'mem_id', 'id')->field('id,username,nickname,avatar'); } /** * 插入数据 * * @param $data * @param bool $replace * @param bool $get_last_insert_id * * @return bool|int|string */ public function insertLog($data, $replace = false, $get_last_insert_id = true) { $_data['mem_id'] = get_val($data, 'mem_id', 0); $_data['homepage_id'] = get_val($data, 'homepage_id', 0); $_data['agent_id'] = get_val($data, 'agent_id', 0); $_data['agent_game'] = get_val($data, 'agent_game', ''); $_data['app_id'] = get_val($data, 'app_id', 0); $_data['device_id'] = get_val($data, 'device_id', ''); $_data['idfv'] = get_val($data, 'idfv', ''); $_data['mac'] = get_val($data, 'mac', ''); $_data['ip'] = get_val($data, 'ip', ''); $_data['brand'] = get_val($data, 'brand', ''); $_data['model'] = get_val($data, 'model', ''); $_data['os'] = get_val($data, 'os', ''); $_data['os_version'] = get_val($data, 'os_version', ''); $_data['screen'] = get_val($data, 'screen', ''); $_data['net'] = get_val($data, 'net', ''); $_data['imsi'] = get_val($data, 'imsi', ''); $_data['longitude'] = get_val($data, 'longitude', ''); $_data['latitude'] = get_val($data, 'latitude', ''); $_data['userua'] = get_val($data, 'userua', ''); $_data['from'] = get_val($data, 'from', 0); $_data['create_time'] = time(); $_data['open_cnt'] = get_val($data, 'from', 0); $_data['date'] = date('Y-m-d', $_data['create_time']); (new HpVisitorModel())->replaceData($_data['homepage_id'], $_data['mem_id']); return parent::insertLog($_data, $replace, $get_last_insert_id); } /** * @return bool|int * @throws \think\db\exception\BindParamException * @throws \think\exception\PDOException */ function checkTable() { $this->table = $this->getPartitionTableName( $this->partition_data, $this->partition_field, $this->partition_rule ); $_sql = "CREATE TABLE IF NOT EXISTS `$this->table` ("; $_sql .= " `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',"; $_sql .= " `date` date NOT NULL COMMENT '日期',"; $_sql .= " `mem_id` int(11) NOT NULL DEFAULT '0' COMMENT '玩家ID',"; $_sql .= " `homepage_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '主页id',"; $_sql .= " `agent_id` int(11) NOT NULL DEFAULT '0' COMMENT '玩家归属的ch_id',"; $_sql .= " `agent_game` varchar(32) NOT NULL COMMENT '子渠道编号',"; $_sql .= " `app_id` int(11) NOT NULL DEFAULT '0' COMMENT '游戏id',"; $_sql .= " `device_id` varchar(64) NOT NULL DEFAULT '' COMMENT '手机设备码',"; $_sql .= " `idfv` varchar(64) NOT NULL DEFAULT '' COMMENT 'IOS idfv',"; $_sql .= " `mac` varchar(32) NOT NULL DEFAULT '' COMMENT '设备的mac',"; $_sql .= " `ip` varchar(32) NOT NULL DEFAULT '' COMMENT '设备网络IP地址',"; $_sql .= " `brand` varchar(16) NOT NULL DEFAULT '' COMMENT '设备品牌',"; $_sql .= " `model` varchar(16) NOT NULL DEFAULT '' COMMENT '机型',"; $_sql .= " `os` varchar(8) NOT NULL DEFAULT '' COMMENT '操作系统',"; $_sql .= " `os_version` varchar(16) NOT NULL DEFAULT '' COMMENT '操作系统版本',"; $_sql .= " `screen` varchar(16) NOT NULL DEFAULT '' COMMENT '分辨率',"; $_sql .= " `net` varchar(8) NOT NULL DEFAULT '' COMMENT '3G,4G,WIFI',"; $_sql .= " `imsi` varchar(16) NOT NULL DEFAULT '' COMMENT '设备的imsi',"; $_sql .= " `longitude` varchar(32) NOT NULL DEFAULT '' COMMENT '经度',"; $_sql .= " `latitude` varchar(32) NOT NULL DEFAULT '' COMMENT '纬度',"; $_sql .= " `userua` varchar(255) NOT NULL DEFAULT '' COMMENT '用户使用的移动终端的UA信息',"; $_sql .= " `from` smallint(4) NOT NULL DEFAULT '0' COMMENT '3 ANDROID、4 IOS、5 H5',"; $_sql .= " `create_time` bigint(20) NOT NULL DEFAULT '0' COMMENT '登录时间',"; $_sql .= " `open_cnt` int(11) NOT NULL DEFAULT '0' COMMENT '打开此应用次数',"; $_sql .= " PRIMARY KEY (`id`),"; $_sql .= " KEY `mp_mem_homepage_index` (`mem_id`,`homepage_id`),"; $_sql .= " KEY `mp_homepage_index` (`homepage_id`),"; $_sql .= " KEY `lol_time_index` (`create_time`),"; $_sql .= " KEY `lol_date_index` (`date`)"; $_sql .= ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='主页访客表';"; return $this->execute($_sql); } }