123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <?php
- /**
- * ShareLogModel.php UTF-8
- *
- *
- * @date : 2018/5/26 16:57
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : luowei <lw@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\model\posts;
- use huo\model\common\CommonModel;
- use huo\model\member\MemberModel;
- use huolib\constant\CommonConst;
- class ShareLogModel extends CommonModel {
- protected $name = 'share_log';
- // 开启自动写入时间戳字段
- protected $autoWriteTimestamp = true;
- public function mem() {
- return $this->belongsTo(MemberModel::className(), 'id', 'mem_id');
- }
- /**
- * 添加分享日志
- *
- * @param $data
- *
- * @param bool $replace
- * @param bool $get_last_insert_id
- *
- * @return bool|mixed
- */
- public function insertLog($data, $replace = false, $get_last_insert_id = true) {
- $_data['id'] = get_val($data, "id", "");
- $_data['mem_id'] = get_val($data, "mem_id", 0);
- $_data['to_target'] = get_val($data, "to_target", "");
- $_data['device_id'] = get_val($data, "device_id", "");
- $_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", "");
- $_data['create_time'] = get_val($data, "create_time", "");
- $_data['title'] = get_val($data, "title", "");
- $_data['content'] = get_val($data, "content", "");
- $_data['url'] = get_val($data, "url", "");
- $_data['table_name'] = get_val($data, "table_name", "");
- $_data['object_id'] = get_val($data, "object_id", "");
- $_data['more'] = get_val($data, "more", "");
- // $this->checkTable();
- return parent::insertLog($_data, $replace, $get_last_insert_id);
- }
- /**
- * @return int
- * @throws \think\db\exception\BindParamException
- * @throws \think\exception\PDOException
- */
- private function checkTable() {
- $_date = date('Ym');
- $this->table = $this->table_prefix.$_date;
- $_sql = "CREATE TABLE IF NOT EXISTS `$this->table` (";
- $_sql .= " `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',";
- $_sql .= " `mem_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '分享用户id',";
- $_sql .= " `app_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '游戏ID',";
- $_sql .= " `to_target` varchar(8) NOT NULL DEFAULT '' COMMENT 'weibo wx wxp qq',";
- $_sql .= " `device_id` varchar(64) NOT NULL DEFAULT '' COMMENT '手机设备码',";
- $_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` tinyint(2) NOT NULL DEFAULT '0' COMMENT '3 ANDROID、4 IOS、5 H5',";
- $_sql .= " `create_time` bigint(20) NOT NULL DEFAULT '0' COMMENT '分享时间',";
- $_sql .= " `title` char(140) DEFAULT '' COMMENT '分享标题',";
- $_sql .= " `content` char(140) DEFAULT '' COMMENT '分享内容',";
- $_sql .= " `url` varchar(255) DEFAULT '' COMMENT '分享URL',";
- $_sql .= " PRIMARY KEY (`id`),";
- $_sql .= " KEY `sl_time_index` (`create_time`),";
- $_sql .= " KEY `sh_mem_index` (`mem_id`)";
- $_sql .= ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='玩家分享表';";
- return $this->execute($_sql);
- }
- /**
- * 获取玩家今日的分享记录
- *
- * @param $mem_id
- * @param $to_target
- *
- * @return array|bool|false|\PDOStatement|string|\think\Model
- * @throws \think\Exception
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function getTodayShareLog($mem_id, $to_target) {
- $_map = [
- 'mem_id' => $mem_id,
- 'to_target' => $to_target,
- 'create_time' => ['between',
- [strtotime(date('Y-m-d')), CommonConst::CONST_DAY_SECONDS + strtotime(date('Y-m-d'))]],
- ];
- $_field = 'mem_id,create_time,to_target,title,content,url';
- $_data = $this->field($_field)->where($_map)->find();
- if (is_object($_data)) {
- return $_data->toArray();
- }
- return null;
- }
- }
|