From 078ce36a32bc6679f32e42fd18a9cbb454ff7b7d Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 10 二月 2025 11:38:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TContractController.java |   59 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 45 insertions(+), 14 deletions(-)

diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TContractController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TContractController.java
index aebcc28..83d5a2f 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TContractController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -1,22 +1,30 @@
 package com.ruoyi.web.controller.api;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.constant.DictConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.utils.DictUtils;
+import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.SignContractDTO;
 import com.ruoyi.system.model.TContract;
+import com.ruoyi.system.model.TContractRentType;
+import com.ruoyi.system.model.THouse;
+import com.ruoyi.system.query.TContractAppletQuery;
 import com.ruoyi.system.query.TContractQuery;
 import com.ruoyi.system.service.TBillService;
 import com.ruoyi.system.service.TContractRentTypeService;
 import com.ruoyi.system.service.TContractService;
 import com.ruoyi.system.service.THouseService;
+import com.ruoyi.system.vo.TContractVO;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.time.LocalDateTime;
 
 /**
  * <p>
@@ -27,6 +35,8 @@
  * @since 2025-01-17
  */
 @RestController
+@Api(tags = "我的合同")
+
 @RequestMapping("/t-contract")
 public class TContractController {
     @Autowired
@@ -37,21 +47,42 @@
     private THouseService houseService;
     @Autowired
     private TBillService billService;
+    @Autowired
+    private TokenService tokenService;
     @ApiOperation(value = "签订合同")
     @PostMapping(value = "/signContract")
     public R signContract(@RequestBody SignContractDTO dto) {
-        TContract contract = contractService.getById(dto.getId());
-        if (contract==null)return R.fail("合同不存在");
-        if (contract.getStatus()==4)return R.fail("该合同已签订");
-        contract.setSignature(dto.getSignature());
-        contract.setStatus(2);
-        contractService.updateById(contract);
-        return R.ok();
+        return contractService.signContract(dto);
     }
-    @ApiOperation(value = "我的合同")
+    @ApiOperation(value = "我的合同分页列表")
     @PostMapping(value = "/contractList")
-    public R<PageInfo<TContract>> contractList(@RequestBody TContractQuery query) {
-        return R.ok(contractService.contractList(query));
+    public R<PageInfo<TContract>> contractList(@RequestBody TContractAppletQuery query) {
+        // todo 获取登陆人id
+        return R.ok(contractService.contractAppletList(query));
+    }
+    @ApiOperation(value = "查询合同信息信息")
+    @GetMapping(value = "/getContractById")
+    public R<TContractVO> getContractById(@RequestParam String id) {
+        TContractVO res = new TContractVO();
+        TContract contract = contractService.getById(id);
+        BeanUtils.copyProperties(contract,res);
+        res.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE,res.getPayType()));
+        res.setStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_STATUS,res.getStatus()));
+        TContractRentType contractRentType = contractRentTypeService.lambdaQuery().eq(TContractRentType::getContractId, id).one();
+        if (contractRentType!=null){
+            BeanUtils.copyProperties(contractRentType,res);
+        }
+        TContract oldContract = contractService.getOne(new LambdaQueryWrapper<TContract>()
+                .eq(TContract::getHouseId,contract.getHouseId())
+                .eq(TContract::getStatus, 4)
+                .le(TContract::getStartTime, LocalDateTime.now())
+                .ge(TContract::getEndTime, LocalDateTime.now()));
+        THouse house = houseService.getById(contract.getHouseId());
+        if (oldContract!=null){
+            house.setTenantType(oldContract.getPayType());
+        }
+        res.setHouse(house);
+        return R.ok(res);
     }
 }
 

--
Gitblit v1.7.1