const router = require('express').Router(); const {paramFail, ServerError, success, controlError, searchSuccess} = require("../tools/result"); const c = require('../control/product'); const log = require("../logger").logger("r_product","info") const typeTool = require('../tools/typeTool_cjs'); /** * 加载产品列表,根据类型 * @param key query 产品类别 * @param p query 页码 * @param l query 每页数量 */ router.get('/load', async (req, res) => { try{ let err, result; let {key, l, p} = req.query; if(!key){ paramFail(res, "key is required"); return; } // console.log(key); // log.info(key); [err, result] = await c.loadProduct(key, p, l); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }); router.get( '/search', async (req, res) => { try{ log.info(`[搜索产品] `) let err, result; let {key, l, p, type} = req.query; type = type || 'all'; l = typeTool.toNumber(l); p = typeTool.toNumber(p); log.info(`page=${p},limit=${l}`); [err, result] = await c.searchProduct(type, key, p, l); if(err){ log.info(`[搜索产品] err=${err}`); return controlError(res, err, null);} log.info(`result len=${result.arr.length}`) searchSuccess(res, result.arr, result.total, result.page, result.limit, ); }catch (e) { ServerError(res, null, e.message); } }); router.get('/mini', async (req, res) => { try{ log.info(`[搜索产品] 只获取基础值`) let err, result; let {key, l, p, type} = req.query; type = type || 'all'; l = typeTool.toNumber(l); p = typeTool.toNumber(p); log.info(`page=${p},limit=${l}`); [err, result] = await c.searchProductByMini(type, key, p, l); if(err){ log.info(`[搜索产品] err=${err}`); return controlError(res, err, null);} log.info(`result len=${result.arr.length}`) searchSuccess(res, result.arr, result.total, result.page, result.limit, ); }catch (e) { ServerError(res, null, e.message); } }); /** * 获取产品信息 * @param id path 产品id */ router.get('/:id', async (req, res) => { try{ let err, result; let {id} = req.params; if(!id){ paramFail(res, "id is required"); return; } id = typeTool.toNumber(id); log.info(`product info ${id}`); [err, result] = await c.getProductInfo(id); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }); module.exports = router ;