<?php

namespace app\api\service\statistics;

use app\api\model\dealer\Order;
use app\common\library\helper;
use app\common\service\BaseService;

class CommissionData extends BaseService
{
    protected  Order $dealerOrderModel;

    public function initialize()
    {
        parent::initialize(); // TODO: Change the autogenerated stub
        $this->dealerOrderModel = new Order();
    }
    public function getCommissionData($startDate = null, $endDate = null): array
    {
        return [
            'settleTotalMoney' => $this->getSettTotalMoney($startDate, $endDate),
            'noSettleTotalMoney' => $this->getNoSettleTotalMoney($startDate, $endDate)
        ];
    }

    public function getSettTotalMoney($startDate = null, $endDate = null) {
        $filter = [];
        if (!is_null($startDate) && !is_null($endDate)) {
            $filter[] = ['create_time', '>=', strtotime($startDate)];
            $filter[] = ['create_time', '<', strtotime($endDate) + 86400];
        }
        $first = $this->dealerOrderModel->where($filter)->where('is_settled','=', 1)->sum('first_money');
        $two = $this->dealerOrderModel->where($filter)->where('is_settled','=', 1)->sum('second_money');
        $three = $this->dealerOrderModel->where($filter)->where('is_settled','=', 1)->sum('third_money');
        return helper::number2($first + $two + $three);
    }

    public function getNoSettleTotalMoney($startDate = null, $endDate = null) {
        $filter = [];
        if (!is_null($startDate) && !is_null($endDate)) {
            $filter[] = ['create_time', '>=', strtotime($startDate)];
            $filter[] = ['create_time', '<', strtotime($endDate) + 86400];
        }
        $first = $this->dealerOrderModel->where($filter)->where('is_settled','=', 0)->sum('first_money');
        $two = $this->dealerOrderModel->where($filter)->where('is_settled','=', 0)->sum('second_money');
        $three = $this->dealerOrderModel->where($filter)->where('is_settled','=', 0)->sum('third_money');
        return helper::number2($first + $two + $three);
    }
}