<?php

namespace app\api\model;

use think\Model;

/**
 * 模型基类
 */
abstract class Base extends Model
{

    public $allCount         = 0;
    protected $resultSetType = 'collection';

    /**
     * 列表
     * @param  $map
     * @param  $p
     * @param  $row
     * @param string $order
     * @param  $fields
     * @return $lists
     */
    public function lists($map, $p, $row, $order = 'id desc', $fields = true)
    {
        $order || $order = 'id desc';
        $lists           = $this->field($fields)->where($map)->page($p, $row)->order($order)->select()->toArray();
        if (!empty($lists)) {
            $this->allCount = $this->where($map)->count();
        }
        return $lists;
    }
    /**
     * 详情
     * @param  $data
     * @return $info
     */
    protected function read($data)
    {
        $info = $this->where($data)->find();
        if (!empty($info)) {
            $info = $info->toArray();
        }
        return $info;
    }

    /*
     * 新增
     * @param array $data
     * @return bool
     */
    public function add($data)
    {
        return $this->allowField(true)->save($data);
    }

    /*
     * 更新
     * @param array $update
     * @param array $condition
     * @return bool
     */
    public function edit($update, $condition)
    {
        return $this->allowField(true)->save($update, $condition);
    }

    /*
     * 删除
     * @param array $condition
     * @return bool
     */
    public function del($condition)
    {
        return $this->destroy($condition);
    }

}