BUGFIX: sketchBoard upload checkMd5校验;

TASK: 分类;
This commit is contained in:
shahaibo
2023-11-03 14:59:19 +08:00
parent 85a815dddc
commit bb1c56182e
13 changed files with 412 additions and 3 deletions

View File

@@ -0,0 +1,30 @@
package com.ai.da.service;
import com.ai.da.mapper.entity.Classification;
import com.ai.da.mapper.entity.Library;
import com.ai.da.model.dto.ChatFlushDTO;
import com.ai.da.model.dto.ChatRobotLibraryDTO;
import com.ai.da.model.dto.ChatSendDTO;
import com.ai.da.model.dto.ClassificationDTO;
import com.ai.da.model.vo.ChatRobotVO;
import com.ai.da.model.vo.ClassificationVO;
import java.math.BigDecimal;
import java.util.List;
/**
* @author SHAHAIBO
* @version 1.0
* @project aida_back
* @description 分类服务接口
* @date 2023/11/3 10:00:00
*/
public interface ClassificationService {
Boolean saveOrUpdate(ClassificationDTO classificationDTO);
Boolean delete(ClassificationDTO classificationDTO);
List<ClassificationVO> queryClassification(ClassificationDTO classificationDTO);
List<ClassificationVO> getClassificationVOList(List<Classification> classificationList);
}

View File

