|
|
@@ -277,4 +277,100 @@ public class FraudUsersServiceImpl implements IFraudUsersService {
|
|
|
companyTagService.insertCompanyTag(companyTag);
|
|
|
return companyTag.getTagId();
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public String importFraudUsers(List<FraudUsers> fraudUsersList, boolean updateSupport) {
|
|
|
+ if (CollUtil.isEmpty(fraudUsersList)) {
|
|
|
+ return "导入数据为空";
|
|
|
+ }
|
|
|
+ int successNum = 0;
|
|
|
+ int failureNum = 0;
|
|
|
+ int skipNum = 0;
|
|
|
+ StringBuilder successMsg = new StringBuilder();
|
|
|
+ StringBuilder failureMsg = new StringBuilder();
|
|
|
+ for (int i = 0; i < fraudUsersList.size(); i++) {
|
|
|
+ FraudUsers row = fraudUsersList.get(i);
|
|
|
+ int rowNum = i + 2;
|
|
|
+ if (isBlankFraudRow(row)) {
|
|
|
+ skipNum++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ normalizeImportRow(row);
|
|
|
+ if (StringUtils.isNotEmpty(row.getPhone())) {
|
|
|
+ String encryptedPhone = normalizeFraudPhone(row.getPhone());
|
|
|
+ FraudUsers exist = fraudUsersMapper.selectFraudUsersByPhone(encryptedPhone);
|
|
|
+ if (exist == null && !encryptedPhone.equals(row.getPhone())) {
|
|
|
+ exist = fraudUsersMapper.selectFraudUsersByPhone(row.getPhone());
|
|
|
+ }
|
|
|
+ if (exist != null) {
|
|
|
+ if (updateSupport) {
|
|
|
+ row.setId(exist.getId());
|
|
|
+ updateFraudUsers(row);
|
|
|
+ successNum++;
|
|
|
+ successMsg.append("<br/>").append(successNum).append("、第").append(rowNum)
|
|
|
+ .append("行更新成功");
|
|
|
+ } else {
|
|
|
+ failureNum++;
|
|
|
+ failureMsg.append("<br/>").append(failureNum).append("、第").append(rowNum)
|
|
|
+ .append("行手机号已存在");
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ insertFraudUsers(row);
|
|
|
+ successNum++;
|
|
|
+ successMsg.append("<br/>").append(successNum).append("、第").append(rowNum).append("行导入成功");
|
|
|
+ } catch (Exception e) {
|
|
|
+ failureNum++;
|
|
|
+ String msg = "<br/>" + failureNum + "、第" + rowNum + "行导入失败:" + e.getMessage();
|
|
|
+ failureMsg.append(msg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (failureNum > 0) {
|
|
|
+ failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
|
|
+ return failureMsg.toString() + (successNum > 0 ? ("<br/>另成功 " + successNum + " 条" + successMsg) : "")
|
|
|
+ + (skipNum > 0 ? ("<br/>跳过空行 " + skipNum + " 条") : "");
|
|
|
+ }
|
|
|
+ return "恭喜您,数据已全部导入成功!共 " + successNum + " 条" + successMsg
|
|
|
+ + (skipNum > 0 ? ("<br/>跳过空行 " + skipNum + " 条") : "");
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean isBlankFraudRow(FraudUsers row) {
|
|
|
+ if (row == null) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return StringUtils.isBlank(row.getName())
|
|
|
+ && StringUtils.isBlank(row.getPhone())
|
|
|
+ && StringUtils.isBlank(row.getAddress())
|
|
|
+ && StringUtils.isBlank(row.getPosition());
|
|
|
+ }
|
|
|
+
|
|
|
+ private void normalizeImportRow(FraudUsers row) {
|
|
|
+ if (row.getName() != null) {
|
|
|
+ row.setName(row.getName().trim());
|
|
|
+ if (row.getName().isEmpty()) {
|
|
|
+ row.setName(null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (row.getPhone() != null) {
|
|
|
+ row.setPhone(row.getPhone().trim());
|
|
|
+ if (row.getPhone().isEmpty()) {
|
|
|
+ row.setPhone(null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (row.getAddress() != null) {
|
|
|
+ row.setAddress(row.getAddress().trim());
|
|
|
+ if (row.getAddress().isEmpty()) {
|
|
|
+ row.setAddress(null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (row.getPosition() != null) {
|
|
|
+ row.setPosition(row.getPosition().trim());
|
|
|
+ if (row.getPosition().isEmpty()) {
|
|
|
+ row.setPosition(null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|