mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 12:56:28 +08:00
5.0
This commit is contained in:
@@ -1,2 +1,8 @@
|
||||
|
||||
dubbo.registry.address=nacos://localhost:8848
|
||||
|
||||
mybatis.print-sql=true
|
||||
|
||||
# mysql config
|
||||
mysql.host=127.0.0.1:3306
|
||||
mysql.username=root
|
||||
mysql.password=root
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { computed, ref } from "vue";
|
||||
import { computed, onMounted, ref } from "vue";
|
||||
import {
|
||||
type ButtonsCallBackParams,
|
||||
type PageInfo,
|
||||
@@ -11,392 +11,416 @@ import { api } from "@/api/serveApi";
|
||||
import { hasPerms } from "@/utils/auth";
|
||||
import { PermCode } from "@/utils/perm";
|
||||
|
||||
const isAdd = ref(false);
|
||||
export function useServeApi() {
|
||||
const isAdd = ref(false);
|
||||
|
||||
// ========= search form =========
|
||||
// ========= search form =========
|
||||
|
||||
// 查询表单对象
|
||||
export const searchFormData = ref({
|
||||
apiName: "",
|
||||
status: "",
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
});
|
||||
|
||||
// 查询表单字段定义
|
||||
export const searchFormColumns: PlusColumn[] = [
|
||||
{
|
||||
label: "接口名称",
|
||||
prop: "apiName"
|
||||
},
|
||||
{
|
||||
label: "状态",
|
||||
prop: "status",
|
||||
width: 80,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "启用",
|
||||
value: StatusEnum.ENABLE,
|
||||
color: "green"
|
||||
},
|
||||
{
|
||||
label: "禁用",
|
||||
value: StatusEnum.DISABLE,
|
||||
color: "red"
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
// ========= table =========
|
||||
|
||||
// 表格对象
|
||||
export const {
|
||||
tableData,
|
||||
total,
|
||||
pageInfo,
|
||||
buttons: actionButtons
|
||||
} = useTable<any[]>();
|
||||
// 默认每页条数,默认10
|
||||
pageInfo.value.pageSize = 10;
|
||||
|
||||
// 表格字段定义
|
||||
export const tableColumns: PlusColumn[] = [
|
||||
{
|
||||
label: "所属应用",
|
||||
prop: "application",
|
||||
minWidth: 150
|
||||
},
|
||||
{
|
||||
label: "接口名称",
|
||||
prop: "apiName",
|
||||
minWidth: 200
|
||||
},
|
||||
{
|
||||
label: "版本号",
|
||||
prop: "apiVersion",
|
||||
minWidth: 80
|
||||
},
|
||||
{
|
||||
label: "接口描述",
|
||||
prop: "description",
|
||||
minWidth: 100
|
||||
},
|
||||
{
|
||||
label: "备注",
|
||||
prop: "remark"
|
||||
},
|
||||
{
|
||||
label: "需要授权",
|
||||
prop: "isPermission",
|
||||
width: 100,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "否",
|
||||
value: 0
|
||||
},
|
||||
{
|
||||
label: "是",
|
||||
value: 1,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "需要token",
|
||||
prop: "isNeedToken",
|
||||
width: 100,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "否",
|
||||
value: 0
|
||||
},
|
||||
{
|
||||
label: "是",
|
||||
value: 1,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "公共参数",
|
||||
prop: "hasCommonResponse",
|
||||
width: 100,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "无",
|
||||
value: 0,
|
||||
color: "red"
|
||||
},
|
||||
{
|
||||
label: "有",
|
||||
value: 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "注册来源",
|
||||
prop: "regSource",
|
||||
width: 100,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "系统",
|
||||
value: 1,
|
||||
color: "blue"
|
||||
},
|
||||
{
|
||||
label: "手动",
|
||||
value: 2,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "状态",
|
||||
prop: "status",
|
||||
width: 80,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "启用",
|
||||
value: StatusEnum.ENABLE,
|
||||
color: "green"
|
||||
},
|
||||
{
|
||||
label: "禁用",
|
||||
value: StatusEnum.DISABLE,
|
||||
color: "red"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
width: 120,
|
||||
label: "添加时间",
|
||||
prop: "addTime"
|
||||
},
|
||||
{
|
||||
width: 120,
|
||||
label: "修改时间",
|
||||
prop: "updateTime"
|
||||
}
|
||||
];
|
||||
// 表格按钮权限
|
||||
const btnCode = PermCode.api;
|
||||
// 表格按钮定义
|
||||
actionButtons.value = [
|
||||
{
|
||||
// 修改
|
||||
text: "修改",
|
||||
code: "edit",
|
||||
props: {
|
||||
type: "primary"
|
||||
},
|
||||
onClick(params: ButtonsCallBackParams) {
|
||||
isAdd.value = false;
|
||||
editFormData.value = Object.assign({}, params.row);
|
||||
dlgTitle.value = "修改接口";
|
||||
dlgShow.value = true;
|
||||
},
|
||||
show: () => hasPerms(btnCode.update)
|
||||
},
|
||||
{
|
||||
// 启用/禁用
|
||||
text: row => (row.status === StatusEnum.ENABLE ? "禁用" : "启用"),
|
||||
code: "delete",
|
||||
confirm: {
|
||||
message: data => {
|
||||
const opt = data.row.status === StatusEnum.ENABLE ? "禁用" : "启用";
|
||||
return `确定${opt}吗?`;
|
||||
},
|
||||
options: { draggable: false }
|
||||
},
|
||||
onConfirm(params: ButtonsCallBackParams) {
|
||||
const data = {
|
||||
id: params.row.id,
|
||||
status:
|
||||
params.row.status === StatusEnum.ENABLE
|
||||
? StatusEnum.DISABLE
|
||||
: StatusEnum.ENABLE
|
||||
};
|
||||
api.updateStatus(data).then(() => {
|
||||
ElMessage.success("修改成功");
|
||||
search();
|
||||
});
|
||||
},
|
||||
show: () => hasPerms(btnCode.updateStatus)
|
||||
}
|
||||
];
|
||||
|
||||
// ========= dialog form =========
|
||||
|
||||
// 弹窗显示
|
||||
export const dlgShow = ref(false);
|
||||
export const dlgTitle = ref("");
|
||||
// 表单值
|
||||
const editFormDataGen = () => {
|
||||
return {
|
||||
application: "",
|
||||
// 查询表单对象
|
||||
const searchFormData = ref({
|
||||
apiName: "",
|
||||
apiVersion: "",
|
||||
status: 1,
|
||||
isPermission: 0,
|
||||
description: "",
|
||||
regSource: RegSource.CUSTOM,
|
||||
isNeedToken: 0
|
||||
};
|
||||
};
|
||||
status: "",
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
});
|
||||
|
||||
export const editFormData = ref<any>(editFormDataGen());
|
||||
export const editFormRules = {
|
||||
application: [{ required: true, message: "请输入应用名称" }],
|
||||
apiName: [{ required: true, message: "请输入接口名称" }],
|
||||
apiVersion: [{ required: true, message: "请输入版本号" }]
|
||||
};
|
||||
export const isCustomRegSource = computed(() => {
|
||||
return editFormData.value.regSource === RegSource.CUSTOM;
|
||||
});
|
||||
|
||||
// 表单内容
|
||||
export const editFormColumns: PlusColumn[] = [
|
||||
{
|
||||
label: "所属应用",
|
||||
prop: "application",
|
||||
valueType: "text"
|
||||
},
|
||||
{
|
||||
label: "接口名称",
|
||||
prop: "apiName",
|
||||
valueType: "text"
|
||||
},
|
||||
{
|
||||
label: "版本号",
|
||||
prop: "apiVersion",
|
||||
valueType: "text"
|
||||
},
|
||||
{
|
||||
label: "接口描述",
|
||||
prop: "description",
|
||||
valueType: "text"
|
||||
},
|
||||
{
|
||||
label: "备注",
|
||||
prop: "remark",
|
||||
valueType: "textarea",
|
||||
fieldProps: {
|
||||
maxlength: 5000,
|
||||
showWordLimit: true,
|
||||
autosize: { minRows: 2, maxRows: 4 }
|
||||
// 查询表单字段定义
|
||||
const searchFormColumns: PlusColumn[] = [
|
||||
{
|
||||
label: "接口名称",
|
||||
prop: "apiName"
|
||||
},
|
||||
{
|
||||
label: "状态",
|
||||
prop: "status",
|
||||
width: 80,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "启用",
|
||||
value: StatusEnum.ENABLE,
|
||||
color: "green"
|
||||
},
|
||||
{
|
||||
label: "禁用",
|
||||
value: StatusEnum.DISABLE,
|
||||
color: "red"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "需要授权",
|
||||
prop: "isPermission",
|
||||
valueType: "radio",
|
||||
options: [
|
||||
{
|
||||
label: "否",
|
||||
value: YesOrNoEnum.NO,
|
||||
color: "red"
|
||||
},
|
||||
{
|
||||
label: "是",
|
||||
value: YesOrNoEnum.YES,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "需要token",
|
||||
prop: "isNeedToken",
|
||||
valueType: "radio",
|
||||
options: [
|
||||
{
|
||||
label: "否",
|
||||
value: YesOrNoEnum.NO,
|
||||
color: "red"
|
||||
},
|
||||
{
|
||||
label: "是",
|
||||
value: YesOrNoEnum.YES,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "状态",
|
||||
prop: "status",
|
||||
valueType: "radio",
|
||||
options: [
|
||||
{
|
||||
label: "禁用",
|
||||
value: StatusEnum.DISABLE,
|
||||
color: "red"
|
||||
},
|
||||
{
|
||||
label: "启用",
|
||||
value: StatusEnum.ENABLE,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
];
|
||||
|
||||
// ========= event =========
|
||||
// ========= table =========
|
||||
|
||||
// 添加按钮事件
|
||||
export const handleAdd = () => {
|
||||
isAdd.value = true;
|
||||
editFormData.value = editFormDataGen();
|
||||
dlgTitle.value = "新增接口";
|
||||
dlgShow.value = true;
|
||||
};
|
||||
// 表格对象
|
||||
const {
|
||||
tableData,
|
||||
total,
|
||||
pageInfo,
|
||||
buttons: actionButtons
|
||||
} = useTable<any[]>();
|
||||
// 默认每页条数,默认10
|
||||
pageInfo.value.pageSize = 10;
|
||||
|
||||
// 保存按钮事件,校验成功后触发
|
||||
export const handleSave = () => {
|
||||
const postData = editFormData.value;
|
||||
const pms = isAdd.value ? api.add(postData) : api.update(postData);
|
||||
pms.then(() => {
|
||||
ElMessage.success("保存成功");
|
||||
dlgShow.value = false;
|
||||
// 表格字段定义
|
||||
const tableColumns: PlusColumn[] = [
|
||||
{
|
||||
label: "所属应用",
|
||||
prop: "application",
|
||||
minWidth: 150
|
||||
},
|
||||
{
|
||||
label: "接口名称",
|
||||
prop: "apiName",
|
||||
minWidth: 200
|
||||
},
|
||||
{
|
||||
label: "版本号",
|
||||
prop: "apiVersion",
|
||||
minWidth: 80
|
||||
},
|
||||
{
|
||||
label: "接口描述",
|
||||
prop: "description",
|
||||
minWidth: 100
|
||||
},
|
||||
{
|
||||
label: "备注",
|
||||
prop: "remark"
|
||||
},
|
||||
{
|
||||
label: "需要授权",
|
||||
prop: "isPermission",
|
||||
width: 100,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "否",
|
||||
value: 0
|
||||
},
|
||||
{
|
||||
label: "是",
|
||||
value: 1,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "需要token",
|
||||
prop: "isNeedToken",
|
||||
width: 100,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "否",
|
||||
value: 0
|
||||
},
|
||||
{
|
||||
label: "是",
|
||||
value: 1,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "公共参数",
|
||||
prop: "hasCommonResponse",
|
||||
width: 100,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "无",
|
||||
value: 0,
|
||||
color: "red"
|
||||
},
|
||||
{
|
||||
label: "有",
|
||||
value: 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "注册来源",
|
||||
prop: "regSource",
|
||||
width: 100,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "系统",
|
||||
value: 1,
|
||||
color: "blue"
|
||||
},
|
||||
{
|
||||
label: "手动",
|
||||
value: 2,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "状态",
|
||||
prop: "status",
|
||||
width: 80,
|
||||
valueType: "select",
|
||||
options: [
|
||||
{
|
||||
label: "启用",
|
||||
value: StatusEnum.ENABLE,
|
||||
color: "green"
|
||||
},
|
||||
{
|
||||
label: "禁用",
|
||||
value: StatusEnum.DISABLE,
|
||||
color: "red"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
width: 120,
|
||||
label: "添加时间",
|
||||
prop: "addTime"
|
||||
},
|
||||
{
|
||||
width: 120,
|
||||
label: "修改时间",
|
||||
prop: "updateTime"
|
||||
}
|
||||
];
|
||||
// 表格按钮权限
|
||||
const btnCode = PermCode.api;
|
||||
// 表格按钮定义
|
||||
actionButtons.value = [
|
||||
{
|
||||
// 修改
|
||||
text: "修改",
|
||||
code: "edit",
|
||||
props: {
|
||||
type: "primary"
|
||||
},
|
||||
onClick(params: ButtonsCallBackParams) {
|
||||
isAdd.value = false;
|
||||
editFormData.value = Object.assign({}, params.row);
|
||||
dlgTitle.value = "修改接口";
|
||||
dlgShow.value = true;
|
||||
},
|
||||
show: () => hasPerms(btnCode.update)
|
||||
},
|
||||
{
|
||||
// 启用/禁用
|
||||
text: row => (row.status === StatusEnum.ENABLE ? "禁用" : "启用"),
|
||||
code: "delete",
|
||||
confirm: {
|
||||
message: data => {
|
||||
const opt = data.row.status === StatusEnum.ENABLE ? "禁用" : "启用";
|
||||
return `确定${opt}吗?`;
|
||||
},
|
||||
options: { draggable: false }
|
||||
},
|
||||
onConfirm(params: ButtonsCallBackParams) {
|
||||
const data = {
|
||||
id: params.row.id,
|
||||
status:
|
||||
params.row.status === StatusEnum.ENABLE
|
||||
? StatusEnum.DISABLE
|
||||
: StatusEnum.ENABLE
|
||||
};
|
||||
api.updateStatus(data).then(() => {
|
||||
ElMessage.success("修改成功");
|
||||
search();
|
||||
});
|
||||
},
|
||||
show: () => hasPerms(btnCode.updateStatus)
|
||||
}
|
||||
];
|
||||
|
||||
// ========= dialog form =========
|
||||
|
||||
// 弹窗显示
|
||||
const dlgShow = ref(false);
|
||||
const dlgTitle = ref("");
|
||||
// 表单值
|
||||
const editFormDataGen = () => {
|
||||
return {
|
||||
application: "",
|
||||
apiName: "",
|
||||
apiVersion: "",
|
||||
status: 1,
|
||||
isPermission: 0,
|
||||
description: "",
|
||||
regSource: RegSource.CUSTOM,
|
||||
isNeedToken: 0
|
||||
};
|
||||
};
|
||||
|
||||
const editFormData = ref<any>(editFormDataGen());
|
||||
const editFormRules = {
|
||||
application: [{ required: true, message: "请输入应用名称" }],
|
||||
apiName: [{ required: true, message: "请输入接口名称" }],
|
||||
apiVersion: [{ required: true, message: "请输入版本号" }]
|
||||
};
|
||||
const isCustomRegSource = computed(() => {
|
||||
return editFormData.value.regSource === RegSource.CUSTOM;
|
||||
});
|
||||
|
||||
// 表单内容
|
||||
const editFormColumns: PlusColumn[] = [
|
||||
{
|
||||
label: "所属应用",
|
||||
prop: "application",
|
||||
valueType: "text"
|
||||
},
|
||||
{
|
||||
label: "接口名称",
|
||||
prop: "apiName",
|
||||
valueType: "text"
|
||||
},
|
||||
{
|
||||
label: "版本号",
|
||||
prop: "apiVersion",
|
||||
valueType: "text"
|
||||
},
|
||||
{
|
||||
label: "接口描述",
|
||||
prop: "description",
|
||||
valueType: "text"
|
||||
},
|
||||
{
|
||||
label: "备注",
|
||||
prop: "remark",
|
||||
valueType: "textarea",
|
||||
fieldProps: {
|
||||
maxlength: 5000,
|
||||
showWordLimit: true,
|
||||
autosize: { minRows: 2, maxRows: 4 }
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "需要授权",
|
||||
prop: "isPermission",
|
||||
valueType: "radio",
|
||||
options: [
|
||||
{
|
||||
label: "否",
|
||||
value: YesOrNoEnum.NO,
|
||||
color: "red"
|
||||
},
|
||||
{
|
||||
label: "是",
|
||||
value: YesOrNoEnum.YES,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "需要token",
|
||||
prop: "isNeedToken",
|
||||
valueType: "radio",
|
||||
options: [
|
||||
{
|
||||
label: "否",
|
||||
value: YesOrNoEnum.NO,
|
||||
color: "red"
|
||||
},
|
||||
{
|
||||
label: "是",
|
||||
value: YesOrNoEnum.YES,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "状态",
|
||||
prop: "status",
|
||||
valueType: "radio",
|
||||
options: [
|
||||
{
|
||||
label: "禁用",
|
||||
value: StatusEnum.DISABLE,
|
||||
color: "red"
|
||||
},
|
||||
{
|
||||
label: "启用",
|
||||
value: StatusEnum.ENABLE,
|
||||
color: "green"
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
// ========= event =========
|
||||
|
||||
// 添加按钮事件
|
||||
const handleAdd = () => {
|
||||
isAdd.value = true;
|
||||
editFormData.value = editFormDataGen();
|
||||
dlgTitle.value = "新增接口";
|
||||
dlgShow.value = true;
|
||||
};
|
||||
|
||||
// 保存按钮事件,校验成功后触发
|
||||
const handleSave = () => {
|
||||
const postData = editFormData.value;
|
||||
const pms = isAdd.value ? api.add(postData) : api.update(postData);
|
||||
pms.then(() => {
|
||||
ElMessage.success("保存成功");
|
||||
dlgShow.value = false;
|
||||
search();
|
||||
});
|
||||
};
|
||||
|
||||
// 点击查询按钮
|
||||
const handleSearch = () => {
|
||||
pageInfo.value.page = 1;
|
||||
search();
|
||||
};
|
||||
|
||||
// 分页事件
|
||||
const handlePaginationChange = (_pageInfo: PageInfo): void => {
|
||||
pageInfo.value = _pageInfo;
|
||||
search();
|
||||
};
|
||||
|
||||
// 查询
|
||||
const search = async () => {
|
||||
try {
|
||||
const { data } = await doSearch();
|
||||
tableData.value = data.list;
|
||||
total.value = data.total;
|
||||
} catch (error) {}
|
||||
};
|
||||
// 请求接口
|
||||
const doSearch = async () => {
|
||||
// 查询参数
|
||||
const data = searchFormData.value;
|
||||
// 添加分页参数
|
||||
data.pageIndex = pageInfo.value.page;
|
||||
data.pageSize = pageInfo.value.pageSize;
|
||||
|
||||
return api.page(data);
|
||||
};
|
||||
|
||||
// 页面加载
|
||||
onMounted(() => {
|
||||
search();
|
||||
});
|
||||
};
|
||||
|
||||
// 点击查询按钮
|
||||
export const handleSearch = () => {
|
||||
pageInfo.value.page = 1;
|
||||
search();
|
||||
};
|
||||
|
||||
// 分页事件
|
||||
export const handlePaginationChange = (_pageInfo: PageInfo): void => {
|
||||
pageInfo.value = _pageInfo;
|
||||
search();
|
||||
};
|
||||
|
||||
// 查询
|
||||
export const search = async () => {
|
||||
try {
|
||||
const { data } = await doSearch();
|
||||
tableData.value = data.list;
|
||||
total.value = data.total;
|
||||
} catch (error) {}
|
||||
};
|
||||
// 请求接口
|
||||
const doSearch = async () => {
|
||||
// 查询参数
|
||||
const data = searchFormData.value;
|
||||
// 添加分页参数
|
||||
data.pageIndex = pageInfo.value.page;
|
||||
data.pageSize = pageInfo.value.pageSize;
|
||||
|
||||
return api.page(data);
|
||||
};
|
||||
|
||||
// 页面加载
|
||||
search();
|
||||
return {
|
||||
actionButtons,
|
||||
dlgShow,
|
||||
dlgTitle,
|
||||
editFormColumns,
|
||||
editFormData,
|
||||
editFormRules,
|
||||
handleAdd,
|
||||
handlePaginationChange,
|
||||
handleSave,
|
||||
handleSearch,
|
||||
isCustomRegSource,
|
||||
pageInfo,
|
||||
searchFormColumns,
|
||||
searchFormData,
|
||||
tableColumns,
|
||||
tableData,
|
||||
total
|
||||
};
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import {
|
||||
import { useServeApi } from "./index";
|
||||
const {
|
||||
actionButtons,
|
||||
dlgShow,
|
||||
dlgTitle,
|
||||
@@ -17,7 +18,7 @@ import {
|
||||
tableColumns,
|
||||
tableData,
|
||||
total
|
||||
} from "./index";
|
||||
} = useServeApi();
|
||||
defineOptions({
|
||||
name: "ServeApi"
|
||||
});
|
||||
|
@@ -34,7 +34,8 @@ public interface OpenStory {
|
||||
@Open("story.get")
|
||||
StoryResponse getById(@NotNull(message = "id必填") Integer id);
|
||||
|
||||
@Open(value = "story.get", version = "2.0")
|
||||
// 需要授权
|
||||
@Open(value = "story.get", version = "2.0", permission = true)
|
||||
StoryResponse getByIdV2(Long id);
|
||||
|
||||
@Open(value = "story.get.context")
|
||||
|
@@ -1,2 +1 @@
|
||||
|
||||
dubbo.registry.address=nacos://localhost:8848
|
||||
|
@@ -39,12 +39,6 @@
|
||||
<artifactId>dubbo-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- nacos注册中心 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.dubbo</groupId>
|
||||
<artifactId>dubbo-nacos-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.gitee.durcframework</groupId>
|
||||
<artifactId>fastmybatis-spring-boot-starter</artifactId>
|
||||
@@ -65,6 +59,11 @@
|
||||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- nacos注册中心 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.dubbo</groupId>
|
||||
<artifactId>dubbo-nacos-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
@@ -89,6 +88,11 @@
|
||||
<artifactId>jackson-dataformat-xml</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- test-->
|
||||
|
||||
<dependency>
|
||||
|
@@ -9,9 +9,21 @@ import lombok.Getter;
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum StatusEnum {
|
||||
NONE(0),
|
||||
ENABLE(1),
|
||||
DISABLE(2);
|
||||
|
||||
private final int value;
|
||||
|
||||
public static StatusEnum of(Number number) {
|
||||
if (number == null) {
|
||||
return NONE;
|
||||
}
|
||||
for (StatusEnum value : StatusEnum.values()) {
|
||||
if (value.value == number.intValue()) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return NONE;
|
||||
}
|
||||
}
|
||||
|
@@ -35,8 +35,8 @@ public class RedisIsvApiPermissionManagerImpl extends LocalIsvApiPermissionManag
|
||||
|
||||
@Override
|
||||
public boolean doCheck(Long isvId, ApiInfoDTO apiInfoDTO) {
|
||||
BoundHashOperations<String, Object, String> operations = stringRedisTemplate.boundHashOps(CACHE_KEY);
|
||||
String value = operations.get(isvId);
|
||||
BoundHashOperations<String, String, String> operations = stringRedisTemplate.boundHashOps(CACHE_KEY);
|
||||
String value = operations.get(String.valueOf(isvId));
|
||||
if (Objects.equals(value, SopConstants.NULL)) {
|
||||
return false;
|
||||
}
|
||||
@@ -53,7 +53,7 @@ public class RedisIsvApiPermissionManagerImpl extends LocalIsvApiPermissionManag
|
||||
|
||||
@Override
|
||||
protected void cache(Long isvId, List<Long> apiIdList) {
|
||||
stringRedisTemplate.opsForHash().put(CACHE_KEY, isvId, JsonUtil.toJSONString(apiIdList));
|
||||
stringRedisTemplate.opsForHash().put(CACHE_KEY, String.valueOf(isvId), JsonUtil.toJSONString(apiIdList));
|
||||
log.info("更新isv接口id redis缓存, isvId={}, apiIdList={}", isvId, apiIdList);
|
||||
}
|
||||
|
||||
|
@@ -48,7 +48,7 @@ public class RedisIsvManagerImpl extends LocalIsvManagerImpl {
|
||||
@Override
|
||||
protected void cache(String appId, IsvDTO isvDTO) {
|
||||
stringRedisTemplate.opsForHash().put(KEY_ISV, appId, JsonUtil.toJSONString(isvDTO));
|
||||
log.info("更新isv redis缓存, isvDTO={}", isvDTO);
|
||||
log.debug("更新isv redis缓存, isvDTO={}", isvDTO);
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
|
@@ -27,7 +27,7 @@ public class RedisSecretManager extends LocalSecretManagerImpl {
|
||||
@Override
|
||||
public String getIsvPublicKey(Long isvId) {
|
||||
try {
|
||||
Object value = stringRedisTemplate.opsForHash().get(KEY_SEC, isvId);
|
||||
Object value = stringRedisTemplate.opsForHash().get(KEY_SEC, buildHashKey(isvId));
|
||||
if (Objects.equals(value, SopConstants.NULL)) {
|
||||
return null;
|
||||
}
|
||||
@@ -47,8 +47,13 @@ public class RedisSecretManager extends LocalSecretManagerImpl {
|
||||
if (publicKey == null) {
|
||||
publicKey = SopConstants.NULL;
|
||||
}
|
||||
stringRedisTemplate.opsForHash().put(KEY_SEC, isvId, publicKey);
|
||||
log.info("更新isv秘钥redis缓存, isvId={}", isvId);
|
||||
stringRedisTemplate.opsForHash().put(KEY_SEC, buildHashKey(isvId), publicKey);
|
||||
log.debug("更新isv秘钥redis缓存, isvId={}", isvId);
|
||||
}
|
||||
|
||||
|
||||
private String buildHashKey(Long isvId) {
|
||||
return String.valueOf(isvId);
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
|
@@ -111,7 +111,7 @@ public class ApiValidator implements Validator {
|
||||
throw new ApiException(ErrorEnum.ISV_INVALID_METHOD, apiRequestContext.getLocale());
|
||||
}
|
||||
// 检查路由是否启用
|
||||
if (!BooleanUtils.toBoolean(apiInfoDTO.getStatus())) {
|
||||
if (StatusEnum.of(apiInfoDTO.getStatus()) != StatusEnum.ENABLE) {
|
||||
throw new ApiException(ErrorEnum.ISP_API_DISABLED, apiRequestContext.getLocale());
|
||||
}
|
||||
// 校验是否需要授权访问
|
||||
|
44
sop.sql
44
sop.sql
@@ -1,6 +1,7 @@
|
||||
CREATE DATABASE IF NOT EXISTS `sop` DEFAULT CHARACTER SET utf8mb4;
|
||||
USE `sop`;
|
||||
|
||||
|
||||
CREATE TABLE `api_info` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`application` varchar(64) NOT NULL DEFAULT '' COMMENT '应用名称',
|
||||
@@ -22,7 +23,7 @@ CREATE TABLE `api_info` (
|
||||
`update_by` bigint(20) DEFAULT '0' COMMENT '修改人id',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_apiname_version` (`api_name`,`api_version`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=24 COMMENT='接口信息表';
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=25 COMMENT='接口信息表';
|
||||
|
||||
CREATE TABLE `doc_app` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
@@ -118,7 +119,7 @@ CREATE TABLE `perm_group_permission` (
|
||||
`update_by` bigint(20) DEFAULT '0' COMMENT '修改人id',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_apiid_groupid` (`api_id`,`group_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=15 COMMENT='组权限表';
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=16 COMMENT='组权限表';
|
||||
|
||||
CREATE TABLE `perm_isv_group` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
@@ -130,7 +131,7 @@ CREATE TABLE `perm_isv_group` (
|
||||
`update_by` bigint(20) DEFAULT '0' COMMENT '修改人id',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_isvid_groupid` (`isv_id`,`group_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=12 COMMENT='isv分组';
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=13 COMMENT='isv分组';
|
||||
|
||||
CREATE TABLE `sys_admin_user` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
@@ -280,25 +281,26 @@ CREATE TABLE `sys_user_role` (
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=7 COMMENT='角色用户关联表';
|
||||
|
||||
INSERT INTO `api_info` (`id`, `application`, `api_name`, `api_version`, `description`, `remark`, `interface_class_name`, `method_name`, `param_info`, `is_permission`, `is_need_Token`, `has_common_response`, `reg_source`, `status`, `add_time`, `update_time`, `add_by`, `update_by`) VALUES
|
||||
(1, 'story-service', 'story.get', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'getById', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"}]', 0, 0, 1, 1, 1, '2024-09-10 18:34:05', '2024-12-21 15:03:36', 0, 0),
|
||||
(2, 'story-service', 'story.save', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'save', '[{\"name\":\"storySaveRequest\",\"type\":\"com.gitee.sop.storyweb.open.req.StorySaveRequest\"}]', 0, 0, 1, 1, 1, '2024-09-10 18:34:05', '2024-12-21 15:03:36', 0, 0),
|
||||
(3, 'story-service', 'story.find', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'getById', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"},{\"name\":\"name\",\"type\":\"java.lang.String\"}]', 0, 0, 1, 1, 1, '2024-09-10 18:38:27', '2024-12-21 15:03:36', 0, 0),
|
||||
(1, 'story-service', 'story.get', '1.0', '根据id获取故事', '', 'com.gitee.sop.storyweb.open.OpenStory', 'getById', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"}]', 0, 0, 1, 1, 1, '2024-09-10 18:34:05', '2024-12-22 07:39:35', 0, 0),
|
||||
(2, 'story-service', 'story.save', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'save', '[{\"name\":\"storySaveRequest\",\"type\":\"com.gitee.sop.storyweb.open.req.StorySaveRequest\"}]', 0, 0, 1, 1, 1, '2024-09-10 18:34:05', '2024-12-22 07:39:35', 0, 0),
|
||||
(3, 'story-service', 'story.find', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'getById', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"},{\"name\":\"name\",\"type\":\"java.lang.String\"}]', 0, 0, 1, 1, 1, '2024-09-10 18:38:27', '2024-12-22 07:39:35', 0, 0),
|
||||
(4, 'story-service', 'story.find2', '1.0', '', '', 'com.gitee.sop.storyweb.open.StoryService', 'getById2', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"},{\"name\":\"name\",\"type\":\"java.lang.String\"}]', 0, 0, 1, 1, 1, '2024-09-10 18:44:51', '2024-09-10 18:44:51', 0, 0),
|
||||
(5, 'story-service', 'story.find3', '1.0', '', '', 'com.gitee.sop.storyweb.open.StoryService', 'getById2', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"},{\"name\":\"name\",\"type\":\"java.lang.String\"}]', 0, 0, 1, 1, 1, '2024-09-10 18:49:14', '2024-09-10 18:49:14', 0, 0),
|
||||
(6, 'story-service', 'story.update', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'update', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"},{\"name\":\"storySaveRequest\",\"type\":\"com.gitee.sop.storyweb.open.req.StorySaveRequest\"}]', 0, 0, 1, 1, 1, '2024-09-10 23:00:07', '2024-12-21 15:03:36', 0, 0),
|
||||
(7, 'story-service', 'story.upload', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'upload', '[{\"name\":\"storySaveRequest\",\"type\":\"com.gitee.sop.storyweb.open.req.StorySaveRequest\"},{\"name\":\"file\",\"type\":\"com.gitee.sop.support.dto.FileData\"}]', 0, 0, 1, 1, 1, '2024-09-13 09:14:03', '2024-12-21 15:03:36', 0, 0),
|
||||
(8, 'story-service', 'story.upload.more', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'upload2', '[{\"name\":\"storySaveRequest\",\"type\":\"com.gitee.sop.storyweb.open.req.StorySaveRequest\"},{\"name\":\"idCardFront\",\"type\":\"com.gitee.sop.support.dto.FileData\"},{\"name\":\"idCardBack\",\"type\":\"com.gitee.sop.support.dto.FileData\"}]', 0, 0, 1, 1, 1, '2024-09-13 09:22:05', '2024-12-21 15:03:36', 0, 0),
|
||||
(9, 'story-service', 'story.upload.list', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'upload3', '[{\"name\":\"storySaveRequest\",\"type\":\"com.gitee.sop.storyweb.open.req.StorySaveRequest\"},{\"actualType\":\"com.gitee.sop.support.dto.FileData\",\"name\":\"files\",\"type\":\"java.util.List\"}]', 0, 0, 1, 1, 1, '2024-09-13 09:28:01', '2024-12-21 15:03:36', 0, 0),
|
||||
(10, 'story-service', 'story.get', '2.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'getByIdV2', '[{\"name\":\"id\",\"type\":\"java.lang.Long\"}]', 0, 0, 1, 1, 1, '2024-09-14 10:40:13', '2024-12-21 15:03:36', 0, 0),
|
||||
(11, 'story-service', 'story.download', '1.0', '11', '', 'com.gitee.sop.storyweb.open.OpenStory', 'download', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"}]', 0, 0, 1, 1, 1, '2024-09-16 20:56:09', '2024-12-21 15:03:36', 0, 0),
|
||||
(6, 'story-service', 'story.update', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'update', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"},{\"name\":\"storySaveRequest\",\"type\":\"com.gitee.sop.storyweb.open.req.StorySaveRequest\"}]', 0, 0, 1, 1, 1, '2024-09-10 23:00:07', '2024-12-22 07:39:35', 0, 0),
|
||||
(7, 'story-service', 'story.upload', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'upload', '[{\"name\":\"storySaveRequest\",\"type\":\"com.gitee.sop.storyweb.open.req.StorySaveRequest\"},{\"name\":\"file\",\"type\":\"com.gitee.sop.support.dto.FileData\"}]', 0, 0, 1, 1, 1, '2024-09-13 09:14:03', '2024-12-22 07:39:35', 0, 0),
|
||||
(8, 'story-service', 'story.upload.more', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'upload2', '[{\"name\":\"storySaveRequest\",\"type\":\"com.gitee.sop.storyweb.open.req.StorySaveRequest\"},{\"name\":\"idCardFront\",\"type\":\"com.gitee.sop.support.dto.FileData\"},{\"name\":\"idCardBack\",\"type\":\"com.gitee.sop.support.dto.FileData\"}]', 0, 0, 1, 1, 1, '2024-09-13 09:22:05', '2024-12-22 07:39:35', 0, 0),
|
||||
(9, 'story-service', 'story.upload.list', '1.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'upload3', '[{\"name\":\"storySaveRequest\",\"type\":\"com.gitee.sop.storyweb.open.req.StorySaveRequest\"},{\"actualType\":\"com.gitee.sop.support.dto.FileData\",\"name\":\"files\",\"type\":\"java.util.List\"}]', 0, 0, 1, 1, 1, '2024-09-13 09:28:01', '2024-12-22 07:39:35', 0, 0),
|
||||
(10, 'story-service', 'story.get', '2.0', '', '', 'com.gitee.sop.storyweb.open.OpenStory', 'getByIdV2', '[{\"name\":\"id\",\"type\":\"java.lang.Long\"}]', 1, 0, 1, 1, 1, '2024-09-14 10:40:13', '2024-12-22 08:28:31', 0, 1),
|
||||
(11, 'story-service', 'story.download', '1.0', '11', '', 'com.gitee.sop.storyweb.open.OpenStory', 'download', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"}]', 0, 0, 1, 1, 1, '2024-09-16 20:56:09', '2024-12-22 07:39:35', 0, 0),
|
||||
(14, 'q1', 'q11', 'q', 'q1', '备注,内容有点长内容有点长内容有点长内容有点长内容有点长内容有点长', '', '', NULL, 1, 0, 1, 1, 2, '2024-10-06 09:51:47', '2024-11-13 10:20:56', 0, 1),
|
||||
(15, 'server', 'goods.get', '1.0', '1111', '2222225555', '', '', NULL, 1, 0, 1, 2, 2, '2024-10-10 10:38:59', '2024-10-25 20:19:29', 0, 0),
|
||||
(18, 'example-payment', 'alipay.trade.wap.pay', '2.0', NULL, NULL, 'com.gitee.sop.payment.open.OpenPayment', 'tradeWapPay', '[{\"name\":\"request\",\"type\":\"com.gitee.sop.payment.open.req.AlipayTradeWapPayRequest\"}]', 0, 0, 1, 1, 1, '2024-10-27 17:12:20', '2024-10-27 21:02:07', 0, 0),
|
||||
(19, 'story-service', 'story.updateError', '1.0', NULL, NULL, 'com.gitee.sop.storyweb.open.OpenStory', 'updateError', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"}]', 0, 0, 1, 1, 1, '2024-11-03 22:26:14', '2024-12-21 15:03:36', 0, 0),
|
||||
(19, 'story-service', 'story.updateError', '1.0', NULL, NULL, 'com.gitee.sop.storyweb.open.OpenStory', 'updateError', '[{\"name\":\"id\",\"type\":\"java.lang.Integer\"}]', 0, 0, 1, 1, 1, '2024-11-03 22:26:14', '2024-12-22 07:39:35', 0, 0),
|
||||
(20, 'story-service', 'story.get', '3.0', NULL, NULL, 'com.gitee.sop.storyweb.open.OpenStory', 'getByIdV3', '[{\"name\":\"id\",\"type\":\"java.lang.Long\"},{\"name\":\"request\",\"type\":\"com.gitee.sop.support.dto.OpenRequest\"}]', 0, 0, 1, 1, 1, '2024-11-04 14:27:07', '2024-11-08 09:47:27', 0, 0),
|
||||
(21, 'story-service', 'story.get.context', '1.0', NULL, NULL, 'com.gitee.sop.storyweb.open.OpenStory', 'getContext', '[{\"name\":\"id\",\"type\":\"java.lang.Long\"},{\"name\":\"context\",\"type\":\"com.gitee.sop.support.context.OpenContext\"}]', 0, 0, 1, 1, 1, '2024-11-10 23:06:45', '2024-12-21 15:03:36', 0, 0),
|
||||
(21, 'story-service', 'story.get.context', '1.0', NULL, NULL, 'com.gitee.sop.storyweb.open.OpenStory', 'getContext', '[{\"name\":\"id\",\"type\":\"java.lang.Long\"},{\"name\":\"context\",\"type\":\"com.gitee.sop.support.context.OpenContext\"}]', 0, 0, 1, 1, 1, '2024-11-10 23:06:45', '2024-12-22 07:39:35', 0, 0),
|
||||
(22, 'example-payment', 'pay.trade.wap.pay', '1.0', '手机网站支付接口', NULL, 'com.gitee.sop.payment.open.OpenPayment', 'tradeWapPay', '[{\"name\":\"request\",\"type\":\"com.gitee.sop.payment.open.req.PayTradeWapPayRequest\"}]', 0, 0, 1, 1, 1, '2024-11-29 22:28:20', '2024-12-02 10:14:26', 0, 0),
|
||||
(23, 'example-payment', 'pay.order.search', '1.0', '订单查询接口', NULL, 'com.gitee.sop.payment.open.OpenPayment', 'orderSearch', '[{\"name\":\"request\",\"type\":\"com.gitee.sop.payment.open.req.PayOrderSearchRequest\"}]', 0, 0, 1, 1, 1, '2024-11-29 22:28:20', '2024-12-02 10:14:26', 0, 0);
|
||||
(23, 'example-payment', 'pay.order.search', '1.0', '订单查询接口', NULL, 'com.gitee.sop.payment.open.OpenPayment', 'orderSearch', '[{\"name\":\"request\",\"type\":\"com.gitee.sop.payment.open.req.PayOrderSearchRequest\"}]', 0, 0, 1, 1, 1, '2024-11-29 22:28:20', '2024-12-02 10:14:26', 0, 0),
|
||||
(24, 'story-service', 'alipay.story.find', '1.0', NULL, NULL, 'com.gitee.sop.storyweb.open.OpenStory', 'findByName', '[{\"name\":\"name\",\"type\":\"java.lang.String\"}]', 0, 0, 1, 1, 1, '2024-12-21 19:48:40', '2024-12-22 07:39:35', 0, 0);
|
||||
|
||||
INSERT INTO `doc_app` (`id`, `app_name`, `token`, `is_publish`, `add_time`, `update_time`, `add_by`, `update_by`) VALUES
|
||||
(3, '支付服务', '34ff76952462413982d21219cf099d46', 1, '2024-11-26 09:19:29', '2024-11-29 22:49:20', 1, 1),
|
||||
@@ -322,13 +324,12 @@ INSERT INTO `doc_info` (`id`, `doc_app_id`, `doc_title`, `doc_id`, `doc_code`, `
|
||||
(26, 4, '根据id获取故事', 797, '', 1, 1, '1.0', 'story.get', '', 0, 0, 796, '2024-12-21 15:11:54', '2024-12-21 15:11:54', 1, 0);
|
||||
|
||||
INSERT INTO `isv_info` (`id`, `app_id`, `status`, `remark`, `add_time`, `update_time`, `add_by`, `update_by`) VALUES
|
||||
(1, '2019032617262200001', 1, 'xx', '2024-09-10 09:23:43', '2024-12-21 09:39:45', 0, 1),
|
||||
(1, '2019032617262200001', 1, 'xx', '2024-09-10 09:23:43', '2024-12-22 07:35:52', 0, 1),
|
||||
(2, '224', 1, '334', '2024-10-10 10:48:40', '2024-10-10 10:50:39', 0, 0),
|
||||
(3, '202410111294229455501262848', 1, '杭州限行公司', '2024-10-11 09:17:28', '2024-12-21 14:14:46', 0, 1),
|
||||
(4, '202410191297295138816524288', 1, 'xx公司', '2024-10-19 20:19:24', '2024-12-20 19:49:07', 0, 0),
|
||||
(5, '202412201319756154208780288', 1, '非Java', '2024-12-20 19:51:27', '2024-12-21 14:24:44', 1, 1);
|
||||
|
||||
|
||||
INSERT INTO `isv_keys` (`id`, `isv_id`, `key_format`, `public_key_isv`, `private_key_isv`, `public_key_platform`, `private_key_platform`, `add_time`, `update_time`, `add_by`, `update_by`) VALUES
|
||||
(16, 1, 1, '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', '2024-09-10 09:26:33', '2024-12-21 14:25:55', 0, 1),
|
||||
(17, 3, 1, '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', '', '', '2024-10-11 09:17:28', '2024-10-11 09:17:28', 0, 0),
|
||||
@@ -342,14 +343,13 @@ INSERT INTO `perm_group` (`id`, `group_name`, `is_deleted`, `add_time`, `update_
|
||||
(3, 'VIP2', 0, '2024-11-13 10:36:12', '2024-11-13 10:36:12', 1, 1);
|
||||
|
||||
INSERT INTO `perm_group_permission` (`id`, `group_id`, `api_id`, `add_time`, `update_time`, `add_by`, `update_by`) VALUES
|
||||
(8, 1, 11, '2024-10-23 13:58:29', '2024-10-23 13:58:29', 0, 0),
|
||||
(13, 1, 14, '2024-10-23 14:17:58', '2024-10-23 14:17:58', 0, 0),
|
||||
(14, 1, 10, '2024-10-25 20:27:47', '2024-10-25 20:27:47', 0, 0);
|
||||
(15, 1, 10, '2024-12-22 07:40:02', '2024-12-22 07:40:02', 0, 0);
|
||||
|
||||
INSERT INTO `perm_isv_group` (`id`, `isv_id`, `group_id`, `add_time`, `update_time`, `add_by`, `update_by`) VALUES
|
||||
(8, 4, 1, '2024-10-21 14:10:18', '2024-10-21 14:10:18', 0, 0),
|
||||
(9, 3, 1, '2024-10-25 20:20:16', '2024-10-25 20:20:16', 0, 0),
|
||||
(11, 2, 1, '2024-10-25 20:25:41', '2024-10-25 20:25:41', 0, 0);
|
||||
(11, 2, 1, '2024-10-25 20:25:41', '2024-10-25 20:25:41', 0, 0),
|
||||
(12, 1, 1, '2024-12-22 07:40:38', '2024-12-22 07:40:38', 0, 0);
|
||||
|
||||
INSERT INTO `sys_admin_user` (`id`, `username`, `password`, `nickname`, `email`, `avatar`, `status`, `reg_type`, `add_time`, `update_time`, `add_by`, `update_by`) VALUES
|
||||
(1, 'admin', '$2a$10$6LWUuQQ8V/rszLo50.qrsuBlNmbYY/q2KSC1BmrxxN5czvOxmF3qK', 'admin', '', '', 1, 'backend', '2024-10-03 08:37:03', '2024-10-03 19:08:48', 0, 0);
|
||||
@@ -451,5 +451,3 @@ INSERT INTO `sys_user_role` (`id`, `role_id`, `user_id`, `add_time`, `update_tim
|
||||
(4, 1, 1, '2024-12-12 20:32:13', '2024-12-12 20:32:13', 1, 0),
|
||||
(5, 2, 2, '2024-12-12 20:32:16', '2024-12-12 20:32:16', 1, 0),
|
||||
(6, 3, 3, '2024-12-19 09:56:08', '2024-12-19 09:56:08', 1, 0);
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user