<?php
/**
 * MgmLogModel.php UTF-8
 * 米大师游戏币记录
 *
 * @date    : 2018/8/16 18:41
 *
 * @license 这不是一个自由软件,未经授权不许任何使用和传播。
 * @author  : wuyonghong <wyh@huosdk.com>
 * @version : HuoMp 1.0
 */

namespace huomp\model\wallet;

use huo\model\log\LogModel;

class MgmLogModel extends LogModel {
    protected $table = 'mp_log_mgm';

    /**
     * 关联game表
     *
     * @return mixed
     */
    public function game() {
        return $this->belongsTo('huo\model\game\GameModel', 'app_id', 'id')->field('id,name');
    }

    /**
     * 关联game_ext表
     *
     * @return mixed
     */
    public function mem() {
        return $this->belongsTo('huo\model\member\MemberModel', 'mem_id', 'id')->field('id,name');
    }

    /**
     * @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['app_id'] = get_val($data, 'app_id', 0);
        $_data['order_id'] = get_val($data, 'order_id', '');
        $_data['m_balance'] = get_val($data, 'm_balance', 0);
        $_data['m_gen_balance'] = get_val($data, 'm_gen_balance', 0);
        $_data['m_save_amt'] = get_val($data, 'm_save_amt', 0);
        $_data['m_save_sum'] = get_val($data, 'm_save_sum', 0);
        $_data['m_cost_sum'] = get_val($data, 'm_cost_sum', 0);
        $_data['m_present_sum'] = get_val($data, 'm_present_sum', 0);
        $_data['m_used_gen_balance'] = get_val($data, 'm_used_gen_balance', 0);
        $_data['server_id'] = get_val($data, 'server_id', '1');
        $_data['type'] = get_val($data, 'type', '0');
        $_data['more'] = get_val($data, 'more', '');
        $_data['create_time'] = time();
        $_data['date'] = date('Y-m', $_data['create_time']);

        return parent::insertLog($_data, $replace, $get_last_insert_id);
    }

    /**
     * @param string $date
     *
     * @return int|void
     * @throws \think\db\exception\BindParamException
     * @throws \think\exception\PDOException
     */
    function checkTable($date = '') {
        $this->table = $this->getPartitionTableName(
            $this->partition_data, $this->partition_field, $this->partition_rule
        );
        $_sql = "CREATE TABLE IF NOT EXISTS `$this->table` (";
        $_sql .= "    `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',";
        $_sql .= "    `date` varchar(16) NOT NULL DEFAULT '' COMMENT '日期',";
        $_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 .= "    `order_id` varchar(64) NOT NULL DEFAULT '' COMMENT '订单号',";
        $_sql .= "    `m_balance` double(20,2)  NOT NULL  DEFAULT '0.00' COMMENT '游戏币个数(包含赠送)',";
        $_sql .= "    `m_gen_balance` double(20,2)  NOT NULL  DEFAULT '0.00' COMMENT '赠送游戏币数量',";
        $_sql .= "    `m_save_amt` double(20,2)  NOT NULL  DEFAULT '0.00' COMMENT '累计充值金额的游戏币数量',";
        $_sql .= "    `m_save_sum` double(20,2)  NOT NULL  DEFAULT '0.00' COMMENT '历史总游戏币金额',";
        $_sql .= "    `m_cost_sum` double(20,2)  NOT NULL  DEFAULT '0.00' COMMENT '历史总消费游戏币金额',";
        $_sql .= "    `m_present_sum` double(20,2)  NOT NULL  DEFAULT '0.00' COMMENT '历史累计收到赠送金额',";
        $_sql .= "    `m_used_gen_balance` double(20,2)  NOT NULL  DEFAULT '0.00' COMMENT '本次扣的赠送币的余额',";
        $_sql .= "    `server_id` varchar(64)  NOT NULL  DEFAULT '' COMMENT '区服id',";
        $_sql .= "    `type` tinyint(1)  NOT NULL  DEFAULT '0' COMMENT '1 查询 2 扣费 3 赠送 4 取消支付',";
        $_sql .= "    `more` text  NOT NULL COMMENT '更多信息',";
        $_sql .= "    `create_time` bigint(20) NOT NULL DEFAULT '0' COMMENT '创建时间',";
        $_sql .= "    PRIMARY KEY (`id`),";
        $_sql .= "    KEY `lmgm_mem_index` ( `mem_id` ),";
        $_sql .= "    KEY `lmgm_game_index` ( `app_id` )";
        $_sql .= "  ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='米大师游戏币余额变化表';";

        return $this->execute($_sql);
    }
}