Browse Source

feat: 项目管理获取项目下账号

lanjianrong 3 năm trước cách đây
mục cha
commit
50ca727305
3 tập tin đã thay đổi với 42 bổ sung1 xóa
  1. 22 1
      app/controller/login_controller.js
  2. 1 0
      app/router.js
  3. 19 0
      app/service/project_account.js

+ 22 - 1
app/controller/login_controller.js

@@ -536,8 +536,29 @@ module.exports = app => {
               accountData: account,
           };
           await ctx.render('login/login_management.ejs', renderData);
-      }
+        }
 
+        /** 拉取项目下所有计量账号至项目管理 */
+        async syncProjectAccount(ctx) {
+          const response = {
+            code: 0,
+            data: [],
+            msg: '',
+          };
+          try {
+              const { code = ''} = ctx.data
+              if (!code) throw '参数错误';
+              const projectData = await ctx.service.project.getProjectByCode(code)
+              if (!projectData) throw '未找到项目';
+              const data = await ctx.service.projectAccount.getAllProjectAccountByPid(projectData.id)
+              response.data = data || []
+          } catch (error) {
+            response.code = -1
+            response.msg = error.toString()
+          }
+          ctx.body = response
+        }
+      
     }
 
     return LoginController;

+ 1 - 0
app/router.js

@@ -48,6 +48,7 @@ module.exports = app => {
 
     // 项目管理对计量接口相关
     app.get('/management/account', api3managementCheck, 'loginController.account');
+    app.get('/management/account/sync', api3managementCheck, 'loginController.syncProjectAccount');
     app.get('/management/project', api3managementCheck, 'loginController.project');
     app.get('/management/proxy/project/vertify', sessionAuth, 'loginController.vertifyProject');
     app.get('/management/proxy/project/add', sessionAuth, 'loginController.addProject');

+ 19 - 0
app/service/project_account.js

@@ -813,6 +813,25 @@ module.exports = app => {
 
             return result;
         }
+
+        /**
+         * 获取项目下所有账号
+         * @param {String} project_id - 项目id
+         * @return {Promise<Array>} - 账号
+         */
+        async getAllProjectAccountByPid(project_id) {
+            this.initSqlBuilder();
+            const columns = ['account', 'name', 'company', 'role', 'mobile', 'telephone', 'is_admin', 'account_group',];
+            this.sqlBuilder.columns = columns;
+            this.sqlBuilder.setAndWhere('project_id', {
+                value: project_id,
+                operate: '=',
+            });
+            const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
+            const accountData = await this.db.query(sql, sqlParam);
+
+            return accountData;
+        }
     }
 
     return ProjectAccount;