asd123a20 3 years ago
parent
commit
b7599c2b0d
35 changed files with 142 additions and 98 deletions
  1. 5 0
      app/controller/banner.js
  2. 1 1
      app/controller/content.js
  3. 1 1
      app/controller/files.js
  4. 4 4
      app/controller/links.js
  5. 1 1
      app/controller/page.js
  6. 2 2
      app/model/Banner.js
  7. 1 1
      app/model/Content.js
  8. 4 0
      app/model/Files.js
  9. 0 4
      app/model/Page.js
  10. BIN
      app/public/files/019fe8f0-e3cd-11eb-a574-71b27b775b3f.docx
  11. BIN
      app/public/files/08436f10-e3cd-11eb-a574-71b27b775b3f.docx
  12. BIN
      app/public/files/769a1240-e3d5-11eb-8937-e3d3c65aed8f.docx
  13. BIN
      app/public/files/93ad7610-e3d5-11eb-8937-e3d3c65aed8f.docx
  14. BIN
      app/public/files/b9059770-e3d6-11eb-8232-5fd805b3097f.docx
  15. BIN
      app/public/files/c32cc610-e3d6-11eb-8232-5fd805b3097f.docx
  16. BIN
      app/public/files/fbba0d80-e3cc-11eb-a574-71b27b775b3f.docx
  17. BIN
      app/public/resource/3fffbad0-e3d7-11eb-90dd-dbe4e5298753.jpeg
  18. BIN
      app/public/resource/4597eb70-e3d7-11eb-90dd-dbe4e5298753.jpeg
  19. BIN
      app/public/resource/4a9b2f10-e3d7-11eb-90dd-dbe4e5298753.jpeg
  20. BIN
      app/public/resource/78b996e0-e3d5-11eb-8937-e3d3c65aed8f.jpeg
  21. BIN
      app/public/resource/8d09a1d0-e3d5-11eb-8937-e3d3c65aed8f.jpeg
  22. BIN
      app/public/resource/90b25e80-e3d5-11eb-8937-e3d3c65aed8f.jpeg
  23. BIN
      app/public/resource/b6543310-e3d6-11eb-8232-5fd805b3097f.jpeg
  24. BIN
      app/public/resource/c0bcd780-e3d6-11eb-8232-5fd805b3097f.jpeg
  25. BIN
      app/public/resource/debf0820-e3d6-11eb-8232-5fd805b3097f.jpeg
  26. BIN
      app/public/resource/f6659110-e3d6-11eb-8232-5fd805b3097f.jpeg
  27. 3 2
      app/router.js
  28. 20 17
      app/service/bannner.js
  29. 15 13
      app/service/content.js
  30. 41 14
      app/service/files.js
  31. 16 19
      app/service/link.js
  32. 2 2
      app/service/menu.js
  33. 17 13
      app/service/page.js
  34. 1 1
      app/service/power.js
  35. 8 3
      config/config.default.js

+ 5 - 0
app/controller/banner.js

@@ -23,6 +23,11 @@ class BannerController extends Controller {
     const res = await ctx.service.banner.query(ctx.query);
     ctx.body = res;
   }
+  async details() {
+    const { ctx } = this;
+    const res = await ctx.service.banner.details(ctx.params);
+    ctx.body = res;
+  }
 }
 
 module.exports = BannerController;

+ 1 - 1
app/controller/content.js

@@ -25,7 +25,7 @@ class ContentController extends Controller {
   }
   async details() {
     const { ctx } = this;
-    const res = await ctx.service.content.details(ctx.query);
+    const res = await ctx.service.content.details(ctx.params);
     ctx.body = res;
   }
 }

+ 1 - 1
app/controller/files.js

@@ -25,7 +25,7 @@ class FilesController extends Controller {
   }
   async upload() {
     const { ctx } = this;
-    const res = await ctx.service.files.query(this.ctx.request.body);
+    const res = await ctx.service.files.upload(ctx.request.body);
     ctx.body = res;
   }
 }

+ 4 - 4
app/controller/links.js

