合同附件、签署和状态查询接口
// 获取合同预览信息
function getContractPreview(contractInfo) {
// 合同附件
var contractAttachments = [];
if (contractInfo.attachments) {
for (var i = 0; i < contractInfo.attachments.length; i++) {
contractAttachments.push({
name: contractInfo.attachments[i].name,
url: contractInfo.attachments[i].url
});
}
}
// 合同附件
var contractEnclosures = [];
if (contractInfo.enclosures) {
for (var i = 0; i < contractInfo.enclosures.length; i++) {
contractEnclosures.push({
name: contractInfo.enclosures[i].name,
url: contractInfo.enclosures[i].url
});
}
}
// 获取合同预览信息
var contractPreview = {
agreement: contractInfo.agreement,
attachment: contractAttachments,
enclosure: contractEnclosures
};
return contractPreview;
}
// 签署合同
exports.signContract = function (req, res) {
// 接受参数
var params = req.body;
// 参数校验
if (!params.contractId || params.contractId.length == 0) {
return res.json(ResponseUtil.resp(ResponseUtil.ERROR_PARAMS));
}
// 查询合同信息
Contract.findById(params.contractId, function (err, contract) {
if (err) {
return res.json(ResponseUtil.resp(ResponseUtil.SERVER_ERROR));
}
// 校验合同状态
if (contract.status != 0) {
return res.json(ResponseUtil.resp(ResponseUtil.CONTRACT_STATUS_INVALID));
}
// 调用签署合同接口
signContract(contract.agreement, contract.contractorType, contract.contractorId, function (err, result) {
if (err) {
return res.json(ResponseUtil.resp(ResponseUtil.SERVER_ERROR));
}
// 更新合同信息
contract.status = 1;
contract.signature = result.signature;
contract.signatureImg = result.signatureImg;
contract.signatureTime = result.signatureTime;
contract.save(function (err, result) {
if (err) {
return res.json(ResponseUtil.resp(ResponseUtil.SERVER_ERROR));
}
return res.json(ResponseUtil.resp(ResponseUtil.SUCCESS));
});
});
});
};
// 查询合同签署状态
exports.querySignStatus = function (req, res) {
// 接受参数
var params = req.body;
// 参数校验
if (!params.contractId || params.contractId.length == 0) {
return res.json(ResponseUtil.resp(ResponseUtil.ERROR_PARAMS));
}
// 查询合同信息
Contract.findById(params.contractId, function (err, contract) {
if (err) {
return res.json(ResponseUtil.resp(ResponseUtil.SERVER_ERROR));
}
// 校验合同状态
if (contract.status != 0 && contract.status != 1) {
return res.json(ResponseUtil.resp(ResponseUtil.CONTRACT_STATUS_INVALID));
}
// 合同状态
var status = 0;
if (contract.status == 0) {
status = 0;
} else if (contract.status == 1) {
status = 1;
}
var result = {
status: status
};
return res.json(ResponseUtil.resp(ResponseUtil.SUCCESS, result));
});
};
// 查询合同内容
exports.queryContractInfo = function (req, res) {
// 接受参数
var params = req.body;
// 参数校验
if (!params.contractId || params.contractId.length == 0) {
return res.json(ResponseUtil.resp(ResponseUtil.ERROR_PARAMS));
}
// 查询合同信息
Contract.findById(params.contractId, function (err, contract) {
if (err) {
return res.json(ResponseUtil.resp(ResponseUtil.SERVER_ERROR));
}
// 校验合同状态
if (contract.status != 1) {
return res.json(ResponseUtil.resp(ResponseUtil.CONTRACT_STATUS_INVALID));
}
// 获取合同预览信息
var contractPreview = getContractPreview(contract);
// 返回结果
var result = {
preview: contractPreview
};
return res.json(ResponseUtil.resp(ResponseUtil.SUCCESS, result));
});
};
原文地址: https://www.cveoy.top/t/topic/li25 著作权归作者所有。请勿转载和采集!