فهرست منبع

1、redis缓存读取缓慢;2、rearrange code;

Lawsun_M 1 سال پیش
والد
کامیت
2044387641

+ 23 - 22
app/controller/home/productCategory.js

@@ -61,28 +61,29 @@ module.exports = class ProductCategoryController extends shopController {
     const that = this;
     try {
       const requestData = await that.ctx.validate(that.treesValidate, await that.ctx.getParse());
-      let result = await that.service.redis.get(that.cacheKey + 'pid' + requestData.pid);
-      if (!result) {
-        const opt = {
-          where: { is_show: 1, pid: requestData.pid },
-          include: [
-            {
-              model: that.app.model.Products,
-              as: 'products',
-              attributes: [ 'product_id', 'category_id', 'product_name', 'product_image', 'shop_price', 'market_price', 'is_new', 'is_hot' ],
-              // offset: 0,
-              // limit: 6,
-              where: { is_sale: 1 },
-            },
-          ],
-          attributes: [ 'category_id', [ 'category_name', 'text' ]],
-          // 2023/9/15 关联查询排序
-          order: [[ 'category_sort', 'asc' ], [ 'category_id', 'asc' ], [ 'products', 'is_hot', 'desc' ], [ 'products', 'is_new', 'desc' ], [ 'products', 'sale_count', 'desc' ]],
-        };
-        const selectBean = await that.app.comoBean.instance({}, opt);
-        result = await that.service.manager.select(selectBean, that.useModel, '商品列表查看失败,请重试', false, true);
-        if (result) await that.service.redis.set(that.cacheKey + 'pid' + requestData.pid, result, that.cacheTime);
-      }
+      // 不适用reids 缓存
+      // let result = await that.service.redis.get(that.cacheKey + 'pid' + requestData.pid);
+      // if (!result) {
+      const opt = {
+        where: { is_show: 1, pid: requestData.pid },
+        include: [
+          {
+            model: that.app.model.Products,
+            as: 'products',
+            attributes: [ 'product_id', 'category_id', 'product_name', 'product_image', 'shop_price', 'market_price', 'is_new', 'is_hot' ],
+            // offset: 0,
+            // limit: 6,
+            where: { is_sale: 1 },
+          },
+        ],
+        attributes: [ 'category_id', [ 'category_name', 'text' ]],
+        // 2023/9/15 关联查询排序
+        order: [[ 'category_sort', 'asc' ], [ 'category_id', 'asc' ], [ 'products', 'is_hot', 'desc' ], [ 'products', 'is_new', 'desc' ], [ 'products', 'sale_count', 'desc' ]],
+      };
+      const selectBean = await that.app.comoBean.instance({}, opt);
+      const result = await that.service.manager.select(selectBean, that.useModel, '商品列表查看失败,请重试', false, true);
+      // if (result) await that.service.redis.set(that.cacheKey + 'pid' + requestData.pid, result, that.cacheTime);
+      // }
       return that.ctx.appJson(that.app.szjcomo.appResult('SUCCESS', result, false));
     } catch (err) {
       return that.ctx.appJson(that.app.szjcomo.appResult(err.message));

+ 16 - 16
app/middleware/manager_login.js

@@ -5,8 +5,8 @@
  * @createTime 2020-08-03
  * @return     {[type]}   [description]
  */
-module.exports = (options) => {
-    /**
+module.exports = options => {
+  /**
      * [notFoundHandler 中间件实现]
      * @author        szjcomo
      * @createTime 2020-08-03
@@ -14,17 +14,17 @@ module.exports = (options) => {
      * @param      {Function} next [description]
      * @return     {[type]}        [description]
      */
-    return async function managerLogin(ctx, next) {
-        let token = ctx.request.header.authorization;
-        if(token) {
-            try {
-                let admin_user = ctx.app.jwt.verify(token,options.secret);
-                await next();
-            } catch(err) {
-                return ctx.appJson(ctx.app.szjcomo.appResult('登录时间过期,请重新登录',null,true,10001));
-            }
-        } else {
-            return ctx.appJson(ctx.app.szjcomo.appResult('未登录,请先登录后再进行数据操作',null,true,10001));
-        }
-    };
-};
+  return async function managerLogin(ctx, next) {
+    const token = ctx.request.header.authorization;
+    if (token) {
+      try {
+        const admin_user = ctx.app.jwt.verify(token, options.secret);
+        await next();
+      } catch (err) {
+        return ctx.appJson(ctx.app.szjcomo.appResult('登录时间过期,请重新登录', null, true, 10001));
+      }
+    } else {
+      return ctx.appJson(ctx.app.szjcomo.appResult('未登录,请先登录后再进行数据操作', null, true, 10001));
+    }
+  };
+};

+ 12 - 12
app/middleware/notfound_handler.js

@@ -6,7 +6,7 @@
  * @return     {[type]}   [description]
  */
 module.exports = () => {
-    /**
+  /**
      * [notFoundHandler 中间件实现]
      * @author        szjcomo
      * @createTime 2020-08-03
@@ -14,14 +14,14 @@ module.exports = () => {
      * @param      {Function} next [description]
      * @return     {[type]}        [description]
      */
-    return async function notFoundHandler(ctx, next) {
-        await next();
-        if (ctx.status === 404 && !ctx.body) {
-            if (ctx.acceptJSON) {
-                ctx.body = ctx.app.szjcomo.appResult('访问页面不存在');
-            } else {
-                ctx.body = '<h1 style="text-align:center;line-height:300px;">访问页面不存在</h1>';
-            }
-        }
-    };
-};
+  return async function notFoundHandler(ctx, next) {
+    await next();
+    if (ctx.status === 404 && !ctx.body) {
+      if (ctx.acceptJSON) {
+        ctx.body = ctx.app.szjcomo.appResult('访问页面不存在');
+      } else {
+        ctx.body = '<h1 style="text-align:center;line-height:300px;">访问页面不存在</h1>';
+      }
+    }
+  };
+};

