|
@@ -57,6 +57,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -136,27 +137,34 @@ public class CompanyUserController extends BaseController {
|
|
|
public TableDataInfo qwList(CompanyUserQwParam user) {
|
|
|
LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
|
|
|
user.setCompanyId(loginUser.getCompany().getCompanyId());
|
|
|
- startPage();
|
|
|
List<CompanyUserQwListVO> list = companyUserService.selectCompanyUserQwListVO(user);
|
|
|
- for (CompanyUserQwListVO companyUserQwListVO : list) {
|
|
|
- CompanyUserDelayTime companyUserDelayTime = companyUserDelayTimeService.selectCompanyUserDelayTimeByCompanyUser(companyUserQwListVO.getCompanyId(), companyUserQwListVO.getUserId());
|
|
|
- if (ObjectUtil.isEmpty(companyUserDelayTime)) {
|
|
|
- String json = configService.selectConfigByKey("course.config");
|
|
|
- CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
|
|
|
- companyUserQwListVO.setSendDelayTime(config.getSendDelayTime());
|
|
|
- } else {
|
|
|
- companyUserQwListVO.setSendDelayTime(companyUserDelayTime.getSendDelayTime());
|
|
|
- }
|
|
|
- //是否绑定
|
|
|
- if(QwStatusEnum.BOUND.getCode() == companyUserQwListVO.getQwStatus()){
|
|
|
- if(!companyUserQwListVO.getQwUserId().isEmpty()){
|
|
|
- Long[] ids = Arrays.stream(companyUserQwListVO.getQwUserId().split(","))
|
|
|
- .map(Long::parseLong)
|
|
|
- .toArray(Long[]::new);
|
|
|
- List<QwUserVO> qwUserVOS = qwUserService.selectQwUserVOByIds(ids);
|
|
|
- companyUserQwListVO.setQwUsers(qwUserVOS);
|
|
|
- }
|
|
|
+ if (!list.isEmpty()){
|
|
|
+ String json = configService.selectConfigByKey("course.config");
|
|
|
+ CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
|
|
|
+ Long sendDelayTime = config.getSendDelayTime();
|
|
|
+ List<CompletableFuture<Void>> futures = new ArrayList<>();
|
|
|
+ for (CompanyUserQwListVO companyUserQwListVO : list) {
|
|
|
+ CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
|
|
|
+ CompanyUserDelayTime companyUserDelayTime = companyUserDelayTimeService.selectCompanyUserDelayTimeByCompanyUser(companyUserQwListVO.getCompanyId(), companyUserQwListVO.getUserId());
|
|
|
+ if (ObjectUtil.isEmpty(companyUserDelayTime)) {
|
|
|
+ companyUserQwListVO.setSendDelayTime(sendDelayTime);
|
|
|
+ } else {
|
|
|
+ companyUserQwListVO.setSendDelayTime(companyUserDelayTime.getSendDelayTime());
|
|
|
+ }
|
|
|
+ //是否绑定
|
|
|
+ if(QwStatusEnum.BOUND.getCode() == companyUserQwListVO.getQwStatus()){
|
|
|
+ if(!companyUserQwListVO.getQwUserId().isEmpty()){
|
|
|
+ Long[] ids = Arrays.stream(companyUserQwListVO.getQwUserId().split(","))
|
|
|
+ .map(Long::parseLong)
|
|
|
+ .toArray(Long[]::new);
|
|
|
+ List<QwUserVO> qwUserVOS = qwUserService.selectQwUserVOByIds(ids);
|
|
|
+ companyUserQwListVO.setQwUsers(qwUserVOS);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ futures.add(future);
|
|
|
}
|
|
|
+ CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
|
|
|
}
|
|
|
return getDataTable(list);
|
|
|
}
|