瀏覽代碼

增加网关错误处理,增加文章字段

asd123a20 3 年之前
父節點
當前提交
ca5fd3634f
共有 3 個文件被更改,包括 32 次插入13 次删除
  1. 9 1
      service-cms/app/model/content.js
  2. 17 11
      service-cms/app/service/content.js
  3. 6 1
      service-gateway/app/controller/home.js

+ 9 - 1
service-cms/app/model/content.js

@@ -3,7 +3,7 @@ const Schema = require('mongoose').Schema;
 const SchemaDefine = {
   // 置顶
   istop: { type: Boolean, required: false, default: false },
-  // 排序
+  // 排序 发布时间
   date: { type: Number, required: false },
   // 添加时间
   createAt: { type: Number, required: true },
@@ -25,6 +25,14 @@ const SchemaDefine = {
   recommend: { type: Boolean, required: false, default: false },
   // 附件
   annex: { type: String, required: false },
+  // vip可见标识
+  svip: { type: Boolean, required: false },
+  // 是否显示
+  isShow: { type: Boolean, required: false },
+  // 状态 0=待发布 1=已发布
+  status: { type: String, required: false },
+  // 关键词
+  keywords: { type: Array, required: false, default: [] },
 };
 const schema = new Schema(SchemaDefine);
 module.exports = app => {

+ 17 - 11
service-cms/app/service/content.js

@@ -8,7 +8,7 @@ class ContentService extends Service {
     super(ctx);
     this.model = this.ctx.model.Content;
   }
-  async create({ title, describe, content, bind, istop, date, thumbnail, recommend, annex }) {
+  async create({ title, describe, content, bind, istop, date, thumbnail, recommend, annex, keywords, svip, isShow, status }) {
     assert(title, '标题不存在');
     assert(describe, '描述不存在');
     assert(content, '内容不存在');
@@ -16,19 +16,19 @@ class ContentService extends Service {
     try {
       const createAt = moment().format('x');
       const updateAt = moment().format('x');
-      const item = await this.model.create({ title, describe, content, bind, istop, date, thumbnail, recommend, annex, createAt, updateAt });
+      const item = await this.model.create({ title, describe, content, bind, istop, date, thumbnail, recommend, annex, createAt, updateAt, keywords, svip, isShow, status });
       return { errcode: 0, errmsg: '', data: item };
     } catch (error) {
       throw error;
     }
   }
-  async update({ id, title, describe, content, bind, istop, date, thumbnail, recommend, annex }) {
+  async update({ id, title, describe, content, bind, istop, date, thumbnail, recommend, annex, keywords, svip, isShow, status }) {
     assert(id, 'id不存在');
     try {
       const res = await this.model.findOne({ _id: id });
       if (!res) return { errcode: -1001, errmsg: '数据不存在', data: '' };
       const updateAt = moment().format('x');
-      await this.model.updateOne({ _id: id }, { title, describe, content, bind, istop, date, thumbnail, recommend, annex, updateAt });
+      await this.model.updateOne({ _id: id }, { title, describe, content, bind, istop, date, thumbnail, recommend, annex, updateAt, keywords, svip, isShow, status });
       return { errcode: 0, errmsg: '', data: 'update' };
     } catch (error) {
       throw error;
@@ -45,12 +45,18 @@ class ContentService extends Service {
       throw error;
     }
   }
-  async query({ skip, limit, title, date, bind }) {
-    const filter = {};
-    if (title || date || bind) filter.$or = [];
-    if (title) filter.$or.push({ code: { $regex: title } });
-    if (date) filter.$or.push({ date: { $regex: date } });
-    if (bind) filter.$or.push({ bind: { $regex: bind } });
+  async query({ skip, limit, title, date, bind, keywords, svip, isShow, status }) {
+    const filter = { $or: [] };
+    const arr = { title, date, bind, keywords, svip, isShow, status };
+    for (const e in arr) {
+      let datas;
+      if (e === 'keywords') {
+        datas = `{ "${e}": { "$elemMatch": { "$eq": "${arr[e]}" } } }`;
+      } else {
+        datas = `{ "${e}": { "$regex": "${arr[e]}" } }`;
+      }
+      if (arr[e]) filter.$or.push(JSON.parse(datas));
+    }
     try {
       let res;
       const total = await this.model.find({ ...filter }, { content: false });
@@ -71,7 +77,7 @@ class ContentService extends Service {
     try {
       const res = await this.model.findOne({ _id: id });
       if (!res) return { errcode: -1001, errmsg: '数据不存在', data: '' };
-      await this.model.update({ _id: id }, { visit: res.visit + 1 });
+      await this.model.updateOne({ _id: id }, { visit: res.visit + 1 });
       return { errcode: 0, errmsg: '', data: res };
     } catch (error) {
       throw error;

+ 6 - 1
service-gateway/app/controller/home.js

@@ -51,8 +51,13 @@ class HomeController extends Controller {
     // 日志详情默认值
     details = data;
     result = '成功';
-
     // 错误异常处理(返回值)
+    // 异常抛出检测
+    if (res.status === 500) {
+      msg = { errcode: -1002, errmsg: '系统错误', details: '未知错误类型' };
+      details = {};
+      result = '失败';
+    }
     // 缺少字段检测返回asser
     if (res.status === 500 && res.data.name === 'AssertionError') {
       msg = { errcode: -1002, errmsg: res.data.message, data: '' };