feat:Dict注解支持单个对象返回的场景

This commit is contained in:
FCL
2026-02-12 11:11:08 +08:00
parent 4a94b0c841
commit e42a48f9b3

View File

@@ -81,8 +81,8 @@ public class DictAspect {
if (!(result instanceof CommonResult)) if (!(result instanceof CommonResult))
return result; return result;
Object data = ((CommonResult) result).getData(); Object data = ((CommonResult) result).getData();
if (!(data instanceof PageResult<?>) && !(data instanceof ArrayList<?>)) // if (!(data instanceof PageResult<?>) && !(data instanceof ArrayList<?>))
return result; // return result;
List<JSONObject> items = new ArrayList<>(); List<JSONObject> items = new ArrayList<>();
//step.1 筛选出加了 Dict 注解的字段列表 //step.1 筛选出加了 Dict 注解的字段列表
@@ -92,6 +92,7 @@ public class DictAspect {
//取出结果集 //取出结果集
List records = new ArrayList(); List records = new ArrayList();
String instanceType = ""; String instanceType = "";
boolean singleDataFlag = false;
if(data instanceof PageResult<?>){ if(data instanceof PageResult<?>){
records = ((PageResult) data).getList(); records = ((PageResult) data).getList();
instanceType = "PageResult"; instanceType = "PageResult";
@@ -99,6 +100,9 @@ public class DictAspect {
else if(data instanceof ArrayList<?>){ else if(data instanceof ArrayList<?>){
records = (List) data; records = (List) data;
instanceType = "ArrayList"; instanceType = "ArrayList";
}else{
records.add( data);
singleDataFlag = true;
} }
Boolean hasDict= checkHasDict(records); Boolean hasDict= checkHasDict(records);
@@ -193,6 +197,9 @@ public class DictAspect {
((ArrayList) data).clear(); ((ArrayList) data).clear();
((ArrayList) data).addAll(items); ((ArrayList) data).addAll(items);
} }
if(singleDataFlag){
((CommonResult<JSONObject>) result).setData( items.get(0));
}
return result; return result;
} }