<?php


namespace App\Http\Services;

//后台消息相关服务
use App\Model\SupplierBlacklistModel;
use App\Model\SupplierChannelModel;

class MessageService
{
    public function sendSupplierMessage($supplierId, $status)
    {
        //先去判断状态是否需要通知
        if (!in_array($status, [1, -2, 2, 3, -3])) {
            return false;
        }
        $model = new SupplierChannelModel();
        $supplier = $model->where('supplier_id', $supplierId)->first();
        if (empty($supplier)) {
            return false;
        }
        $supplier = $supplier->toArray();
        $blacklistModel = new SupplierBlacklistModel();
        $blacklist = $blacklistModel->where('supplier_id', $supplierId)->first();
        $blacklist = !empty($blacklist) ? $blacklist->toArray() : [];
        $createName = $supplier['create_name'];
        $createUid = $supplier['create_uid'];
        $adminUserService = new AdminUserService();
        $user = $adminUserService->getAdminUserInfo($supplier['audit_uid']);
        $auditName = array_get($user, 'name');
        $supplierCode = $supplier['supplier_code'];
        $supplierName = $supplier['supplier_name'];
        $rejectReason = $supplier['reject_reason'];

        //还要获取自己的审批人
        $auditUserId = 0;
        $statusName = array_get(config('fixed.SupplierStatus'), $status);
        //状态为2的话,有两个情况,一种是审核通过,一种是重新启用
        $messagePass = empty($supplier['audit_time']) ? $auditName . '已审核通过供应商' . $supplierName . ',编码为' . $supplierCode :
            $supplierName . '供应商已经被重新启用';
        $messageMap = [
            -2 => $supplierName . '供应商已经被禁用',
            1 => $createName . '已提交审核供应商' . $supplierName . ',编码为' . $supplierCode,
            2 => $messagePass,
            3 => $auditName . '已驳回审核供应商' . $supplierName . ',编码为' . $supplierCode . ',驳回原因为 : ' . $rejectReason,
            -3 => $supplierName . '供应商已经被加入黑名单,原因是' . array_get($blacklist, 'reason'),
        ];
        $sendUserMap = [
            -2 => $createUid,
            1 => $auditUserId,
            2 => $createUid,
            3 => $createUid,
            -3 => $createUid,
        ];
        $data['supplier_remark'] = array_get($messageMap, $status);
        $sendUerId = array_get($sendUserMap, $status);
        $user = $adminUserService->getAdminUserInfo($sendUerId);
        $mobile = array_get($user, 'mobile', '');
        if (!$mobile) {
            $result = SendMessage($data, 'supplier-audit-alarm', $mobile);

        }
        //再找出邮箱
        $email = array_get($user, 'email');
        if (!$email) {
            $result = SendMessage($data, 'supplier-audit-email', $email, 1);
        }
    }
}