完善模版

This commit is contained in:
xh
2025-12-22 03:20:01 +08:00
parent 2afcb7a9e2
commit 7cc69210b4
36 changed files with 380 additions and 300 deletions
+14 -6
View File
@@ -11,7 +11,7 @@ export type type_system_corn = {
TaskName?: string
TaskCode?: string
CornExpr?: string
Disabled?: number
Status?: number
CreatedBy?: string
IsDelete?: number
CreateTime?: string
@@ -23,7 +23,7 @@ export type type_system_corn_query = {
TaskName?: string
TaskCode?: string
CornExpr?: string
Disabled?: number
Status?: number
CreatedBy?: string
CreateTimeStart?: string
CreateTimeEnd?: string
@@ -36,16 +36,22 @@ export type type_system_corn_edit = {
TaskName?: string
TaskCode?: string
CornExpr?: string
Disabled?: number
Status?: number
}
// 定时任务列表
export function system_corn_list(params?: type_system_corn_query) {
return request.get<Pages<type_system_corn>>({ url: '/system_corn/list', params: clearEmpty(params) })
return request.get<Pages<type_system_corn>>({
url: '/system_corn/list',
params: clearEmpty(params)
})
}
// 定时任务列表-所有
export function system_corn_list_all(params?: type_system_corn_query) {
return request.get<type_system_corn[]>({ url: '/system_corn/listAll', params: clearEmpty(params) })
return request.get<type_system_corn[]>({
url: '/system_corn/listAll',
params: clearEmpty(params)
})
}
// 定时任务详情
@@ -77,5 +83,7 @@ export const system_corn_import_file = '/system_corn/ImportFile'
// 定时任务导出
export function system_corn_export_file(params: any) {
return (window.location.href =`${config.baseUrl}${config.urlPrefix}/system_corn/ExportFile?token=${getToken()}&` + queryString.stringify(clearEmpty(params)))
return (window.location.href =
`${config.baseUrl}${config.urlPrefix}/system_corn/ExportFile?token=${getToken()}&` +
queryString.stringify(clearEmpty(params)))
}
+1 -1
View File
@@ -9,7 +9,7 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="审批流" prop="templateId">
<el-select
v-model="formData.templateId"
+1 -1
View File
@@ -9,7 +9,7 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="流程名称" prop="flowName">
<el-input v-model="formData.flowName" placeholder="请输入流程名称" />
</el-form-item>
+1 -1
View File
@@ -9,7 +9,7 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="项目key" prop="ProjectKey">
<el-input v-model="formData.ProjectKey" placeholder="请输入项目key" />
</el-form-item>
+1 -1
View File
@@ -9,7 +9,7 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="项目key" prop="ProjectKey">
<el-select
class="flex-1"
+6 -6
View File
@@ -6,7 +6,7 @@
class="mb-[-16px]"
:model="queryParams"
:inline="true"
label-width="70px"
label-width="90px"
label-position="right"
>
<el-form-item label="项目" prop="ProjectKey" class="w-[280px]">
@@ -60,8 +60,8 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column label="序号" type="index" :index="handleIndex" min-width="60" />
<el-table-column label="项目" prop="ProjectKey" min-width="80">
<el-table-column label="序号" type="index" :index="handleIndex" width="80" />
<el-table-column label="项目" prop="ProjectKey">
<template #default="{ row }">
<dict-value
:options="listAllData.monitor_project_listAll"
@@ -71,9 +71,9 @@
/>
</template>
</el-table-column>
<el-table-column label="事件类型" prop="EventType" width="130" />
<el-table-column label="URL地址" prop="Path" min-width="130" />
<el-table-column label="错误消息" prop="Message" min-width="130" />
<el-table-column label="事件类型" prop="EventType" width="170" />
<!-- <el-table-column label="URL地址" prop="Path" min-width="130" /> -->
<el-table-column label="错误消息" prop="Message" min-width="150" />
<!-- <el-table-column label="md5" prop="Md5" min-width="130" /> -->
<el-table-column label="创建时间" prop="CreateTime" width="170" />
+1 -1
View File
@@ -9,7 +9,7 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="项目uuid" prop="ProjectKey" v-if="mode === 'edit'">
{{ formData.ProjectKey }}
</el-form-item>
+1 -1
View File
@@ -6,7 +6,7 @@
class="mb-[-16px]"
:model="queryParams"
:inline="true"
label-width="70px"
label-width="90px"
label-position="left"
>
<el-form-item label="项目key" prop="ProjectKey" class="w-[280px]">
+4 -2
View File
@@ -8,7 +8,7 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="账号" prop="username">
<el-input
v-model="formData.username"
@@ -61,6 +61,7 @@
return !!data.isStop
}
}"
:disabled="isRoot"
check-strictly
:default-expand-all="true"
placeholder="请选择上级部门"
@@ -72,6 +73,7 @@
clearable
v-model="formData.postId"
placeholder="请选择岗位"
:disabled="isRoot"
>
<!-- multiple -->
<el-option
@@ -144,7 +146,7 @@ const formData = reactive({
})
const isRoot = computed(() => {
return formData.roleId == '0'
return formData.id == '1'
})
const passwordConfirmValidator = (rule: object, value: string, callback: any) => {
+20 -23
View File
@@ -7,32 +7,30 @@
width="550px"
:clickModalClose="true"
:confirmButtonText="false"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form-item label="任务名称" prop="TaskName">
<span v-text="formData.TaskName"></span>
</el-form-item>
<el-form-item label="任务编码" prop="TaskCode">
<span v-text="formData.TaskCode"></span>
</el-form-item>
<el-form-item label="corn表达式" prop="CornExpr">
<span v-text="formData.CornExpr"></span>
</el-form-item>
<el-form-item label="禁用" prop="Disabled">
<span v-text="formData.Disabled"></span>
</el-form-item>
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="任务名称" prop="TaskName">
<span v-text="formData.TaskName"></span>
</el-form-item>
<el-form-item label="任务编码" prop="TaskCode">
<span v-text="formData.TaskCode"></span>
</el-form-item>
<el-form-item label="corn表达式" prop="CornExpr">
<span v-text="formData.CornExpr"></span>
</el-form-item>
<el-form-item label="禁用" prop="Disabled">
<span v-text="formData.Disabled"></span>
</el-form-item>
</el-form>
</popup>
</div>
</template>
<script lang="ts" setup>
import type { FormInstance } from 'element-plus'
import { system_corn_detail } from '@/api/system/corn'
import { system_corn_detail } from '@/api/system/corn'
import Popup from '@/components/popup/index.vue'
import { ref, shallowRef, computed, reactive } from 'vue'
import type { PropType } from 'vue'
defineProps({
@@ -40,7 +38,7 @@ defineProps({
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
},
listAllData:{
listAllData: {
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
@@ -58,7 +56,7 @@ const formData = reactive({
TaskName: null,
TaskCode: null,
CornExpr: null,
Disabled: null,
Disabled: null
})
const formRules = {
@@ -96,17 +94,17 @@ const formRules = {
message: '请输入禁用',
trigger: ['blur']
}
],
]
}
const open = () => {
popupRef.value?.open()
}
const getDetail = async (row: Record<string, any>) => {
try {
try {
const data = await system_corn_detail(row.Id)
setFormData(data)
} catch (error) {}
} catch (error) {}
}
const setFormData = async (data: Record<string, any>) => {
for (const key in formData) {
@@ -127,4 +125,3 @@ defineExpose({
getDetail
})
</script>
+27 -23
View File
@@ -9,27 +9,31 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form-item label="任务名称" prop="TaskName">
<el-input v-model="formData.TaskName" placeholder="请输入任务名称" />
</el-form-item>
<el-form-item label="任务编码" prop="TaskCode">
<el-input v-model="formData.TaskCode" placeholder="请输入任务编码" />
</el-form-item>
<el-form-item label="corn表达式" prop="CornExpr">
<el-input v-model="formData.CornExpr" placeholder="请输入corn表达式" />
</el-form-item>
<el-form-item label="禁用" prop="Disabled">
<el-input v-model="formData.Disabled" type="number" placeholder="请输入禁用" />
</el-form-item>
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="任务名称" prop="TaskName">
<el-input v-model="formData.TaskName" placeholder="请输入任务名称" />
</el-form-item>
<el-form-item label="任务编码" prop="TaskCode">
<el-input v-model="formData.TaskCode" placeholder="请输入任务编码" />
</el-form-item>
<el-form-item label="corn表达式" prop="CornExpr">
<el-input v-model="formData.CornExpr" placeholder="请输入corn表达式" />
</el-form-item>
<el-form-item label="状态" prop="Status">
<!-- <el-input v-model="formData.Status" type="number" placeholder="请输入禁用" /> -->
<el-radio-group v-model="formData.Status">
<el-radio :value="1">正常</el-radio>
<el-radio :value="0">停用</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</popup>
</div>
</template>
<script lang="ts" setup>
import type { FormInstance } from 'element-plus'
import { system_corn_edit, system_corn_add, system_corn_detail } from '@/api/system/corn'
import { system_corn_edit, system_corn_add, system_corn_detail } from '@/api/system/corn'
import Popup from '@/components/popup/index.vue'
import feedback from '@/utils/feedback'
import { ref, shallowRef, computed, reactive } from 'vue'
@@ -39,7 +43,7 @@ defineProps({
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
},
listAllData:{
listAllData: {
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
@@ -57,7 +61,7 @@ const formData = reactive({
TaskName: null,
TaskCode: null,
CornExpr: null,
Disabled: null,
Status: null
})
const formRules = {
@@ -89,24 +93,24 @@ const formRules = {
trigger: ['blur']
}
],
Disabled: [
Status: [
{
required: true,
message: '请输入禁用',
trigger: ['blur']
}
],
]
}
const handleSubmit = async () => {
try {
try {
await formRef.value?.validate()
const data: any = { ...formData }
mode.value == 'edit' ? await system_corn_edit(data) : await system_corn_add(data)
popupRef.value?.close()
feedback.msgSuccess('操作成功')
emit('success')
} catch (error) {}
} catch (error) {}
}
const open = (type = 'add') => {
@@ -124,10 +128,10 @@ const setFormData = async (data: Record<string, any>) => {
}
const getDetail = async (row: Record<string, any>) => {
try {
try {
const data = await system_corn_detail(row.Id)
setFormData(data)
} catch (error) {}
} catch (error) {}
}
const handleClose = () => {
+50 -35
View File
@@ -1,20 +1,30 @@
<template>
<div class="index-lists">
<el-card class="!border-none" shadow="never">
<el-form ref="formRef" class="mb-[-16px]" :model="queryParams" :inline="true" label-width="70px"
label-position="left">
<el-form
ref="formRef"
class="mb-[-16px]"
:model="queryParams"
:inline="true"
label-width="90px"
label-position="left"
>
<el-form-item label="任务名称" prop="TaskName" class="w-[280px]">
<el-input v-model="queryParams.TaskName" />
<el-input v-model="queryParams.TaskName" />
</el-form-item>
<el-form-item label="任务编码" prop="TaskCode" class="w-[280px]">
<el-input v-model="queryParams.TaskCode" />
<el-input v-model="queryParams.TaskCode" />
</el-form-item>
<el-form-item label="corn表达式" prop="CornExpr" class="w-[280px]">
<el-input v-model="queryParams.CornExpr" />
<el-input v-model="queryParams.CornExpr" />
</el-form-item>
<el-form-item label="创建人" prop="CreatedBy" class="w-[280px]">
<el-input v-model="queryParams.CreatedBy" />
<el-input v-model="queryParams.CreatedBy" />
</el-form-item>
<el-form-item label="创建人名称" prop="Nickname" class="w-[280px]">
<el-input v-model="queryParams.Nickname" />
</el-form-item>
<el-form-item label="创建时间" prop="CreateTime" class="w-[280px]">
<daterange-picker
v-model:startTime="queryParams.CreateTimeStart"
@@ -41,7 +51,7 @@
</template>
新增
</el-button>
<upload
<upload
v-perms="['admin:system_corn:ImportFile']"
class="ml-3 mr-3"
:url="system_corn_import_file"
@@ -56,7 +66,11 @@
导入
</el-button>
</upload>
<el-button v-perms="['admin:system_corn:ExportFile']" type="primary" @click="exportFile">
<el-button
v-perms="['admin:system_corn:ExportFile']"
type="primary"
@click="exportFile"
>
<template #icon>
<icon name="el-icon-Download" />
</template>
@@ -82,8 +96,12 @@
<el-table-column label="任务名称" prop="TaskName" min-width="130" />
<el-table-column label="任务编码" prop="TaskCode" min-width="130" />
<el-table-column label="corn表达式" prop="CornExpr" min-width="130" />
<el-table-column label="禁用" prop="Disabled" min-width="130" />
<el-table-column label="创建人" prop="CreatedBy" min-width="130" />
<el-table-column label="状态" prop="Status" min-width="130">
<template #default="{ row }">
<dict-value :options="dictData.status" :value="row.Status" />
</template>
</el-table-column>
<el-table-column label="创建人" prop="CreatedUser.nickname" min-width="130" />
<el-table-column label="创建时间" prop="CreateTime" min-width="130" />
<el-table-column label="更新时间" prop="UpdateTime" min-width="130" />
<el-table-column label="操作" width="160" fixed="right">
@@ -93,9 +111,10 @@
type="primary"
link
@click="viewDetails(row)"
>详情</el-button>
>详情</el-button
>
<el-button
v-perms="['admin:system_corn:edit','admin:system_corn:detail']"
v-perms="['admin:system_corn:edit', 'admin:system_corn:detail']"
type="primary"
link
@click="handleEdit(row)"
@@ -117,35 +136,32 @@
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
<EditPopup
v-if="showEdit"
ref="editRef"
@success="getLists"
@close="showEdit = false"
/>
<DetailsPopup
v-if="showDetails"
ref="detailsRef"
@close="showDetails = false"
/>
<EditPopup v-if="showEdit" ref="editRef" @success="getLists" @close="showEdit = false" />
<DetailsPopup v-if="showDetails" ref="detailsRef" @close="showDetails = false" />
</div>
</template>
<script lang="ts" setup>
import { ref,reactive,shallowRef,nextTick } from 'vue'
import { system_corn_delete,system_corn_delete_batch, system_corn_list,system_corn_import_file, system_corn_export_file } from '@/api/system/corn'
import type { type_system_corn,type_system_corn_query } from "@/api/system/corn";
import { ref, reactive, shallowRef, nextTick } from 'vue'
import {
system_corn_delete,
system_corn_delete_batch,
system_corn_list,
system_corn_import_file,
system_corn_export_file
} from '@/api/system/corn'
import type { type_system_corn, type_system_corn_query } from '@/api/system/corn'
import { useDictData,useListAllData } from '@/hooks/useDictOptions'
import { useDictData } from '@/hooks/useDictOptions'
import type { type_dict } from '@/hooks/useDictOptions'
const { dictData } = useDictData<{
status: type_dict[]
}>(['status'])
import { usePaging } from '@/hooks/usePaging'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import DetailsPopup from './details.vue'
defineOptions({
name:"system_corn"
name: 'system_corn'
})
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
const showEdit = ref(false)
@@ -155,12 +171,12 @@ const queryParams = reactive<type_system_corn_query>({
TaskName: null,
TaskCode: null,
CornExpr: null,
Disabled: null,
Status: null,
CreatedBy: null,
CreateTimeStart: null,
CreateTimeEnd: null,
UpdateTimeStart: null,
UpdateTimeEnd: null,
UpdateTimeEnd: null
})
const { pager, getLists, resetPage, resetParams } = usePaging<type_system_corn>({
@@ -168,7 +184,6 @@ const { pager, getLists, resetPage, resetParams } = usePaging<type_system_corn>(
params: queryParams
})
const handleAdd = async () => {
showEdit.value = true
await nextTick()
@@ -196,7 +211,7 @@ const handleSelectionChange = (val: type_system_corn[]) => {
const handleDelete = async (Id: number) => {
try {
await feedback.confirm('确定要删除?')
await system_corn_delete( Id )
await system_corn_delete(Id)
feedback.msgSuccess('删除成功')
getLists()
} catch (error) {}
+1 -1
View File
@@ -8,7 +8,7 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="上级部门" prop="pid" v-if="formData.pid !== ''">
<el-tree-select
class="flex-1"
+1 -1
View File
@@ -13,7 +13,7 @@
ref="formRef"
:rules="rules"
:model="formData"
label-width="84px"
label-width="110px"
>
<el-form-item label="字典类型">
<el-input
+1 -1
View File
@@ -13,7 +13,7 @@
ref="formRef"
:rules="rules"
:model="formData"
label-width="84px"
label-width="110px"
>
<el-form-item label="字典名称" prop="dictName">
<el-input v-model="formData.dictName" placeholder="请输入字典名称" clearable />
+1 -1
View File
@@ -8,7 +8,7 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="岗位名称" prop="name">
<el-input
v-model="formData.name"
+1 -1
View File
@@ -6,7 +6,7 @@
class="ls-form mb-[-16px]"
:model="formData"
inline
label-width="70px"
label-width="90px"
label-position="left"
>
<el-form-item label="管理员" class="w-[360px]">
+1 -1
View File
@@ -9,7 +9,7 @@
:confirmButtonText="false"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="标题" prop="Title">
<span v-text="formData.Title"></span>
</el-form-item>
+1 -1
View File
@@ -9,7 +9,7 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
<el-form-item label="标识" prop="Tag" borderBottom>
<el-input v-model="formData.Tag" placeholder="请输入标识" />
</el-form-item>
+3 -1
View File
@@ -6,7 +6,7 @@
class="mb-[-16px]"
:model="queryParams"
:inline="true"
label-width="70px"
label-width="90px"
label-position="left"
>
<el-form-item label="标题" prop="Title" class="w-[280px]">
@@ -94,6 +94,8 @@
<vxe-column field="Title" title="标题" min-width="130"></vxe-column>
<vxe-column field="Tag" title="标识" min-width="130"></vxe-column>
<vxe-column field="Version" title="版本" width="100"></vxe-column>
<vxe-column field="CreatedUser.nickname" title="创建人" width="120"></vxe-column>
<vxe-column field="CreateTime" title="创建时间" width="180"></vxe-column>
<vxe-column field="UpdateTime" title="更新时间" width="180"></vxe-column>
<vxe-column title="操作" width="160" fixed="right">
@@ -30,7 +30,7 @@ type SystemCornHandler struct {
// @Param TaskName query string false "任务名称"
// @Param TaskCode query string false "任务编码"
// @Param CornExpr query string false "corn表达式"
// @Param Disabled query number false "禁用"
// @Param Status query number false "状态"
// @Param CreatedBy query string false "创建人"
// @Param CreateTimeStart query string false "创建时间"
// @Param CreateTimeEnd query string false "创建时间"
@@ -59,7 +59,7 @@ func (hd *SystemCornHandler) List(c *gin.Context) {
// @Param TaskName query string false "任务名称"
// @Param TaskCode query string false "任务编码"
// @Param CornExpr query string false "corn表达式"
// @Param Disabled query number false "禁用"
// @Param Status query number false "状态"
// @Param CreatedBy query string false "创建人"
// @Param CreateTimeStart query string false "创建时间"
// @Param CreateTimeEnd query string false "创建时间"
@@ -103,7 +103,7 @@ func (hd *SystemCornHandler) Detail(c *gin.Context) {
// @Param TaskName body string false "任务名称"
// @Param TaskCode body string false "任务编码"
// @Param CornExpr body string false "corn表达式"
// @Param Disabled body number false "禁用"
// @Param Status body number false "状态"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/system_corn/add [post]
func (hd *SystemCornHandler) Add(c *gin.Context) {
@@ -124,7 +124,7 @@ func (hd *SystemCornHandler) Add(c *gin.Context) {
// @Param TaskName body string false "任务名称"
// @Param TaskCode body string false "任务编码"
// @Param CornExpr body string false "corn表达式"
// @Param Disabled body number false "禁用"
// @Param Status body number false "状态"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/system_corn/edit [post]
func (hd *SystemCornHandler) Edit(c *gin.Context) {
@@ -179,7 +179,7 @@ func (hd *SystemCornHandler) DelBatch(c *gin.Context) {
// @Param TaskName query string false "任务名称"
// @Param TaskCode query string false "任务编码"
// @Param CornExpr query string false "corn表达式"
// @Param Disabled query number false "禁用"
// @Param Status query number false "状态"
// @Param CreatedBy query string false "创建人"
// @Param CreateTimeStart query string false "创建时间"
// @Param CreateTimeEnd query string false "创建时间"
+34 -27
View File
@@ -65,39 +65,46 @@ type SystemAuthAdminDisableReq struct {
// SystemAuthAdminResp 管理员返回信息
type SystemAuthAdminResp struct {
ID string `json:"id" structs:"id"` // 主键
Username string `json:"username" structs:"username" excel:"name:账号;"` // 账号
Nickname string `json:"nickname" structs:"nickname" excel:"name:昵称;"` // 昵称
Avatar string `json:"avatar" structs:"avatar" excel:"name:头像;"` // 头像
Role string `json:"role" structs:"role" excel:"name:角色;"` // 角色
DeptId string `json:"deptId" structs:"deptId" excel:"name:部门ID;"` // 部门ID
PostId string `json:"postId" structs:"postId" excel:"name:岗位ID;"` // 岗位ID
RoleId string `json:"roleId" structs:"roleId" excel:"name:角色ID;"` // 角色ID
Dept string `json:"dept" structs:"dept" excel:"name:部门;"` // 部门
IsDisable uint8 `json:"isDisable" structs:"isDisable" excel:"name:是否禁用;"` // 是否禁用: [0=否, 1=是]
LastLoginIp string `json:"lastLoginIp" structs:"lastLoginIp" excel:"name:最后登录IP;"` // 最后登录IP
LastLoginTime core.NullTime `json:"lastLoginTime" structs:"lastLoginTime" excel:"name:最后登录时间;"` // 最后登录时间
CreateTime core.NullTime `json:"createTime" structs:"createTime" excel:"name:创建时间;"` // 创建时间
UpdateTime core.NullTime `json:"updateTime" structs:"updateTime" excel:"name:更新时间;"` // 更新时间
ID string `json:"id"` // 主键
Username string `json:"username" excel:"name:账号;"` // 账号
Nickname string `json:"nickname" excel:"name:昵称;"` // 昵称
Avatar string `json:"avatar" excel:"name:头像;"` // 头像
Role string `json:"role" excel:"name:角色;"` // 角色
DeptId string `json:"deptId" excel:"name:部门ID;"` // 部门ID
PostId string `json:"postId" excel:"name:岗位ID;"` // 岗位ID
RoleId string `json:"roleId" excel:"name:角色ID;"` // 角色ID
Dept string `json:"dept" excel:"name:部门;"` // 部门
IsDisable uint8 `json:"isDisable" excel:"name:是否禁用;"` // 是否禁用: [0=否, 1=是]
LastLoginIp string `json:"lastLoginIp" excel:"name:最后登录IP;"` // 最后登录IP
LastLoginTime core.NullTime `json:"lastLoginTime" excel:"name:最后登录时间;"` // 最后登录时间
CreateTime core.NullTime `json:"createTime" excel:"name:创建时间;"` // 创建时间
UpdateTime core.NullTime `json:"updateTime" excel:"name:更新时间;"` // 更新时间
}
// SystemAuthAdminSelfOneResp 当前管理员返回部分信息
type SystemAuthAdminSelfOneResp struct {
ID string `json:"id" structs:"id"` // 主键
Username string `json:"username" structs:"username"` // 账号
Nickname string `json:"nickname" structs:"nickname"` // 昵称
Avatar string `json:"avatar" structs:"avatar"` // 头像
Role string `json:"role" structs:"role"` // 角色
Dept string `json:"dept" structs:"dept"` // 部门
IsDisable uint8 `json:"isDisable" structs:"isDisable"` // 是否禁用: [0=否, 1=是]
LastLoginIp string `json:"lastLoginIp" structs:"lastLoginIp"` // 最后登录IP
LastLoginTime core.NullTime `json:"lastLoginTime" structs:"lastLoginTime"` // 最后登录时间
CreateTime core.NullTime `json:"createTime" structs:"createTime"` // 创建时间
UpdateTime core.NullTime `json:"updateTime" structs:"updateTime"` // 更新时间
ID string `json:"id"` // 主键
Username string `json:"username"` // 账号
Nickname string `json:"nickname"` // 昵称
Avatar string `json:"avatar"` // 头像
Role string `json:"role"` // 角色
Dept string `json:"dept"` // 部门
IsDisable uint8 `json:"isDisable"` // 是否禁用: [0=否, 1=是]
LastLoginIp string `json:"lastLoginIp"` // 最后登录IP
LastLoginTime core.NullTime `json:"lastLoginTime"` // 最后登录时间
CreateTime core.NullTime `json:"createTime"` // 创建时间
UpdateTime core.NullTime `json:"updateTime"` // 更新时间
}
// SystemAuthAdminSelfResp 当前系统管理员返回信息
type SystemAuthAdminSelfResp struct {
User SystemAuthAdminSelfOneResp `json:"user" structs:"user"` // 用户信息
Permissions []string `json:"permissions" structs:"permissions"` // 权限集合: [[*]=>所有权限, ['article:add']=>部分权限]
User SystemAuthAdminSelfOneResp `json:"user"` // 用户信息
Permissions []string `json:"permissions"` // 权限集合: [[*]=>所有权限, ['article:add']=>部分权限]
}
type SystemAuthAdminSimpleInfo struct {
ID string `json:"id"` // 主键
// Username string `json:"username"` // 账号
Nickname string `json:"nickname"` // 昵称
Avatar string `json:"avatar"` // 头像
}
+36 -36
View File
@@ -1,59 +1,59 @@
package schema
import (
"x_admin/app/schema/systemSchema"
"x_admin/core"
)
type SystemCornPrimarykey struct {
Id string // taskid
Id string //
}
//SystemCornListReq 定时任务列表参数
// SystemCornListReq 定时任务列表参数
type SystemCornListReq struct {
TaskName core.NullString // 任务名称
TaskCode core.NullString // 任务编码
CornExpr core.NullString // corn表达式
Disabled core.NullInt // 禁用
CreatedBy core.NullString // 创建人
CreateTimeStart core.NullString // 开始创建时间
CreateTimeEnd core.NullString // 结束创建时间
UpdateTimeStart core.NullString // 开始更新时间
UpdateTimeEnd core.NullString // 结束更新时间
TaskName core.NullString // 任务名称
TaskCode core.NullString // 任务编码
CornExpr core.NullString // corn表达式
Status core.NullInt // 状态
CreatedBy core.NullString // 创建人
Nickname core.NullString // 创建人名称
CreateTimeStart core.NullString // 开始创建时间
CreateTimeEnd core.NullString // 结束创建时间
UpdateTimeStart core.NullString // 开始更新时间
UpdateTimeEnd core.NullString // 结束更新时间
}
//SystemCornAddReq 定时任务新增参数
// SystemCornAddReq 定时任务新增参数
type SystemCornAddReq struct {
TaskName core.NullString // 任务名称
TaskCode core.NullString // 任务编码
CornExpr core.NullString // corn表达式
Disabled core.NullInt // 禁用
TaskName core.NullString // 任务名称
TaskCode core.NullString // 任务编码
CornExpr core.NullString // corn表达式
Status core.NullInt // 状态
}
//SystemCornEditReq 定时任务编辑参数
// SystemCornEditReq 定时任务编辑参数
type SystemCornEditReq struct {
Id string // taskid
TaskName core.NullString // 任务名称
TaskCode core.NullString // 任务编码
CornExpr core.NullString // corn表达式
Disabled core.NullInt // 禁用
Id string //
TaskName core.NullString // 任务名称
TaskCode core.NullString // 任务编码
CornExpr core.NullString // corn表达式
Status core.NullInt // 状态
}
//SystemCornDelBatchReq 定时任务批量删除参数
// SystemCornDelBatchReq 定时任务批量删除参数
type SystemCornDelBatchReq struct {
Ids string
}
//SystemCornResp 定时任务返回信息
// SystemCornResp 定时任务返回信息
type SystemCornResp struct {
Id string `swaggertype:"string"`// taskid
TaskName core.NullString `swaggertype:"string"`// 任务名称
TaskCode core.NullString `swaggertype:"string"`// 任务编码
CornExpr core.NullString `swaggertype:"string"`// corn表达式
Disabled core.NullInt `swaggertype:"number"`// 禁用
CreatedBy core.NullString `swaggertype:"string"`// 创建人
CreateTime core.NullTime `swaggertype:"string"`// 创建时间
UpdateTime core.NullTime `swaggertype:"string"`// 更新时间
Id string `swaggertype:"string"` //
TaskName core.NullString `swaggertype:"string"` // 任务名称
TaskCode core.NullString `swaggertype:"string"` // 任务编码
CornExpr core.NullString `swaggertype:"string"` // corn表达式
Status core.NullInt `swaggertype:"number"` // 状态
CreatedBy core.NullString `swaggertype:"string"` // 创建人
CreatedUser systemSchema.SystemAuthAdminSimpleInfo `swaggertype:"string"` // 创建
CreateTime core.NullTime `swaggertype:"string"` // 创建时间
UpdateTime core.NullTime `swaggertype:"string"` // 更新时间
}
+9 -9
View File
@@ -1,8 +1,8 @@
package schema
import (
"x_admin/app/schema/systemSchema"
"x_admin/core"
"x_admin/model/system_model"
)
type UserProtocolPrimarykey struct {
@@ -57,12 +57,12 @@ type UserProtocolDelBatchReq struct {
// UserProtocolResp 用户协议返回信息
type UserProtocolResp struct {
UserProtocolPrimarykey
Tag core.NullString `swaggertype:"string"` // 标识
Version core.NullInt `swaggertype:"number"` // 版本
Title core.NullString `swaggertype:"string"` // 标题
Content core.NullString `swaggertype:"string"` // 协议内容
CreateTime core.NullTime `swaggertype:"string"` // 创建时间
UpdateTime core.NullTime `swaggertype:"string"` // 更新时间
CreatedBy string `swaggertype:"string"` // 创建人
Created system_model.SystemAuthAdmin `swaggertype:"string"` // 创建人
Tag core.NullString `swaggertype:"string"` // 标识
Version core.NullInt `swaggertype:"number"` // 版本
Title core.NullString `swaggertype:"string"` // 标题
Content core.NullString `swaggertype:"string"` // 协议内容
CreateTime core.NullTime `swaggertype:"string"` // 创建时间
UpdateTime core.NullTime `swaggertype:"string"` // 更新时间
CreatedBy string `swaggertype:"string"` // 创建人id
CreatedUser systemSchema.SystemAuthAdminSimpleInfo `swaggertype:"string"` // 创建人
}
@@ -10,16 +10,19 @@ import (
type {{{ toUpperCamelCase .EntityName }}} struct {
{{{- range .Columns }}}
{{{- if not (contains $.SubTableFields .ColumnName) }}}
{{{- if eq .GoField "is_delete" }}}
{{{- if eq .ColumnName "created_by" }}}
CreatedBy {{{goWithRespType .GoType }}} `gorm:"column:created_by;type:{{{toSqlType .ColumnType .ColumnLength}}};comment:'{{{ .ColumnComment }}}'"`
CreatedUser system_model.SystemAuthAdminSimple `gorm:"foreignKey:CreatedBy"`
{{{- else if eq .ColumnName "is_delete" }}}
IsDelete soft_delete.DeletedAt `gorm:"column:{{{.ColumnName}}};type:{{{toSqlType .ColumnType .ColumnLength}}};not null;default:0;softDelete:flag,DeletedAtField:DeleteTime;comment:'是否删除: 0=否, 1=是'"`
{{{- else }}}
{{{- if eq .GoType "core.NullTime" }}}
{{{ toUpperCamelCase .GoField }}} core.NullTime `gorm:"column:{{{.ColumnName}}};type:{{{toSqlType .ColumnType .ColumnLength}}};{{{ if eq .GoField "create_time" }}}autoCreateTime;{{{ else }}}{{{if eq .GoField "update_time"}}}autoUpdateTime;{{{ end }}}{{{ end }}}comment:'{{{ .ColumnComment }}}'"`
{{{- else if .IsPk }}}
{{{ toUpperCamelCase .GoField }}} {{{.GoType }}} `gorm:"column:{{{.ColumnName}}};type:{{{toSqlType .ColumnType .ColumnLength}}};primarykey;{{{ if .IsIncrement}}}autoIncrement;{{{end}}}comment:'{{{ .ColumnComment }}}'"`
{{{- else }}}
{{{ toUpperCamelCase .GoField }}} {{{goWithRespType .GoType }}} `gorm:"column:{{{.ColumnName}}};type:{{{toSqlType .ColumnType .ColumnLength}}};comment:'{{{ .ColumnComment }}}'"`
{{{- end }}}
{{{- if eq .GoType "core.NullTime" }}}
{{{ toUpperCamelCase .GoField }}} core.NullTime `gorm:"column:{{{.ColumnName}}};type:{{{toSqlType .ColumnType .ColumnLength}}};{{{ if eq .GoField "create_time" }}}autoCreateTime;{{{ else }}}{{{if eq .GoField "update_time"}}}autoUpdateTime;{{{ end }}}{{{ end }}}comment:'{{{ .ColumnComment }}}'"`
{{{- else if .IsPk }}}
{{{ toUpperCamelCase .GoField }}} {{{.GoType }}} `gorm:"column:{{{.ColumnName}}};type:{{{toSqlType .ColumnType .ColumnLength}}};primarykey;{{{ if .IsIncrement}}}autoIncrement;{{{end}}}comment:'{{{ .ColumnComment }}}'"`
{{{- else }}}
{{{ toUpperCamelCase .GoField }}} {{{goWithRespType .GoType }}} `gorm:"column:{{{.ColumnName}}};type:{{{toSqlType .ColumnType .ColumnLength}}};comment:'{{{ .ColumnComment }}}'"`
{{{- end }}}
{{{- end }}}
{{{- end }}}
@@ -15,7 +15,10 @@ type {{{ toUpperCamelCase .EntityName }}}Primarykey struct {
type {{{ toUpperCamelCase .EntityName }}}ListReq struct {
{{{- range .Columns }}}
{{{- if .IsQuery }}}
{{{- if eq .HtmlType "datetime" }}}
{{{- if eq .ColumnName "created_by" }}}
{{{ toUpperCamelCase .GoField }}} {{{goWithAddEditType .GoType }}} // {{{ .ColumnComment }}}
Nickname core.NullString //
{{{- else if eq .HtmlType "datetime" }}}
{{{ toUpperCamelCase .GoField }}}Start core.NullString // {{{ .ColumnComment }}}
{{{ toUpperCamelCase .GoField }}}End core.NullString // {{{ .ColumnComment }}}
{{{- else }}}
@@ -31,7 +34,7 @@ type {{{ toUpperCamelCase .EntityName }}}ListReq struct {
type {{{ toUpperCamelCase .EntityName }}}AddReq struct {
{{{- range .Columns }}}
{{{- if .IsInsert }}}
{{{ toUpperCamelCase .GoField }}} {{{goWithAddEditType .GoType }}} // {{{ .ColumnComment }}}
{{{ toUpperCamelCase .GoField }}} {{{goWithAddEditType .GoType }}} `binding:"{{{ if eq .IsRequired 1 }}}required;{{{ end }}}"` // {{{ .ColumnComment }}}
{{{- end }}}
{{{- end }}}
}
@@ -37,32 +37,40 @@ type {{{ toCamelCase .EntityName }}}Service struct {
// List {{{ .FunctionName }}}列表
func (service {{{ toCamelCase .EntityName }}}Service) GetModel(listReq schema.{{{ toUpperCamelCase .EntityName }}}ListReq) *gorm.DB {
//
dbModel := service.db.Model(&model.{{{ toUpperCamelCase .EntityName }}}{})
dbModel := service.db.Model(&model.{{{ toUpperCamelCase .EntityName }}}{}).Joins("CreatedUser")
tableName := core.DBTableName(&model.{{{ toUpperCamelCase .EntityName }}}{})
{{{- range .Columns }}}
{{{- if .IsQuery }}}
{{{- $queryOpr := index $.ModelOprMap .QueryType }}}
{{{- if eq .HtmlType "datetime" }}}
if listReq.{{{ toUpperCamelCase .ColumnName }}}Start.GetValue() != nil {
dbModel = dbModel.Where("{{{ .ColumnName }}} >= ?", *listReq.{{{ toUpperCamelCase .ColumnName }}}Start.GetValue())
}
if listReq.{{{ toUpperCamelCase .ColumnName }}}End.GetValue() != nil {
dbModel = dbModel.Where("{{{ .ColumnName }}} <= ?", *listReq.{{{ toUpperCamelCase .ColumnName }}}End.GetValue())
}
{{{- else }}}
{{{- if and (eq .GoType "string") (eq $queryOpr "like") }}}
if listReq.{{{ toUpperCamelCase .ColumnName }}}.GetValue() != nil {
dbModel = dbModel.Where("{{{ .ColumnName }}} like ?", "%"+*listReq.{{{ toUpperCamelCase .ColumnName }}}.GetValue()+"%")
}
{{{- $queryOpr := index $.ModelOprMap .QueryType }}}
{{{- if eq .ColumnName "created_by" }}}
if listReq.CreatedBy.GetValue() != nil {
dbModel = dbModel.Where(tableName+".created_by = ?", *listReq.CreatedBy.GetValue())
}
if listReq.Nickname.GetValue() != nil {
dbModel = dbModel.Where("CreatedUser.nickname like ?", "%"+*listReq.Nickname.GetValue()+"%")
}
{{{- else if eq .HtmlType "datetime" }}}
if listReq.{{{ toUpperCamelCase .ColumnName }}}Start.GetValue() != nil {
dbModel = dbModel.Where(tableName+".{{{ .ColumnName }}} >= ?", *listReq.{{{ toUpperCamelCase .ColumnName }}}Start.GetValue())
}
if listReq.{{{ toUpperCamelCase .ColumnName }}}End.GetValue() != nil {
dbModel = dbModel.Where(tableName+".{{{ .ColumnName }}} <= ?", *listReq.{{{ toUpperCamelCase .ColumnName }}}End.GetValue())
}
{{{- else }}}
if listReq.{{{ toUpperCamelCase .ColumnName }}}.GetValue() != nil {
dbModel = dbModel.Where("{{{ .ColumnName }}} = ?", *listReq.{{{ toUpperCamelCase .ColumnName }}}.GetValue())
}
{{{- if and (eq .GoType "string") (eq $queryOpr "like") }}}
if listReq.{{{ toUpperCamelCase .ColumnName }}}.GetValue() != nil {
dbModel = dbModel.Where(tableName+".{{{ .ColumnName }}} like ?", "%"+*listReq.{{{ toUpperCamelCase .ColumnName }}}.GetValue()+"%")
}
{{{- else }}}
if listReq.{{{ toUpperCamelCase .ColumnName }}}.GetValue() != nil {
dbModel = dbModel.Where(tableName+".{{{ .ColumnName }}} = ?", *listReq.{{{ toUpperCamelCase .ColumnName }}}.GetValue())
}
{{{- end }}}
{{{- end }}}
{{{- end }}}
{{{- end }}}
{{{- if contains .AllFields "is_delete" }}}
dbModel = dbModel.Where("is_delete = ?", 0)
dbModel = dbModel.Where(tableName+".is_delete = ?", 0)
{{{- end }}}
return dbModel
}
@@ -130,7 +138,7 @@ func (service {{{ toCamelCase .EntityName }}}Service) Detail({{{ toUpperCamelCas
var obj = model.{{{ toUpperCamelCase .EntityName }}}{}
err := service.CacheUtil.GetCache({{{ toUpperCamelCase .PrimaryKey }}}, &obj)
if err != nil {
err := service.db.Where("{{{ $.PrimaryKey }}} = ?{{{ if contains .AllFields "is_delete" }}} AND is_delete = ?{{{ end }}}", {{{ toUpperCamelCase .PrimaryKey }}}{{{ if contains .AllFields "is_delete" }}}, 0{{{ end }}}).Limit(1).First(&obj).Error
err := service.db.Where("{{{ $.PrimaryKey }}} = ?{{{ if contains .AllFields "is_delete" }}} AND is_delete = ?{{{ end }}}", {{{ toUpperCamelCase .PrimaryKey }}}{{{ if contains .AllFields "is_delete" }}}, 0{{{ end }}}).Preload("CreatedUser").Limit(1).First(&obj).Error
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
return
}
@@ -240,18 +248,17 @@ func (service {{{ toCamelCase .EntityName }}}Service) GetExcelCol() []excel2.Col
{{{- range .Columns }}}
{{{- if and (.IsList) (not .IsPk) }}}
{{{- if eq .HtmlType "datetime" }}}
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15, Decode: util.NullTimeUtil.DecodeTime },
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15, Decode: util.NullTimeUtil.DecodeTime },
{{{- else if eq .GoType "int" }}}
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15, Decode: core.DecodeInt},
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15, Decode: core.DecodeInt},
{{{- else if eq .GoType "float64" }}}
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15, Decode: core.DecodeFloat},
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15, Decode: core.DecodeFloat},
{{{- else }}}
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15, Decode: core.DecodeString},
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15, Decode: core.DecodeString},
{{{- end }}}
{{{- end }}}
{{{- end }}}
}
// Replace
return cols
}
@@ -10,7 +10,7 @@
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
{{{- if and .Table.TreePrimary .Table.TreeParent }}}
<el-form-item label="父级" prop="{{{ (toUpperCamelCase .Table.TreeParent) }}}">
<el-tree-select
@@ -9,7 +9,7 @@
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form ref="formRef" :model="formData" label-width="110px" :rules="formRules">
{{{- if and .Table.TreePrimary .Table.TreeParent }}}
<el-form-item label="父级" prop="{{{ (toUpperCamelCase .Table.TreeParent) }}}">
<el-tree-select
@@ -1,7 +1,7 @@
<template>
<div class="index-lists">
<el-card class="!border-none" shadow="never">
<el-form ref="formRef" class="mb-[-16px]" :model="queryParams" :inline="true" label-width="70px"
<el-form ref="formRef" class="mb-[-16px]" :model="queryParams" :inline="true" label-width="90px"
label-position="left">
{{{- range .Columns }}}
{{{- if eq .IsQuery 1 }}}
@@ -100,6 +100,7 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column label="序号" type="index" :index="handleIndex" min-width="60" />
{{{- range .Columns }}}
{{{- if .IsList }}}
{{{- if and (ne .DictType "") (or (eq .HtmlType "select") (eq .HtmlType "radio") (eq .HtmlType "checkbox")) }}}
@@ -223,7 +224,7 @@ const queryParams = reactive<type_{{{.ModuleName}}}_query>({
{{{- end }}}
})
const { pager, getLists, resetPage, resetParams } = usePaging<type_{{{ .ModuleName }}}>({
const { pager, getLists, resetPage, resetParams, handleIndex } = usePaging<type_{{{ .ModuleName }}}>({
fetchFun: {{{ .ModuleName }}}_list,
params: queryParams
})
+22 -16
View File
@@ -35,35 +35,41 @@ type systemCornService struct {
// List 定时任务列表
func (service systemCornService) GetModel(listReq schema.SystemCornListReq) *gorm.DB {
// 查询
dbModel := service.db.Model(&model.SystemCorn{})
dbModel := service.db.Model(&model.SystemCorn{}).Joins("CreatedUser")
tableName := core.DBTableName(&model.SystemCorn{})
if listReq.TaskName.GetValue() != nil {
dbModel = dbModel.Where("task_name like ?", "%"+*listReq.TaskName.GetValue()+"%")
dbModel = dbModel.Where(tableName+".task_name like ?", "%"+*listReq.TaskName.GetValue()+"%")
}
if listReq.TaskCode.GetValue() != nil {
dbModel = dbModel.Where("task_code = ?", *listReq.TaskCode.GetValue())
dbModel = dbModel.Where(tableName+".task_code = ?", *listReq.TaskCode.GetValue())
}
if listReq.CornExpr.GetValue() != nil {
dbModel = dbModel.Where("corn_expr = ?", *listReq.CornExpr.GetValue())
dbModel = dbModel.Where(tableName+".corn_expr = ?", *listReq.CornExpr.GetValue())
}
if listReq.Disabled.GetValue() != nil {
dbModel = dbModel.Where("disabled = ?", *listReq.Disabled.GetValue())
if listReq.Status.GetValue() != nil {
dbModel = dbModel.Where(tableName+".Status = ?", *listReq.Status.GetValue())
}
if listReq.CreatedBy.GetValue() != nil {
dbModel = dbModel.Where("created_by = ?", *listReq.CreatedBy.GetValue())
dbModel = dbModel.Where(tableName+".created_by = ?", *listReq.CreatedBy.GetValue())
}
if listReq.Nickname.GetValue() != nil {
dbModel = dbModel.Where("CreatedUser.nickname like ?", "%"+*listReq.Nickname.GetValue()+"%")
}
if listReq.CreateTimeStart.GetValue() != nil {
dbModel = dbModel.Where("create_time >= ?", *listReq.CreateTimeStart.GetValue())
dbModel = dbModel.Where(tableName+".create_time >= ?", *listReq.CreateTimeStart.GetValue())
}
if listReq.CreateTimeEnd.GetValue() != nil {
dbModel = dbModel.Where("create_time <= ?", *listReq.CreateTimeEnd.GetValue())
dbModel = dbModel.Where(tableName+".create_time <= ?", *listReq.CreateTimeEnd.GetValue())
}
if listReq.UpdateTimeStart.GetValue() != nil {
dbModel = dbModel.Where("update_time >= ?", *listReq.UpdateTimeStart.GetValue())
dbModel = dbModel.Where(tableName+".update_time >= ?", *listReq.UpdateTimeStart.GetValue())
}
if listReq.UpdateTimeEnd.GetValue() != nil {
dbModel = dbModel.Where("update_time <= ?", *listReq.UpdateTimeEnd.GetValue())
dbModel = dbModel.Where(tableName+".update_time <= ?", *listReq.UpdateTimeEnd.GetValue())
}
dbModel = dbModel.Where("is_delete = ?", 0)
// dbModel = dbModel.Where("is_delete = ?", 0)
return dbModel
}
@@ -82,8 +88,8 @@ func (service systemCornService) GetUpdateMap(editReq schema.SystemCornEditReq)
if editReq.CornExpr.IsExists() {
updateMap["corn_expr"] = editReq.CornExpr.GetValue()
}
if editReq.Disabled.IsExists() {
updateMap["disabled"] = editReq.Disabled.GetValue()
if editReq.Status.IsExists() {
updateMap["Status"] = editReq.Status.GetValue()
}
return updateMap
}
@@ -135,7 +141,7 @@ func (service systemCornService) Detail(Id string) (res schema.SystemCornResp, e
var obj = model.SystemCorn{}
err := service.CacheUtil.GetCache(Id, &obj)
if err != nil {
err := service.db.Where("id = ? AND is_delete = ?", Id, 0).Limit(1).First(&obj).Error
err := service.db.Where("id = ? AND is_delete = ?", Id, 0).Preload("CreatedUser").Limit(1).First(&obj).Error
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
return
}
@@ -228,7 +234,7 @@ func (service systemCornService) GetExcelCol() []excel2.Col {
{Name: "任务名称", Key: "TaskName", Width: 15, Decode: core.DecodeString},
{Name: "任务编码", Key: "TaskCode", Width: 15, Decode: core.DecodeString},
{Name: "corn表达式", Key: "CornExpr", Width: 15, Decode: core.DecodeString},
{Name: "禁用", Key: "Disabled", Width: 15, Decode: core.DecodeInt},
{Name: "禁用", Key: "Status", Width: 15, Decode: core.DecodeInt},
{Name: "创建人", Key: "CreatedBy", Width: 15, Decode: core.DecodeString},
{Name: "创建时间", Key: "CreateTime", Width: 15, Decode: util.NullTimeUtil.DecodeTime},
{Name: "更新时间", Key: "UpdateTime", Width: 15, Decode: util.NullTimeUtil.DecodeTime},
+3 -3
View File
@@ -36,7 +36,7 @@ type userProtocolService struct {
// List 用户协议列表
func (service userProtocolService) GetModel(listReq schema.UserProtocolListReq) *gorm.DB {
// 查询
dbModel := service.db.Model(&model.UserProtocol{}).Preload("Created")
dbModel := service.db.Model(&model.UserProtocol{}).Preload("CreatedUser")
if listReq.Title.GetValue() != nil {
dbModel = dbModel.Where("title like ?", "%"+*listReq.Title.GetValue()+"%")
}
@@ -129,7 +129,7 @@ func (service userProtocolService) Detail(Id string) (res schema.UserProtocolRes
var obj = model.UserProtocol{}
err := service.CacheUtil.GetCache(Id, &obj)
if err != nil {
err := service.db.Where("id = ? AND is_delete = ?", Id, 0).Limit(1).First(&obj).Error
err := service.db.Where("id = ? AND is_delete = ?", Id, 0).Preload("CreatedUser").Limit(1).First(&obj).Error
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
return
}
@@ -147,7 +147,7 @@ func (service userProtocolService) Detail(Id string) (res schema.UserProtocolRes
func (service userProtocolService) Add(addReq schema.UserProtocolAddReq, adminId string) (createId string, e error) {
var obj model.UserProtocol
convert_util.Copy(&obj, addReq)
obj.CreatedBy = adminId
obj.CreatedBy.SetValue(adminId)
err := service.db.Create(&obj).Error
e = response.CheckMysqlErr(err)
if e != nil {
+19 -14
View File
@@ -1,24 +1,29 @@
package model
import (
"github.com/google/uuid"
"gorm.io/gorm"
"x_admin/core"
"x_admin/model/system_model"
"github.com/google/uuid"
"gorm.io/gorm"
"gorm.io/plugin/soft_delete"
)
//SystemCorn 定时任务实体
// SystemCorn 定时任务实体
type SystemCorn struct {
Id string `gorm:"column:id;type:char(36);primarykey;comment:'taskid'"`
TaskName core.NullString `gorm:"column:task_name;type:char(100);comment:'任务名称'"`
TaskCode core.NullString `gorm:"column:task_code;type:char(100);comment:'任务编码'"`
CornExpr core.NullString `gorm:"column:corn_expr;type:char(100);comment:'corn表达式'"`
Disabled core.NullInt `gorm:"column:disabled;type:tinyint(1);comment:'禁用'"`
CreatedBy core.NullString `gorm:"column:created_by;type:char(36);comment:'创建人'"`
IsDelete soft_delete.DeletedAt `gorm:"column:is_delete;type:tinyint(1);not null;default:0;softDelete:flag,DeletedAtField:DeleteTime;comment:'是否删除: 0=否, 1=是'"`
CreateTime core.NullTime `gorm:"column:create_time;type:datetime;autoCreateTime;comment:'创建时间'"`
UpdateTime core.NullTime `gorm:"column:update_time;type:datetime;autoUpdateTime;comment:'更新时间'"`
DeleteTime core.NullTime `gorm:"column:delete_time;type:datetime;comment:'删除时间'"`
Id string `gorm:"column:id;type:char(36);primarykey;comment:'id'"`
TaskName core.NullString `gorm:"column:task_name;type:char(100);comment:'任务名称'"`
TaskCode core.NullString `gorm:"column:task_code;type:char(100);comment:'任务编码'"`
CornExpr core.NullString `gorm:"column:corn_expr;type:char(100);comment:'corn表达式'"`
Status core.NullInt `gorm:"column:status;type:tinyint(1);comment:'状态'"`
CreatedBy core.NullString `gorm:"column:created_by;type:char(36);comment:'创建人'"`
CreatedUser system_model.SystemAuthAdminSimple `gorm:"foreignKey:CreatedBy"`
IsDelete soft_delete.DeletedAt `gorm:"column:is_delete;type:tinyint(1);not null;default:0;softDelete:flag,DeletedAtField:DeleteTime;comment:'是否删除: 0=否, 1=是'"`
CreateTime core.NullTime `gorm:"column:create_time;type:datetime;autoCreateTime;comment:'创建时间'"`
UpdateTime core.NullTime `gorm:"column:update_time;type:datetime;autoUpdateTime;comment:'更新时间'"`
DeleteTime core.NullTime `gorm:"column:delete_time;type:datetime;comment:'删除时间'"`
}
// 自动在创建时设置 UUIDv7
func (u *SystemCorn) BeforeCreate(tx *gorm.DB) error {
id, err := uuid.NewV7()
@@ -27,4 +32,4 @@ func (u *SystemCorn) BeforeCreate(tx *gorm.DB) error {
}
u.Id = id.String()
return nil
}
}
+52
View File
@@ -0,0 +1,52 @@
package system_model
import (
"x_admin/core"
"github.com/google/uuid"
"gorm.io/gorm"
"gorm.io/plugin/soft_delete"
)
// SystemAuthAdmin 系统管理员实体
type SystemAuthAdmin struct {
ID string `gorm:"primarykey;type:char(36);comment:'uuid'"`
DeptId string `gorm:"not null;comment:'部门ID'"`
PostId string `gorm:"not null;comment:'岗位ID'"`
Username string `gorm:"not null;default:'';comment:'用户账号''"`
Nickname string `gorm:"not null;default:'';comment:'用户昵称'"`
Password string `gorm:"not null;default:'';comment:'用户密码'"`
Avatar string `gorm:"not null;default:'';comment:'用户头像'"`
RoleId string `gorm:"not null;default:'';comment:'角色主键'"`
Salt string `gorm:"not null;default:'';comment:'加密盐巴'"`
Sort uint16 `gorm:"not null;default:0;comment:'排序编号'"`
IsDisable uint8 `gorm:"not null;default:0;comment:'是否禁用: 0=否, 1=是'"`
IsDelete soft_delete.DeletedAt `gorm:"not null;default:0;softDelete:flag,DeletedAtField:DeleteTime;comment:'是否删除: 0=否, 1=是'"`
LastLoginIp string `gorm:"not null;default:'';comment:'最后登录IP'"`
LastLoginTime core.NullTime `gorm:"default:null;comment:'最后登录时间'"`
CreateTime core.NullTime `gorm:"autoCreateTime;not null;comment:'创建时间'"`
UpdateTime core.NullTime `gorm:"autoUpdateTime;not null;comment:'更新时间'"`
DeleteTime core.NullTime `gorm:"default:null;comment:'删除时间'"`
}
// BeforeCreate 在创建前生成UUIDv7
func (m *SystemAuthAdmin) BeforeCreate(tx *gorm.DB) (err error) {
id, err := uuid.NewV7()
if err != nil {
return err
}
m.ID = id.String()
return nil
}
// SystemAuthAdminSimple 简化版系统管理员实体,用于关联查询
type SystemAuthAdminSimple struct {
ID string `gorm:"primarykey;type:char(36);comment:'uuid'"`
Username string `gorm:"not null;default:'';comment:'用户账号''"`
Nickname string `gorm:"not null;default:'';comment:'用户昵称'"`
Avatar string `gorm:"not null;default:'';comment:'用户头像'"`
}
func (m *SystemAuthAdminSimple) TableName() string {
return "x_system_auth_admin"
}
-31
View File
@@ -28,37 +28,6 @@ func (m *SystemConfig) BeforeCreate(tx *gorm.DB) (err error) {
return nil
}
// SystemAuthAdmin 系统管理员实体
type SystemAuthAdmin struct {
ID string `gorm:"primarykey;type:char(36);comment:'uuid'"`
DeptId string `gorm:"not null;comment:'部门ID'"`
PostId string `gorm:"not null;comment:'岗位ID'"`
Username string `gorm:"not null;default:'';comment:'用户账号''"`
Nickname string `gorm:"not null;default:'';comment:'用户昵称'"`
Password string `gorm:"not null;default:'';comment:'用户密码'"`
Avatar string `gorm:"not null;default:'';comment:'用户头像'"`
RoleId string `gorm:"not null;default:'';comment:'角色主键'"`
Salt string `gorm:"not null;default:'';comment:'加密盐巴'"`
Sort uint16 `gorm:"not null;default:0;comment:'排序编号'"`
IsDisable uint8 `gorm:"not null;default:0;comment:'是否禁用: 0=否, 1=是'"`
IsDelete soft_delete.DeletedAt `gorm:"not null;default:0;softDelete:flag,DeletedAtField:DeleteTime;comment:'是否删除: 0=否, 1=是'"`
LastLoginIp string `gorm:"not null;default:'';comment:'最后登录IP'"`
LastLoginTime core.NullTime `gorm:"default:null;comment:'最后登录时间'"`
CreateTime core.NullTime `gorm:"autoCreateTime;not null;comment:'创建时间'"`
UpdateTime core.NullTime `gorm:"autoUpdateTime;not null;comment:'更新时间'"`
DeleteTime core.NullTime `gorm:"default:null;comment:'删除时间'"`
}
// BeforeCreate 在创建前生成UUIDv7
func (m *SystemAuthAdmin) BeforeCreate(tx *gorm.DB) (err error) {
id, err := uuid.NewV7()
if err != nil {
return err
}
m.ID = id.String()
return nil
}
// SystemAuthMenu 系统菜单实体
type SystemAuthMenu struct {
ID string `gorm:"primarykey;type:char(36);comment:'uuid'"`
+11 -12
View File
@@ -11,18 +11,17 @@ import (
// UserProtocol 用户协议实体
type UserProtocol struct {
Id string `gorm:"primarykey;type:char(36);comment:''"` //
Tag core.NullString `gorm:"comment:'标识'"` // 标识
Version core.NullInt `gorm:"column:version;comment:'排序'"` // 排序
Title core.NullString `gorm:"comment:'标题'"` // 标题
Content core.NullString `gorm:"comment:'协议内容'"` // 协议内容
// Sort core.NullFloat `gorm:"comment:'排序'"` // 排序
CreatedBy string `gorm:"comment:'创建人'"` // 创建人
Created system_model.SystemAuthAdmin `gorm:"foreignKey:CreatedBy"`
IsDelete soft_delete.DeletedAt `gorm:"not null;default:0;softDelete:flag,DeletedAtField:DeleteTime;comment:'是否删除: 0=否, 1=是'"`
CreateTime core.NullTime `gorm:"autoCreateTime;comment:'创建时间'"` // 创建时间
UpdateTime core.NullTime `gorm:"autoUpdateTime;comment:'更新时间'"` // 更新时间
DeleteTime core.NullTime `gorm:"comment:'删除时间'"` // 删除时间
Id string `gorm:"primarykey;type:char(36);comment:''"` //
Tag core.NullString `gorm:"comment:'标识'"` // 标识
Version core.NullInt `gorm:"column:version;comment:'排序'"` // 排序
Title core.NullString `gorm:"comment:'标题'"` // 标题
Content core.NullString `gorm:"comment:'协议内容'"` // 协议内容
CreatedBy core.NullString `gorm:"column:created_by;type:char(36);comment:'创建人'"`
CreatedUser system_model.SystemAuthAdminSimple `gorm:"foreignKey:CreatedBy"`
IsDelete soft_delete.DeletedAt `gorm:"not null;default:0;softDelete:flag,DeletedAtField:DeleteTime;comment:'是否删除: 0=否, 1=是'"`
CreateTime core.NullTime `gorm:"autoCreateTime;comment:'创建时间'"` // 创建时间
UpdateTime core.NullTime `gorm:"autoUpdateTime;comment:'更新时间'"` // 更新时间
DeleteTime core.NullTime `gorm:"comment:'删除时间'"` // 删除时间
}
// 自动在创建时设置 UUIDv7