Quellcode durchsuchen

添加接口:通过团队创建人id查询赛程信息

lrf vor 2 Jahren
Ursprung
Commit
22ef07947d

+ 6 - 0
app/controller/.schedule.js

@@ -88,4 +88,10 @@ module.exports = {
       count: true,
       count: true,
     },
     },
   },
   },
+  getByTeamCreater: {
+    params: ['!id'],
+    options: {
+      query: ['skip', 'limit'],
+    },
+  },
 };
 };

+ 23 - 43
app/controller/.team.js

@@ -1,61 +1,41 @@
 module.exports = {
 module.exports = {
   create: {
   create: {
-    requestBody: [
-      "name",
-      "create_user",
-      "create_id",
-      "logo",
-      "type",
-      "members",
-      "status",
-      "create_time",
-      "remark",
-    ],
+    requestBody: ['name', 'create_user', 'create_id', 'logo', 'type', 'members', 'status', 'create_time', 'remark'],
   },
   },
   destroy: {
   destroy: {
-    params: ["!id"],
-    service: "delete",
+    params: ['!id'],
+    service: 'delete',
   },
   },
   update: {
   update: {
-    params: ["!id"],
-    requestBody: [
-      "name",
-      "create_user",
-      "create_id",
-      "logo",
-      "type",
-      "members",
-      "status",
-      "create_time",
-      "remark",
-    ],
+    params: ['!id'],
+    requestBody: ['name', 'create_user', 'create_id', 'logo', 'type', 'members', 'status', 'create_time', 'remark'],
   },
   },
   show: {
   show: {
     parameters: {
     parameters: {
-      params: ["!id"],
+      params: ['!id'],
     },
     },
-    service: "fetch",
+    service: 'fetch',
   },
   },
   index: {
   index: {
     parameters: {
     parameters: {
       query: {
       query: {
-        name: "name",
-        create_user: "create_user",
-        create_id: "create_id",
-        type: "type",
-        status: "status",
-        create_time: "create_time",
-        "meta.createdAt@start": "meta.createdAt@start",
-        "meta.createdAt@end": "meta.createdAt@end",
+        name: 'name',
+        create_user: 'create_user',
+        create_id: 'create_id',
+        type: 'type',
+        status: 'status',
+        create_time: 'create_time',
+        'meta.createdAt@start': 'meta.createdAt@start',
+        'meta.createdAt@end': 'meta.createdAt@end',
       },
       },
       // options: {
       // options: {
       //   "meta.state": 0 // 默认条件
       //   "meta.state": 0 // 默认条件
       // },
       // },
     },
     },
-    service: "query",
+    service: 'query',
     options: {
     options: {
-      query: ["skip", "limit"],
-      sort: ["meta.createdAt"],
+      query: ['skip', 'limit'],
+      sort: ['meta.createdAt'],
       desc: true,
       desc: true,
       count: true,
       count: true,
     },
     },
@@ -63,18 +43,18 @@ module.exports = {
   leave: {
   leave: {
     parameters: {
     parameters: {
       query: {
       query: {
-        team_id: "team_id",
-        user_id: "user_id",
+        team_id: 'team_id',
+        user_id: 'user_id',
       },
       },
     },
     },
-    service: "leaves",
+    service: 'leaves',
   },
   },
   userteam: {
   userteam: {
     parameters: {
     parameters: {
       query: {
       query: {
-        user_id: "user_id",
+        user_id: 'user_id',
       },
       },
     },
     },
-    service: "userteams",
+    service: 'userteams',
   },
   },
 };
 };

+ 11 - 0
app/middleware/noControllerList.js

@@ -0,0 +1,11 @@
+'use strict';
+const _ = require('lodash');
+module.exports = options => {
+  return async function noControllerList(ctx, next) {
+    await next();
+    const { data: od } = ctx.response.body;
+    const { data, total } = od;
+    ctx.response.body.data = data;
+    ctx.response.body.total = total;
+  };
+};

+ 16 - 2
app/service/schedule.js

@@ -12,6 +12,20 @@ class ScheduleService extends CrudService {
     super(ctx, 'schedule');
     super(ctx, 'schedule');
     this.model = this.ctx.model.Schedule;
     this.model = this.ctx.model.Schedule;
   }
   }
+  /**
+   * 通过团队创建人id查询赛程信息
+   * @param {String} id 团队创建人id
+   * @param {Object} options 查询附加参数
+   */
+  async getByTeamCreater({ id }, { skip = 0, limit = 0 } = {}) {
+    // 用 id 查团队表 create_id:id; 获取团队id去查红方和蓝方的赛程信息
+    const team = await this.ctx.model.Team.findOne({ create_id: id }, { _id: 1 });
+    if (!team) throw new BusinessError(ErrorCode.DATA_NOT_EXIST, '未找到该用户的团队信息');
+    const condition = { $or: [{ red_id: team._id }, { blue_id: team._id }] };
+    const data = await this.model.find(condition).skip(parseInt(skip)).limit(parseInt(limit));
+    const total = await this.model.count(condition);
+    return { data, total };
+  }
 
 
   async checkNeedNext(id) {
   async checkNeedNext(id) {
     const sch = await this.model.findById(id);
     const sch = await this.model.findById(id);
@@ -20,7 +34,7 @@ class ScheduleService extends CrudService {
     // 有比分,有位置, 再看看同一轮其他比赛是不是有轮空的.有轮空的就不安排,没有轮空的就直接安排晋级比赛
     // 有比分,有位置, 再看看同一轮其他比赛是不是有轮空的.有轮空的就不安排,没有轮空的就直接安排晋级比赛
     // 将胜利的队伍的属性取出来,以便下面生成新数据
     // 将胜利的队伍的属性取出来,以便下面生成新数据
     const winProp = [];
     const winProp = [];
-    const propList = [ 'id', 'name', 'logo', 'members' ];
+    const propList = ['id', 'name', 'logo', 'members'];
     const winTeam = this.getWinTeam(sch);
     const winTeam = this.getWinTeam(sch);
     for (const p of propList) {
     for (const p of propList) {
       winProp.push({ key: p, value: sch[`${winTeam}_${p}`] });
       winProp.push({ key: p, value: sch[`${winTeam}_${p}`] });
@@ -71,7 +85,7 @@ class ScheduleService extends CrudService {
       // 修改,一定是将数据放入蓝队中,所以需要判断下蓝队和红队是不是一个队伍,看下id就行
       // 修改,一定是将数据放入蓝队中,所以需要判断下蓝队和红队是不是一个队伍,看下id就行
       const nmRed_id = _.get(nextMatch, 'red_id');
       const nmRed_id = _.get(nextMatch, 'red_id');
       const winTeamId = _.get(
       const winTeamId = _.get(
-        winProp.find(f => f.key === 'id'),
+        winProp.find((f) => f.key === 'id'),
         'value'
         'value'
       );
       );
       if (nmRed_id === winTeamId) return;
       if (nmRed_id === winTeamId) return;

+ 8 - 0
app/z_router/schedule.js

@@ -4,6 +4,14 @@ const rkey = 'schedule';
 const ckey = 'schedule';
 const ckey = 'schedule';
 const keyZh = '赛程信息';
 const keyZh = '赛程信息';
 const routes = [
 const routes = [
+  {
+    method: 'get',
+    path: `${rkey}/getByTeamCreater/:id`,
+    middleware: [ 'noControllerList' ],
+    controller: `${ckey}.getByTeamCreater`,
+    name: `${ckey}GetByTeamCreater`,
+    zh: `${keyZh}-获取团队创建人的赛程信息`,
+  },
   { method: 'get', path: `${rkey}`, controller: `${ckey}.index`, name: `${ckey}Query`, 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: '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}` },
   { method: 'post', path: `${rkey}`, controller: `${ckey}.create`, middleware: [ 'password' ], name: `${ckey}Create`, zh: `创建${keyZh}` },