<?php


namespace App\Http\Transformers;


use App\Model\SupplierChannelModel;

class SupplierAccountTransformer
{
    public function transformList($list)
    {
        //获取供应商名称
        $supplierIds = array_column($list, 'supplier_id');
        $supplierModel = new SupplierChannelModel();
        $suppliers = $supplierModel->whereIn('supplier_id', $supplierIds)->pluck('supplier_name', 'supplier_id');
        foreach ($list as &$item) {
            $item['supplier_name'] = array_get($suppliers, $item['supplier_id']);
            $item = $this->transformInfo($item);
            $item['is_entity'] = array_get($item['supplier'], 'is_entity', -1);
            $item['is_entity_name'] = array_get(config('field.IsEntity'), $item['is_entity'], '暂无');
        }
        unset($item);

        return $list;
    }

    public function transformInfo($item)
    {
        $item['type_name'] = array_get(config('field.SupplierAccountType'), $item['a_type']);
        $item['create_time'] = $item['create_time'] ? date('Y-m-d H:i:s', $item['create_time']) : '';
        $item['update_time'] = $item['update_time'] ? date('Y-m-d H:i:s', $item['update_time']) : '';
        if (!empty($item['mobile'])) {
            $item['mobile'] =  substr($item['mobile'], 0, 3) . '****' . substr($item['mobile'], 7);
        }

        if (!empty($item['email'])) {
            $emailTemp = explode('@', $item['email'])[0];
            $replace = str_pad('*', strlen($emailTemp), '*');
            $emailTemp = str_replace($emailTemp, $replace, $emailTemp);
            if (count(explode('@', $item['email'])) > 1) {
                $item['email'] = $emailTemp . '@' . explode('@', $item['email'])[1];
            } else {
                $item['email'] = $emailTemp;
            }
        }

        $replace = str_pad('*', strlen($item['password_raw']), '*');
        $item['password_raw'] = str_replace($item['password_raw'], $replace , $item['password_raw']);
        return $item;
    }

}