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.SysUserMapper;
|
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.TDept;
|
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.security.core.token.TokenService;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 租户 服务实现类
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2025-01-17
|
*/
|
@Service
|
public class TTenantServiceImpl extends ServiceImpl<TTenantMapper, TTenant> implements TTenantService {
|
|
@Autowired
|
private THouseMapper houseMapper;
|
@Autowired
|
private TContractMapper contractMapper;
|
@Override
|
public PageInfo<TenantVO> pageList(TTenantQuery query) {
|
PageInfo<TenantVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TenantVO> 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<TenantVO> pageListApplet(TTenantAppletQuery query) {
|
PageInfo<TenantVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TenantVO> list = this.baseMapper.pageListApplet(query,pageInfo);
|
List<String> ids = list.stream().map(TTenant::getId).collect(Collectors.toList());
|
if(CollectionUtils.isEmpty(ids)){
|
return new PageInfo<>();
|
}
|
List<TContract> contracts = contractMapper.selectList(Wrappers.lambdaQuery(TContract.class)
|
.in(TContract::getTenantId, ids)
|
.eq(TContract::getStatus, 4));
|
List<THouse> houses = new ArrayList<>();
|
if(!CollectionUtils.isEmpty(contracts)){
|
List<String> 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<TContract> contractList = contracts.stream().filter(contract -> contract.getTenantId().equals(tenantVO.getId())).collect(Collectors.toList());
|
if(!CollectionUtils.isEmpty(contractList)){
|
TContract contract = contractList.get(0);
|
List<THouse> 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<THouse> listHouse(String id) {
|
List<TContract> tContracts = contractMapper.selectList(new LambdaQueryWrapper<TContract>()
|
.eq(TContract::getTenantId,id)
|
.eq(TContract::getStatus, 4));
|
List<String> houseIds = tContracts.stream().map(TContract::getHouseId).collect(Collectors.toList());
|
if (houseIds.isEmpty())houseIds.add("-1");
|
return houseMapper.selectList(new LambdaQueryWrapper<THouse>()
|
.in(THouse::getId, houseIds));
|
}
|
|
@Override
|
public List<TContract> listContract(String id) {
|
return contractMapper.selectList(new LambdaQueryWrapper<TContract>()
|
.eq(TContract::getTenantId,id)
|
.eq(TContract::getStatus, 4));
|
}
|
|
@Override
|
public PageInfo<TBillVO> listBill(TBillAppletQuery query) {
|
List<TContract> tContracts = contractMapper.selectList(new LambdaQueryWrapper<TContract>()
|
.eq(TContract::getTenantId, query.getId()));
|
List<String> contractIds = tContracts.stream().map(TContract::getId)
|
.collect(Collectors.toList());
|
if (contractIds.isEmpty())contractIds.add("0");
|
PageInfo<TBillVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TBillVO> 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<ExamineVO> examineList(TExamineAppletQuery dto) {
|
PageInfo<ExamineVO> pageInfo = new PageInfo<>(dto.getPageNum(), dto.getPageSize());
|
List<ExamineVO> 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;
|
}
|
}
|
}
|