+ 16 - 16
app/middleware/web_login.js

@@ -5,8 +5,8 @@
  * @createTime 2020-08-03
  * @return     {[type]}   [description]
  */
-module.exports = (options) => {
-    /**
+module.exports = options => {
+  /**
      * [notFoundHandler 中间件实现]
      * @author        szjcomo
      * @createTime 2020-08-03
@@ -14,17 +14,17 @@ module.exports = (options) => {
      * @param      {Function} next [description]
      * @return     {[type]}        [description]
      */
-    return async function webLogin(ctx, next) {
-        let token = ctx.request.header.weblogintoken;
-        if(token) {
-            try {
-                let user = ctx.app.jwt.verify(token,options.secret);
-                await next();
-            } catch(err) {
-                return ctx.appJson(ctx.app.szjcomo.appResult('登录时间过期,请重新登录',null,true,10001));
-            }
-        } else {
-            return ctx.appJson(ctx.app.szjcomo.appResult('未登录,请先登录后再进行数据操作',null,true,10001));
-        }
-    };
-};
+  return async function webLogin(ctx, next) {
+    const token = ctx.request.header.weblogintoken;
+    if (token) {
+      try {
+        const user = ctx.app.jwt.verify(token, options.secret);
+        await next();
+      } catch (err) {
+        return ctx.appJson(ctx.app.szjcomo.appResult('登录时间过期,请重新登录', null, true, 10001));
+      }
+    } else {
+      return ctx.appJson(ctx.app.szjcomo.appResult('未登录,请先登录后再进行数据操作', null, true, 10001));
+    }
+  };
+};

+ 8 - 8
app/routers/home/home.js

@@ -8,16 +8,16 @@
  * @return     {[type]}       [description]
  */
 module.exports = app => {
-	/**
+  /**
 	 * 首页路由
 	 */
-	app.router.get('/',app.controller.home.home.index);
-	/**
+  app.router.get('/', app.controller.home.home.index);
+  /**
 	 * [subRouter 命名空间路由]
 	 * @type {[type]}
 	 */
-	const subRouter = app.router.namespace(`/${process.env.APP_CUSTOME || 'universal'}`);
-	subRouter.get('/', app.controller.home.home.index);
-	//加载商城路由
-	require('./shop.js')(app);
-}
+  const subRouter = app.router.namespace(`/${process.env.APP_CUSTOME || 'universal'}`);
+  subRouter.get('/', app.controller.home.home.index);
+  // 加载商城路由
+  require('./shop.js')(app);
+};

