jiangping
2025-03-31 06a46e017886bec692223a626ff50a06b83910cd
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
package com.doumee.biz.system.impl;
 
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.dao.common.dto.UpdateSortDTO;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.system.SystemDictDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.List;
 
@Service
public class SystemDictDataBizImpl implements SystemDictDataBiz {
 
    @Autowired
    private SystemDictDataService systemDictDataService;
 
    @Override
    public Integer create(SystemDictData systemDictData) {
        SystemDictData queryDto = new SystemDictData();
        queryDto.setDictId(systemDictData.getDictId());
        queryDto.setCode(systemDictData.getCode());
        queryDto.setDeleted(Boolean.FALSE);
        SystemDictData dictData = systemDictDataService.findOne(queryDto);
        if (dictData != null) {
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据值已存在");
        }
        // 排序处理
        queryDto = new SystemDictData();
        queryDto.setDictId(systemDictData.getDictId());
        queryDto.setDeleted(Boolean.FALSE);
        long maxSort = systemDictDataService.count(queryDto);
        systemDictData.setSort(Integer.valueOf("" + maxSort));
        return systemDictDataService.create(systemDictData);
    }
 
    @Override
    public void updateById(SystemDictData systemDictData) {
        SystemDictData queryDto = new SystemDictData();
        queryDto.setDictId(systemDictData.getDictId());
        queryDto.setCode(systemDictData.getCode());
        queryDto.setDeleted(Boolean.FALSE);
        SystemDictData dictData = systemDictDataService.findOne(queryDto);
        if (dictData != null && !dictData.getId().equals(systemDictData.getId())) {
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据值已存在");
        }
        systemDictDataService.updateById(systemDictData);
    }
 
    @Override
    public void sort(UpdateSortDTO dto) {
        SystemDictData dictData = systemDictDataService.findById(dto.getId());
        if (dictData == null || dictData.getDeleted()) {
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "排序的数据不存在或已被删除");
        }
        SystemDictData queryDto = new SystemDictData();
        queryDto.setDictId(dictData.getDictId());
        queryDto.setDeleted(Boolean.FALSE);
        List<SystemDictData> dictDataList = systemDictDataService.findList(queryDto);
        int index = 0;
        for (int i = 0; i < dictDataList.size(); i++) {
            if (dictDataList.get(i).getId().equals(dto.getId())) {
                index = i;
                break;
            }
        }
        // 上移
        if ("top".equals(dto.getDirection())) {
            if (index - 1 < 0) {
                return;
            }
            SystemDictData preDictData = dictDataList.remove(index - 1);
            dictDataList.add(index, preDictData);
        }
        // 下移
        else {
            if (index + 1 > dictDataList.size() - 1) {
                return;
            }
            SystemDictData nextDictData = dictDataList.remove(index + 1);
            dictDataList.add(index, nextDictData);
        }
        for (int i = 0; i < dictDataList.size(); i++) {
            dictDataList.get(i).setSort(i);
        }
        // 修改
        systemDictDataService.updateByIdInBatch(dictDataList);
    }
}