diff --git a/src/main/java/neatlogic/module/cmdb/api/resourcecenter/config/getResourceEntityViewDataListApi.java b/src/main/java/neatlogic/module/cmdb/api/resourcecenter/config/getResourceEntityViewDataListApi.java new file mode 100644 index 0000000000000000000000000000000000000000..1417aa3be22486110477a0cba916ff3c3efd74d1 --- /dev/null +++ b/src/main/java/neatlogic/module/cmdb/api/resourcecenter/config/getResourceEntityViewDataListApi.java @@ -0,0 +1,72 @@ +package neatlogic.module.cmdb.api.resourcecenter.config; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.asynchronization.threadlocal.TenantContext; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.cmdb.auth.label.CMDB; +import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.common.dto.BasePageVo; +import neatlogic.framework.dao.mapper.SchemaMapper; +import neatlogic.framework.restful.annotation.*; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import neatlogic.framework.util.TableResultUtil; +import neatlogic.module.cmdb.dao.mapper.resourcecenter.ResourceEntityMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +@AuthAction(action = CMDB.class) +@OperationType(type = OperationTypeEnum.SEARCH) +public class getResourceEntityViewDataListApi extends PrivateApiComponentBase { + + @Resource + private ResourceEntityMapper resourceEntityMapper; + + @Resource + private SchemaMapper schemaMapper; + + @Override + public String getName() { + return "nmcarc.getresourceentityviewdatalistapi.getname"; + } + + @Input({ + @Param(name = "name", type = ApiParamType.STRING, isRequired = true, desc = "common.name"), + @Param(name = "currentPage", type = ApiParamType.INTEGER, desc = "common.currentpage"), + @Param(name = "pageSize", type = ApiParamType.INTEGER, desc = "common.pagesize"), + }) + @Output({ + @Param(name = "Return", type = ApiParamType.JSONOBJECT, desc = "common.tbodylist") + }) + @Description(desc = "nmcarc.getresourceentityviewdatalistapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + String name = paramObj.getString("name"); + JSONArray theadList = new JSONArray(); + List columnNameList = schemaMapper.getTableOrViewAllColumnNameList(TenantContext.get().getDataDbName(), name); + for (String columnName : columnNameList) { + JSONObject thead = new JSONObject(); + thead.put("key", columnName); + thead.put("title", columnName); + theadList.add(thead); + } + BasePageVo basePageVo = paramObj.toJavaObject(BasePageVo.class); + int rowNum = resourceEntityMapper.getResourceEntityViewDataCount(name); + if (rowNum == 0) { + return new JSONObject(); + } + basePageVo.setRowNum(rowNum); + List> tbodyList = resourceEntityMapper.getResourceEntityViewDataList(name, basePageVo.getStartNum(), basePageVo.getPageSize()); + return TableResultUtil.getResult(theadList, tbodyList, basePageVo); + } + + @Override + public String getToken() { + return "resourcecenter/resourceentity/viewdata/list"; + } +} diff --git a/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceEntityMapper.java b/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceEntityMapper.java index b5a3da1ea0b5bf645eeeb89976d244c850de649c..5ce39578b0dac4e7a6aa106356b55b1ddd72acee 100644 --- a/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceEntityMapper.java +++ b/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceEntityMapper.java @@ -18,8 +18,10 @@ package neatlogic.module.cmdb.dao.mapper.resourcecenter; import neatlogic.framework.cmdb.crossover.IResourceEntityCrossoverMapper; import neatlogic.framework.cmdb.dto.resourcecenter.config.ResourceEntityVo; +import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; public interface ResourceEntityMapper extends IResourceEntityCrossoverMapper { ResourceEntityVo getResourceEntityByName(String name); @@ -30,6 +32,10 @@ public interface ResourceEntityMapper extends IResourceEntityCrossoverMapper { List getAllResourceTypeCiIdList(); + int getResourceEntityViewDataCount(String name); + + List> getResourceEntityViewDataList(@Param("name") String name, @Param("startNum") int startNum, @Param("pageSize") int pageSize); + void insertResourceEntity(ResourceEntityVo resourceEntityVo); void insertResourceTypeCi(Long ciId); diff --git a/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceEntityMapper.xml b/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceEntityMapper.xml index c27528030c88aa6f98b7093c539d99372bc1efbd..9c7d670c2ec13d78f4c0c5bb87db9d0f4cf1a261 100644 --- a/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceEntityMapper.xml +++ b/src/main/java/neatlogic/module/cmdb/dao/mapper/resourcecenter/ResourceEntityMapper.xml @@ -43,6 +43,15 @@ limitations under the License. SELECT `ci_id` FROM `cmdb_resourcecenter_type_ci` + + + + INSERT INTO cmdb_resourcecenter_entity (`name`, `label`, `status`, `error`, `init_time`, `ci_id`, `config`, `description`)