+ 7 - 7
app/routers/index.js

@@ -10,16 +10,16 @@ const path = require('path');
  * @return     {[type]}       [description]
  */
 module.exports = app => {
-	/**
+  /**
 	 * 首页控制器
 	 */
-	require(path.join(app.baseDir,'app','routers','home','home.js'))(app);
-	/**
+  require(path.join(app.baseDir, 'app', 'routers', 'home', 'home.js'))(app);
+  /**
 	 * 后台管理接口
 	 */
-	require(path.join(app.baseDir,'app','routers','manager'))(app);
-	/**
+  require(path.join(app.baseDir, 'app', 'routers', 'manager'))(app);
+  /**
 	 * 微信通讯接口
 	 */
-	require(path.join(app.baseDir,'app','routers','wechat','index.js'))(app);
-}
+  require(path.join(app.baseDir, 'app', 'routers', 'wechat', 'index.js'))(app);
+};

+ 42 - 42
app/routers/manager/apps.js

@@ -6,11 +6,11 @@
  * @param  {Array}  params     [description]
  * @return {[type]}            [description]
  */
-const autoCreateRouter = function(namespaceRouter,path,actionController,params = ['get','post','put','delete'],others = {get:'select',post:'create',put:'update',delete:'delete'}) {
-    params.forEach(item => {
-        namespaceRouter[item](path,actionController[others[item]]);
-    })
-}
+const autoCreateRouter = function(namespaceRouter, path, actionController, params = [ 'get', 'post', 'put', 'delete' ], others = { get: 'select', post: 'create', put: 'update', delete: 'delete' }) {
+  params.forEach(item => {
+    namespaceRouter[item](path, actionController[others[item]]);
+  });
+};
 
 /**
  * [框架基本路由]
@@ -20,40 +20,40 @@ const autoCreateRouter = function(namespaceRouter,path,actionController,params =
  * @param  {[type]}     managerRouter [description]
  * @return {[type]}                   [description]
  */
