添加自定义组件
parent
28745097e8
commit
73629bfd1f
@ -0,0 +1,117 @@
|
||||
package cn.estsh.i3plus.core.apiservice.controller.report;
|
||||
|
||||
import cn.estsh.i3plus.platform.common.tool.ClassTool;
|
||||
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.model.common.ClassFieldModel;
|
||||
import cn.estsh.i3plus.pojo.model.common.ClassModel;
|
||||
import cn.estsh.impp.framework.boot.util.ResultBean;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.persistence.Transient;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/impp/cloud/report")
|
||||
@Api(description="报表服务")
|
||||
public class CoreReportController {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(CoreReportController.class);
|
||||
|
||||
@Value("${impp.app.pojo-packages}.bean")
|
||||
public String pojoPackagePath;
|
||||
|
||||
@GetMapping(value="/list-clz")
|
||||
@ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类")
|
||||
public BaseResultBean<ClassModel> listClz() {
|
||||
LOGGER.info("【类路径:{}】",pojoPackagePath);
|
||||
List<String> clzNameList = ClassTool.getClassName(pojoPackagePath, true);
|
||||
List<ClassModel> clzList = new ArrayList<>(clzNameList.size());
|
||||
Class tmpClz = null;
|
||||
Api api = null;
|
||||
ClassModel classModel = null;
|
||||
for(String clzName : clzNameList){
|
||||
try {
|
||||
//注册类
|
||||
tmpClz = Class.forName(clzName);
|
||||
|
||||
classModel = new ClassModel();
|
||||
classModel.setPackageName(pojoPackagePath);
|
||||
classModel.setClzFullName(clzName);
|
||||
classModel.setClzSimpleName(tmpClz.getSimpleName());
|
||||
|
||||
api = (Api) tmpClz.getAnnotation(Api.class);
|
||||
if(api != null) {
|
||||
classModel.setClzDesc(api.value());
|
||||
|
||||
clzList.add(classModel);
|
||||
}else{
|
||||
//classModel.setClzDesc(clzName);
|
||||
LOGGER.warn("不添加类:{},因为没有添加api描述", tmpClz);
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
LOGGER.error("【类:{}注册出错】",clzName,clzName,e);
|
||||
}
|
||||
}
|
||||
|
||||
return ResultBean.success("获取类:" + clzList.size())
|
||||
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
|
||||
.setResultList(clzList);
|
||||
}
|
||||
|
||||
@GetMapping(value="/pojo-property")
|
||||
@ApiOperation(value="查询类所有属性")
|
||||
public ResultBean<ClassFieldModel> testWms(@RequestParam("clzFullName") String clzFullName) {
|
||||
LOGGER.info("【查询类属性:{}】",clzFullName);
|
||||
|
||||
ApiParam apiParam = null;
|
||||
Transient tran = null;
|
||||
List<ClassFieldModel> fieldModelList = new ArrayList<>();
|
||||
try {
|
||||
Class tmpClz = Class.forName(clzFullName);
|
||||
List<Field> fields = ClassTool.getAllFieldsList(tmpClz);
|
||||
ClassFieldModel fieldModel = null;
|
||||
for(Field f : fields){
|
||||
tran = f.getAnnotation(Transient.class);
|
||||
if(tran == null) {
|
||||
// 临时对象不需要处理
|
||||
fieldModel = new ClassFieldModel();
|
||||
fieldModel.setPackageName(pojoPackagePath);
|
||||
fieldModel.setClzFullName(clzFullName);
|
||||
fieldModel.setClzSimpleName(tmpClz.getSimpleName());
|
||||
fieldModel.setFieldName(f.getName());
|
||||
|
||||
apiParam = f.getAnnotation(ApiParam.class);
|
||||
if(apiParam != null){
|
||||
fieldModel.setFieldDesc(apiParam.value());
|
||||
|
||||
fieldModelList.add(fieldModel);
|
||||
}else{
|
||||
//fieldModel.setFieldDesc(fieldModel.getFieldName());
|
||||
LOGGER.warn("不添加属性:{},因为没有添加api描述", f.getName());
|
||||
}
|
||||
}else{
|
||||
LOGGER.info("【临时属性:{}】",f.getName());
|
||||
}
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
LOGGER.error("【类:{}实例化出错】",clzFullName,e);
|
||||
}
|
||||
|
||||
return ResultBean.success("获取属性:" + fieldModelList.size())
|
||||
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
|
||||
.setResultList(fieldModelList);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue