浏览代码

成员退出团队

guhongwei 3 年之前
父节点
当前提交
eeb4538533
共有 3 个文件被更改,包括 17 次插入0 次删除
  1. 9 0
      app/controller/.team.js
  2. 7 0
      app/service/team.js
  3. 1 0
      app/z_router/team.js

+ 9 - 0
app/controller/.team.js

@@ -60,4 +60,13 @@ module.exports = {
       count: true,
     },
   },
+  leave: {
+    parameters: {
+      query: {
+        team_id: "team_id",
+        user_id: "user_id",
+      },
+    },
+    service: "leaves",
+  },
 };

+ 7 - 0
app/service/team.js

@@ -10,6 +10,13 @@ class TeamService extends CrudService {
     super(ctx, 'team');
     this.model = this.ctx.model.Team;
   }
+  async leaves({ team_id, user_id } = {}) {
+    const res = await this.model.findById(team_id);
+    if (!res) throw new BusinessError(ErrorCode.DATA_NOT_EXIST);
+    const members = res.members.filter(i => i.id !== user_id);
+    res.members = members;
+    await res.save();
+  }
 }
 
 module.exports = TeamService;

+ 1 - 0
app/z_router/team.js

@@ -4,6 +4,7 @@ const rkey = 'team';
 const ckey = 'team';
 const keyZh = '团队';
 const routes = [
+  { method: 'get', path: `${rkey}/leaves`, controller: `${ckey}.leave`, name: `${ckey}Leave`, zh: `${keyZh}退出团队` },
   { method: 'get', path: `${rkey}`, controller: `${ckey}.index`, name: `${ckey}Query`, zh: `${keyZh}列表查询` },
   { method: 'get', path: `${rkey}/:id`, controller: `${ckey}.show`, name: `${ckey}Show`, zh: `${keyZh}查询` },
   { method: 'post', path: `${rkey}`, controller: `${ckey}.create`, middleware: [ 'password' ], name: `${ckey}Create`, zh: `创建${keyZh}` },