fix: eps生成修复
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package com.cool.core.annotation;
|
||||
|
||||
import com.cool.core.enums.AdminComponentsEnum;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
@@ -8,5 +10,5 @@ import java.lang.annotation.Target;
|
||||
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface EpsField {
|
||||
String component() default "input";
|
||||
String component() default AdminComponentsEnum.INPUT;
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.cool.core.annotation.EpsField;
|
||||
import com.cool.core.annotation.TokenIgnore;
|
||||
import com.cool.core.config.CustomOpenApiResource;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import com.tangzc.mybatisflex.autotable.annotation.ColumnDefine;
|
||||
@@ -90,10 +91,12 @@ public class CoolEps {
|
||||
private void urls() {
|
||||
Dict admin = Dict.create();
|
||||
Dict app = Dict.create();
|
||||
ArrayList<Object> emptyList = new ArrayList<>();
|
||||
Map<RequestMappingInfo, HandlerMethod> map = requestMappingHandlerMapping.getHandlerMethods();
|
||||
for (Map.Entry<RequestMappingInfo, HandlerMethod> methodEntry : map.entrySet()) {
|
||||
RequestMappingInfo info = methodEntry.getKey();
|
||||
HandlerMethod method = methodEntry.getValue();
|
||||
TokenIgnore tokenIgnore = method.getMethodAnnotation(TokenIgnore.class);
|
||||
String module = getModule(method);
|
||||
if (StrUtil.isNotEmpty(module)) {
|
||||
String entityName = getEntity(method.getBeanType());
|
||||
@@ -126,17 +129,24 @@ public class CoolEps {
|
||||
}
|
||||
});
|
||||
if (item != null) {
|
||||
item.set("api", apis(prefix, methodPath, item.getBean("api")));
|
||||
item.set("api", apis(prefix, methodPath, item.getBean("api"), tokenIgnore));
|
||||
} else {
|
||||
item = Dict.create();
|
||||
item.set("controller", method.getBeanType().getSimpleName());
|
||||
item.set("module", module);
|
||||
item.set("info", Dict.create().set("type",
|
||||
Dict.create()
|
||||
.set("name", getLastPathSegment(prefix))
|
||||
.set("description", "")
|
||||
));
|
||||
item.set("api", apis(prefix, methodPath, item.getBean("api"), tokenIgnore));
|
||||
item.set("name", entityName);
|
||||
item.set("api", new ArrayList<Dict>());
|
||||
item.set("prefix", prefix);
|
||||
item.set("columns", entityInfo.get(entityName));
|
||||
item.set("menu", menuInfo.get( entityName ) );
|
||||
item.set("api", apis(prefix, methodPath, item.getBean("api")));
|
||||
item.set("pageQueryOp", Dict.create().set("keyWordLikeFields", emptyList)
|
||||
.set("fieldEq", emptyList)
|
||||
.set("fieldLike", emptyList));
|
||||
item.set("prefix", prefix);
|
||||
item.set("menu", menuInfo.get(entityName));
|
||||
urls.add(item);
|
||||
}
|
||||
if (type == 0) {
|
||||
@@ -152,6 +162,28 @@ public class CoolEps {
|
||||
this.app = app;
|
||||
|
||||
}
|
||||
/**
|
||||
* 提取URL路径中的最后一个路径段
|
||||
* 示例:输入 "/api/getData" 返回 "getData"
|
||||
*/
|
||||
private String getLastPathSegment(String url) {
|
||||
if (StrUtil.isBlank(url)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
int queryIndex = url.indexOf('?');
|
||||
if (queryIndex != -1) {
|
||||
url = url.substring(0, queryIndex);
|
||||
}
|
||||
|
||||
int slashIndex = url.lastIndexOf('/');
|
||||
if (slashIndex != -1 && slashIndex < url.length() - 1) {
|
||||
return url.substring(slashIndex + 1);
|
||||
} else {
|
||||
return url;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设置所有的api
|
||||
@@ -161,13 +193,18 @@ public class CoolEps {
|
||||
* @param list api列表
|
||||
* @return api列表
|
||||
*/
|
||||
private List<Dict> apis(String prefix, String methodPath, List<Dict> list) {
|
||||
private List<Dict> apis(String prefix, String methodPath, List<Dict> list, TokenIgnore tokenIgnore) {
|
||||
if (ObjUtil.isNull(list)) {
|
||||
list = new ArrayList<>();
|
||||
}
|
||||
Dict item = Dict.create();
|
||||
item.set("method", "");
|
||||
item.set("path", methodPath);
|
||||
item.set("summary", "");
|
||||
item.set("tag", "");
|
||||
item.set("dts", new Object());
|
||||
item.set("dts", Dict.create());
|
||||
item.set("ignoreToken", false);
|
||||
if (tokenIgnore != null) {
|
||||
item.set("ignoreToken", true);
|
||||
}
|
||||
setSwaggerInfo(item, prefix + methodPath);
|
||||
list.add(item);
|
||||
return list;
|
||||
@@ -184,10 +221,8 @@ public class CoolEps {
|
||||
JSONObject urlInfo = paths.getJSONObject(url);
|
||||
String method = urlInfo.keySet().iterator().next();
|
||||
JSONObject methodInfo = urlInfo.getJSONObject(method);
|
||||
item.set("dts", methodInfo);
|
||||
item.set("method", method);
|
||||
item.set("summary", methodInfo.getStr("summary"));
|
||||
item.set("description", methodInfo.get("description"));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -351,6 +386,7 @@ public class CoolEps {
|
||||
dict.set("propertyName", field.getName());
|
||||
dict.set("type", matchType(field.getType().getName()));
|
||||
dict.set("nullable", !columnInfo.notNull());
|
||||
dict.set("source", "a." + field.getName());
|
||||
dictList.add(dict);
|
||||
}
|
||||
return dictList;
|
||||
|
||||
@@ -65,7 +65,7 @@ public class R<T> implements Serializable {
|
||||
}
|
||||
|
||||
public static <B> R<B> ok(B data) {
|
||||
return new R<B>(1000 , "ok", data);
|
||||
return new R<B>(1000 , "success", data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.cool.modules.base.entity.sys;
|
||||
|
||||
import com.cool.core.annotation.EpsField;
|
||||
import com.cool.core.base.TenantEntity;
|
||||
import com.cool.core.enums.AdminComponentsEnum;
|
||||
import com.mybatisflex.annotation.Column;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import com.tangzc.mybatisflex.autotable.annotation.ColumnDefine;
|
||||
@@ -41,6 +43,7 @@ public class BaseSysUserEntity extends TenantEntity<BaseSysUserEntity> {
|
||||
private String headImg;
|
||||
|
||||
@ColumnDefine(comment = "手机号")
|
||||
@EpsField(component = AdminComponentsEnum.TEXTAREA)
|
||||
private String phone;
|
||||
|
||||
@ColumnDefine(comment = "邮箱")
|
||||
|
||||
Reference in New Issue
Block a user