diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxPropertyContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxPropertyContractController.java index 7364125d6..3b9419247 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxPropertyContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxPropertyContractController.java @@ -61,7 +61,7 @@ public class WxPropertyContractController extends BaseController @GetMapping("/findById") @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true) public ResultData findById(Long id) { - return new ResultData(Result.SUCCESS,"查询成功",wxPropertyContractService.getById(id)); + return wxPropertyContractService.getById(id); } @RequestMapping("/download") diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxPropertyContractMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxPropertyContractMapper.java index d4c6b5ea3..2cf9a8221 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxPropertyContractMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxPropertyContractMapper.java @@ -14,7 +14,7 @@ public interface WxPropertyContractMapper extends CommonMapper findList(WxPropertyContract wxPropertyContract); - List> queryRentContractData(WxPropertyContract wxRentContract); + List> queryPropertyContractData(WxPropertyContract wxRentContract); int queryRentContractWaitSignStatus(WxPropertyContract wxRentContract); diff --git a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java index 7db95d74b..7fdf6f33a 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java @@ -1,9 +1,7 @@ package com.iformall.service; -import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.po.WxPropertyContract; -import com.iformall.domain.po.WxRentContract; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -30,7 +28,7 @@ public interface WxPropertyContractService { * @param id * @return */ - WxPropertyContract getById(Long id); + ResultData getById(Long id); /** * 保存或更新实体 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index e35a1f2f1..15025bd57 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -11,10 +11,7 @@ import com.iformall.enums.EnumBillRentStatus; import com.iformall.enums.EnumRentContractStatus; import com.iformall.enums.EnumShopStatus; import com.iformall.exception.MallinkException; -import com.iformall.mapper.WxBillPropertyDepositMapper; -import com.iformall.mapper.WxBillPropertyMapper; -import com.iformall.mapper.WxPropertyContractMapper; -import com.iformall.mapper.WxShopMapper; +import com.iformall.mapper.*; import com.iformall.service.WxPropertyContractService; import com.iformall.utils.Constant; import org.apache.shiro.SecurityUtils; @@ -50,11 +47,14 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService @Autowired WxBillPropertyDepositMapper wxBillPropertyDepositMapper; + @Autowired + WxMerchantMapper wxMerchantMapper; + @Override public Map listAsPage(WxPropertyContract record, Integer pageIndex, Integer pageSize) { Object rentContractStatusInfo = getRentContractStatusInfo(record.getTenantId()); PageHelper.startPage(pageIndex, pageSize); - List> rentContractData = wxPropertyContractMapper.queryRentContractData(record); + List> rentContractData = wxPropertyContractMapper.queryPropertyContractData(record); PageInfo> pageInfo = new PageInfo<>(rentContractData); Map result = new HashMap<>(); result.put("rentContractStatusInfo", rentContractStatusInfo); @@ -64,14 +64,89 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } @Override - public WxPropertyContract getById(Long id) { - return wxPropertyContractMapper.selectByPrimaryKey(id); + public ResultData getById(Long id){ + + Map result = new HashMap<>(); + WxPropertyContract wxPropertyContract = wxPropertyContractMapper.selectByPrimaryKey(id); + wxPropertyContract.setPrice(wxPropertyContract.getPrice() != null ? wxPropertyContract.getPrice() / 100 : 0); + wxPropertyContract.setDeposit(wxPropertyContract.getDeposit() != null ? wxPropertyContract.getDeposit() / 100 : 0); + + result.put("wxPropertyContract", wxPropertyContract); + //关联的商户 + if (wxPropertyContract.getMerchantId() != null) { + WxMerchant wxMerchant = wxMerchantMapper.selectByPrimaryKey(wxPropertyContract.getMerchantId()); + result.put("wxMerchant", wxMerchant); + } else { + result.put("wxMerchant", null); + } + //关联的店铺 + if (wxPropertyContract.getShopId() != null) { + List list = new ArrayList<>(); + WxShop wxShop = wxShopMapper.selectByPrimaryKey(wxPropertyContract.getShopId()); + list.add(wxShop); + result.put("wxShops", list); + } else { + result.put("wxShops", Collections.EMPTY_LIST); + } + return new ResultData(Result.SUCCESS, "查询成功", result); + } @Override public ResultData saveOrUpdate(WxPropertyContract record) { - - return null; + //保存租赁合同信息 + if (record.getId() == null) { + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + Calendar instance = Calendar.getInstance(); + instance.setTime(record.getRentalStartDate()); + instance.add(Calendar.MONTH, record.getLease()); + instance.add(Calendar.DAY_OF_MONTH, -1); + record.setRentalEndDate(instance.getTime()); + Date date = new Date(); + record.setCreatetime(date); + record.setUpdatetime(date); + try { + wxPropertyContractMapper.insertSelective(record); + } catch (Exception e) { + logger.error("保存物业合同信息失败,e:" + e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); + } + return new ResultData(Result.SUCCESS, "保存物业合同信息成功", record); + } else {//更新租赁合同信息 + Calendar instance = Calendar.getInstance(); + instance.setTime(record.getRentalStartDate()); + instance.add(Calendar.MONTH, record.getLease()); + instance.add(Calendar.DAY_OF_MONTH, -1); + record.setRentalEndDate(instance.getTime()); + record.setPrice(record.getPrice() != null ? record.getPrice() * 100 : 0); + record.setDeposit(record.getDeposit() != null ? record.getDeposit() * 100 : 0); + record.setUpdatetime(new Date()); + try { + wxPropertyContractMapper.updateByPrimaryKeySelective(record); + + //建立账单 + if (record.getMerchantId() != null && record.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()) + && record.getReceivePeriod() != null) { + WxBillProperty wxBillProperty = new WxBillProperty(); + wxBillProperty.setMerchantId(record.getMerchantId()); + List> billPropertyList = wxBillPropertyMapper.queryBillPropertyList(wxBillProperty); + if (billPropertyList.size() == 0) { + WxMerchant wxMerchant = new WxMerchant(); + wxMerchant.setId(record.getMerchantId()); + wxMerchant.setTenantId(record.getTenantId()); + //物业账单 + buildProperty(wxMerchant); + //物业押金账单 + buildDeposit(wxMerchant); + } + } + } catch (Exception e) { + logger.error("更新租赁合同信息失败,e:" + e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); + } + return new ResultData(Result.SUCCESS, "更新租赁合同信息成功"); + } } @Transactional(rollbackFor = {Exception.class}) @@ -86,7 +161,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService final IdWorker idWorker = IdWorker.get(); WxBillPropertyDeposit wxBillDeposit = new WxBillPropertyDeposit(); wxBillDeposit.setId(idWorker.nextId()); - wxBillDeposit.setRentContractId(wxPropertyContract.getId()); + wxBillDeposit.setPropertyContractId(wxPropertyContract.getId()); wxBillDeposit.setReceivePay(0); wxBillDeposit.setPay(0); int needpay = wxPropertyContract.getDeposit(); @@ -129,7 +204,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } @Transactional(rollbackFor = {Exception.class}) - public void buildRent(WxMerchant wxMerchant) { + public void buildProperty(WxMerchant wxMerchant) { //获取用户 MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); @@ -146,7 +221,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService for (int i = 0; i < paycount; i++) { WxBillProperty wxBillRent = new WxBillProperty(); wxBillRent.setId(idWorker.nextId()); - wxBillRent.setRentContractId(wxPropertyContract.getId()); + wxBillRent.setPropertyContractId(wxPropertyContract.getId()); wxBillRent.setReceivePay(0); wxBillRent.setPay(0); int needpay = wxPropertyContract.getPrice();