lrf 2 年之前
父節點
當前提交
29245d9c79
共有 6 個文件被更改,包括 79 次插入1 次删除
  1. 8 0
      app/controller/config/.race.js
  2. 13 0
      app/controller/race.js
  3. 1 0
      app/router.js
  4. 38 0
      app/service/race.js
  5. 16 0
      app/z_router/race.js
  6. 3 1
      config/config.default.js

+ 8 - 0
app/controller/config/.race.js

@@ -0,0 +1,8 @@
+module.exports = {
+  coachToBeJudge: {
+    requestBody: ['!coach_id', '!school_id'],
+  },
+  userToBeJudge: {
+    requestBody: ['!user_id', '!school_id'],
+  },
+};

+ 13 - 0
app/controller/race.js

@@ -0,0 +1,13 @@
+'use strict';
+const meta = require('./config/.race.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose-free/lib/controller');
+
+// 比赛模块的部分交互业务
+class RaceController extends Controller {
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.race;
+  }
+}
+module.exports = CrudController(RaceController, meta);

+ 1 - 0
app/router.js

@@ -47,4 +47,5 @@ module.exports = app => {
 
 
   require('./z_router/view/student')(app); // 学生视图
   require('./z_router/view/student')(app); // 学生视图
   require('./z_router/statistics')(app); // 统计
   require('./z_router/statistics')(app); // 统计
+  require('./z_router/race')(app); // 比赛业务
 };
 };

+ 38 - 0
app/service/race.js

@@ -0,0 +1,38 @@
+'use strict';
+const { CrudService } = require('naf-framework-mongoose-free/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+const _ = require('lodash');
+const assert = require('assert');
+
+// 与race模块相关联的处理
+class RaceService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'race');
+    this.coachModel = this.ctx.model.User.Coach;
+    this.baseUrl = _.get(this.app.config, 'httpPrefix.race');
+    this.httpUtil = this.ctx.service.util.httpUtil;
+    this.userModel = this.ctx.model.User.User;
+  }
+  // 教练成为本校的裁判
+  async coachToBeJudge({ coach_id, school_id }) {
+    const coach = await this.coachModel.findById(coach_id).populate('user_id');
+    if (!coach) throw new BusinessError(ErrorCode.DATA_NOT_EXIST, '未找到教练信息');
+    const user_id = _.get(coach, 'user_id._id');
+    const openid = _.get(coach, 'user_id.openid');
+    const parent_id = school_id;
+    const obj = { user_id, type: '2', openid, parent_id };
+    const res = await this.httpUtil.cpost(`${this.baseUrl}/user/bindJudge`, obj);
+    return res;
+  }
+  // 用户绑定为教练
+  async userToBeJudge({ user_id, school_id }) {
+    const user = await this.userModel.findById(user_id);
+    if (!user) throw new BusinessError(ErrorCode.DATA_NOT_EXIST, '未找到用户信息');
+    const { openid } = user;
+    const obj = { user_id, type: '2', openid, parent_id: school_id };
+    const res = await this.httpUtil.cpost(`${this.baseUrl}/user/bindJudge`, obj);
+    return res;
+  }
+}
+
+module.exports = RaceService;

+ 16 - 0
app/z_router/race.js

@@ -0,0 +1,16 @@
+'use strict';
+// 路由配置
+const path = require('path');
+const regPath = path.resolve('app', 'public', 'routerRegister');
+const routerRegister = require(regPath);
+const rkey = 'race';
+const ckey = 'race';
+const keyZh = '比赛业务';
+const routes = [
+  { method: 'post', path: `${rkey}/ctbj`, controller: `${ckey}.coachToBeJudge`, name: `${ckey}coachToBeJudge`, zh: `${keyZh}-教练成为本校裁判` },
+  { method: 'post', path: `${rkey}/utbj`, controller: `${ckey}.userToBeJudge`, name: `${ckey}userToBeJudge`, zh: `${keyZh}-教练成为本校裁判` },
+];
+
+module.exports = app => {
+  routerRegister(app, routes, keyZh, rkey, ckey);
+};

+ 3 - 1
config/config.default.js

@@ -49,6 +49,8 @@ module.exports = appInfo => {
   config.httpPrefix = {
   config.httpPrefix = {
     // wechat: 'http://127.0.0.1:14001/wechat/api',
     // wechat: 'http://127.0.0.1:14001/wechat/api',
     wechat: 'https://broadcast.waityou24.cn/wechat/api',
     wechat: 'https://broadcast.waityou24.cn/wechat/api',
+    base: 'http://127.0.0.1:15000/newCourt/v2/api',
+    race: 'http://127.0.0.1:15001/newCourt/race/v2/api',
   };
   };
   // 微信小程序消息模板
   // 微信小程序消息模板
   config.msgTemplate = {
   config.msgTemplate = {
@@ -109,7 +111,7 @@ module.exports = appInfo => {
   // 数据库设置
   // 数据库设置
   config.dbName = 'court_v2';
   config.dbName = 'court_v2';
   config.mongoose = {
   config.mongoose = {
-    url: `mongodb://120.48.146.1:27017/${config.dbName}`, // 120.48.146.1 127.0.0.1
+    url: `mongodb://127.0.0.1:27017/${config.dbName}`, // 120.48.146.1 127.0.0.1
     options: {
     options: {
       user: 'admin',
       user: 'admin',
       pass: 'admin',
       pass: 'admin',