| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 | <?phpnamespace app\api\controller;use app\common\Service\SupplierService;/** * 供应商/工厂接口 */class Supplier extends Base{    // 无需登录的接口    protected $noNeedLogin = ['getFactoryList', 'getFactoryOptions', 'searchFactory', 'getActiveFactoryList'];    // 无需鉴权的接口    protected $noNeedRight = ['getFactoryList', 'getFactoryOptions', 'searchFactory', 'getActiveFactoryList'];    /**     * 获取工厂/供应商列表     *     * @ApiTitle    (获取工厂/供应商列表)     * @ApiSummary  (获取工厂/供应商列表信息,支持分页和搜索)     * @ApiMethod   (POST)     * @ApiRoute    (/api/inspection/supplier/getFactoryList)     * @ApiParams   (name="page", type="integer", required=false, description="页码,默认1")     * @ApiParams   (name="limit", type="integer", required=false, description="每页数量,默认10")     * @ApiParams   (name="name", type="string", required=false, description="供应商名称")     * @ApiParams   (name="category_id", type="integer", required=false, description="分类ID")     * @ApiParams   (name="status", type="string", required=false, description="状态:normal正常,hidden隐藏")     * @ApiReturnParams   (name="code", type="integer", required=true, sample="1")     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")     * @ApiReturnParams   (name="data", type="object", description="返回数据")     * @ApiReturn   ({         'code':'1',         'msg':'返回成功',         'data': {             'list': [],             'total': 0,             'page': 1,             'limit': 10         }        })     */    public function getFactoryList()    {        $params = $this->request->param();        $page = $params['page'] ?? 1;        $limit = $params['limit'] ?? 10;        $name = $params['name'] ?? '';        $categoryId = $params['category_id'] ?? '';        $status = $params['status'] ?? '';                $searchParams = [            'page' => $page,            'limit' => $limit        ];                if ($name) {            $searchParams['name'] = $name;        }                if ($categoryId) {            $searchParams['category_id'] = $categoryId;        }                if ($status) {            $searchParams['status'] = $status;        }                $supplierService = new SupplierService();        $result = $supplierService->getFactoryList($searchParams);                $this->success('获取成功', $result);    }    /**     * 获取工厂/供应商选项列表     *     * @ApiTitle    (获取工厂/供应商选项列表)     * @ApiSummary  (获取工厂/供应商选项列表,用于下拉选择)     * @ApiMethod   (POST)     * @ApiRoute    (/api/inspection/supplier/getFactoryOptions)     * @ApiReturnParams   (name="code", type="integer", required=true, sample="1")     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")     * @ApiReturnParams   (name="data", type="object", description="返回数据")     * @ApiReturn   ({         'code':'1',         'msg':'返回成功',         'data': {             '1': '供应商名称1',             '2': '供应商名称2'         }        })     */    public function getFactoryOptions()    {        $supplierService = new SupplierService();        $options = $supplierService->getFactoryOptions();        $this->success('获取成功', $options);    }    /**     * 搜索工厂/供应商     *     * @ApiTitle    (搜索工厂/供应商)     * @ApiSummary  (根据关键词搜索工厂/供应商)     * @ApiMethod   (POST)     * @ApiRoute    (/api/inspection/supplier/searchFactory)     * @ApiParams   (name="keyword", type="string", required=true, description="搜索关键词")     * @ApiParams   (name="limit", type="integer", required=false, description="限制数量,默认10")     * @ApiReturnParams   (name="code", type="integer", required=true, sample="1")     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")     * @ApiReturnParams   (name="data", type="array", description="返回数据")     * @ApiReturn   ({         'code':'1',         'msg':'返回成功',         'data': []        })     */    public function searchFactory()    {        $params = $this->request->param();        $keyword = $params['keyword'] ?? '';        $limit = $params['limit'] ?? 10;                if (empty($keyword)) {            $this->error('请输入搜索关键词');        }                $supplierService = new SupplierService();        $result = $supplierService->searchFactory($keyword, $limit);                $this->success('搜索成功', $result);    }    /**     * 获取工厂/供应商详情     *     * @ApiTitle    (获取工厂/供应商详情)     * @ApiSummary  (根据ID获取工厂/供应商详情)     * @ApiMethod   (POST)     * @ApiRoute    (/api/inspection/supplier/getFactoryDetail)     * @ApiParams   (name="id", type="integer", required=true, description="供应商ID")     * @ApiReturnParams   (name="code", type="integer", required=true, sample="1")     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")     * @ApiReturnParams   (name="data", type="object", description="返回数据")     * @ApiReturn   ({         'code':'1',         'msg':'返回成功',         'data': {}        })     */    public function getFactoryDetail()    {        $params = $this->request->param();        $id = $params['id'] ?? 0;                if (empty($id)) {            $this->error('请提供供应商ID');        }                $supplierService = new SupplierService();        $result = $supplierService->getFactoryById($id);                if (!$result) {            $this->error('供应商不存在');        }                $this->success('获取成功', $result);    }    /**     * 获取启用状态的工厂/供应商列表     *     * @ApiTitle    (获取启用状态的工厂/供应商列表)     * @ApiSummary  (获取启用状态的工厂/供应商列表,带缓存)     * @ApiMethod   (POST)     * @ApiRoute    (/api/inspection/supplier/getActiveFactoryList)     * @ApiReturnParams   (name="code", type="integer", required=true, sample="1")     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")     * @ApiReturnParams   (name="data", type="array", description="返回数据")     * @ApiReturn   ({         'code':'1',         'msg':'返回成功',         'data': []        })     */    public function getActiveFactoryList()    {        $supplierService = new SupplierService();        $result = $supplierService->getActiveFactoryListWithCache();                $this->success('获取成功', $result);    }}
 |