BUGFIX: sketchBoard upload checkMd5校验;
TASK: 分类;
This commit is contained in:
30
src/main/java/com/ai/da/service/ClassificationService.java
Normal file
30
src/main/java/com/ai/da/service/ClassificationService.java
Normal 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);
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user