package com.ruoyi.web.controller.api;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.ruoyi.common.basic.PageInfo;
|
import com.ruoyi.common.constant.DictConstants;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.model.LoginUserApplet;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DictUtils;
|
import com.ruoyi.framework.web.service.TokenService;
|
import com.ruoyi.system.dto.TBillDto;
|
import com.ruoyi.system.dto.TInvoiceDTO;
|
import com.ruoyi.system.model.*;
|
import com.ruoyi.system.query.TBannerQuery;
|
import com.ruoyi.system.query.TBillQuery;
|
import com.ruoyi.system.service.*;
|
import com.ruoyi.system.vo.MyHouseVO;
|
import com.ruoyi.system.vo.MyToDoVO;
|
import com.ruoyi.system.vo.PayListVO;
|
import com.ruoyi.system.vo.TBillVO;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import jdk.nashorn.internal.parser.Token;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 租金账单 前端控制器
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2025-01-17
|
*/
|
@Api(tags = "首页")
|
@RestController
|
@RequestMapping("/t-index")
|
public class IndexController {
|
|
@Autowired
|
private TBannerService bannerService;
|
@Autowired
|
private TokenService tokenService;
|
@Autowired
|
private TContractService contractService;
|
@Autowired
|
private TBillService billService;
|
@Autowired
|
private THouseService houseService;
|
|
|
/**
|
* 获取轮播图管理列表
|
*/
|
@ApiOperation(value = "获取轮播图列表")
|
@PostMapping(value = "/list")
|
public R<List<TBanner>> list(@RequestBody TBannerQuery query) {
|
return R.ok(bannerService.list(query));
|
} /**
|
* 获取轮播图管理列表
|
*/
|
@ApiOperation(value = "租户-我的待办")
|
@PostMapping(value = "/tenant/myToDo")
|
public R<MyToDoVO> tenantMyToDo() {
|
MyToDoVO myToDoVO = new MyToDoVO();
|
LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
|
if (loginUserApplet!=null){
|
long contractCount = contractService.count(new LambdaQueryWrapper<TContract>()
|
.eq(TContract::getStatus, 3).eq(TContract::getTenantId, loginUserApplet.getUserId()));
|
myToDoVO.setContractCount((int) contractCount);
|
List<String> contractIds = contractService.lambdaQuery().eq(TContract::getTenantId, loginUserApplet.getUserId()).list()
|
.stream().map(TContract::getId).collect(Collectors.toList());
|
int billCount = billService.lambdaQuery().in(TBill::getContractId, contractIds).eq(TBill::getPayFeesStatus, 1).list().size();
|
myToDoVO.setBillCount(billCount);
|
}else {
|
myToDoVO.setBillCount(0);
|
myToDoVO.setContractCount(0);
|
}
|
return R.ok(myToDoVO);
|
}
|
@ApiOperation(value = "租户-当前在租房源")
|
@PostMapping(value = "/tenant/myHouse")
|
public R<List<MyHouseVO>> myHouse() {
|
List<MyHouseVO> myHouseVOS = new ArrayList<>();
|
LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
|
|
if (loginUserApplet!=null){
|
List<TContract> contractList = contractService.lambdaQuery().eq(TContract::getTenantId, loginUserApplet.getUserId())
|
.eq(TContract::getStatus, 4).list();
|
List<THouse> houseList = houseService.list();
|
List<TBill> bills = billService.lambdaQuery().eq(TBill::getPayFeesStatus,3).orderByDesc(TBill::getPayFeesTime).list();
|
for (TContract contract : contractList) {
|
THouse tHouse = houseList.stream().filter(e -> e.getId().equals(contract.getHouseId())).findFirst().orElse(null);
|
TBill bill = bills.stream().filter(e -> e.getContractId().equals(contract.getId())).findFirst().orElse(null);
|
if (tHouse!=null&& bill!=null){
|
MyHouseVO myToDoVO = new MyHouseVO();
|
myToDoVO.setHouseAddress(tHouse.getHouseAddress());
|
myToDoVO.setMonthRent(contract.getMonthRent());
|
myToDoVO.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE,contract.getPayType()));
|
myToDoVO.setMonth(bill.getPayFeesTime().getMonth()+"");
|
myToDoVO.setHouseArea(tHouse.getHouseArea());
|
myToDoVO.setHouseType(tHouse.getHouseType());
|
myToDoVO.setEndTime(DateUtils.localDateTimeToStringYear(contract.getEndTime()));
|
myToDoVO.setStartTime(DateUtils.localDateTimeToStringYear(contract.getStartTime()));
|
myToDoVO.setPropertyRightPerson(tHouse.getPropertyRightPerson());
|
myToDoVO.setPhone(tHouse.getPhone());
|
List<TBill> billList = bills.stream().filter(e -> e.getContractId().equals(contract.getId())).collect(Collectors.toList());
|
List<PayListVO> payList = new ArrayList<>();
|
for (TBill tBill : billList) {
|
PayListVO payListVO = new PayListVO();
|
payListVO.setPayFeesTime(DateUtils.localDateTimeToStringYear(tBill.getPayFeesTime()));
|
payListVO.setPayFeesMoney("-"+tBill.getPayFeesMoney()+"元");
|
payList.add(payListVO);
|
}
|
myToDoVO.setPayList(payList);
|
myHouseVOS.add(myToDoVO);
|
}
|
|
}
|
return R.ok(myHouseVOS);
|
}else {
|
return R.ok(myHouseVOS);
|
}
|
}
|
@ApiOperation(value = "管理员-我的待办")
|
@PostMapping(value = "/admin/myToDo")
|
public R<MyToDoVO> adminMyToDo() {
|
MyToDoVO myToDoVO = new MyToDoVO();
|
LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
|
if (loginUserApplet!=null){
|
long examineCount = contractService.count(new LambdaQueryWrapper<TContract>()
|
.eq(TContract::getStatus, 2));
|
myToDoVO.setExamineCount((int) examineCount);
|
List<String> contractIds = billService.lambdaQuery().eq(TBill::getPayFeesStatus, 4).list()
|
.stream().map(TBill::getContractId).collect(Collectors.toList());
|
int overdueCount = contractService.lambdaQuery().in(TContract::getId, contractIds).list()
|
.stream().map(TContract::getTenantId).distinct().collect(Collectors.toList()).size();
|
myToDoVO.setOverdueCount(overdueCount);
|
}else {
|
myToDoVO.setExamineCount(0);
|
myToDoVO.setOverdueCount(0);
|
}
|
return R.ok(myToDoVO);
|
}
|
|
}
|