SpringBoot3+Vue3实现模块之间的关联

1.模块之间的关联,有哪些形式

1.1普通业务模块之间

1.2普通业务模块与角色模块之间

2.房屋租赁系统中:

(1)房屋信息 ↔ 其他模块

  • 关联户主:每套房屋必须关联一个户主(一对一)

  • 关联租客:通过租赁合同与租客建立关联(一对多)

  • 关联看房申请:租客可对房屋发起看房申请(一对多)

  • 关联报修:房屋出现问题时产生报修记录(一对多)

(2)租赁合同 ↔ 核心业务

  • 看房申请 → 合同:通过审核的看房申请可生成合同

  • 合同 → 收租:合同确定租金标准、支付周期等收租依据

  • 合同 → 报修:只有有效合同期内的租客可提交报修

(3)收租管理关联

  • 合同生成后自动创建收租计划

  • 每次收租记录关联具体合同和房屋

  • 统计模块聚合所有收租记录数据

(4)报修流程关联

  A[租客] -->|提交| B[报修信息]
  B -->|分配| C[维修工]
  C -->|完成| D[维修数据]
  D -->|反馈| A
  1. 租客在"报修管理"提交申请(关联房屋ID和合同ID)

  2. 系统自动验证合同有效性

  3. 管理员分配维修工处理

  4. 维修完成后更新"维修数据"

  5. 数据同步到:

  • 房屋信息(维护记录)
  • 租客界面(处理结果通知)
  • 统计模块(维修周期分析)

(5)租客权限

  • 只能查看自己关联的合同、收租、报修记录
  • 只能申请可租状态的房屋

(6)管理员权限

  • 可跨户主管理所有房屋

  • 审核所有合同和报修流程

  • 生成全局统

3.数据表关联建议

主表关联表关联字段
房屋信息 户主 huzhu_id
房屋信息 租赁合同 house_id
租赁合同 租客 zuke_id
租赁合同 收租计划 contract_id
报修信息 房屋 house_id
报修信息 租客 tenant_id

 

4.普通业务模块之间

将房屋信息与户主信息关联上操作

1.每套房屋必须关联一个户主(一对一),在房屋信息表中创建一个关联字段huZhu_id

2.在对应的实体类和sql语句中加上这个字段

3.给字段初始化,在页面新增和编辑的时候,数据传到后端,操作进入数据库中

<el-form-item label="户主姓名">
        <el-select
            v-model="data.form.houseOwnerId"
            placeholder="请输入户主姓名"
            style="width: 100%"
        >
          <el-option
              v-for="item in data.houseOwnerDate"
              :key="item.id"
              :label="item.huZhuXingMing"
              :value="item.id"
          />
        </el-select>
      </el-form-item>
const loadHouseOwner = () => {
  request.get('huzhu/selectAll').then(res => {
    if (res.code==='200'){
      data.houseOwnerDate=res.data
    }else {
      ElMessage.error(res.msg)
    }
  })
}
loadHouseOwner()

4.数据库存的是户主的id,如何展示户主姓名:

  a.java代码里写关联逻辑

@Resource
    private HuZhuMapper huZhuMapper;
    public PageInfo<FangWuXinXi> selectPage(FangWuXinXi fangWuXinXi, Integer pageNum, Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<FangWuXinXi> list=fangWuXinXiMapper.selectAll(fangWuXinXi);
        //list里面只有huZhuId
        for (FangWuXinXi dbFangWuXinXi:list){
            Integer huZhuId=dbFangWuXinXi.getHuZhuId();
            HuZhu huzhu = huZhuMapper.selectById(huZhuId);
            if (ObjectUtil.isNotEmpty(huzhu)){
                dbFangWuXinXi.setFangWuHuZhu(huzhu.getHuZhuXingMing());
                dbFangWuXinXi.setHuZhuShouJi(huzhu.getLianXiFangShi());
            }
        }
        return PageInfo.of(list);
    }

  b.sql里写关联逻辑

<select id="selectAll" resultType="com.example.springboot1.entity.FangWuXinXi">
        select fangwuxinxi.*,huzhu.huZhuXingMing as fangWuHuZhu,huzhu.lianXiFangShi as FangWuShouJi from fangwuxinxi left join huzhu on fangwuxinxi.huzhu_id=huzhu.id 
<where> <if test="fangYuanLeiXing != null">fangyuanleixing like concat('%',#{fangYuanLeiXing},'%')</if> </where> </select>

5.普通业务模块与角色模块之间

将租赁合同与租客信息关联

1.租客只能查看自己关联的合同,在租赁合同表中创建一个关联字段zuke_id

2.在对应的实体类和sql语句中加上这个字段

3.给字段初始化,在页面新增和编辑的时候,数据传到后端,操作进入数据库中

public PageInfo<ZuLinHeTong> selectPage(ZuLinHeTong zuLinHeTong, Integer pageNum, Integer pageSize) {
//拿到当前登录用户的角色
Account currentAccount=TokenUtil.getCurrentUser();
List<ZuLinHeTong> list;
if ("租客".equals(currentAccount.getRole())){
Integer zuKeId1=currentAccount.getId();
list=zuLinHeTongMapper.selectByZuKeId(String.valueOf(zuKeId1));
for (ZuLinHeTong dbZuLinHeTong:list){
Integer zuKeId=dbZuLinHeTong.getZuKeId();
ZuKe zuKe = zuKeMapper.selectById(String.valueOf(zuKeId));
if (ObjectUtil.isNotEmpty(zuKe)){
dbZuLinHeTong.setZhangHao(zuKe.getUsername());
dbZuLinHeTong.setZuKeXingMing(zuKe.getXingMing());
dbZuLinHeTong.setZuKeShenFenZheng(zuKe.getShenFenZheng());
dbZuLinHeTong.setZuKeShouJi(zuKe.getShouJi());
}
}
}else {
PageHelper.startPage(pageNum,pageSize);
list=zuLinHeTongMapper.selectAll(zuLinHeTong);
for (ZuLinHeTong dbZuLinHeTong:list){
Integer zuKeId=dbZuLinHeTong.getZuKeId();
ZuKe zuKe = zuKeMapper.selectById(String.valueOf(zuKeId));
if (ObjectUtil.isNotEmpty(zuKe)){
dbZuLinHeTong.setZhangHao(zuKe.getUsername());
dbZuLinHeTong.setZuKeXingMing(zuKe.getXingMing());
dbZuLinHeTong.setZuKeShenFenZheng(zuKe.getShenFenZheng());
dbZuLinHeTong.setZuKeShouJi(zuKe.getShouJi());
}
}
}
return PageInfo.of(list);
}
posted @ 2025-04-17 15:08  师大无语  阅读(31)  评论(0)    收藏  举报