add dict model
This commit is contained in:
parent
e9b66b13e4
commit
b6a82bbf6c
|
@ -87,7 +87,7 @@ public class ApiConfig {
|
|||
/**
|
||||
* api data dictionary
|
||||
*/
|
||||
private List<ApiDataDictionary> dataDictionaries;
|
||||
private List<ApiDataDictConfig> dataDictConfigs;
|
||||
|
||||
|
||||
public String getServerUrl() {
|
||||
|
@ -196,11 +196,13 @@ public class ApiConfig {
|
|||
this.adoc = adoc;
|
||||
}
|
||||
|
||||
public List<ApiDataDictionary> getDataDictionaries() {
|
||||
return dataDictionaries;
|
||||
public List<ApiDataDictConfig> getDataDictConfigs() {
|
||||
return dataDictConfigs;
|
||||
}
|
||||
|
||||
public void setDataDictionaries(ApiDataDictionary... dataDictionary) {
|
||||
this.dataDictionaries = CollectionUtil.asList(dataDictionary);
|
||||
public void setDataDictConfigs(ApiDataDictConfig... dataDictConfigs) {
|
||||
this.dataDictConfigs = CollectionUtil.asList(dataDictConfigs);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ package com.power.doc.model;
|
|||
/**
|
||||
* @author yu 2019/10/31.
|
||||
*/
|
||||
public class ApiDataDictionary {
|
||||
public class ApiDataDictConfig {
|
||||
|
||||
/**
|
||||
* Dictionary
|
||||
|
@ -15,6 +15,11 @@ public class ApiDataDictionary {
|
|||
*/
|
||||
private Class enumClass;
|
||||
|
||||
/**
|
||||
* enum class name
|
||||
*/
|
||||
private String enumClassName;
|
||||
|
||||
/**
|
||||
* value field
|
||||
*/
|
||||
|
@ -26,15 +31,15 @@ public class ApiDataDictionary {
|
|||
private String descField;
|
||||
|
||||
|
||||
public static ApiDataDictionary dict() {
|
||||
return new ApiDataDictionary();
|
||||
public static ApiDataDictConfig dict() {
|
||||
return new ApiDataDictConfig();
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public ApiDataDictionary setTitle(String title) {
|
||||
public ApiDataDictConfig setTitle(String title) {
|
||||
this.title = title;
|
||||
return this;
|
||||
}
|
||||
|
@ -43,7 +48,7 @@ public class ApiDataDictionary {
|
|||
return enumClass;
|
||||
}
|
||||
|
||||
public ApiDataDictionary setEnumClass(Class enumClass) {
|
||||
public ApiDataDictConfig setEnumClass(Class enumClass) {
|
||||
this.enumClass = enumClass;
|
||||
return this;
|
||||
}
|
||||
|
@ -52,7 +57,7 @@ public class ApiDataDictionary {
|
|||
return valueField;
|
||||
}
|
||||
|
||||
public ApiDataDictionary setValueField(String valueField) {
|
||||
public ApiDataDictConfig setValueField(String valueField) {
|
||||
this.valueField = valueField;
|
||||
return this;
|
||||
}
|
||||
|
@ -61,8 +66,17 @@ public class ApiDataDictionary {
|
|||
return descField;
|
||||
}
|
||||
|
||||
public ApiDataDictionary setDescField(String descField) {
|
||||
public ApiDataDictConfig setDescField(String descField) {
|
||||
this.descField = descField;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getEnumClassName() {
|
||||
return enumClassName;
|
||||
}
|
||||
|
||||
public ApiDataDictConfig setEnumClassName(String enumClassName) {
|
||||
this.enumClassName = enumClassName;
|
||||
return this;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package com.power.doc.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author yu 2019/10/31.
|
||||
*/
|
||||
@Data
|
||||
public class ApiDocDict {
|
||||
|
||||
/**
|
||||
* order
|
||||
*/
|
||||
private int order;
|
||||
|
||||
/**
|
||||
* dict title
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* data dict
|
||||
*/
|
||||
private List<DataDict> dataDictList;
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package com.power.doc.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author yu 2019/10/31.
|
||||
*/
|
||||
@Data
|
||||
public class DataDict {
|
||||
|
||||
/**
|
||||
* dict value
|
||||
*/
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* dict desc
|
||||
*/
|
||||
private String desc;
|
||||
}
|
|
@ -3,16 +3,14 @@ package com.power.doc;
|
|||
import com.power.common.util.DateTimeUtil;
|
||||
import com.power.common.util.StringUtil;
|
||||
import com.power.doc.enums.OrderEnum;
|
||||
import com.power.doc.model.ApiConfig;
|
||||
import com.power.doc.model.ApiDataDictionary;
|
||||
import com.power.doc.model.RevisionLog;
|
||||
import com.power.doc.model.SourceCodePath;
|
||||
import com.power.doc.model.*;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
|
@ -54,8 +52,8 @@ public class ApiDocTest {
|
|||
//SourcePath.path().setPath("F:\\Personal\\project\\smart\\src\\main\\java")
|
||||
//SourcePath.path().setDesc("加载项目外代码").setPath("E:\\ApplicationPower\\ApplicationPower\\Common-util\\src\\main\\java")
|
||||
);
|
||||
config.setDataDictionaries(
|
||||
ApiDataDictionary.dict().setTitle("订单字典").setEnumClass(OrderEnum.class).setValueField("code").setDescField("desc")
|
||||
config.setDataDictConfigs(
|
||||
ApiDataDictConfig.dict().setTitle("订单字典").setEnumClass(OrderEnum.class).setValueField("code").setDescField("desc")
|
||||
);
|
||||
//设置请求头,如果没有请求头,可以不用设置
|
||||
/* config.setRequestHeaders(
|
||||
|
@ -78,14 +76,28 @@ public class ApiDocTest {
|
|||
RevisionLog.getLog().setRevisionTime("2018/12/16").setAuthor("chen2").setRemarks("测试2").setStatus("修改").setVersion("V2.0")
|
||||
);
|
||||
|
||||
List<ApiDataDictionary> apiDataDictionaryList = config.getDataDictionaries();
|
||||
List<ApiDataDictConfig> apiDataDictionaryList = config.getDataDictConfigs();
|
||||
try {
|
||||
for (ApiDataDictionary apiDataDictionary : apiDataDictionaryList) {
|
||||
List<ApiDocDict> apiDocDictList = new ArrayList<>();//模板中遍历这个字典表生成字典文档
|
||||
int order = 0;
|
||||
for (ApiDataDictConfig apiDataDictionary : apiDataDictionaryList) {
|
||||
System.out.println("dictionary:" + apiDataDictionary.getTitle());
|
||||
order++;
|
||||
ApiDocDict apiDocDict = new ApiDocDict();
|
||||
apiDocDict.setOrder(order);//设置方便在文档中的小结顺序
|
||||
apiDocDict.setTitle(apiDataDictionary.getTitle());
|
||||
Class<?> clzz = apiDataDictionary.getEnumClass();
|
||||
if (Objects.isNull(clzz)) {
|
||||
if (StringUtil.isEmpty(apiDataDictionary.getEnumClassName())) {
|
||||
throw new RuntimeException(" enum class name can't be null.");
|
||||
}
|
||||
//如果没有设置class那么检查是否设置了字符串类型的class name
|
||||
clzz = Class.forName(apiDataDictionary.getEnumClassName());
|
||||
}
|
||||
if (!clzz.isEnum()) {
|
||||
throw new RuntimeException(clzz.getCanonicalName() + " is not an enum class.");
|
||||
}
|
||||
List<DataDict> dataDictList = new ArrayList<>();
|
||||
Object[] objects = clzz.getEnumConstants();
|
||||
String valueMethodName = "get" + StringUtil.firstToUpperCase(apiDataDictionary.getValueField());
|
||||
String descMethodName = "get" + StringUtil.firstToUpperCase(apiDataDictionary.getDescField());
|
||||
|
@ -94,11 +106,17 @@ public class ApiDocTest {
|
|||
for (Object object : objects) {
|
||||
Object val = valueMethod.invoke(object);
|
||||
Object desc = descMethod.invoke(object);
|
||||
DataDict dataDict = new DataDict();
|
||||
dataDict.setDesc(desc.toString());
|
||||
dataDict.setValue(val.toString());
|
||||
dataDictList.add(dataDict);
|
||||
System.out.println("enum value=" + val + "desc=" + desc);
|
||||
}
|
||||
apiDocDict.setDataDictList(dataDictList);
|
||||
apiDocDictList.add(apiDocDict);
|
||||
}
|
||||
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
|
||||
|
||||
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException | ClassNotFoundException e) {
|
||||
e.fillInStackTrace();
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue