|
@@ -0,0 +1,112 @@
|
|
|
|
|
+package com.fdkankan.manage_jp.service.impl;
|
|
|
|
|
+
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
+import com.fdkankan.manage_jp.common.ResultCode;
|
|
|
|
|
+import com.fdkankan.manage_jp.entity.ManageFolder;
|
|
|
|
|
+import com.fdkankan.manage_jp.entity.ManageFolderScene;
|
|
|
|
|
+import com.fdkankan.manage_jp.entity.User;
|
|
|
|
|
+import com.fdkankan.manage_jp.exception.BusinessException;
|
|
|
|
|
+import com.fdkankan.manage_jp.mapper.IManageFolderMapper;
|
|
|
|
|
+import com.fdkankan.manage_jp.service.IManageFolderSceneService;
|
|
|
|
|
+import com.fdkankan.manage_jp.service.IManageFolderService;
|
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
+import com.fdkankan.manage_jp.service.ISceneProService;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
+
|
|
|
|
|
+import java.time.YearMonth;
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.HashMap;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * <p>
|
|
|
|
|
+ * 服务实现类
|
|
|
|
|
+ * </p>
|
|
|
|
|
+ *
|
|
|
|
|
+ * @author
|
|
|
|
|
+ * @since 2025-11-27
|
|
|
|
|
+ */
|
|
|
|
|
+@Service
|
|
|
|
|
+public class ManageFolderServiceImpl extends ServiceImpl<IManageFolderMapper, ManageFolder> implements IManageFolderService {
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ IManageFolderSceneService manageFolderSceneService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ ISceneProService sceneProService;
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void del(Integer folderId) {
|
|
|
|
|
+ List<ManageFolder> sonList = this.getSonList(folderId);
|
|
|
|
|
+ if(sonList.isEmpty()){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ List<Integer> collect = sonList.stream().map(ManageFolder::getId).collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ this.removeByIds(collect);
|
|
|
|
|
+ List<ManageFolderScene> folderSceneList = manageFolderSceneService.getByFolderIds(collect);
|
|
|
|
|
+ for (ManageFolderScene manageFolderScene : folderSceneList) {
|
|
|
|
|
+ sceneProService.deleteByNum(manageFolderScene.getNum());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<ManageFolder> getSonList(Integer folderId) {
|
|
|
|
|
+ ManageFolder manageFolder = this.getById(folderId);
|
|
|
|
|
+ if(manageFolder == null){
|
|
|
|
|
+ throw new BusinessException(ResultCode.FOLDER_NOT_EXSIT);
|
|
|
|
|
+ }
|
|
|
|
|
+ List<ManageFolder> allList = new ArrayList<>();
|
|
|
|
|
+ allList.add(manageFolder);
|
|
|
|
|
+ getAllSon(allList,folderId);
|
|
|
|
|
+ return allList;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void getAllSon(List<ManageFolder> allList, Integer folderId) {
|
|
|
|
|
+ LambdaQueryWrapper<ManageFolder> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ wrapper.eq(ManageFolder::getParentId,folderId);
|
|
|
|
|
+ List<ManageFolder> list = this.list(wrapper);
|
|
|
|
|
+ if(!list.isEmpty()){
|
|
|
|
|
+ allList.addAll(list);
|
|
|
|
|
+ for (ManageFolder manageFolder : list) {
|
|
|
|
|
+ getAllSon(allList,manageFolder.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<ManageFolder> tree(User user,Integer type) {
|
|
|
|
|
+ LambdaQueryWrapper<ManageFolder> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ wrapper.eq(ManageFolder::getType, type);
|
|
|
|
|
+ if(user.getCompanyId() != null){
|
|
|
|
|
+ wrapper.eq(ManageFolder::getCompanyId,user.getCompanyId());
|
|
|
|
|
+ }else {
|
|
|
|
|
+ wrapper.eq(ManageFolder::getCreateId,user.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ List<ManageFolder> list = this.list(wrapper);
|
|
|
|
|
+ if(list.isEmpty()){
|
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
|
+ }
|
|
|
|
|
+ List<ManageFolder> reList = new ArrayList<>();
|
|
|
|
|
+ HashMap<Integer,ManageFolder> map = new HashMap<>();
|
|
|
|
|
+ for (ManageFolder manageFolder : list) {
|
|
|
|
|
+ if(manageFolder.getParentId() == null){
|
|
|
|
|
+ reList.add(manageFolder);
|
|
|
|
|
+ }
|
|
|
|
|
+ map.put(manageFolder.getId(),manageFolder);
|
|
|
|
|
+ }
|
|
|
|
|
+ for (ManageFolder manageFolder : list) {
|
|
|
|
|
+ if(manageFolder.getParentId() != null){
|
|
|
|
|
+ ManageFolder parentVo = map.get(manageFolder.getParentId());
|
|
|
|
|
+ parentVo.getChildrenList().add(manageFolder);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return reList;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+}
|