From 5b516ce72aaba34b68ccd5b668368791ccdd0d03 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Tue, 11 Jun 2019 19:13:08 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=A7=9F=E8=B5=81=E7=89=A9=E4=B8=9A=E5=90=88?= =?UTF-8?q?=E5=90=8C][=E4=BF=AE=E6=94=B9][=E5=85=A5=E5=8F=A3]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxRentPropertyContractController.java | 301 ++++++++++++++++++ 1 file changed, 301 insertions(+) create mode 100644 mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentPropertyContractController.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentPropertyContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentPropertyContractController.java new file mode 100644 index 000000000..866353674 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentPropertyContractController.java @@ -0,0 +1,301 @@ +package com.iformall.controller.contract; + +import com.iformall.annotation.SystemControllerLog; +import com.iformall.common.ErrorCode; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.MallUserInfo; +import com.iformall.domain.po.WxBillRent; +import com.iformall.domain.po.WxPayAccountBill; +import com.iformall.domain.po.WxRentContract; +import com.iformall.enums.EnumRentStartType; +import com.iformall.mapper.WxRentContractMapper; +import com.iformall.service.WxBillRentService; +import com.iformall.service.WxPayAccountBillService; +import com.iformall.service.WxRentContractService; +import com.iformall.service.WxShopService; +import com.iformall.utils.DateUtils; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * @author gongbiao + */ +@RestController +@RequestMapping("wxRentPropertyContract") +public class WxRentPropertyContractController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxRentContractService wxRentContractService; + @Autowired + private WxBillRentService wxBillRentService; + @Autowired + private WxPayAccountBillService payAccountBillService; + @Autowired + private WxShopService wxShopService; + @Autowired + private WxRentContractMapper wxRentContractMapper; + + @GetMapping("getDateDiff") + @ApiImplicitParams({ + @ApiImplicitParam(name = "startDate", value = "开始时间", dataType = "string", paramType = "query", required = true), + @ApiImplicitParam(name = "endtDate", value = "结束时间", dataType = "string", paramType = "query", required = true)}) + @SystemControllerLog(description = "获取两个时间相差,返回n月零n天") + public ResultData getDateDiff(String startDate, String endDate) throws Exception { + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); + Map map = new HashMap<>(); + int[] array = DateUtils.getDiff(sd.parse(startDate), sd.parse(endDate)); + map.put("month", array[0]); + map.put("day", array[1]); + return new ResultData(map); + } + + @GetMapping("list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + @SystemControllerLog(description = "租赁合同-列表") + public ResultData list(@ModelAttribute WxRentContract wxRentContract, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::list"); + if (null == wxRentContract) { + wxRentContract = new WxRentContract(); + } + wxRentContract.setTenantId(getTenantId()); + Map result = wxRentContractService.listAsPage(wxRentContract, pageNum, pageSize); + return new ResultData(result); + } + + @PostMapping("add") + @SystemControllerLog(description = "租赁合同-添加") + public ResultData add(@RequestBody WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::add"); + + MallUserInfo user = getUser(); + wxRentContract.setTenantId(user.getTenantId()); + wxRentContract.setAdjustPeriodHandle(); + Date oldDate = wxRentContract.getRentalStartDate(); + if (wxRentContract.getRentStartType() != null && wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())) { + wxRentContract.setRentalStartDate(wxRentContract.getStartDate()); + } + return wxRentContractService.save(wxRentContract, user.getId(), user.getName(), oldDate); + } + + @PostMapping("updateRentStartTime") + @SystemControllerLog(description = "租赁合同-更新租赁开始日期") + public ResultData updateRentStartTime(@RequestBody WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::updateRentStartTime"); + WxRentContract rentContract = wxRentContractMapper.selectByPrimaryKey(wxRentContract.getId()); + rentContract.setRentalStartDate(wxRentContract.getRentalStartDate()); + Date oldDate = wxRentContract.getRentalStartDate(); + if (wxRentContract.getRentStartType() != null && wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())) { + rentContract.setRentalStartDate(rentContract.getStartDate()); + } + MallUserInfo user = getUser(); + rentContract.setTenantId(user.getTenantId()); + rentContract.setAdjustPeriodHandle(); + rentContract.setRentPriceHandle(); + return wxRentContractService.update(rentContract, user.getId(), user.getName(), 1, oldDate); + } + + @PostMapping("update") + @SystemControllerLog(description = "租赁合同-更新") + public ResultData update(@RequestBody WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::update"); + MallUserInfo user = getUser(); + wxRentContract.setTenantId(user.getTenantId()); + wxRentContract.setAdjustPeriodHandle(); + wxRentContract.setRentPriceHandle(); + Date oldDate = wxRentContract.getRentalStartDate(); + if (wxRentContract.getRentStartType() != null && wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())) { + wxRentContract.setRentalStartDate(wxRentContract.getStartDate()); + } + return wxRentContractService.update(wxRentContract, user.getId(), user.getName(), 0, oldDate); + } + + /** + * 防止前端3秒重复提交 + * + * @param wxRentContract + * @return + */ + @PostMapping("updateMoney") + @SystemControllerLog(description = "租赁合同-更新金额") + public ResultData updateMoney(@RequestBody WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::updateMoney"); + MallUserInfo user = getUser(); + wxRentContract.setTenantId(user.getTenantId()); + wxRentContract.setAdjustPeriodHandle(); + wxRentContract.setRentPriceHandle(); + Date oldDate = wxRentContract.getRentalStartDate(); + if (wxRentContract.getRentStartType() != null && wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())) { + wxRentContract.setRentalStartDate(wxRentContract.getStartDate()); + } + return wxRentContractService.update(wxRentContract, user.getId(), user.getName(), 0, oldDate); + } + + @PostMapping("updateFile") + @SystemControllerLog(description = "租赁合同-更新文件") + public ResultData updateFile(@RequestBody WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::updateFile"); + MallUserInfo user = getUser(); + wxRentContract.setTenantId(user.getTenantId()); + wxRentContract.setAdjustPeriodHandle(); + wxRentContract.setRentPriceHandle(); + Date oldDate = wxRentContract.getRentalStartDate(); + if (wxRentContract.getRentStartType() != null && wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())) { + wxRentContract.setRentalStartDate(wxRentContract.getStartDate()); + } + return wxRentContractService.updateFile(wxRentContract, user.getId(), user.getName(), oldDate); + } + + @GetMapping("/del") + @ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true) + @SystemControllerLog(description = "租赁合同-删除") + public ResultData delete(String id) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::delete"); + return wxRentContractService.deleteById(id); + } + + @GetMapping("/findById") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + @SystemControllerLog(description = "租赁合同-查找") + public ResultData findById(Long id) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::findById"); + // 同步欠缴状态 + WxBillRent wxBillRent = new WxBillRent(); + wxBillRent.setTenantId(getTenantId()); + wxBillRentService.updateBillStatus(wxBillRent); + return wxRentContractService.getById(id); + } + + @RequestMapping("/download") + public void download(HttpServletRequest request, HttpServletResponse response) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::download"); + wxRentContractService.download(request, response, getTenantId()); + } + + @GetMapping("/getRentContractStatusInfo") + @SystemControllerLog(description = "租赁合同-获取合同状态信息") + public ResultData getRentContractStatusInfo(@ModelAttribute WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::getRentContractStatusInfo"); + wxRentContract.setTenantId(getTenantId()); + return new ResultData(Result.SUCCESS, "查询成功", wxRentContractService.getRentContractStatusInfo(wxRentContract)); + } + + @GetMapping("/endRentContract") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true), + @ApiImplicitParam(name = "status", value = "status", dataType = "int", paramType = "query", required = true)}) + @SystemControllerLog(description = "租赁合同-终结合同") + public ResultData endRentContract(Long id, Integer status) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::endRentContract"); + return wxRentContractService.endRentContract(id, status); + } + + @PostMapping("updateMerchant") + @SystemControllerLog(description = "租赁合同-更新商户") + public ResultData updateMerchant(@RequestBody WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::updateMerchant"); + return wxRentContractService.updateMerchant(wxRentContract); + } + + @GetMapping("getRentContractList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + @SystemControllerLog(description = "租赁合同-列表") + public ResultData getRentContractList(@ModelAttribute WxRentContract wxRentContract, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::getRentContractList"); + wxRentContract.setTenantId(getTenantId()); + return new ResultData(wxRentContractService.getRentContractList(wxRentContract, pageNum, pageSize)); + } + + @GetMapping("exportContract") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)}) + @SystemControllerLog(description = "租赁合同-导出合同") + public void exportContract(Long id, HttpServletRequest request, HttpServletResponse response) { + wxRentContractService.exportContract(request, response, getTenantId(), id); + } + + @GetMapping("updateRentContractStatus") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + @SystemControllerLog(description = "租赁合同-更新合同状态") + public ResultData updateRentContractStatus(Long id) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::updateRentContractStatus"); + return wxRentContractService.updateRentContractStatus(id); + } + + @GetMapping("getPayAccountInfo") + @SystemControllerLog(description = "租赁合同-获取甲方账户") + public ResultData getPayAccountInfo() { + logger.debug("[" + getIpAddr() + "] WxRentContractController::updateRentContractStatus"); + String tenantId = getTenantId(); + WxPayAccountBill payAccountBill = payAccountBillService.getByTenantId(tenantId); + Map map = new HashMap<>(); + if (StringUtils.isNotBlank(payAccountBill.getBankAccountName()) && StringUtils.isNotBlank(payAccountBill.getBankCardId())) { + map.put("bankAccountName", payAccountBill.getBankAccountName()); + map.put("bankCardId", payAccountBill.getBankCardId()); + } + return new ResultData(map); + } + + @PostMapping("savePayAccountInfo") + @SystemControllerLog(description = "租赁合同-保存甲方账户") + public ResultData savePayAccountInfo(@RequestBody WxPayAccountBill payAccountBill) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::updateRentContractStatus"); + if (StringUtils.isBlank(payAccountBill.getBankAccountName())) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "甲方银行账户名未填写"); + } + if (StringUtils.isBlank(payAccountBill.getBankCardId())) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "甲方银行账户卡号未填写"); + } + String tenantId = getTenantId(); + WxPayAccountBill payAccountBillNew = payAccountBillService.getByTenantId(tenantId); + payAccountBillNew.setBankAccountName(payAccountBill.getBankAccountName()); + payAccountBillNew.setBankCardId(payAccountBill.getBankCardId()); + payAccountBillService.saveOrUpdate(payAccountBillNew); + return new ResultData(); + } + + @GetMapping("/getMerchants") + @SystemControllerLog(description = "租赁合同-获取已签约租赁合同且未有物业的商户") + public ResultData getMerchants(@ModelAttribute WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::getMerchants"); + wxRentContract.setTenantId(getTenantId()); + return new ResultData(Result.SUCCESS, "查询成功", wxRentContractService.getMerchants(wxRentContract)); + } + + @GetMapping("/hasRentStatus") + @SystemControllerLog(description = "查询店铺租赁状态") + public ResultData hasRentStatus(@ModelAttribute WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::hasRentStatus"); + wxRentContract.setTenantId(getTenantId()); + return wxRentContractService.hasRentStatus(wxRentContract); + } + + @GetMapping("/hasContractNumber") + @SystemControllerLog(description = "租赁合同-检查合同编号是否存在") + public ResultData hasContractNumber(@ModelAttribute WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::hasContractNumber"); + wxRentContract.setTenantId(getTenantId()); + return wxRentContractService.hasContractNumber(wxRentContract); + } + +} + +