OpenGameModel.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * OpenGameModel.php UTF-8
  4. * 玩家每日任务记录表
  5. *
  6. * @date : 2018/10/27 14:05
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : chenbingling <cbl@huosdk.com>
  10. * @version : HuoMP 1.0
  11. */
  12. namespace huomp\model\log;
  13. use huo\model\log\LogModel;
  14. use huo\model\member\MemberModel;
  15. class OpenGameModel extends LogModel {
  16. /* 数据库名 */
  17. protected $table = 'mp_log_homepage';
  18. /**
  19. * 关联访问者
  20. *
  21. * @return \think\model\relation\BelongsTo
  22. */
  23. public function visitor() {
  24. return $this->belongsTo(MemberModel::className(), 'mem_id', 'id')->field('id,username,nickname,avatar');
  25. }
  26. /**
  27. * 插入数据
  28. *
  29. * @param $data
  30. * @param bool $replace
  31. * @param bool $get_last_insert_id
  32. *
  33. * @return bool|int|string
  34. */
  35. public function insertLog($data, $replace = false, $get_last_insert_id = true) {
  36. $_time = time();
  37. $_data['mem_id'] = get_val($data, 'mem_id', 0);
  38. $_data['app_id'] = get_val($data, 'app_id', 0);
  39. $_data['game_id'] = get_val($data, 'game_id', 0);
  40. $_data['status'] = get_val($data, 'status', 1);
  41. $_data['default_duration'] = get_val($data, 'default_duration', 0);
  42. $_data['start_time'] = $_time;
  43. $_data['end_time'] = get_val($data, 'end_time', 0);
  44. $_data['duration'] = get_val($data, 'duration', 0);
  45. $_data['create_time'] = $_time;
  46. $_data['update_time'] = get_val($data, 'update_time', 0);
  47. $_data['date'] = date('Y-m-d', $_data['create_time']);
  48. return parent::insertLog($_data, $replace, $get_last_insert_id);
  49. }
  50. /**
  51. * @return bool|int
  52. * @throws \think\db\exception\BindParamException
  53. * @throws \think\exception\PDOException
  54. */
  55. function checkTable() {
  56. $this->table = $this->getPartitionTableName(
  57. $this->partition_data, $this->partition_field, $this->partition_rule
  58. );
  59. $_sql = "CREATE TABLE IF NOT EXISTS `$this->table` (";
  60. $_sql .= " `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',";
  61. $_sql .= " `date` date NOT NULL COMMENT '日期',";
  62. $_sql .= " `mem_id` int(11) NOT NULL DEFAULT '0' COMMENT '玩家ID',";
  63. $_sql .= " `app_id` int(11) NOT NULL DEFAULT '0' COMMENT '盒子ID',";
  64. $_sql .= " `game_id` int(11) NOT NULL DEFAULT '0' COMMENT '游戏ID',";
  65. $_sql .= " `status` tinyint(2) NOT NULL DEFAULT '1' COMMENT '1 未完成 2已完成',";
  66. $_sql .= " `default_duration` int(4) unsigned NOT NULL DEFAULT '0' COMMENT '任务时长s',";
  67. $_sql .= " `start_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '开始时间',";
  68. $_sql .= " `end_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '结束时间',";
  69. $_sql .= " `duration` int(4) unsigned NOT NULL DEFAULT '0' COMMENT '时长s',";
  70. $_sql .= " `create_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',";
  71. $_sql .= " `update_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',";
  72. $_sql .= " PRIMARY KEY (`id`),";
  73. $_sql .= " UNIQUE KEY `mog_mem_game_unique` (`mem_id`,`game_id`),";
  74. $_sql .= " KEY `mog_game_index` (`game_id`),";
  75. $_sql .= " KEY `mog_date_index` (`date`)";
  76. $_sql .= " ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='玩家每日任务记录表';";
  77. return $this->execute($_sql);
  78. }
  79. }