/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.house.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.common.utils.NodeTreeUtil; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.modules.grid.service.IGridService; import org.springblade.modules.house.entity.HouseEntity; import org.springblade.modules.house.vo.HouseParam; import org.springblade.modules.house.vo.HouseTree; import org.springblade.modules.house.vo.HouseVO; import org.springblade.modules.house.mapper.HouseMapper; import org.springblade.modules.house.service.IHouseService; import org.springblade.modules.house.excel.HouseExcel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.ArrayList; import java.util.List; import java.util.Objects; /** * 房屋 服务实现类 * * @author BladeX * @since 2023-10-28 */ @Service public class HouseServiceImpl extends ServiceImpl implements IHouseService { @Autowired private IGridService gridService; @Override public IPage selectHousePage(IPage page, HouseVO house) { return page.setRecords(baseMapper.selectHousePage(page, house)); } /** * 房屋自定义详情查询 * @param house * @return */ @Override public HouseVO getHouseDetail(HouseVO house) { return baseMapper.getHouseDetail(house); } /** * 房屋自定义新增或修改 * @param house * @return */ @Override public boolean saveOrUpdateHouse(HouseEntity house) { // 查询是否已存在房屋数据 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("house_code",house.getHouseCode()); HouseEntity one = getOne(wrapper); if (null != one){ house.setId(one.getId()); // 更新数据 return updateById(house); } //插入数据 return save(house); } /** * 导入房屋数据 * @param data * @param isCovered */ @Override public void importUserHouse(List data, Boolean isCovered) { data.forEach(houseExcel -> { HouseEntity HouseEntity = Objects.requireNonNull(BeanUtil.copy(houseExcel, HouseEntity.class)); this.save(HouseEntity); }); } @Override public List export(HouseVO household) { List houseExcels = baseMapper.export(household); return houseExcels; } /** * 查询房屋树 * @param houseParam * @return */ @Override public List getHouseTree(HouseParam houseParam) { List houseCodeList = getHouseCodeList(houseParam); return NodeTreeUtil.getHouseTree(baseMapper.getHouseTree(houseParam,houseCodeList)); } /** * 根据角色获取地址编号集合 * @param houseParam * @return */ private List getHouseCodeList(HouseParam houseParam) { List stringList = new ArrayList<>(); if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) { if (houseParam.getRoleName().equals("网格员")) { // 查询对应的房屋地址code stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId()); } } return stringList; } }