<?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); } } }