Skip to content

Commit

Permalink
Merge pull request #587 from WeBankPartners/538_support_CI_data_histo…
Browse files Browse the repository at this point in the history
…ry_query

#538 support ci data history query
  • Loading branch information
jordanzhangsz authored Dec 27, 2019
2 parents a64e296 + 5003883 commit 02bd9a2
Show file tree
Hide file tree
Showing 12 changed files with 790 additions and 477 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public class UIProperties {
private String referenceCodeOfRelate = "relation";
private String propertyNameOfState = "state";
private String enumCodeOfStateDelete = "delete";
private Integer enumIdOfStateDelete = 36;
private String propertyNameOfFixedDate = "fixed_date";
private String enumCategoryNameOfEnv = "deploy_environment";
private String catNameOfArchitectureDesign = "tab_of_architecture_design";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,15 @@ public Object queryCiData(@PathVariable(value = "ci-type-id") int ciTypeId,
@RequestBody QueryRequest queryObject) {
return wrapperService.queryCiData(ciTypeId, queryObject);
}


@RolesAllowed({ MENU_DESIGNING_CI_DATA_MANAGEMENT, MENU_DESIGNING_CI_DATA_ENQUIRY })
@PostMapping("/ci-types/{ci-type-id}/ci-data/query-by-type")
@ResponseBody
public Object queryCiDataByType(@PathVariable(value = "ci-type-id") int ciTypeId,
@RequestBody QueryRequest queryObject) {
return wrapperService.queryCiDataByType(ciTypeId, queryObject);
}

@PostMapping("/referenceCiData/{reference-attr-id}/query")
@ResponseBody
public Object queryReferenceCiData(@PathVariable(value = "reference-attr-id") int referenceAttrId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -474,6 +474,31 @@ public QueryResponse<CiData> queryCiData(Integer ciTypeId, QueryRequest queryObj
}
return ciService.query(ciTypeId, queryObject);
}

public QueryResponse<CiData> queryCiDataByType(Integer ciTypeId, QueryRequest queryObject) {
if (queryObject == null) {
queryObject = QueryRequest.defaultQueryObject().descendingSortBy(CmdbConstants.DEFAULT_FIELD_CREATED_DATE);
} else if (queryObject.getSorting() == null || queryObject.getSorting().getField() == null) {
queryObject.getDialect().setShowCiHistory(false);
queryObject.setSorting(new Sorting(false, CmdbConstants.DEFAULT_FIELD_CREATED_DATE));
}
queryObject.addNotEqualsFilter("state", uiProperties.getEnumIdOfStateDelete());
QueryResponse<CiData> query = ciService.query(ciTypeId, queryObject);
List<String> ciDataIds = new ArrayList<>();
if(query.getContents()==null||query.getContents().size()<=0) {
return query;
}
query.getContents().forEach(cidata -> {
if(cidata.getData().get("fixed_date")==null) {
ciDataIds.add((String)cidata.getData().get("p_guid"));
}else {
ciDataIds.add((String)cidata.getData().get("guid"));
}
});
queryObject.addInFilter("guid", ciDataIds);
queryObject.getDialect().setShowCiHistory(true);
return ciService.query(ciTypeId, queryObject);
}

public List<Map<String, Object>> updateCiData(Integer ciTypeId, List<Map<String, Object>> ciData) {
return ciService.update(ciTypeId, ciData);
Expand Down
7 changes: 4 additions & 3 deletions cmdb-ui/src/api/base-plugin.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
export const pluginErrorMessage = async (r) => {
export const pluginErrorMessage = async r => {
const res = await r;
if (res.statusCode.startsWith("ERR")) {
const errorMes = Array.isArray(res.data)
? res.data.map(_ => _.errorMessage).join("<br/>")
: res.statusMessage;
window.vm && window.vm.$Notice.error({
window.vm &&
window.vm.$Notice.error({
title: "Error",
desc: errorMes,
duration: 0
});
}
return r;
}
};
30 changes: 20 additions & 10 deletions cmdb-ui/src/api/server.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
import { req as request, baseURL } from "./base";
import { pluginErrorMessage } from "./base-plugin"
import { pluginErrorMessage } from "./base-plugin";
let req = request;
if (window.request) {
req = {
post: (url, ...params) => pluginErrorMessage(window.request.post(baseURL + url, ...params)),
get: (url, ...params) => pluginErrorMessage(window.request.get(baseURL + url, ...params)),
delete: (url, ...params) => pluginErrorMessage(window.request.delete(baseURL + url, ...params)),
put: (url, ...params) => pluginErrorMessage(window.request.put(baseURL + url, ...params))
post: (url, ...params) =>
pluginErrorMessage(window.request.post(baseURL + url, ...params)),
get: (url, ...params) =>
pluginErrorMessage(window.request.get(baseURL + url, ...params)),
delete: (url, ...params) =>
pluginErrorMessage(window.request.delete(baseURL + url, ...params)),
put: (url, ...params) =>
pluginErrorMessage(window.request.put(baseURL + url, ...params))
};
}

Expand Down Expand Up @@ -69,7 +73,8 @@ export const updateCIRecord = (ciTypeId, data) =>
export const getRefCiTypeFrom = id => req.get(`/ci-types/${id}/references/by`);
export const getRefCiTypeTo = id => req.get(`/ci-types/${id}/references/to`);
export const getCiTypeAttr = id => req.get(`/ci-types/${id}/attributes`);
export const getSpecialConnector = () => req.get("/static-data/special-connector");
export const getSpecialConnector = () =>
req.get("/static-data/special-connector");

// CI design

Expand Down Expand Up @@ -173,9 +178,7 @@ export const getApplicationFrameworkDesignDataTree = guid =>
req.get(`/data-tree/application-framework-design?system-design-guid=${guid}`);
export const getDeployCiData = (data, payload) =>
req.post(
`/deploy-designs/tabs/ci-data?code-id=${data.codeId}&env-code=${
data.envCode
}&system-design-guid=${data.systemDesignGuid}`,
`/deploy-designs/tabs/ci-data?code-id=${data.codeId}&env-code=${data.envCode}&system-design-guid=${data.systemDesignGuid}`,
payload
);
export const getDeployDesignTabs = () => req.get(`/deploy-designs/tabs`);
Expand Down Expand Up @@ -236,6 +239,12 @@ export const deleteEnumCodes = data => {
export const queryCiData = data => {
return req.post(`/ci-types/${data.id}/ci-data/query`, data.queryObject);
};
export const queryCiDataByType = data => {
return req.post(
`/ci-types/${data.id}/ci-data/query-by-type`,
data.queryObject
);
};
export const getCiTypeAttributes = id => {
return req.get(`/ci-types/${id}/attributes`);
};
Expand Down Expand Up @@ -287,4 +296,5 @@ export const queryLogHeader = () => req.get("/log/queryHeader");
export const queryLog = data => req.post("/log/query", data);

// wecube api
export const getWecubeRoles = () => window.request.get("platform/v1/roles/retrieve")
export const getWecubeRoles = () =>
window.request.get("platform/v1/roles/retrieve");
7 changes: 6 additions & 1 deletion cmdb-ui/src/locale/i18n/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -244,5 +244,10 @@
"auto_fill_change_special_delimiter": "更换特殊连接符",
"auto_fill_filter_modal_title": "过滤条件",
"auto_fill_filter_modal_button": "添加过滤条件",
"auto_fill_filter_placeholder": " <-- 点此开始编辑填充规则"
"auto_fill_filter_placeholder": " <-- 点此开始编辑填充规则",
"updated_time": "Updated Time",
"query_type": "Query Type",
"type_latest": "Latest",
"type_all": "All",
"type_reality": "Confirmed"
}
7 changes: 6 additions & 1 deletion cmdb-ui/src/locale/i18n/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -244,5 +244,10 @@
"auto_fill_change_special_delimiter": "更换特殊连接符",
"auto_fill_filter_modal_title": "过滤条件",
"auto_fill_filter_modal_button": "添加过滤条件",
"auto_fill_filter_placeholder": " <-- 点此开始编辑填充规则"
"auto_fill_filter_placeholder": " <-- 点此开始编辑填充规则",
"updated_time": "更新时间",
"query_type": "查询类型",
"type_latest": "最新",
"type_all": "所有",
"type_reality": "现实"
}
19 changes: 14 additions & 5 deletions cmdb-ui/src/pages/admin/cmdb-model-management.vue
Original file line number Diff line number Diff line change
Expand Up @@ -1757,7 +1757,7 @@ export default {
}
},
async addNewAttr(id) {
const isSelectOrRef = this.addNewAttrForm.inputType
const isSelectOrRef = this.addNewAttrForm.inputType;
const payload = {
...this.addNewAttrForm,
length: this.addNewAttrForm.length || 1,
Expand Down Expand Up @@ -1789,7 +1789,11 @@ export default {
this.addNewAttrForm = {};
},
async saveAttr(ciTypeAttrId, form) {
const isSelectOrRef = form.inputType === "select" || form.inputType === "ref" || form.inputType === "multiSelect" || form.inputType === "multiRef"
const isSelectOrRef =
form.inputType === "select" ||
form.inputType === "ref" ||
form.inputType === "multiSelect" ||
form.inputType === "multiRef";
let payload = {
...form,
length: form.length || 1,
Expand Down Expand Up @@ -1817,7 +1821,11 @@ export default {
}
},
async applyAttr(ciTypeAttrId, form) {
const isSelectOrRef = form.inputType === "select" || form.inputType === "ref" || form.inputType === "multiSelect" || form.inputType === "multiRef"
const isSelectOrRef =
form.inputType === "select" ||
form.inputType === "ref" ||
form.inputType === "multiSelect" ||
form.inputType === "multiRef";
let updateRes = await updateCIAttr(
this.currentSelectedCI.ciTypeId,
ciTypeAttrId,
Expand All @@ -1826,7 +1834,8 @@ export default {
length: form.length || 1,
isRefreshable: form.isRefreshable === "yes",
isDisplayed: form.isDisplayed === "yes",
isAccessControlled: isSelectOrRef && form.isAccessControlled === "yes",
isAccessControlled:
isSelectOrRef && form.isAccessControlled === "yes",
isNullable: form.isNullable === "yes",
isAuto: form.isAuto === "yes",
isEditable: form.isEditable === "yes",
Expand Down Expand Up @@ -1914,7 +1923,7 @@ export default {
async getSpecialConnector() {
const res = await getSpecialConnector();
if (res.statusCode === "OK") {
this.specialDelimiters = res.data
this.specialDelimiters = res.data;
}
},
async getAllInputTypesList() {
Expand Down
43 changes: 29 additions & 14 deletions cmdb-ui/src/pages/admin/plugin-permission-management.vue
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,19 @@
v-for="ci in ciTypePermissions"
:key="ci.ciTypeId"
>
<span
class="ciTypes"
:title="ci.ciTypeName"
>{{ ci.ciTypeName }}</span>
<span class="ciTypes" :title="ci.ciTypeName">{{
ci.ciTypeName
}}</span>
<div class="ciTypes-options">
<Checkbox
v-for="act in actionsType"
:disabled="dataPermissionDisabled"
:indeterminate="ci[act.actionCode] === 'P'"
:value="ci[act.actionCode] === 'Y'"
:key="act.actionCode"
@click.prevent.native="ciTypesPermissionsHandler(ci, act.actionCode, act.type)"
@click.prevent.native="
ciTypesPermissionsHandler(ci, act.actionCode, act.type)
"
>
{{ act.actionName }}
</Checkbox>
Expand Down Expand Up @@ -232,8 +233,8 @@ export default {
}
]
}
],
}
]
};
},
methods: {
openPermissionManageModal(roleCiTypeId) {
Expand All @@ -242,7 +243,13 @@ export default {
this.getAttrPermissions();
},
async getAttrPermissions() {
const { statusCode, data, message } = await getRoleCiTypeCtrlAttributesByRoleCiTypeId(this.currentRoleCiTypeId)
const {
statusCode,
data,
message
} = await getRoleCiTypeCtrlAttributesByRoleCiTypeId(
this.currentRoleCiTypeId
);
if (statusCode === "OK") {
this.ciTypeAttrsPermissionsBackUp = data.body;
this.ciTypeAttrsPermissions = data.body.map(_ => {
Expand Down Expand Up @@ -395,7 +402,11 @@ export default {
}
}
});
const { statusCode, message, data } = await createRoleCiTypeCtrlAttributes(
const {
statusCode,
message,
data
} = await createRoleCiTypeCtrlAttributes(
this.currentRoleCiTypeId,
addAry
);
Expand Down Expand Up @@ -430,7 +441,11 @@ export default {
}
}
});
const { statusCode, message, data } = await updateRoleCiTypeCtrlAttributes(
const {
statusCode,
message,
data
} = await updateRoleCiTypeCtrlAttributes(
this.currentRoleCiTypeId,
editAry
);
Expand Down Expand Up @@ -609,12 +624,12 @@ export default {
);
this.permissionResponseHandeler(delRes);
}
},
}
},
created() {
this.getAllRoles();
}
}
};
</script>

<style lang="scss" scoped>
Expand Down Expand Up @@ -646,7 +661,7 @@ export default {
display: flex;
justify-content: space-between;
&>span {
& > span {
flex: 1;
margin-right: 10px;
overflow: hidden;
Expand Down Expand Up @@ -678,4 +693,4 @@ export default {
margin-right: 5px;
}
}
</style>
</style>
Loading

0 comments on commit 02bd9a2

Please sign in to comment.