SysDictServiceImpl.java
4.74 KB
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
package com.pashanhoo.dictionary.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.pashanhoo.common.Result;
import com.pashanhoo.dictionary.dao.SysDictMapper;
import com.pashanhoo.dictionary.model.dto.SysDict;
import com.pashanhoo.dictionary.model.vo.EditDictVo;
import com.pashanhoo.dictionary.model.vo.GetSysDictParentVo;
import com.pashanhoo.dictionary.model.vo.SysDictVo;
import com.pashanhoo.dictionary.service.SysDictService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class SysDictServiceImpl implements SysDictService {
@Resource
private SysDictMapper sysDictMapper;
/**
* 查询
* @param dictid
* @return
*/
@Override
public int deleteByPrimaryKey(String dictid) {
return sysDictMapper.deleteByPrimaryKey(dictid);
}
/**
* 插入
* @param record
* @return
*/
@Override
public int insert(SysDict record) {
return sysDictMapper.insert(record);
}
/**
* 插入
* @param record
* @return
*/
@Override
public int insertSelective(SysDict record) {
return sysDictMapper.insertSelective(record);
}
/**
* 查询
* @param dictid
* @return
*/
@Override
public SysDict selectByPrimaryKey(String dictid) {
return sysDictMapper.selectByPrimaryKey(dictid);
}
/**
* 更新
* @param record
* @return
*/
@Override
public int updateByPrimaryKeySelective(SysDict record) {
return sysDictMapper.updateByPrimaryKeySelective(record);
}
/**
* 更新
* @param record
* @return
*/
@Override
public int updateByPrimaryKey(SysDict record) {
return sysDictMapper.updateByPrimaryKey(record);
}
/**
* 批量更新
* @param list
* @return
*/
@Override
public int updateBatch(List<SysDict> list) {
return sysDictMapper.updateBatch(list);
}
/**
* 批量更新
* @param list
* @return
*/
@Override
public int updateBatchSelective(List<SysDict> list) {
return sysDictMapper.updateBatchSelective(list);
}
/**
* 批量插入
* @param list
* @return
*/
@Override
public int batchInsert(List<SysDict> list) {
return sysDictMapper.batchInsert(list);
}
/**
* 获取父级字典表
* @param request
* @return
*/
@Override
public PageInfo<GetSysDictParentVo> getSysDictParent(SysDictVo request) {
PageHelper.startPage(request.getCurrentPage(), request.getPageSize());
List<GetSysDictParentVo> list = sysDictMapper.getSysDictParent(request);
return new PageInfo<>(list);
}
/**
* 根据typeId查询字典表
* @param typeId
* @return
*/
@Override
public List<SysDict> getSysDictByTypeId(String typeId) {
return sysDictMapper.getSysDictByTypeId(typeId);
}
/**
* root节点只做更新,子节点全部删除再批量插入
* @param request
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int editSysDict(EditDictVo request) {
List<SysDict> editDicts = request.getEditDicts();
List<SysDict> parent = editDicts.stream().filter(item -> item.getParentId() == null).collect(Collectors.toList());
sysDictMapper.updateByPrimaryKey(parent.get(0));
List<SysDict> dictWithoutParent = editDicts.stream().filter(item -> item.getParentId() != null).collect(Collectors.toList());
List<SysDict> result = new ArrayList<>();
//递归所有子集
List<SysDict> resultList = getAllSysDict(dictWithoutParent,result);
//删除除了根目录的所有子集
sysDictMapper.deleteByTypeId(resultList.get(0).getTypeId());
return sysDictMapper.batchInsert(resultList);
}
/**
* 查询所有字典表
* @return
*/
@Override
public List<SysDict> selectAll() {
return sysDictMapper.selectAll();
}
@Override
public Result getSysDictChildByParentCode(String dcode) {
List<SysDict> list=sysDictMapper.getSysDictChildByParentCode(dcode);
return Result.ok(list);
}
private List<SysDict> getAllSysDict(List<SysDict> dicts, List<SysDict> result) {
for (SysDict SYSDICT : dicts) {
List<SysDict> children = SYSDICT.getChildren();
result.add(SYSDICT);
if (children != null) {
getAllSysDict(children, result);
}
}
return result;
}
}