瀏覽代碼

增加部门表信息

liuyu 5 年之前
父節點
當前提交
ad729a41fd
共有 8 個文件被更改,包括 108 次插入2 次删除
  1. 40 0
      app/controller/.dept.js
  2. 3 0
      app/controller/.user.js
  3. 18 0
      app/controller/dept.js
  4. 20 0
      app/model/dept.js
  5. 2 1
      app/model/user.js
  6. 4 0
      app/router.js
  7. 17 0
      app/service/dept.js
  8. 4 1
      app/service/user.js

+ 40 - 0
app/controller/.dept.js

@@ -0,0 +1,40 @@
+module.exports = {
+  create: {
+    requestBody: [
+      '!name',
+      '!pid'
+    ]
+  },
+  destroy: {
+    params: ['!id'],
+    service: 'delete'
+  },
+  update: {
+    params: ['!id'],
+    requestBody: [
+      'name',
+      'pid'
+    ]
+  },
+  show: {
+    parameters: {
+      params: ['!id']
+    },
+    service: 'fetch'
+  },
+  index: {
+    parameters: {
+      query: {
+        name:'name',
+        pid:'pid'
+      }
+    },
+    service: 'query',
+    options: {
+      query: ['skip', 'limit'],
+      sort: ['meta.createdAt'],
+      desc: true,
+      count: true
+    }
+  },
+};

+ 3 - 0
app/controller/.user.js

@@ -8,6 +8,7 @@ module.exports = {
       'role',
       'menus',
       'uid',
+      'deptid',
       'remark'
     ]
   },
@@ -25,6 +26,7 @@ module.exports = {
       'uid',
       'role',
       'menus',
+      'deptid',
       'remark'
     ]
   },
@@ -40,6 +42,7 @@ module.exports = {
         name:'%name%',
         uid: 'uid',
         phone:'phone',
+        deptid:'deptid',
         role: 'role'
       }
     },

+ 18 - 0
app/controller/dept.js

@@ -0,0 +1,18 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.dept.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+// 管理
+class DeptController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.dept;
+  }
+
+}
+
+module.exports = CrudController(DeptController, meta);

+ 20 - 0
app/model/dept.js

@@ -0,0 +1,20 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+// 机构表
+const DeptSchema = {
+  name: { type: String, required: false, maxLength: 200 }, // 机构名称
+  pid: { type: String, required: false, maxLength: 200 }, // 父ID
+};
+
+
+const schema = new Schema(DeptSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.index({ pid: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Dept', schema, 'dept');
+};

+ 2 - 1
app/model/user.js

@@ -10,8 +10,9 @@ const UserSchema = {
   passwd: { type: Secret, select: false }, // 注册密码
   openid: { type: String, required: false }, // 微信openid
   uid: { type: String, required: false }, // 用户信息id
-  role: { type: String, required: false }, // 1-管理员,2-个人,3-企业管理员,4-子管理员,5、专家
+  role: { type: String, required: false }, // 1-管理员,2-个人,3-企业管理员,4-子管理员,6、专家 7、临时用户
   menus: { type: [ String ], required: false }, // 菜单权限
+  deptid: { type: String, required: false }, // 机构id
   remark: { type: String, required: false }, // 备注
 };
 

+ 4 - 0
app/router.js

@@ -19,6 +19,10 @@ module.exports = app => {
   router.post('user', '/api/auth/user/update/:id', controller.user.update);
   router.post('user', '/api/auth/user/uppasswd', controller.user.uppasswd);
 
+  // 机构表设置路由
+  router.resources('dept', '/api/auth/dept', controller.dept); // index、create、show、destroy
+  router.post('dept', '/api/auth/dept/update/:id', controller.dept.update);
+
   // 用户登录
   router.post('/api/auth/login', controller.login.login);
   // 根据token取得用户信息

+ 17 - 0
app/service/dept.js

@@ -0,0 +1,17 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class DeptService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'role');
+    this.model = this.ctx.model.Dept;
+  }
+}
+
+module.exports = DeptService;

+ 4 - 1
app/service/user.js

@@ -40,7 +40,7 @@ class UserService extends CrudService {
 
   // 重写修改方法
   async update({ id }, data) {
-    const { name, phone, passwd, openid, role, menus, remark, uid } = data;
+    const { name, phone, passwd, openid, role, menus, remark, uid, deptid } = data;
     const user = await this.model.findById(id, '+passwd');
     if (name) {
       user.name = name;
@@ -64,6 +64,9 @@ class UserService extends CrudService {
     if (uid) {
       user.uid = uid;
     }
+    if (deptid) {
+      user.deptid = deptid;
+    }
     if (remark) {
       user.remark = remark;
     }