|
...
|
...
|
@@ -25,8 +25,6 @@ class ServerInformationLogic extends BaseLogic |
|
|
|
{
|
|
|
|
parent::__construct();
|
|
|
|
|
|
|
|
$this->model = new ServerInformation();
|
|
|
|
|
|
|
|
$this->param = $this->requestAll;
|
|
|
|
|
|
|
|
}
|
|
...
|
...
|
@@ -41,23 +39,23 @@ class ServerInformationLogic extends BaseLogic |
|
|
|
{
|
|
|
|
$request = $this->param ?? [];
|
|
|
|
$service = new ServerInformation();
|
|
|
|
$this->extracted( $request, $service );
|
|
|
|
if ( $this->checkIp( $service->ip ) ) {
|
|
|
|
return $this->fail( '服务器信息添加失败,ip已存在' );
|
|
|
|
$this->extracted($request, $service);
|
|
|
|
if ($this->checkIp($request['ip'])) {
|
|
|
|
return $this->fail('服务器信息添加失败,ip已存在');
|
|
|
|
}
|
|
|
|
DB::beginTransaction();
|
|
|
|
|
|
|
|
if ( $service->save() ) {
|
|
|
|
$original = $service->getOriginal();
|
|
|
|
$original['type'] = $request['type'];
|
|
|
|
if ($service->save()) {
|
|
|
|
$original = $service->getOriginal();
|
|
|
|
$original['type'] = $request['type'];
|
|
|
|
$original['belong_to'] = $request['belong_to'];
|
|
|
|
// 添加日志
|
|
|
|
$this->server_action_log( ServerInformationLog::ACTION_ADD, $original, $original, '添加服务器信息成功 - ID : ' . $service->id );
|
|
|
|
$this->server_action_log(ServerInformationLog::ACTION_ADD, $original, $original, '添加服务器信息成功 - ID : ' . $service->id);
|
|
|
|
DB::commit();
|
|
|
|
return $this->success();
|
|
|
|
}
|
|
|
|
DB::rollBack();
|
|
|
|
return $this->fail( '服务器信息添加失败' );
|
|
|
|
return $this->fail('服务器信息添加失败');
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -69,53 +67,53 @@ class ServerInformationLogic extends BaseLogic |
|
|
|
*/
|
|
|
|
public function update()
|
|
|
|
{
|
|
|
|
$service = $this->getService();
|
|
|
|
$fields_array = $service->FieldsArray();
|
|
|
|
$request = $this->param ?? [];
|
|
|
|
$original = $service->getOriginal();
|
|
|
|
$original['type'] = $service->ServiceStr( $original['type'] );
|
|
|
|
$original['belong_to'] = $service->BelongToStr( $original['belong_to'] );
|
|
|
|
$this->extracted( $request, $service, $original );
|
|
|
|
$service = $this->getService();
|
|
|
|
$fields_array = $service->FieldsArray();
|
|
|
|
$request = $this->param ?? [];
|
|
|
|
$original = $service->getOriginal();
|
|
|
|
$original['type'] = $service->ServiceStr($original['type']);
|
|
|
|
$original['belong_to'] = $service->BelongToStr($original['belong_to']);
|
|
|
|
$this->extracted($request, $service, $original);
|
|
|
|
// 检查ip是否存在
|
|
|
|
if ( $service->ip != $request['ip'] ) {
|
|
|
|
if ( $this->checkIp( $request['ip'] ) ) {
|
|
|
|
$this->fail( '服务器信息修改失败,ip已存在', Code::USER_ERROR );
|
|
|
|
if ($service->ip != $request['ip']) {
|
|
|
|
if ($this->checkIp($request['ip'])) {
|
|
|
|
$this->fail('服务器信息修改失败,ip已存在', Code::USER_ERROR);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
DB::beginTransaction();
|
|
|
|
if ( $service->save() ) {
|
|
|
|
if ($service->save()) {
|
|
|
|
$revised = $service->getAttributes();
|
|
|
|
$diff = array_diff_assoc( $original, $revised );
|
|
|
|
unset( $diff['created_at'] );
|
|
|
|
unset( $diff['updated_at'] );
|
|
|
|
unset( $diff['deleted'] );
|
|
|
|
$diff = array_diff_assoc($original, $revised);
|
|
|
|
unset($diff['created_at']);
|
|
|
|
unset($diff['updated_at']);
|
|
|
|
unset($diff['deleted']);
|
|
|
|
$remarks = '';
|
|
|
|
if ( $diff ) {
|
|
|
|
if ($diff) {
|
|
|
|
$remarks .= '修改ID为 ' . $service->id . ' 的服务器信息,修改内容为:';
|
|
|
|
foreach ( $diff as $key => $value ) {
|
|
|
|
foreach ($diff as $key => $value) {
|
|
|
|
$remarks .= $fields_array[$key] . ' 由 ' . $value . ' 修改为 ' . $revised[$key] . '; ';
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$remarks .= '修改ID为 ' . $service->id . ' 的服务器信息,无修改';
|
|
|
|
}
|
|
|
|
// 添加日志
|
|
|
|
$this->server_action_log( ServerInformationLog::ACTION_UPDATE, $original, $revised, $remarks );
|
|
|
|
$this->server_action_log(ServerInformationLog::ACTION_UPDATE, $original, $revised, $remarks);
|
|
|
|
DB::commit();
|
|
|
|
return $this->success();
|
|
|
|
}
|
|
|
|
DB::rollBack();
|
|
|
|
return $this->fail( '服务器信息修改失败' );
|
|
|
|
return $this->fail('服务器信息修改失败');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getService( int $deleted = ServerInformation::DELETED_NORMAL )
|
|
|
|
public function getService(int $deleted = ServerInformation::DELETED_NORMAL)
|
|
|
|
{
|
|
|
|
$id = $this->param['id'] ?? 0;
|
|
|
|
if ( !$id ) {
|
|
|
|
return $this->fail( 'ID不能为空' );
|
|
|
|
if (!$id) {
|
|
|
|
return $this->fail('ID不能为空');
|
|
|
|
}
|
|
|
|
$data = ServerInformation::query()->where( 'deleted', $deleted )->find( $id );
|
|
|
|
if ( !$data ) {
|
|
|
|
return $this->fail( '数据不存在!' );
|
|
|
|
$data = ServerInformation::query()->where('deleted', $deleted)->find($id);
|
|
|
|
if (!$data) {
|
|
|
|
return $this->fail('数据不存在!');
|
|
|
|
}
|
|
|
|
return $data;
|
|
|
|
}
|
|
...
|
...
|
@@ -125,10 +123,10 @@ class ServerInformationLogic extends BaseLogic |
|
|
|
* @param $ip
|
|
|
|
* @return bool
|
|
|
|
*/
|
|
|
|
public function checkIp( $ip )
|
|
|
|
public function checkIp($ip)
|
|
|
|
{
|
|
|
|
$usIp = ServerInformation::query()->where( 'ip', $ip )->first();
|
|
|
|
if ( $usIp ) {
|
|
|
|
$usIp = ServerInformation::query()->where('ip', $ip)->first();
|
|
|
|
if ($usIp) {
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
...
|
...
|
@@ -142,15 +140,15 @@ class ServerInformationLogic extends BaseLogic |
|
|
|
* @throws AsideGlobalException
|
|
|
|
* @throws BsideGlobalException
|
|
|
|
*/
|
|
|
|
public function serverInfo( int $deleted = ServerInformation::DELETED_NORMAL )
|
|
|
|
public function serverInfo(int $deleted = ServerInformation::DELETED_NORMAL)
|
|
|
|
{
|
|
|
|
$id = $this->param['id'] ?? 0;
|
|
|
|
if ( !$id ) {
|
|
|
|
return $this->fail( 'ID不能为空' );
|
|
|
|
if (!$id) {
|
|
|
|
return $this->fail('ID不能为空');
|
|
|
|
}
|
|
|
|
$data = ServerInformation::query()->where( 'deleted', $deleted )->find( $id, [ 'type', 'ip', 'title', 'belong_to', 'ports', 'created_at', 'updated_at' ] );
|
|
|
|
if ( !$data ) {
|
|
|
|
return $this->fail( '数据不存在!' );
|
|
|
|
$data = ServerInformation::query()->where('deleted', $deleted)->find($id, ['type', 'ip', 'title', 'belong_to', 'ports', 'created_at', 'updated_at']);
|
|
|
|
if (!$data) {
|
|
|
|
return $this->fail('数据不存在!');
|
|
|
|
}
|
|
|
|
return $data;
|
|
|
|
}
|
|
...
|
...
|
@@ -161,10 +159,10 @@ class ServerInformationLogic extends BaseLogic |
|
|
|
* @param array $original 原始数据
|
|
|
|
* @param array $revised 修改后数据
|
|
|
|
*/
|
|
|
|
public function server_action_log( int $action = ServerInformationLog::ACTION_ADD, array $original = [], array $revised = [], $remarks = '' )
|
|
|
|
public function server_action_log(int $action = ServerInformationLog::ACTION_ADD, array $original = [], array $revised = [], $remarks = '')
|
|
|
|
{
|
|
|
|
$log = new ServerInformationLog();
|
|
|
|
$this->log( $log, $action, $original, $revised, $remarks );
|
|
|
|
$this->log($log, $action, $original, $revised, $remarks);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -172,14 +170,14 @@ class ServerInformationLogic extends BaseLogic |
|
|
|
* @param $service
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function extracted( array $request, $service, array $original = [] )
|
|
|
|
public function extracted(array $request, $service, array $original = [])
|
|
|
|
{
|
|
|
|
$service->type = trim( $request['type'] ) ?? $original['type']; // 服务器类型
|
|
|
|
$service->ip = trim( $request['ip'] ) ?? $original['ip']; // 服务器ip
|
|
|
|
$service->title = trim( $request['title'] ) ?? $original['title']; // 服务器标题
|
|
|
|
$service->belong_to = trim( $request['belong_to'] ) ?? $original['belong_to']; // 服务器归属
|
|
|
|
$service->sshpass = trim( $request['sshpass'] ) ?? $original['sshpass']; // ssh密码
|
|
|
|
$service->ports = trim( $request['ports'] ) ?? $original['ports']; // ssh端口
|
|
|
|
$service->type = trim($request['type']) ?? $original['type']; // 服务器类型
|
|
|
|
$service->ip = trim($request['ip']) ?? $original['ip']; // 服务器ip
|
|
|
|
$service->title = trim($request['title']) ?? $original['title']; // 服务器标题
|
|
|
|
$service->belong_to = trim($request['belong_to']) ?? $original['belong_to']; // 服务器归属
|
|
|
|
$service->sshpass = trim($request['sshpass']) ?? $original['sshpass']; // ssh密码
|
|
|
|
$service->ports = trim($request['ports']) ?? $original['ports']; // ssh端口
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -188,27 +186,27 @@ class ServerInformationLogic extends BaseLogic |
|
|
|
* @throws AsideGlobalException
|
|
|
|
* @throws BsideGlobalException
|
|
|
|
*/
|
|
|
|
public function get_batch_update( $action = ServerInformationLog::ACTION_DELETE, $deleted = ServerInformation::DELETED_NORMAL )
|
|
|
|
public function get_batch_update($action = ServerInformationLog::ACTION_DELETE, $deleted = ServerInformation::DELETED_NORMAL)
|
|
|
|
{
|
|
|
|
$ids = $this->getIds();
|
|
|
|
$data = ServerInformation::query()->whereIn( 'id', $ids )->where( 'deleted', $deleted )->get();
|
|
|
|
$restore_ids = $data->pluck( 'id' )->toArray();
|
|
|
|
$actionArr = ServerInformationLog::actionArr();
|
|
|
|
$actionStr = $actionArr[$action];
|
|
|
|
if ( empty( $restore_ids ) ) {
|
|
|
|
$this->fail( $actionStr . '服务器信息不存在!', Code::USER_ERROR );
|
|
|
|
$ids = $this->getIds();
|
|
|
|
$data = ServerInformation::query()->whereIn('id', $ids)->where('deleted', $deleted)->get();
|
|
|
|
$restore_ids = $data->pluck('id')->toArray();
|
|
|
|
$actionArr = ServerInformationLog::actionArr();
|
|
|
|
$actionStr = $actionArr[$action];
|
|
|
|
if (empty($restore_ids)) {
|
|
|
|
$this->fail($actionStr . '服务器信息不存在!', Code::USER_ERROR);
|
|
|
|
}
|
|
|
|
$original = $data->toArray();
|
|
|
|
DB::beginTransaction();
|
|
|
|
try {
|
|
|
|
$update = $deleted == ServerInformation::DELETED_NORMAL ? ServerInformation::DELETED_DELETE : ServerInformation::DELETED_NORMAL;
|
|
|
|
ServerInformation::query()->whereIn( 'id', $restore_ids )->update( [ 'deleted' => $update ] );
|
|
|
|
$this->server_action_log( $action, $original, $original, $actionStr . '服务器信息 - ID : ' . implode( ', ', $restore_ids ) );
|
|
|
|
ServerInformation::query()->whereIn('id', $restore_ids)->update(['deleted' => $update]);
|
|
|
|
$this->server_action_log($action, $original, $original, $actionStr . '服务器信息 - ID : ' . implode(', ', $restore_ids));
|
|
|
|
DB::commit();
|
|
|
|
return $this->success();
|
|
|
|
} catch ( \Exception $e ) {
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
DB::rollBack();
|
|
|
|
return $this->fail( '服务器信息' . $actionStr . '失败', Code::USER_ERROR );
|
|
|
|
return $this->fail('服务器信息' . $actionStr . '失败', Code::USER_ERROR);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -221,16 +219,16 @@ class ServerInformationLogic extends BaseLogic |
|
|
|
public function getIds()
|
|
|
|
{
|
|
|
|
$id = $this->param['id'] ?? 0;
|
|
|
|
if ( !$id ) {
|
|
|
|
return $this->fail( '参数错误' );
|
|
|
|
if (!$id) {
|
|
|
|
return $this->fail('参数错误');
|
|
|
|
}
|
|
|
|
$ids = [];
|
|
|
|
if ( !is_array( $id ) ) {
|
|
|
|
$ids = explode( ',', $id );
|
|
|
|
if (!is_array($id)) {
|
|
|
|
$ids = explode(',', $id);
|
|
|
|
}
|
|
|
|
$ids = array_filter( $ids, 'intval' );
|
|
|
|
if ( empty( $ids ) ) {
|
|
|
|
return $this->fail( '参数错误' );
|
|
|
|
$ids = array_filter($ids, 'intval');
|
|
|
|
if (empty($ids)) {
|
|
|
|
return $this->fail('参数错误');
|
|
|
|
}
|
|
|
|
return $ids;
|
|
|
|
}
|
...
|
...
|
|