|
@@ -121,21 +121,28 @@ public class SceneXspaceServiceImpl extends ServiceImpl<ISceneXspaceMapper, Scen
|
|
@Override
|
|
@Override
|
|
public Result sync(List<String> nums, User user) {
|
|
public Result sync(List<String> nums, User user) {
|
|
|
|
|
|
|
|
+// List<String> canSyncList = nums;//实际需要同步的场景集合
|
|
|
|
+// if(CollUtil.isNotEmpty(syncList)){
|
|
|
|
+// List<String> doneNumsList = syncList.stream().map(v -> v.getNum()).collect(Collectors.toList());
|
|
|
|
+// canSyncList = nums.stream().filter(v->!doneNumsList.contains(v)).collect(Collectors.toList());
|
|
|
|
+// }
|
|
|
|
+// if(CollUtil.isEmpty(canSyncList)){
|
|
|
|
+// return Result.success();
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+ List<ScenePlus> scenePlusList = scenePlusService.list(new LambdaQueryWrapper<ScenePlus>().in(ScenePlus::getNum, nums));//.eq(ScenePlus::getUserId, user.getId());
|
|
|
|
+ if(CollUtil.isEmpty(scenePlusList)){
|
|
|
|
+ return Result.success();
|
|
|
|
+ }
|
|
|
|
|
|
//过滤掉已同步的场景,防止前端传参错误
|
|
//过滤掉已同步的场景,防止前端传参错误
|
|
- List<SceneXspace> syncList = this.list(new LambdaQueryWrapper<SceneXspace>().in(SceneXspace::getNum, nums));//.eq(SceneXspace::getUserId, user.getId()));
|
|
|
|
- List<String> canSyncList = nums;//实际需要同步的场景集合
|
|
|
|
|
|
+ List<SceneXspace> syncList = this.list(new LambdaQueryWrapper<SceneXspace>().in(SceneXspace::getNum, nums));
|
|
if(CollUtil.isNotEmpty(syncList)){
|
|
if(CollUtil.isNotEmpty(syncList)){
|
|
- List<String> doneNumsList = syncList.stream().map(v -> v.getNum()).collect(Collectors.toList());
|
|
|
|
- canSyncList = nums.stream().filter(v->!doneNumsList.contains(v)).collect(Collectors.toList());
|
|
|
|
- }
|
|
|
|
- if(CollUtil.isEmpty(canSyncList)){
|
|
|
|
- return Result.success();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- List<ScenePlus> scenePlusList = scenePlusService.list(new LambdaQueryWrapper<ScenePlus>().in(ScenePlus::getNum, canSyncList));//.eq(ScenePlus::getUserId, user.getId());
|
|
|
|
- if(CollUtil.isEmpty(scenePlusList)){
|
|
|
|
- return Result.success();
|
|
|
|
|
|
+ Set<String> doneSet = syncList.stream().map(v -> v.getNum() + "-" + v.getUserId()).collect(Collectors.toSet());
|
|
|
|
+ scenePlusList = scenePlusList.stream().filter(v -> {
|
|
|
|
+ String userId = v.getUserId() == null ? "" : String.valueOf(v.getUserId());
|
|
|
|
+ return doneSet.contains(v.getNum() + "-" + userId);
|
|
|
|
+ }).collect(Collectors.toList());
|
|
}
|
|
}
|
|
|
|
|
|
//平台管理员:能查看全部场景数据并且支持同步全部得数据 (平台管理员同步后的场景还是归属于之前这个场景的归属者)
|
|
//平台管理员:能查看全部场景数据并且支持同步全部得数据 (平台管理员同步后的场景还是归属于之前这个场景的归属者)
|