本次点位管理模块改造,仅完成后端关联查询与前端列表展示优化:
- 新增
NodeVo实体,封装点位、区域、合作商信息。- 在
NodeMapper.xml中配置结果映射,通过子查询关联区域与合作商数据。- 新增 Mapper、Service、Controller 层的 Vo 查询方法。
- 前端表格改造,直接显示区域名称 和合作商名称。
一、后端:NodeVo 实体类
文件位置 :com.dkd.manage.domain.vo.NodeVo.java
改造说明:新增点位 VO 对象,用于封装点位 + 区域 + 合作商关联信息
@Data
public class NodeVo extends Node {
private Region region;
private Partner partner;
}
二、后端:NodeMapper.xml 关联查询
文件位置 :resources/mapper/manage/NodeMapper.xml
改造说明:新增结果集映射,关联区域与合作商
<resultMap type="NodeVo" id="NodeVoResult">
<id property="id" column="id"/>
<result property="nodeName" column="node_name"/>
<result property="address" column="address"/>
<result property="regionId" column="region_id"/>
<result property="partnerId" column="partner_id"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<association property="region" javaType="Region" column="region_id" select="com.dkd.manage.mapper.RegionMapper.selectRegionById"/>
<association property="partner" javaType="Partner" column="partner_id" select="com.dkd.manage.mapper.PartnerMapper.selectPartnerById"/>
</resultMap>
<select id="selectNodeVoList" parameterType="Node" resultMap="NodeVoResult">
select id, node_name, address, region_id, partner_id, create_time, update_time
from tb_node
</select>
三、后端:NodeMapper 接口
文件位置 :com.dkd.manage.mapper.NodeMapper.java
改造说明:新增 Vo 列表查询方法
public interface NodeMapper {
List<NodeVo> selectNodeVoList(Node node);
}
四、后端:INodeService 接口
文件位置 :com.dkd.manage.service.INodeService.java
改造说明:新增业务层接口
public interface INodeService {
public List<NodeVo> selectNodeVoList(Node node);
}
五、后端:NodeServiceImpl 实现类
文件位置 :com.dkd.manage.service.impl.NodeServiceImpl.java
改造说明:实现 Vo 列表查询
@Service
public class NodeServiceImpl implements INodeService {
@Autowired
private NodeMapper nodeMapper;
@Override
public List<NodeVo> selectNodeVoList(Node node) {
return nodeMapper.selectNodeVoList(node);
}
}
六、后端:NodeController 控制器
文件位置 :com.dkd.manage.controller.NodeController.java
改造说明:修改列表接口,返回 Vo 对象
@GetMapping("/list")
public TableDataInfo list(Node node) {
startPage();
List<NodeVo> voList = nodeService.selectNodeVoList(node);
return getDataTable(voList);
}
七、前端:index.vue 表格列改造
文件位置 :src/views/manage/node/index.vue
改造说明:显示区域名称、合作商名称
<el-table-column label="所属区域" align="center" prop="region.regionName" />
<el-table-column label="合作商" align="center" prop="partner.partnerName" />