@@ -5,22 +5,22 @@ const Controller = require('egg').Controller;
 class LinksController extends Controller {
   async create() {
     const { ctx } = this;
-    const res = await ctx.service.links.create(ctx.request.body);
+    const res = await ctx.service.link.create(ctx.request.body);
     ctx.body = res;
   }
   async update() {
     const { ctx } = this;
-    const res = await ctx.service.links.update(ctx.request.body);
+    const res = await ctx.service.link.update(ctx.request.body);
     ctx.body = res;
   }
   async del() {
     const { ctx } = this;
-    const res = await ctx.service.links.del(ctx.params);
+    const res = await ctx.service.link.del(ctx.params);
     ctx.body = res;
   }
   async query() {
     const { ctx } = this;
-    const res = await ctx.service.links.query(ctx.query);
+    const res = await ctx.service.link.query(ctx.query);
     ctx.body = res;
   }
 }

+ 1 - 1
app/controller/page.js

@@ -25,7 +25,7 @@ class PageController extends Controller {
   }
   async details() {
     const { ctx } = this;
-    const res = await ctx.service.page.details(ctx.query);
+    const res = await ctx.service.page.details(ctx.params);
     ctx.body = res;
   }
 }

+ 2 - 2
app/model/Banner.js

@@ -17,7 +17,7 @@ module.exports = app => {
     },
     // banner地址
     path: {
-      tyoe: String,
+      type: String,
     },
     // 附件
     annex: {
@@ -25,7 +25,7 @@ module.exports = app => {
     },
     // 内容
     content: {
-      type: Array,
+      type: String,
     },
     // 创建时间
     createAt: {

+ 1 - 1
app/model/Content.js

@@ -17,7 +17,7 @@ module.exports = app => {
     },
     // 缩略图
     thumbnail: {
-      tyoe: String,
+      type: String,
     },
     // 附件
     annex: {

+ 4 - 0
app/model/Files.js

@@ -11,6 +11,10 @@ module.exports = app => {
     path: {
       type: String,
     },
+    // 文件路径
+    type: {
+      type: String,
+    },
     // 数据id
     id: {
       type: String,

+ 0 - 4
app/model/Page.js

@@ -15,10 +15,6 @@ module.exports = app => {
     slug: {
       type: String,
     },
-    // 缩略图
-    thumbnail: {
-      tyoe: String,
-    },
     // 附件
     annex: {
       type: String,

BIN
app/public/files/019fe8f0-e3cd-11eb-a574-71b27b775b3f.docx


BIN
app/public/files/08436f10-e3cd-11eb-a574-71b27b775b3f.docx


BIN
app/public/files/769a1240-e3d5-11eb-8937-e3d3c65aed8f.docx


BIN
app/public/files/93ad7610-e3d5-11eb-8937-e3d3c65aed8f.docx


BIN
app/public/files/b9059770-e3d6-11eb-8232-5fd805b3097f.docx


BIN
app/public/files/c32cc610-e3d6-11eb-8232-5fd805b3097f.docx


BIN
app/public/files/fbba0d80-e3cc-11eb-a574-71b27b775b3f.docx


BIN
app/public/resource/3fffbad0-e3d7-11eb-90dd-dbe4e5298753.jpeg


BIN
app/public/resource/4597eb70-e3d7-11eb-90dd-dbe4e5298753.jpeg


BIN
app/public/resource/4a9b2f10-e3d7-11eb-90dd-dbe4e5298753.jpeg


BIN
app/public/resource/78b996e0-e3d5-11eb-8937-e3d3c65aed8f.jpeg


BIN
app/public/resource/8d09a1d0-e3d5-11eb-8937-e3d3c65aed8f.jpeg


BIN
app/public/resource/90b25e80-e3d5-11eb-8937-e3d3c65aed8f.jpeg


BIN
app/public/resource/b6543310-e3d6-11eb-8232-5fd805b3097f.jpeg


BIN
app/public/resource/c0bcd780-e3d6-11eb-8232-5fd805b3097f.jpeg


BIN
app/public/resource/debf0820-e3d6-11eb-8232-5fd805b3097f.jpeg


BIN
app/public/resource/f6659110-e3d6-11eb-8232-5fd805b3097f.jpeg


+ 3 - 2
app/router.js

@@ -35,13 +35,13 @@ module.exports = app => {
   router.post('/api/content/update', jwt, controller.content.update);
   router.delete('/api/content/delete/:id', jwt, controller.content.del);
   router.get('/api/content/query', controller.content.query);
-  router.get('/api/content/details', controller.content.details);
+  router.get('/api/content/details/:id', controller.content.details);
   // 单页
   router.post('/api/page/create', jwt, controller.page.create);
   router.post('/api/page/update', jwt, controller.page.update);
   router.delete('/api/page/delete/:id', jwt, controller.page.del);
   router.get('/api/page/query', controller.page.query);
-  router.get('/api/page/details', controller.page.details);
+  router.get('/api/page/details/:id', controller.page.details);
   // 文件
   router.post('/api/files/create', jwt, controller.files.create);
   router.post('/api/files/update', jwt, controller.files.update);
@@ -63,6 +63,7 @@ module.exports = app => {
   router.post('/api/banner/update', jwt, controller.banner.update);
   router.delete('/api/banner/delete/:id', jwt, controller.banner.del);
   router.get('/api/banner/query', controller.banner.query);
+  router.get('/api/banner/details/:id', controller.banner.details);
   // 站点配置
   router.post('/api/configuration/create', jwt, controller.configuration.create);
   router.post('/api/configuration/update', jwt, controller.configuration.update);

+ 20 - 17
app/service/bannner.js

@@ -4,27 +4,27 @@ const Service = require('egg').Service;
 const assert = require('assert');
 const moment = require('moment');
 class ContentService extends Service {
-  async create({ title, shortTitle, slug, path, annex, content, istop }) {
+  async create({ title, shortTitle, slug, path, annex, content }) {
     assert(title, '标题不存在');
     assert(shortTitle, '短标题不存在');
     assert(slug, '摘要不存在');
-    assert(path, '缩略图不存在');
-    assert(istop, '置顶不存在');
+    assert(path, '轮播图不存在');
     assert(content, '内容不存在');
-    const { Content: model } = this.ctx.model;
+    const { Banner: model } = this.ctx.model;
     const createAt = moment().format('x');
     try {
-      await model.create({ title, shortTitle, slug, path, annex, content, istop, createAt });
+      await model.create({ title, shortTitle, slug, path, annex, content, createAt });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
+      console.log(error);
       throw new Error({ errcode: -2001, errmsg: '添加失败' });
     }
   }
-  async update({ title, shortTitle, slug, path, annex, content, istop, id }) {
-    assert(id, 'id不存在');
-    const { Content: model } = this.ctx.model;
+  async update({ title, shortTitle, slug, path, annex, content, istop, _id }) {
+    assert(_id, 'id不存在');
+    const { Banner: model } = this.ctx.model;
     try {
-      await model.findByIdAndUpdate(id, { title, shortTitle, slug, path, annex, content, istop });
+      await model.findById(_id).update({ title, shortTitle, slug, path, annex, content, istop });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '修改失败' });
@@ -32,9 +32,9 @@ class ContentService extends Service {
   }
   async del({ id }) {
     assert(id, 'id不存在');
-    const { Content: model } = this.ctx.model;
+    const { Banner: model } = this.ctx.model;
     try {
-      await model.findByIdAndDelete(id);
+      await model.findById(id).remove();
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
@@ -42,7 +42,7 @@ class ContentService extends Service {
   }
   async details({ id }) {
     assert(id, 'id不存在');
-    const { Content: model } = this.ctx.model;
+    const { Banner: model } = this.ctx.model;
     try {
       const res = await model.findById(id);
       return { errmsg: '', errcode: 0, data: res };
@@ -50,16 +50,19 @@ class ContentService extends Service {
       throw new Error({ errcode: -2001, errmsg: '查询失败' });
     }
   }
-  async query({ skip, limit }) {
-    const { Content: model } = this.ctx.model;
+  async query({ skip, limit, title }) {
+    const { Banner: model } = this.ctx.model;
+    const filter = {};
+    if (title) filter.title = title;
+    const total = await model.find();
     try {
       let res;
       if (skip && limit) {
-        res = await model.find({ content: false }).skip(skip * limit).limit(limit);
+        res = await model.find({ ...filter }, { content: false }).skip(Number(skip) * Number(limit)).limit(Number(limit));
       } else {
-        res = await model.find({ content: false });
+        res = await model.find({ ...filter }, { content: false });
       }
-      return { errmsg: '', errcode: 0, data: res };
+      return { errmsg: '', errcode: 0, data: res, total: total.length };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '查询失败' });
     }

+ 15 - 13
app/service/content.js

@@ -8,7 +8,7 @@ class ContentService extends Service {
     assert(title, '标题不存在');
     assert(shortTitle, '短标题不存在');
     assert(slug, '摘要不存在');
-    // assert(thumbnail, '缩略图不存在');
+    assert(thumbnail, '缩略图不存在');
     assert(content, '内容不存在');
     const { Content: model } = this.ctx.model;
     const createAt = moment().format('x');
@@ -19,11 +19,11 @@ class ContentService extends Service {
       throw new Error({ errcode: -2001, errmsg: '添加失败' });
     }
   }
-  async update({ title, shortTitle, slug, thumbnail, annex, content, istop, columnList, id, year, datte }) {
-    assert(id, 'id不存在');
+  async update({ title, shortTitle, slug, thumbnail, annex, content, istop, columnList, _id, year, datte }) {
+    assert(_id, 'id不存在');
     const { Content: model } = this.ctx.model;
     try {
-      await model.findByIdAndUpdate(id, { title, shortTitle, slug, thumbnail, annex, content, istop, columnList, year, datte });
+      await model.findById(_id).update({ title, shortTitle, slug, thumbnail, annex, content, istop, columnList, year, datte });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '修改失败' });
@@ -33,7 +33,7 @@ class ContentService extends Service {
     assert(id, 'id不存在');
     const { Content: model } = this.ctx.model;
     try {
-      await model.findByIdAndDelete(id);
+      await model.findById(id).remove();
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
@@ -49,22 +49,24 @@ class ContentService extends Service {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
     }
   }
-  async query({ skip, limit, code }) {
-    assert(code, '栏目code不存在');
+  async query({ skip, limit, title, menucode }) {
     const { Content: model } = this.ctx.model;
+    const filter = {};
+    if (title) filter.title = title;
+    const total = await model.find();
     try {
+      if (menucode) {
+        const list = await model.find({ columnList: { $in: [ menucode ] } });
+        return { errmsg: '', errcode: 0, data: list, total: total.length };
+      }
       let res;
-      const total = await model.where('columnList').in(code).select({ content: false });
       if (skip && limit) {
-        res = await model.where('columnList').in(code).select({ content: false })
-          .skip(Number(skip) * Number(limit))
-          .limit(Number(limit));
+        res = await model.find({ ...filter }, { content: false }).skip(Number(skip) * Number(limit)).limit(Number(limit));
       } else {
-        res = await model.where('columnList').in(code).select({ content: false });
+        res = await model.find({ ...filter }, { content: false });
       }
       return { errmsg: '', errcode: 0, data: res, total: total.length };
     } catch (error) {
-      console.log(error);
       throw new Error({ errcode: -2001, errmsg: '查询失败' });
     }
   }

+ 41 - 14
app/service/files.js

@@ -6,15 +6,16 @@ const moment = require('moment');
 const { v1: uuidv1 } = require('uuid');
 const fs = require('fs');
 const path = require('path');
-const fsPromises = fs.promises;
+// const fsPromises = fs.promises;
 class FilesService extends Service {
-  async create({ name, path }) {
+  async create({ name, path, type }) {
     assert(name, '名称不存在');
     assert(path, '路径不存在');
+    assert(type, '类型不存在');
     const { Files: model } = this.ctx.model;
     const createAt = moment().format('x');
     try {
-      await model.create({ name, path, createAt });
+      await model.create({ name, path, type, createAt });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '添加失败' });
@@ -38,41 +39,67 @@ class FilesService extends Service {
       const files = await model.findById(id);
       const filepath = `${files.path}`;
       // 开始删除文件
-      await fsPromises.rmdir(filepath);
-      await model.findOneAndDelete(id);
+      fs.unlinkSync(path.join(this.app.baseDir, `/app${filepath}`));
+      await model.findById(id).remove();
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
     }
   }
-  async query({ skip, limit, filter }) {
+  async query({ skip, limit, type, name }) {
+    assert(type, '类型不存在');
+    const filter = {};
+    filter.type = type;
+    if (name) filter.name = name;
     const { Files: model } = this.ctx.model;
     try {
+      const total = await model.find({ ...filter });
       let res;
       if (skip && limit) {
-        res = await model.find(filter).skip(skip * limit).limit(limit);
+        res = await model.find({ ...filter }).skip(Number(skip) * Number(limit)).limit(Number(limit));
       } else {
-        res = await model.find(filter);
+        res = await model.find({ ...filter });
       }
-      return { errmsg: '', errcode: 0, data: res };
+      return { errmsg: '', errcode: 0, data: res, total: total.length };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '查询失败' });
     }
   }
-  async upload({ type }) {
+  async upload() {
     try {
       const stream = await this.ctx.getFileStream();
+      const type = stream.fields.type;
       // 创建文件存储名称
       const filename = stream.filename;
       const index = filename.indexOf('.');
       const fileType = filename.slice(index, filename.length);
       const uuid = uuidv1();
-      const paths = path.join(this.app.baseDir, `/app/public/${type === 'files' ? 'files' : 'resource'}/${uuid}${fileType}`);
+      const filepath = `/public/${type === 'files' ? 'files' : 'resource'}/${uuid}${fileType}`;
+      const paths = path.join(this.app.baseDir, `/app${filepath}`);
       // 存储
-      const remoteFileStream = fs.createWriteStream(paths);
-      stream.pipe(remoteFileStream);
-      return { errmsg: '', errcode: 0, data: { name: filename, path: paths } };
+      const result = await new Promise((resolve, reject) => {
+        const remoteFileStream = fs.createWriteStream(paths);
+        stream.pipe(remoteFileStream);
+        let errFlag;
+        remoteFileStream.on('error', err => {
+          errFlag = true;
+
+          remoteFileStream.destroy();
+          reject(err);
+        });
+
+        remoteFileStream.on('finish', async () => {
+          if (errFlag) return;
+          resolve(true);
+        });
+      });
+      if (!result) {
+        throw new Error({ errcode: -2001, errmsg: '上传失败' });
+      }
+      await this.ctx.service.files.create({ name: filename, path: filepath, type });
+      return { errmsg: '', errcode: 0, data: { name: filename, path: filepath } };
     } catch (error) {
+      console.log(error);
       throw new Error({ errcode: -2001, errmsg: '上传失败' });
     }
   }

+ 16 - 19
app/service/link.js

@@ -3,27 +3,26 @@
 const Service = require('egg').Service;
 const assert = require('assert');
 const moment = require('moment');
-const fs = require('fs');
-const fsPromises = fs.promises;
 class LinkService extends Service {
   async create({ name, path, links }) {
     assert(name, '名称不存在');
     assert(path, '路径不存在');
     assert(links, '链接不存在');
-    const { Link: model } = this.ctx.model;
+    const { Links: model } = this.ctx.model;
     const createAt = moment().format('x');
     try {
       await model.create({ name, path, links, createAt });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
+      console.log(error);
       throw new Error({ errcode: -2001, errmsg: '添加失败' });
     }
   }
-  async update({ name, path, id, links }) {
-    assert(id, 'id不存在');
-    const { Link: model } = this.ctx.model;
+  async update({ name, path, _id, links }) {
+    assert(_id, 'id不存在');
+    const { Links: model } = this.ctx.model;
     try {
-      await model.findByIdAndUpdate(id, { name, path, links });
+      await model.findById(_id).update({ name, path, links });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '修改失败' });
@@ -31,29 +30,27 @@ class LinkService extends Service {
   }
   async del({ id }) {
     assert(id, 'id不存在');
-    const { Link: model } = this.ctx.model;
+    const { Links: model } = this.ctx.model;
     try {
-      // 获取文件路径
-      const files = await model.findById(id);
-      const filepath = `${files.path}`;
-      // 开始删除文件
-      await fsPromises.rmdir(filepath);
-      await model.findOneAndDelete(id);
+      await model.findById(id).remove();
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
     }
   }
-  async query({ skip, limit, filter }) {
-    const { Link: model } = this.ctx.model;
+  async query({ skip, limit, name }) {
+    const { Links: model } = this.ctx.model;
     try {
+      const filter = {};
+      if (name) filter.title = name;
       let res;
+      const total = await model.find();
       if (skip && limit) {
-        res = await model.find(filter).skip(skip * limit).limit(limit);
+        res = await model.find({ ...filter }).skip(Number(skip) * Number(limit)).limit(Number(limit));
       } else {
-        res = await model.find(filter);
+        res = await model.find({ ...filter });
       }
-      return { errmsg: '', errcode: 0, data: res };
+      return { errmsg: '', errcode: 0, data: res, total: total.length };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '查询失败' });
     }

+ 2 - 2
app/service/menu.js

@@ -78,13 +78,14 @@ class MenuService extends Service {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
     }
   }
-  async query({ skip, limit, name, code }) {
+  async query({ skip, limit, name, code, type }) {
     const { Menu: model } = this.ctx.model;
     try {
       const total = await model.find();
       const filter = {};
       if (name) filter.name = name;
       if (code) filter.code = code;
+      if (type) filter.type = type;
       let res;
       if (skip !== undefined && limit !== undefined) {
         res = await model.find({ ...filter }).skip(Number(skip) * Number(limit)).limit(Number(limit));
@@ -93,7 +94,6 @@ class MenuService extends Service {
       }
       return { errmsg: '', errcode: 0, data: res, total: total.length };
     } catch (error) {
-      console.log(error);
       throw new Error({ errcode: -2001, errmsg: '查询失败' });
     }
   }

+ 17 - 13
app/service/page.js

@@ -4,25 +4,26 @@ const Service = require('egg').Service;
 const assert = require('assert');
 const moment = require('moment');
 class PageService extends Service {
-  async create({ title, shortTitle, slug, thumbnail, annex, content, istop, menu }) {
+  async create({ title, shortTitle, slug, annex, content, istop, menu }) {
     assert(title, '标题不存在');
     assert(shortTitle, '短标题不存在');
     assert(slug, '摘要不存在');
     assert(content, '内容不存在');
+    assert(content, '内容不存在');
     const { Page: model } = this.ctx.model;
     const createAt = moment().format('x');
     try {
-      await model.create({ title, shortTitle, slug, thumbnail, annex, content, istop, menu, createAt });
+      await model.create({ title, shortTitle, slug, annex, content, istop, menu, createAt });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '添加失败' });
     }
   }
-  async update({ title, shortTitle, slug, thumbnail, annex, content, istop, menu, id }) {
-    assert(id, 'id不存在');
+  async update({ title, shortTitle, slug, annex, content, istop, menu, _id }) {
+    assert(_id, 'id不存在');
     const { Page: model } = this.ctx.model;
     try {
-      await model.findByIdAndUpdate(id, { title, shortTitle, slug, thumbnail, annex, content, istop, menu });
+      await model.findById(_id).update({ title, shortTitle, slug, annex, content, istop, menu });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '修改失败' });
@@ -32,32 +33,35 @@ class PageService extends Service {
     assert(id, 'id不存在');
     const { Page: model } = this.ctx.model;
     try {
-      await model.findByIdAndDelete(id);
+      await model.findById(id).remove();
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
     }
   }
-  async details({ code }) {
-    assert(code, 'code不存在');
+  async details({ id }) {
+    assert(id, 'id不存在');
     const { Page: model } = this.ctx.model;
     try {
-      const res = await model.where('menu').in(code);
+      const res = await model.findById(id);
       return { errmsg: '', errcode: 0, data: res };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
     }
   }
-  async query({ skip, limit }) {
+  async query({ skip, limit, title }) {
     const { Page: model } = this.ctx.model;
+    const filter = {};
+    if (title) filter.title = title;
     try {
+      const total = await model.find();
       let res;
       if (skip && limit) {
-        res = await model.find({ content: false }).skip(skip * limit).limit(limit);
+        res = await model.find({ ...filter }, { content: false }).skip(Number(skip) * Number(limit)).limit(Number(limit));
       } else {
-        res = await model.find({ content: false });
+        res = await model.find({ ...filter }, { content: false });
       }
-      return { errmsg: '', errcode: 0, data: res };
+      return { errmsg: '', errcode: 0, data: res, total: total.length };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '查询失败' });
     }

+ 1 - 1
app/service/power.js

@@ -14,7 +14,7 @@ class UserService extends Service {
     try {
       const res = await model.find({ acct });
       const userInfo = res[0];
-      if (userInfo.state !== 0) {
+      if (userInfo.state !== '0') {
         return { errmsg: '用户状态异常', errcode: -2003 };
       }
       if (userInfo.password !== pwd) {

+ 8 - 3
config/config.default.js

@@ -33,9 +33,14 @@ module.exports = appInfo => {
     // myAppName: 'egg',
   };
   // 解除文件上传大小限制
-  config.bodyParser = {
-    jsonLimit: '100mb',
-    formLimit: '100mb',
+  // config.bodyParser = {
+  //   jsonLimit: '100mb',
+  //   formLimit: '100mb',
+  // };
+  config.multipart = {
+    fileSize: '50mb',
+    mode: 'stream',
+    fileExtensions: [ '.xls', '.png', '.jpg', '.doc', '.xlsx', '.docx', '.rar', '.zip', '.7z', '.pdf' ], // 扩展几种上传的文件格式
   };
   // jwt密钥
   config.jwt = {