Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev-ltx
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Update;
|
||||
import java.util.List;
|
||||
|
||||
public interface CollectionSortMapper extends CommonMapper<CollectionSort> {
|
||||
@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<CollectionSort> {
|
||||
@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})")
|
||||
|
||||
@@ -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<ClassificationRelLibrary> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(ClassificationRelLibrary::getUserId, UserContext.getUserHolder().getId());
|
||||
if (Objects.nonNull(classificationDTO.getClassificationIdList()) && !classificationDTO.getClassificationIdList().isEmpty()){
|
||||
qw.lambda().in(ClassificationRelLibrary::getClassificationId, classificationDTO.getClassificationIdList());
|
||||
}
|
||||
List<ClassificationRelLibrary> 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<Classification> 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()) {
|
||||
|
||||
@@ -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<CollectionSortMapper,
|
||||
deleteByParentId(userLikeSortId);
|
||||
|
||||
// 3. 批量更新排序号(使用自定义Mapper方法)
|
||||
baseMapper.decrementSortAfterDelete(projectId, parentId, deletedSort);
|
||||
// baseMapper.decrementSortAfterDelete(projectId, parentId, deletedSort);
|
||||
resort(projectId, parentId);
|
||||
}
|
||||
|
||||
private void deleteByParentId(Long parentId) {
|
||||
@@ -225,7 +227,8 @@ public class CollectionSortServiceImpl extends ServiceImpl<CollectionSortMapper,
|
||||
}
|
||||
child.setSort(collectionSort.getSort());
|
||||
// 原来排序的大于等于userLikeSortId的排序的,都要+1
|
||||
baseMapper.increaseGenerateSortAbove(parentId, relationType, collectionSort.getSort() - 1);
|
||||
// baseMapper.increaseGenerateSortAbove(parentId, /*relationType,*/ collectionSort.getSort() - 1);
|
||||
resort(collectionSort.getProjectId(), parentId);
|
||||
// 当前的生成结果则填入userLikeSortId的排序位置
|
||||
child.setUpdateTime(LocalDateTime.now());
|
||||
baseMapper.updateById(child);
|
||||
@@ -262,4 +265,36 @@ public class CollectionSortServiceImpl extends ServiceImpl<CollectionSortMapper,
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void resort(Long projectId, Long parentId) {
|
||||
|
||||
// 2. 查询同组数据,按原排序升序
|
||||
List<CollectionSort> list = baseMapper.selectList(
|
||||
new LambdaQueryWrapper<CollectionSort>()
|
||||
.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<CollectionSort> list) {
|
||||
for (CollectionSort item : list) {
|
||||
baseMapper.updateById(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user