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