feat 产品类目接口

This commit is contained in:
lwh 2023-06-29 10:33:27 +08:00
parent c151191430
commit f03755613e

View File

@ -0,0 +1,70 @@
<?php
namespace app\api\controller\Products;
use app\BaseController;
use app\common\model\Products\ProductType as ModelProductType;
use app\common\arw\adjfut\src\Traverse;
use app\Request;
use think\Validate;
use think\exception\ValidateException;
use think\facade\Filesystem;
use app\common\arw\adjfut\src\Excel;
use app\common\arw\adjfut\src\UploadFile;
use app\common\exception\Tool;
use think\facade\Db;
use think\facade\Env;
class ProductType extends BaseController
{
/**
* 获取产品系列树形列表接口接口
*
* @param Request request
* @date 2023-04-03
* @example
* @author xjh
* @since 1.0.0
*/
public function getProductTypeTree(Request $request): array
{
$con = Tool::getOptionalQuery(
['b.product_delete_time', 'NULL'],
['a.product_type_name', 'LIKE']
);
$product_type = ModelProductType::field([
'a.product_type_parent_guid',
'a.product_type_name',
'a.product_type_title',
'a.product_type_link',
'b.product_type_name' => "product_type_parent_name",
'a.product_type_order',
'a.product_type_guid',
'a.product_type_id',
'a.product_type_icon',
])
->alias('a')
->leftjoin('product_type b', 'a.product_type_parent_guid = b.product_type_guid')
->where($con)
->order(['product_type_order' => 'asc'])
->select()->toArray();
$Traverse = new Traverse('product_type_guid', 'product_type_parent_guid');
$product_type_tree = $Traverse->tree($product_type, '0', function ($v) {
return [
'product_type_name' => $v['product_type_name'],
'product_type_title' => $v['product_type_title'],
'product_type_link' => $v['product_type_link'],
'product_type_parent_name' => $v['product_type_parent_name'],
'product_type_guid' => $v['product_type_guid'],
'product_type_id' => $v['product_type_id'],
'product_type_parent_guid' => $v['product_type_parent_guid'],
'product_type_order' => $v['product_type_order'],
'product_type_icon' => $v['product_type_icon'],
];
});
return msg("获取产品系列列表成功!", $product_type_tree);
}
}