签合同代码---需优化

    @Override
    @Transactional(rollbackFor = Exception.class)
    public String signRentHouseContract(String templateFilePath, String contractNumber, AppSignContractReqVO signContractReqVO, Long orderId) throws Exception {

        String nickName = null;
        Integer contractsign = 2;

        //通过订单id去查出userId,再去memberUser查nickName
        HouseOrderDO houseOrderDO = houseOrderMapper.selectById(orderId);
        Long userId = houseOrderDO.getUserId();

        //不同类型对应不同的模版数据
        Integer orderType = houseOrderDO.getOrderType();

        if (houseOrderDO != null) {
            //通过userId去查nickName
            nickName = memberUserApi.getUser(userId).getNickname();
        }

        // 表单数据   租房合同
        HashMap<String, String> data = new HashMap<>();
        //第一份合同
        data.put("address", signContractReqVO.getAddress());
        data.put("userNameA", signContractReqVO.getUserNameA());
        data.put("userNameB", signContractReqVO.getUserNameB());
        data.put("myYear", signContractReqVO.getMyYear());
        data.put("myMonth", signContractReqVO.getMyMonth());
        data.put("myDay", signContractReqVO.getMyDay());
        data.put("toYear", signContractReqVO.getToYear());
        data.put("toMonth", signContractReqVO.getToMonth());
        data.put("toDay", signContractReqVO.getToDay());
        data.put("liveArea", signContractReqVO.getLiveArea().toString());
        data.put("rentStatus", signContractReqVO.getRentStatus().toString());
        data.put("allRentPrice", signContractReqVO.getAllRentPrice().toString());
        data.put("deposit", signContractReqVO.getDeposit().toString());
        data.put("payDay", signContractReqVO.getPayDay().toString());
        data.put("refundDay", signContractReqVO.getRefundDay().toString());

        //卖房合同数据表单
        HashMap<String, String> saleHouseMap = new HashMap<>();


        // 图片数据
        HashMap<String, String> imageData = new HashMap<>();

        //数据解析  判断是第一份合同还是签名后的合同
        if (signContractReqVO.getSignY() == null) {
            //判断是租赁合同还是买卖合同  【租房】
            if (orderType == 1 || orderType == 2) {
                String contractUrl = SignContractUtil.signContract(contractNumber, templateFilePath, data, imageData);
                //签订合同的时候像数据库新增一条合同记录trade_house_order_contract(订单合同表)
                if (contractUrl != null && !contractUrl.equals("")) {
                    //如果返回的url不为空,向表添加临时数据(new + set)
                    AppHouseOrderContractSaveReqVO appHouseOrderContractSaveReqVO = new AppHouseOrderContractSaveReqVO();
                    appHouseOrderContractSaveReqVO.setContractUrl(contractUrl);
                    appHouseOrderContractSaveReqVO.setContractNumber(contractNumber);
                    appHouseOrderContractSaveReqVO.setOrderId(String.valueOf(orderId));
                    appHouseOrderContractSaveReqVO.setSignDate(LocalDateTime.now());
                    appHouseOrderContractSaveReqVO.setNickname(nickName);
                    appHouseOrderContractSaveReqVO.setUserId(userId);
                    //第一次,未生效
                    appHouseOrderContractSaveReqVO.setContractStatus(1);
                    //向数据库新增
                    houseOrderContractMapper.insert(BeanUtils.toBean(appHouseOrderContractSaveReqVO, HouseOrderContractDO.class));
                }
                //结束,返回
                return contractUrl;
            }
            //买卖合同
            if (orderType == 3 || orderType == 4) {
                String contractUrl = SignContractUtil.signContract(contractNumber, templateFilePath, saleHouseMap, imageData);
                //签订合同的时候像数据库新增一条合同记录trade_house_order_contract(订单合同表)
                if (contractUrl != null && !contractUrl.equals("")) {
                    //如果返回的url不为空,向表添加临时数据(new + set)
                    AppHouseOrderContractSaveReqVO appHouseOrderContractSaveReqVO = new AppHouseOrderContractSaveReqVO();
                    appHouseOrderContractSaveReqVO.setContractUrl(contractUrl);
                    appHouseOrderContractSaveReqVO.setContractNumber(contractNumber);
                    appHouseOrderContractSaveReqVO.setOrderId(String.valueOf(orderId));
                    appHouseOrderContractSaveReqVO.setSignDate(LocalDateTime.now());
                    appHouseOrderContractSaveReqVO.setNickname(nickName);
                    appHouseOrderContractSaveReqVO.setUserId(userId);
                    //第一次,未生效
                    appHouseOrderContractSaveReqVO.setContractStatus(1);
                    //向数据库新增
                    houseOrderContractMapper.insert(BeanUtils.toBean(appHouseOrderContractSaveReqVO, HouseOrderContractDO.class));
                }
                //结束,返回
                return contractUrl;
            }
        }

        //第二份合同(有签名URL---暂定他签名就合同生效了)
        String signY = signContractReqVO.getSignY();
        imageData.put("signY", signY);
        if (orderType == 1 || orderType == 2) {
            String contractUrl = SignContractUtil.signContract(contractNumber, templateFilePath, data, imageData);
            if (contractUrl != null && !contractUrl.equals("")) {
                //再增加一条记录
                AppHouseOrderContractSaveReqVO appHouseOrderContractSaveReqVO = new AppHouseOrderContractSaveReqVO();
                appHouseOrderContractSaveReqVO.setContractUrl(contractUrl);
                appHouseOrderContractSaveReqVO.setContractNumber(contractNumber);
                appHouseOrderContractSaveReqVO.setOrderId(String.valueOf(orderId));
                appHouseOrderContractSaveReqVO.setSignDate(LocalDateTime.now());
                appHouseOrderContractSaveReqVO.setNickname(nickName);
                appHouseOrderContractSaveReqVO.setUserId(userId);
                appHouseOrderContractSaveReqVO.setContractStatus(2);
                //向数据库执行插入操作
                houseOrderContractMapper.insert(BeanUtils.toBean(appHouseOrderContractSaveReqVO, HouseOrderContractDO.class));

                //删除未生效且orderId相同的合同
                deleteByOrderIdUnContract(orderId);

                //更新订单表合同签订状态
                houseOrderService.updateHouseOrderContractsigned(orderId, contractsign);
            }
            return contractUrl;
        }
        
        String contractUrl = SignContractUtil.signContract(contractNumber, templateFilePath, saleHouseMap, imageData);
        if (contractUrl != null && !contractUrl.equals("")) {
            //再增加一条记录
            AppHouseOrderContractSaveReqVO appHouseOrderContractSaveReqVO = new AppHouseOrderContractSaveReqVO();
            appHouseOrderContractSaveReqVO.setContractUrl(contractUrl);
            appHouseOrderContractSaveReqVO.setContractNumber(contractNumber);
            appHouseOrderContractSaveReqVO.setOrderId(String.valueOf(orderId));
            appHouseOrderContractSaveReqVO.setSignDate(LocalDateTime.now());
            appHouseOrderContractSaveReqVO.setNickname(nickName);
            appHouseOrderContractSaveReqVO.setUserId(userId);
            appHouseOrderContractSaveReqVO.setContractStatus(2);
            //向数据库执行插入操作
            houseOrderContractMapper.insert(BeanUtils.toBean(appHouseOrderContractSaveReqVO, HouseOrderContractDO.class));

            //删除未生效且orderId相同的合同
            deleteByOrderIdUnContract(orderId);

            //更新订单表合同签订状态
            houseOrderService.updateHouseOrderContractsigned(orderId, contractsign);
        }
        return contractUrl;
    }

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值