From e7484f262cfb05b0ed7260c468ce4c78998b05f2 Mon Sep 17 00:00:00 2001
From: 钟日健 <5689795+arsn@user.noreply.gitee.com>
Date: Mon, 21 Feb 2022 19:09:50 +0800
Subject: [PATCH] 新增保安员批量导入接口
---
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
index 2ae3555..be87d52 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -43,6 +43,7 @@
import org.springblade.modules.auth.enums.UserEnum;
import org.springblade.modules.system.entity.*;
import org.springblade.modules.system.excel.UserExcel;
+import org.springblade.modules.system.excel.UserExcels;
import org.springblade.modules.system.mapper.UserMapper;
import org.springblade.modules.system.service.IRoleService;
import org.springblade.modules.system.service.IUserDeptService;
@@ -537,4 +538,47 @@
baseMapper.delete(account);
}
+ /**
+ * 用户导入(保安员导入)
+ * @param data
+ * @param isCovered
+ */
+ @Override
+// @Transactional(rollbackFor = Exception.class)
+ public void importUsers(List<UserExcels> data, Boolean isCovered) {
+ data.forEach(userExcel -> {
+ User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
+ // 设置租户ID
+ user.setTenantId("000000");
+ //查询身份证号是否有重复的,有的话只更新
+ User user1 = new User();
+ user1.setCardid(user.getCardid());
+ user1.setStatus(1);
+ user1.setIsDeleted(0);
+ List<User> list = this.list(Condition.getQueryWrapper(user1));
+ if (list.size()>0){
+ //更新
+ user.setId(list.get(0).getId());
+ this.updateById(user);
+ }else {
+ String tenantId = user.getTenantId();
+ Tenant tenant = SysCache.getTenant(tenantId);
+ if (Func.isNotEmpty(tenant)) {
+ Integer accountNumber = tenant.getAccountNumber();
+ if (tenantProperties.getLicense()) {
+ String licenseKey = tenant.getLicenseKey();
+ String decrypt = DesUtil.decryptFormHex(licenseKey, TenantConstant.DES_KEY);
+ accountNumber = JsonUtil.parse(decrypt, Tenant.class).getAccountNumber();
+ }
+ Integer tenantCount = baseMapper.selectCount(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId));
+ if (accountNumber != null && accountNumber > 0 && accountNumber <= tenantCount) {
+ throw new ServiceException("当前租户已到最大账号额度!");
+ }
+ }
+ //新增
+ this.save(user);
+ }
+ });
+ }
+
}
--
Gitblit v1.9.3