From 0fc483c7acf5bf30c92b921e8002774d0e97b61f Mon Sep 17 00:00:00 2001 From: zxf <1532322479@qq.com> Date: Mon, 5 Jan 2026 21:53:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E7=A7=9F=E6=88=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pm/pmowner/pmowner-add-and-update.vue | 77 ++++- .../pm/pmowner/rent-record-add-and-update.vue | 6 +- .../pm/pmowner/tenant-add-and-update.vue | 54 ++- .../controller/EbUserController.java | 309 ++++++++++++++++++ .../controller/PmOwnerController.java | 121 ++++++- .../modules/autogencode/entity/PmOwner.java | 9 + .../modules/autogencode/entity/PmTenant.java | 10 + .../autogencode/entity/PmTenantHouse.java | 173 +++++----- .../java/com/zbkj/common/model/user/User.java | 10 +- .../com/zbkj/service/service/UserService.java | 8 + .../service/service/impl/UserServiceImpl.java | 12 + 11 files changed, 652 insertions(+), 137 deletions(-) create mode 100644 crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/controller/EbUserController.java diff --git a/admin/src/views/pm/pmowner/pmowner-add-and-update.vue b/admin/src/views/pm/pmowner/pmowner-add-and-update.vue index 436fc44..bdcb120 100644 --- a/admin/src/views/pm/pmowner/pmowner-add-and-update.vue +++ b/admin/src/views/pm/pmowner/pmowner-add-and-update.vue @@ -81,7 +81,7 @@ - + @@ -90,6 +90,7 @@ import * as deptApi from '@/api/sysdept.js' import * as tenantApi from '@/api/pmtenant.js' import * as houseApi from '@/api/pmhouse.js' + import * as rentRecordApi from '@/api/pmtenanthouse.js' import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import TenantAddAndUpdate from './tenant-add-and-update.vue' @@ -120,6 +121,9 @@ ownerName: [ { required: true, message: '业主姓名 为必填项', trigger: 'blur' } ], + deptId: [ + { required: true, message: '部门 为必填项', trigger: 'blur' } + ], ownerType: [ { required: true, message: '业主类型 为必填项', trigger: 'blur' } ], @@ -150,6 +154,7 @@ tenantApi.pmtenantListByOwnerIdApi(this.dataForm.id, { page: 1, limit: 9999 }).then(res => { try { this.tenantList = Array.isArray(res) ? res : (res.list || []) + this.loadRentRecordsForTenants() } catch (error) { this.tenantList = [] } @@ -157,6 +162,36 @@ this.tenantList = [] }) }, + // 加载租户的租赁记录 + loadRentRecordsForTenants() { + this.tenantList.forEach(tenant => { + if (tenant.id) { + rentRecordApi.pmtenanthouseListApi({ rentId: tenant.id, page: 1, limit: 9999 }).then(res => { + try { + tenant.pmTenantHouses = Array.isArray(res) ? res : (res.list || []) + } catch (error) { + tenant.pmTenantHouses = [] + } + }).catch(err => { + tenant.pmTenantHouses = [] + }) + } else { + tenant.pmTenantHouses = [] + } + }) + }, + // 保存租户(从租户弹窗接收) + saveTenant(tenantData) { + if (!tenantData) return + + const existingIndex = this.tenantList.findIndex(tenant => tenant.id === tenantData.id) + + if (existingIndex !== -1) { + this.tenantList.splice(existingIndex, 1, tenantData) + } else { + this.tenantList.push(tenantData) + } + }, // 添加租户 addTenant() { if (this.$refs.tenantAddOrUpdate) { @@ -212,8 +247,13 @@ if (this.dataForm.id) { api.pmownerDetailApi(id).then(function(res) { this.dataForm = res; - // 获取该业主的租户列表 - this.getTenantList() + // 如果后端返回了租户列表,直接使用 + if (res.pmTenants && res.pmTenants.length > 0) { + this.tenantList = res.pmTenants + } else { + // 否则通过API获取租户列表 + this.getTenantList() + } }.bind(this)) } else { // 新增时清空租户列表 @@ -225,14 +265,41 @@ dataSubmit () { this.$refs['dataForm'].validate((valid) => { if (valid) { + const submitData = { + id: this.dataForm.id, + ownerName: this.dataForm.ownerName, + ownerType: this.dataForm.ownerType, + ownerIdcard: this.dataForm.ownerIdcard, + phone: this.dataForm.phone, + email: this.dataForm.email, + emergencyContact: this.dataForm.emergencyContact, + emergencyPhone: this.dataForm.emergencyPhone, + status: this.dataForm.status, + deptId: this.dataForm.deptId, + houseId: this.dataForm.houseId, + remark: this.dataForm.remark, + pmTenants: this.tenantList.map(tenant => ({ + id: tenant.id, + tenantName: tenant.tenantName, + tenantType: tenant.tenantType, + idCard: tenant.idCard, + phome: tenant.phome, + company: tenant.company, + status: tenant.status, + remark: tenant.remark, + tenantId: tenant.tenantId, + pmTenantHouses: tenant.pmTenantHouses || [] + })) + } + if (this.dataForm.id) { - api.pmownerUpdateApi(this.dataForm).then(function(res) { + api.pmownerUpdateApi(submitData).then(function(res) { this.$message.success('保存成功') this.visible = false this.$emit('refreshDataList') }.bind(this)); } else { - api.pmownerCreateApi(this.dataForm).then(function(res) { + api.pmownerCreateApi(submitData).then(function(res) { this.$message.success('新增成功') this.visible = false this.$emit('refreshDataList') diff --git a/admin/src/views/pm/pmowner/rent-record-add-and-update.vue b/admin/src/views/pm/pmowner/rent-record-add-and-update.vue index 7b3a8ff..1323d74 100644 --- a/admin/src/views/pm/pmowner/rent-record-add-and-update.vue +++ b/admin/src/views/pm/pmowner/rent-record-add-and-update.vue @@ -4,14 +4,14 @@ :title="!dataForm.id ? '添加' : '修改'" :close-on-click-modal="false" :visible.sync="visible" - :z-index="3000"> + :z-index="2000"> - + - + diff --git a/admin/src/views/pm/pmowner/tenant-add-and-update.vue b/admin/src/views/pm/pmowner/tenant-add-and-update.vue index e4e2790..480c91b 100644 --- a/admin/src/views/pm/pmowner/tenant-add-and-update.vue +++ b/admin/src/views/pm/pmowner/tenant-add-and-update.vue @@ -28,14 +28,13 @@ - - - 添加租赁记录 - + + + 添加租赁记录 + -
@@ -195,36 +194,23 @@ dataSubmit () { this.$refs['dataForm'].validate((valid) => { if (valid) { - if (this.dataForm.id) { - api.pmtenantUpdateApi(this.dataForm).then(() => { - this.$message.success('保存成功') - this.visible = false - this.$emit('refreshDataList') - }) - } else { - api.pmtenantCreateApi(this.dataForm).then(res => { - const tenantId = res.id - if (tenantId && this.ownerId) { - const relData = { - tenantHouseId: tenantId, - ownerId: this.ownerId, - tenantId: this.dataForm.tenantId, - delFlag: '0' - } - relApi.pmtentanthouserelCreateApi(relData).then(() => { - this.$message.success('新增成功') - this.visible = false - this.$emit('refreshDataList') - }).catch(() => { - this.$message.error('关联关系创建失败') - }) - } else { - this.$message.success('新增成功') - this.visible = false - this.$emit('refreshDataList') - } - }) + const tenantData = { + id: this.dataForm.id, + tenantName: this.dataForm.tenantName, + tenantType: this.dataForm.tenantType, + idCard: this.dataForm.idCard, + phome: this.dataForm.phome, + company: this.dataForm.company, + status: this.dataForm.status, + remark: this.dataForm.remark, + tenantId: this.dataForm.tenantId, + pmTenantHouses: this.rentRecords } + + this.$emit('saveTenant', tenantData) + this.$message.success('保存成功') + this.visible = false + this.$emit('refreshDataList') } }) } diff --git a/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/controller/EbUserController.java b/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/controller/EbUserController.java new file mode 100644 index 0000000..7e0bb7d --- /dev/null +++ b/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/controller/EbUserController.java @@ -0,0 +1,309 @@ +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.model.user.User; +import com.zbkj.common.request.PageParamRequest; +import com.zbkj.common.response.CommonResult; +import com.zbkj.common.page.CommonPage; +import com.zbkj.service.service.UserService; +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; + + + + +/** + * 用户表 控制器 + */ +@RestController +@RequestMapping("api/autogencode/ebuser") +public class EbUserController { + @Autowired + private UserService ebUserService; + + + + /** + * 条件设置 + * 根据实体类字段自动生成查询条件 + */ + private void condition(LambdaQueryWrapper queryWrapper, User request) { + if (request == null) { + return; + } + + // 根据实体类字段自动生成查询条件 + + // 用户id + if (request.getUid() != null) { + queryWrapper.eq(User::getUid, request.getUid()); + } + + // 用户账号 + if (StrUtil.isNotBlank(request.getAccount())) { + queryWrapper.eq(User::getAccount, request.getAccount()); + } + + // 用户密码 + if (StrUtil.isNotBlank(request.getPwd())) { + queryWrapper.eq(User::getPwd, request.getPwd()); + } + + // 真实姓名 + if (StrUtil.isNotBlank(request.getRealName())) { + queryWrapper.eq(User::getRealName, request.getRealName()); + } + + // 生日 + if (StrUtil.isNotBlank(request.getBirthday())) { + queryWrapper.eq(User::getBirthday, request.getBirthday()); + } + + // 身份证号码 + if (StrUtil.isNotBlank(request.getCardId())) { + queryWrapper.eq(User::getCardId, request.getCardId()); + } + + // 用户备注 + if (StrUtil.isNotBlank(request.getMark())) { + queryWrapper.eq(User::getMark, request.getMark()); + } + + // 合伙人id + if (request.getPartnerId() != null) { + queryWrapper.eq(User::getPartnerId, request.getPartnerId()); + } + + // 用户分组id + if (StrUtil.isNotBlank(request.getGroupId())) { + queryWrapper.eq(User::getGroupId, request.getGroupId()); + } + + // 标签id + if (StrUtil.isNotBlank(request.getTagId())) { + queryWrapper.eq(User::getTagId, request.getTagId()); + } + + // 用户昵称 + if (StrUtil.isNotBlank(request.getNickname())) { + queryWrapper.eq(User::getNickname, request.getNickname()); + } + + // 用户头像 + if (StrUtil.isNotBlank(request.getAvatar())) { + queryWrapper.eq(User::getAvatar, request.getAvatar()); + } + + // 手机号码 + if (StrUtil.isNotBlank(request.getPhone())) { + queryWrapper.eq(User::getPhone, request.getPhone()); + } + + // 添加ip + if (StrUtil.isNotBlank(request.getAddIp())) { + queryWrapper.eq(User::getAddIp, request.getAddIp()); + } + + // 最后一次登录ip + if (StrUtil.isNotBlank(request.getLastIp())) { + queryWrapper.eq(User::getLastIp, request.getLastIp()); + } + + // 用户余额 + if (request.getNowMoney() != null) { + queryWrapper.eq(User::getNowMoney, request.getNowMoney()); + } + + // 佣金金额 + if (request.getBrokeragePrice() != null) { + queryWrapper.eq(User::getBrokeragePrice, request.getBrokeragePrice()); + } + + // 用户剩余积分 + if (request.getIntegral() != null) { + queryWrapper.eq(User::getIntegral, request.getIntegral()); + } + + // 用户剩余经验 + if (request.getExperience() != null) { + queryWrapper.eq(User::getExperience, request.getExperience()); + } + + // 连续签到天数 + if (request.getSignNum() != null) { + queryWrapper.eq(User::getSignNum, request.getSignNum()); + } + + // 1为正常,0为禁止 + if (request.getStatus() != null) { + queryWrapper.eq(User::getStatus, request.getStatus()); + } + + // 等级 + if (request.getLevel() != null) { + queryWrapper.eq(User::getLevel, request.getLevel()); + } + + // 推广员id + if (request.getSpreadUid() != null) { + queryWrapper.eq(User::getSpreadUid, request.getSpreadUid()); + } + + // 推广员关联时间 + if (request.getSpreadTime() != null) { + queryWrapper.eq(User::getSpreadTime, request.getSpreadTime()); + } + + // 用户类型 + if (StrUtil.isNotBlank(request.getUserType())) { + queryWrapper.eq(User::getUserType, request.getUserType()); + } + + // 是否为推广员 + if (request.getIsPromoter() != null) { + queryWrapper.eq(User::getIsPromoter, request.getIsPromoter()); + } + + // 用户购买次数 + if (request.getPayCount() != null) { + queryWrapper.eq(User::getPayCount, request.getPayCount()); + } + + // 下级人数 + if (request.getSpreadCount() != null) { + queryWrapper.eq(User::getSpreadCount, request.getSpreadCount()); + } + + // 详细地址 + if (StrUtil.isNotBlank(request.getAddres())) { + queryWrapper.eq(User::getAddres, request.getAddres()); + } + + // 管理员编号 + if (request.getAdminid() != null) { + queryWrapper.eq(User::getAdminid, request.getAdminid()); + } + + // 用户登陆类型,h5,wechat,routine + if (StrUtil.isNotBlank(request.getLoginType())) { + queryWrapper.eq(User::getLoginType, request.getLoginType()); + } + + // 创建时间 + if (request.getCreateTime() != null) { + queryWrapper.eq(User::getCreateTime, request.getCreateTime()); + } + + // 更新时间 + if (request.getUpdateTime() != null) { + queryWrapper.eq(User::getUpdateTime, request.getUpdateTime()); + } + + // 最后一次登录时间 + if (request.getLastLoginTime() != null) { + queryWrapper.eq(User::getLastLoginTime, request.getLastLoginTime()); + } + + // 清除时间 + if (request.getCleanTime() != null) { + queryWrapper.eq(User::getCleanTime, request.getCleanTime()); + } + + // 推广等级记录 + if (StrUtil.isNotBlank(request.getPath())) { + queryWrapper.eq(User::getPath, request.getPath()); + } + + // 是否关注公众号 + if (request.getSubscribe() != null) { + queryWrapper.eq(User::getSubscribe, request.getSubscribe()); + } + + + // 国家,中国CN,其他OTHER + if (StrUtil.isNotBlank(request.getCountry())) { + queryWrapper.eq(User::getCountry, request.getCountry()); + } + + // 成为分销员时间 + if (request.getPromoterTime() != null) { + queryWrapper.eq(User::getPromoterTime, request.getPromoterTime()); + } + + } + + + /** + * 分页显示用户表 + * @param request 搜索条件 + * @param pageParamRequest 分页参数 + */ + @ApiOperation(value = "分页列表") + @RequestMapping(value = "/list", method = RequestMethod.GET) + public CommonResult> getList(@Validated User request, @Validated PageParamRequest pageParamRequest) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + + // 应用搜索条件 + condition(queryWrapper, request); + + CommonPage page = CommonPage.restPage(ebUserService.pageList(queryWrapper, pageParamRequest)); + return CommonResult.success(page); + } + + + /** + * 详情数据 + */ + @RequestMapping(value = "/info/{uid}", method = RequestMethod.GET) + public CommonResult info(@PathVariable("uid") Integer uid){ + User ebUser = ebUserService.getById(uid); + + return CommonResult.success(ebUser); + } + + /** + * 新增数据 + */ + @RequestMapping(value = "/save", method = RequestMethod.POST) + public CommonResult save(@RequestBody User ebUser){ + if (ebUserService.save(ebUser)) { + return CommonResult.success(); + } + return CommonResult.failed(); + } + + /** + * 修改数据 + */ + @RequestMapping(value = "/update", method = RequestMethod.POST) + public CommonResult update(@RequestBody User ebUser){ + if (ebUserService.updateById(ebUser)) { + return CommonResult.success(); + } + return CommonResult.failed(); + } + + /** + * 删除:根据id集合 + */ + @RequestMapping(value = "/delete", method = RequestMethod.POST) + public CommonResult delete(@RequestBody Integer[] uids){ + if (ebUserService.removeByIds(Arrays.asList(uids))) { + return CommonResult.success(); + } + return CommonResult.failed(); + } + +} diff --git a/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/controller/PmOwnerController.java b/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/controller/PmOwnerController.java index 1db9c2a..c88b24e 100644 --- a/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/controller/PmOwnerController.java +++ b/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/controller/PmOwnerController.java @@ -26,6 +26,12 @@ import com.zbkj.common.model.system.SysDept; import com.zbkj.service.service.SysDeptService; import com.zbkj.modules.autogencode.entity.PmOwnerHouseRel; import com.zbkj.modules.autogencode.service.PmOwnerHouseRelService; +import com.zbkj.modules.autogencode.entity.PmTenant; +import com.zbkj.modules.autogencode.service.PmTenantService; +import com.zbkj.modules.autogencode.entity.PmTenantHouse; +import com.zbkj.modules.autogencode.service.PmTenantHouseService; +import com.zbkj.modules.autogencode.entity.PmTenantHouseRel; +import com.zbkj.modules.autogencode.service.PmTenantHouseRelService; @@ -45,6 +51,15 @@ public class PmOwnerController { @Autowired private PmOwnerHouseRelService pmOwnerHouseRelService; + @Autowired + private PmTenantService pmTenantService; + + @Autowired + private PmTenantHouseService pmTenantHouseService; + + @Autowired + private PmTenantHouseRelService pmTenantHouseRelService; + /** @@ -228,7 +243,6 @@ public class PmOwnerController { public CommonResult info(@PathVariable("id") Long id){ PmOwner pmOwner = pmOwnerService.getById(id); - // 查询业主房屋关联关系 if (pmOwner != null) { LambdaQueryWrapper relQueryWrapper = new LambdaQueryWrapper<>(); relQueryWrapper.eq(PmOwnerHouseRel::getOwnerId, id); @@ -237,6 +251,25 @@ public class PmOwnerController { if (rels != null && !rels.isEmpty()) { pmOwner.setHouseId(rels.get(0).getHouseId()); } + + LambdaQueryWrapper tenantRelQueryWrapper = new LambdaQueryWrapper<>(); + tenantRelQueryWrapper.eq(PmTenantHouseRel::getOwnerId, id); + List tenantRels = pmTenantHouseRelService.list(tenantRelQueryWrapper); + + if (tenantRels != null && !tenantRels.isEmpty()) { + List tenantList = new ArrayList<>(); + for (PmTenantHouseRel tenantRel : tenantRels) { + PmTenant tenant = pmTenantService.getById(tenantRel.getTenantHouseId()); + if (tenant != null) { + LambdaQueryWrapper houseQueryWrapper = new LambdaQueryWrapper<>(); + houseQueryWrapper.eq(PmTenantHouse::getRentId, tenant.getId()); + List tenantHouses = pmTenantHouseService.list(houseQueryWrapper); + tenant.setPmTenantHouses(tenantHouses); + tenantList.add(tenant); + } + } + pmOwner.setPmTenants(tenantList); + } } return CommonResult.success(pmOwner); @@ -248,15 +281,38 @@ public class PmOwnerController { @RequestMapping(value = "/save", method = RequestMethod.POST) public CommonResult save(@RequestBody PmOwner pmOwner){ if (pmOwnerService.save(pmOwner)) { - // 如果选择了房屋,创建业主房屋关联关系 + Long ownerId = pmOwner.getId(); + if (pmOwner.getHouseId() != null) { PmOwnerHouseRel rel = new PmOwnerHouseRel(); - rel.setOwnerId(pmOwner.getId()); + rel.setOwnerId(ownerId); rel.setHouseId(pmOwner.getHouseId()); rel.setRelType("1"); rel.setBindTime(new java.util.Date()); pmOwnerHouseRelService.save(rel); } + + if (pmOwner.getPmTenants() != null && !pmOwner.getPmTenants().isEmpty()) { + for (PmTenant tenant : pmOwner.getPmTenants()) { + if (pmTenantService.save(tenant)) { + Long tenantId = tenant.getId(); + + PmTenantHouseRel tenantHouseRel = new PmTenantHouseRel(); + tenantHouseRel.setTenantHouseId(tenantId); + tenantHouseRel.setOwnerId(ownerId); + tenantHouseRel.setTenantId(tenant.getTenantId()); + tenantHouseRel.setDelFlag("0"); + pmTenantHouseRelService.save(tenantHouseRel); + + if (tenant.getPmTenantHouses() != null && !tenant.getPmTenantHouses().isEmpty()) { + for (PmTenantHouse tenantHouse : tenant.getPmTenantHouses()) { + tenantHouse.setRentId(tenantId); + pmTenantHouseService.save(tenantHouse); + } + } + } + } + } return CommonResult.success(); } return CommonResult.failed(); @@ -268,35 +324,80 @@ public class PmOwnerController { @RequestMapping(value = "/update", method = RequestMethod.POST) public CommonResult update(@RequestBody PmOwner pmOwner){ if (pmOwnerService.updateById(pmOwner)) { - // 处理业主房屋关联关系 + Long ownerId = pmOwner.getId(); + LambdaQueryWrapper relQueryWrapper = new LambdaQueryWrapper<>(); - relQueryWrapper.eq(PmOwnerHouseRel::getOwnerId, pmOwner.getId()); + relQueryWrapper.eq(PmOwnerHouseRel::getOwnerId, ownerId); List existingRels = pmOwnerHouseRelService.list(relQueryWrapper); if (pmOwner.getHouseId() != null) { - // 如果选择了房屋 if (existingRels != null && !existingRels.isEmpty()) { - // 更新现有的关联关系 PmOwnerHouseRel existingRel = existingRels.get(0); existingRel.setHouseId(pmOwner.getHouseId()); existingRel.setRelType("1"); existingRel.setBindTime(new java.util.Date()); pmOwnerHouseRelService.updateById(existingRel); } else { - // 创建新的关联关系 PmOwnerHouseRel rel = new PmOwnerHouseRel(); - rel.setOwnerId(pmOwner.getId()); + rel.setOwnerId(ownerId); rel.setHouseId(pmOwner.getHouseId()); rel.setRelType("1"); rel.setBindTime(new java.util.Date()); pmOwnerHouseRelService.save(rel); } } else { - // 如果没有选择房屋,删除现有的关联关系 if (existingRels != null && !existingRels.isEmpty()) { pmOwnerHouseRelService.removeByIds(existingRels.stream().map(PmOwnerHouseRel::getId).collect(java.util.stream.Collectors.toList())); } } + + if (pmOwner.getPmTenants() != null && !pmOwner.getPmTenants().isEmpty()) { + for (PmTenant tenant : pmOwner.getPmTenants()) { + if (tenant.getId() != null) { + pmTenantService.updateById(tenant); + } else { + pmTenantService.save(tenant); + } + + Long tenantId = tenant.getId(); + + LambdaQueryWrapper tenantRelQueryWrapper = new LambdaQueryWrapper<>(); + tenantRelQueryWrapper.eq(PmTenantHouseRel::getTenantHouseId, tenantId); + tenantRelQueryWrapper.eq(PmTenantHouseRel::getOwnerId, ownerId); + List existingTenantRels = pmTenantHouseRelService.list(tenantRelQueryWrapper); + + if (existingTenantRels == null || existingTenantRels.isEmpty()) { + PmTenantHouseRel tenantHouseRel = new PmTenantHouseRel(); + tenantHouseRel.setTenantHouseId(tenantId); + tenantHouseRel.setOwnerId(ownerId); + tenantHouseRel.setTenantId(tenant.getTenantId()); + tenantHouseRel.setDelFlag("0"); + pmTenantHouseRelService.save(tenantHouseRel); + } + + if (tenant.getPmTenantHouses() != null && !tenant.getPmTenantHouses().isEmpty()) { + for (PmTenantHouse tenantHouse : tenant.getPmTenantHouses()) { + if (tenantHouse.getId() != null) { + PmTenantHouse existingHouse = pmTenantHouseService.getById(tenantHouse.getId()); + if (existingHouse != null) { + existingHouse.setRentId(tenantId); + existingHouse.setRentBeginTime(tenantHouse.getRentBeginTime()); + existingHouse.setRentEndTime(tenantHouse.getRentEndTime()); + existingHouse.setDepositAmount(tenantHouse.getDepositAmount()); + existingHouse.setRentAmount(tenantHouse.getRentAmount()); + existingHouse.setAuthScope(tenantHouse.getAuthScope()); + existingHouse.setStatus(tenantHouse.getStatus()); + existingHouse.setRemark(tenantHouse.getRemark()); + pmTenantHouseService.updateById(existingHouse); + } + } else { + tenantHouse.setRentId(tenantId); + pmTenantHouseService.save(tenantHouse); + } + } + } + } + } return CommonResult.success(); } return CommonResult.failed(); diff --git a/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmOwner.java b/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmOwner.java index bc466a1..4cd6ff6 100644 --- a/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmOwner.java +++ b/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmOwner.java @@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.zbkj.modules.autogencode.entity.PmTenant; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.util.Date; +import java.util.List; import lombok.Data; @@ -116,4 +118,11 @@ public class PmOwner implements Serializable { @ApiModelProperty(value = "租户ID") private String tenantId; + /** + * 租户列表(不映射到数据库) + */ + @TableField(exist = false) + @ApiModelProperty(value = "租户列表") + private List pmTenants; + } diff --git a/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmTenant.java b/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmTenant.java index 906a0d3..ff4dd87 100644 --- a/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmTenant.java +++ b/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmTenant.java @@ -1,12 +1,15 @@ package com.zbkj.modules.autogencode.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.zbkj.modules.autogencode.entity.PmTenantHouse; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.util.Date; +import java.util.List; import lombok.Data; @@ -92,4 +95,11 @@ public class PmTenant implements Serializable { @ApiModelProperty(value = "租户ID") private String tenantId; + /** + * 租赁记录列表(不映射到数据库) + */ + @TableField(exist = false) + @ApiModelProperty(value = "租赁记录列表") + private List pmTenantHouses; + } diff --git a/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmTenantHouse.java b/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmTenantHouse.java index 42aa5d4..030719a 100644 --- a/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmTenantHouse.java +++ b/crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/entity/PmTenantHouse.java @@ -3,99 +3,104 @@ package com.zbkj.modules.autogencode.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; - import java.math.BigDecimal; - import java.io.Serializable; +import java.math.BigDecimal; +import java.io.Serializable; import java.util.Date; + import lombok.Data; @Data @TableName("pm_tenant_house") public class PmTenantHouse implements Serializable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ApiModelProperty(value = "id") + @TableId(type = IdType.AUTO) + private Long id; + /** + * 租户信息id + */ + @ApiModelProperty(value = "租户信息id") + private Long rentId; + /** + * 绑定时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss") + @ApiModelProperty(value = "绑定时间") + private Date rentBeginTime; + /** + * 解绑时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss") + @ApiModelProperty(value = "解绑时间") + private Date rentEndTime; + /** + * 押金金额 + */ + @ApiModelProperty(value = "押金金额") + private BigDecimal depositAmount; + /** + * 月租金 + */ + @ApiModelProperty(value = "月租金") + private BigDecimal rentAmount; + /** + * 授权范围 + */ + @ApiModelProperty(value = "授权范围") + private String authScope; + /** + * 状态 + */ + @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; - /** - * id - */ - @ApiModelProperty(value = "id") - @TableId(type = IdType.AUTO) - private Long id; - /** - * 租户信息id - */ - @ApiModelProperty(value = "租户信息id") - private Long rentId; - /** - * 绑定时间 - */ - @ApiModelProperty(value = "绑定时间") - private Date rentBeginTime; - /** - * 解绑时间 - */ - @ApiModelProperty(value = "解绑时间") - private Date rentEndTime; - /** - * 押金金额 - */ - @ApiModelProperty(value = "押金金额") - private BigDecimal depositAmount; - /** - * 月租金 - */ - @ApiModelProperty(value = "月租金") - private BigDecimal rentAmount; - /** - * 授权范围 - */ - @ApiModelProperty(value = "授权范围") - private String authScope; - /** - * 状态 - */ - @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; } diff --git a/crmeb/crmeb-common/src/main/java/com/zbkj/common/model/user/User.java b/crmeb/crmeb-common/src/main/java/com/zbkj/common/model/user/User.java index b2e651b..d6345ca 100644 --- a/crmeb/crmeb-common/src/main/java/com/zbkj/common/model/user/User.java +++ b/crmeb/crmeb-common/src/main/java/com/zbkj/common/model/user/User.java @@ -156,4 +156,12 @@ public class User implements Serializable { @ApiModelProperty(value = "成为分销员时间") private Date promoterTime; -} + + @ApiModelProperty(value = "员工类型") + private String staffType; + + @ApiModelProperty(value = "业主/租户Id") + private Long ownerTenantId; + + +} \ No newline at end of file diff --git a/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/UserService.java b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/UserService.java index b3b5143..64934ca 100644 --- a/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/UserService.java +++ b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/UserService.java @@ -1,5 +1,6 @@ package com.zbkj.service.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.IService; import com.github.pagehelper.PageInfo; import com.zbkj.common.model.user.User; @@ -25,6 +26,13 @@ import java.util.Map; */ public interface UserService extends IService { + /** + * EbUser 列表查询 + * @param pageParamRequest 分页参数对象 + * @return + */ + List pageList(LambdaQueryWrapper queryWrapper, PageParamRequest pageParamRequest); + /** * 用户分页列表 * @param request 查询参数 diff --git a/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/UserServiceImpl.java b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/UserServiceImpl.java index 8685414..441993c 100644 --- a/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/UserServiceImpl.java +++ b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/UserServiceImpl.java @@ -123,6 +123,18 @@ public class UserServiceImpl extends ServiceImpl implements UserS @Autowired private SystemAttachmentService systemAttachmentService; + /** + * 带分页参数的列表查询实现 + */ + @Override + public List pageList(LambdaQueryWrapper queryWrapper, PageParamRequest pageParamRequest) { + + PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit()); + + return userDao.selectList(queryWrapper); + } + + /** * 分页显示用户表 *