| | |
| | | package com.oying.modules.pc.category.service.impl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.bean.copier.CopyOptions; |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.collection.ListUtil; |
| | | import cn.hutool.core.util.ObjUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.oying.exception.EntityExistException; |
| | | import com.oying.modules.pc.category.converter.PlatformCategoryDtoAssembler; |
| | | import com.oying.exception.EntityNotFoundException; |
| | | import com.oying.modules.pc.category.converter.PlatformCategoryAssembler; |
| | | import com.oying.modules.pc.category.domain.PlatformCategory; |
| | | import com.oying.modules.pc.category.domain.dto.PlatformCategoryCreateRequest; |
| | | import com.oying.modules.pc.category.domain.dto.PlatformCategoryQueryCriteria; |
| | | import com.oying.modules.pc.category.domain.dto.PlatformCategoryUpdateDto; |
| | | import com.oying.modules.pc.category.domain.dto.PlatformCategoryUpdateRequest; |
| | | import com.oying.modules.pc.category.mapper.PlatformCategoryMapper; |
| | | import com.oying.modules.pc.category.service.PlatformCategoryService; |
| | | import com.oying.modules.pc.common.ValueUpdate; |
| | | import com.oying.modules.pc.store.domain.StoreQualification; |
| | | import com.oying.modules.pc.utils.ImageUtils; |
| | | import com.oying.service.BucketStorageService; |
| | | import com.oying.utils.PageResult; |
| | | import com.oying.utils.PageUtil; |
| | | import com.oying.utils.SecurityUtils; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 平台类目服务实现 |
| | |
| | | public class PlatformCategoryServiceImpl extends ServiceImpl<PlatformCategoryMapper, PlatformCategory> implements PlatformCategoryService { |
| | | |
| | | private final PlatformCategoryMapper platformCategoryMapper; |
| | | private final BucketStorageService bucketStorageService; |
| | | |
| | | @Override |
| | | public PageResult<PlatformCategory> queryAll(PlatformCategoryQueryCriteria criteria, Page<Object> page) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<PlatformCategory> queryBatchIds(List<Long> ids) { |
| | | LambdaQueryWrapper<PlatformCategory> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.in(PlatformCategory::getCategoryId, ids); |
| | | return platformCategoryMapper.selectList(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void create(PlatformCategoryCreateRequest request) { |
| | | |
| | | PlatformCategory platformCategoryCreate = new PlatformCategory(); |
| | | platformCategoryCreate.setName(request.getName()); |
| | | platformCategoryCreate.setSortWeight(request.getSortWeight()); |
| | | platformCategoryCreate.setIconId(request.getIconUploadFileId()); |
| | | platformCategoryCreate.setActive(request.getActive()); |
| | | |
| | | // 使用处理图标文件 |
| | | platformCategoryMapper.insert(platformCategoryCreate); |
| | | platformCategoryMapper.insert(PlatformCategoryAssembler.to(request)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | Long categoryId = updateDto.getCategoryId(); |
| | | PlatformCategory existingPlatformCategory = this.getById(categoryId); |
| | | if (ObjUtil.isEmpty(existingPlatformCategory)) { |
| | | throw new EntityExistException(PlatformCategory.class, "categoryId", Optional.ofNullable(categoryId).map(Object::toString).orElse("null")); |
| | | throw new EntityNotFoundException(PlatformCategory.class, "categoryId", Optional.ofNullable(categoryId).map(Object::toString).orElse("null")); |
| | | } |
| | | |
| | | PlatformCategory platformCategoryUpdate = new PlatformCategory(); |
| | | platformCategoryUpdate.setCategoryId(updateDto.getCategoryId()); |
| | | platformCategoryUpdate.setName(updateDto.getName()); |
| | | platformCategoryUpdate.setSortWeight(updateDto.getSortWeight()); |
| | | platformCategoryUpdate.setIconId(updateDto.getIconUploadFileId()); |
| | | platformCategoryUpdate.setActive(updateDto.getActive()); |
| | | existingPlatformCategory.copy(platformCategoryUpdate); |
| | | // 新的类目数据 |
| | | PlatformCategory newPlatformCategory = PlatformCategoryAssembler.to(updateDto); |
| | | // 记录图片值的变更 |
| | | ValueUpdate<Long> iconValueUpdate = new ValueUpdate<>(newPlatformCategory.getIconId(), existingPlatformCategory.getIconId()); |
| | | // 填充新的数据 |
| | | existingPlatformCategory.copy(newPlatformCategory); |
| | | platformCategoryMapper.updateById(existingPlatformCategory); |
| | | // 删除旧图片原纪录 |
| | | if (iconValueUpdate.isChangeAndOldValueNotEmpty()) { |
| | | bucketStorageService.deleteAll(ListUtil.toList(iconValueUpdate.getOldValue())); |
| | | } |
| | | |
| | | // 使用处理图标文件 |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void deleteAll(List<Long> ids) { |
| | | List<PlatformCategory> existingPlatformCategories = this.queryBatchIds(ids); |
| | | if (CollectionUtil.isEmpty(existingPlatformCategories)) { |
| | | throw new EntityNotFoundException(PlatformCategory.class, "platformCategoryIds", ids.toString()); |
| | | } |
| | | platformCategoryMapper.deleteBatchIds(ids); |
| | | List<Long> storageIds = existingPlatformCategories.stream().map(PlatformCategory::getIconId).collect(Collectors.toList()); |
| | | // 删除旧图片原记录 |
| | | if (CollectionUtil.isNotEmpty(storageIds)) { |
| | | bucketStorageService.deleteAll(storageIds); |
| | | } |
| | | } |
| | | } |