feat: 修改数据刷新逻辑

This commit is contained in:
lilong 2024-02-27 14:24:07 +08:00
parent 9580a44252
commit 000fb277c3
3 changed files with 28 additions and 73 deletions

View File

@ -68,7 +68,7 @@ public class UpdateOuIdJob extends IJobHandler {
ouIdMigrateService.migrate(page.getList());
}
if (!hasNext(page)) {
if (!UpdateRouterJob.hasNext(page)) {
break;
}
}
@ -115,23 +115,6 @@ public class UpdateOuIdJob extends IJobHandler {
pendingMessageRecordDao.updateBatchById(updatePendingMessageRecords2);
}
private <T> boolean hasNext(Page<T> page) {
return page.getPageNum() < this.getPages(page);
}
private <T> long getPages(Page<T> page) {
if (page.getTotalElements() == 0L) {
return 0L;
} else {
long pages = page.getTotalElements() / page.getPageSize();
if (page.getTotalElements() % page.getPageSize() != 0L) {
++pages;
}
return pages;
}
}
@Data
@Builder
@NoArgsConstructor

View File

@ -1,8 +1,6 @@
package cn.axzo.msg.center.message.xxl;
import cn.axzo.basics.profiles.api.UserProfileServiceApi;
import cn.axzo.basics.profiles.dto.basic.IdentityProfileDto;
import cn.axzo.basics.profiles.dto.request.QueryIdentityProfileDto;
import cn.axzo.msg.center.dal.PendingMessageRecordDao;
import cn.axzo.msg.center.domain.entity.PendingMessageRecord;
import cn.axzo.msg.center.inside.notices.service.PendingMessageRecordService;
@ -16,10 +14,10 @@ import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@ -76,15 +74,19 @@ public class UpdateRouterJob extends IJobHandler {
if (CollectionUtils.isNotEmpty(page.getList())) {
List<PendingMessageRecord> pendingMessageRecords = page.getList().stream()
.map(record -> {
PendingMessageRecord pendingMessageRecord = new PendingMessageRecord();
pendingMessageRecord.setId(record.getId());
pendingMessageRecord.setRouterParams(record.mergeRouterParams(PendingMessageRecord.RouterParams.builder()
.workspaceId(record.getOrgId())
.ouId(record.getOuId())
.build()));
return pendingMessageRecord;
}).collect(Collectors.toList());
.filter(pendingMessageRecord -> {
PendingMessageRecord.RouterParams routerParams = pendingMessageRecord.resolveRouterParams();
return StringUtils.isBlank(routerParams.getOuId()) && StringUtils.isBlank(routerParams.getWorkspaceId());
})
.map(record -> {
PendingMessageRecord pendingMessageRecord = new PendingMessageRecord();
pendingMessageRecord.setId(record.getId());
pendingMessageRecord.setRouterParams(record.mergeRouterParams(PendingMessageRecord.RouterParams.builder()
.workspaceId(record.getOrgId().toString())
.ouId(record.getOuId().toString())
.build()));
return pendingMessageRecord;
}).collect(Collectors.toList());
pendingMessageRecordDao.updateBatchById(pendingMessageRecords);
}
@ -96,49 +98,12 @@ public class UpdateRouterJob extends IJobHandler {
return ReturnT.SUCCESS;
}
private void updateExecutorPerson(List<PendingMessageRecord> pendingMessageRecords) {
List<PendingMessageRecord> updatePendingMessageRecords = pendingMessageRecords.stream()
.filter(pendingMessageRecord -> pendingMessageRecord.getExecutorPersonId() == null
|| pendingMessageRecord.getExecutorPersonId() == 0)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(updatePendingMessageRecords)) {
return;
}
List<PendingMessageRecord> updatePendingMessageRecords2 = Lists.newArrayList();
// 根据executorId和executorType 解析对应的executorPerson
for (PendingMessageRecord record : updatePendingMessageRecords) {
List<Long> identityIds = Lists.newArrayList();
identityIds.add(record.getExecutorId());
IdentityProfileDto identityProfileDto = userProfileServiceApi.getIdentityProfileDto(QueryIdentityProfileDto.builder()
.identityIds(identityIds)
.IdentityType(record.getExecutorType().getCode())
.build())
.getData()
.stream()
.findFirst()
.orElse(null);
if (identityProfileDto == null) {
log.info("identityProfileDto not found: ", record.getExecutorId(), record.getExecutorType());
return;
}
PendingMessageRecord pendingMessageRecord = new PendingMessageRecord();
pendingMessageRecord.setId(record.getId());
pendingMessageRecord.setUpdateAt(new Date());
pendingMessageRecord.setExecutorPersonId(identityProfileDto.getPersonProfile().getId());
pendingMessageRecord.setExecutorName(identityProfileDto.getPersonProfile().getRealName());
updatePendingMessageRecords2.add(pendingMessageRecord);
};
pendingMessageRecordDao.updateBatchById(updatePendingMessageRecords2);
// page工具后续有统计的提供所以放这里
public static <T> boolean hasNext(Page<T> page) {
return page.getPageNum() < getPages(page);
}
private <T> boolean hasNext(Page<T> page) {
return page.getPageNum() < this.getPages(page);
}
private <T> long getPages(Page<T> page) {
public static <T> long getPages(Page<T> page) {
if (page.getTotalElements() == 0L) {
return 0L;
} else {

View File

@ -171,13 +171,20 @@ public class PendingMessageRecord extends BaseEntityExt<PendingMessageRecord> im
return jsonObject.toJSONString();
}
public RouterParams resolveRouterParams() {
JSONObject jsonObject = Optional.ofNullable(this.getRouterParams())
.map(JSON::parseObject)
.orElseGet(JSONObject::new);
return JSONObject.toJavaObject(jsonObject, RouterParams.class);
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RouterParams {
private Long workspaceId;
private String workspaceId;
private Long ouId;
private String ouId;
}
}