| @@ -1,6 +1,5 @@ | |||||
| package com.iformall.controller; | package com.iformall.controller; | ||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.WxRentContract; | import com.iformall.domain.po.WxRentContract; | ||||
| @@ -10,7 +9,6 @@ import io.swagger.annotations.ApiImplicitParams; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.transaction.annotation.Transactional; | |||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| @@ -36,23 +34,21 @@ public class WxRentContractController extends BaseController { | |||||
| if (null == wxRentContract) { | if (null == wxRentContract) { | ||||
| wxRentContract = new WxRentContract(); | wxRentContract = new WxRentContract(); | ||||
| } | } | ||||
| final PageInfo<Map<String, Object>> page = wxRentContractService.listAsPage(wxRentContract, pageNum, pageSize); | |||||
| return new ResultData(page); | |||||
| wxRentContract.setTenantId(Integer.valueOf(getTenantId())); | |||||
| Map<String, Object> result = wxRentContractService.listAsPage(wxRentContract, pageNum, pageSize); | |||||
| return new ResultData(result); | |||||
| } | } | ||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| @PostMapping("add") | @PostMapping("add") | ||||
| public ResultData add(@RequestBody WxRentContract wxRentContract) { | public ResultData add(@RequestBody WxRentContract wxRentContract) { | ||||
| return wxRentContractService.saveOrUpdate(wxRentContract); | return wxRentContractService.saveOrUpdate(wxRentContract); | ||||
| } | } | ||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| @PostMapping("update") | @PostMapping("update") | ||||
| public ResultData update(@RequestBody WxRentContract wxRentContract) { | public ResultData update(@RequestBody WxRentContract wxRentContract) { | ||||
| return wxRentContractService.saveOrUpdate(wxRentContract); | return wxRentContractService.saveOrUpdate(wxRentContract); | ||||
| } | } | ||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| @GetMapping("/del") | @GetMapping("/del") | ||||
| @ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true) | @ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true) | ||||
| public ResultData delete(String id) { | public ResultData delete(String id) { | ||||
| @@ -60,8 +56,8 @@ public class WxRentContractController extends BaseController { | |||||
| } | } | ||||
| @GetMapping("/findById") | @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)); | 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())); | 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); | |||||
| } | |||||
| } | } | ||||
| @@ -21,4 +21,12 @@ public interface WxRentContractMapper extends CommonMapper<WxRentContract, Strin | |||||
| int queryRentContractPaidStatus(WxRentContract wxRentContract); | int queryRentContractPaidStatus(WxRentContract wxRentContract); | ||||
| int queryRentContractEndStatus(WxRentContract wxRentContract); | |||||
| int updateRentContractEndSoonStatus(WxRentContract wxRentContract); | |||||
| int updateRentContractPaidStatus(WxRentContract wxRentContract); | |||||
| int updateRentContractEndStatus(WxRentContract wxRentContract); | |||||
| } | } | ||||
| @@ -1,6 +1,5 @@ | |||||
| package com.iformall.service; | package com.iformall.service; | ||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.WxRentContract; | import com.iformall.domain.po.WxRentContract; | ||||
| @@ -21,7 +20,7 @@ public interface WxRentContractService { | |||||
| * @param record | * @param record | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| PageInfo<Map<String, Object>> listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize); | |||||
| Map<String, Object> listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize); | |||||
| /** | /** | ||||
| * 根据Id获得实体 | * 根据Id获得实体 | ||||
| @@ -29,7 +28,7 @@ public interface WxRentContractService { | |||||
| * @param id | * @param id | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| WxRentContract getById(String id); | |||||
| WxRentContract getById(Long id); | |||||
| /** | /** | ||||
| * 保存或更新实体 | * 保存或更新实体 | ||||
| @@ -50,4 +49,6 @@ public interface WxRentContractService { | |||||
| Object getRentContractStatusInfo(String tenantId); | Object getRentContractStatusInfo(String tenantId); | ||||
| ResultData endRentContract(Long id); | |||||
| } | } | ||||
| @@ -17,6 +17,7 @@ import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import org.springframework.transaction.annotation.Transactional; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| @@ -41,19 +42,24 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| WxShopMapper wxShopMapper; | WxShopMapper wxShopMapper; | ||||
| @Override | @Override | ||||
| public PageInfo<Map<String, Object>> listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize) { | |||||
| public Map<String, Object> listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize) { | |||||
| Object rentContractStatusInfo = getRentContractStatusInfo(record.getTenantId().toString()); | |||||
| PageHelper.startPage(pageIndex, pageSize); | PageHelper.startPage(pageIndex, pageSize); | ||||
| List<Map<String, Object>> rentContractData = wxRentContractMapper.queryRentContractData(record); | List<Map<String, Object>> rentContractData = wxRentContractMapper.queryRentContractData(record); | ||||
| PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(rentContractData); | PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(rentContractData); | ||||
| return pageInfo; | |||||
| Map<String,Object> result =new HashMap<>(); | |||||
| result.put("rentContractStatusInfo",rentContractStatusInfo); | |||||
| result.put("pageInfo",pageInfo); | |||||
| return result; | |||||
| //return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxRentContractMapper.findList(record)); | //return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxRentContractMapper.findList(record)); | ||||
| } | } | ||||
| @Override | @Override | ||||
| public WxRentContract getById(String id) { | |||||
| public WxRentContract getById(Long id) { | |||||
| return wxRentContractMapper.selectByPrimaryKey(id); | return wxRentContractMapper.selectByPrimaryKey(id); | ||||
| } | } | ||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| @Override | @Override | ||||
| public ResultData saveOrUpdate(WxRentContract record) { | public ResultData saveOrUpdate(WxRentContract record) { | ||||
| //保存租赁合同信息 | //保存租赁合同信息 | ||||
| @@ -83,6 +89,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| } | } | ||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| @Override | @Override | ||||
| public ResultData deleteById(String id) { | public ResultData deleteById(String id) { | ||||
| wxRentContractMapper.deleteByPrimaryKey(id); | wxRentContractMapper.deleteByPrimaryKey(id); | ||||
| @@ -98,6 +105,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| } | } | ||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| @Override | @Override | ||||
| public Object getRentContractStatusInfo(String tenantId) { | public Object getRentContractStatusInfo(String tenantId) { | ||||
| @@ -114,12 +122,45 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| wxRentContract.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode()); | wxRentContract.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode()); | ||||
| int waitSignCount=wxRentContractMapper.queryRentContractWaitSignStatus(wxRentContract); | int waitSignCount=wxRentContractMapper.queryRentContractWaitSignStatus(wxRentContract); | ||||
| resultData.put("waitSignCount",waitSignCount); | 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<String,Object> updateStatus(String tenantId){ | |||||
| Map<String,Object> resultData=new HashMap(); | |||||
| WxRentContract wxRentContract = new WxRentContract(); | |||||
| wxRentContract.setTenantId(Integer.valueOf(tenantId)); | |||||
| //将到期 | //将到期 | ||||
| wxRentContract.setStatus(EnumRentContractStatus.CONTRACT_END_SOON.getCode()); | |||||
| int endSoonCount=wxRentContractMapper.queryRentContractEndSoonStatus(wxRentContract); | int endSoonCount=wxRentContractMapper.queryRentContractEndSoonStatus(wxRentContract); | ||||
| wxRentContractMapper.updateRentContractEndSoonStatus(wxRentContract); | |||||
| resultData.put("endSoonCount",endSoonCount); | 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); | resultData.put("rendPaidCount",rendPaidCount); | ||||
| //到期 | |||||
| wxRentContract.setStatus(EnumRentContractStatus.CONTRACT_END.getCode()); | |||||
| int endCount=wxRentContractMapper.queryRentContractEndStatus(wxRentContract); | |||||
| wxRentContractMapper.updateRentContractEndStatus(wxRentContract); | |||||
| resultData.put("endCount",endCount); | |||||
| return resultData; | return resultData; | ||||
| } | } | ||||
| @@ -72,7 +72,7 @@ | |||||
| </select> | </select> | ||||
| <select id="queryRentContractData" resultType="hashmap" parameterType="com.iformall.domain.po.WxRentContract"> | <select id="queryRentContractData" resultType="hashmap" parameterType="com.iformall.domain.po.WxRentContract"> | ||||
| select rc.merchant_name,rc.rental_start_date,rc.rental_end_date,rc.`status`, | |||||
| select rc.id,rc.merchant_name,rc.rental_start_date,rc.rental_end_date,rc.`status`, | |||||
| rc.price,rc.contract_number,s.shop_number,f.floor_name,b.building_name | rc.price,rc.contract_number,s.shop_number,f.floor_name,b.building_name | ||||
| from wx_rent_contract rc | from wx_rent_contract rc | ||||
| left join wx_shop s on rc.shop_id=s.id | left join wx_shop s on rc.shop_id=s.id | ||||
| @@ -83,20 +83,35 @@ | |||||
| <if test=" null != shopNumber ">and s.`shop_number` like concat('%',#{shopNumber},'%')</if> | <if test=" null != shopNumber ">and s.`shop_number` like concat('%',#{shopNumber},'%')</if> | ||||
| <if test=" null != status ">and rc.`status` = #{status}</if> | <if test=" null != status ">and rc.`status` = #{status}</if> | ||||
| </where> | </where> | ||||
| order by id desc | |||||
| order by rc.id desc | |||||
| </select> | </select> | ||||
| <select id="queryRentContractWaitSignStatus" resultType="int" parameterType="com.iformall.domain.po.WxRentContract"> | <select id="queryRentContractWaitSignStatus" resultType="int" parameterType="com.iformall.domain.po.WxRentContract"> | ||||
| select count(id) from wx_rent_contract where tenant_id=#{tenantId} and status=#{status} | select count(id) from wx_rent_contract where tenant_id=#{tenantId} and status=#{status} | ||||
| </select> | </select> | ||||
| <select id="queryRentContractEndSoonStatus" resultType="int"> | |||||
| <select id="queryRentContractEndSoonStatus" resultType="int" parameterType="com.iformall.domain.po.WxRentContract"> | |||||
| 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 DATEDIFF(rental_end_date,now()) <= 30 | ||||
| </select> | </select> | ||||
| <select id="queryRentContractPaidStatus" resultType="int"> | |||||
| select count(id) from wx_rent_contract where rental_start_date <= now() and rental_end_date >= now() | |||||
| <select id="queryRentContractPaidStatus" resultType="int" parameterType="com.iformall.domain.po.WxRentContract"> | |||||
| select count(id) from wx_rent_contract where tenant_id=#{tenantId} and rental_start_date <= now() and rental_end_date >= now() | |||||
| </select> | </select> | ||||
| <select id="queryRentContractEndStatus" resultType="int" parameterType="com.iformall.domain.po.WxRentContract"> | |||||
| select count(id) from wx_rent_contract where tenant_id=#{tenantId} and rental_end_date <now() | |||||
| </select> | |||||
| <update id="updateRentContractEndSoonStatus" parameterType="com.iformall.domain.po.WxRentContract"> | |||||
| 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> | |||||
| <update id="updateRentContractPaidStatus" parameterType="com.iformall.domain.po.WxRentContract"> | |||||
| 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> | |||||
| <update id="updateRentContractEndStatus" parameterType="com.iformall.domain.po.WxRentContract"> | |||||
| update wx_rent_contract set status=#{status} where tenant_id=#{tenantId} and status!=#{status} and status!=1 and rental_end_date <now() | |||||
| </update> | |||||
| </mapper> | </mapper> | ||||