<?php
/**
 * Created by PhpStorm.
 * User: Argericy
 * Date: 2018/9/29
 * Time: 11:35
 */
namespace App\Models\Data;

use App\Models\Dao\{daoName};
use App\Models\Entity\{entityName};
use Swoft\Bean\Annotation\Bean;
use Swoft\Bean\Annotation\Inject;

/**
  * @Bean()
  *
  * Class {dataName}
  * @package App\Models\Data
  */
class {dataName}
{
    /**
     * @Inject()
     * @var {daoName}
     */
    private ${varDaoName};

    /**
     * 插入数据
     *
     * @param array $info
     * @return {entityName}
     * @throws \Hdll\Services\Common\Exception\CommonException
     */
    public function create(array $info) : {entityName}
    {
        return $this->{varDaoName}->create($info);
    }

    /**
     * 查询一条数据
     *
     * @param array $condition
     * @param array $option
     * @return array|mixed
     */
    public function getByCondition(array $condition, array $option)
    {
        $Info = $this->{varDaoName}->getInfoByCondition($condition, $option);

        return empty($Info)?[]:$Info;
    }


    /**
     * 查询多条数据
     *
     * @param array $condition
     * @param array $option
     * @return mixed
     */
    public function selectByCondition(array $condition, array $option)
    {
        return $this->{varDaoName}->selectInfoByCondition($condition, $option);
    }

    /**
     * 更新一条数据
     *
     * @param array $condition
     * @param array $updateInfo
     * @return mixed
     */
    public function updateOne(array $condition, array $updateInfo)
    {
        return $this->{varDaoName}->updateOne($condition, $updateInfo);
    }

    /**
     * 更新多条数据
     *
     * @param array $condition
     * @param array $updateInfo
     * @return mixed
     */
    public function updateAll(array $condition, array $updateInfo)
    {
        return $this->{varDaoName}->updateByCondition($condition, $updateInfo);
    }

    /**
     * 删除满足条件的一条信息
     *
     * @param array $condition
     * @param bool $isReal
     * @return mixed
     */
    public function delOne(array $condition, $isReal = false)
    {
        if ( $isReal ) {
            return $this->{varDaoName}->delOne($condition);
        } else {
            return $this->{varDaoName}->updateOne($condition, ['deleteTime' => time()]);
        }
    }

    /**
     * 删除满足条件的所有条目
     *
     * @param array $condition
     * @param bool $isReal
     * @return mixed
     */
    public function delAll(array $condition, $isReal = false)
    {
        if ( $isReal ) {
            return $this->{varDaoName}->delAll($condition);
        } else {
            return $this->{varDaoName}->updateByCondition($condition, ['deleteTime' => time()]);
        }

    }

}