<?php
/**
 * ItgLogic.php UTF-8
 * 积分逻辑处理
 *
 * @date    : 2018/5/8 0:34
 *
 * @license 这不是一个自由软件,未经授权不许任何使用和传播。
 * @author  : wuyonghong <wyh@huosdk.com>
 * @version : HUOSDK 8.0
 */

namespace huo\logic\shop;

use huo\model\common\CommonModel;
use huo\model\integral\MemItgLogModel;
use huo\model\shop\GoodsModel;
use huolib\status\ShopStatus;

class ItgLogic extends CommonModel {
    protected $base_field
        = [
            'id'           => 'mitg_id',
            'mitg_name'    => 'mitg_name',
            'is_real'      => 'is_real',
            'total_cnt'    => 'total_cnt',
            'remain_cnt'   => 'remain_cnt',
            'mem_times'    => 'mem_times',
            'market_price' => 'market_price',
            'mitg_intro'   => 'mitg_intro',
            'original_img' => 'original_img',
            'integral'     => 'integral',
            'object_type'  => 'object_name',
            'object_id'    => 'object_id',
        ];

    /**
     * 获取玩家积分列表
     *
     * @param array  $where
     * @param string $page
     * @param string $order
     *
     * @return int | array
     */
    public function getItgList($where = [], $page = '1,10', $order = '-create_time') {
        $_mil_model = new MemItgLogModel();
        $_count = $_mil_model->where($where)->count();
        if (empty($_count)) {
            return [
                'count' => $_count,
                'list' => [],
            ];
        }
        $_field = ['ia_name', 'integral', 'create_time'];
        $_order = $this->orderFilter($order);
        $_mitg_logs = $_mil_model
            ->field($_field)
            ->where($where)
            ->order($_order)
            ->page($page)
            ->select();
        if (is_object($_mitg_logs)) {
            $_mitg_logs = $_mitg_logs->toArray();
        }
        if (empty($_mitg_logs)) {
            $_list = null;
            $_rdata['count'] = $_count;
            $_rdata['list'] = $_list;
        }
        $_rdata['count'] = $_count;
        $_rdata['list'] = $_mitg_logs;

        return $_rdata;
    }

    /**
     * 通过商品ID 查询商品信息
     *
     * @param $mitg_id
     *
     * @return array|bool|false
     */
    public function getInfoByGoodsId($mitg_id) {
        if (empty($mitg_id)) {
            return false;
        }
        $_map['id'] = $mitg_id;
        $_field = $this->base_field;
        $_field['mitg_content'] = 'mitg_content';
        $_mitg_data = (new GoodsModel())->field($_field)->where($_map)->find();
        if (is_object($_mitg_data)) {
            $_mitg_data = $_mitg_data->toArray();
        }

        return $_mitg_data;
    }

    /**
     * 获得所有玩家积分记录
     *
     * @param array  $where
     * @param array  $field
     *
     * @param string $listRows
     * @param string $order
     *
     * @return int|\think\Paginator
     * @throws \think\exception\DbException
     */
    public function getAllItgList($where = [], $field=[], $order = 'create_time desc'){
        $_mil_model = new MemItgLogModel();
        $_mitg_logs = $_mil_model
            ->with('mem')
            ->field($field)
            ->where($where)
            ->order($order)
            ->paginate();

        return $_mitg_logs;
    }
}