|
@@ -6,14 +6,15 @@ import com.macro.mall.tiny.common.exception.ApiException;
|
|
import com.macro.mall.tiny.common.exception.Asserts;
|
|
import com.macro.mall.tiny.common.exception.Asserts;
|
|
import com.macro.mall.tiny.common.util.CommonUtils;
|
|
import com.macro.mall.tiny.common.util.CommonUtils;
|
|
import com.macro.mall.tiny.config.UploadConfig;
|
|
import com.macro.mall.tiny.config.UploadConfig;
|
|
-import com.macro.mall.tiny.modules.business.enume.DirectoryEnum;
|
|
|
|
|
|
+import com.macro.mall.tiny.domain.AdminUserDetails;
|
|
|
|
+import com.macro.mall.tiny.modules.business.enums.DirectoryEnum;
|
|
import com.macro.mall.tiny.modules.business.model.*;
|
|
import com.macro.mall.tiny.modules.business.model.*;
|
|
import com.macro.mall.tiny.modules.business.service.BLineService;
|
|
import com.macro.mall.tiny.modules.business.service.BLineService;
|
|
import com.macro.mall.tiny.modules.business.service.BLineUploadLogService;
|
|
import com.macro.mall.tiny.modules.business.service.BLineUploadLogService;
|
|
import com.macro.mall.tiny.modules.business.service.BTowerService;
|
|
import com.macro.mall.tiny.modules.business.service.BTowerService;
|
|
import com.macro.mall.tiny.modules.ums.model.UmsAdmin;
|
|
import com.macro.mall.tiny.modules.ums.model.UmsAdmin;
|
|
-import com.macro.mall.tiny.modules.ums.model.UmsRole;
|
|
|
|
import com.macro.mall.tiny.modules.ums.service.UmsAdminService;
|
|
import com.macro.mall.tiny.modules.ums.service.UmsAdminService;
|
|
|
|
+import com.macro.mall.tiny.security.util.AuthUtil;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
@@ -30,7 +31,6 @@ import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Paths;
|
|
import java.nio.file.Paths;
|
|
import java.nio.file.StandardOpenOption;
|
|
import java.nio.file.StandardOpenOption;
|
|
-import java.security.Principal;
|
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -68,26 +68,19 @@ public class AsyncHandler {
|
|
|
|
|
|
@Async
|
|
@Async
|
|
@Transactional
|
|
@Transactional
|
|
- public void handleDocument(Long provinceId, String fileSource, String lineName, Principal principal) {
|
|
|
|
|
|
+ public void handleDocument(Long provinceId, String fileSource, String lineName, AdminUserDetails userDetails) {
|
|
StringBuilder warnMsg = new StringBuilder();
|
|
StringBuilder warnMsg = new StringBuilder();
|
|
try {
|
|
try {
|
|
if (provinceId == null) Asserts.fail("上传失败,省份不能为空,provinceId:" + provinceId);
|
|
if (provinceId == null) Asserts.fail("上传失败,省份不能为空,provinceId:" + provinceId);
|
|
- if (principal == null) Asserts.fail("上传失败,未获取到当前用户");
|
|
|
|
|
|
+ if (userDetails == null) Asserts.fail("上传失败,未获取到当前用户");
|
|
|
|
|
|
BProvince province = provinceService.getById(provinceId);
|
|
BProvince province = provinceService.getById(provinceId);
|
|
String provinceName = province.getProvince();
|
|
String provinceName = province.getProvince();
|
|
|
|
|
|
- String username = principal.getName();
|
|
|
|
|
|
+ String username = userDetails.getUsername();
|
|
UmsAdmin umsAdmin = adminService.getAdminByUsername(username);
|
|
UmsAdmin umsAdmin = adminService.getAdminByUsername(username);
|
|
Long userId = umsAdmin.getId();
|
|
Long userId = umsAdmin.getId();
|
|
- boolean canCover = false;
|
|
|
|
- List<UmsRole> roleList = adminService.getRoleList(umsAdmin.getId());
|
|
|
|
- for (UmsRole umsRole : roleList) {
|
|
|
|
- if (umsRole.getName().equals("超级管理员")) {
|
|
|
|
- canCover = true;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ boolean canCover = AuthUtil.checkAccess(userDetails, "/cover");
|
|
// 查看是否为线路创建者
|
|
// 查看是否为线路创建者
|
|
QueryWrapper<BLine> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<BLine> wrapper = new QueryWrapper<>();
|
|
wrapper.lambda().eq(BLine::getName, lineName);
|
|
wrapper.lambda().eq(BLine::getName, lineName);
|
|
@@ -132,11 +125,11 @@ public class AsyncHandler {
|
|
String entryName = zipEntry.getName();
|
|
String entryName = zipEntry.getName();
|
|
|
|
|
|
// 解析各项路径
|
|
// 解析各项路径
|
|
- String[] pathStr = entryName.split("/");
|
|
|
|
|
|
+ String[] pathStr = entryName.split(UploadConfig.SEPARATOR);
|
|
if (pathStr.length < 2) {
|
|
if (pathStr.length < 2) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- String SecDirectoryName = pathStr[1].charAt(0) == '#' ? pathStr[1].substring(1) : pathStr[1];
|
|
|
|
|
|
+ String SecDirectoryName = pathStr[1].charAt(0) == UploadConfig.AUTH_STR ? pathStr[1].substring(1) : pathStr[1];
|
|
if (booleanHashMap.get(SecDirectoryName) != null) {
|
|
if (booleanHashMap.get(SecDirectoryName) != null) {
|
|
booleanHashMap.put(SecDirectoryName, true);
|
|
booleanHashMap.put(SecDirectoryName, true);
|
|
} else if ("杆塔信息录入.xlsx".equals(SecDirectoryName) || "杆塔信息录入.xls".equals(SecDirectoryName)) {
|
|
} else if ("杆塔信息录入.xlsx".equals(SecDirectoryName) || "杆塔信息录入.xls".equals(SecDirectoryName)) {
|
|
@@ -158,7 +151,7 @@ public class AsyncHandler {
|
|
tower.setLineId(finalLine.getId());
|
|
tower.setLineId(finalLine.getId());
|
|
return tower;
|
|
return tower;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
- towerService.saveBatch(towerList);
|
|
|
|
|
|
+ towerService.saveAndUpdate(towerList);
|
|
continue;
|
|
continue;
|
|
} else {
|
|
} else {
|
|
warnMsg.append(entryName).append("第二层目录解析出错;");
|
|
warnMsg.append(entryName).append("第二层目录解析出错;");
|