修改代码生成逻辑
main
zxf 1 month ago
parent 5d75c1ca5b
commit aa8e457495

@ -0,0 +1,62 @@
import request from '@/utils/request'
/**
* 新增pmowner
* @param pram
*/
export function pmownerCreateApi(data) {
return request({
url: 'autogencode/pmowner/save',
method: 'POST',
data
})
}
/**
* pmowner更新
* @param pram
*/
export function pmownerUpdateApi(data) {
return request({
url: 'autogencode/pmowner/update',
method: 'POST',
data
})
}
/**
* pmowner详情
* @param pram
*/
export function pmownerDetailApi(id) {
return request({
url: `autogencode/pmowner/info/${id}`,
method: 'GET'
})
}
/**
* pmowner删除
* @param pram
*/
export function pmownerDeleteApi(id) {
return request({
url: `autogencode/pmowner/delete/${id}`,
method: 'get'
})
}
/**
* pmowner列表
* @param pram
*/
export function pmownerListApi(params) {
return request({
url: 'autogencode/pmowner/list',
method: 'GET',
params
})
}

@ -0,0 +1,71 @@
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from '@/utils/request'
/**
* 新增PmOwnerHouseRel
* @param pram
*/
export function PmOwnerHouseRelCreateApi(data) {
return request({
url: 'autogencode/pmownerhouserel/save',
method: 'POST',
data
})
}
/**
* pmownerhouserel更新
* @param pram
*/
export function pmownerhouserelUpdateApi(data) {
return request({
url: 'autogencode/pmownerhouserel/update',
method: 'POST',
data
})
}
/**
* pmownerhouserel详情
* @param pram
*/
export function pmownerhouserelDetailApi(id) {
return request({
url: `autogencode/pmownerhouserel/info/${id}`,
method: 'GET'
})
}
/**
* pmownerhouserel删除
* @param pram
*/
export function pmownerhouserelDeleteApi(id) {
return request({
url: `autogencode/pmownerhouserel/delete/${id}`,
method: 'get'
})
}
/**
* pmownerhouserel列表
* @param pram
*/
export function pmownerhouserelListApi(params) {
return request({
url: 'autogencode/pmownerhouserel/list',
method: 'GET',
params
})
}

