in ozhera-app/app-service/src/main/java/org/apache/ozhera/app/service/project/group/HeraProjectGroupService.java [257:360]
private void updateApps(HeraProjectGroupDataRequest request){
List<HeraProjectGroupAppRequest> updateApps = request.getApps();
if(updateApps == null){
return;
}
List<HeraProjectGroupApp> existApps = projectGroupAppDao.listByProjectGroupId(request.getId());
if(CollectionUtils.isEmpty(existApps)){
//没有历史数据,本次也没有同步新数据
if(updateApps.size() == 0){
return;
}
List<HeraProjectGroupApp> apps = new ArrayList<>();
for(HeraProjectGroupAppRequest appRequest : updateApps){
if(appRequest.getAppId() == null || appRequest.getPlatFormType() == null){
log.error("updateApps param app is invalid! request:{}",request.toString());
continue;
}
Integer baseInfoId = heraBaseInfoDao.idByBindIdsAndPlat(String.valueOf(appRequest.getAppId()), appRequest.getPlatFormType());
if(baseInfoId == null){
log.error("updateApps error! no baseInfo found for appId:{},platFormType:{}",appRequest.getAppId(),appRequest.getPlatFormType());
continue;
}
HeraProjectGroupApp app = new HeraProjectGroupApp();
app.setProjectGroupId(request.getId());
app.setAppBaseInfoId(baseInfoId);
app.setStatus(0);
app.setCreateTime(new Date());
app.setUpdateTime(new Date());
apps.add(app);
}
projectGroupAppDao.batchInsert(apps);
return;
}
List<Integer> updateAppIds = new ArrayList<>();
if(!CollectionUtils.isEmpty(updateApps)){
for (HeraProjectGroupAppRequest appRequest : updateApps) {
if(appRequest.getAppId() == null || appRequest.getPlatFormType() == null){
log.error("updateApps param error! request : {}",request.toString());
continue;
}
Integer baseInfoId = heraBaseInfoDao.idByBindIdsAndPlat(String.valueOf(appRequest.getAppId()), appRequest.getPlatFormType());
if(baseInfoId != null){
updateAppIds.add(baseInfoId);
}
}
}
/**
* 删除本次不包含的,如果本次传递了空list,则删除全部历史数据。
*/
List<HeraProjectGroupApp> toDeleteApps = existApps.stream().filter(t -> !updateAppIds.contains(t.getAppBaseInfoId())).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(toDeleteApps)){
toDeleteApps.forEach(t->{
projectGroupAppDao.delById(t.getId());
});
}
if(CollectionUtils.isEmpty(updateAppIds)){
return;
}
/**
* 添加本次新增的
*/
updateAppIds.removeAll(existApps.stream().map(t -> t.getAppBaseInfoId()).collect(Collectors.toList()));
if(!CollectionUtils.isEmpty(updateAppIds)){
List<HeraProjectGroupApp> apps = new ArrayList<>();
for(HeraProjectGroupAppRequest appRequest : updateApps){
if(appRequest.getAppId() == null || appRequest.getPlatFormType() == null){
log.error("updateApps param app is invalid! request:{}",request.toString());
continue;
}
Integer baseInfoId = heraBaseInfoDao.idByBindIdsAndPlat(String.valueOf(appRequest.getAppId()), appRequest.getPlatFormType());
if(baseInfoId == null){
log.error("updateApps error! no baseInfo found for appId:{},platFormType:{}",appRequest.getAppId(),appRequest.getPlatFormType());
continue;
}
HeraProjectGroupApp app = new HeraProjectGroupApp();
app.setProjectGroupId(request.getId());
app.setAppBaseInfoId(baseInfoId);
app.setStatus(0);
app.setCreateTime(new Date());
app.setUpdateTime(new Date());
apps.add(app);
}
projectGroupAppDao.batchInsert(apps);
}
}