提交 0cfb3b3b 编写于 作者: ibizdev's avatar ibizdev

zhouweidong 发布系统代码 [ibz-lite,应用]

上级 7375987d
......@@ -76,6 +76,35 @@
"appdedataset":"FetchDefault",
"items": []
},
{
"srfkey": "DynamicModelStatus",
"emptytext": "未定义",
"codelisttype":"static",
"items": [
{
"id": "0",
"label": "未导入",
"text": "未导入",
"class":"",
"data":"",
"codename":"Item_0",
"value": "0",
"disabled": false
}
, {
"id": "1",
"label": "已导入",
"text": "已导入",
"class":"",
"data":"",
"codename":"Item_1",
"value": "1",
"disabled": false
}
]
},
{
"srfkey": "AppType",
"emptytext": "未定义",
......
......@@ -16,6 +16,11 @@ function getLocaleResourceBase(){
DstAppList: {
"empty": commonLogic.appcommonhandle("",null),
},
DynamicModelStatus: {
"0": commonLogic.appcommonhandle("未导入",null),
"1": commonLogic.appcommonhandle("已导入",null),
"empty": commonLogic.appcommonhandle("",null)
},
AppType: {
"INNER": commonLogic.appcommonhandle("内置应用",null),
"THIRD-PARTY": commonLogic.appcommonhandle("第三方应用",null),
......
......@@ -16,6 +16,11 @@ function getLocaleResourceBase(){
DstAppList: {
"empty": commonLogic.appcommonhandle("",null),
},
DynamicModelStatus: {
"0": commonLogic.appcommonhandle("未导入",null),
"1": commonLogic.appcommonhandle("已导入",null),
"empty": commonLogic.appcommonhandle("",null),
},
AppType: {
"INNER": commonLogic.appcommonhandle("内置应用",null),
"THIRD-PARTY": commonLogic.appcommonhandle("第三方应用",null),
......
......@@ -29,9 +29,7 @@ function getLocaleResourceBase(){
srfuf: commonLogic.appcommonhandle("",null),
srfdeid: commonLogic.appcommonhandle("",null),
srfsourcekey: commonLogic.appcommonhandle("",null),
configname: commonLogic.appcommonhandle("名称",null),
modelfile: commonLogic.appcommonhandle("文件",null),
status: commonLogic.appcommonhandle("状态",null),
configid: commonLogic.appcommonhandle("ID",null),
},
uiactions: {
......
......@@ -29,9 +29,7 @@ function getLocaleResourceBase(){
srfuf: commonLogic.appcommonhandle("",null),
srfdeid: commonLogic.appcommonhandle("",null),
srfsourcekey: commonLogic.appcommonhandle("",null),
configname: commonLogic.appcommonhandle("名称",null),
modelfile: commonLogic.appcommonhandle("文件",null),
status: commonLogic.appcommonhandle("状态",null),
configid: commonLogic.appcommonhandle("ID",null),
},
uiactions: {
......
......@@ -84,6 +84,35 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
"appdedataset":"FetchDefault",
"items": []
},
{
srfkey: "DynamicModelStatus",
emptytext: "未定义",
"codelisttype":"static",
items: [
{
id: "0",
label: "未导入",
text: "未导入",
"class":"",
"data":"",
"codename":"Item_0",
value: "0",
disabled: false,
},
{
id: "1",
label: "已导入",
text: "已导入",
"class":"",
"data":"",
"codename":"Item_1",
value: "1",
disabled: false,
},
]
},
{
srfkey: "AppType",
emptytext: "未定义",
......
......@@ -9,20 +9,6 @@
</row>
</app-form-group>
</i-col>
<i-col v-show="detailsModel.configname.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='configname' :itemRules="this.rules().configname" class='' :caption="$t('entities.dynamicmodelconfig.main_form.details.configname')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.configname.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box
v-model="data.configname"
@enter="onEnter($event)"
unit=""
:disabled="detailsModel.configname.disabled"
type='text'
style="">
</input-box>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.modelfile.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='modelfile' :itemRules="this.rules().modelfile" class='' :caption="$t('entities.dynamicmodelconfig.main_form.details.modelfile')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.modelfile.error" :isEmptyCaption="false" labelPos="LEFT">
......@@ -30,25 +16,6 @@
</app-form-item>
</i-col>
<i-col v-show="detailsModel.status.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='status' :itemRules="this.rules().status" class='' :caption="$t('entities.dynamicmodelconfig.main_form.details.status')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.status.error" :isEmptyCaption="false" labelPos="LEFT">
<dropdown-list
v-model="data.status"
:data="data"
:context="context"
:viewparams="viewparams"
:formState="formState"
:localContext ='{ }'
:localParam ='{ }'
:disabled="detailsModel.status.disabled"
valueType="string"
placeholder='请选择...' style="">
</dropdown-list>
</app-form-item>
</i-col>
......@@ -453,9 +420,7 @@ export default class MainBase extends Vue implements ControlInterface {
srfuf: null,
srfdeid: null,
srfsourcekey: null,
configname: null,
modelfile: null,
status: null,
configid: null,
dynamicmodelconfig:null,
};
......@@ -498,7 +463,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {string}
* @memberof MainBase
*/
public majorMessageField: string = "configname";
public majorMessageField: string = "";
/**
* 值规则
......@@ -508,18 +473,10 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public rules() :any {
return {
configname: [
{ required: this.detailsModel.configname.required, type: 'string', message: '名称 值不能为空', trigger: 'change' },
{ required: this.detailsModel.configname.required, type: 'string', message: '名称 值不能为空', trigger: 'blur' },
],
modelfile: [
{ required: this.detailsModel.modelfile.required, type: 'string', message: '文件 值不能为空', trigger: 'change' },
{ required: this.detailsModel.modelfile.required, type: 'string', message: '文件 值不能为空', trigger: 'blur' },
],
status: [
{ required: this.detailsModel.status.required, type: 'string', message: '状态 值不能为空', trigger: 'change' },
{ required: this.detailsModel.status.required, type: 'string', message: '状态 值不能为空', trigger: 'blur' },
],
}
}
......@@ -644,12 +601,8 @@ export default class MainBase extends Vue implements ControlInterface {
srfdeid: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfdeid', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
srfsourcekey: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfsourcekey', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
configname: new FormItemModel({ caption: '名称', detailType: 'FORMITEM', name: 'configname', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
modelfile: new FormItemModel({ caption: '文件', detailType: 'FORMITEM', name: 'modelfile', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
status: new FormItemModel({ caption: '状态', detailType: 'FORMITEM', name: 'status', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
configid: new FormItemModel({ caption: 'ID', detailType: 'FORMITEM', name: 'configid', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
......@@ -739,18 +692,6 @@ export default class MainBase extends Vue implements ControlInterface {
this.formDataChange({ name: 'srfsourcekey', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 configname 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof MainBase
*/
@Watch('data.configname')
onConfignameChange(newVal: any, oldVal: any) {
this.formDataChange({ name: 'configname', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 modelfile 值
*
......@@ -763,18 +704,6 @@ export default class MainBase extends Vue implements ControlInterface {
this.formDataChange({ name: 'modelfile', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 status 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof MainBase
*/
@Watch('data.status')
onStatusChange(newVal: any, oldVal: any) {
this.formDataChange({ name: 'status', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 configid 值
*
......@@ -852,8 +781,6 @@ export default class MainBase extends Vue implements ControlInterface {
}
/**
......
......@@ -50,21 +50,11 @@ export default class MainModel {
{
name: 'srfsourcekey',
},
{
name: 'configname',
prop: 'configname',
dataType: 'TEXT',
},
{
name: 'modelfile',
prop: 'modelfile',
dataType: 'TEXT',
},
{
name: 'status',
prop: 'status',
dataType: 'SSCODELIST',
},
{
name: 'configid',
prop: 'configid',
......
......@@ -41,7 +41,9 @@
</span>
</template>
<template v-slot="{row,column,$index}">
<span>{{row.status}}</span>
<template >
<codelist :value="row.status" tag='DynamicModelStatus' codelistType='STATIC' ></codelist>
</template>
</template>
</el-table-column>
</template>
......@@ -1110,6 +1112,14 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async formatExcelData(filterVal:any, jsonData:any) {
let codelistColumns:Array<any> = [
{
name: 'status',
srfkey: 'DynamicModelStatus',
codelistType : 'STATIC',
renderMode: 'other',
textSeparator: '、',
valueSeparator: ',',
},
];
let _this = this;
for (const codelist of codelistColumns) {
......
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ibzlite-app-web
labels:
app: ibzlite-app-web
spec:
replicas: 1
selector:
matchLabels:
app: ibzlite-app-web
template:
metadata:
labels:
app: ibzlite-app-web
spec:
imagePullSecrets:
- name: aly-shanghai
containers:
- name: ibzlite-app-web
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzlite-app-web:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
volumeMounts:
- name: data
mountPath: /app/file
volumes:
- name: data
persistentVolumeClaim:
claimName: demo-date-pvc-nfs
---
apiVersion: v1
kind: Service
metadata:
name: ibzlite-app-web
labels:
app: ibzlite-app-web
spec:
type: NodePort
ports:
- name: http
port: 8080
targetPort: 8080
nodePort: 8080
protocol: TCP
selector:
app: ibzlite-app-web
......@@ -68,6 +68,7 @@ public class DynamicModelConfig extends EntityMP implements Serializable {
/**
* 状态
*/
@DEField(defaultValue = "0")
@TableField(value = "status")
@JSONField(name = "status")
@JsonProperty("status")
......
......@@ -222,7 +222,7 @@
<!--输出实体[DYNAMIC_MODEL_CONFIG]数据结构 -->
<changeSet author="root" id="tab-dynamic_model_config-19-11">
<changeSet author="root" id="tab-dynamic_model_config-23-11">
<createTable tableName="IBZDYNAMICMODELCONFIG">
<column name="CONFIGID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_DYNAMIC_MODEL_CONFIG_CONFIG"/>
......
......@@ -1820,6 +1820,7 @@
"field_logic_name":"状态",
"entity_name":"DYNAMIC_MODEL_CONFIG",
"field_type":"SSCODELIST",
"dict":"DynamicModelStatus",
"nullable":1,
"physical_field":1,
"data_type":"VARCHAR",
......
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ibzlite-provider-api
labels:
app: ibzlite-provider-api
spec:
replicas: 1
selector:
matchLabels:
app: ibzlite-provider-api
template:
metadata:
labels:
app: ibzlite-provider-api
spec:
imagePullSecrets:
- name: aly-shanghai
containers:
- name: ibzlite-provider-api
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzlite-provider-api:latest
imagePullPolicy: Always
ports:
- containerPort: 8081
volumeMounts:
- name: data
mountPath: /app/file
volumes:
- name: data
persistentVolumeClaim:
claimName: demo-date-pvc-nfs
---
apiVersion: v1
kind: Service
metadata:
name: ibzlite-provider-api
labels:
app: ibzlite-provider-api
spec:
type: NodePort
ports:
- name: http
port: 8081
targetPort: 8081
nodePort: 8081
protocol: TCP
selector:
app: ibzlite-provider-api
......@@ -110,8 +110,9 @@ public class BladeVisualCategoryResource {
@ApiOperation(value = "获取可视化分类表草稿", tags = {"可视化分类表" }, notes = "获取可视化分类表草稿")
@RequestMapping(method = RequestMethod.GET, value = "/bladevisualcategories/getdraft")
public ResponseEntity<BladeVisualCategoryDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(bladevisualcategoryMapping.toDto(bladevisualcategoryService.getDraft(new BladeVisualCategory())));
public ResponseEntity<BladeVisualCategoryDTO> getDraft(BladeVisualCategoryDTO dto) {
BladeVisualCategory domain = bladevisualcategoryMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(bladevisualcategoryMapping.toDto(bladevisualcategoryService.getDraft(domain)));
}
@ApiOperation(value = "检查可视化分类表", tags = {"可视化分类表" }, notes = "检查可视化分类表")
......
......@@ -110,8 +110,9 @@ public class BladeVisualConfigResource {
@ApiOperation(value = "获取可视化配置表草稿", tags = {"可视化配置表" }, notes = "获取可视化配置表草稿")
@RequestMapping(method = RequestMethod.GET, value = "/bladevisualconfigs/getdraft")
public ResponseEntity<BladeVisualConfigDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(bladevisualconfigMapping.toDto(bladevisualconfigService.getDraft(new BladeVisualConfig())));
public ResponseEntity<BladeVisualConfigDTO> getDraft(BladeVisualConfigDTO dto) {
BladeVisualConfig domain = bladevisualconfigMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(bladevisualconfigMapping.toDto(bladevisualconfigService.getDraft(domain)));
}
@ApiOperation(value = "检查可视化配置表", tags = {"可视化配置表" }, notes = "检查可视化配置表")
......
......@@ -110,8 +110,9 @@ public class BladeVisualMapResource {
@ApiOperation(value = "获取可视化地图配置表草稿", tags = {"可视化地图配置表" }, notes = "获取可视化地图配置表草稿")
@RequestMapping(method = RequestMethod.GET, value = "/bladevisualmaps/getdraft")
public ResponseEntity<BladeVisualMapDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(bladevisualmapMapping.toDto(bladevisualmapService.getDraft(new BladeVisualMap())));
public ResponseEntity<BladeVisualMapDTO> getDraft(BladeVisualMapDTO dto) {
BladeVisualMap domain = bladevisualmapMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(bladevisualmapMapping.toDto(bladevisualmapService.getDraft(domain)));
}
@ApiOperation(value = "检查可视化地图配置表", tags = {"可视化地图配置表" }, notes = "检查可视化地图配置表")
......
......@@ -111,8 +111,9 @@ public class BladeVisualResource {
@ApiOperation(value = "获取可视化表草稿", tags = {"可视化表" }, notes = "获取可视化表草稿")
@RequestMapping(method = RequestMethod.GET, value = "/bladevisuals/getdraft")
public ResponseEntity<BladeVisualDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(bladevisualMapping.toDto(bladevisualService.getDraft(new BladeVisual())));
public ResponseEntity<BladeVisualDTO> getDraft(BladeVisualDTO dto) {
BladeVisual domain = bladevisualMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(bladevisualMapping.toDto(bladevisualService.getDraft(domain)));
}
@ApiOperation(value = "检查可视化表", tags = {"可视化表" }, notes = "检查可视化表")
......
......@@ -103,8 +103,9 @@ public class DstAPIResource {
@ApiOperation(value = "获取接口草稿", tags = {"接口" }, notes = "获取接口草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstapis/getdraft")
public ResponseEntity<DstAPIDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(dstapiMapping.toDto(dstapiService.getDraft(new DstAPI())));
public ResponseEntity<DstAPIDTO> getDraft(DstAPIDTO dto) {
DstAPI domain = dstapiMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(dstapiMapping.toDto(dstapiService.getDraft(domain)));
}
@ApiOperation(value = "检查接口", tags = {"接口" }, notes = "检查接口")
......@@ -213,8 +214,8 @@ public class DstAPIResource {
@ApiOperation(value = "根据微服务获取接口草稿", tags = {"接口" }, notes = "根据微服务获取接口草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstmicroservices/{dstmicroservice_id}/dstapis/getdraft")
public ResponseEntity<DstAPIDTO> getDraftByDstMicroservice(@PathVariable("dstmicroservice_id") String dstmicroservice_id) {
DstAPI domain = new DstAPI();
public ResponseEntity<DstAPIDTO> getDraftByDstMicroservice(@PathVariable("dstmicroservice_id") String dstmicroservice_id, DstAPIDTO dto) {
DstAPI domain = dstapiMapping.toDomain(dto);
domain.setMsId(dstmicroservice_id);
return ResponseEntity.status(HttpStatus.OK).body(dstapiMapping.toDto(dstapiService.getDraft(domain)));
}
......@@ -331,8 +332,8 @@ public class DstAPIResource {
@ApiOperation(value = "根据系统微服务获取接口草稿", tags = {"接口" }, notes = "根据系统微服务获取接口草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstsystems/{dstsystem_id}/dstmicroservices/{dstmicroservice_id}/dstapis/getdraft")
public ResponseEntity<DstAPIDTO> getDraftByDstSystemDstMicroservice(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("dstmicroservice_id") String dstmicroservice_id) {
DstAPI domain = new DstAPI();
public ResponseEntity<DstAPIDTO> getDraftByDstSystemDstMicroservice(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("dstmicroservice_id") String dstmicroservice_id, DstAPIDTO dto) {
DstAPI domain = dstapiMapping.toDomain(dto);
domain.setMsId(dstmicroservice_id);
return ResponseEntity.status(HttpStatus.OK).body(dstapiMapping.toDto(dstapiService.getDraft(domain)));
}
......
......@@ -103,8 +103,9 @@ public class DstAppResource {
@ApiOperation(value = "获取应用草稿", tags = {"应用" }, notes = "获取应用草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstapps/getdraft")
public ResponseEntity<DstAppDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(dstappMapping.toDto(dstappService.getDraft(new DstApp())));
public ResponseEntity<DstAppDTO> getDraft(DstAppDTO dto) {
DstApp domain = dstappMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(dstappMapping.toDto(dstappService.getDraft(domain)));
}
@ApiOperation(value = "检查应用", tags = {"应用" }, notes = "检查应用")
......@@ -213,8 +214,8 @@ public class DstAppResource {
@ApiOperation(value = "根据系统获取应用草稿", tags = {"应用" }, notes = "根据系统获取应用草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstsystems/{dstsystem_id}/dstapps/getdraft")
public ResponseEntity<DstAppDTO> getDraftByDstSystem(@PathVariable("dstsystem_id") String dstsystem_id) {
DstApp domain = new DstApp();
public ResponseEntity<DstAppDTO> getDraftByDstSystem(@PathVariable("dstsystem_id") String dstsystem_id, DstAppDTO dto) {
DstApp domain = dstappMapping.toDomain(dto);
domain.setSystemid(dstsystem_id);
return ResponseEntity.status(HttpStatus.OK).body(dstappMapping.toDto(dstappService.getDraft(domain)));
}
......
......@@ -111,8 +111,9 @@ public class DstComponentResource {
@ApiOperation(value = "获取组件草稿", tags = {"组件" }, notes = "获取组件草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstcomponents/getdraft")
public ResponseEntity<DstComponentDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(dstcomponentMapping.toDto(dstcomponentService.getDraft(new DstComponent())));
public ResponseEntity<DstComponentDTO> getDraft(DstComponentDTO dto) {
DstComponent domain = dstcomponentMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(dstcomponentMapping.toDto(dstcomponentService.getDraft(domain)));
}
@ApiOperation(value = "检查组件", tags = {"组件" }, notes = "检查组件")
......@@ -252,8 +253,8 @@ public class DstComponentResource {
@ApiOperation(value = "根据应用获取组件草稿", tags = {"组件" }, notes = "根据应用获取组件草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstapps/{dstapp_id}/dstcomponents/getdraft")
public ResponseEntity<DstComponentDTO> getDraftByDstApp(@PathVariable("dstapp_id") String dstapp_id) {
DstComponent domain = new DstComponent();
public ResponseEntity<DstComponentDTO> getDraftByDstApp(@PathVariable("dstapp_id") String dstapp_id, DstComponentDTO dto) {
DstComponent domain = dstcomponentMapping.toDomain(dto);
domain.setAppId(dstapp_id);
return ResponseEntity.status(HttpStatus.OK).body(dstcomponentMapping.toDto(dstcomponentService.getDraft(domain)));
}
......@@ -399,8 +400,8 @@ public class DstComponentResource {
@ApiOperation(value = "根据系统应用获取组件草稿", tags = {"组件" }, notes = "根据系统应用获取组件草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstsystems/{dstsystem_id}/dstapps/{dstapp_id}/dstcomponents/getdraft")
public ResponseEntity<DstComponentDTO> getDraftByDstSystemDstApp(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("dstapp_id") String dstapp_id) {
DstComponent domain = new DstComponent();
public ResponseEntity<DstComponentDTO> getDraftByDstSystemDstApp(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("dstapp_id") String dstapp_id, DstComponentDTO dto) {
DstComponent domain = dstcomponentMapping.toDomain(dto);
domain.setAppId(dstapp_id);
return ResponseEntity.status(HttpStatus.OK).body(dstcomponentMapping.toDto(dstcomponentService.getDraft(domain)));
}
......
......@@ -111,8 +111,9 @@ public class DstConfigResource {
@ApiOperation(value = "获取配置草稿", tags = {"配置" }, notes = "获取配置草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstconfigs/getdraft")
public ResponseEntity<DstConfigDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(dstconfigMapping.toDto(dstconfigService.getDraft(new DstConfig())));
public ResponseEntity<DstConfigDTO> getDraft(DstConfigDTO dto) {
DstConfig domain = dstconfigMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(dstconfigMapping.toDto(dstconfigService.getDraft(domain)));
}
@ApiOperation(value = "检查配置", tags = {"配置" }, notes = "检查配置")
......
......@@ -110,8 +110,9 @@ public class DstDataSourceResource {
@ApiOperation(value = "获取数据源草稿", tags = {"数据源" }, notes = "获取数据源草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstdatasources/getdraft")
public ResponseEntity<DstDataSourceDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(dstdatasourceMapping.toDto(dstdatasourceService.getDraft(new DstDataSource())));
public ResponseEntity<DstDataSourceDTO> getDraft(DstDataSourceDTO dto) {
DstDataSource domain = dstdatasourceMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(dstdatasourceMapping.toDto(dstdatasourceService.getDraft(domain)));
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzlite-DstDataSource-BuildDS-all')")
......
......@@ -103,8 +103,9 @@ public class DstMicroserviceResource {
@ApiOperation(value = "获取微服务草稿", tags = {"微服务" }, notes = "获取微服务草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstmicroservices/getdraft")
public ResponseEntity<DstMicroserviceDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(dstmicroserviceMapping.toDto(dstmicroserviceService.getDraft(new DstMicroservice())));
public ResponseEntity<DstMicroserviceDTO> getDraft(DstMicroserviceDTO dto) {
DstMicroservice domain = dstmicroserviceMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(dstmicroserviceMapping.toDto(dstmicroserviceService.getDraft(domain)));
}
@ApiOperation(value = "检查微服务", tags = {"微服务" }, notes = "检查微服务")
......@@ -213,8 +214,8 @@ public class DstMicroserviceResource {
@ApiOperation(value = "根据系统获取微服务草稿", tags = {"微服务" }, notes = "根据系统获取微服务草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstsystems/{dstsystem_id}/dstmicroservices/getdraft")
public ResponseEntity<DstMicroserviceDTO> getDraftByDstSystem(@PathVariable("dstsystem_id") String dstsystem_id) {
DstMicroservice domain = new DstMicroservice();
public ResponseEntity<DstMicroserviceDTO> getDraftByDstSystem(@PathVariable("dstsystem_id") String dstsystem_id, DstMicroserviceDTO dto) {
DstMicroservice domain = dstmicroserviceMapping.toDomain(dto);
domain.setSystemid(dstsystem_id);
return ResponseEntity.status(HttpStatus.OK).body(dstmicroserviceMapping.toDto(dstmicroserviceService.getDraft(domain)));
}
......
......@@ -111,8 +111,9 @@ public class DstRouterResource {
@ApiOperation(value = "获取路由草稿", tags = {"路由" }, notes = "获取路由草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstrouters/getdraft")
public ResponseEntity<DstRouterDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(dstrouterMapping.toDto(dstrouterService.getDraft(new DstRouter())));
public ResponseEntity<DstRouterDTO> getDraft(DstRouterDTO dto) {
DstRouter domain = dstrouterMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(dstrouterMapping.toDto(dstrouterService.getDraft(domain)));
}
@ApiOperation(value = "检查路由", tags = {"路由" }, notes = "检查路由")
......@@ -233,8 +234,8 @@ public class DstRouterResource {
@ApiOperation(value = "根据应用获取路由草稿", tags = {"路由" }, notes = "根据应用获取路由草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstapps/{dstapp_id}/dstrouters/getdraft")
public ResponseEntity<DstRouterDTO> getDraftByDstApp(@PathVariable("dstapp_id") String dstapp_id) {
DstRouter domain = new DstRouter();
public ResponseEntity<DstRouterDTO> getDraftByDstApp(@PathVariable("dstapp_id") String dstapp_id, DstRouterDTO dto) {
DstRouter domain = dstrouterMapping.toDomain(dto);
domain.setAppId(dstapp_id);
return ResponseEntity.status(HttpStatus.OK).body(dstrouterMapping.toDto(dstrouterService.getDraft(domain)));
}
......@@ -363,8 +364,8 @@ public class DstRouterResource {
@ApiOperation(value = "根据系统应用获取路由草稿", tags = {"路由" }, notes = "根据系统应用获取路由草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstsystems/{dstsystem_id}/dstapps/{dstapp_id}/dstrouters/getdraft")
public ResponseEntity<DstRouterDTO> getDraftByDstSystemDstApp(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("dstapp_id") String dstapp_id) {
DstRouter domain = new DstRouter();
public ResponseEntity<DstRouterDTO> getDraftByDstSystemDstApp(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("dstapp_id") String dstapp_id, DstRouterDTO dto) {
DstRouter domain = dstrouterMapping.toDomain(dto);
domain.setAppId(dstapp_id);
return ResponseEntity.status(HttpStatus.OK).body(dstrouterMapping.toDto(dstrouterService.getDraft(domain)));
}
......
......@@ -111,8 +111,9 @@ public class DstViewResource {
@ApiOperation(value = "获取页面草稿", tags = {"页面" }, notes = "获取页面草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstviews/getdraft")
public ResponseEntity<DstViewDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(dstviewMapping.toDto(dstviewService.getDraft(new DstView())));
public ResponseEntity<DstViewDTO> getDraft(DstViewDTO dto) {
DstView domain = dstviewMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(dstviewMapping.toDto(dstviewService.getDraft(domain)));
}
@ApiOperation(value = "检查页面", tags = {"页面" }, notes = "检查页面")
......@@ -233,8 +234,8 @@ public class DstViewResource {
@ApiOperation(value = "根据应用获取页面草稿", tags = {"页面" }, notes = "根据应用获取页面草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstapps/{dstapp_id}/dstviews/getdraft")
public ResponseEntity<DstViewDTO> getDraftByDstApp(@PathVariable("dstapp_id") String dstapp_id) {
DstView domain = new DstView();
public ResponseEntity<DstViewDTO> getDraftByDstApp(@PathVariable("dstapp_id") String dstapp_id, DstViewDTO dto) {
DstView domain = dstviewMapping.toDomain(dto);
domain.setAppId(dstapp_id);
return ResponseEntity.status(HttpStatus.OK).body(dstviewMapping.toDto(dstviewService.getDraft(domain)));
}
......@@ -363,8 +364,8 @@ public class DstViewResource {
@ApiOperation(value = "根据系统应用获取页面草稿", tags = {"页面" }, notes = "根据系统应用获取页面草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstsystems/{dstsystem_id}/dstapps/{dstapp_id}/dstviews/getdraft")
public ResponseEntity<DstViewDTO> getDraftByDstSystemDstApp(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("dstapp_id") String dstapp_id) {
DstView domain = new DstView();
public ResponseEntity<DstViewDTO> getDraftByDstSystemDstApp(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("dstapp_id") String dstapp_id, DstViewDTO dto) {
DstView domain = dstviewMapping.toDomain(dto);
domain.setAppId(dstapp_id);
return ResponseEntity.status(HttpStatus.OK).body(dstviewMapping.toDto(dstviewService.getDraft(domain)));
}
......
......@@ -110,8 +110,9 @@ public class DynamicModelConfigResource {
@ApiOperation(value = "获取动态模型配置草稿", tags = {"动态模型配置" }, notes = "获取动态模型配置草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dynamicmodelconfigs/getdraft")
public ResponseEntity<DynamicModelConfigDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(dynamicmodelconfigMapping.toDto(dynamicmodelconfigService.getDraft(new DynamicModelConfig())));
public ResponseEntity<DynamicModelConfigDTO> getDraft(DynamicModelConfigDTO dto) {
DynamicModelConfig domain = dynamicmodelconfigMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(dynamicmodelconfigMapping.toDto(dynamicmodelconfigService.getDraft(domain)));
}
@ApiOperation(value = "检查动态模型配置", tags = {"动态模型配置" }, notes = "检查动态模型配置")
......
......@@ -110,8 +110,9 @@ public class MetaDataSetResource {
@ApiOperation(value = "获取数据集草稿", tags = {"数据集" }, notes = "获取数据集草稿")
@RequestMapping(method = RequestMethod.GET, value = "/metadatasets/getdraft")
public ResponseEntity<MetaDataSetDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(metadatasetMapping.toDto(metadatasetService.getDraft(new MetaDataSet())));
public ResponseEntity<MetaDataSetDTO> getDraft(MetaDataSetDTO dto) {
MetaDataSet domain = metadatasetMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(metadatasetMapping.toDto(metadatasetService.getDraft(domain)));
}
@ApiOperation(value = "检查数据集", tags = {"数据集" }, notes = "检查数据集")
......@@ -231,8 +232,8 @@ public class MetaDataSetResource {
@ApiOperation(value = "根据实体获取数据集草稿", tags = {"数据集" }, notes = "根据实体获取数据集草稿")
@RequestMapping(method = RequestMethod.GET, value = "/metaentities/{metaentity_id}/metadatasets/getdraft")
public ResponseEntity<MetaDataSetDTO> getDraftByMetaEntity(@PathVariable("metaentity_id") String metaentity_id) {
MetaDataSet domain = new MetaDataSet();
public ResponseEntity<MetaDataSetDTO> getDraftByMetaEntity(@PathVariable("metaentity_id") String metaentity_id, MetaDataSetDTO dto) {
MetaDataSet domain = metadatasetMapping.toDomain(dto);
domain.setEntityId(metaentity_id);
return ResponseEntity.status(HttpStatus.OK).body(metadatasetMapping.toDto(metadatasetService.getDraft(domain)));
}
......@@ -360,8 +361,8 @@ public class MetaDataSetResource {
@ApiOperation(value = "根据系统实体获取数据集草稿", tags = {"数据集" }, notes = "根据系统实体获取数据集草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstsystems/{dstsystem_id}/metaentities/{metaentity_id}/metadatasets/getdraft")
public ResponseEntity<MetaDataSetDTO> getDraftByDstSystemMetaEntity(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("metaentity_id") String metaentity_id) {
MetaDataSet domain = new MetaDataSet();
public ResponseEntity<MetaDataSetDTO> getDraftByDstSystemMetaEntity(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("metaentity_id") String metaentity_id, MetaDataSetDTO dto) {
MetaDataSet domain = metadatasetMapping.toDomain(dto);
domain.setEntityId(metaentity_id);
return ResponseEntity.status(HttpStatus.OK).body(metadatasetMapping.toDto(metadatasetService.getDraft(domain)));
}
......
......@@ -111,8 +111,9 @@ public class MetaEntityResource {
@ApiOperation(value = "获取实体草稿", tags = {"实体" }, notes = "获取实体草稿")
@RequestMapping(method = RequestMethod.GET, value = "/metaentities/getdraft")
public ResponseEntity<MetaEntityDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(metaentityMapping.toDto(metaentityService.getDraft(new MetaEntity())));
public ResponseEntity<MetaEntityDTO> getDraft(MetaEntityDTO dto) {
MetaEntity domain = metaentityMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(metaentityMapping.toDto(metaentityService.getDraft(domain)));
}
@ApiOperation(value = "检查实体", tags = {"实体" }, notes = "检查实体")
......@@ -271,8 +272,8 @@ public class MetaEntityResource {
@ApiOperation(value = "根据系统获取实体草稿", tags = {"实体" }, notes = "根据系统获取实体草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstsystems/{dstsystem_id}/metaentities/getdraft")
public ResponseEntity<MetaEntityDTO> getDraftByDstSystem(@PathVariable("dstsystem_id") String dstsystem_id) {
MetaEntity domain = new MetaEntity();
public ResponseEntity<MetaEntityDTO> getDraftByDstSystem(@PathVariable("dstsystem_id") String dstsystem_id, MetaEntityDTO dto) {
MetaEntity domain = metaentityMapping.toDomain(dto);
domain.setSystemId(dstsystem_id);
return ResponseEntity.status(HttpStatus.OK).body(metaentityMapping.toDto(metaentityService.getDraft(domain)));
}
......
......@@ -111,8 +111,9 @@ public class MetaFieldResource {
@ApiOperation(value = "获取属性草稿", tags = {"属性" }, notes = "获取属性草稿")
@RequestMapping(method = RequestMethod.GET, value = "/metafields/getdraft")
public ResponseEntity<MetaFieldDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(metafieldMapping.toDto(metafieldService.getDraft(new MetaField())));
public ResponseEntity<MetaFieldDTO> getDraft(MetaFieldDTO dto) {
MetaField domain = metafieldMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(metafieldMapping.toDto(metafieldService.getDraft(domain)));
}
@ApiOperation(value = "检查属性", tags = {"属性" }, notes = "检查属性")
......@@ -233,8 +234,8 @@ public class MetaFieldResource {
@ApiOperation(value = "根据实体获取属性草稿", tags = {"属性" }, notes = "根据实体获取属性草稿")
@RequestMapping(method = RequestMethod.GET, value = "/metaentities/{metaentity_id}/metafields/getdraft")
public ResponseEntity<MetaFieldDTO> getDraftByMetaEntity(@PathVariable("metaentity_id") String metaentity_id) {
MetaField domain = new MetaField();
public ResponseEntity<MetaFieldDTO> getDraftByMetaEntity(@PathVariable("metaentity_id") String metaentity_id, MetaFieldDTO dto) {
MetaField domain = metafieldMapping.toDomain(dto);
domain.setEntityId(metaentity_id);
return ResponseEntity.status(HttpStatus.OK).body(metafieldMapping.toDto(metafieldService.getDraft(domain)));
}
......@@ -363,8 +364,8 @@ public class MetaFieldResource {
@ApiOperation(value = "根据系统实体获取属性草稿", tags = {"属性" }, notes = "根据系统实体获取属性草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstsystems/{dstsystem_id}/metaentities/{metaentity_id}/metafields/getdraft")
public ResponseEntity<MetaFieldDTO> getDraftByDstSystemMetaEntity(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("metaentity_id") String metaentity_id) {
MetaField domain = new MetaField();
public ResponseEntity<MetaFieldDTO> getDraftByDstSystemMetaEntity(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("metaentity_id") String metaentity_id, MetaFieldDTO dto) {
MetaField domain = metafieldMapping.toDomain(dto);
domain.setEntityId(metaentity_id);
return ResponseEntity.status(HttpStatus.OK).body(metafieldMapping.toDto(metafieldService.getDraft(domain)));
}
......
......@@ -111,8 +111,9 @@ public class MetaModelResource {
@ApiOperation(value = "获取模型草稿", tags = {"模型" }, notes = "获取模型草稿")
@RequestMapping(method = RequestMethod.GET, value = "/metamodels/getdraft")
public ResponseEntity<MetaModelDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(metamodelMapping.toDto(metamodelService.getDraft(new MetaModel())));
public ResponseEntity<MetaModelDTO> getDraft(MetaModelDTO dto) {
MetaModel domain = metamodelMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(metamodelMapping.toDto(metamodelService.getDraft(domain)));
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzlite-MetaModel-Change-all')")
......
......@@ -110,8 +110,9 @@ public class MetaModuleResource {
@ApiOperation(value = "获取模块草稿", tags = {"模块" }, notes = "获取模块草稿")
@RequestMapping(method = RequestMethod.GET, value = "/metamodules/getdraft")
public ResponseEntity<MetaModuleDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(metamoduleMapping.toDto(metamoduleService.getDraft(new MetaModule())));
public ResponseEntity<MetaModuleDTO> getDraft(MetaModuleDTO dto) {
MetaModule domain = metamoduleMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(metamoduleMapping.toDto(metamoduleService.getDraft(domain)));
}
@ApiOperation(value = "检查模块", tags = {"模块" }, notes = "检查模块")
......
......@@ -111,8 +111,9 @@ public class MetaRelationshipResource {
@ApiOperation(value = "获取实体关系草稿", tags = {"实体关系" }, notes = "获取实体关系草稿")
@RequestMapping(method = RequestMethod.GET, value = "/metarelationships/getdraft")
public ResponseEntity<MetaRelationshipDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(metarelationshipMapping.toDto(metarelationshipService.getDraft(new MetaRelationship())));
public ResponseEntity<MetaRelationshipDTO> getDraft(MetaRelationshipDTO dto) {
MetaRelationship domain = metarelationshipMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(metarelationshipMapping.toDto(metarelationshipService.getDraft(domain)));
}
@ApiOperation(value = "检查实体关系", tags = {"实体关系" }, notes = "检查实体关系")
......@@ -252,8 +253,8 @@ public class MetaRelationshipResource {
@ApiOperation(value = "根据实体获取实体关系草稿", tags = {"实体关系" }, notes = "根据实体获取实体关系草稿")
@RequestMapping(method = RequestMethod.GET, value = "/metaentities/{metaentity_id}/metarelationships/getdraft")
public ResponseEntity<MetaRelationshipDTO> getDraftByMetaEntity(@PathVariable("metaentity_id") String metaentity_id) {
MetaRelationship domain = new MetaRelationship();
public ResponseEntity<MetaRelationshipDTO> getDraftByMetaEntity(@PathVariable("metaentity_id") String metaentity_id, MetaRelationshipDTO dto) {
MetaRelationship domain = metarelationshipMapping.toDomain(dto);
domain.setEntityId(metaentity_id);
return ResponseEntity.status(HttpStatus.OK).body(metarelationshipMapping.toDto(metarelationshipService.getDraft(domain)));
}
......@@ -399,8 +400,8 @@ public class MetaRelationshipResource {
@ApiOperation(value = "根据系统实体获取实体关系草稿", tags = {"实体关系" }, notes = "根据系统实体获取实体关系草稿")
@RequestMapping(method = RequestMethod.GET, value = "/dstsystems/{dstsystem_id}/metaentities/{metaentity_id}/metarelationships/getdraft")
public ResponseEntity<MetaRelationshipDTO> getDraftByDstSystemMetaEntity(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("metaentity_id") String metaentity_id) {
MetaRelationship domain = new MetaRelationship();
public ResponseEntity<MetaRelationshipDTO> getDraftByDstSystemMetaEntity(@PathVariable("dstsystem_id") String dstsystem_id, @PathVariable("metaentity_id") String metaentity_id, MetaRelationshipDTO dto) {
MetaRelationship domain = metarelationshipMapping.toDomain(dto);
domain.setEntityId(metaentity_id);
return ResponseEntity.status(HttpStatus.OK).body(metarelationshipMapping.toDto(metarelationshipService.getDraft(domain)));
}
......
......@@ -8,6 +8,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.util.StringUtils;
import org.springframework.util.ObjectUtils;
import java.util.Map;
import cn.ibizlab.util.cache.cache.LayeringCache;
import cn.ibizlab.util.enums.RedisChannelTopic;
......@@ -34,20 +35,25 @@ public class RedisMessageListener extends MessageListenerAdapter {
if(result instanceof Map){
map= (Map<String, Object>) result;
}
if(StringUtils.isEmpty(map)|| (!map.containsKey("cacheName"))|| (!map.containsKey("key"))){
if(StringUtils.isEmpty(map)|| (!map.containsKey("cacheName"))){
log.debug("解析缓存数据失败,无法获取指定值!");
return ;
}
log.debug("redis消息订阅者接收到频道【{}】发布的消息。消息内容:{}", channelTopic.getChannelTopicStr(), result.toString());
String cacheName = (String) map.get("cacheName");
Object key = map.get("key");
Cache cache = cacheManager.getCache(cacheName);// 根据缓存名称获取多级缓存
if (cache != null && cache instanceof LayeringCache) { // 判断缓存是否是多级缓存
switch (channelTopic) {
case REDIS_CACHE_DELETE_TOPIC: // 获取一级缓存,并删除一级缓存数据
((LayeringCache) cache).getFirstCache().evict(key);
((LayeringCache) cache).getSecondCache().evict(key);
log.debug("同步删除缓存{}数据,key:{},", cacheName, key.toString());
Object cacheKey = map.get("key");
if(!ObjectUtils.isEmpty(cacheKey)){
((LayeringCache) cache).getFirstCache().evict(cacheKey);
((LayeringCache) cache).getSecondCache().evict(cacheKey);
log.debug("同步删除缓存{}数据,key:{},", cacheName, cacheKey.toString());
}
else{
log.debug("同步删除缓存失败,{}缓存键值为空!",cacheName);
}
break;
case REDIS_CACHE_CLEAR_TOPIC:// 获取一级缓存,并删除一级缓存数据
((LayeringCache) cache).getFirstCache().clear();
......
......@@ -292,6 +292,27 @@ public class StaticDict {
}
/**
* 代码表[动态模型导入状态]
*/
@Getter
public enum DynamicModelStatus {
ITEM_0("0","未导入"),
ITEM_1("1","已导入");
private String value;
private String text;
private String valueSeparator="";
private String textSeparator="";
private String emptyText="";
DynamicModelStatus(String value , String text) {
this.value=value;
this.text = text;
}
}
/**
* 代码表[代码发布路径]
*/
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册