@ -14,7 +14,7 @@
</template>
<script>
// import UploadIndex from '@/components/uploadPicture/index.vue'
// import UploadIndex from '@/components/uploadPicture/indexvo.vue'
export default {
name: 'UploadFroms',
// components: { UploadIndex },

@ -30,6 +30,7 @@ import appSettingRouter from './modules/appSetting'
import maintainRouter from './modules/maintain'
import mobileRouter from './modules/mobile'
import codegen from './modules/codegen'
import pmRouter from './modules/pm'
/**
@ -85,6 +86,8 @@ export const constantRoutes = [
mobileRouter,
// 代码生成
codegen,
// 物业管理
pmRouter,
{
path: '/404',

@ -0,0 +1,43 @@
/*
* @Author: zxf 1532322479@qq.com
* @Date: 2025-10-10 09:24:09
* @LastEditors: zxf 1532322479@qq.com
* @LastEditTime: 2025-10-10 09:24:14
* @FilePath: \crmebTwo\admin\src\router\modules\pm.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import Layout from '@/layout'
const pmRouter = {
path: '/pm',
component: Layout,
redirect: '/pm/houser',
name: 'Pm',
meta: {
title: '物业管理',
icon: 'building'
},
children: [
{
path: 'houser',
component: () => import('@/views/pm/houser/index'),
name: 'HouserIndex',
meta: {
title: '业主房屋管理',
icon: ''
}
}
]
}
export default pmRouter

@ -0,0 +1,177 @@
<template>
<div class="divBox">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.key" placeholder="查询参数" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()"></el-button>
<el-button v-hasPermi="['autogencode:pmownerhouserel:save']" type="primary" @click="addOrUpdateHandle()"></el-button>
<el-button v-hasPermi="['autogencode:pmownerhouserel:delete']" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0"></el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="id"
header-align="center"
align="center"
label="id">
</el-table-column>
<el-table-column
prop="ownerId"
header-align="center"
align="center"
label="业主id">
</el-table-column>
<el-table-column
prop="houseId"
header-align="center"
align="center"
label="房屋id">
</el-table-column>
<el-table-column
prop="relType"
header-align="center"
align="center"
label="关联类型">
</el-table-column>
<el-table-column
prop="bindTime"
header-align="center"
align="center"
label="绑定时间">
</el-table-column>
<el-table-column
prop="unbindTime"
header-align="center"
align="center"
label="解绑时间">
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)"></el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 表单弹窗, 新增数据和修改数据 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './pmownerhouserel-add-and-update'
import * as api from '@/api/pmownerhouserel.js'
export default {
data () {
return {
dataForm: {
key: ''
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate
},
activated () {
this.getDataList()
},
methods: {
//
getDataList () {
this.dataListLoading = true
// PmOwnerHouseRelControllerPageParamRequest
const params = {
page: this.pageIndex,
limit: this.pageSize
}
// PmOwnerHouseRel
if (this.dataForm.key) {
// key
// LambdaQueryWrapper
params.key = this.dataForm.key;
}
api.pmownerhouserelListApi(params).then(res => {
this.dataListLoading = false
this.dataList = res.list || [];
this.totalPage = res.total;
}).catch(e => {
this.dataListLoading = false
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
// /
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
//
deleteHandle (id) {
var ids = id ? [id] : this.dataListSelections.map(item => {
return item.id
})
this.$confirm(`您确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
api.pmownerhouserelDeleteApi(id).then(res => {
// TODO
this.$message.success('删除成功')
this.getDataList()
})
})
},
}
}
</script>

@ -0,0 +1,159 @@
<template>
<!-- 基于 Element UI 新增和修改弹窗 -->
<el-dialog
:title="!dataForm.id ? '添加-ADD' : '修改-EDITE'"
:close-on-click-modal="false"
:visible.sync="visible">
<!-- 新增和创建表单表单 -->
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataSubmit()" label-width="80px">
<el-form-item label="业主id" prop="ownerId">
<el-input v-model="dataForm.ownerId" placeholder="业主id"></el-input>
</el-form-item>
<el-form-item label="房屋id" prop="houseId">
<el-input v-model="dataForm.houseId" placeholder="房屋id"></el-input>
</el-form-item>
<el-form-item label="关联类型" prop="relType">
<el-input v-model="dataForm.relType" placeholder="关联类型"></el-input>
</el-form-item>
<el-form-item label="绑定时间" prop="bindTime">
<el-input v-model="dataForm.bindTime" placeholder="绑定时间"></el-input>
</el-form-item>
<el-form-item label="解绑时间" prop="unbindTime">
<el-input v-model="dataForm.unbindTime" placeholder="解绑时间"></el-input>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="备注"></el-input>
</el-form-item>
<el-form-item label="删除标志0代表存在 2代表删除" prop="delFlag">
<el-input v-model="dataForm.delFlag" placeholder="删除标志0代表存在 2代表删除"></el-input>
</el-form-item>
<el-form-item label="创建部门" prop="createDept">
<el-input v-model="dataForm.createDept" placeholder="创建部门"></el-input>
</el-form-item>
<el-form-item label="创建人" prop="createBy">
<el-input v-model="dataForm.createBy" placeholder="创建人"></el-input>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-input v-model="dataForm.createTime" placeholder="创建时间"></el-input>
</el-form-item>
<el-form-item label="修改人" prop="updateBy">
<el-input v-model="dataForm.updateBy" placeholder="修改人"></el-input>
</el-form-item>
<el-form-item label="修改时间" prop="updateTime">
<el-input v-model="dataForm.updateTime" placeholder="修改时间"></el-input>
</el-form-item>
<el-form-item label="租户ID" prop="tenantId">
<el-input v-model="dataForm.tenantId" placeholder="租户ID"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
import * as api from '@/api/pmownerhouserel.js'
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
ownerId: '' ,
houseId: '' ,
relType: '' ,
bindTime: '' ,
unbindTime: '' ,
remark: '' ,
delFlag: '' ,
createDept: '' ,
createBy: '' ,
createTime: '' ,
updateBy: '' ,
updateTime: '' ,
tenantId: ''
},
dataRule: {
ownerId: [
{ required: true, message: '业主id 为必填项', trigger: 'blur' }
],
houseId: [
{ required: true, message: '房屋id 为必填项', trigger: 'blur' }
],
relType: [
{ required: true, message: '关联类型 为必填项', trigger: 'blur' }
],
bindTime: [
{ required: true, message: '绑定时间 为必填项', trigger: 'blur' }
],
unbindTime: [
{ required: true, message: '解绑时间 为必填项', trigger: 'blur' }
],
remark: [
{ required: true, message: '备注 为必填项', trigger: 'blur' }
],
delFlag: [
{ required: true, message: '删除标志0代表存在 2代表删除 为必填项', trigger: 'blur' }
],
createDept: [
{ required: true, message: '创建部门 为必填项', trigger: 'blur' }
],
createBy: [
{ required: true, message: '创建人 为必填项', trigger: 'blur' }
],
createTime: [
{ required: true, message: '创建时间 为必填项', trigger: 'blur' }
],
updateBy: [
{ required: true, message: '修改人 为必填项', trigger: 'blur' }
],
updateTime: [
{ required: true, message: '修改时间 为必填项', trigger: 'blur' }
],
tenantId: [
{ required: true, message: '租户ID 为必填项', trigger: 'blur' }
]
}
}
},
methods: {
init (id) { //
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
api.pmownerhouserelDetailApi(id).then(res => {
this.dataForm = res;
})
}
})
},
//
dataSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
if (dataForm.id) {
api.pmownerhouserelUpdateApi(this.dataForm).then(res =>{
this.$message.success('保存成功')
this.visible = false
this.$emit('refreshDataList')
});
} else {
api.pmownerhouserelCreateApi(this.dataForm).then(res =>{
this.$message.success('新增成功')
this.visible = false
this.$emit('refreshDataList')
});
}
}
})
}
}
}
</script>

@ -0,0 +1,230 @@
<template>
<div class="divBox">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.key" placeholder="查询参数" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()"></el-button>
<el-button v-hasPermi="['autogencode:pmowner:save']" type="primary" @click="addOrUpdateHandle()"></el-button>
<el-button v-hasPermi="['autogencode:pmowner:delete']" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0"></el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="id"
header-align="center"
align="center"
label="id">
</el-table-column>
<el-table-column
prop="ownerName"
header-align="center"
align="center"
label="业主姓名">
</el-table-column>
<el-table-column
prop="ownerType"
header-align="center"
align="center"
label="业主类型">
</el-table-column>
<el-table-column
prop="ownerIdcard"
header-align="center"
align="center"
label="业主身份证">
</el-table-column>
<el-table-column
prop="phone"
header-align="center"
align="center"
label="联系电话">
</el-table-column>
<el-table-column
prop="email"
header-align="center"
align="center"
label="电子邮箱">
</el-table-column>
<el-table-column
prop="emergencyContact"
header-align="center"
align="center"
label="紧急联系人">
</el-table-column>
<el-table-column
prop="emergencyPhone"
header-align="center"
align="center"
label="紧急联系电话">
</el-table-column>
<el-table-column
prop="status"
header-align="center"
align="center"
label="业主状态">
</el-table-column>
<el-table-column
prop="remark"
header-align="center"
align="center"
label="备注">
</el-table-column>
<el-table-column
prop="delFlag"
header-align="center"
align="center"
label="删除标志0代表存在 2代表删除">
</el-table-column>
<el-table-column
prop="createDept"
header-align="center"
align="center"
label="创建部门">
</el-table-column>
<el-table-column
prop="createBy"
header-align="center"
align="center"
label="创建人">
</el-table-column>
<el-table-column
prop="createTime"
header-align="center"
align="center"
label="创建时间">
</el-table-column>
<el-table-column
prop="updateBy"
header-align="center"
align="center"
label="修改人">
</el-table-column>
<el-table-column
prop="updateTime"
header-align="center"
align="center"
label="修改时间">
</el-table-column>
<el-table-column
prop="tenantId"
header-align="center"
align="center"
label="租户ID">
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)"></el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 表单弹窗, 新增数据和修改数据 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './pmowner-add-and-update'
import * as api from '@/api/pmowner.js'
export default {
data () {
return {
dataForm: {
key: ''
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate
},
activated () {
this.getDataList()
},
methods: {
//
getDataList () {
this.dataListLoading = true
api.pmownerListApi().then(res => {
this.dataListLoading = false
this.dataList = res.list || [];
this.totalPage = res.total;
}).catch(e => {
this.dataListLoading = false
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
// /
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
//
deleteHandle (id) {
var ids = id ? [id] : this.dataListSelections.map(item => {
return item.id
})
this.$confirm(`您确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
api.pmownerDeleteApi(id).then(res => {
// TODO
this.$message.success('删除成功')
this.getDataList()
})
})
},
}
}
</script>

@ -0,0 +1,180 @@
<template>
<!-- 基于 Element UI 新增和修改弹窗 -->
<el-dialog
:title="!dataForm.id ? '添加-ADD' : '修改-EDITE'"
:close-on-click-modal="false"
:visible.sync="visible">
<!-- 新增和创建表单表单 -->
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataSubmit()" label-width="80px">
<el-form-item label="业主姓名" prop="ownerName">
<el-input v-model="dataForm.ownerName" placeholder="业主姓名"></el-input>
</el-form-item>
<el-form-item label="业主类型" prop="ownerType">
<el-input v-model="dataForm.ownerType" placeholder="业主类型"></el-input>
</el-form-item>
<el-form-item label="业主身份证" prop="ownerIdcard">
<el-input v-model="dataForm.ownerIdcard" placeholder="业主身份证"></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input v-model="dataForm.phone" placeholder="联系电话"></el-input>
</el-form-item>
<el-form-item label="电子邮箱" prop="email">
<el-input v-model="dataForm.email" placeholder="电子邮箱"></el-input>
</el-form-item>
<el-form-item label="紧急联系人" prop="emergencyContact">
<el-input v-model="dataForm.emergencyContact" placeholder="紧急联系人"></el-input>
</el-form-item>
<el-form-item label="紧急联系电话" prop="emergencyPhone">
<el-input v-model="dataForm.emergencyPhone" placeholder="紧急联系电话"></el-input>
</el-form-item>
<el-form-item label="业主状态" prop="status">
<el-input v-model="dataForm.status" placeholder="业主状态"></el-input>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="备注"></el-input>
</el-form-item>
<el-form-item label="删除标志0代表存在 2代表删除" prop="delFlag">
<el-input v-model="dataForm.delFlag" placeholder="删除标志0代表存在 2代表删除"></el-input>
</el-form-item>
<el-form-item label="创建部门" prop="createDept">
<el-input v-model="dataForm.createDept" placeholder="创建部门"></el-input>
</el-form-item>
<el-form-item label="创建人" prop="createBy">
<el-input v-model="dataForm.createBy" placeholder="创建人"></el-input>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-input v-model="dataForm.createTime" placeholder="创建时间"></el-input>
</el-form-item>
<el-form-item label="修改人" prop="updateBy">
<el-input v-model="dataForm.updateBy" placeholder="修改人"></el-input>
</el-form-item>
<el-form-item label="修改时间" prop="updateTime">
<el-input v-model="dataForm.updateTime" placeholder="修改时间"></el-input>
</el-form-item>
<el-form-item label="租户ID" prop="tenantId">
<el-input v-model="dataForm.tenantId" placeholder="租户ID"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
import * as api from '@/api/pmowner.js'
export default {
data () {
return {
visible: false,
dataForm: {
id: 0,
ownerName: '' ,
ownerType: '' ,
ownerIdcard: '' ,
phone: '' ,
email: '' ,
emergencyContact: '' ,
emergencyPhone: '' ,
status: '' ,
remark: '' ,
delFlag: '' ,
createDept: '' ,
createBy: '' ,
createTime: '' ,
updateBy: '' ,
updateTime: '' ,
tenantId: ''
},
dataRule: {
ownerName: [
{ required: true, message: '业主姓名 为必填项', trigger: 'blur' }
],
ownerType: [
{ required: true, message: '业主类型 为必填项', trigger: 'blur' }
],
ownerIdcard: [
{ required: true, message: '业主身份证 为必填项', trigger: 'blur' }
],
phone: [
{ required: true, message: '联系电话 为必填项', trigger: 'blur' }
],
email: [
{ required: true, message: '电子邮箱 为必填项', trigger: 'blur' }
],
emergencyContact: [
{ required: true, message: '紧急联系人 为必填项', trigger: 'blur' }
],
emergencyPhone: [
{ required: true, message: '紧急联系电话 为必填项', trigger: 'blur' }
],
status: [
{ required: true, message: '业主状态 为必填项', trigger: 'blur' }
],
remark: [
{ required: true, message: '备注 为必填项', trigger: 'blur' }
],
delFlag: [
{ required: true, message: '删除标志0代表存在 2代表删除 为必填项', trigger: 'blur' }
],
createDept: [
{ required: true, message: '创建部门 为必填项', trigger: 'blur' }
],
createBy: [
{ required: true, message: '创建人 为必填项', trigger: 'blur' }
],
createTime: [
{ required: true, message: '创建时间 为必填项', trigger: 'blur' }
],
updateBy: [
{ required: true, message: '修改人 为必填项', trigger: 'blur' }
],
updateTime: [
{ required: true, message: '修改时间 为必填项', trigger: 'blur' }
],
tenantId: [
{ required: true, message: '租户ID 为必填项', trigger: 'blur' }
]
}
}
},
methods: {
init (id) { //
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
api.pmownerDetailApi(id).then(res => {
this.dataForm = res;
})
}
})
},
//
dataSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
if (dataForm.id) {
api.pmownerUpdateApi(this.dataForm).then(res =>{
this.$message.success('保存成功')
this.visible = false
this.$emit('refreshDataList')
});
} else {
api.pmownerCreateApi(this.dataForm).then(res =>{
this.$message.success('新增成功')
this.visible = false
this.$emit('refreshDataList')
});
}
}
})
}
}
}
</script>

@ -0,0 +1,198 @@
package com.zbkj.modules.autogencode.controller;
import java.util.Arrays;
import java.util.Map;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zbkj.common.request.PageParamRequest;
import com.zbkj.common.response.CommonResult;
import com.zbkj.common.page.CommonPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zbkj.modules.autogencode.entity.PmOwner;
import com.zbkj.modules.autogencode.service.PmOwnerService;
/**
*
*/
@RestController
@RequestMapping("autogencode/pmowner")
public class PmOwnerController {
@Autowired
private PmOwnerService pmOwnerService;
/**
*
*
*/
private void condition(LambdaQueryWrapper<PmOwner> queryWrapper, PmOwner request) {
if (request == null) {
return;
}
// 根据实体类字段自动生成查询条件
// id
if (request.getId() != null) {
queryWrapper.eq(PmOwner::getId, request.getId());
}
// 业主姓名
if (StrUtil.isNotBlank(request.getOwnerName())) {
queryWrapper.eq(PmOwner::getOwnerName, request.getOwnerName());
}
// 业主类型
if (StrUtil.isNotBlank(request.getOwnerType())) {
queryWrapper.eq(PmOwner::getOwnerType, request.getOwnerType());
}
// 业主身份证
if (StrUtil.isNotBlank(request.getOwnerIdcard())) {
queryWrapper.eq(PmOwner::getOwnerIdcard, request.getOwnerIdcard());
}
// 联系电话
if (StrUtil.isNotBlank(request.getPhone())) {
queryWrapper.eq(PmOwner::getPhone, request.getPhone());
}
// 电子邮箱
if (StrUtil.isNotBlank(request.getEmail())) {
queryWrapper.eq(PmOwner::getEmail, request.getEmail());
}
// 紧急联系人
if (StrUtil.isNotBlank(request.getEmergencyContact())) {
queryWrapper.eq(PmOwner::getEmergencyContact, request.getEmergencyContact());
}
// 紧急联系电话
if (StrUtil.isNotBlank(request.getEmergencyPhone())) {
queryWrapper.eq(PmOwner::getEmergencyPhone, request.getEmergencyPhone());
}
// 业主状态
if (StrUtil.isNotBlank(request.getStatus())) {
queryWrapper.eq(PmOwner::getStatus, request.getStatus());
}
// 备注
if (StrUtil.isNotBlank(request.getRemark())) {
queryWrapper.eq(PmOwner::getRemark, request.getRemark());
}
// 删除标志0代表存在 2代表删除
if (StrUtil.isNotBlank(request.getDelFlag())) {
queryWrapper.eq(PmOwner::getDelFlag, request.getDelFlag());
}
// 创建部门
if (request.getCreateDept() != null) {
queryWrapper.eq(PmOwner::getCreateDept, request.getCreateDept());
}
// 创建人
if (request.getCreateBy() != null) {
queryWrapper.eq(PmOwner::getCreateBy, request.getCreateBy());
}
// 创建时间
if (request.getCreateTime() != null) {
queryWrapper.eq(PmOwner::getCreateTime, request.getCreateTime());
}
// 修改人
if (request.getUpdateBy() != null) {
queryWrapper.eq(PmOwner::getUpdateBy, request.getUpdateBy());
}
// 修改时间
if (request.getUpdateTime() != null) {
queryWrapper.eq(PmOwner::getUpdateTime, request.getUpdateTime());
}
// 租户ID
if (StrUtil.isNotBlank(request.getTenantId())) {
queryWrapper.eq(PmOwner::getTenantId, request.getTenantId());
}
}
/**
*
* @param request
* @param pageParamRequest
*/
@ApiOperation(value = "分页列表")
@RequestMapping(value = "/list", method = RequestMethod.GET)
public CommonResult<CommonPage<PmOwner>> getList(@Validated PmOwner request, @Validated PageParamRequest pageParamRequest) {
LambdaQueryWrapper<PmOwner> queryWrapper = new LambdaQueryWrapper();
// 应用搜索条件
condition(queryWrapper, request);
CommonPage<PmOwner> page = CommonPage.restPage(pmOwnerService.pageList(queryWrapper, pageParamRequest));
return CommonResult.success(page);
}
/**
*
*/
@RequestMapping("/info/{id}")
public CommonResult<PmOwner> info(@PathVariable("id") Long id){
PmOwner pmOwner = pmOwnerService.getById(id);
return CommonResult.success(pmOwner);
}
/**
*
*/
@RequestMapping("/save")
public CommonResult<String> save(@RequestBody PmOwner pmOwner){
if (pmOwnerService.save(pmOwner)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
*
*/
@RequestMapping("/update")
public CommonResult<String> update(@RequestBody PmOwner pmOwner){
if (pmOwnerService.updateById(pmOwner)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
* :id
*/
@RequestMapping("/delete")
public CommonResult<String> delete(@RequestBody Long[] ids){
if (pmOwnerService.removeByIds(Arrays.asList(ids))) {
return CommonResult.success();
}
return CommonResult.failed();
}
}

@ -0,0 +1,128 @@
package com.zbkj.modules.autogencode.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zbkj.common.request.PageParamRequest;
import com.zbkj.common.response.CommonResult;
import com.zbkj.common.page.CommonPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.zbkj.modules.autogencode.entity.PmOwnerHouseRel;
import com.zbkj.modules.autogencode.service.PmOwnerHouseRelService;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEBCRMEB
* +----------------------------------------------------------------------
* | Author:
* +----------------------------------------------------------------------
* @date Thu Oct 09 15:29:10 CST 2025
* +----------------------------------------------------------------------
* @date stivepeim@outlook.com
* +----------------------------------------------------------------------
*/
@RestController
@RequestMapping("api/autogencode/pmownerhouserel")
public class PmOwnerHouseRelController {
@Autowired
private PmOwnerHouseRelService pmOwnerHouseRelService;
/**
*
* @param request
* @param pageParamRequest
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
public CommonResult<CommonPage<PmOwnerHouseRel>> getList(@Validated PmOwnerHouseRel request, @Validated PageParamRequest pageParamRequest){
LambdaQueryWrapper<PmOwnerHouseRel> queryWrapper = new LambdaQueryWrapper();
// 应用搜索条件
condition(queryWrapper, request);
CommonPage<PmOwnerHouseRel> storeProductRuleCommonPage =
CommonPage.restPage(pmOwnerHouseRelService.pageList(queryWrapper, pageParamRequest));
return CommonResult.success(storeProductRuleCommonPage);
}
/**
*
*/
@RequestMapping("/info/{id}")
public CommonResult<PmOwnerHouseRel> info(@PathVariable("id") Long id){
PmOwnerHouseRel pmOwnerHouseRel = pmOwnerHouseRelService.getById(id);
return CommonResult.success(pmOwnerHouseRel);
}
/**
*
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
public CommonResult<String> save(@RequestBody PmOwnerHouseRel pmOwnerHouseRel){
if (pmOwnerHouseRelService.save(pmOwnerHouseRel)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
*
*/
@RequestMapping("/update")
public CommonResult<String> update(@RequestBody PmOwnerHouseRel pmOwnerHouseRel){
if (pmOwnerHouseRelService.updateById(pmOwnerHouseRel)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
* :id
*/
@RequestMapping("/delete")
public CommonResult<String> delete(@RequestBody Long[] ids){
if (pmOwnerHouseRelService.removeByIds(Arrays.asList(ids))) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
*
*/
private void condition(LambdaQueryWrapper<PmOwnerHouseRel> queryWrapper, PmOwnerHouseRel request) {
if (request.getId() != null) {
queryWrapper.eq(PmOwnerHouseRel::getId, request.getId());
}
if (request.getOwnerId() != null) {
queryWrapper.eq(PmOwnerHouseRel::getOwnerId, request.getOwnerId());
}
if (request.getHouseId() != null) {
queryWrapper.eq(PmOwnerHouseRel::getHouseId, request.getHouseId());
}
if (StrUtil.isNotBlank(request.getRelType())) {
queryWrapper.eq(PmOwnerHouseRel::getRelType, request.getRelType());
}
// 按创建时间降序排序
queryWrapper.orderByDesc(PmOwnerHouseRel::getCreateTime);
}
}

@ -0,0 +1,13 @@
package com.zbkj.modules.autogencode.dao;
import com.zbkj.modules.autogencode.entity.PmOwner;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* DAO
*/
@Mapper
public interface PmOwnerDao extends BaseMapper<PmOwner> {
}

@ -0,0 +1,11 @@
package com.zbkj.modules.autogencode.dao;
import com.zbkj.modules.autogencode.entity.PmOwnerHouseRel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface PmOwnerHouseRelDao extends BaseMapper<PmOwnerHouseRel> {
}

@ -0,0 +1,104 @@
package com.zbkj.modules.autogencode.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
@Data
@TableName("pm_owner")
public class PmOwner implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@ApiModelProperty(value = "id")
@TableId
private Long id;
/**
*
*/
@ApiModelProperty(value = "业主姓名")
private String ownerName;
/**
*
*/
@ApiModelProperty(value = "业主类型")
private String ownerType;
/**
*
*/
@ApiModelProperty(value = "业主身份证")
private String ownerIdcard;
/**
*
*/
@ApiModelProperty(value = "联系电话")
private String phone;
/**
*
*/
@ApiModelProperty(value = "电子邮箱")
private String email;
/**
*
*/
@ApiModelProperty(value = "紧急联系人")
private String emergencyContact;
/**
*
*/
@ApiModelProperty(value = "紧急联系电话")
private String emergencyPhone;
/**
*
*/
@ApiModelProperty(value = "业主状态")
private String status;
/**
*
*/
@ApiModelProperty(value = "备注")
private String remark;
/**
* 0 2
*/
@ApiModelProperty(value = "删除标志0代表存在 2代表删除")
private String delFlag;
/**
*
*/
@ApiModelProperty(value = "创建部门")
private Long createDept;
/**
*
*/
@ApiModelProperty(value = "创建人")
private Long createBy;
/**
*
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@ApiModelProperty(value = "修改人")
private Long updateBy;
/**
*
*/
@ApiModelProperty(value = "修改时间")
private Date updateTime;
/**
* ID
*/
@ApiModelProperty(value = "租户ID")
private String tenantId;
}

@ -0,0 +1,89 @@
package com.zbkj.modules.autogencode.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* Entity
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEBCRMEB
* +----------------------------------------------------------------------
* @author:
* +----------------------------------------------------------------------
* @date Thu Oct 09 15:29:10 CST 2025
* +----------------------------------------------------------------------
* @email stivepeim@outlook.com
* +----------------------------------------------------------------------
*/
@Data
@TableName("pm_owner_house_rel")
public class PmOwnerHouseRel implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId
private Long id;
/**
* id
*/
private Long ownerId;
/**
* id
*/
private Long houseId;
/**
*
*/
private String relType;
/**
*
*/
private Date bindTime;
/**
*
*/
private Date unbindTime;
/**
*
*/
private String remark;
/**
* 0 2
*/
private String delFlag;
/**
*
*/
private Long createDept;
/**
*
*/
private Long createBy;
/**
*
*/
private Date createTime;
/**
*
*/
private Long updateBy;
/**
*
*/
private Date updateTime;
/**
* ID
*/
private String tenantId;
}

@ -0,0 +1,50 @@
/*
* @Author: zxf 1532322479@qq.com
* @Date: 2025-10-10 08:38:04
* @LastEditors: zxf 1532322479@qq.com
* @LastEditTime: 2025-10-10 09:43:58
* @FilePath: \crmebTwo\crmeb\crmeb-admin\src\main\java\com\zbkj\modules\autogencode\service\PmOwnerHouseRelService.java
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
package com.zbkj.modules.autogencode.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.modules.autogencode.entity.PmOwnerHouseRel;
import com.zbkj.common.page.CommonPage;
import com.zbkj.common.request.PageParamRequest;
import java.util.List;
import java.util.Map;
/**
*
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEBCRMEB
* +----------------------------------------------------------------------
* @author:
* +----------------------------------------------------------------------
* @date Thu Oct 09 15:29:10 CST 2025
* +----------------------------------------------------------------------
* @email stivepeim@outlook.com
* +----------------------------------------------------------------------
*/
public interface PmOwnerHouseRelService extends IService<PmOwnerHouseRel> {
/**
*
* @param queryWrapper
* @param pageParamRequest
* @return List<PmOwnerHouseRel>
*/
List<PmOwnerHouseRel> pageList(LambdaQueryWrapper<PmOwnerHouseRel> queryWrapper, PageParamRequest pageParamRequest);
}

@ -0,0 +1,25 @@
package com.zbkj.modules.autogencode.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.modules.autogencode.entity.PmOwner;
import com.zbkj.common.request.PageParamRequest;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import java.util.List;
import java.util.Map;
/**
*
* +----------------------------------------------------------------------
*/
public interface PmOwnerService extends IService<PmOwner> {
/**
* PmOwner
* @param pageParamRequest
* @return
*/
List<PmOwner> pageList(LambdaQueryWrapper<PmOwner> queryWrapper, PageParamRequest pageParamRequest);
}

@ -0,0 +1,44 @@
package com.zbkj.modules.autogencode.service.impl;
import com.github.pagehelper.PageHelper;
import com.zbkj.common.model.product.StoreProductRule;
import com.zbkj.service.dao.StoreProductRuleDao;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zbkj.modules.autogencode.dao.PmOwnerHouseRelDao;
import com.zbkj.modules.autogencode.entity.PmOwnerHouseRel;
import com.zbkj.modules.autogencode.service.PmOwnerHouseRelService;
import com.zbkj.common.page.CommonPage;
import com.zbkj.common.request.PageParamRequest;
import javax.annotation.Resource;
import java.util.Map;
import java.util.Arrays;
import java.util.List;
@Service("pmOwnerHouseRelService")
public class PmOwnerHouseRelServiceImpl extends ServiceImpl<PmOwnerHouseRelDao, PmOwnerHouseRel> implements PmOwnerHouseRelService {
@Resource
private PmOwnerHouseRelDao dao;
/**
*
*/
@Override
public List<PmOwnerHouseRel> pageList(LambdaQueryWrapper<PmOwnerHouseRel> queryWrapper, PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
return dao.selectList(queryWrapper);
}
}

@ -0,0 +1,42 @@
package com.zbkj.modules.autogencode.service.impl;
import com.github.pagehelper.PageHelper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.zbkj.modules.autogencode.dao.PmOwnerDao;
import com.zbkj.modules.autogencode.entity.PmOwner;
import com.zbkj.modules.autogencode.service.PmOwnerService;
import com.zbkj.common.page.CommonPage;
import com.zbkj.common.request.PageParamRequest;
import javax.annotation.Resource;
import java.util.Map;
import java.util.Arrays;
import java.util.List;
@Service("pmOwnerService")
public class PmOwnerServiceImpl extends ServiceImpl<PmOwnerDao, PmOwner> implements PmOwnerService {
@Resource
private PmOwnerDao dao;
/**
*
*/
@Override
public List<PmOwner> pageList(LambdaQueryWrapper<PmOwner> queryWrapper, PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
return dao.selectList(queryWrapper);
}
}

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zbkj.modules.autogencode.dao.PmOwnerDao">
<!-- 根据包名 模块名 以及类名 生成Mapper XML 配置文件 -->
<resultMap type="com.zbkj.modules.autogencode.entity.PmOwner" id="pmOwnerMap">
<result property="id" column="id"/>
<result property="ownerName" column="owner_name"/>
<result property="ownerType" column="owner_type"/>
<result property="ownerIdcard" column="owner_idcard"/>
<result property="phone" column="phone"/>
<result property="email" column="email"/>
<result property="emergencyContact" column="emergency_contact"/>
<result property="emergencyPhone" column="emergency_phone"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
<result property="createDept" column="create_dept"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="tenantId" column="tenant_id"/>
</resultMap>
</mapper>

@ -195,7 +195,7 @@ public class GenCodeUtils {
}
if (template.contains("Entity.java.vm")) {
return packagePath + "entity" + File.separator + className + "Entity.java";
return packagePath + "entity" + File.separator + className + ".java";
}
if (template.contains("Dao.java.vm")) {
@ -224,7 +224,7 @@ public class GenCodeUtils {
if (template.contains("index.vue.vm")) {
return "main" + File.separator + "resources" + File.separator + "src" + File.separator + "views" + File.separator + "modules" +
File.separator + moduleName + File.separator + className.toLowerCase() + ".vue";
File.separator + moduleName + File.separator + "index.vue";
}
if (template.contains("api.js.vm")) {

@ -3,37 +3,29 @@ package ${package}.${moduleName}.controller;
import java.util.Arrays;
import java.util.Map;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zbkj.common.request.PageParamRequest;
import com.zbkj.common.response.CommonResult;
import com.zbkj.common.page.CommonPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import ${package}.${moduleName}.entity.${className}Entity;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import ${package}.${moduleName}.entity.${className};
import ${package}.${moduleName}.service.${className}Service;
import ${mainPath}.common.utils.PageUtils;
import ${mainPath}.common.utils.R;
/**
* ${comments} 控制器
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* | Author: ${author}
* +----------------------------------------------------------------------
* @date ${datetime}
* +----------------------------------------------------------------------
* @date ${email}
* +----------------------------------------------------------------------
*/
@RestController
@RequestMapping("${moduleName}/${pathName}")
@ -41,14 +33,53 @@ public class ${className}Controller {
@Autowired
private ${className}Service ${classname}Service;
/**
* 列表信息
* 条件设置
* 根据实体类字段自动生成查询条件
*/
@RequestMapping("/list")
@PreAuthorize("${moduleName}:${pathName}:list")
public CommonResult<CommonPage<${classname}>> list(@RequestParam Map<String, Object> params){
CommonPage<${classname}> page = CommonPage.restPag(${classname}Service.queryPage(params));
private void condition(LambdaQueryWrapper<${className}> queryWrapper, ${className} request) {
if (request == null) {
return;
}
// 根据实体类字段自动生成查询条件
#foreach ($column in $columns)
#set ($getter = "get" + ${column.attrname.substring(0, 1).toUpperCase()} + ${column.attrname.substring(1)})
#set ($fieldType = $column.attrType)
#if ($fieldType == "String")
// $column.comments
if (StrUtil.isNotBlank(request.${getter}())) {
queryWrapper.eq(${className}::${getter}, request.${getter}());
}
#else
// $column.comments
if (request.${getter}() != null) {
queryWrapper.eq(${className}::${getter}, request.${getter}());
}
#end
#end
}
/**
* 分页显示${comments}
* @param request 搜索条件
* @param pageParamRequest 分页参数
*/
@ApiOperation(value = "分页列表")
@RequestMapping(value = "/list", method = RequestMethod.GET)
public CommonResult<CommonPage<${className}>> getList(@Validated ${className} request, @Validated PageParamRequest pageParamRequest) {
LambdaQueryWrapper<${className}> queryWrapper = new LambdaQueryWrapper();
// 应用搜索条件
condition(queryWrapper, request);
CommonPage<${className}> page = CommonPage.restPage(${classname}Service.pageList(queryWrapper, pageParamRequest));
return CommonResult.success(page);
}
@ -57,9 +88,8 @@ public class ${className}Controller {
* 详情数据
*/
@RequestMapping("/info/{${pk.attrname}}")
@PreAuthorize("${moduleName}:${pathName}:info")
public CommonResult<${classname}> info(@PathVariable("${pk.attrname}") ${pk.attrType} ${pk.attrname}){
${className}Entity ${classname} = ${classname}Service.getById(${pk.attrname});
public CommonResult<${className}> info(@PathVariable("${pk.attrname}") ${pk.attrType} ${pk.attrname}){
${className} ${classname} = ${classname}Service.getById(${pk.attrname});
return CommonResult.success(${classname});
}
@ -68,8 +98,7 @@ public class ${className}Controller {
* 新增数据
*/
@RequestMapping("/save")
@PreAuthorize("${moduleName}:${pathName}:save")
public CommonResult<String> save(@RequestBody ${className}Entity ${classname}){
public CommonResult<String> save(@RequestBody ${className} ${classname}){
if (${classname}Service.save(${classname})) {
return CommonResult.success();
}
@ -80,8 +109,7 @@ public class ${className}Controller {
* 修改数据
*/
@RequestMapping("/update")
@PreAuthorize("${moduleName}:${pathName}:update")
public CommonResult<String> update(@RequestBody ${className}Entity ${classname}){
public CommonResult<String> update(@RequestBody ${className} ${classname}){
if (${classname}Service.updateById(${classname})) {
return CommonResult.success();
}
@ -92,9 +120,8 @@ public class ${className}Controller {
* 删除:根据id集合
*/
@RequestMapping("/delete")
@PreAuthorize("${moduleName}:${pathName}:delete")
public CommonResult<String> delete(@RequestBody ${pk.attrType}[] ${pk.attrname}s){
if (${classname}Service.removeByIds(Arrays.asList(${pk.attrname}))) {
if (${classname}Service.removeByIds(Arrays.asList(${pk.attrname}s))) {
return CommonResult.success();
}
return CommonResult.failed();

@ -1,26 +1,13 @@
package ${package}.${moduleName}.dao;
import ${package}.${moduleName}.entity.${className}Entity;
import ${package}.${moduleName}.entity.${className};
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* ${comments} DAO 映射层
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* @author: ${author}
* +----------------------------------------------------------------------
* @date ${datetime}
* +----------------------------------------------------------------------
* @email ${email}
* +----------------------------------------------------------------------
*/
@Mapper
public interface ${className}Dao extends BaseMapper<${className}Entity> {
public interface ${className}Dao extends BaseMapper<${className}> {
}

@ -2,43 +2,30 @@ package ${package}.${moduleName}.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
#if(${hasBigDecimal})
import java.math.BigDecimal;
import java.math.BigDecimal;
#end
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* ${comments} Entity 实体类
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* @author: ${author}
* +----------------------------------------------------------------------
* @date ${datetime}
* +----------------------------------------------------------------------
* @email ${email}
* +----------------------------------------------------------------------
*/
@Data
@TableName("${tableName}")
public class ${className}Entity implements Serializable {
public class ${className} implements Serializable {
private static final long serialVersionUID = 1L;
#foreach ($column in $columns)
/**
* $column.comments
*/
#if($column.columnName == $pk.columnName)
@TableId
#end
private $column.attrType $column.attrname;
#foreach ($column in $columns)
/**
* $column.comments
*/
@ApiModelProperty(value = "$column.comments")
#if($column.columnName == $pk.columnName)
@TableId
#end
private $column.attrType $column.attrname;
#end
}

@ -1,35 +1,25 @@
package ${package}.${moduleName}.service;
import com.baomidou.mybatisplus.extension.service.IService;
import ${mainPath}.common.utils.PageUtils;
import ${package}.${moduleName}.entity.${className}Entity;
import ${package}.${moduleName}.entity.${className};
import com.zbkj.common.request.PageParamRequest;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import java.util.List;
import java.util.Map;
/**
* ${comments} 业务接口
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* @author: ${author}
* +----------------------------------------------------------------------
* @date ${datetime}
* +----------------------------------------------------------------------
* @email ${email}
* +----------------------------------------------------------------------
*/
public interface ${className}Service extends IService<${className}Entity> {
public interface ${className}Service extends IService<${className}> {
/**
* ${className} 列表查询
* @param request 默认是是体类 根据自己需求修改或者创建自己的request
* @param pageParamRequest 分页参数对象
* @return
*/
List<${className}> getList(${className}Entity request, PageParamRequest pageParamRequest)
List<${className}> pageList(LambdaQueryWrapper<${className}> queryWrapper, PageParamRequest pageParamRequest);
}

@ -1,54 +1,42 @@
package ${package}.${moduleName}.service.impl;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.pageQueryUtils.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.pagehelper.PageHelper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import ${mainPath}.common.utils.PageUtils;
import ${mainPath}.common.utils.Query;
import org.springframework.stereotype.Service;
import ${package}.${moduleName}.dao.${className}Dao;
import ${package}.${moduleName}.entity.${className}Entity;
import ${package}.${moduleName}.entity.${className};
import ${package}.${moduleName}.service.${className}Service;
import ${mainPath}.common.page.CommonPage;
import ${mainPath}.common.request.PageParamRequest;
import javax.annotation.Resource;
import java.util.Map;
import java.util.Arrays;
import java.util.List;
/**
* ${comments} 接口实现类
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* @author: ${author}
* +----------------------------------------------------------------------
* @date ${datetime}
* +----------------------------------------------------------------------
* @email ${email}
* +----------------------------------------------------------------------
*/
@Service("${classname}Service")
public class ${className}ServiceImpl extends ServiceImpl<${className}Dao, ${className}Entity> implements ${className}Service {
public class ${className}ServiceImpl extends ServiceImpl<${className}Dao, ${className}> implements ${className}Service {
@Resource
private ${className}Dao dao;
/**
* ${className}列表查询
* @param request 默认是是体类 根据自己需求修改或者创建自己的request
* @param pageParamRequest 分页参数对象
* @return
* 带分页参数的列表查询实现
*/
@Override
public PageUtils queryPage(${className}Entity request, PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPageNum(), pageParamRequest.getPageSize());
//列表查询 ${className} 类的多条件查询
LambdaQueryWrapper<${className}> lambdaQueryWrapper = new LambdaQueryWrapper<>();
${className} model = new ${className}();
BeanUtils.copyProperties(request, model);
lambdaQueryWrapper.setEntity(model);
return dao.selectList(lambdaQueryWrapper);
public List<${className}> pageList(LambdaQueryWrapper<${className}> queryWrapper, PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
return dao.selectList(queryWrapper);
}
}

@ -1,12 +1,3 @@
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from '@/utils/request'

@ -4,7 +4,7 @@
<mapper namespace="${package}.${moduleName}.dao.${className}Dao">
<!-- 根据包名 模块名 以及类名 生成Mapper XML 配置文件 -->
<resultMap type="${package}.${moduleName}.entity.${className}Entity" id="${classname}Map">
<resultMap type="${package}.${moduleName}.entity.${className}" id="${classname}Map">
#foreach($column in $columns)
<result property="${column.attrname}" column="${column.columnName}"/>
#end

Loading…
Cancel
Save