From 5ce45971e63b9001cc3f79b5e04fe4928c084a09 Mon Sep 17 00:00:00 2001 From: xiaochong0302 Date: Thu, 28 Dec 2023 21:31:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96AccountSearchTrait?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Admin/Services/Answer.php | 4 ++ app/Http/Admin/Services/Article.php | 4 ++ app/Http/Admin/Services/Consult.php | 22 ++------- app/Http/Admin/Services/CourseUser.php | 21 ++------ app/Http/Admin/Services/Order.php | 37 +++++--------- app/Http/Admin/Services/Question.php | 4 ++ app/Http/Admin/Services/Refund.php | 33 +++---------- app/Http/Admin/Services/Review.php | 22 ++------- app/Http/Admin/Services/Trade.php | 31 +++--------- .../Services/Traits/AccountSearchTrait.php | 49 +++++++++++++++++++ .../Services/Traits/OrderSearchTrait.php | 32 ++++++++++++ app/Http/Admin/Services/User.php | 19 +++---- app/Http/Admin/Views/answer/search.volt | 4 +- app/Http/Admin/Views/article/search.volt | 4 +- app/Http/Admin/Views/question/search.volt | 4 +- app/Http/Admin/Views/user/search.volt | 2 +- 16 files changed, 147 insertions(+), 145 deletions(-) create mode 100644 app/Http/Admin/Services/Traits/AccountSearchTrait.php create mode 100644 app/Http/Admin/Services/Traits/OrderSearchTrait.php diff --git a/app/Http/Admin/Services/Answer.php b/app/Http/Admin/Services/Answer.php index c705c432..9587f8f4 100644 --- a/app/Http/Admin/Services/Answer.php +++ b/app/Http/Admin/Services/Answer.php @@ -9,6 +9,7 @@ namespace App\Http\Admin\Services; use App\Builders\AnswerList as AnswerListBuilder; use App\Builders\ReportList as ReportListBuilder; +use App\Http\Admin\Services\Traits\AccountSearchTrait; use App\Library\Paginator\Query as PagerQuery; use App\Models\Answer as AnswerModel; use App\Models\Question as QuestionModel; @@ -31,6 +32,7 @@ class Answer extends Service { use AnswerDataTrait; + use AccountSearchTrait; public function getPublishTypes() { @@ -48,6 +50,8 @@ class Answer extends Service $params = $pagerQuery->getParams(); + $params = $this->handleAccountSearchParams($params); + $params['deleted'] = $params['deleted'] ?? 0; $sort = $pagerQuery->getSort(); diff --git a/app/Http/Admin/Services/Article.php b/app/Http/Admin/Services/Article.php index fb9c0b03..f0f568ce 100644 --- a/app/Http/Admin/Services/Article.php +++ b/app/Http/Admin/Services/Article.php @@ -10,6 +10,7 @@ namespace App\Http\Admin\Services; use App\Builders\ArticleList as ArticleListBuilder; use App\Builders\ReportList as ReportListBuilder; use App\Caches\Article as ArticleCache; +use App\Http\Admin\Services\Traits\AccountSearchTrait; use App\Library\Paginator\Query as PagerQuery; use App\Library\Utils\Word as WordUtil; use App\Models\Article as ArticleModel; @@ -34,6 +35,7 @@ class Article extends Service { use ArticleDataTrait; + use AccountSearchTrait; public function getXmTags($id) { @@ -70,6 +72,8 @@ class Article extends Service $params = $pagerQuery->getParams(); + $params = $this->handleAccountSearchParams($params); + if (!empty($params['xm_tag_ids'])) { $params['tag_id'] = explode(',', $params['xm_tag_ids']); } diff --git a/app/Http/Admin/Services/Consult.php b/app/Http/Admin/Services/Consult.php index 44ae915c..9a44d10a 100644 --- a/app/Http/Admin/Services/Consult.php +++ b/app/Http/Admin/Services/Consult.php @@ -8,14 +8,13 @@ namespace App\Http\Admin\Services; use App\Builders\ConsultList as ConsultListBuilder; +use App\Http\Admin\Services\Traits\AccountSearchTrait; use App\Library\Paginator\Query as PagerQuery; -use App\Library\Validators\Common as CommonValidator; use App\Models\Chapter as ChapterModel; use App\Models\Consult as ConsultModel; use App\Models\Course as CourseModel; use App\Models\Reason as ReasonModel; use App\Models\User as UserModel; -use App\Repos\Account as AccountRepo; use App\Repos\Chapter as ChapterRepo; use App\Repos\Consult as ConsultRepo; use App\Repos\Course as CourseRepo; @@ -26,6 +25,8 @@ use App\Validators\Consult as ConsultValidator; class Consult extends Service { + use AccountSearchTrait; + public function getPublishTypes() { return ConsultModel::publishTypes(); @@ -65,23 +66,10 @@ class Consult extends Service $params = $pagerQuery->getParams(); + $params = $this->handleAccountSearchParams($params); + $params['deleted'] = $params['deleted'] ?? 0; - $accountRepo = new AccountRepo(); - - /** - * 兼容用户编号|手机号码|邮箱地址查询 - */ - if (!empty($params['owner_id'])) { - if (CommonValidator::phone($params['owner_id'])) { - $account = $accountRepo->findByPhone($params['owner_id']); - $params['owner_id'] = $account ? $account->id : -1000; - } elseif (CommonValidator::email($params['owner_id'])) { - $account = $accountRepo->findByEmail($params['owner_id']); - $params['owner_id'] = $account ? $account->id : -1000; - } - } - $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); diff --git a/app/Http/Admin/Services/CourseUser.php b/app/Http/Admin/Services/CourseUser.php index a3963d47..8090b079 100644 --- a/app/Http/Admin/Services/CourseUser.php +++ b/app/Http/Admin/Services/CourseUser.php @@ -8,10 +8,9 @@ namespace App\Http\Admin\Services; use App\Builders\CourseUserList as CourseUserListBuilder; +use App\Http\Admin\Services\Traits\AccountSearchTrait; use App\Library\Paginator\Query as PagerQuery; -use App\Library\Validators\Common as CommonValidator; use App\Models\CourseUser as CourseUserModel; -use App\Repos\Account as AccountRepo; use App\Repos\CourseUser as CourseUserRepo; use App\Services\Logic\Course\CourseUserTrait; use App\Validators\CourseUser as CourseUserValidator; @@ -20,6 +19,7 @@ class CourseUser extends Service { use CourseUserTrait; + use AccountSearchTrait; public function getSourceTypes() { @@ -53,24 +53,11 @@ class CourseUser extends Service $params = $pagerQuery->getParams(); + $params = $this->handleAccountSearchParams($params); + $params['course_id'] = $course->id; $params['deleted'] = 0; - $accountRepo = new AccountRepo(); - - /** - * 兼容用户编号|手机号码|邮箱地址查询 - */ - if (!empty($params['user_id'])) { - if (CommonValidator::phone($params['user_id'])) { - $account = $accountRepo->findByPhone($params['user_id']); - $params['user_id'] = $account ? $account->id : -1000; - } elseif (CommonValidator::email($params['user_id'])) { - $account = $accountRepo->findByEmail($params['user_id']); - $params['user_id'] = $account ? $account->id : -1000; - } - } - $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); diff --git a/app/Http/Admin/Services/Order.php b/app/Http/Admin/Services/Order.php index b69745d9..e461dafd 100644 --- a/app/Http/Admin/Services/Order.php +++ b/app/Http/Admin/Services/Order.php @@ -8,8 +8,9 @@ namespace App\Http\Admin\Services; use App\Builders\OrderList as OrderListBuilder; +use App\Http\Admin\Services\Traits\AccountSearchTrait; +use App\Http\Admin\Services\Traits\OrderSearchTrait; use App\Library\Paginator\Query as PaginateQuery; -use App\Library\Validators\Common as CommonValidator; use App\Models\Order as OrderModel; use App\Repos\Account as AccountRepo; use App\Repos\Order as OrderRepo; @@ -19,6 +20,9 @@ use App\Validators\Order as OrderValidator; class Order extends Service { + use AccountSearchTrait; + use OrderSearchTrait; + public function getItemTypes() { return OrderModel::itemTypes(); @@ -35,32 +39,15 @@ class Order extends Service $params = $pageQuery->getParams(); + $params = $this->handleAccountSearchParams($params); + $params = $this->handleOrderSearchParams($params); + + if (!empty($params['order_id'])) { + $params['id'] = $params['order_id']; + } + $params['deleted'] = $params['deleted'] ?? 0; - /** - * 兼容订单编号或订单序号查询 - */ - if (isset($params['id']) && strlen($params['id']) > 10) { - $orderRepo = new OrderRepo(); - $order = $orderRepo->findBySn($params['id']); - $params['id'] = $order ? $order->id : -1000; - } - - $accountRepo = new AccountRepo(); - - /** - * 兼容用户编号|手机号码|邮箱地址查询 - */ - if (!empty($params['owner_id'])) { - if (CommonValidator::phone($params['owner_id'])) { - $account = $accountRepo->findByPhone($params['owner_id']); - $params['owner_id'] = $account ? $account->id : -1000; - } elseif (CommonValidator::email($params['owner_id'])) { - $account = $accountRepo->findByEmail($params['owner_id']); - $params['owner_id'] = $account ? $account->id : -1000; - } - } - $sort = $pageQuery->getSort(); $page = $pageQuery->getPage(); $limit = $pageQuery->getLimit(); diff --git a/app/Http/Admin/Services/Question.php b/app/Http/Admin/Services/Question.php index e17a687d..a0fab6aa 100644 --- a/app/Http/Admin/Services/Question.php +++ b/app/Http/Admin/Services/Question.php @@ -10,6 +10,7 @@ namespace App\Http\Admin\Services; use App\Builders\QuestionList as QuestionListBuilder; use App\Builders\ReportList as ReportListBuilder; use App\Caches\Question as QuestionCache; +use App\Http\Admin\Services\Traits\AccountSearchTrait; use App\Library\Paginator\Query as PagerQuery; use App\Models\Category as CategoryModel; use App\Models\Question as QuestionModel; @@ -33,6 +34,7 @@ class Question extends Service { use QuestionDataTrait; + use AccountSearchTrait; public function getXmTags($id) { @@ -64,6 +66,8 @@ class Question extends Service $params = $pagerQuery->getParams(); + $params = $this->handleAccountSearchParams($params); + if (!empty($params['xm_tag_ids'])) { $params['tag_id'] = explode(',', $params['xm_tag_ids']); } diff --git a/app/Http/Admin/Services/Refund.php b/app/Http/Admin/Services/Refund.php index ed8aeed0..a0aac0b8 100644 --- a/app/Http/Admin/Services/Refund.php +++ b/app/Http/Admin/Services/Refund.php @@ -8,8 +8,9 @@ namespace App\Http\Admin\Services; use App\Builders\RefundList as RefundListBuilder; +use App\Http\Admin\Services\Traits\AccountSearchTrait; +use App\Http\Admin\Services\Traits\OrderSearchTrait; use App\Library\Paginator\Query as PaginateQuery; -use App\Library\Validators\Common as CommonValidator; use App\Models\Refund as RefundModel; use App\Models\Task as TaskModel; use App\Repos\Account as AccountRepo; @@ -22,6 +23,9 @@ use App\Validators\Refund as RefundValidator; class Refund extends Service { + use AccountSearchTrait; + use OrderSearchTrait; + public function getStatusTypes() { return RefundModel::statusTypes(); @@ -33,32 +37,11 @@ class Refund extends Service $params = $pageQuery->getParams(); + $params = $this->handleAccountSearchParams($params); + $params = $this->handleOrderSearchParams($params); + $params['deleted'] = $params['deleted'] ?? 0; - /** - * 兼容订单编号或订单序号查询 - */ - if (isset($params['order_id']) && strlen($params['order_id']) > 10) { - $orderRepo = new OrderRepo(); - $order = $orderRepo->findBySn($params['order_id']); - $params['order_id'] = $order ? $order->id : -1000; - } - - $accountRepo = new AccountRepo(); - - /** - * 兼容用户编号|手机号码|邮箱地址查询 - */ - if (!empty($params['owner_id'])) { - if (CommonValidator::phone($params['owner_id'])) { - $account = $accountRepo->findByPhone($params['owner_id']); - $params['owner_id'] = $account ? $account->id : -1000; - } elseif (CommonValidator::email($params['owner_id'])) { - $account = $accountRepo->findByEmail($params['owner_id']); - $params['owner_id'] = $account ? $account->id : -1000; - } - } - $sort = $pageQuery->getSort(); $page = $pageQuery->getPage(); $limit = $pageQuery->getLimit(); diff --git a/app/Http/Admin/Services/Review.php b/app/Http/Admin/Services/Review.php index 26922213..e63dcd39 100644 --- a/app/Http/Admin/Services/Review.php +++ b/app/Http/Admin/Services/Review.php @@ -8,13 +8,12 @@ namespace App\Http\Admin\Services; use App\Builders\ReviewList as ReviewListBuilder; +use App\Http\Admin\Services\Traits\AccountSearchTrait; use App\Library\Paginator\Query as PagerQuery; -use App\Library\Validators\Common as CommonValidator; use App\Models\Course as CourseModel; use App\Models\Reason as ReasonModel; use App\Models\Review as ReviewModel; use App\Models\User as UserModel; -use App\Repos\Account as AccountRepo; use App\Repos\Course as CourseRepo; use App\Repos\Review as ReviewRepo; use App\Services\CourseStat as CourseStatService; @@ -24,6 +23,8 @@ use App\Validators\Review as ReviewValidator; class Review extends Service { + use AccountSearchTrait; + public function getPublishTypes() { return ReviewModel::publishTypes(); @@ -63,23 +64,10 @@ class Review extends Service $params = $pagerQuery->getParams(); + $params = $this->handleAccountSearchParams($params); + $params['deleted'] = $params['deleted'] ?? 0; - $accountRepo = new AccountRepo(); - - /** - * 兼容用户编号|手机号码|邮箱地址查询 - */ - if (!empty($params['owner_id'])) { - if (CommonValidator::phone($params['owner_id'])) { - $account = $accountRepo->findByPhone($params['owner_id']); - $params['owner_id'] = $account ? $account->id : -1000; - } elseif (CommonValidator::email($params['owner_id'])) { - $account = $accountRepo->findByEmail($params['owner_id']); - $params['owner_id'] = $account ? $account->id : -1000; - } - } - $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); diff --git a/app/Http/Admin/Services/Trade.php b/app/Http/Admin/Services/Trade.php index 3023e9ae..4439aabc 100644 --- a/app/Http/Admin/Services/Trade.php +++ b/app/Http/Admin/Services/Trade.php @@ -8,8 +8,9 @@ namespace App\Http\Admin\Services; use App\Builders\TradeList as TradeListBuilder; +use App\Http\Admin\Services\Traits\AccountSearchTrait; +use App\Http\Admin\Services\Traits\OrderSearchTrait; use App\Library\Paginator\Query as PaginateQuery; -use App\Library\Validators\Common as CommonValidator; use App\Models\Refund as RefundModel; use App\Models\Trade as TradeModel; use App\Repos\Account as AccountRepo; @@ -22,6 +23,9 @@ use App\Validators\Trade as TradeValidator; class Trade extends Service { + use AccountSearchTrait; + use OrderSearchTrait; + public function getChannelTypes() { return TradeModel::channelTypes(); @@ -38,29 +42,8 @@ class Trade extends Service $params = $pageQuery->getParams(); - /** - * 兼容订单编号或订单序号查询 - */ - if (isset($params['order_id']) && strlen($params['order_id']) > 10) { - $orderRepo = new OrderRepo(); - $order = $orderRepo->findBySn($params['order_id']); - $params['order_id'] = $order ? $order->id : -1000; - } - - $accountRepo = new AccountRepo(); - - /** - * 兼容用户编号|手机号码|邮箱地址查询 - */ - if (!empty($params['owner_id'])) { - if (CommonValidator::phone($params['owner_id'])) { - $account = $accountRepo->findByPhone($params['owner_id']); - $params['owner_id'] = $account ? $account->id : -1000; - } elseif (CommonValidator::email($params['owner_id'])) { - $account = $accountRepo->findByEmail($params['owner_id']); - $params['owner_id'] = $account ? $account->id : -1000; - } - } + $params = $this->handleAccountSearchParams($params); + $params = $this->handleOrderSearchParams($params); $sort = $pageQuery->getSort(); $page = $pageQuery->getPage(); diff --git a/app/Http/Admin/Services/Traits/AccountSearchTrait.php b/app/Http/Admin/Services/Traits/AccountSearchTrait.php new file mode 100644 index 00000000..3f393083 --- /dev/null +++ b/app/Http/Admin/Services/Traits/AccountSearchTrait.php @@ -0,0 +1,49 @@ +findByPhone($params['user_id']); + $params['user_id'] = $account ? $account->id : -1000; + } elseif (CommonValidator::email($params['user_id'])) { + $account = $accountRepo->findByEmail($params['user_id']); + $params['user_id'] = $account ? $account->id : -1000; + } + } + + /** + * 兼容用户编号|手机号码|邮箱地址查询 + */ + if (!empty($params['owner_id'])) { + if (CommonValidator::phone($params['owner_id'])) { + $account = $accountRepo->findByPhone($params['owner_id']); + $params['owner_id'] = $account ? $account->id : -1000; + } elseif (CommonValidator::email($params['owner_id'])) { + $account = $accountRepo->findByEmail($params['owner_id']); + $params['owner_id'] = $account ? $account->id : -1000; + } + } + + return $params; + } + +} diff --git a/app/Http/Admin/Services/Traits/OrderSearchTrait.php b/app/Http/Admin/Services/Traits/OrderSearchTrait.php new file mode 100644 index 00000000..6fd1a5ac --- /dev/null +++ b/app/Http/Admin/Services/Traits/OrderSearchTrait.php @@ -0,0 +1,32 @@ + 10) { + + $orderRepo = new OrderRepo(); + + $order = $orderRepo->findBySn($params['order_id']); + + $params['order_id'] = $order ? $order->id : -1000; + } + + return $params; + } + +} diff --git a/app/Http/Admin/Services/User.php b/app/Http/Admin/Services/User.php index be2f4039..78d61e5a 100644 --- a/app/Http/Admin/Services/User.php +++ b/app/Http/Admin/Services/User.php @@ -9,9 +9,9 @@ namespace App\Http\Admin\Services; use App\Builders\UserList as UserListBuilder; use App\Caches\User as UserCache; +use App\Http\Admin\Services\Traits\AccountSearchTrait; use App\Library\Paginator\Query as PaginateQuery; use App\Library\Utils\Password as PasswordUtil; -use App\Library\Validators\Common as CommonValidator; use App\Models\Account as AccountModel; use App\Models\User as UserModel; use App\Repos\Account as AccountRepo; @@ -26,6 +26,8 @@ use App\Validators\User as UserValidator; class User extends Service { + use AccountSearchTrait; + public function getEduRoleTypes() { return UserModel::eduRoleTypes(); @@ -63,19 +65,10 @@ class User extends Service $params = $pageQuery->getParams(); - $accountRepo = new AccountRepo(); + $params = $this->handleAccountSearchParams($params); - /** - * 兼容用户编号|手机号码|邮箱地址查询 - */ - if (!empty($params['id'])) { - if (CommonValidator::phone($params['id'])) { - $account = $accountRepo->findByPhone($params['id']); - $params['id'] = $account ? $account->id : -1000; - } elseif (CommonValidator::email($params['id'])) { - $account = $accountRepo->findByEmail($params['id']); - $params['id'] = $account ? $account->id : -1000; - } + if (!empty($params['user_id'])) { + $params['id'] = $params['user_id']; } $params['deleted'] = $params['deleted'] ?? 0; diff --git a/app/Http/Admin/Views/answer/search.volt b/app/Http/Admin/Views/answer/search.volt index 945fb5d7..bb0ce828 100644 --- a/app/Http/Admin/Views/answer/search.volt +++ b/app/Http/Admin/Views/answer/search.volt @@ -19,9 +19,9 @@
- +
- +
diff --git a/app/Http/Admin/Views/article/search.volt b/app/Http/Admin/Views/article/search.volt index 0c92270b..88a519aa 100644 --- a/app/Http/Admin/Views/article/search.volt +++ b/app/Http/Admin/Views/article/search.volt @@ -13,9 +13,9 @@
- +
- +
diff --git a/app/Http/Admin/Views/question/search.volt b/app/Http/Admin/Views/question/search.volt index cf5a92fc..a1928c56 100644 --- a/app/Http/Admin/Views/question/search.volt +++ b/app/Http/Admin/Views/question/search.volt @@ -13,9 +13,9 @@
- +
- +
diff --git a/app/Http/Admin/Views/user/search.volt b/app/Http/Admin/Views/user/search.volt index df41dc26..63bde531 100644 --- a/app/Http/Admin/Views/user/search.volt +++ b/app/Http/Admin/Views/user/search.volt @@ -9,7 +9,7 @@
- +