<?php namespace App\Http\Controllers; use App\Http\Services\AdminUserService; use App\Http\Services\LogService; use App\Http\Services\RoleService; use App\Http\Services\SupplierContactService; use App\Http\Services\SupplierService; use App\Http\Services\SupplierStatisticsService; use App\Http\Services\ViewCheckService; use App\Http\Transformers\LogTransformer; use App\Http\Transformers\SupplierTransformer; use App\Model\IntracodeModel; use App\Model\LogModel; use App\Model\SupplierChannelModel; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class SupplierController extends Controller { public function info(Request $request, $id = '') { { if ($request->path() == '/') { $path = 'web/index'; } else { $path = $request->path(); } $this->data = [ 'menus' => $request->menus, 'header' => $request->user->header, 'username' => $request->user->email, 'user_email' => $request->user->email, 'uri' => '/' . $path, 'id' => $id ]; $userId = $request->user->userId; $canAudit = perm($userId, 'AuditSupplier'); $this->data['canAudit'] = $canAudit; //把是否是领导查看放到模板,用来区分部门老大能干的权限 $leaderView = perm($userId, 'LeaderView'); $this->data['leaderView'] = $leaderView; return $this->$id($request); } } public function __call($name, $arr) { $data['errinfo'] = '访问路径错误'; return view('errors.error', $data); } //供应商列表 public function SupplierList($request) { $intracodeModel = new IntracodeModel(); $this->data['userCodes'] = $intracodeModel->getSampleEncode(); $this->data['users'] = $intracodeModel->getAdminUserAndCode(); $supplierStatisticsService = new SupplierStatisticsService(); $statistics = $supplierStatisticsService->getSupplierListStatistics(); $this->data['statistics'] = $statistics; $this->data['validPerms'] = []; return $this->view('供应商列表'); } //供应商详情 public function SupplierDetail($request) { $supplierId = $request->get('supplier_id'); $supplierService = new SupplierService(); $supplier = $supplierService->getSupplier($supplierId); if (empty($supplier)) { return '供应商不存在'; } //记录查看日志(1个小时内查看的跳过) $logModel = new LogModel(); $lastViewAddTime = $logModel->where('supplier_id', $supplierId)->where('admin_id', $request->user->userId) ->where('type', LogModel::VIEW_OPERATE)->orderBy('id', 'desc')->value('add_time'); $oneHourTimestamp = 3600; if (time() - $lastViewAddTime > $oneHourTimestamp) { $logService = new LogService(); $logService->AddLog($supplierId, LogModel::VIEW_OPERATE, '查看', '查看供应商详情'); } $this->data['operate'] = 'detail'; $this->data['supplier'] = $supplier; $this->data['address'] = $supplierService->getAddress($supplierId); return $this->view('供应商详情'); } //添加供应商 public function AddSupplier($request) { $supplierId = $request->get('supplier_id'); $supplierService = new SupplierService(); $intracodeModel = new IntracodeModel(); $this->data['outside_contact_status'] = Config('fixed.OutsideContactStatus'); $this->data['outside_contact_type'] = Config('fixed.OutsideContactType'); $userCodes = $intracodeModel->getSampleEncode(); $this->data['userCodes'] = $userCodes; $this->data['user'] = $userCodes; $this->data['purchase_users'] = []; foreach ($userCodes as $userId => $code) { $this->data['purchase_users'][] = [ 'name' => $code, 'value' => $userId, ]; } $this->data['operate'] = 'add'; //编辑 if (!empty($supplierId)) { $this->data['title'] = '编辑供应商'; $this->data['supplierInfo'] = $supplierService->getSupplier($supplierId); $DB = DB::connection('yunxin'); $supplierAccountInfo = $DB->table('supplier_account')->where("supplier_com_id", "=", $supplierId)->select('mobile', "password_raw")->first(); $this->data['supplier_account_info'] = $supplierAccountInfo; $this->data['address'] = $supplierService->getAddress($supplierId); } else { $this->data['title'] = '添加供应商'; } return $this->view('新增供应商'); } //编辑供应商 public function UpdateSupplier($request) { $intracodeModel = new IntracodeModel(); $userCodes = $intracodeModel->getSampleEncode(); $this->data['userCodes'] = $userCodes; $this->data['user'] = $userCodes; $this->data['purchase_users'] = []; $this->data['operate'] = 'update'; foreach ($userCodes as $userId => $code) { $this->data['purchase_users'][] = [ 'name' => $code, 'value' => $userId, ]; } //编辑 $this->data['title'] = '编辑供应商'; $supplierId = $request->get('supplier_id'); $supplierService = new SupplierService(); $supplier = $supplierService->getSupplier($supplierId); if (empty($supplier)) { return '供应商不存在'; } $this->data['supplier'] = $supplier; $this->data['address'] = $supplierService->getAddress($supplierId); return $this->view('编辑供应商'); } //审核供应商 public function AuditSupplier($request) { $supplierId = $request->get('supplier_id'); $model = new SupplierChannelModel(); $supplier = $model->where('supplier_id', $supplierId)->first(); //获取最后一条非分配渠道员的日志 $logModel = new LogModel(); $auditContent = $logModel->where('supplier_id', $supplierId)->where('action', '!=', '分配渠道开发员') ->where('type', '!=', 3) ->orderBy('id', 'desc')->first(); $logTransformer = new LogTransformer(); $auditContent = $logTransformer->transformInfo($auditContent); $this->data['auditContent'] = $auditContent; $this->data['supplier'] = $supplier ? $supplier->toArray() : []; return $this->view('审核供应商'); } //分配渠道员 public function AllocatePurchaseUser($request) { $supplierId = $request->get('supplier_id'); $model = new SupplierChannelModel(); $supplier = $model->where('supplier_id', $supplierId)->first(); $supplier = $supplier ? $supplier->toArray() : []; $transformer = new SupplierTransformer(); $supplier = $transformer->transformInfo($supplier); $this->data['supplier'] = $supplier; $intracodeModel = new IntracodeModel(); $this->data['userCodes'] = $intracodeModel->getPurchaseUserCodes(); $logModel = new LogModel(); $this->data['logs'] = $logModel->where('supplier_id', $supplierId) ->where('action', '分配渠道开发员')->orderBy('id', 'desc') ->limit(10)->get(); return $this->view('审核供应商'); } //操作日志列表 public function LogList($request, $data) { $intracodeModel = new IntracodeModel(); $data['userCodes'] = $intracodeModel->getSampleEncode(); $data['title'] = '操作日志记录'; return view('web', $data); } }