From 1582adad85898e246fbd0cbdabde9ac6b990bb8e Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 17 二月 2025 14:41:16 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java | 156 +++++++++++++++++++++++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/vo/MyToDoVO.java | 23 ++++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBannerMapper.java | 1 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBannerServiceImpl.java | 6 + ruoyi-system/src/main/java/com/ruoyi/system/vo/MyHouseVO.java | 38 +++++++ ruoyi-system/src/main/java/com/ruoyi/system/vo/PayListVO.java | 20 ++++ ruoyi-system/src/main/resources/mapper/system/TBannerMapper.xml | 7 + ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java | 5 ruoyi-system/src/main/java/com/ruoyi/system/service/TBannerService.java | 3 9 files changed, 258 insertions(+), 1 deletions(-) diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java new file mode 100644 index 0000000..e2da95d --- /dev/null +++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java @@ -0,0 +1,156 @@ +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); + } + +} + + diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBannerMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBannerMapper.java index b258375..800c3c6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBannerMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TBannerMapper.java @@ -25,5 +25,6 @@ * @return */ List<TBanner> pageList(@Param("query") TBannerQuery query, @Param("pageInfo")PageInfo<TBanner> pageInfo); + List<TBanner> list(@Param("query") TBannerQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java index 50fd212..9a03ab2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "建筑面积") @TableField("house_area") - private Integer houseArea; + private String houseArea; @ApiModelProperty(value = "户型") @TableField("house_type") @@ -87,6 +87,9 @@ @ApiModelProperty(value = "房号") @TableField("room_number") private String roomNumber; + @ApiModelProperty(value = "产权人联系方式") + @TableField("phone") + private String phone; @ApiModelProperty(value = "住户类型 1月租 2季租 3年租") @TableField(exist = false) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBannerService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBannerService.java index b2ed584..9b7b161 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBannerService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBannerService.java @@ -5,6 +5,8 @@ import com.ruoyi.system.model.TBanner; import com.ruoyi.system.query.TBannerQuery; +import java.util.List; + /** * <p> * 轮播图管理 服务类 @@ -21,4 +23,5 @@ * @return */ PageInfo<TBanner> pageList(TBannerQuery query); + List<TBanner> list(TBannerQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBannerServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBannerServiceImpl.java index 6dae322..7da7f08 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBannerServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBannerServiceImpl.java @@ -29,4 +29,10 @@ pageInfo.setRecords(list); return pageInfo; } + + @Override + public List<TBanner> list(TBannerQuery query) { + List<TBanner> list = this.baseMapper.list(query); + return list; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/MyHouseVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/MyHouseVO.java new file mode 100644 index 0000000..d77dbca --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/MyHouseVO.java @@ -0,0 +1,38 @@ +package com.ruoyi.system.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.system.model.TBill; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Data +@ApiModel(value = "我的在租VO") +public class MyHouseVO { + @ApiModelProperty(value = "地址") + private String houseAddress; + @ApiModelProperty(value = "月付租金") + private BigDecimal monthRent; + @ApiModelProperty(value = "支付方式 月付、季付、年付") + private String payType; + @ApiModelProperty(value = "付款当月月份") + private String month; + @ApiModelProperty(value = "建筑面积") + private String houseArea; + @ApiModelProperty(value = "户型") + private String houseType; + @ApiModelProperty(value = "结束时间") + private String endTime; + @ApiModelProperty(value = "开始时间") + private String startTime; + @ApiModelProperty(value = "房东") + private String propertyRightPerson; + @ApiModelProperty(value = "房东联系方式") + private String phone; + @ApiModelProperty(value = "交租记录") + private List<PayListVO> payList; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/MyToDoVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/MyToDoVO.java new file mode 100644 index 0000000..944177e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/MyToDoVO.java @@ -0,0 +1,23 @@ +package com.ruoyi.system.vo; + +import com.ruoyi.system.model.TBill; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "我的待办VO") +public class MyToDoVO { + + @ApiModelProperty(value = "租户-待缴费订单数量") + private Integer billCount; + + @ApiModelProperty(value = "租户-待签订合同数量") + private Integer contractCount; + + @ApiModelProperty(value = "管理员-待审批数量") + private Integer examineCount; + + @ApiModelProperty(value = "管理员-账单逾期租户数量数量") + private Integer overdueCount; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/PayListVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/PayListVO.java new file mode 100644 index 0000000..4bbb7b9 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/PayListVO.java @@ -0,0 +1,20 @@ +package com.ruoyi.system.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.system.model.TBill; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Data +@ApiModel(value = "我的在租-交租记录VO") +public class PayListVO { + @ApiModelProperty(value = "时间") + private String payFeesTime; + @ApiModelProperty(value = "缴费金额 (处理了负号和元 直接展示就行)") + private String payFeesMoney; +} diff --git a/ruoyi-system/src/main/resources/mapper/system/TBannerMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TBannerMapper.xml index d9bd46a..3cfee87 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TBannerMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TBannerMapper.xml @@ -25,5 +25,12 @@ where disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} order by sort_by, create_time desc </select> + <select id="list" resultType="com.ruoyi.system.model.TBanner"> + select + <include refid="Base_Column_List"/> + from t_banner + where disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + order by sort_by, create_time desc + </select> </mapper> -- Gitblit v1.7.1