Commit 307a2e3f authored by zhoujun's avatar zhoujun

初始版本

parent 280bd44c
Pipeline #550 failed with stages
in 0 seconds
# DevOps
<p align="center"><img src="https://laravel.com/assets/img/components/logo-laravel.svg"></p>
<p align="center">
<a href="https://travis-ci.org/laravel/framework"><img src="https://travis-ci.org/laravel/framework.svg" alt="Build Status"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/d/total.svg" alt="Total Downloads"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/v/stable.svg" alt="Latest Stable Version"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/license.svg" alt="License"></a>
</p>
## About Laravel
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as:
- [Simple, fast routing engine](https://laravel.com/docs/routing).
- [Powerful dependency injection container](https://laravel.com/docs/container).
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
- [Robust background job processing](https://laravel.com/docs/queues).
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
Laravel is accessible, yet powerful, providing tools needed for large, robust applications.
## Learning Laravel
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of any modern web application framework, making it a breeze to get started learning the framework.
If you're not in the mood to read, [Laracasts](https://laracasts.com) contains over 1100 video tutorials on a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library.
## Laravel Sponsors
We would like to extend our thanks to the following sponsors for helping fund on-going Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell):
- **[Vehikl](https://vehikl.com/)**
- **[Tighten Co.](https://tighten.co)**
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
- **[Cubet Techno Labs](https://cubettech.com)**
- **[British Software Development](https://www.britishsoftware.co)**
- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
- [UserInsights](https://userinsights.com)
- [Fragrantica](https://www.fragrantica.com)
- [SOFTonSOFA](https://softonsofa.com/)
- [User10](https://user10.com)
- [Soumettre.fr](https://soumettre.fr/)
- [CodeBrisk](https://codebrisk.com)
- [1Forge](https://1forge.com)
- [TECPRESSO](https://tecpresso.co.jp/)
- [Runtime Converter](http://runtimeconverter.com/)
- [WebL'Agence](https://weblagence.com/)
- [Invoice Ninja](https://www.invoiceninja.com)
- [iMi digital](https://www.imi-digital.de/)
- [Earthlink](https://www.earthlink.ro/)
- [Steadfast Collective](https://steadfastcollective.com/)
## Contributing
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
## Security Vulnerabilities
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
## License
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
<?php
/**
* 验证手机号格式
* @param $phone sting 手机号
* @return bool
*/
if(!function_exists('getExceptionMsg')){
function getExceptionMsg($code,$msg)
{
return response()->json([
'code' => $code,
'msg' => $msg,
]);
}
}
/**
* 发送curl请求
* @param $url string 请求地址
* @param $data array 请求参数
* @return json
*/
if(!function_exists('getSendCurl')){
function getSendCurl($url, $data, $timeout = 30){
try {
//curl 调用
$data = json_encode($data);
$curl = curl_init();
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data)));
curl_setopt($curl, CURLOPT_URL, $url);
$timeout = intval ( $timeout ) ? intval ( $timeout ) : 30;
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
$result = curl_exec($curl);
$curl_err_code = curl_errno($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
return $result;
} catch (exception $e) {
throw new Exception($e->getMessage());
}
}
}
/**
* 验证手机号格式
* @param $phone sting 手机号
* @return bool
*/
if(!function_exists('getVerifyPhone')){
function getVerifyPhone($phone)
{
if (empty($phone)||!preg_match("/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|4|5|6|7|8|9]|17[0-9])|166|198|199\d{8}$/", $phone)) {
return false;
}
return true;
}
}
/**
* 检测json数据格式是否正确
*
* @param $string string 字符串
* @return bool
*/
if (!function_exists('getIsJsonFormat')) {
function getIsJsonFormat($string)
{
if (is_string($string) and $string !== '') {
@json_decode($string);
return json_last_error() ? false : true;
} else {
return false;
}
}
}
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
//
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
<?php
namespace App\Exceptions;
use App\Http\Success;
use Exception;
class CommonException extends Exception
{
public function render($msg,$code)
{
$result = [
'code' => $code,
'msg' => $msg,
];
// 显示中文
return response()->json($result);
}
}
\ No newline at end of file
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that are not reported.
*
* @var array
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed for validation exceptions.
*
* @var array
*/
protected $dontFlash = [
'password',
'password_confirmation',
];
/**
* Report or log an exception.
*
* @param \Exception $exception
* @return void
*/
public function report(Exception $exception)
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\Cdn\ICdnService;
class CdnController extends BaseController
{
private $time;
private $cdnService;
public function __construct(ICdnService $cdnService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->cdnService = $cdnService;
}
/**
* 新增cdn
* @return array
* @date 2020/11/18
* @author live
*/
public function getCdnAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'originSite' => 'required|string',
'useDomain' => 'required|string',
'remark' => 'required|string',
'cdnDomain' => 'required|string',
'cloudId' => 'required|numeric',
'projectId' => 'required|numeric'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->cdnService->getCdnAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* cdn列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getCdnList(Request $request)
{
$postData = $request->all();
try {
$data = $this->cdnService->getCdnList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑cdn
* @return array
* @date 2020/11/18
* @author live
*/
public function getCdnEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'originSite' => 'required|string',
'useDomain' => 'required|string',
'remark' => 'required|string',
'cdnDomain' => 'required|string',
'cloudId' => 'required|numeric',
'projectId' => 'required|numeric',
'createdAt' => 'required|string'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->cdnService->getCdnEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除cdn
* @return array
* @date 2020/11/18
* @author live
*/
public function getCdnDel(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'originSite' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->cdnService->getCdnDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\Cloud\ICloudService;
class CloudController extends BaseController
{
private $time;
private $cloudService;
public function __construct(ICloudService $cloudService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->cloudService = $cloudService;
}
/**
* 新增云平台账号
* @return array
* @date 2020/11/18
* @author live
*/
public function getCloudAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'cloudName' => 'required|string',
'accountName' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->cloudService->getCloudAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 云平台列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getCloudList(Request $request)
{
$postData = $request->all();
try {
$data = $this->cloudService->getCloudList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑云平台账号
* @return array
* @date 2020/11/16
* @author live
*/
public function getCloudEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'cloudName' => 'required|string',
'accountName' => 'required|string',
'createdAt' => 'required|string'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->cloudService->getCloudEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除云平台账号
* @return array
* @date 2020/11/16
* @author live
*/
public function getCloudDel(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'cloudName' => 'required|string',
'accountName' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->cloudService->getCloudDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 下拉框列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getCloudSelectList(Request $request)
{
try {
$data = $this->cloudService->getCloudSelectList();
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\Cvm\ICvmService;
class CvmController extends BaseController
{
private $time;
private $cvmService;
public function __construct(ICvmService $cvmService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->cvmService = $cvmService;
}
/**
* cvm列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getCvmList(Request $request)
{
$postData = $request->all();
try {
$data = $this->cvmService->getCvmList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除cvm
* @return array
* @date 2020/11/18
* @author live
*/
public function getCvmDel(Request $request){
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'instanceId' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->cvmService->getCvmDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 新增cvm
* @return array
* @date 2020/11/23
* @author live
*/
public function getCvmAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'instanceName' => 'required|string',
'instanceId' => 'required|string',
'system' => 'required|string',
'publicId' => 'required|string',
'intranetId' => 'required|string',
'capacity' => 'required|string',
'payType' => 'required|numeric',
'networkType' => 'required|numeric',
'region' => 'required|string',
'config' => 'required|string',
'expireTime' => 'required|string',
'cloudId' => 'required|numeric',
'projectId' => 'required|numeric'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->cvmService->getCvmAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑cvm
* @return array
* @date 2020/11/23
* @author live
*/
public function getCvmEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'instanceName' => 'required|string',
'instanceId' => 'required|string',
'system' => 'required|string',
'publicId' => 'required|string',
'intranetId' => 'required|string',
'capacity' => 'required|string',
'payType' => 'required|numeric',
'networkType' => 'required|numeric',
'region' => 'required|string',
'config' => 'required|string',
'expireTime' => 'required|string',
'cloudId' => 'required|numeric',
'projectId' => 'required|numeric',
'createdAt' => 'required|string'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->cvmService->getCvmEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\Records\IRecordsService;
class DomainRecordsController extends BaseController
{
private $time;
private $recordsService;
public function __construct(IRecordsService $recordsService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->recordsService = $recordsService;
}
/**
* 新增记录
* @return array
* @date 2020/11/18
* @author live
*/
public function getRecordsAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'record' => 'required|string',
'recordType' => 'required|numeric',
'ispLine' => 'required|numeric',
'recordValue' => 'required|string',
'remark' => 'required|string',
'domainId' => 'required|numeric'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->recordsService->getRecordsAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 记录列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getRecordsList(Request $request)
{
$postData = $request->all();
try {
$data = $this->recordsService->getRecordsList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑记录
* @return array
* @date 2020/11/18
* @author live
*/
public function geRecordsEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'record' => 'required|string',
'recordType' => 'required|numeric',
'ispLine' => 'required|numeric',
'recordValue' => 'required|string',
'remark' => 'required|string',
'domainId' => 'required|numeric',
'createdAt' => 'required|string'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->recordsService->getRecordsEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除记录
* @return array
* @date 2020/11/18
* @author live
*/
public function getRecordsDel(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'record' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->recordsService->getRecordsDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\Domains\IDomainsService;
class DomainsController extends BaseController
{
private $time;
private $domainsService;
public function __construct(IDomainsService $domainsService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->domainsService = $domainsService;
}
/**
* 新增域名
* @return array
* @date 2020/11/18
* @author live
*/
public function getDomainsAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'name' => 'required|string',
'registrant' => 'required|string',
'registrantEmail' => 'required|email',
'registrar' => 'required|numeric',
'expireDate' => 'required|string',
'beianInfo' => 'required|string',
'hoster' => 'required|numeric',
'projectId' => 'required|numeric'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->domainsService->getDomainsAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 域名列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getDomainsList(Request $request)
{
$postData = $request->all();
try {
$data = $this->domainsService->getDomainsList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑域名
* @return array
* @date 2020/11/18
* @author live
*/
public function getDomainsEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'name' => 'required|string',
'registrant' => 'required|string',
'registrantEmail' => 'required|email',
'registrar' => 'required|numeric',
'expireDate' => 'required|string',
'beianInfo' => 'required|string',
'hoster' => 'required|numeric',
'projectId' => 'required|numeric',
'createdAt' => 'required|string'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->domainsService->getDomainsEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除域名
* @return array
* @date 2020/11/18
* @author live
*/
public function getDomainsDel(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'name' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->domainsService->getDomainsDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 域名下拉列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getDomainsSelectList()
{
try {
$data = $this->domainsService->getDomainsSelectList();
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\Options\IOptionsService;
class OptionsController extends BaseController
{
private $time;
private $optionsService;
public function __construct(IOptionsService $optionsService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->optionsService = $optionsService;
}
/**
* 新增选项卡
* @return array
* @date 2020/11/18
* @author live
*/
public function getOptionsAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'itemTag' => 'required|string',
'itemKey' => 'required|string',
'itemValue' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->optionsService->getOptionsAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 选项卡列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getOptionsList(Request $request)
{
$postData = $request->all();
try {
$data = $this->optionsService->getOptionsList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑选项卡
* @return array
* @date 2020/11/18
* @author live
*/
public function getOptionsEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'itemTag' => 'required|string',
'itemKey' => 'required|string',
'itemValue' => 'required|string'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->optionsService->geOptionsEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除选项卡
* @return array
* @date 2020/11/18
* @author live
*/
public function getOptionsDel(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'itemKey' => 'required|string',
'itemValue' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->optionsService->getOptionsDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 获取选项卡下拉
* @return array
* @date 2020/11/18
* @author live
*/
public function getOptionsSelectList(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'itemTag' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->optionsService->getOptionsSelectList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\Project\IProjectService;
class ProjectController extends BaseController
{
private $time;
private $projectService;
public function __construct(IProjectService $projectService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->projectService = $projectService;
}
/**
* 新增项目
* @return array
* @date 2020/11/17
* @author live
*/
public function getProjectAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'cnName' => 'required|string',
'enName' => 'required|string',
'mainMaster' => 'required|string',
'devMaster' => 'required|string',
'email' => 'required|email',
'phone' => 'required|regex:/^1[345789][0-9]{9}$/'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->projectService->getProjectAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 项目列表
* @return array
* @date 2020/11/16
* @author live
*/
public function getProjectList(Request $request)
{
$postData = $request->all();
try {
$data = $this->projectService->getProjectList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑项目
* @return array
* @date 2020/11/16
* @author live
*/
public function getProjectEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'cnName' => 'required|string',
'enName' => 'required|string',
'mainMaster' => 'required|string',
'devMaster' => 'required|string',
'email' => 'required|email',
'phone' => 'required|regex:/^1[345789][0-9]{9}$/',
'createdAt' => 'required|string'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->projectService->getProjectEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除项目
* @return array
* @date 2020/11/16
* @author live
*/
public function getProjectDel(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'enName' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->projectService->getProjectDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 项目下拉框列表
* @return array
* @date 2020/11/17
* @author live
*/
public function getProjectSelectList(Request $request)
{
try {
$data = $this->projectService->getProjectSelectList();
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\Rdb\IRdbService;
class RdbController extends BaseController
{
private $time;
private $rdbService;
public function __construct(IRdbService $rdbService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->rdbService = $rdbService;
}
/**
* rdb列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getRdbList(Request $request)
{
$postData = $request->all();
try {
$data = $this->rdbService->getRdbList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除rdb
* @return array
* @date 2020/11/18
* @author live
*/
public function getRdbDel(Request $request){
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'instanceId' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->rdbService->getRdbDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 新增rdb
* @return array
* @date 2020/11/23
* @author live
*/
public function getRdbAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'instanceName' => 'required|string',
'instanceId' => 'required|string',
'type' => 'required|string',
'mysqlType' => 'required|string',
'capacity' => 'required|string',
'payType' => 'required|numeric',
'networkType' => 'required|numeric',
'region' => 'required|string',
'expireTime' => 'required|string',
'cloudId' => 'required|numeric',
'projectId' => 'required|numeric'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->rdbService->getRdbAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑rdb
* @return array
* @date 2020/11/23
* @author live
*/
public function getRdbEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'instanceName' => 'required|string',
'instanceId' => 'required|string',
'type' => 'required|string',
'mysqlType' => 'required|string',
'capacity' => 'required|string',
'payType' => 'required|numeric',
'networkType' => 'required|numeric',
'region' => 'required|string',
'expireTime' => 'required|string',
'cloudId' => 'required|numeric',
'projectId' => 'required|numeric',
'createdAt' => 'required|string'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->rdbService->getRdbEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\Redis\IRedisService;
class RedisController extends BaseController
{
private $time;
private $redisService;
public function __construct(IRedisService $redisService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->redisService = $redisService;
}
/**
* redis列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getRedisList(Request $request)
{
$postData = $request->all();
try {
$data = $this->redisService->getRedisList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除redis
* @return array
* @date 2020/11/18
* @author live
*/
public function getRedisDel(Request $request){
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'instanceId' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->redisService->getRedisDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 新增redis
* @return array
* @date 2020/11/23
* @author live
*/
public function getRedisAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'instanceName' => 'required|string',
'instanceId' => 'required|string',
'capacity' => 'required|string',
'quota' => 'required|string',
'edition' => 'required|string',
'norms' => 'required|string',
'payType' => 'required|numeric',
'networkType' => 'required|numeric',
'region' => 'required|string',
'expireTime' => 'required|string',
'cloudId' => 'required|numeric',
'projectId' => 'required|numeric'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->redisService->getRedisAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑redis
* @return array
* @date 2020/11/23
* @author live
*/
public function getRedisEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'instanceName' => 'required|string',
'instanceId' => 'required|string',
'capacity' => 'required|string',
'quota' => 'required|string',
'edition' => 'required|string',
'norms' => 'required|string',
'payType' => 'required|numeric',
'networkType' => 'required|numeric',
'region' => 'required|string',
'expireTime' => 'required|string',
'cloudId' => 'required|numeric',
'projectId' => 'required|numeric',
'createdAt' => 'required|string'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->redisService->getRedisEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\Slb\ISlbService;
class SlbController extends BaseController
{
private $time;
private $slbService;
public function __construct(ISlbService $slbService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->slbService = $slbService;
}
/**
* slb列表
* @return array
* @date 2020/11/18
* @author live
*/
public function getSlbList(Request $request)
{
$postData = $request->all();
try {
$data = $this->slbService->getSlbList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除slb
* @return array
* @date 2020/11/18
* @author live
*/
public function getSlbDel(Request $request){
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'instanceId' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->slbService->getSlbDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 新增slb
* @return array
* @date 2020/11/23
* @author live
*/
public function getSlbAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'instanceName' => 'required|string',
'instanceId' => 'required|string',
'outerIp' => 'required|string',
'backendIpList' => 'required|string',
'cloudId' => 'required|numeric',
'projectId' => 'required|numeric'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->slbService->getSlbAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑slb
* @return array
* @date 2020/11/23
* @author live
*/
public function getSlbEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'instanceName' => 'required|string',
'instanceId' => 'required|string',
'outerIp' => 'required|string',
'backendIpList' => 'required|string',
'cloudId' => 'required|numeric',
'projectId' => 'required|numeric',
'createdAt' => 'required|string'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->slbService->getSlbEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;
use Exception;
use Carbon\Carbon;
use Illuminate\Validation\Rule;
use App\Services\User\IUserService;
class UserController extends BaseController
{
private $time;
private $userService;
public function __construct(IUserService $userService)
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
$this->userService = $userService;
}
/**
* 用户登陆
* @return array
* @date 2020/11/16
* @author live
*/
public function getUserLogin(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'name' => 'required|string',
'pwd' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->userService->getLogin($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 用户登出
* @return array
* @date 2020/11/16
* @author live
*/
public function getUserLogout(Request $request)
{
$token = $request->header('token');
try {
$data = $this->userService->getLoginOut($token);
return $this->getSuccessMsg($data,'退出成功');
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 用户列表
* @return array
* @date 2020/11/16
* @author live
*/
public function getUserList(Request $request)
{
$postData = $request->all();
try {
$data = $this->userService->getUserList($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 新增用户
* @return array
* @date 2020/11/16
* @author live
*/
public function getUserAdd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'name' => 'required|string',
'realName' => 'required|string',
'email' => 'required|email',
'phone' => 'required|regex:/^1[345789][0-9]{9}$/',
'pwd' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->userService->getUserAdd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 编辑用户
* @return array
* @date 2020/11/16
* @author live
*/
public function getUserEdit(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'realName' => 'required|string',
'email' => 'required|email',
'phone' => 'regex:/^1[345789][0-9]{9}$/'
]);
if($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->userService->getUserEdit($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 删除用户
* @return array
* @date 2020/11/16
* @author live
*/
public function getUserDel(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'name' => 'required|string'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->userService->getUserDel($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
/**
* 修改用户登录密码
* @return array
* @date 2020/11/16
* @author live
*/
public function getResetUserPwd(Request $request)
{
$postData = $request->all();
$validate = Validator::make($postData, [
'id' => 'required|numeric',
'name' => 'required|string',
'pwd' => 'required|string|min:6'
]);
if ($validate->fails()) return $this->getErrorMsg('1001', config('msg.common.1001'));
try {
$data = $this->userService->getResetUserPwd($postData);
return $this->getSuccessMsg($data);
} catch (Exception $e) {
return $this->getErrorMsg($e->getCode(), $e->getMessage());
}
}
}
\ No newline at end of file
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
class ForgotPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset emails and
| includes a trait which assists in sending these notifications from
| your application to your users. Feel free to explore this trait.
|
*/
use SendsPasswordResetEmails;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
}
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
}
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
class ResetPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset requests
| and uses a simple trait to include this behavior. You're free to
| explore this trait and override any methods you wish to tweak.
|
*/
use ResetsPasswords;
/**
* Where to redirect users after resetting their password.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
}
<?php
namespace App\Http\Controllers;
class BaseController extends Controller
{
/**
* @param array $data
* @param bool $needObject 数据为空时是否需要以对象的方式返回
* @param string $code
* @param string $msg
* @return \Illuminate\Http\JsonResponse
*/
protected function getSuccessMsg($data = array(), $msg = '操作成功', $needObject = true, $code = '200')
{
return response()->json([
'code' => $code,
'msg' => $msg,
'data' => $data ? $data : ($needObject ? (object)array() : []),
]);
}
protected function getErrorMsg($code = '', $msg = '')
{
return response()->json([
'code' => $code,
'msg' => $msg,
]);
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\EnableCrossRequestMiddleware::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'login' => \App\Http\Middleware\LoginForApi::class,
];
}
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode as Middleware;
class CheckForMaintenanceMode extends Middleware
{
/**
* The URIs that should be reachable while maintenance mode is enabled.
*
* @var array
*/
protected $except = [
//
];
}
<?php
namespace App\Http\Middleware;
use Closure;
class EnableCrossRequestMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request);
$origin = $request->server('HTTP_ORIGIN') ? $request->server('HTTP_ORIGIN') : '';
$allow_origin = [
'http://localhost:8000',
];
//if (in_array($origin, $allow_origin)) {
$response->header('Access-Control-Allow-Origin', $origin);
$response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization, X-XSRF-TOKEN');
$response->header('Access-Control-Expose-Headers', 'Authorization, authenticated');
$response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS');
$response->header('Access-Control-Allow-Credentials', 'true');
// }
return $response;
}
}
<?php
namespace App\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
class EncryptCookies extends Middleware
{
/**
* The names of the cookies that should not be encrypted.
*
* @var array
*/
protected $except = [
//
];
}
<?php
namespace App\Http\Middleware;
use Closure;
use Exception;
use Illuminate\Http\Request;
use App\Models\AdminModel;
use Illuminate\Support\Facades\Cache;
class LoginForApi
{
/**
*
* @param $request
* @param Closure $next
* @return array|mixed
*/
public function handle(Request $request, Closure $next)
{
$userToken = $request->header('token','');
if($userToken == '') return getExceptionMsg(401,config('msg.common.401'));
$userToken = MD5($userToken);
$user = AdminModel::where('token',$userToken)->first();
if(!$user) return getExceptionMsg(401,config('msg.common.401'));
if(!Cache::has('login_'.$userToken)) return getExceptionMsg(401,config('msg.common.401'));
Cache::put('login_'.$userToken,1,60);
$request['user'] = $user->toArray();
unset($user);
return $next($request);
}
}
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
return $next($request);
}
}
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
class TrimStrings extends Middleware
{
/**
* The names of the attributes that should not be trimmed.
*
* @var array
*/
protected $except = [
'password',
'password_confirmation',
];
}
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;
class TrustProxies extends Middleware
{
/**
* The trusted proxies for this application.
*
* @var array
*/
protected $proxies;
/**
* The headers that should be used to detect proxies.
*
* @var int
*/
protected $headers = Request::HEADER_X_FORWARDED_ALL;
}
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
//
];
}
<?php
namespace App\Models;
use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class AdminModel extends Authenticatable implements JWTSubject
{
use Notifiable;
protected $connection = 'mysql';
protected $table = 'cc_admin';
/**
* Get the identifier that will be stored in the subject claim of the JWT.
*
* @return mixed
*/
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
//定义添加人的关系
public function optionUser(){
return $this->belongsTo('App\Models\AdminModel','option_id');
}
}
\ No newline at end of file
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class BaseModel extends Model
{
}
\ No newline at end of file
<?php
namespace App\Models;
use App\Models\BaseModel;
class CdnModel extends BaseModel
{
protected $connection = 'mysql';
protected $table = 'cc_cdn';
/**
* 关联项目
* @date 2020/11/18
* @author live
*/
public function getRelationProject(){
return $this->belongsTo('App\Models\ProjectModel','project_id');
}
/**
* 关联云平台
* @date 2020/11/18
* @author live
*/
public function getCloudProject(){
return $this->belongsTo('App\Models\CloudModel','cloud_id');
}
}
<?php
namespace App\Models;
use App\Models\BaseModel;
class CloudModel extends BaseModel
{
protected $connection = 'mysql';
protected $table = 'cc_cloud_providers';
}
\ No newline at end of file
<?php
namespace App\Models;
use App\Models\BaseModel;
class CvmModel extends BaseModel
{
protected $connection = 'mysql';
protected $table = 'cc_cvm';
/**
* 关联项目
* @date 2020/11/18
* @author live
*/
public function getRelationProject(){
return $this->belongsTo('App\Models\ProjectModel','project_id');
}
/**
* 关联云平台
* @date 2020/11/18
* @author live
*/
public function getCloudProject(){
return $this->belongsTo('App\Models\CloudModel','cloud_id');
}
/**
* 付费方式
* @date 2020/11/18
* @author live
*/
public function getRelationPayType(){
return $this->belongsTo('App\Models\OptionsModel','pay_type');
}
/**
* 关联网络类型
* @date 2020/10/18
* @author live
*/
public function getRelationNetworkType(){
return $this->belongsTo('App\Models\OptionsModel','network_type');
}
}
<?php
namespace App\Models;
use App\Models\BaseModel;
class DomainRecordsModel extends BaseModel
{
protected $connection = 'mysql';
protected $table = 'cc_domain_records';
/**
* 关联记录类型
* @date 2020/11/18
* @author live
*/
public function getRelationRecordType(){
return $this->belongsTo('App\Models\OptionsModel','record_type');
}
/**
* 关联线路类型
* @date 2020/11/18
* @author live
*/
public function getRelationIspLine(){
return $this->belongsTo('App\Models\OptionsModel','isp_line');
}
/**
* 关联域名
* @date 2020/11/18
* @author live
*/
public function getRelationDomain(){
return $this->belongsTo('App\Models\DomainsModel','domain_id');
}
}
<?php
namespace App\Models;
use App\Models\BaseModel;
class DomainsModel extends BaseModel
{
protected $connection = 'mysql';
protected $table = 'cc_domains';
/**
* 关联注册商
* @date 2020/11/18
* @author live
*/
public function getRelationRegistrar(){
return $this->belongsTo('App\Models\OptionsModel','registrar');
}
/**
* 关联托管商
* @date 2020/11/18
* @author live
*/
public function getRelationHoster(){
return $this->belongsTo('App\Models\OptionsModel','hoster');
}
/**
* 关联项目
* @date 2020/11/18
* @author live
*/
public function getRelationProject(){
return $this->belongsTo('App\Models\ProjectModel','project_id');
}
}
<?php
namespace App\Models;
use App\Models\BaseModel;
class OptionsModel extends BaseModel
{
protected $connection = 'mysql';
protected $table = 'cc_options';
}
\ No newline at end of file
<?php
namespace App\Models;
use App\Models\BaseModel;
class ProjectModel extends BaseModel
{
protected $connection = 'mysql';
protected $table = 'cc_projects';
}
<?php
namespace App\Models;
use App\Models\BaseModel;
class RdbModel extends BaseModel
{
protected $connection = 'mysql';
protected $table = 'cc_rdb';
/**
* 关联项目
* @date 2020/11/18
* @author live
*/
public function getRelationProject(){
return $this->belongsTo('App\Models\ProjectModel','project_id');
}
/**
* 关联云平台
* @date 2020/11/18
* @author live
*/
public function getCloudProject(){
return $this->belongsTo('App\Models\CloudModel','cloud_id');
}
/**
* 付费方式
* @date 2020/11/18
* @author live
*/
public function getRelationPayType(){
return $this->belongsTo('App\Models\OptionsModel','pay_type');
}
/**
* 关联网络类型
* @date 2020/11/18
* @author live
*/
public function getRelationNetworkType(){
return $this->belongsTo('App\Models\OptionsModel','network_type');
}
}
<?php
namespace App\Models;
use App\Models\BaseModel;
class RedisModel extends BaseModel
{
protected $connection = 'mysql';
protected $table = 'cc_redis';
/**
* 关联项目
* @date 2020/11/18
* @author live
*/
public function getRelationProject(){
return $this->belongsTo('App\Models\ProjectModel','project_id');
}
/**
* 关联云平台
* @date 2020/11/18
* @author live
*/
public function getCloudProject(){
return $this->belongsTo('App\Models\CloudModel','cloud_id');
}
/**
* 付费方式
* @date 2020/11/18
* @author live
*/
public function getRelationPayType(){
return $this->belongsTo('App\Models\OptionsModel','pay_type');
}
/**
* 关联网络类型
* @date 2020/11/18
* @author live
*/
public function getRelationNetworkType(){
return $this->belongsTo('App\Models\OptionsModel','network_type');
}
}
<?php
namespace App\Models;
use App\Models\BaseModel;
class SlbModel extends BaseModel
{
protected $connection = 'mysql';
protected $table = 'cc_slb';
/**
* 关联项目
* @date 2020/11/18
* @author live
*/
public function getRelationProject(){
return $this->belongsTo('App\Models\ProjectModel','project_id');
}
/**
* 关联云平台
* @date 2020/11/18
* @author live
*/
public function getCloudProject(){
return $this->belongsTo('App\Models\CloudModel','cloud_id');
}
}
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->bind('App\Services\User\IUserService', 'App\Services\User\UserService');
$this->app->bind('App\Services\Project\IProjectService', 'App\Services\Project\ProjectService');
$this->app->bind('App\Services\Cloud\ICloudService', 'App\Services\Cloud\CloudService');
$this->app->bind('App\Services\Cdn\ICdnService', 'App\Services\Cdn\CdnService');
$this->app->bind('App\Services\Options\IOptionsService', 'App\Services\Options\OptionsService');
$this->app->bind('App\Services\Domains\IDomainsService', 'App\Services\Domains\DomainsService');
$this->app->bind('App\Services\Records\IRecordsService', 'App\Services\Records\RecordsService');
$this->app->bind('App\Services\Slb\ISlbService', 'App\Services\Slb\SlbService');
$this->app->bind('App\Services\Cvm\ICvmService', 'App\Services\Cvm\CvmService');
$this->app->bind('App\Services\Rdb\IRdbService', 'App\Services\Rdb\RdbService');
$this->app->bind('App\Services\Redis\IRedisService', 'App\Services\Redis\RedisService');
}
}
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
//
}
}
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Broadcast;
class BroadcastServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Broadcast::routes();
require base_path('routes/channels.php');
}
}
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Event;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
'App\Events\Event' => [
'App\Listeners\EventListener',
],
];
/**
* Register any events for your application.
*
* @return void
*/
public function boot()
{
parent::boot();
//
}
}
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
class RouteServiceProvider extends ServiceProvider
{
/**
* This namespace is applied to your controller routes.
*
* In addition, it is set as the URL generator's root namespace.
*
* @var string
*/
protected $namespace = 'App\Http\Controllers';
/**
* Define your route model bindings, pattern filters, etc.
*
* @return void
*/
public function boot()
{
//
parent::boot();
}
/**
* Define the routes for the application.
*
* @return void
*/
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
//
}
/**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*
* @return void
*/
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}
/**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*
* @return void
*/
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
}
<?php
namespace App\Services\Cdn;
use App\Models\CdnModel;
use App\Services\Cdn\ICdnService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
class CdnService implements ICdnService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* 新增cdn
* @return int
* @date 2020/11/18
* @author live
*/
public function getCdnAdd($postData)
{
$row = new CdnModel();
$row->origin_site = $postData['originSite'] ?? '';
$row->use_domain = $postData['useDomain'] ?? '';
$row->remark = $postData['remark'] ?? '';
$row->cdn_domain = $postData['cdnDomain'] ?? '';
$row->cloud_id = $postData['cloudId'] ?? '';
$row->project_id = $postData['projectId'] ?? '';
$row->created_at = $postData['createdAt'] ?? $this->time;
if( $row->save()) return $row->id;
throw new Exception(config('msg.cdn.5001'),5001);
}
/**
* cdn列表
* @return array
* @date 2020/10/18
* @author live
*/
public function getCdnList($postData)
{
$array = ['totalNum'=>0,'totalPage'=>0,'data'=>[]];
$originSite = $postData['originSite']??'';
$cloudId = $postData['cloudId']??0;
$projectId = $postData['projectId']??0;
$pagePerNum = $postData['pageSize']??20;
$currentPage = $postData['page']??1;
$cdns = CdnModel::with(['getRelationProject:id,cn_name,en_name','getCloudProject:id,cloud_name,account_name'])->when($originSite != '', function ($query) use ($originSite) {
return $query->where('origin_site', 'like',$originSite.'%');
})->when($cloudId > 0, function ($query) use ($cloudId) {
return $query->where('cloud_id',$cloudId);
})->when($projectId > 0, function ($query) use ($projectId) {
return $query->where('project_id',$projectId);
})->select('id','origin_site','use_domain','remark','cdn_domain','cloud_id','project_id','created_at')->orderBy('id','DESC')->paginate($pagePerNum, ['*'], 'currentPage',$currentPage);
$array['totalNum'] = $cdns->total();
$array['totalPage'] = $cdns->lastPage();
foreach($cdns as $cdn){
$tem['id'] = $cdn->id;
$tem['originSite'] = $cdn->origin_site;
$tem['useDomain'] = $cdn->use_domain;
$tem['remark'] = $cdn->remark;
$tem['cdnDomain'] = $cdn->cdn_domain;
$tem['projectId'] = $cdn->project_id;
$tem['projecCnName'] = $cdn->getRelationProject->cn_name ?? '';
$tem['projecEnName'] = $cdn->getRelationProject->en_name ?? '';
$tem['cloudId'] = $cdn->cloud_id;
$tem['cloudName'] = $cdn->getCloudProject->cloud_name ?? '';
$tem['cloudAccount'] = $cdn->getCloudProject->account_name ?? '';
$tem['created_at'] = Carbon::parse($cdn->created_at)->format('Y-m-d H:i:s');
$array['data'][] = $tem;
}
unset($cdns,$cdn,$tem);
return $array;
}
/**
* cdn编辑
* @return int
* @date 2020/10/18
* @author live
*/
public function getCdnEdit($postData)
{
$cdn = CdnModel::find($postData['id']);
if(!$cdn) throw new Exception(config('msg.cdn.5002'),5002);
$cdn->origin_site = $postData['originSite'] ?? '';
$cdn->use_domain = $postData['useDomain'] ?? '';
$cdn->remark = $postData['remark'] ?? '';
$cdn->cdn_domain = $postData['cdnDomain'] ?? '';
$cdn->cloud_id = $postData['cloudId'] ?? '';
$cdn->project_id = $postData['projectId'] ?? '';
$cdn->created_at = $postData['createdAt'];
if($cdn->save()) return $cdn->id;
throw new Exception(config('msg.cdn.5003'),5003);
}
/**
* 删除cdn
* @return bool
* @date 2020/10/18
* @author live
*/
public function getCdnDel($postData)
{
$cdn = CdnModel::where('id',$postData['id'])->where('origin_site',$postData['originSite'])->first();
if(!$cdn) throw new Exception(config('msg.cdn.5002'),5002);
if($cdn->delete()) return true;
throw new Exception(config('msg.cdn.5004'),5004);
}
}
<?php
namespace App\Services\Cdn;
interface ICdnService
{
public function getCdnAdd($postData);//cdn添加
public function getCdnList($postData);//cdn列表
public function getCdnEdit($postData);//cdn编辑
public function getCdnDel($postData);//cdn删除
}
<?php
namespace App\Services\Cloud;
use App\Models\CloudModel;
use App\Services\Cloud\ICloudService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
class CloudService implements ICloudService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* 新增云平台
* @return int
* @date 2020/11/18
* @author live
*/
public function getCloudAdd($postData)
{
$verity = self::getVerityRepeatCloud(0,$postData['cloudName'],$postData['accountName']);
if($verity){
$row = new CloudModel();
$row->cloud_name = $postData['cloudName'] ?? '';
$row->account_name = $postData['accountName'] ?? '';
$row->created_at = $postData['createdAt'] ?? $this->time;
if( $row->save()) return $row->id;
throw new Exception(config('msg.cloud.4002'),4002);
}
throw new Exception(config('msg.cloud.4001'),4001);
}
/**
* 检验云平台账号重复性
* @return bool
* @date 2020/10/18
* @author live
*/
public static function getVerityRepeatCloud($id,$cloudName,$accountName)
{
$verity = CloudModel::when($id > 0, function ($query) use ($id) {
return $query->where('id', '!=',$id);
})->where('cloud_name',$cloudName)->where('account_name',$accountName)->select('id')->first();
if($verity) return false;
return true;
}
/**
* 云平台账号列表
* @return array
* @date 2020/10/18
* @author live
*/
public function getCloudList($postData)
{
$array = ['totalNum'=>0,'totalPage'=>0,'data'=>[]];
$key = $postData['key']??'';
$pagePerNum = $postData['pageSize']??20;
$currentPage = $postData['page']??1;
$clouds = CloudModel::when($key != '', function ($query) use ($key) {
return $query->where('cloud_name', 'like',$key.'%')->orWhere('account_name', 'like',$key.'%');
})->select('id','cloud_name','account_name','created_at')->orderBy('id','DESC')->paginate($pagePerNum, ['*'], 'currentPage',$currentPage);
$array['totalNum'] = $clouds->total();
$array['totalPage'] = $clouds->lastPage();
foreach($clouds as $cloud){
$tem['id'] = $cloud->id;
$tem['cloudName'] = $cloud->cloud_name;
$tem['accountName'] = $cloud->account_name;
$tem['created_at'] = Carbon::parse($cloud->created_at)->format('Y-m-d H:i:s');
$array['data'][] = $tem;
}
unset($clouds,$cloud,$tem);
return $array;
}
/**
* 云平台账号编辑
* @return int
* @date 2020/10/18
* @author live
*/
public function getCloudEdit($postData)
{
$verity = self::getVerityRepeatCloud($postData['id'],$postData['cloudName'],$postData['accountName']);
if($verity){
$cloud = CloudModel::find($postData['id']);
if(!$cloud) throw new Exception(config('msg.project.4003'),4003);
$cloud->cloud_name = $postData['cloudName'];
$cloud->account_name = $postData['accountName'];
$cloud->created_at = $postData['createdAt'];
if($cloud->save()) return $cloud->id;
throw new Exception(config('msg.cloud.4004'),4004);
}
throw new Exception(config('msg.cloud.4001'),4001);
}
/**
* 删除云平台账号
* @return bool
* @date 2020/10/17
* @author live
*/
public function getCloudDel($postData)
{
$cloud = CloudModel::where('id',$postData['id'])->where('cloud_name',$postData['cloudName'])->where('account_name',$postData['accountName'])->first();
if(!$cloud) throw new Exception(config('msg.cloud.4003'),4003);
if($cloud->delete()) return true;
throw new Exception(config('msg.cloud.4005'),4005);
}
/**
* 下拉框列表
* @return array
* @date 2020/10/17
* @author live
*/
public function getCloudSelectList()
{
$clouds = CloudModel::select('id','cloud_name as cloudName','account_name as accountName')->orderBy('id','DESC')->get()->toArray();
return $clouds;
}
}
<?php
namespace App\Services\Cloud;
interface ICloudService
{
public function getCloudAdd($postData);//云平台添加
public function getCloudList($postData);//云平台列表
public function getCloudEdit($postData);//云平台编辑
public function getCloudDel($postData);//云平台删除
public function getCloudSelectList();//云平台下拉框列表
}
<?php
namespace App\Services\Common;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
class CommonService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
}
<?php
namespace App\Services\Cvm;
use App\Models\CvmModel;
use App\Services\Cvm\ICvmService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
class CvmService implements ICvmService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* cvm列表
* @return array
* @date 2020/10/18
* @author live
*/
public function getCvmList($postData)
{
$array = ['totalNum'=>0,'totalPage'=>0,'data'=>[]];
$instanceName = $postData['instanceName']??'';
$payType = $postData['payType']??'';
$networkType = $postData['networkType']??'';
$cloudId = $postData['cloudId']??0;
$projectId = $postData['projectId']??0;
$pagePerNum = $postData['pageSize']??20;
$currentPage = $postData['page']??1;
$cvms = CvmModel::with(['getRelationProject:id,cn_name,en_name','getCloudProject:id,cloud_name,account_name','getRelationPayType:id,item_value','getRelationNetworkType:id,item_value'])->when($instanceName != '', function ($query) use ($instanceName) {
return $query->where('instance_name', 'like',$instanceName.'%');
})->when($payType > 0, function ($query) use ($payType) {
return $query->where('pay_type',$payType);
})->when($networkType > 0, function ($query) use ($networkType) {
return $query->where('network_type',$networkType);
})->when($cloudId > 0, function ($query) use ($cloudId) {
return $query->where('cloud_id',$cloudId);
})->when($projectId > 0, function ($query) use ($projectId) {
return $query->where('project_id',$projectId);
})->select('id','instance_name','instance_id','system','public_id','intranet_id','capacity','pay_type','network_type','region','config','expire_time','cloud_id','project_id','created_at')->orderBy('expire_time','ASC')->paginate($pagePerNum, ['*'], 'currentPage',$currentPage);
$array['totalNum'] = $cvms->total();
$array['totalPage'] = $cvms->lastPage();
foreach($cvms as $cvm){
$tem['id'] = $cvm->id;
$tem['instanceName'] = $cvm->instance_name;
$tem['instanceId'] = $cvm->instance_id;
$tem['system'] = $cvm->system;
$tem['publicId'] = $cvm->public_id;
$tem['intranetId'] = $cvm->intranet_id;
$tem['capacity'] = $cvm->capacity;
$tem['payTypeId'] = $cvm->pay_type;
$tem['payTypeName'] = $cvm->getRelationPayType->item_value ?? '';
$tem['networkTypeId'] = $cvm->network_type;
$tem['networkTypeName'] = $cvm->getRelationNetworkType->item_value ?? '';
$tem['region'] = $cvm->region;
$tem['config'] = $cvm->config;
$tem['expire_time'] = $cvm->expire_time;
$tem['projectId'] = $cvm->project_id;
$tem['projecCnName'] = $cvm->getRelationProject->cn_name ?? '';
$tem['projecEnName'] = $cvm->getRelationProject->en_name ?? '';
$tem['cloudId'] = $cvm->cloud_id;
$tem['cloudName'] = $cvm->getCloudProject->cloud_name ?? '';
$tem['cloudAccount'] = $cvm->getCloudProject->account_name ?? '';
$tem['created_at'] = Carbon::parse($cvm->created_at)->format('Y-m-d H:i:s');
$array['data'][] = $tem;
}
unset($cvms,$cvm,$tem);
return $array;
}
/**
* 删除cvm
* @return bool
* @date 2020/10/18
* @author live
*/
public function getCvmDel($postData)
{
$cvm = CvmModel::where('id',$postData['id'])->where('instance_id',$postData['instanceId'])->first();
if(!$cvm) throw new Exception(config('msg.cvm.1303'),1303);
if($cvm->delete()) return true;
throw new Exception(config('msg.cvm.1305'),1305);
}
/**
* 新增cvm
* @return array
* @date 2020/11/23
* @author live
*/
public function getCvmAdd($postData)
{
$verity = self::getVerityRepeatCvm(0,$postData['instanceName'],$postData['instanceId']);
if(!$verity) throw new Exception(config('msg.cvm.1302'), 1302);
$row = new CvmModel();
$row->instance_name = $postData['instanceName'] ?? '';
$row->instance_id = $postData['instanceId'] ?? '';
$row->system = $postData['system'] ?? '';
$row->public_id = $postData['publicId'] ?? '';
$row->intranet_id = $postData['intranetId'] ?? '';
$row->capacity = $postData['capacity'] ?? '';
$row->pay_type = $postData['payType'] ?? '';
$row->network_type = $postData['networkType'] ?? '';
$row->region = $postData['region'] ?? '';
$row->config = $postData['config'] ?? '';
$row->expire_time = $postData['expireTime'] ?? '';
$row->cloud_id = $postData['cloudId'] ?? 0;
$row->project_id = $postData['projectId'] ?? 0;
$row->created_at = $postData['createdAt'] ?? $this->time;
if ($row->save()) return $row->id;
throw new Exception(config('msg.cvm.1301'), 1301);
}
/**
* 验证cvm重复性
* @return bool
* @date 2020/10/23
* @author live
*/
public static function getVerityRepeatCvm($id,$instanceName,$instanceId)
{
$verity = CvmModel::when($id > 0, function ($query) use ($id) {
return $query->where('id', '!=',$id);
})->where(function ($query) use ($instanceName,$instanceId) {
return $query->where('instance_name', $instanceName)->orWhere('instance_id',$instanceId);
})->select('id')->first();
if($verity) return false;
return true;
}
/**
* 编辑cvm
* @return bool
* @date 2020/10/23
* @author live
*/
public function getCvmEdit($postData)
{
$verity = self::getVerityRepeatCvm($postData['id'],$postData['instanceName'],$postData['instanceId']);
if(!$verity) throw new Exception(config('msg.cvm.1302'), 1302);
$cvm = CvmModel::find($postData['id']);
if(!$cvm) throw new Exception(config('msg.cvm.1303'),1303);
$cvm->instance_name = $postData['instanceName'] ?? '';
$cvm->instance_id = $postData['instanceId'] ?? '';
$cvm->system = $postData['system'] ?? '';
$cvm->public_id = $postData['publicId'] ?? '';
$cvm->intranet_id = $postData['intranetId'] ?? '';
$cvm->capacity = $postData['capacity'] ?? '';
$cvm->pay_type = $postData['payType'] ?? '';
$cvm->network_type = $postData['networkType'] ?? '';
$cvm->region = $postData['region'] ?? '';
$cvm->config = $postData['config'] ?? '';
$cvm->expire_time = $postData['expireTime'] ?? '';
$cvm->cloud_id = $postData['cloudId'];
$cvm->project_id = $postData['projectId'];
$cvm->created_at = $postData['createdAt'];
if($cvm->save()) return $cvm->id;
throw new Exception(config('msg.cvm.1304'),1304);
}
}
<?php
namespace App\Services\Cvm;
interface ICvmService
{
public function getCvmList($postData);//cvm列表
public function getCvmDel($postData);//删除cvm
public function getCvmAdd($postData);//新增cvm
public function getCvmEdit($postData);//编辑cvm
}
<?php
namespace App\Services\Domains;
use App\Models\DomainsModel;
use App\Services\Domains\IDomainsService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
use App\Services\Records\RecordsService;
use App\Models\DomainRecordsModel;
class DomainsService implements IDomainsService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* 新增域名
* @return int
* @date 2020/11/18
* @author live
*/
public function getDomainsAdd($postData)
{
$verity = self::getVerityRepeatDomains(0,$postData['name']);
if($verity){
$row = new DomainsModel();
$row->name = $postData['name'] ?? '';
$row->registrant = $postData['registrant'] ?? '';
$row->registrant_email = $postData['registrantEmail'] ?? '';
$row->registrar = $postData['registrar'] ?? '';
$row->expire_date = $postData['expireDate'] ?? '';
$row->beian_info = $postData['beianInfo'] ?? '';
$row->hoster = $postData['hoster'] ?? '';
$row->project_id = $postData['projectId'] ?? 0;
$row->created_at = $postData['createdAt'] ?? $this->time;
if( $row->save()) return $row->id;
throw new Exception(config('msg.domains.7001'),7001);
}
throw new Exception(config('msg.domains.7002'),7002);
}
/**
* 验证域名重复性
* @return bool
* @date 2020/10/18
* @author live
*/
public static function getVerityRepeatDomains($id,$name)
{
$verity = DomainsModel::when($id > 0, function ($query) use ($id) {
return $query->where('id', '!=',$id);
})->where('name',$name)->select('id')->first();
if($verity) return false;
return true;
}
/**
* 域名列表
* @return array
* @date 2020/10/18
* @author live
*/
public function getDomainsList($postData)
{
$array = ['totalNum'=>0,'totalPage'=>0,'data'=>[]];
$name = $postData['name']??'';
$registrant = $postData['registrant']??'';
$registrar = $postData['registrar']??0;
$hoster = $postData['hoster']??0;
$projectId = $postData['projectId']??0;
$pagePerNum = $postData['pageSize']??20;
$currentPage = $postData['page']??1;
$domains = DomainsModel::with(['getRelationRegistrar:id,item_value','getRelationHoster:id,item_value','getRelationProject:id,cn_name,en_name'])->when($name != '', function ($query) use ($name) {
return $query->where('name', 'like',$name.'%');
})->when($registrant != '', function ($query) use ($registrant) {
return $query->where('registrant', 'like',$registrant.'%');
})->when($registrar > 0, function ($query) use ($registrar) {
return $query->where('registrar',$registrar);
})->when($hoster > 0, function ($query) use ($hoster) {
return $query->where('hoster',$hoster);
})->when($projectId > 0, function ($query) use ($projectId) {
return $query->where('project_id',$projectId);
})->select('id','name','registrant','registrant_email','registrar','expire_date','beian_info','hoster','project_id','created_at')->orderBy('expire_date','ASC')->paginate($pagePerNum, ['*'], 'currentPage',$currentPage);
$array['totalNum'] = $domains->total();
$array['totalPage'] = $domains->lastPage();
$ids = [];
$domainArray = [];
foreach($domains as $domain){
$tem['id'] = $domain->id;
$tem['name'] = $domain->name;
$tem['registrant'] = $domain->registrant;
$tem['registrant_email'] = $domain->registrant_email;
$tem['registrarId'] = $domain->registrar;
$tem['registrar'] = $domain->getRelationRegistrar->item_value ?? '';
$tem['expireDate'] = $domain->expire_date;
$tem['beianInfo'] = $domain->beian_info;
$tem['hosterId'] = $domain->hoster;
$tem['hoster'] = $domain->getRelationHoster->item_value ?? '';
$tem['projecId'] = $domain->project_id;
$tem['projecCnName'] = $domain->getRelationProject->cn_name ?? '';
$tem['projecEnName'] = $domain->getRelationProject->en_name ?? '';
$tem['created_at'] = Carbon::parse($domain->created_at)->format('Y-m-d H:i:s');
$tem['childrens'] = [];
$domainArray[$domain->id] = $tem;
$ids[] = $domain->id;
}
$records = RecordsService::getDomainRecords($ids);
foreach($domainArray as $key=>$val){
$val['childrens'] = $records[$key] ?? [];
$array['data'][] = $val;
}
unset($cdns,$cdn,$tem,$ids,$records,$domainArray,$val);
return $array;
}
/**
* 域名编辑
* @return int
* @date 2020/10/18
* @author live
*/
public function getDomainsEdit($postData)
{
$verity = self::getVerityRepeatDomains($postData['id'],$postData['name']);
if(!$verity) throw new Exception(config('msg.domains.7002'),7002);
$domain = DomainsModel::find($postData['id']);
if(!$domain) throw new Exception(config('msg.domains.7003'),7003);
$domain->name = $postData['name'] ?? '';
$domain->registrant = $postData['registrant'] ?? '';
$domain->registrant_email = $postData['registrantEmail'] ?? '';
$domain->registrar = $postData['registrar'] ?? '';
$domain->expire_date = $postData['expireDate'] ?? '';
$domain->beian_info = $postData['beianInfo'] ?? '';
$domain->hoster = $postData['hoster'] ?? '';
$domain->project_id = $postData['projectId'] ?? 0;
$domain->created_at = $postData['createdAt'];
if($domain->save()) return $domain->id;
throw new Exception(config('msg.domains.7004'),7004);
}
/**
* 删除域名
* @return bool
* @date 2020/10/18
* @author live
*/
public function getDomainsDel($postData)
{
$domain = DomainsModel::where('id',$postData['id'])->where('name',$postData['name'])->first();
if(!$domain) throw new Exception(config('msg.domains.7003'),7003);
$verity = DomainRecordsModel::where('domain_id',$postData['id'])->select('id')->first();
if($verity) throw new Exception(config('msg.domains.7006'),7006);
if($domain->delete()) return true;
throw new Exception(config('msg.domains.7005'),7005);
}
/**
* 域名下拉列表
* @return array
* @date 2020/10/18
* @author live
*/
public function getDomainsSelectList()
{
$domains = DomainsModel::select('id','name')->orderBy('id','DESC')->get()->toArray();
return $domains;
}
}
<?php
namespace App\Services\Domains;
interface IDomainsService
{
public function getDomainsAdd($postData);//域名添加
public function getDomainsList($postData);//域名列表
public function getDomainsEdit($postData);//域名编辑
public function getDomainsDel($postData);//域名删除
public function getDomainsSelectList();//域名下拉列表
}
<?php
namespace App\Services\Options;
interface IOptionsService
{
public function getOptionsAdd($postData);//选项卡添加
public function getOptionsList($postData);//选项卡列表
public function geOptionsEdit($postData);//选项卡编辑
public function getOptionsDel($postData);//选项卡删除
public function getOptionsSelectList($postData);//选项卡下拉
}
<?php
namespace App\Services\Options;
use App\Models\OptionsModel;
use App\Services\Options\IOptionsService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
class OptionsService implements IOptionsService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* 新增选项卡
* @return array
* @date 2020/11/18
* @author live
*/
public function getOptionsAdd($postData)
{
$verity = self::getVerityRepeatOptions(0,$postData['itemKey'],$postData['itemValue']);
if($verity){
$row = new OptionsModel();
$row->item_key = $postData['itemKey'] ?? '';
$row->item_value = $postData['itemValue'] ?? '';
$row->item_tag = $postData['itemTag'] ?? '';
if( $row->save()) return $row->id;
throw new Exception(config('msg.options.6001'),6001);
}
throw new Exception(config('msg.options.6002'),6002);
}
/**
* 验证选项卡重复性
* @return array
* @date 2020/10/18
* @author live
*/
public static function getVerityRepeatOptions($id,$itemKey,$itemValue)
{
$verity = OptionsModel::when($id > 0, function ($query) use ($id) {
return $query->where('id', '!=',$id);
})->where('item_key',$itemKey)->where('item_value',$itemValue)->select('id')->first();
if($verity) return false;
return true;
}
/**
* 选项卡列表
* @return array
* @date 2020/10/18
* @author live
*/
public function getOptionsList($postData)
{
$array = [];
$itemTag = $postData['itemTag']??'';
$options = OptionsModel::when($itemTag != '', function ($query) use ($itemTag) {
return $query->where('item_tag', 'like',$itemTag.'%');
})->select('id','item_key','item_value','item_tag','created_at')->orderBy('id','DESC')->get();
foreach($options as $option){
$tem['id'] = $option->id;
$tem['itemKey'] = $option->item_key;
$tem['itemValue'] = $option->item_value;
$tem['created_at'] = Carbon::parse($option->created_at)->format('Y-m-d H:i:s');
$array[$option->item_tag]['tag'] = $option->item_tag;
$array[$option->item_tag]['content'][] = $tem;
}
$array = array_values($array);
unset($options,$option,$tem);
return $array;
}
/**
* 选项卡编辑
* @return int
* @date 2020/10/18
* @author live
*/
public function geOptionsEdit($postData)
{
$option = OptionsModel::find($postData['id']);
if(!$option) throw new Exception(config('msg.options.6003'),6003);
$option->item_key = $postData['itemKey'] ?? '';
$option->item_value = $postData['itemValue'] ?? '';
$option->item_tag = $postData['itemTag'] ?? '';
if($option->save()) return $option->id;
throw new Exception(config('msg.options.6004'),6004);
}
/**
* 删除选项卡
* @return bool
* @date 2020/10/18
* @author live
*/
public function getOptionsDel($postData)
{
$option = OptionsModel::where('id',$postData['id'])->where('item_key',$postData['itemKey'])->where('item_value',$postData['itemValue'])->first();
if(!$option) throw new Exception(config('msg.options.6003'),6003);
if($option->delete()) return true;
throw new Exception(config('msg.options.6005'),6005);
}
/**
* 选项卡下拉
* @return bool
* @date 2020/10/18
* @author live
*/
public function getOptionsSelectList($postData){
$itemTags = explode('#',$postData['itemTag']);
$options = OptionsModel::whereIn('item_tag',$itemTags)->select('id','item_key','item_value','item_tag')->get();
foreach($options as $option){
$tem['id'] = $option->id;
$tem['itemKey'] = $option->item_key;
$tem['itemValue'] = $option->item_value;
$array[$option->item_tag][] = $tem;
}
unset($options,$option,$tem);
return $array;
}
}
<?php
namespace App\Services\Project;
interface IProjectService
{
public function getProjectAdd($postData);//项目添加
public function getProjectList($postData);//项目列表
public function getProjectEdit($postData);//编辑项目
public function getProjectDel($postData);//删除项目
public function getProjectSelectList();//下拉框列表
}
<?php
namespace App\Services\Project;
use App\Services\Project\IProjectService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use App\Models\ProjectModel;
use Illuminate\Support\Facades\Cache;
class ProjectService implements IProjectService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* 新增项目
* @return array
* @date 2020/11/17
* @author live
*/
public function getProjectAdd($postData)
{
$verity = self::getVerityRepeatProject(0,$postData['cnName'],$postData['enName']);
if($verity){
$row = new ProjectModel();
$row->cn_name = $postData['cnName'] ?? '';
$row->en_name = $postData['enName'] ?? '';
$row->main_master = $postData['mainMaster'] ?? '';
$row->dev_master = $postData['devMaster'] ?? '';
$row->email =$postData['email'];
$row->phone = $postData['phone'];
$row->created_at = $postData['createdAt'] ?? $this->time;
if( $row->save()) return $row->id;
throw new Exception(config('msg.project.3002'),3002);
}
throw new Exception(config('msg.project.3001'),3001);
}
/**
* 检验项目重复性
* @return bool
* @date 2020/10/17
* @author live
*/
public static function getVerityRepeatProject($id,$cnName,$enName)
{
$verity = ProjectModel::when($id > 0, function ($query) use ($id) {
return $query->where('id', '!=',$id);
})->where(function ($query) use ($cnName,$enName) {
return $query->where('cn_name', $cnName)->orWhere('en_name',$enName);
})->select('id')->first();
if($verity) return false;
return true;
}
/**
* 项目列表
* @return array
* @date 2020/10/17
* @author live
*/
public function getProjectList($postData)
{
$array = ['totalNum'=>0,'totalPage'=>0,'data'=>[]];
$key = $postData['key']??'';
$pagePerNum = $postData['pageSize']??20;
$currentPage = $postData['page']??1;
$projects = ProjectModel::when($key != '', function ($query) use ($key) {
return $query->where('cn_name', 'like',$key.'%')->orWhere('en_name', 'like',$key.'%')->orWhere('main_master', 'like',$key.'%')->orWhere('dev_master', 'like',$key.'%')->orWhere('email', 'like',$key.'%');
})->select('id','cn_name','en_name','main_master','dev_master','email','phone','created_at')->orderBy('id','DESC')->paginate($pagePerNum, ['*'], 'currentPage',$currentPage);
$array['totalNum'] = $projects->total();
$array['totalPage'] = $projects->lastPage();
foreach($projects as $pro){
$tem['id'] = $pro->id;
$tem['cnName'] = $pro->cn_name;
$tem['enName'] = $pro->en_name;
$tem['mainMaster'] = $pro->main_master;
$tem['devMaster'] = $pro->dev_master;
$tem['email'] = $pro->email;
$tem['phone'] = $pro->phone;
$tem['created_at'] = Carbon::parse($pro->created_at)->format('Y-m-d H:i:s');
$array['data'][] = $tem;
}
unset($projects,$pro,$tem);
return $array;
}
/**
* 项目编辑
* @return int
* @date 2020/10/17
* @author live
*/
public function getProjectEdit($postData)
{
$verity = self::getVerityRepeatProject($postData['id'],$postData['cnName'],$postData['enName']);
if($verity){
$project = ProjectModel::find($postData['id']);
if(!$project) throw new Exception(config('msg.project.3003'),3003);
$project->cn_name = $postData['cnName'];
$project->en_name = $postData['enName'];
$project->main_master = $postData['mainMaster'];
$project->dev_master = $postData['devMaster'];
$project->email = $postData['email'];
$project->phone = $postData['phone'];
$project->created_at = $postData['createdAt'];
if($project->save()) return $project->id;
throw new Exception(config('msg.user.3004'),3004);
}
throw new Exception(config('msg.project.3001'),3001);
}
/**
* 删除项目
* @return bool
* @date 2020/10/17
* @author live
*/
public function getProjectDel($postData)
{
$project = ProjectModel::where('id',$postData['id'])->where('en_name',$postData['enName'])->first();
if(!$project) throw new Exception(config('msg.project.3003'),3003);
if($project->delete()) return true;
throw new Exception(config('msg.project.3005'),3005);
}
/**
* 下拉框列表
* @return array
* @date 2020/10/17
* @author live
*/
public function getProjectSelectList()
{
$projects = ProjectModel::select('id','cn_name as cnName','en_name as enName')->orderBy('id','DESC')->get()->toArray();
return $projects;
}
}
<?php
namespace App\Services\Rdb;
interface IRdbService
{
public function getRdbList($postData);//rdb列表
public function getRdbDel($postData);//删除rdb
public function getRdbAdd($postData);//新增rdb
public function getRdbEdit($postData);//编辑rdb
}
<?php
namespace App\Services\Rdb;
use App\Models\RdbModel;
use App\Services\Rdb\IRdbService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
class RdbService implements IRdbService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* rdb列表
* @return array
* @date 2020/10/18
* @author live
*/
public function getRdbList($postData)
{
$array = ['totalNum'=>0,'totalPage'=>0,'data'=>[]];
$instanceName = $postData['instanceName']??'';
$cloudId = $postData['cloudId']??0;
$payType = $postData['payType']??'';
$networkType = $postData['networkType']??'';
$projectId = $postData['projectId']??0;
$pagePerNum = $postData['pageSize']??20;
$currentPage = $postData['page']??1;
$rdbs = RdbModel::with(['getRelationProject:id,cn_name,en_name','getCloudProject:id,cloud_name,account_name','getRelationPayType:id,item_value','getRelationNetworkType:id,item_value'])->when($instanceName != '', function ($query) use ($instanceName) {
return $query->where('instance_name', 'like',$instanceName.'%');
})->when($payType > 0, function ($query) use ($payType) {
return $query->where('pay_type',$payType);
})->when($networkType > 0, function ($query) use ($networkType) {
return $query->where('network_type',$networkType);
})->when($cloudId > 0, function ($query) use ($cloudId) {
return $query->where('cloud_id',$cloudId);
})->when($projectId > 0, function ($query) use ($projectId) {
return $query->where('project_id',$projectId);
})->select('id','instance_name','instance_id','type','mysql_type','capacity','pay_type','network_type','region','expire_time','cloud_id','project_id','created_at')->orderBy('id','DESC')->paginate($pagePerNum, ['*'], 'currentPage',$currentPage);
$array['totalNum'] = $rdbs->total();
$array['totalPage'] = $rdbs->lastPage();
foreach($rdbs as $rdb){
$tem['id'] = $rdb->id;
$tem['instanceName'] = $rdb->instance_name;
$tem['instanceId'] = $rdb->instance_id;
$tem['type'] = $rdb->type;
$tem['mysqlType'] = $rdb->mysql_type;
$tem['capacity'] = $rdb->capacity;
$tem['payTypeId'] = $rdb->pay_type;
$tem['payTypeName'] = $rdb->getRelationPayType->item_value ?? '';
$tem['networkTypeId'] = $rdb->network_type;
$tem['networkTypeName'] = $rdb->getRelationNetworkType->item_value ?? '';
$tem['region'] = $rdb->region;
$tem['expire_time'] = $rdb->expire_time;
$tem['projectId'] = $rdb->project_id;
$tem['projecCnName'] = $rdb->getRelationProject->cn_name ?? '';
$tem['projecEnName'] = $rdb->getRelationProject->en_name ?? '';
$tem['cloudId'] = $rdb->cloud_id;
$tem['cloudName'] = $rdb->getCloudProject->cloud_name ?? '';
$tem['cloudAccount'] = $rdb->getCloudProject->account_name ?? '';
$tem['created_at'] = Carbon::parse($rdb->created_at)->format('Y-m-d H:i:s');
$array['data'][] = $tem;
}
unset($rdbs,$rdb,$tem);
return $array;
}
/**
* 删除rdb
* @return bool
* @date 2020/10/18
* @author live
*/
public function getRdbDel($postData)
{
$rdb = RdbModel::where('id',$postData['id'])->where('instance_id',$postData['instanceId'])->first();
if(!$rdb) throw new Exception(config('msg.rdb.1103'),1103);
if($rdb->delete()) return true;
throw new Exception(config('msg.rdb.1105'),1105);
}
/**
* 新增rdb
* @return array
* @date 2020/11/23
* @author live
*/
public function getRdbAdd($postData)
{
$verity = self::getVerityRepeatRdb(0,$postData['instanceName'],$postData['instanceId']);
if(!$verity) throw new Exception(config('msg.rdb.1102'), 1102);
$row = new RdbModel();
$row->instance_name = $postData['instanceName'] ?? '';
$row->instance_id = $postData['instanceId'] ?? '';
$row->type = $postData['type'] ?? '';
$row->mysql_type = $postData['mysqlType'] ?? '';
$row->capacity = $postData['capacity'] ?? '';
$row->pay_type = $postData['payType'] ?? 0;
$row->network_type = $postData['networkType'] ?? 0;
$row->region = $postData['region'] ?? '';
$row->expire_time = $postData['expireTime'] ?? 0;
$row->cloud_id = $postData['cloudId'] ?? 0;
$row->project_id = $postData['projectId'] ?? 0;
$row->created_at = $postData['createdAt'] ?? $this->time;
if ($row->save()) return $row->id;
throw new Exception(config('msg.rdb.1101'), 1101);
}
/**
* 验证rdb重复性
* @return bool
* @date 2020/10/23
* @author live
*/
public static function getVerityRepeatRdb($id,$instanceName,$instanceId)
{
$verity = RdbModel::when($id > 0, function ($query) use ($id) {
return $query->where('id', '!=',$id);
})->where(function ($query) use ($instanceName,$instanceId) {
return $query->where('instance_name', $instanceName)->orWhere('instance_id',$instanceId);
})->select('id')->first();
if($verity) return false;
return true;
}
/**
* 编辑rdb
* @return array
* @date 2020/11/23
* @author live
*/
public function getRdbEdit($postData)
{
$verity = self::getVerityRepeatRdb($postData['id'],$postData['instanceName'],$postData['instanceId']);
if(!$verity) throw new Exception(config('msg.rdb.1102'), 1102);
$rdb = RdbModel::find($postData['id']);
if(!$rdb) throw new Exception(config('msg.rdb.1103'),1103);
$rdb->instance_name = $postData['instanceName'] ?? '';
$rdb->instance_id = $postData['instanceId'] ?? '';
$rdb->type = $postData['type'] ?? '';
$rdb->mysql_type = $postData['mysqlType'] ?? '';
$rdb->capacity = $postData['capacity'] ?? '';
$rdb->pay_type = $postData['payType'] ?? 0;
$rdb->network_type = $postData['networkType'] ?? 0;
$rdb->region = $postData['region'] ?? '';
$rdb->expire_time = $postData['expireTime'] ?? 0;
$rdb->cloud_id = $postData['cloudId'];
$rdb->project_id = $postData['projectId'];
$rdb->created_at = $postData['createdAt'];
if($rdb->save()) return $rdb->id;
throw new Exception(config('msg.rdb.1104'),1104);
}
}
<?php
namespace App\Services\Records;
interface IRecordsService
{
public function getRecordsAdd($postData);//记录添加
public function getRecordsList($postData);//记录列表
public function getRecordsEdit($postData);//记录编辑
public function getRecordsDel($postData);//记录删除
}
<?php
namespace App\Services\Records;
use App\Models\DomainRecordsModel;
use App\Services\Records\IRecordsService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
class RecordsService implements IRecordsService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* 批量获取域名下的记录
* @return array
* @date 2020/11/24
* @author live
*/
public static function getDomainRecords($ids)
{
$array = [];
if(empty($ids)) return $array;
$records = DomainRecordsModel::with(['getRelationRecordType:id,item_value','getRelationIspLine:id,item_value'])->whereIn('domain_id',$ids)->select('id','record','record_type','isp_line','record_value','remark','domain_id','created_at')->get();
foreach($records as $rec){
$tem['id'] = $rec->id;
$tem['record'] = $rec->record;
$tem['recordTypeId'] = $rec->record_type;
$tem['recordTypeName'] = $rec->getRelationRecordType->item_value ?? '';
$tem['ispLineId'] = $rec->isp_line;
$tem['ispLineName'] = $rec->getRelationIspLine->item_value ?? '';
$tem['recordValue'] = $rec->record_value;
$tem['remark'] = $rec->remark;
$tem['created_at'] = Carbon::parse($rec->created_at)->format('Y-m-d H:i:s');
$array[$rec->domain_id][] = $tem;
}
unset($records,$rec,$tem);
return $array;
}
/**
* 新增记录
* @return array
* @date 2020/11/18
* @author live
*/
public function getRecordsAdd($postData)
{
$row = new DomainRecordsModel();
$row->record = $postData['record'] ?? '';
$row->record_type = $postData['recordType'] ?? '';
$row->isp_line = $postData['ispLine'] ?? '';
$row->record_value = $postData['recordValue'] ?? '';
$row->remark = $postData['remark'] ?? '';
$row->domain_id = $postData['domainId'] ?? 0;
$row->created_at = $postData['createdAt'] ?? $this->time;
if ($row->save()) return $row->id;
throw new Exception(config('msg.records.8001'), 8001);
}
/**
* 记录列表
* @return array
* @date 2020/10/18
* @author live
*/
public function getRecordsList($postData)
{
$array = ['totalNum'=>0,'totalPage'=>0,'data'=>[]];
$record = $postData['record']??'';
$recordType = $postData['recordType']??0;
$ispLine = $postData['ispLine']??0;
$domainId = $postData['domainId']??0;
$pagePerNum = $postData['pageSize']??20;
$currentPage = $postData['page']??1;
$records = DomainRecordsModel::with(['getRelationRecordType:id,item_value','getRelationIspLine:id,item_value','getRelationDomain:id,name'])->when($record != '', function ($query) use ($record) {
return $query->where('record', 'like',$record.'%');
})->when($recordType > 0, function ($query) use ($recordType) {
return $query->where('record_type',$recordType);
})->when($ispLine > 0, function ($query) use ($ispLine) {
return $query->where('isp_line',$ispLine);
})->when($domainId > 0, function ($query) use ($domainId) {
return $query->where('domain_id',$domainId);
})->select('id','record','record_type','isp_line','record_value','remark','domain_id','created_at')->orderBy('domain_id','DESC')->paginate($pagePerNum, ['*'], 'currentPage',$currentPage);
$array['totalNum'] = $records->total();
$array['totalPage'] = $records->lastPage();
foreach($records as $rec){
$tem['id'] = $rec->id;
$tem['record'] = $rec->record;
$tem['recordTypeId'] = $rec->record_type;
$tem['recordTypeName'] = $rec->getRelationRecordType->item_value ?? '';
$tem['ispLineId'] = $rec->isp_line;
$tem['ispLineName'] = $rec->getRelationIspLine->item_value ?? '';
$tem['recordValue'] = $rec->record_value;
$tem['remark'] = $rec->remark;
$tem['domainId'] = $rec->domain_id;
$tem['domainName'] = $rec->getRelationDomain->name ?? '';
$tem['created_at'] = Carbon::parse($rec->created_at)->format('Y-m-d H:i:s');
$array['data'][] = $tem;
}
unset($cdns,$cdn,$tem);
return $array;
}
/**
* 记录编辑
* @return int
* @date 2020/10/18
* @author live
*/
public function getRecordsEdit($postData)
{
$record = DomainRecordsModel::find($postData['id']);
if(!$record) throw new Exception(config('msg.records.8003'),8003);
$record->record = $postData['record'] ?? '';
$record->record_type = $postData['recordType'] ?? '';
$record->isp_line = $postData['ispLine'] ?? '';
$record->record_value = $postData['recordValue'] ?? '';
$record->remark = $postData['remark'] ?? '';
$record->domain_id = $postData['domainId'] ?? '';
$record->created_at = $postData['createdAt'];
if($record->save()) return $record->id;
throw new Exception(config('msg.records.8004'),8004);
}
/**
* 删除记录
* @return bool
* @date 2020/10/18
* @author live
*/
public function getRecordsDel($postData)
{
$record = DomainRecordsModel::where('id',$postData['id'])->where('record',$postData['record'])->first();
if(!$record) throw new Exception(config('msg.records.8003'),8003);
if($record->delete()) return true;
throw new Exception(config('msg.records.8005'),8005);
}
}
<?php
namespace App\Services\Redis;
interface IRedisService
{
public function getRedisList($postData);//redis列表
public function getRedisDel($postData);//删除redis
public function getRedisAdd($postData);//新增redis
public function getRedisEdit($postData);//编辑redis
}
<?php
namespace App\Services\Redis;
use App\Models\RedisModel;
use App\Services\Redis\IRedisService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
class RedisService implements IRedisService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* cvm列表
* @return array
* @date 2020/10/18
* @author live
*/
public function getRedisList($postData)
{
$array = ['totalNum'=>0,'totalPage'=>0,'data'=>[]];
$instanceName = $postData['instanceName']??'';
$payType = $postData['payType']??'';
$networkType = $postData['networkType']??'';
$cloudId = $postData['cloudId']??0;
$projectId = $postData['projectId']??0;
$pagePerNum = $postData['pageSize']??20;
$currentPage = $postData['page']??1;
$Redis = RedisModel::with(['getRelationProject:id,cn_name,en_name','getCloudProject:id,cloud_name,account_name','getRelationPayType:id,item_value','getRelationNetworkType:id,item_value'])->when($instanceName != '', function ($query) use ($instanceName) {
return $query->where('instance_name', 'like',$instanceName.'%');
})->when($payType > 0, function ($query) use ($payType) {
return $query->where('pay_type',$payType);
})->when($networkType > 0, function ($query) use ($networkType) {
return $query->where('network_type',$networkType);
})->when($cloudId > 0, function ($query) use ($cloudId) {
return $query->where('cloud_id',$cloudId);
})->when($projectId > 0, function ($query) use ($projectId) {
return $query->where('project_id',$projectId);
})->select('id','instance_name','instance_id','capacity','quota','edition','norms','pay_type','network_type','region','expire_time','cloud_id','project_id','created_at')->orderBy('expire_time','ASC')->paginate($pagePerNum, ['*'], 'currentPage',$currentPage);
$array['totalNum'] = $Redis->total();
$array['totalPage'] = $Redis->lastPage();
foreach($Redis as $Red){
$tem['id'] = $Red->id;
$tem['instanceName'] = $Red->instance_name;
$tem['instanceId'] = $Red->instance_id;
$tem['capacity'] = $Red->capacity;
$tem['quota'] = $Red->capacity;
$tem['edition'] = $Red->edition;
$tem['norms'] = $Red->norms;
$tem['payTypeId'] = $Red->pay_type;
$tem['payTypeName'] = $Red->getRelationPayType->item_value ?? '';
$tem['networkTypeId'] = $Red->network_type;
$tem['networkTypeName'] = $Red->getRelationNetworkType->item_value ?? '';
$tem['region'] = $Red->region;
$tem['expire_time'] = $Red->expire_time;
$tem['projectId'] = $Red->project_id;
$tem['projecCnName'] = $Red->getRelationProject->cn_name ?? '';
$tem['projecEnName'] = $Red->getRelationProject->en_name ?? '';
$tem['cloudId'] = $Red->cloud_id;
$tem['cloudName'] = $Red->getCloudProject->cloud_name ?? '';
$tem['cloudAccount'] = $Red->getCloudProject->account_name ?? '';
$tem['created_at'] = Carbon::parse($Red->created_at)->format('Y-m-d H:i:s');
$array['data'][] = $tem;
}
unset($slbs,$slb,$tem);
return $array;
}
/**
* 删除redis
* @return bool
* @date 2020/10/18
* @author live
*/
public function getRedisDel($postData)
{
$redis = RedisModel::where('id',$postData['id'])->where('instance_id',$postData['instanceId'])->first();
if(!$redis) throw new Exception(config('msg.redis.1203'),1203);
if($redis->delete()) return true;
throw new Exception(config('msg.redis.1205'),1205);
}
/**
* 新增redis
* @return array
* @date 2020/11/23
* @author live
*/
public function getRedisAdd($postData)
{
$verity = self::getVerityRepeatRedis(0,$postData['instanceName'],$postData['instanceId']);
if(!$verity) throw new Exception(config('msg.redis.1202'), 1202);
$row = new RedisModel();
$row->instance_name = $postData['instanceName'] ?? '';
$row->instance_id = $postData['instanceId'] ?? '';
$row->capacity = $postData['capacity'] ?? '';
$row->quota = $postData['quota'] ?? '';
$row->edition = $postData['edition'] ?? '';
$row->norms = $postData['norms'] ?? '';
$row->pay_type = $postData['payType'] ?? 0;
$row->network_type = $postData['networkType'] ?? 0;
$row->region = $postData['region'] ?? '';
$row->expire_time = $postData['expireTime'] ?? '';
$row->cloud_id = $postData['cloudId'] ?? 0;
$row->project_id = $postData['projectId'] ?? 0;
$row->created_at = $postData['createdAt'] ?? $this->time;
if ($row->save()) return $row->id;
throw new Exception(config('msg.redis.1201'), 1201);
}
/**
* 验证redis重复性
* @return bool
* @date 2020/10/23
* @author live
*/
public static function getVerityRepeatRedis($id,$instanceName,$instanceId)
{
$verity = RedisModel::when($id > 0, function ($query) use ($id) {
return $query->where('id', '!=',$id);
})->where(function ($query) use ($instanceName,$instanceId) {
return $query->where('instance_name', $instanceName)->orWhere('instance_id',$instanceId);
})->select('id')->first();
if($verity) return false;
return true;
}
/**
* 编辑redis
* @return bool
* @date 2020/10/23
* @author live
*/
public function getRedisEdit($postData)
{
$verity = self::getVerityRepeatRedis($postData['id'],$postData['instanceName'],$postData['instanceId']);
if(!$verity) throw new Exception(config('msg.redis.1202'), 1202);
$redis = RedisModel::find($postData['id']);
if(!$redis) throw new Exception(config('msg.redis.1203'),1203);
$redis->instance_name = $postData['instanceName'] ?? '';
$redis->instance_id = $postData['instanceId'] ?? '';
$redis->capacity = $postData['capacity'] ?? '';
$redis->quota = $postData['quota'] ?? '';
$redis->edition = $postData['edition'] ?? '';
$redis->norms = $postData['norms'] ?? '';
$redis->pay_type = $postData['payType'] ?? 0;
$redis->network_type = $postData['networkType'] ?? 0;
$redis->region = $postData['region'] ?? '';
$redis->expire_time = $postData['expireTime'] ?? '';
$redis->cloud_id = $postData['cloudId'];
$redis->project_id = $postData['projectId'];
$redis->created_at = $postData['createdAt'];
if($redis->save()) return $redis->id;
throw new Exception(config('msg.redis.1204'),1204);
}
}
\ No newline at end of file
<?php
namespace App\Services\Slb;
interface ISlbService
{
public function getSlbList($postData);//slb列表
public function getSlbDel($postData);//删除slbl
public function getSlbAdd($postData);//新增slb
public function getSlbEdit($postData);//编辑slb
}
<?php
namespace App\Services\Slb;
use App\Models\SlbModel;
use App\Services\Slb\ISlbService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
class SlbService implements ISlbService
{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* slb列表
* @return array
* @date 2020/10/18
* @author live
*/
public function getSlbList($postData)
{
$array = ['totalNum'=>0,'totalPage'=>0,'data'=>[]];
$instanceName = $postData['instanceName']??'';
$cloudId = $postData['cloudId']??0;
$projectId = $postData['projectId']??0;
$pagePerNum = $postData['pageSize']??20;
$currentPage = $postData['page']??1;
$slbs = SlbModel::with(['getRelationProject:id,cn_name,en_name','getCloudProject:id,cloud_name,account_name'])->when($instanceName != '', function ($query) use ($instanceName) {
return $query->where('instance_name', 'like',$instanceName.'%');
})->when($cloudId > 0, function ($query) use ($cloudId) {
return $query->where('cloud_id',$cloudId);
})->when($projectId > 0, function ($query) use ($projectId) {
return $query->where('project_id',$projectId);
})->select('id','instance_name','instance_id','outer_ip','backend_ip_list','cloud_id','project_id','created_at')->orderBy('id','DESC')->paginate($pagePerNum, ['*'], 'currentPage',$currentPage);
$array['totalNum'] = $slbs->total();
$array['totalPage'] = $slbs->lastPage();
foreach($slbs as $slb){
$tem['id'] = $slb->id;
$tem['instanceName'] = $slb->instance_name;
$tem['instanceId'] = $slb->instance_id;
$tem['outerIp'] = $slb->outer_ip;
$tem['backendIpList'] = $slb->backend_ip_list;
$tem['projectId'] = $slb->project_id;
$tem['projecCnName'] = $slb->getRelationProject->cn_name ?? '';
$tem['projecEnName'] = $slb->getRelationProject->en_name ?? '';
$tem['cloudId'] = $slb->cloud_id;
$tem['cloudName'] = $slb->getCloudProject->cloud_name ?? '';
$tem['cloudAccount'] = $slb->getCloudProject->account_name ?? '';
$tem['created_at'] = Carbon::parse($slb->created_at)->format('Y-m-d H:i:s');
$array['data'][] = $tem;
}
unset($slbs,$slb,$tem);
return $array;
}
/**
* 删除slb
* @return bool
* @date 2020/10/18
* @author live
*/
public function getSlbDel($postData)
{
$slb = SlbModel::where('id',$postData['id'])->where('instance_id',$postData['instanceId'])->first();
if(!$slb) throw new Exception(config('msg.slb.9003'),9003);
if($slb->delete()) return true;
throw new Exception(config('msg.slb.9005'),9005);
}
/**
* 新增slb
* @return array
* @date 2020/11/23
* @author live
*/
public function getSlbAdd($postData)
{
$verity = self::getVerityRepeatSlb(0,$postData['instanceName'],$postData['instanceId']);
if(!$verity) throw new Exception(config('msg.slb.9002'), 9002);
$row = new SlbModel();
$row->instance_name = $postData['instanceName'] ?? '';
$row->instance_id = $postData['instanceId'] ?? '';
$row->outer_ip = $postData['outerIp'] ?? '';
$row->backend_ip_list = $postData['backendIpList'] ?? '';
$row->cloud_id = $postData['cloudId'] ?? 0;
$row->project_id = $postData['projectId'] ?? 0;
$row->created_at = $postData['createdAt'] ?? $this->time;
if ($row->save()) return $row->id;
throw new Exception(config('msg.slb.9001'), 9001);
}
/**
* 验证slb重复性
* @return bool
* @date 2020/10/23
* @author live
*/
public static function getVerityRepeatSlb($id,$instanceName,$instanceId)
{
$verity = SlbModel::when($id > 0, function ($query) use ($id) {
return $query->where('id', '!=',$id);
})->where(function ($query) use ($instanceName,$instanceId) {
return $query->where('instance_name', $instanceName)->orWhere('instance_id',$instanceId);
})->select('id')->first();
if($verity) return false;
return true;
}
/**
* 编辑slb
* @return bool
* @date 2020/10/23
* @author live
*/
public function getSlbEdit($postData)
{
$verity = self::getVerityRepeatSlb($postData['id'],$postData['instanceName'],$postData['instanceId']);
if(!$verity) throw new Exception(config('msg.slb.9002'), 9002);
$slb = SlbModel::find($postData['id']);
if(!$slb) throw new Exception(config('msg.slb.9003'),9003);
$slb->instance_name = $postData['instanceName'];
$slb->instance_id = $postData['instanceId'];
$slb->outer_ip = $postData['outerIp'];
$slb->backend_ip_list = $postData['backendIpList'];
$slb->cloud_id = $postData['cloudId'];
$slb->project_id = $postData['projectId'];
$slb->created_at = $postData['createdAt'];
if($slb->save()) return $slb->id;
throw new Exception(config('msg.slb.9004'),9004);
}
}
\ No newline at end of file
<?php
namespace App\Services\User;
interface IUserService
{
public function getUserAdd($postData); //新增用户
public function getUserList($postData);//用户列表
public function getLogin($postData);//用户登录
public function getLoginOut($token);//用户退出登录
public function getUserEdit($postData);//编辑用户
public function getUserDel($postData);//删除用户
public function getResetUserPwd($postData);//修改用户登录密码
}
<?php
namespace App\Services\User;
use App\Services\User\IUserService;
use Carbon\Carbon;
use Exception;
use Illuminate\Support\Facades\DB;
use App\Models\AdminModel;
use Illuminate\Support\Facades\Cache;
use Tymon\JWTAuth\Facades\JWTAuth;
class UserService implements IUserService{
private $time;
public function __construct()
{
$this->time = Carbon::now()->format('Y-m-d H:i:s');
}
/**
* 新增用户
* @return int
* @date 2020/10/17
* @author live
*/
public function getUserAdd($postData)
{
$verity = self::getVerityRepeatUser(0,$postData['name'],$postData['email']);
if($verity){
$row = new AdminModel();
$row->name = $postData['name'] ?? '';
$row->real_name = $postData['realName'] ?? '';
$row->email = $postData['email'] ?? '';
$row->phone = $postData['phone'] ?? '';
$row->password = bcrypt($postData['pwd']);
$row->option_id = $postData['user']['id'];
if( $row->save()) return $row->id;
throw new Exception(config('msg.user.2002'),2002);
}
throw new Exception(config('msg.user.2001'),2001);
}
/**
* 检验用户重复性
* @return bool
* @date 2020/10/17
* @author live
*/
public static function getVerityRepeatUser($id = 0,$name,$email){
$verity = AdminModel::when($id > 0, function ($query) use ($id) {
return $query->where('id', '!=',$id);
})->where(function ($query) use ($name,$email) {
return $query->where('name', $name)->orWhere('email',$email);
})->select('id')->first();
if($verity) return false;
return true;
}
/**
* 用户列表
* @return araay
* @date 2020/10/17
* @author live
*/
public function getUserList($postData)
{
$key = $postData['key']??'';
$pagePerNum = $postData['pageSize']??20;
$currentPage = $postData['page']??1;
$users = AdminModel::with(['optionUser:id,name'])->when($key != '', function ($query) use ($key) {
return $query->where('name', 'like',$key.'%')->orWhere('real_name', 'like',$key.'%')->orWhere('email', 'like',$key.'%')->orWhere('phone', 'like',$key.'%');
})->select('id','name','real_name','email','phone','option_id','created_at')->orderBy('id','DESC')->paginate($pagePerNum, ['*'], 'currentPage',$currentPage);
$array['totalNum'] = $users->total();
$array['totalPage'] = $users->lastPage();
foreach($users as $user){
$tem['id'] = $user->id;
$tem['name'] = $user->name;
$tem['realName'] = $user->real_name;
$tem['email'] = $user->email;
$tem['phone'] = $user->phone;
$tem['optionName'] = $user->optionUser->name ?? '';
$tem['created_at'] = Carbon::parse($user->created_at)->format('Y-m-d H:i:s');
$array['data'][] = $tem;
}
unset($users,$user,$user);
return $array;
}
/**
* 用户登录
* @return araay
* @date 2020/10/17
* @author live
*/
public function getLogin($postData){
$array['token'] = '';
$credentials = ['name'=>$postData['name'], 'password'=>$postData['pwd']];
if (! $token = JWTAuth::attempt($credentials)){
throw new Exception(config('msg.user.2003'),2003);
}
$user = AdminModel::where('name',$postData['name'])->select('id','token')->first();
$userToken = MD5($token);
$user->token = $userToken;
$user->save();
Cache::put('login_'.$userToken,1,60);
$array['token'] = $token;
unset($user,$userToken);
return $array;
}
/**
* 退出登录
* @return araay
* @date 2020/10/17
* @author live
*/
public function getLoginOut($token)
{
$userToken = MD5($token);
if(Cache::has('login_'.$userToken)) Cache::forget('login_'.$userToken);
$user = AdminModel::where('token',$userToken)->select('id','token')->first();
$user->token = '';
$user->save();
return true;
}
/**
* 编辑用户
* @return araay
* @date 2020/10/17
* @author live
*/
public function getUserEdit($postData)
{
$verity = self::getVerityRepeatUser($postData['id'],'',$postData['email']);
if($verity){
$user = AdminModel::find($postData['id']);
if(!$user) throw new Exception(config('msg.user.2004'),2004);
$user->real_name = $postData['realName'];
$user->email = $postData['email'];
$user->phone = $postData['phone'];
if($user->save()) return $user->id;
throw new Exception(config('msg.user.2005'),2005);
}
throw new Exception(config('msg.user.2001'),2001);
}
/**
* 删除用户
* @return araay
* @date 2020/10/17
* @author live
*/
public function getUserDel($postData)
{
$user = AdminModel::where('id',$postData['id'])->where('name',$postData['name'])->first();
if(!$user) throw new Exception(config('msg.user.2004'),2004);
if($user->delete()) return true;
throw new Exception(config('msg.user.2006'),2006);
}
/**
* 修改用户登录密码
* @return araay
* @date 2020/10/17
* @author live
*/
public function getResetUserPwd($postData)
{
$user = AdminModel::where('id',$postData['id'])->where('name',$postData['name'])->first();
if(!$user) throw new Exception(config('msg.user.2004'),2004);
$userToken = $user->token;
$user->password = bcrypt($postData['pwd']);
$user->token = '';
if($user->save()){
if(Cache::has('login_'.$userToken)) Cache::forget('login_'.$userToken);
return true;
}
throw new Exception(config('msg.user.2007'),2007);
}
}
\ No newline at end of file
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
#!/usr/bin/env php
<?php
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
/*
|--------------------------------------------------------------------------
| Run The Artisan Application
|--------------------------------------------------------------------------
|
| When we run the console application, the current CLI command will be
| executed in this console and the response sent back to a terminal
| or another output device for the developers. Here goes nothing!
|
*/
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$status = $kernel->handle(
$input = new Symfony\Component\Console\Input\ArgvInput,
new Symfony\Component\Console\Output\ConsoleOutput
);
/*
|--------------------------------------------------------------------------
| Shutdown The Application
|--------------------------------------------------------------------------
|
| Once Artisan has finished running, we will fire off the shutdown events
| so that any final work may be done by the application before we shut
| down the process. This is the last thing to happen to the request.
|
*/
$kernel->terminate($input, $status);
exit($status);
<?php
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
/*
|--------------------------------------------------------------------------
| Bind Important Interfaces
|--------------------------------------------------------------------------
|
| Next, we need to bind some important interfaces into the container so
| we will be able to resolve them when needed. The kernels serve the
| incoming requests to this application from both the web and CLI.
|
*/
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Console\Kernel::class,
App\Console\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Debug\ExceptionHandler::class,
App\Exceptions\Handler::class
);
/*
|--------------------------------------------------------------------------
| Return The Application
|--------------------------------------------------------------------------
|
| This script returns the application instance. The instance is given to
| the calling script so we can separate the building of the instances
| from the actual running of the application and sending responses.
|
*/
return $app;
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.6.*",
"laravel/tinker": "^1.0",
"predis/predis": "1.1",
"tymon/jwt-auth": "1.*@rc"
},
"require-dev": {
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^2.0",
"phpunit/phpunit": "^7.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Common/Common.php"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}
This diff is collapsed.
This diff is collapsed.
<?php
return [
/*
|--------------------------------------------------------------------------
| Authentication Defaults
|--------------------------------------------------------------------------
|
| This option controls the default authentication "guard" and password
| reset options for your application. You may change these defaults
| as required, but they're a perfect start for most applications.
|
*/
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
/*
|--------------------------------------------------------------------------
| Authentication Guards
|--------------------------------------------------------------------------
|
| Next, you may define every authentication guard for your application.
| Of course, a great default configuration has been defined for you
| here which uses session storage and the Eloquent user provider.
|
| All authentication drivers have a user provider. This defines how the
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
| Supported: "session", "token"
|
*/
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
/*
|--------------------------------------------------------------------------
| User Providers
|--------------------------------------------------------------------------
|
| All authentication drivers have a user provider. This defines how the
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
| If you have multiple user tables or models you may configure multiple
| sources which represent each model / table. These sources may then
| be assigned to any extra authentication guards you have defined.
|
| Supported: "database", "eloquent"
|
*/
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\AdminModel::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
/*
|--------------------------------------------------------------------------
| Resetting Passwords
|--------------------------------------------------------------------------
|
| You may specify multiple password reset configurations if you have more
| than one user table or model in the application and you want to have
| separate password reset settings based on the specific user types.
|
| The expire time is the number of minutes that the reset token should be
| considered valid. This security feature keeps tokens short-lived so
| they have less time to be guessed. You may change this as needed.
|
*/
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
],
];
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<?php
return [
/*
|--------------------------------------------------------------------------
| Default Hash Driver
|--------------------------------------------------------------------------
|
| This option controls the default hash driver that will be used to hash
| passwords for your application. By default, the bcrypt algorithm is
| used; however, you remain free to modify this option if you wish.
|
| Supported: "bcrypt", "argon"
|
*/
'driver' => 'bcrypt',
/*
|--------------------------------------------------------------------------
| Bcrypt Options
|--------------------------------------------------------------------------
|
| Here you may specify the configuration options that should be used when
| passwords are hashed using the Bcrypt algorithm. This will allow you
| to control the amount of time it takes to hash the given password.
|
*/
'bcrypt' => [
'rounds' => env('BCRYPT_ROUNDS', 10),
],
/*
|--------------------------------------------------------------------------
| Argon Options
|--------------------------------------------------------------------------
|
| Here you may specify the configuration options that should be used when
| passwords are hashed using the Argon algorithm. These will allow you
| to control the amount of time it takes to hash the given password.
|
*/
'argon' => [
'memory' => 1024,
'threads' => 2,
'time' => 2,
],
];
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment