1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-24 20:06:09 +08:00

优化AccountSearchTrait

This commit is contained in:
xiaochong0302 2023-12-28 21:31:59 +08:00
parent 33fc75b9f8
commit 5ce45971e6
16 changed files with 147 additions and 145 deletions

View File

@ -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();

View File

@ -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']);
}

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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']);
}

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -0,0 +1,49 @@
<?php
/**
* @copyright Copyright (c) 2021 深圳市酷瓜软件有限公司
* @license https://opensource.org/licenses/GPL-2.0
* @link https://www.koogua.com
*/
namespace App\Http\Admin\Services\Traits;
use App\Library\Validators\Common as CommonValidator;
use App\Repos\Account as AccountRepo;
trait AccountSearchTrait
{
protected function handleAccountSearchParams($params)
{
$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;
}
}
/**
* 兼容用户编号|手机号码|邮箱地址查询
*/
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;
}
}

View File

@ -0,0 +1,32 @@
<?php
/**
* @copyright Copyright (c) 2021 深圳市酷瓜软件有限公司
* @license https://opensource.org/licenses/GPL-2.0
* @link https://www.koogua.com
*/
namespace App\Http\Admin\Services\Traits;
use App\Repos\Order as OrderRepo;
trait OrderSearchTrait
{
protected function handleOrderSearchParams($params)
{
/**
* 兼容订单编号或订单序号查询
*/
if (!empty($params['order_id']) && strlen($params['order_id']) > 10) {
$orderRepo = new OrderRepo();
$order = $orderRepo->findBySn($params['order_id']);
$params['order_id'] = $order ? $order->id : -1000;
}
return $params;
}
}

View File

@ -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;

View File

@ -19,9 +19,9 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户号</label>
<label class="layui-form-label">用户号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="owner_id" placeholder="用户编号精确匹配">
<input class="layui-input" type="text" name="owner_id" placeholder="用户编号 / 手机号码 / 邮箱地址 精确匹配">
</div>
</div>
<div class="layui-form-item" id="time-range">

View File

@ -13,9 +13,9 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">作者编号</label>
<label class="layui-form-label">用户帐号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="owner_id" placeholder="作者编号精确匹配">
<input class="layui-input" type="text" name="owner_id" placeholder="用户编号 / 手机号码 / 邮箱地址 精确匹配">
</div>
</div>
<div class="layui-form-item">

View File

@ -13,9 +13,9 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">作者编号</label>
<label class="layui-form-label">用户帐号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="owner_id" placeholder="作者编号精确匹配">
<input class="layui-input" type="text" name="owner_id" placeholder="用户编号 / 手机号码 / 邮箱地址 精确匹配">
</div>
</div>
<div class="layui-form-item">

View File

@ -9,7 +9,7 @@
<div class="layui-form-item">
<label class="layui-form-label">用户帐号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="id" placeholder="用户编号 / 手机号码 / 邮箱地址 精确匹配">
<input class="layui-input" type="text" name="user_id" placeholder="用户编号 / 手机号码 / 邮箱地址 精确匹配">
</div>
</div>
<div class="layui-form-item">