-module.exports = (app,managerRouter) => {
-    let manager = app.controller.manager;
-    //商品操作接口    
-    autoCreateRouter(managerRouter,'/shops/products',manager.shops.products);
-    //商品详细介绍接口
-    autoCreateRouter(managerRouter,'/shops/products/desction',manager.shops.products,['get'],{get:'selectDesction'});
-    //商品相册查询接口
-    autoCreateRouter(managerRouter,'/shops/products/carousels',manager.shops.products,['get'],{get:'selectCarousels'});
-    //查询商品属性接口
-    autoCreateRouter(managerRouter,'/shops/products/spes',manager.shops.products,['get'],{get:'selectSpes'});
-    //商品分类操作接口    
-    autoCreateRouter(managerRouter,'/shops/category',manager.shops.productCategory);
-    //商品品牌操作作接口    
-    autoCreateRouter(managerRouter,'/shops/brands',manager.shops.productBrands);
-    //商品供货商操作作接口    
-    autoCreateRouter(managerRouter,'/shops/suppliers',manager.shops.productSuppliers);
-    //商品类型操作接口
-    autoCreateRouter(managerRouter,'/shops/types',manager.shops.productTypes);
-    //商品类型属性操作接口
-    autoCreateRouter(managerRouter,'/shops/types/attr',manager.shops.productTypesItem);
-    //商品类型属性列表查询
-    autoCreateRouter(managerRouter,'/shops/types/list',manager.shops.productTypesItem,['get'],{get:'selectItems'});
-    //支付方式操作接口
-    autoCreateRouter(managerRouter,'/shops/paysConfig',manager.shops.paysConfig);
-    //配送方式操作接口
-    autoCreateRouter(managerRouter,'/shops/shippingsConfig',manager.shops.shippingsConfig);
-    //订单操作接口
-    autoCreateRouter(managerRouter,'/shops/orders',manager.shops.orders);
-    //订单发货接口
-    autoCreateRouter(managerRouter,'/shops/orders/action',manager.shops.orders,['put','get'],{put:'orderDeliver',get:'orderLogs'});
-    //打印小票接口
-    autoCreateRouter(managerRouter,'/shops/order/print',manager.shops.orders,['get'],{get:'orderPrinter'});
-    //用户管理接口
-    autoCreateRouter(managerRouter,'/shops/users',manager.shops.users);
-    //用户资金明细
-    autoCreateRouter(managerRouter,'/shops/users/moneylog',manager.shops.users,['get'],{get:'moneyLogs'});
-}
+module.exports = (app, managerRouter) => {
+  const manager = app.controller.manager;
+  // 商品操作接口
+  autoCreateRouter(managerRouter, '/shops/products', manager.shops.products);
+  // 商品详细介绍接口
+  autoCreateRouter(managerRouter, '/shops/products/desction', manager.shops.products, [ 'get' ], { get: 'selectDesction' });
+  // 商品相册查询接口
+  autoCreateRouter(managerRouter, '/shops/products/carousels', manager.shops.products, [ 'get' ], { get: 'selectCarousels' });
+  // 查询商品属性接口
+  autoCreateRouter(managerRouter, '/shops/products/spes', manager.shops.products, [ 'get' ], { get: 'selectSpes' });
+  // 商品分类操作接口
+  autoCreateRouter(managerRouter, '/shops/category', manager.shops.productCategory);
+  // 商品品牌操作作接口
+  autoCreateRouter(managerRouter, '/shops/brands', manager.shops.productBrands);
+  // 商品供货商操作作接口
+  autoCreateRouter(managerRouter, '/shops/suppliers', manager.shops.productSuppliers);
+  // 商品类型操作接口
+  autoCreateRouter(managerRouter, '/shops/types', manager.shops.productTypes);
+  // 商品类型属性操作接口
+  autoCreateRouter(managerRouter, '/shops/types/attr', manager.shops.productTypesItem);
+  // 商品类型属性列表查询
+  autoCreateRouter(managerRouter, '/shops/types/list', manager.shops.productTypesItem, [ 'get' ], { get: 'selectItems' });
+  // 支付方式操作接口
+  autoCreateRouter(managerRouter, '/shops/paysConfig', manager.shops.paysConfig);
+  // 配送方式操作接口
+  autoCreateRouter(managerRouter, '/shops/shippingsConfig', manager.shops.shippingsConfig);
+  // 订单操作接口
+  autoCreateRouter(managerRouter, '/shops/orders', manager.shops.orders);
+  // 订单发货接口
+  autoCreateRouter(managerRouter, '/shops/orders/action', manager.shops.orders, [ 'put', 'get' ], { put: 'orderDeliver', get: 'orderLogs' });
+  // 打印小票接口
+  autoCreateRouter(managerRouter, '/shops/order/print', manager.shops.orders, [ 'get' ], { get: 'orderPrinter' });
+  // 用户管理接口
+  autoCreateRouter(managerRouter, '/shops/users', manager.shops.users);
+  // 用户资金明细
+  autoCreateRouter(managerRouter, '/shops/users/moneylog', manager.shops.users, [ 'get' ], { get: 'moneyLogs' });
+};

+ 26 - 26
app/routers/manager/base.js

@@ -6,11 +6,11 @@
  * @param  {Array}  params     [description]
  * @return {[type]}            [description]
  */
-const autoCreateRouter = function(namespaceRouter,path,actionController,params = ['get','post','put','delete'],others = {get:'select',post:'create',put:'update',delete:'delete'}) {
-	params.forEach(item => {
-		namespaceRouter[item](path,actionController[others[item]]);
-	})
-}
+const autoCreateRouter = function(namespaceRouter, path, actionController, params = [ 'get', 'post', 'put', 'delete' ], others = { get: 'select', post: 'create', put: 'update', delete: 'delete' }) {
+  params.forEach(item => {
+    namespaceRouter[item](path, actionController[others[item]]);
+  });
+};
 
 /**
  * [框架基本路由]
@@ -20,24 +20,24 @@ const autoCreateRouter = function(namespaceRouter,path,actionController,params =
  * @param  {[type]}     managerRouter [description]
  * @return {[type]}                   [description]
  */
