diff --git a/admin/src/main/java/com/baiye/modules/distribute/service/impl/CustomServiceImpl.java b/admin/src/main/java/com/baiye/modules/distribute/service/impl/CustomServiceImpl.java index f8bfcbe..f25e1c5 100644 --- a/admin/src/main/java/com/baiye/modules/distribute/service/impl/CustomServiceImpl.java +++ b/admin/src/main/java/com/baiye/modules/distribute/service/impl/CustomServiceImpl.java @@ -13,7 +13,6 @@ import com.baiye.modules.distribute.mapper.CustomStoreMapper; import com.baiye.modules.distribute.qo.CustomQo; import com.baiye.modules.distribute.service.CustomService; import com.baiye.modules.distribute.service.CustomStoreService; -import com.baiye.modules.distribute.vo.CustomStoreVO; import com.baiye.modules.distribute.vo.CustomVO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; @@ -22,8 +21,8 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -55,9 +54,29 @@ public class CustomServiceImpl extends ExtendServiceImpl customStoreEntities = customDTO.getCustomStoreEntities(); - if (CollUtil.isNotEmpty(customStoreEntities)){ - customStoreService.updateBatchById(customStoreEntities); + if (CollUtil.isNotEmpty(customStoreEntities)) { + // 修改时,门店关联的客户ID是确定的(编辑客户时新增门店,关联客户ID) + customStoreEntities.forEach(c -> c.setCustomId(customEntity.getCustomId())); + + List filterList = customStoreEntities.stream().filter(c -> c.getCustomStoreId() != null).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(filterList)) { + // 修改关联门店信息 + customStoreService.updateBatchById(filterList); + // 修改时查看是否有删除的门店, 进行删除 + List entities = customStoreMapper.selectList(new LambdaQueryWrapper().eq(CustomStoreEntity::getCustomId, customDTO.getCustomId())); + List allIdList = entities.stream().map(CustomStoreEntity::getCustomStoreId).collect(Collectors.toList()); + List customStoreIdList = filterList.stream().map(CustomStoreEntity::getCustomStoreId).collect(Collectors.toList()); + allIdList.removeAll(customStoreIdList); + if (CollUtil.isNotEmpty(allIdList)) customStoreService.removeBatchByIds(allIdList); + // 编辑时新增了门店 + customStoreEntities.removeAll(filterList); + if (CollUtil.isNotEmpty(customStoreEntities)) customStoreService.saveBatch(customStoreEntities); + } else { + // 编辑时新增了门店 + customStoreService.saveBatch(customStoreEntities); + } } return SqlHelper.retBool(baseMapper.updateById(customEntity)); }