New file |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | |
| | | |