-module.exports = (app,managerRouter) => {
-	let manager = app.controller.manager;
-	//获取控制台数据
-	autoCreateRouter(managerRouter,'/console',manager.login,['get'],{get:'manager'});
-	//管理员数据接口
-	autoCreateRouter(managerRouter,'/admin_user',manager.adminUser);
-	//管理员角色数据接口
-	autoCreateRouter(managerRouter,'/roles',manager.roles);
-	//获取角色权限接口
-	autoCreateRouter(managerRouter,'/roles/auth',manager.roles,['get','post'],{get:'getRoleAuth',post:'roleAuth'});
-	//权限节点接口
-	autoCreateRouter(managerRouter,'/accesss',manager.accesss);
-	//配置操作接口
-	autoCreateRouter(managerRouter,'/configs',manager.configs);
-	//配置设置接口
-	autoCreateRouter(managerRouter,'/configs/setting',manager.configs,['post'],{post:'setting'});
-	//文章操作接口
-	autoCreateRouter(managerRouter,'/articles',manager.articles);
-	//文章分数接口
-	autoCreateRouter(managerRouter,'/articles/category',manager.articlesCategory);
-}
+module.exports = (app, managerRouter) => {
+  const manager = app.controller.manager;
+  // 获取控制台数据
+  autoCreateRouter(managerRouter, '/console', manager.login, [ 'get' ], { get: 'manager' });
+  // 管理员数据接口
+  autoCreateRouter(managerRouter, '/admin_user', manager.adminUser);
+  // 管理员角色数据接口
+  autoCreateRouter(managerRouter, '/roles', manager.roles);
+  // 获取角色权限接口
+  autoCreateRouter(managerRouter, '/roles/auth', manager.roles, [ 'get', 'post' ], { get: 'getRoleAuth', post: 'roleAuth' });
+  // 权限节点接口
+  autoCreateRouter(managerRouter, '/accesss', manager.accesss);
+  // 配置操作接口
+  autoCreateRouter(managerRouter, '/configs', manager.configs);
+  // 配置设置接口
+  autoCreateRouter(managerRouter, '/configs/setting', manager.configs, [ 'post' ], { post: 'setting' });
+  // 文章操作接口
+  autoCreateRouter(managerRouter, '/articles', manager.articles);
+  // 文章分数接口
+  autoCreateRouter(managerRouter, '/articles/category', manager.articlesCategory);
+};

+ 15 - 15
app/routers/manager/index.js

@@ -8,18 +8,18 @@
  * @return     {[type]}       [description]
  */
 module.exports = app => {
-	//管理员登录检查函数
-	const managerLogin  = app.middleware.managerLogin(app.config.jwt);
-	//需要授权的路由分组
-	const authRouter 	= app.router.namespace(`/${process.env.APP_CUSTOME || 'universal'}/manager`,managerLogin);
-	//不需要授权的路由分组
-	const notAuthRouter = app.router.namespace(`/${process.env.APP_CUSTOME || 'universal'}/admin`);
-	//用户登录
-	notAuthRouter.post('/dologin', app.controller.manager.login.dologin);
-	//验证码图片
-	notAuthRouter.get('/verify',app.controller.manager.login.verify);
-	//项目基本路由
-	require('./base.js')(app,authRouter);
-	//加载项目路由
-	require('./apps.js')(app,authRouter);
-}
+  // 管理员登录检查函数
+  const managerLogin = app.middleware.managerLogin(app.config.jwt);
+  // 需要授权的路由分组
+  const authRouter 	= app.router.namespace(`/${process.env.APP_CUSTOME || 'universal'}/manager`, managerLogin);
+  // 不需要授权的路由分组
+  const notAuthRouter = app.router.namespace(`/${process.env.APP_CUSTOME || 'universal'}/admin`);
+  // 用户登录
+  notAuthRouter.post('/dologin', app.controller.manager.login.dologin);
+  // 验证码图片
+  notAuthRouter.get('/verify', app.controller.manager.login.verify);
+  // 项目基本路由
+  require('./base.js')(app, authRouter);
+  // 加载项目路由
+  require('./apps.js')(app, authRouter);
+};