yangys
2024-03-29 153cc3fd4ef015a8b1390b2eef3d102c5859a5e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package com.qianwen.smartman.modules.dnc.service.impl;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.qianwen.core.log.exception.ServiceException;
import com.qianwen.core.mp.base.BaseServiceImpl;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.smartman.common.constant.DncConstant;
import com.qianwen.smartman.common.utils.MessageUtils;
import com.qianwen.smartman.modules.dnc.convert.DncArchiveDirectoryConvert;
import com.qianwen.smartman.modules.dnc.entity.DncArchiveDirectory;
import com.qianwen.smartman.modules.dnc.entity.DncArchiveDirectoryFile;
import com.qianwen.smartman.modules.dnc.mapper.DncArchiveDirectoryMapper;
import com.qianwen.smartman.modules.dnc.service.IDncArchiveDirectoryFileService;
import com.qianwen.smartman.modules.dnc.service.IDncArchiveDirectoryService;
import com.qianwen.smartman.modules.dnc.vo.DncArchiveDirectoryAddVO;
import com.qianwen.smartman.modules.dnc.vo.DncArchiveDirectoryUpdateVO;
import com.qianwen.smartman.modules.dnc.vo.DncArchiveDirectoryVO;
 
@Service
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/dnc/service/impl/DncArchiveDirectoryServiceImpl.class */
public class DncArchiveDirectoryServiceImpl extends BaseServiceImpl<DncArchiveDirectoryMapper, DncArchiveDirectory> implements IDncArchiveDirectoryService {
    @Autowired
    @Lazy
    private IDncArchiveDirectoryFileService dncArchiveDirectoryFileService;
 
 
    @Override // org.springblade.modules.dnc.service.IDncArchiveDirectoryService
    public List<DncArchiveDirectoryVO> getLazyList(String id) {
        if (Func.isBlank(id)) {
            List<DncArchiveDirectory> list = list(Wrappers.<DncArchiveDirectory>lambdaQuery().eq(DncArchiveDirectory::getParentId, DncConstant.DNC_DEFAULT_PARENT_ID));
            
            if (Func.isNotEmpty(list)) {
                return DncArchiveDirectoryConvert.INSTANCE.convert(list);
            }
        }
        return DncArchiveDirectoryConvert.INSTANCE.convert(list(Wrappers.<DncArchiveDirectory>lambdaQuery().eq(DncArchiveDirectory::getParentId, id)));
    }
 
    @Override // org.springblade.modules.dnc.service.IDncArchiveDirectoryService
    @Transactional(rollbackFor = {Exception.class})
    public DncArchiveDirectory addArchiveDirectory(DncArchiveDirectoryAddVO addVO) {
        String parentId = addVO.getParentId();
        String name = addVO.getName();
        DncArchiveDirectory parentArchiveDirectory = (DncArchiveDirectory) getById(parentId);
        if (parentArchiveDirectory == null) {
            throw new ServiceException(MessageUtils.message("dnc.archive.directory.parent.is.not.exists", new Object[0]));
        }
        if (verificationName(parentId, name)) {
            throw new ServiceException(MessageUtils.message("dnc.archive.directory.name.is.exists", new Object[0]));
        }
        DncArchiveDirectory addDirectory = new DncArchiveDirectory();
        addDirectory.setParentId(Long.valueOf(Long.parseLong(parentId)));
        addDirectory.setName(name);
        save(addDirectory);
        
        update(Wrappers.<DncArchiveDirectory>lambdaUpdate().eq(DncArchiveDirectory::getId, addDirectory.getId())
                .set(DncArchiveDirectory::getAllPath, parentArchiveDirectory.getAllPath() + "/" + addDirectory.getId()));
        /*
        update((Wrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().eq((v0) -> {
            return v0.getId();
        }, addDirectory.getId())).set((v0) -> {
            return v0.getAllPath();
        }, parentArchiveDirectory.getAllPath() + "/" + addDirectory.getId()));
        */
        return addDirectory;
    }
 
    @Override // org.springblade.modules.dnc.service.IDncArchiveDirectoryService
    @Transactional(rollbackFor = {Exception.class})
    public DncArchiveDirectory updateArchiveDirectoryName(DncArchiveDirectoryUpdateVO dncArchiveDirectoryUpdateVO) {
        String parentId = dncArchiveDirectoryUpdateVO.getParentId();
        String name = dncArchiveDirectoryUpdateVO.getName();
        String directoryId = dncArchiveDirectoryUpdateVO.getDirectoryId();
        if (verificationName(parentId, name)) {
            throw new ServiceException(MessageUtils.message("dnc.archive.directory.name.is.exists", new Object[0]));
        }
        DncArchiveDirectory archiveDirectory = (DncArchiveDirectory) getById(directoryId);
        if (archiveDirectory != null) {
            archiveDirectory.setName(name);
            updateById(archiveDirectory);
        }
        return archiveDirectory;
    }
 
    @Override // org.springblade.modules.dnc.service.IDncArchiveDirectoryService
    @Transactional(rollbackFor = {Exception.class})
    public boolean remove(List<Long> ids) {
        removeByIds(ids);
        this.dncArchiveDirectoryFileService.remove(Wrappers.<DncArchiveDirectoryFile>lambdaQuery().in(DncArchiveDirectoryFile::getArchiveDirectoryId, ids));
        /*
        this.dncArchiveDirectoryFileService.remove((Wrapper) Wrappers.lambdaQuery().in((v0) -> {
            return v0.getArchiveDirectoryId();
        }, ids));*/
        return true;
    }
 
    private boolean verificationName(String parentId, String name) {
        return (list(Wrappers.<DncArchiveDirectory>lambdaQuery().eq(DncArchiveDirectory::getParentId, parentId).eq(DncArchiveDirectory::getName, name)).size() > 0);
        /*
        return list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
            return v0.getParentId();
        }, parentId)).eq((v0) -> {
            return v0.getName();
        }, name)).size() > 0;*/
    }
}