| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- 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);
- }
- });
- // 获取产品类型信息
- router.get('/types', async (req, res) => {
- try {
- let err, result;
- [err, result] = await c.getProductTypes();
- if (err) {
- return controlError(res, err, null);
- }
- success(res, result);
- } catch (e) {
- ServerError(res, null, e.message);
- }
- });
- // 编辑产品类型
- router.post('/type/edit', async (req, res) => {
- try {
- let err, result;
- const id = req.query.id;
- const body = req.body;
- log.info(`[编辑产品类型] id=${id}, body=${JSON.stringify(body)}`);
- [err, result] = await c.editType(id, body);
- if(err){ return controlError(res, err, null);}
- success(res, result);
- }catch (e) {
- ServerError(res, null, e.message);
- }
- });
- router.post('/type/add', async (req, res) => {
- try {
- let err, result;
- const body = req.body;
- log.info(`[新增产品类型] body=${JSON.stringify(body)}`);
- [err, result] = await c.addType(body);
- if(err){ return controlError(res, err, null);}
- success(res, result);
- }catch (e) {
- ServerError(res, null, e.message);
- }
- });
- router.post('/type/del', async (req, res) => {
- try {
- let err, result;
- const id = req.query.id;
- const body = req.body;
- log.info(`[移除产品类型] id=${id} body=${JSON.stringify(body)}`);
- if(!id || !body || id !== body.id){
- paramFail(res, "id is must be two ");
- return;
- }
- [err, result] = await c.addType(body);
- if(err){ return controlError(res, err, null);}
- success(res, result);
- }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 ;
|