|  |  | 
 |  |  |         markupCacheClient.deleteAllPsSpCg(id); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void saveMarkupSpCgBatch(FlowerMarkupPsSpCgBatchSaveDTO dto){ | 
 |  |  |         List<Long> categoryIds = dto.getCategoryId(); | 
 |  |  |         if(categoryIds == null || categoryIds.size() == 0){ | 
 |  |  |             throw new ValidationException("分类列表不能为空"); | 
 |  |  |         } | 
 |  |  |         for(Long categoryId : categoryIds) { | 
 |  |  |             FlowerMarkupPsSpCgSaveDTO cg = new FlowerMarkupPsSpCgSaveDTO(); | 
 |  |  |             BeanUtils.copyProperties(dto, cg); | 
 |  |  |  | 
 |  |  |             cg.setCategoryId(categoryId); | 
 |  |  |  | 
 |  |  |             saveMarkupSpCg(cg); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void saveMarkupSpCg(FlowerMarkupPsSpCgSaveDTO dto){ | 
 |  |  |         Long cId = dto.getCategoryId(); | 
 |  |  |         FlowerMarkupPsSpCg cg = spCgMapper.selectOne(new QueryWrapper<FlowerMarkupPsSpCg>() |