diff --git a/src/main/java/com/ai/da/common/config/MyTaskScheduler.java b/src/main/java/com/ai/da/common/config/MyTaskScheduler.java index e709d0f8..e086e3c0 100644 --- a/src/main/java/com/ai/da/common/config/MyTaskScheduler.java +++ b/src/main/java/com/ai/da/common/config/MyTaskScheduler.java @@ -259,7 +259,7 @@ public class MyTaskScheduler { SendEmailUtil.sendExcelEmail("kimwong@code-create.com.hk", null, Files.readAllBytes(Paths.get(fileName)), fileName); // SendEmailUtil.sendExcelEmail("ningning@code-create.com.hk", null, Files.readAllBytes(Paths.get(fileName)), fileName); SendEmailUtil.sendExcelEmail("johnnyho@code-create.com.hk", null, Files.readAllBytes(Paths.get(fileName)), fileName); - SendEmailUtil.sendExcelEmail("ringolau@code-create.com.hk", null, Files.readAllBytes(Paths.get(fileName)), fileName); +// SendEmailUtil.sendExcelEmail("ringolau@code-create.com.hk", null, Files.readAllBytes(Paths.get(fileName)), fileName); SendEmailUtil.sendExcelEmail("chelseayu@code-create.com.hk", null, Files.readAllBytes(Paths.get(fileName)), fileName); } } catch (IOException e) { @@ -272,7 +272,7 @@ public class MyTaskScheduler { SendEmailUtil.sendNoExcelEmail("kimwong@code-create.com.hk", null); // SendEmailUtil.sendNoExcelEmail("ningning@code-create.com.hk", null); SendEmailUtil.sendNoExcelEmail("johnnyho@code-create.com.hk", null); - SendEmailUtil.sendNoExcelEmail("ringolau@code-create.com.hk", null); +// SendEmailUtil.sendNoExcelEmail("ringolau@code-create.com.hk", null); SendEmailUtil.sendNoExcelEmail("chelseayu@code-create.com.hk", null); } } diff --git a/src/main/java/com/ai/da/mapper/primary/CollectionSortMapper.java b/src/main/java/com/ai/da/mapper/primary/CollectionSortMapper.java index 3d715baf..fb9b7939 100644 --- a/src/main/java/com/ai/da/mapper/primary/CollectionSortMapper.java +++ b/src/main/java/com/ai/da/mapper/primary/CollectionSortMapper.java @@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Update; import java.util.List; public interface CollectionSortMapper extends CommonMapper { - @Update("UPDATE collection_sort SET sort = sort + 1 " + + /*@Update("UPDATE collection_sort SET sort = sort + 1 " + "WHERE parent_id = #{parentId} " + "AND relation_type != 'Design' " + "AND sort > #{originalSort}") @@ -17,6 +17,15 @@ public interface CollectionSortMapper extends CommonMapper { @Param("parentId") Long parentId, @Param("relationType") String relationType, @Param("originalSort") int originalSort + );*/ + @Update("UPDATE collection_sort SET sort = sort + 1 " + + "WHERE parent_id = #{parentId} " + + "AND relation_type != 'Design' " + + "AND sort > #{originalSort} " + + "ORDER BY sort DESC") // 关键:按排序号倒序更新 + void increaseGenerateSortAbove( + @Param("parentId") Long parentId, + @Param("originalSort") int originalSort ); @Select("SELECT * FROM collection_sort WHERE parent_id IN (SELECT id FROM collection_sort WHERE relation_id = #{relationId})") diff --git a/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java b/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java index bd799fd7..12af2e3b 100644 --- a/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java @@ -27,6 +27,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -50,8 +51,9 @@ public class ClassificationServiceImpl implements ClassificationService { @Override public Boolean saveOrUpdate(ClassificationDTO classificationDTO) { //校验 - classificationDTOCheck(classificationDTO); AuthPrincipalVo userHolder = UserContext.getUserHolder(); + classificationDTO.setUserId(userHolder.getId()); + classificationDTOCheck(classificationDTO); Classification classification = CopyUtil.copyObject(classificationDTO, Classification.class); if (null == classificationDTO.getId()) { // 新增 @@ -82,7 +84,10 @@ public class ClassificationServiceImpl implements ClassificationService { @Override public Boolean delete(ClassificationDTO classificationDTO) { QueryWrapper qw = new QueryWrapper<>(); - qw.lambda().in(ClassificationRelLibrary::getClassificationId, classificationDTO.getClassificationIdList()); + qw.lambda().eq(ClassificationRelLibrary::getUserId, UserContext.getUserHolder().getId()); + if (Objects.nonNull(classificationDTO.getClassificationIdList()) && !classificationDTO.getClassificationIdList().isEmpty()){ + qw.lambda().in(ClassificationRelLibrary::getClassificationId, classificationDTO.getClassificationIdList()); + } List classificationRelLibraryList = classificationRelLibraryMapper.selectList(qw); if (0 == classificationDTO.getDeleteConfirm()) { // 校验删除的分类是否有关联的library数据 @@ -311,6 +316,7 @@ public class ClassificationServiceImpl implements ClassificationService { throw new BusinessException("classificationName.cannot.be.empty"); } QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(Classification::getUserId, classificationDTO.getUserId()); qw.lambda().ne(null != classificationDTO.getId(), Classification::getId, classificationDTO.getId()); qw.lambda().eq(Classification::getType, classificationDTO.getType()); if (null == classificationDTO.getParentId()) { diff --git a/src/main/java/com/ai/da/service/impl/CollectionSortServiceImpl.java b/src/main/java/com/ai/da/service/impl/CollectionSortServiceImpl.java index 2a848ebe..afb355bf 100644 --- a/src/main/java/com/ai/da/service/impl/CollectionSortServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/CollectionSortServiceImpl.java @@ -6,6 +6,7 @@ import com.ai.da.mapper.primary.entity.CollectionSort; import com.ai.da.model.dto.CollectionSortDTO; import com.ai.da.model.enums.CollectionType; import com.ai.da.service.CollectionSortService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; @@ -163,7 +164,8 @@ public class CollectionSortServiceImpl extends ServiceImpl list = baseMapper.selectList( + new LambdaQueryWrapper() + .eq(CollectionSort::getProjectId, projectId) + .eq(CollectionSort::getParentId, parentId) + .orderByAsc(CollectionSort::getSort) + ); + + // 3. 重新编号 sort,从 1 开始 + for (int i = 0; i < list.size(); i++) { + list.get(i).setSort(i + 1); + } + + // 4. 批量更新 + if (!list.isEmpty()) { + updateBatchById(list); + } + } + + /** + * 批量更新(如果你使用 MyBatis-Plus,可以继承 ServiceImpl 来用内置的 updateBatchById) + */ + @Transactional(rollbackFor = Exception.class) + public void updateBatchById(List list) { + for (CollectionSort item : list) { + baseMapper.updateById(item); + } + } }