@@ -0,0 +1,163 @@
package com.ai.da.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.context.UserContext;
import com.ai.da.common.utils.CopyUtil;
import com.ai.da.mapper.ClassificationMapper;
import com.ai.da.mapper.ClassificationRelLibraryMapper;
import com.ai.da.mapper.entity.Classification;
import com.ai.da.mapper.entity.ClassificationRelLibrary;
import com.ai.da.model.dto.ClassificationDTO;
import com.ai.da.model.vo.AuthPrincipalVo;
import com.ai.da.model.vo.ClassificationVO;
import com.ai.da.service.ClassificationService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* @author SHAHAIBO
* @version 1.0
* @project aida_back
* @description 分类 接口服务实现类
* @date 2023/11/3 10:00:00
*/
@Slf4j
@Service
public class ClassificationServiceImpl implements ClassificationService {
@Resource
private ClassificationMapper classificationMapper;
@Resource
private ClassificationRelLibraryMapper classificationRelLibraryMapper;
@Override
public Boolean saveOrUpdate(ClassificationDTO classificationDTO) {
//校验
classificationDTOCheck(classificationDTO);
AuthPrincipalVo userHolder = UserContext.getUserHolder();
Classification classification = CopyUtil.copyObject(classificationDTO, Classification.class);
if (null == classificationDTO.getId()) {
// 新增
if (null == classification.getParentId()) {
// 一级分类parentId
classification.setParentId(0L);
}
classification.setCreateTime(LocalDateTime.now());
classification.setUserId(userHolder.getId());
int insert = classificationMapper.insert(classification);
if (insert == 1) {
return Boolean.TRUE;
}else {
throw new BusinessException("save.classification.failed");
}
}else {
// 修改
classification.setUpdateTime(LocalDateTime.now());
int update = classificationMapper.updateById(classification);
if (update == 1) {
return Boolean.TRUE;
}else {
throw new BusinessException("update.classification.failed");
}
}
}
@Override
public Boolean delete(ClassificationDTO classificationDTO) {
QueryWrapper<ClassificationRelLibrary> qw = new QueryWrapper<>();
qw.lambda().in(ClassificationRelLibrary::getClassificationId, classificationDTO.getClassificationIdList());
List<ClassificationRelLibrary> classificationRelLibraryList = classificationRelLibraryMapper.selectList(qw);
if (0 == classificationDTO.getDeleteConfirm()) {
// 校验删除的分类是否有关联的library数据
if (CollectionUtil.isNotEmpty(classificationRelLibraryList)) {
throw new BusinessException("the.classification.you.deleted.has.associated.library");
}
}else {
if (CollectionUtil.isNotEmpty(classificationRelLibraryList)) {
classificationRelLibraryMapper.delete(qw);
}
}
classificationMapper.deleteBatchIds(classificationDTO.getClassificationIdList());
return Boolean.TRUE;
}
@Override
public List<ClassificationVO> queryClassification(ClassificationDTO classificationDTO) {
AuthPrincipalVo userHolder = UserContext.getUserHolder();
QueryWrapper<Classification> qw = new QueryWrapper<>();
qw.lambda().eq(Classification::getUserId, userHolder.getId());
qw.lambda().eq(Classification::getType, classificationDTO.getType());
qw.lambda().eq(Classification::getParentId, 0L);
List<Classification> classificationList = classificationMapper.selectList(qw);
if (CollectionUtil.isNotEmpty(classificationList)) {
// 获取结果集
return getClassificationVOList(classificationList);
}
return new ArrayList<>();
}
@Override
public List<ClassificationVO> getClassificationVOList(List<Classification> classificationList) {
List<ClassificationVO> classificationVOS = CopyUtil.copyList(classificationList, ClassificationVO.class);
for (ClassificationVO classificationVO : classificationVOS) {
// 递归
List<ClassificationVO> childList = recursionClassificationVO(classificationVO);
if (CollectionUtil.isNotEmpty(childList)) {
classificationVO.setChildList(childList);
}
}
return classificationVOS;
}
private List<ClassificationVO> recursionClassificationVO(ClassificationVO classificationVO) {
QueryWrapper<Classification> qw = new QueryWrapper<>();
qw.lambda().eq(Classification::getParentId, classificationVO.getId());
List<Classification> classificationChildList = classificationMapper.selectList(qw);
if (CollectionUtil.isEmpty(classificationChildList)) {
return new ArrayList<>();
}
List<ClassificationVO> classificationChildVOList = CopyUtil.copyList(classificationChildList, ClassificationVO.class);
for (ClassificationVO classificationChildVO : classificationChildVOList) {
// 递归
List<ClassificationVO> childList = recursionClassificationVO(classificationChildVO);
if (CollectionUtil.isNotEmpty(childList)) {
classificationChildVO.setChildList(childList);
}
}
return classificationChildVOList;
}
private void classificationDTOCheck(ClassificationDTO classificationDTO) {
if (StringUtils.isEmpty(classificationDTO.getType())) {
throw new BusinessException("type.cannot.be.empty");
}
if (StringUtils.isEmpty(classificationDTO.getClassificationName())) {
throw new BusinessException("classificationName.cannot.be.empty");
}
QueryWrapper<Classification> qw = new QueryWrapper<>();
qw.lambda().ne(null != classificationDTO.getId(), Classification::getId, classificationDTO.getId());
qw.lambda().eq(Classification::getType, classificationDTO.getType());
if (null == classificationDTO.getParentId()) {
qw.lambda().eq(Classification::getParentId, 0L);
}else {
qw.lambda().eq(Classification::getParentId, classificationDTO.getParentId());
}
qw.lambda().eq(Classification::getClassificationName, classificationDTO.getClassificationName());
List<Classification> classificationList = classificationMapper.selectList(qw);
if (CollectionUtil.isNotEmpty(classificationList)) {
throw new BusinessException("classificationName.already.exists");
}
}
}

View File

@@ -281,7 +281,7 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> impl
qw.lambda().eq(Library::getAccountId, userInfo.getId());
qw.lambda().eq(Library::getLevel1Type, level1Type);
if (!StringUtils.isEmpty(sex)) {
if (level1Type.equals(LibraryLevel1TypeEnum.SKETCH_BOARD)) {
if (level1Type.equals(LibraryLevel1TypeEnum.SKETCH_BOARD.getRealName())) {
qw.lambda().eq(Library::getLevel2Type, level2Type);
qw.lambda().eq(Library::getLevel3Type, sex);
} else {