'use strict'; const dbName = require('../../../../dao/config.js') module.exports = { /** * 发起/创建合同 * @url client/contract/kh/launch 前端调用的url参数地址 * data 请求参数 * @param {String} params1 参数1 */ main: async (event) => { let {data = {}, userInfo, util, filterResponse, originalParam} = event; let {customUtil, uniID, config, pubFun, vk, db, _} = util; let {uid, contractId, title, contractFile, otherFile, signEndDate, buyerSignKeyword, sellerSignKeyword} = data; let res = {code: 0, msg: ""}; // 业务逻辑开始----------------------------------------------------------- const otherUser = await vk.baseDao.findByWhereJson({ dbName: 'jjx-user-contract', whereJson: { contractId: contractId, userId: _.neq(uid) } }) if (data.thirdList && data.thirdList.length > 0) { for (let i = 0; i < data.thirdList.length; i++) { if (data.thirdList[i].phone) { const thirdUser = await vk.baseDao.findByWhereJson({ dbName: 'uni-id-users', whereJson: { mobile: data.thirdList[i].phone } }) if (!thirdUser) return { code: -1, msg: `该用户:${data.thirdList[i].phone}不存在` } if (!thirdUser.fadadaConfirm) return { code: -1, msg: `该用户:${data.thirdList[i].phone}未通过法大大认证,无法签约` } if (thirdUser.uid === uid) return { code: -1, msg: '第三方不能为自己' } if (thirdUser.uid === otherUser._id) return { code: -1, msg: '第三方不能与对方为相同账号' } } } } const contract = await vk.baseDao.findByWhereJson({ dbName: dbName.contract, whereJson: { _id: contractId, userId: uid } }) console.log('contract: ', contract); let newTransactionId = vk.pubfn.createOrderNo("C", 20) let doc_url = contractFile if (Array.isArray(doc_url)) doc_url = doc_url[doc_url.length - 1] const uploaddocs = await pubFun.fadada('uploaddocs.api', { contract_id: newTransactionId, doc_title: title, doc_url, // file: doc_url, doc_type: '.pdf' }) let otherFileResList = [] // 存在附件则合并 if (otherFile && otherFile.length > 0) { for (let i = 0; i < otherFile.length; i++) { otherFileResList.push(newTransactionId + i.toString()) await pubFun.fadada('uploaddocs.api', { contract_id: newTransactionId + i.toString(), doc_title: title + `:附件${i + 1}`, doc_url: otherFile[i], doc_type: '.pdf' }) } otherFileResList.unshift(newTransactionId) // 合并接口 newTransactionId = vk.pubfn.createOrderNo("MC", 20) const mergeRes = await pubFun.fadada('merge_contract.api', { contract_id: newTransactionId, doc_title: title, contract_ids: otherFileResList.join() }) console.log('mergeRes', mergeRes) console.log('otherFileResList', otherFileResList) } await vk.baseDao.update({ dbName: dbName.contract, whereJson: { _id: contractId }, dataJson: { transactionId: newTransactionId, } }) if (parseInt(uploaddocs.code) === 1000) { let partyCount = 2 if (data.thirdList && data.thirdList.length > 0) partyCount += data.thirdList.filter(item => !!item.phone).length const contract = await vk.baseDao.updateAndReturn({ dbName: dbName.contract, whereJson: { _id: contractId, userId: uid }, dataJson: { status: 1, docTitle: title, signEndDate, otherFile, partyCount, contractBase: contractFile, buyerSignKeyword, sellerSignKeyword } }) if (contract.type === 'enquiry') { await vk.baseDao.update({ dbName: 'jjx-enquiry-sheet', whereJson: { _id: contract.sheetId }, dataJson: { status: 2, } }) } // const otherUser = await vk.baseDao.findByWhereJson({ // dbName: 'jjx-user-contract', // whereJson: { // contractId: contractId, // userId: _.neq(uid) // } // }) await vk.baseDao.add({ dbName: "jjx-message", dataJson: { uid: otherUser.userId, title: `您有新的合同待签署`, content: `您有新的合同待签署,赶紧去签合同吧`, type: 'contract', hasRead: false, } }); // await pubFun.sendNotifySms(otherUser.userId, 'SMS_474525001') await vk.baseDao.del({ dbName: 'jjx-user-contract', whereJson: { contractId, role: 'third', } }) await vk.baseDao.del({ dbName: 'jjx-message', whereJson: { contractId, type: 'contract', isThird: true } }) if (data.thirdList && data.thirdList.length > 0) { console.log('data.thirdList', data.thirdList) for (let i = 0; i < data.thirdList.length; i++) { if (data.thirdList[i].phone) { const thirdUser = await vk.baseDao.findByWhereJson({ dbName: 'uni-id-users', whereJson: { mobile: data.thirdList[i].phone } }) if (thirdUser) { await vk.daoCenter.userContractDao.adds([ { transactionId: vk.pubfn.createOrderNo("ST", 20), userId: thirdUser.uid, role: 'third', sign: false, contractId, keyword: data.thirdList[i].signKeyword, }, ]) await vk.baseDao.add({ dbName: "jjx-message", dataJson: { uid: thirdUser.uid, title: `合同`, content: `您有合同待签署,赶紧去签订合同吧`, type: 'contract', hasRead: false, contractId, isThird: true } }); } // await pubFun.sendNotifySms(thirdUser._id, 'SMS_474525001') } } } res.data = uploaddocs.result } else { return { code: -1, msg: uploaddocs.msg } } // 业务逻辑结束----------------------------------------------------------- return res; } }