Browse Source

批量导入账号限制最大账号数

ellisran 1 year ago
parent
commit
62a0e4caec

+ 1 - 2
app/controller/setting_controller.js

@@ -424,8 +424,7 @@ module.exports = app => {
                         await ctx.service.constructionUnit.update({sign_path: null}, {id: info.id});
                         break;
                     case 'import-users':
-                        const import_result = await ctx.service.projectAccount.addUsers(projectData.id, data.users);
-                        responseData.data.insertNum = import_result;
+                        responseData.data = await ctx.service.projectAccount.addUsers(projectData.id, data.users);
                         break;
                     default:
                         break;

+ 7 - 2
app/public/js/setting.js

@@ -462,11 +462,16 @@ $(document).ready(() => {
                 postData('/setting/user/unit/save', { type: 'import-users', users: tree }, function (result) {
                     if (result.insertNum > 0) {
                         toastr.success('成功导入了' + result.insertNum + '个账号');
+                        if (result.overMax) {
+                            toastr.warning('添加账号个数受限,部分账号无法导入,请去后台开放限制。');
+                        }
                         setTimeout(function () {
                             window.location.reload();
                         }, 1500);
-                    } else {
-                        toastr.warning('未能导入任何账号,请检查账号、公司是否已存在或excel是否符合模版要求。');
+                    } else if (result.insertNum === 0 && !result.overMax) {
+                        toastr.error('未能导入任何账号,请检查账号、公司是否已存在或excel是否符合模版要求。');
+                    } else if (result.insertNum === 0 && result.overMax) {
+                        toastr.warning('添加账号个数受限,账号无法导入,请去后台开放限制。');
                     }
                 })
             } catch (error) {

+ 24 - 15
app/service/project_account.js

@@ -453,11 +453,15 @@ module.exports = app => {
         }
 
         async addUsers(pid, users) {
+            const projectData = await this.ctx.service.project.getDataById(pid);
+            const maxUser = projectData.max_user;
             const paList = await this.getAllDataByCondition({ where: { project_id: pid } });
             const insertData = [];
             const create_time = Date.parse(new Date()) / 1000;
             // 判断新密码的强度
             const reg = /^(?![0-9]+$)(?![a-zA-Z]+$).{6,16}$/;
+            let userTotal = paList.length;
+            let overMax = false;
             for (const u of users) {
                 if (u.account === undefined || u.account === null || u.name === undefined || u.name === null ||
                     u.password === undefined || u.password === null || u.company === undefined || u.company === null ||
@@ -472,24 +476,29 @@ module.exports = app => {
                 u.company_id = companyInfo.id;
                 u.account_group = companyInfo.type;
                 if (this._.findIndex(paList, { account: u.account }) === -1 && this._.findIndex(insertData, { account: u.account }) === -1) {
-                    insertData.push({
-                        project_id: pid,
-                        account: u.account,
-                        name: u.name,
-                        password: crypto.createHmac('sha1', u.account).update(u.password)
-                            .digest().toString('base64'),
-                        account_group: u.account_group,
-                        company: u.company,
-                        company_id: companyInfo.id,
-                        role: u.role,
-                        mobile: u.mobile || '',
-                        telephone: u.telephone || '',
-                        create_time,
-                    });
+                    if (maxUser === 0 || userTotal <= maxUser) {
+                        insertData.push({
+                            project_id: pid,
+                            account: u.account,
+                            name: u.name,
+                            password: crypto.createHmac('sha1', u.account).update(u.password)
+                                .digest().toString('base64'),
+                            account_group: u.account_group,
+                            company: u.company,
+                            company_id: companyInfo.id,
+                            role: u.role,
+                            mobile: u.mobile || '',
+                            telephone: u.telephone || '',
+                            create_time,
+                        });
+                        userTotal++;
+                    } else {
+                        overMax = true;
+                    }
                 }
             }
             if (insertData.length > 0) await this.db.insert(this.tableName, insertData);
-            return insertData.length;
+            return { insertNum: insertData.length, overMax };
         }
 
         /**

+ 4 - 3
app/view/setting/user.ejs

@@ -4,11 +4,12 @@
         <div class="title-main">
             <h2>账号管理
                 <% if (projectData.max_user === 0 || projectData.max_user > user_total) { %>
-                    <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right">添加账号</a>
+                    <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right mr-2">添加账号</a>
+                    <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
                 <% } else { %>
-                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-2">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号(受限)</a>
                 <% } %>
-                <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
             </h2>
         </div>
     </div>

+ 4 - 3
app/view/setting/user_permission.ejs

@@ -5,11 +5,12 @@
         <div class="title-main">
             <h2>账号管理
                 <% if (projectData.max_user === 0 || projectData.max_user > user_total) { %>
-                    <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right">添加账号</a>
+                    <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right mr-2">添加账号</a>
+                    <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
                 <% } else { %>
-                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-2">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号(受限)</a>
                 <% } %>
-                <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
             </h2>
         </div>
     </div>

+ 4 - 3
app/view/setting/user_unit.ejs

@@ -5,11 +5,12 @@
             <h2>账号管理
                 <a href="#add-company" data-toggle="modal" data-target="#add-company" class="btn btn-primary btn-sm pull-right">添加单位</a>
                 <% if (projectData.max_user === 0 || projectData.max_user > user_total) { %>
-                <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right mr-2">添加账号</a>
+                    <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right mr-2">添加账号</a>
+                    <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
                 <% } else { %>
-                <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-2">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-2">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号(受限)</a>
                 <% } %>
-                <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
             </h2>
         </div>
     </div>