From 04de14e0f940f3f5cb4121ec527a1953613127cc Mon Sep 17 00:00:00 2001 From: denghy Date: Thu, 10 Jan 2019 14:24:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Virtual/Services/PackageService.php | 4 ++-- frontend/src/views/system/logs/js/index.js | 2 +- .../src/views/virtual/packages/js/edit.js | 2 +- .../src/Repository/CriteriaRepository.php | 24 ++++++++++++++----- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/app/Domains/Virtual/Services/PackageService.php b/app/Domains/Virtual/Services/PackageService.php index 217597e7..551baeab 100644 --- a/app/Domains/Virtual/Services/PackageService.php +++ b/app/Domains/Virtual/Services/PackageService.php @@ -68,8 +68,8 @@ class PackageService extends Service $attributes['sn'] = $attributes['sn'] ?: CommonService::generatePackageSn($attributes['type'], $attributes['carrier_operator'], $attributes['flows'], $attributes['service_months']); $rule = [ - 'sn' => ['required', 'between:2,32', Rule::unique($this->packageRepository->getTable(), 'sn')->ignore($attributes['id'])->where('del')], - 'name' => ['required', 'between:2,32', Rule::unique($this->packageRepository->getTable(), 'name')->ignore($attributes['id'])], + 'sn' => ['required', 'between:2,32', Rule::unique($this->packageRepository->getTable(), 'sn')->ignore($attributes['id'])->whereNUll('deleted_at')], + 'name' => ['required', 'between:2,32', Rule::unique($this->packageRepository->getTable(), 'name')->ignore($attributes['id'])->whereNUll('deleted_at')], 'type' => ['required', 'in:0,1,2'], 'carrier_operator' => ['required', 'in:0,1,2,3'], 'cost_price' => ['numeric', 'min:0'], diff --git a/frontend/src/views/system/logs/js/index.js b/frontend/src/views/system/logs/js/index.js index e5338939..2a251551 100644 --- a/frontend/src/views/system/logs/js/index.js +++ b/frontend/src/views/system/logs/js/index.js @@ -51,7 +51,7 @@ export default { }, { title: 'IP', - width: 130, + width: 150, key: 'ip' }, { diff --git a/frontend/src/views/virtual/packages/js/edit.js b/frontend/src/views/virtual/packages/js/edit.js index 74e60886..77f90c27 100644 --- a/frontend/src/views/virtual/packages/js/edit.js +++ b/frontend/src/views/virtual/packages/js/edit.js @@ -65,7 +65,7 @@ export default { return; } - if (this.data && this.params.sn && !/^[A-Z0-9_]{2,32}$/.test(this.data && this.params.sn)) { + if (this.data && this.params.sn && !/^[A-Z0-9._]{2,32}$/.test(this.data && this.params.sn)) { this.$Message.info('套餐编码为大写字母、数字、下划线的2-32位字符'); return; } diff --git a/vendor/dipper/foundation/src/Repository/CriteriaRepository.php b/vendor/dipper/foundation/src/Repository/CriteriaRepository.php index 3f08fc76..d4bb89d8 100644 --- a/vendor/dipper/foundation/src/Repository/CriteriaRepository.php +++ b/vendor/dipper/foundation/src/Repository/CriteriaRepository.php @@ -95,12 +95,20 @@ trait CriteriaRepository if (!is_null($value)) { if (!is_null($relation)) { if ($condition == '<>' || $condition == '!=') { - $query->whereDoesntHave($relation, function ($query) use ($field, $value) { - $query->where($field, $value); + $query->whereDoesntHave($relation, function ($relationQuery) use ($field, $value) { + if (method_exists($relationQuery, 'withTrashed')) { + $relationQuery->withTrashed(); + } + + $relationQuery->where($field, $value); }); } else { - $query->whereHas($relation, function ($query) use ($field, $condition, $value) { - $query->where($field, $condition, $value); + $query->whereHas($relation, function ($relationQuery) use ($field, $condition, $value) { + if (method_exists($relationQuery, 'withTrashed')) { + $relationQuery->withTrashed(); + } + + $relationQuery->where($field, $condition, $value); }); } } else { @@ -127,8 +135,12 @@ trait CriteriaRepository } else { if (!is_null($value)) { if (!is_null($relation)) { - $query->orWhereHas($relation, function ($query) use ($field, $condition, $value) { - $query->where($field, $condition, $value); + $query->orWhereHas($relation, function ($relationQuery) use ($field, $condition, $value) { + if (method_exists($relationQuery, 'withTrashed')) { + $relationQuery->withTrashed(); + } + + $relationQuery->where($field, $condition, $value); }); } else { if ($condition == 'between') {