feat: 添加产品询盘分页接口

This commit is contained in:
2025-03-14 11:45:39 +08:00
parent 3e5a754580
commit 19e3f5df33
5 changed files with 102 additions and 1 deletions

View File

@@ -0,0 +1,50 @@
<?php
declare (strict_types = 1);
namespace app\admin\controller\v1;
use app\admin\model\v1\ProductInquiryModel;
/**
* 产品询盘记录控制器
*/
class ProductInquiry
{
// 分页
public function index()
{
$param = request()->param([
'corp_name',
'country_name',
'created_at',
'page/d' => 1,
'size/d' => 10
]);
$msgs = ProductInquiryModel::field([
'id',
'first_name',
'last_name',
'email',
'phone',
'corp_name',
'country_name',
'industry',
'message',
'created_at'
])
->withSearch(['corp_name', 'country_name', 'created_at'], [
'corp_name' => $param['corp_name'] ?? null,
'country_name' => $param['country_name'] ?? null,
'created_at' => !empty($param['created_at']) ? explode(',', $param['created_at']) : null,
])
->language(request()->lang_id)
->order(['id' => 'desc'])
->paginate([
'list_rows' => $param['size'],
'page' => $param['page'],
]);
return success('获取成功', $msgs);
}
}

View File

@@ -0,0 +1,46 @@
<?php
declare (strict_types = 1);
namespace app\admin\model\v1;
use app\common\model\ProductInquiryBaseModel;
/**
* 产品询盘记录模型
* @mixin \think\Model
*/
class ProductInquiryModel extends ProductInquiryBaseModel
{
// 根据语言查询
public function scopeLanguage($query, $value)
{
$query->where('language_id', '=', $value);
}
// 按公司名称搜索
public function searchCorpNameAttr($query, $value, $data)
{
if (is_null($value)) return;
$query->where('corp_name', 'like', '%'.$value.'%');
}
// 按国家名称搜索
public function searchCountryNameAttr($query, $value, $data)
{
if (is_null($value)) return;
$query->where('country_name', 'like', '%'.$value.'%');
}
// 按提交时间搜索
public function searchCreatedAtAttr($query, $value, $data)
{
if (is_null($value)) return;
if (is_array($value)) {
if (count($value) > 1) {
$query->whereBetweenTime('created_at', $value[0], $value[1]);
} else {
$query->whereTime('created_at', '>=', $value[0]);
}
}
}
}

View File

@@ -552,6 +552,9 @@ Route::group('v1', function () {
Route::get('export', 'Agent/export');
});
// 反馈管理 - 产品询盘列表
Route::get('product/inquiry/index', 'ProductInquiry/index');
// 配置项列表
Route::group('config', function() {
// 配置分组

View File

@@ -26,6 +26,7 @@ class ProductInquiryBaseModel extends BaseModel
'phone' => 'string',
'country_name' => 'string',
'industry' => 'string',
'referer_url' => 'string',
'message' => 'string',
'created_at' => 'datetime'
];

View File

@@ -36,6 +36,7 @@ class CreateProductInquiry extends Migrator
->addColumn('phone', 'string', ['limit' => 64, 'null' => true, 'default' => null, 'comment' => '电话'])
->addColumn('country_name', 'string', ['limit' => 128, 'null' => true, 'default' => null, 'comment' => '所在国家名称'])
->addColumn('industry', 'string', ['limit' => 64, 'null' => true, 'default' => null, 'comment' => '所属行业'])
->addColumn('referer_url', 'string', ['limit' => 256, 'null' => true, 'default' => null, 'comment' => '来源URL'])
->addColumn('message', 'text', ['null' => true, 'default' => null, 'comment' => '留言内容'])
->addColumn('created_at', 'timestamp', ['null' => false, 'default' => 'CURRENT_TIMESTAMP', 'comment' => '创建时间'])
->create();