<?php namespace App\Http\Services; use App\Http\Controllers\Filter\SupplierAccountFilter; use App\Http\Transformers\SupplierAccountTransformer; use App\Http\Transformers\SupplierTransformer; use App\Model\LogModel; use App\Model\SupplierAccountModel; use App\Model\SupplierChannelModel; use App\Model\SupplierContactModel; use Carbon\Carbon; use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage; class SupplierSubAccountService { public function generateRequestAuthData($accountId) { $supplierAccount = SupplierAccountModel::where('id', $accountId)->first()->toArray(); return [ 'source_create_type' => 2, 'password' => $supplierAccount['password'], 'id' => $accountId, ]; } public function getSupplierSubAccount($accountId, $sbatId) { $url = config('website.CloudUrl') . '/inner/subAccount/getSubAccountInfo'; $params = $this->generateRequestAuthData($accountId); $params['sbat_id'] = $sbatId; unset($params['account_id']); $result = json_decode(curl($url, $params), true); if (isset($result['code']) && $result['code'] == 0) { return $result['data']; } return []; } public function getSupplierSubAccountList($map) { $url = config('website.CloudUrl') . '/inner/subAccount/list'; $params = $this->generateRequestAuthData($map['account_id']); $params = array_merge($map, $params); unset($params['account_id']); $result = json_decode(curl($url, $params), true); if (isset($result['code']) && $result['code'] == 0) { return $result['data']; } return []; } //新增子账号 public function addSupplierSubAccount($accountId, $data) { $url = config('website.CloudUrl') . '/inner/subAccount/create'; $params = $this->generateRequestAuthData($accountId); $params = array_merge($data, $params); $result = json_decode(curl($url, $params, true), true); if (isset($result['code'])) { if ($result['code'] == 0) { return true; } else { return $result['msg']; } } return false; } public function updateSupplierSubAccount($accountId, $data) { $url = config('website.CloudUrl') . '/inner/subAccount/edit'; $params = $this->generateRequestAuthData($accountId); $params = array_merge($data, $params); $result = json_decode(curl($url, $params, true), true); if (isset($result['code'])) { if ($result['code'] == 0) { return true; } else { return $result['msg']; } } return false; } //获取用户的权限菜单 public function getSupplierAccountPermList($accountId, $sbatId) { $url = config('website.CloudUrl') . '/inner/subAccount/getMenu'; $params = $this->generateRequestAuthData($accountId); if ($sbatId) { $params['sbat_id'] = $sbatId; } else { $params['method'] = 'add'; } // dump($params); $result = json_decode(curl($url, $params), true); if (isset($result['code']) && $result['code'] == 0) { $permList = $result['data']['data']; // dump($permList); //还要转换成layui能用的格式 $list = []; // dump($permList); foreach ($permList as $perm) { $children = !empty($perm['children']) ? $this->getChildPermList($perm['children']) : []; $list[] = [ 'title' => $perm['name'], 'checked' => false, 'disabled' => $perm['disabled'], 'id' => $perm['id'], 'spread' => true, 'children' => $children ]; } // dd($list); return $list; } return []; } public function getChildPermList($perm) { if (empty($perm)) { return []; } $childPermList = []; foreach ($perm as $key => $item) { $childPermList[] = [ 'title' => $item['name'], 'id' => !empty($item['id']) ? $item['id'] : str_random(100), 'checked' => $item['checked'], 'disabled' => isset($item['disabled'])?$item['disabled']:false, 'spread' => true, ]; } return $childPermList; } public function getSupplierAccountMessagePermList($accountId, $ynatId = 0) { $url = config('website.CloudUrl') . '/inner/subAccount/getMessageMenu'; $params = $this->generateRequestAuthData($accountId); if ($ynatId) { $params['ynat_id'] = $ynatId; }else{ $params['method'] = 'add'; } $result = json_decode(curl($url, $params), true); if (isset($result['code']) && $result['code'] == 0) { $permList = $result['data']['data']; //还要转换成layui能用的格式 $list = []; foreach ($permList as $perm) { $list[] = [ 'id' => $perm['id'], 'title' => $perm['name'], 'checked' => false, 'spread' => true, 'children' => !empty($perm['children']) ? $this->getChildPermList($perm['children']) : [], ]; } return $list; } return []; } //修改子账号状态 //1启动2禁用0删除 public function changeSupplierSubAccountStatus($accountId, $sbatId, $status) { $url = config('website.CloudUrl') . '/inner/subAccount/changeStatus'; $params = $this->generateRequestAuthData($accountId); $params['status'] = $status; $params['sbat_id'] = $sbatId; $result = json_decode(curl($url, $params, true), true); if (isset($result['code'])) { if ($result['code'] == 0) { return true; } else { return $result['msg']; } } return false; } public function saveMessageMenu($accountId, $userMessageRule) { $url = config('website.CloudUrl') . '/inner/subAccount/saveMessageMenu '; $params = $this->generateRequestAuthData($accountId); $userMessageRule = $userMessageRule ?: []; $params['user_message_rule'] = is_array($userMessageRule) ? json_encode($userMessageRule) : $userMessageRule; $result = json_decode(curl($url, $params, true), true); if (isset($result['code'])) { if ($result['code'] == 0) { return true; } else { return $result['msg']; } } return false; } }