forked from github/dataease
fix: 多字段枚举NPE异常
This commit is contained in:
parent
0f678140cf
commit
d424e15400
@ -23,6 +23,8 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -100,8 +102,10 @@ public class DataSetTableFieldController {
|
|||||||
|
|
||||||
@ApiOperation("多字段值枚举")
|
@ApiOperation("多字段值枚举")
|
||||||
@PostMapping("linkMultFieldValues")
|
@PostMapping("linkMultFieldValues")
|
||||||
public List<Object> linkMultFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception {
|
public List<Object> linkMultFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest)
|
||||||
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
throws Exception {
|
||||||
|
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
|
||||||
|
.getRequest();
|
||||||
String linkToken = request.getHeader(F2CLinkFilter.LINK_TOKEN_KEY);
|
String linkToken = request.getHeader(F2CLinkFilter.LINK_TOKEN_KEY);
|
||||||
DecodedJWT jwt = JWT.decode(linkToken);
|
DecodedJWT jwt = JWT.decode(linkToken);
|
||||||
Long userId = jwt.getClaim("userId").asLong();
|
Long userId = jwt.getClaim("userId").asLong();
|
||||||
@ -114,18 +118,21 @@ public class DataSetTableFieldController {
|
|||||||
public List<Object> multFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception {
|
public List<Object> multFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception {
|
||||||
List<Object> results = new ArrayList<>();
|
List<Object> results = new ArrayList<>();
|
||||||
for (String fieldId : multFieldValuesRequest.getFieldIds()) {
|
for (String fieldId : multFieldValuesRequest.getFieldIds()) {
|
||||||
results.addAll(dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId()));
|
List<Object> fieldValues = dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId());
|
||||||
|
if (CollectionUtil.isNotEmpty(fieldValues)) {
|
||||||
|
results.addAll(fieldValues);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
ArrayList<Object> list = results.stream().collect(
|
ArrayList<Object> list = results.stream().collect(
|
||||||
Collectors.collectingAndThen(
|
Collectors.collectingAndThen(
|
||||||
Collectors.toCollection(
|
Collectors.toCollection(
|
||||||
() -> new TreeSet<>(Comparator.comparing(t -> {
|
() -> new TreeSet<>(Comparator.comparing(t -> {
|
||||||
if (ObjectUtils.isEmpty(t)) return "";
|
if (ObjectUtils.isEmpty(t))
|
||||||
|
return "";
|
||||||
return t.toString();
|
return t.toString();
|
||||||
}))
|
}))),
|
||||||
), ArrayList::new
|
ArrayList::new));
|
||||||
)
|
|
||||||
);
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user