package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.constant.DictConstants; import com.ruoyi.common.utils.DictUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.dto.TTenantDTO; import com.ruoyi.system.mapper.TContractMapper; import com.ruoyi.system.mapper.THouseMapper; import com.ruoyi.system.mapper.TTenantMapper; import com.ruoyi.system.model.TContract; import com.ruoyi.system.model.THouse; import com.ruoyi.system.model.TTenant; import com.ruoyi.system.query.TBillAppletQuery; import com.ruoyi.system.query.TExamineAppletQuery; import com.ruoyi.system.query.TTenantAppletQuery; import com.ruoyi.system.query.TTenantQuery; import com.ruoyi.system.service.TTenantService; import com.ruoyi.system.vo.ExamineVO; import com.ruoyi.system.vo.TBillVO; import com.ruoyi.system.vo.TenantVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 租户 服务实现类 *

* * @author xiaochen * @since 2025-01-17 */ @Service public class TTenantServiceImpl extends ServiceImpl implements TTenantService { @Autowired private THouseMapper houseMapper; @Autowired private TContractMapper contractMapper; @Override public PageInfo pageList(TTenantQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); /* String businessDeptId = SecurityUtils.getBusinessDeptId(); List list = null; if (StringUtils.isBlank(businessDeptId) || "0".equals(businessDeptId)) { list = this.baseMapper.pageList(query, pageInfo); } else { query.setBusinessDeptId(businessDeptId); list = this.baseMapper.pageListByBusinessDeptId(query,pageInfo); }*/ List list = this.baseMapper.pageList(query, pageInfo); for (TenantVO tenantVO : list) { tenantVO.setTenantAttributesName(StringUtils.isNotBlank(tenantVO.getTenantAttributes())?DictUtils.getDictLabel(DictConstants.DICT_TYPE_TENANT_ATTRIBUTE,tenantVO.getTenantAttributes()):""); tenantVO.setTenantTypeName(StringUtils.isNotBlank(tenantVO.getTenantType())?DictUtils.getDictLabel(DictConstants.DICT_TYPE_TENANT_TYPE,tenantVO.getTenantType()):""); } pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo pageListApplet(TTenantAppletQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.pageListApplet(query,pageInfo); List ids = list.stream().map(TTenant::getId).collect(Collectors.toList()); if(CollectionUtils.isEmpty(ids)){ return new PageInfo<>(); } List contracts = contractMapper.selectList(Wrappers.lambdaQuery(TContract.class) .in(TContract::getTenantId, ids) .eq(TContract::getStatus, 4)); List houses = new ArrayList<>(); if(!CollectionUtils.isEmpty(contracts)){ List houseIds = contracts.stream().map(TContract::getHouseId).collect(Collectors.toList()); houses = houseMapper.selectList(Wrappers.lambdaQuery(THouse.class) .in(THouse::getId, houseIds)); } for (TenantVO tenantVO : list) { tenantVO.setTenantAttributesName(StringUtils.isNotBlank(tenantVO.getTenantAttributes())?DictUtils.getDictLabel(DictConstants.DICT_TYPE_TENANT_ATTRIBUTE,tenantVO.getTenantAttributes()):""); tenantVO.setTenantTypeName(StringUtils.isNotBlank(tenantVO.getTenantType())?DictUtils.getDictLabel(DictConstants.DICT_TYPE_TENANT_TYPE,tenantVO.getTenantType()):""); if(!CollectionUtils.isEmpty(houses)){ List contractList = contracts.stream().filter(contract -> contract.getTenantId().equals(tenantVO.getId())).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(contractList)){ TContract contract = contractList.get(0); List houseList = houses.stream().filter(house -> house.getId().equals(contract.getHouseId())).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(houseList)) tenantVO.setHouseName(houseList.get(0).getHouseName()); } } } pageInfo.setRecords(list); return pageInfo; } @Override public List listHouse(String id) { List tContracts = contractMapper.selectList(new LambdaQueryWrapper() .eq(TContract::getTenantId,id) .eq(TContract::getStatus, 4)); List houseIds = tContracts.stream().map(TContract::getHouseId).collect(Collectors.toList()); if (houseIds.isEmpty())houseIds.add("-1"); return houseMapper.selectList(new LambdaQueryWrapper() .in(THouse::getId, houseIds)); } @Override public List listContract(String id) { return contractMapper.selectList(new LambdaQueryWrapper() .eq(TContract::getTenantId,id) .eq(TContract::getStatus, 4)); } @Override public PageInfo listBill(TBillAppletQuery query) { List tContracts = contractMapper.selectList(new LambdaQueryWrapper() .eq(TContract::getTenantId, query.getId())); List contractIds = tContracts.stream().map(TContract::getId) .collect(Collectors.toList()); if (contractIds.isEmpty())contractIds.add("0"); PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.listBill(query,pageInfo); for (TBillVO tBillVO : list) { TContract contract = tContracts.stream().filter(e -> e.getId().equals(tBillVO.getContractId())) .findFirst().orElse(null); if (contract!=null){ tBillVO.setHouse(houseMapper.selectById(contract.getHouseId())); } tBillVO.setPayFeesStatus(tBillVO.getPayFeesStatus()); } pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo examineList(TExamineAppletQuery dto) { PageInfo pageInfo = new PageInfo<>(dto.getPageNum(), dto.getPageSize()); List list = this.baseMapper.examineList(dto,pageInfo); pageInfo.setRecords(list); return pageInfo; } @Override public boolean isExit(TTenantDTO dto) { if(StringUtils.isNotEmpty(dto.getId())){ // 修改 return this.count(Wrappers.lambdaQuery(TTenant.class).ne(TTenant::getId, dto.getId()).eq(TTenant::getPhone, dto.getPhone())) > 0; }else { // 新增 return this.count(Wrappers.lambdaQuery(TTenant.class).eq(TTenant::getPhone, dto.getPhone())) > 0; } } }