<?php


namespace app\common\model;


use app\common\service\FileService;
use think\Model;

class BaseModel extends Model
{
    /**
     * @notes 公共处理图片,补全路径
     * @param $value
     * @return string
     * @author 乔峰
     * @date 2021/9/10 11:02
     */
    public function getImageAttr($value)
    {
        return trim($value) ? FileService::getFileUrl($value) : '';
    }

    /**
     * @notes 公共图片处理,去除图片域名
     * @param $value
     * @return mixed|string
     * @author 乔峰
     * @date 2021/9/10 11:04
     */
    public function setImageAttr($value)
    {
        return trim($value) ? FileService::setFileUrl($value) : '';
    }

    /**
     * 曲线统计
     * @param $time
     * @param $type
     * @param $timeType
     * @return mixed
     */
    public function getCurveData($where, $time, $str, string $group = 'create_time')
    {
        return $this->where($where)
            ->when(isset($time['timeKey']), function ($query) use ($time, $str, $group) {
                $query->whereBetweenTime($group, $time['timeKey']['start_time'], $time['timeKey']['end_time']);
                if ($time['timeKey']['days'] == 1) {
                    $timeUinx = "%H";
                } elseif ($time['timeKey']['days'] == 30) {
                    $timeUinx = "%Y-%m-%d";
                } elseif ($time['timeKey']['days'] == 365) {
                    $timeUinx = "%Y-%m";
                } elseif ($time['timeKey']['days'] > 1 && $time['timeKey']['days'] < 30) {
                    $timeUinx = "%Y-%m-%d";
                } elseif ($time['timeKey']['days'] > 30 && $time['timeKey']['days'] < 365) {
                    $timeUinx = "%Y-%m";
                } else {
                    $timeUinx = "%Y-%m";
                }
                $query->field("$str as number,FROM_UNIXTIME($group, '$timeUinx') as time");
                $query->group("FROM_UNIXTIME($group, '$timeUinx')");
            })
            ->order("$group ASC")->select()->toArray();
    }
}