@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;
}
签合同代码---需优化
最新推荐文章于 2024-07-27 09:00:00 发布