From db5f435a4d8003b7dcff6b0906d400c3e5e2f822 Mon Sep 17 00:00:00 2001 From: xupei Date: Wed, 15 Oct 2025 10:46:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?BUGFIX:1.=E6=A0=87=E7=AD=BE=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E4=B8=8D=E5=90=8C=E7=94=A8=E6=88=B7=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=9B=B8=E5=90=8C=E7=9A=84=E6=A0=87=E7=AD=BE2.=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=8C=87=E5=AE=9A=E4=BA=BA=E5=91=98=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E5=90=8D=E5=8D=95=E9=80=9A=E7=9F=A5=E9=82=AE=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ai/da/common/config/MyTaskScheduler.java | 4 ++-- .../ai/da/mapper/primary/CollectionSortMapper.java | 11 ++++++++++- .../ai/da/service/impl/ClassificationServiceImpl.java | 10 ++++++++-- .../ai/da/service/impl/CollectionSortServiceImpl.java | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-) 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..d6e50350 100644 --- a/src/main/java/com/ai/da/service/impl/CollectionSortServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/CollectionSortServiceImpl.java @@ -225,7 +225,7 @@ public class CollectionSortServiceImpl extends ServiceImpl Date: Wed, 15 Oct 2025 16:03:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?BUGFIX:=E6=8E=92=E5=BA=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CollectionSortServiceImpl.java | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) 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 d6e50350..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); + } + } }