From 63776c6f52ed23994542716dc551cc0ca6675310 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Thu, 11 Oct 2018 15:17:21 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=90=88=E5=90=8C=E7=AE=A1=E7=90=86][?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0][=E7=9B=B8=E5=85=B3=E4=B8=9A=E5=8A=A1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxRentContractController.java | 20 ++++---- .../iformall/mapper/WxRentContractMapper.java | 8 +++ .../service/WxRentContractService.java | 7 +-- .../impl/WxRentContractServiceImpl.java | 49 +++++++++++++++++-- .../resources/mapper/WxRentContractMapper.xml | 29 ++++++++--- 5 files changed, 90 insertions(+), 23 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java index bea7cc265..f746f8ef7 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java @@ -1,6 +1,5 @@ package com.iformall.controller; -import com.github.pagehelper.PageInfo; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.WxRentContract; @@ -10,7 +9,6 @@ import io.swagger.annotations.ApiImplicitParams; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -36,23 +34,21 @@ public class WxRentContractController extends BaseController { if (null == wxRentContract) { wxRentContract = new WxRentContract(); } - final PageInfo> page = wxRentContractService.listAsPage(wxRentContract, pageNum, pageSize); - return new ResultData(page); + wxRentContract.setTenantId(Integer.valueOf(getTenantId())); + Map result = wxRentContractService.listAsPage(wxRentContract, pageNum, pageSize); + return new ResultData(result); } - @Transactional(rollbackFor = {Exception.class}) @PostMapping("add") public ResultData add(@RequestBody WxRentContract wxRentContract) { return wxRentContractService.saveOrUpdate(wxRentContract); } - @Transactional(rollbackFor = {Exception.class}) @PostMapping("update") public ResultData update(@RequestBody WxRentContract wxRentContract) { return wxRentContractService.saveOrUpdate(wxRentContract); } - @Transactional(rollbackFor = {Exception.class}) @GetMapping("/del") @ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true) public ResultData delete(String id) { @@ -60,8 +56,8 @@ public class WxRentContractController extends BaseController { } @GetMapping("/findById") - @ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true) - public ResultData findById(String id) { + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + public ResultData findById(Long id) { return new ResultData(Result.SUCCESS, "查询成功", wxRentContractService.getById(id)); } @@ -75,4 +71,10 @@ public class WxRentContractController extends BaseController { return new ResultData(Result.SUCCESS, "查询成功", wxRentContractService.getRentContractStatusInfo(getTenantId())); } + @GetMapping("/endRentContract") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + public ResultData endRentContract(Long id) { + return wxRentContractService.endRentContract(id); + } + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java index a2360d9f8..8d864d48e 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java @@ -21,4 +21,12 @@ public interface WxRentContractMapper extends CommonMapper> listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize); + Map listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize); /** * 根据Id获得实体 @@ -29,7 +28,7 @@ public interface WxRentContractService { * @param id * @return */ - WxRentContract getById(String id); + WxRentContract getById(Long id); /** * 保存或更新实体 @@ -50,4 +49,6 @@ public interface WxRentContractService { Object getRentContractStatusInfo(String tenantId); + ResultData endRentContract(Long id); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 0a028ea6d..1ef1c078c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -17,6 +17,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -41,19 +42,24 @@ public class WxRentContractServiceImpl implements WxRentContractService { WxShopMapper wxShopMapper; @Override - public PageInfo> listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize) { + public Map listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize) { + Object rentContractStatusInfo = getRentContractStatusInfo(record.getTenantId().toString()); PageHelper.startPage(pageIndex, pageSize); List> rentContractData = wxRentContractMapper.queryRentContractData(record); PageInfo> pageInfo = new PageInfo<>(rentContractData); - return pageInfo; + Map result =new HashMap<>(); + result.put("rentContractStatusInfo",rentContractStatusInfo); + result.put("pageInfo",pageInfo); + return result; //return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxRentContractMapper.findList(record)); } @Override - public WxRentContract getById(String id) { + public WxRentContract getById(Long id) { return wxRentContractMapper.selectByPrimaryKey(id); } + @Transactional(rollbackFor = {Exception.class}) @Override public ResultData saveOrUpdate(WxRentContract record) { //保存租赁合同信息 @@ -83,6 +89,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } + @Transactional(rollbackFor = {Exception.class}) @Override public ResultData deleteById(String id) { wxRentContractMapper.deleteByPrimaryKey(id); @@ -98,6 +105,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } + @Transactional(rollbackFor = {Exception.class}) @Override public Object getRentContractStatusInfo(String tenantId) { @@ -114,12 +122,45 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxRentContract.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode()); int waitSignCount=wxRentContractMapper.queryRentContractWaitSignStatus(wxRentContract); resultData.put("waitSignCount",waitSignCount); + //需要更新的状态 + resultData.putAll(updateStatus(tenantId)); + return resultData; + } + + @Transactional(rollbackFor = {Exception.class}) + @Override + public ResultData endRentContract(Long id) { + + WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(id); + wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); + try { + wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); + }catch (MallinkException e){ + logger.info("终止合同失败:"+e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); + } + return new ResultData(Result.SUCCESS, "操作成功"); + } + + public Map updateStatus(String tenantId){ + Map resultData=new HashMap(); + WxRentContract wxRentContract = new WxRentContract(); + wxRentContract.setTenantId(Integer.valueOf(tenantId)); //将到期 + wxRentContract.setStatus(EnumRentContractStatus.CONTRACT_END_SOON.getCode()); int endSoonCount=wxRentContractMapper.queryRentContractEndSoonStatus(wxRentContract); + wxRentContractMapper.updateRentContractEndSoonStatus(wxRentContract); resultData.put("endSoonCount",endSoonCount); //计租中 - int rendPaidCount=wxRentContractMapper.queryRentContractPaidStatus(wxRentContract); + wxRentContract.setStatus(EnumRentContractStatus.RENT_PAID.getCode()); + int rendPaidCount =wxRentContractMapper.queryRentContractPaidStatus(wxRentContract); + wxRentContractMapper.updateRentContractPaidStatus(wxRentContract); resultData.put("rendPaidCount",rendPaidCount); + //到期 + wxRentContract.setStatus(EnumRentContractStatus.CONTRACT_END.getCode()); + int endCount=wxRentContractMapper.queryRentContractEndStatus(wxRentContract); + wxRentContractMapper.updateRentContractEndStatus(wxRentContract); + resultData.put("endCount",endCount); return resultData; } diff --git a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml index c4514182f..8135f724c 100644 --- a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml @@ -72,7 +72,7 @@ - select count(id) from wx_rent_contract where tenant_id=#{tenantId} and DATEDIFF(rental_end_date,now()) <= 30 - + select count(id) from wx_rent_contract where tenant_id=#{tenantId} and rental_start_date <= now() and rental_end_date >= now() - - + + + + + update wx_rent_contract set status=#{status} where tenant_id=#{tenantId} and status!=#{status} and status!=1 and DATEDIFF(rental_end_date,now()) <= 30 + + + + update wx_rent_contract set status=#{status} where tenant_id=#{tenantId} and status!=#{status} and status!=1 and rental_start_date <= now() and rental_end_date >= now() + + + + update wx_rent_contract set status=#{status} where tenant_id=#{tenantId} and status!=#{status} and status!=1 and rental_end_date <now() + +