20261008
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增签约宝合同
|
||||
* @url client/contract/kh/addSign 前端调用的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} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
let payByUser = userInfo;
|
||||
|
||||
const otherUser = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'uni-id-users',
|
||||
whereJson: {
|
||||
mobile: data.phone
|
||||
}
|
||||
})
|
||||
if (JSON.stringify(otherUser) === '{}' || !otherUser) return {
|
||||
code: -1,
|
||||
msg: '签约接收方账号不存在'
|
||||
}
|
||||
if (data.payBy === undefined || data.payBy === null || data.payBy === '')
|
||||
return {
|
||||
code: -1,
|
||||
msg: `请选择费用承担方`
|
||||
}
|
||||
if (data.payBy === 1) payByUser = otherUser
|
||||
// console.log('data.thirdList', data.thirdList, data.thirdList && data.thirdList.length > 0, data.thirdList.length > 0)
|
||||
if (data.thirdList && data.thirdList.length > 0) {
|
||||
// let inThird = false
|
||||
for (let i = 0; i < data.thirdList.length; i++) {
|
||||
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: '第三方不能与对方为相同账号'
|
||||
}
|
||||
if (data.payBy === 2 && i === 0) {
|
||||
payByUser = thirdUser
|
||||
}
|
||||
}
|
||||
// if (data.payBy === 2 && !inThird) return {
|
||||
// code: -1,
|
||||
// msg: '该承担方不在第三方名单中'
|
||||
// }
|
||||
}
|
||||
|
||||
if (!otherUser.fadadaConfirm) return {
|
||||
code: -1,
|
||||
msg: '签约接收方账号未通过法大大认证,无法签约'
|
||||
}
|
||||
|
||||
if (otherUser._id === uid) return {
|
||||
code: -1,
|
||||
msg: '无法与自己签约'
|
||||
}
|
||||
if (payByUser.qybNum <= 0) return {
|
||||
code: -1,
|
||||
msg: '费用承担方已无签约宝次数,无法继续签约'
|
||||
}
|
||||
data.payerUid = payByUser._id
|
||||
data.transactionId = vk.pubfn.createOrderNo("C", 20)
|
||||
let doc_url = data.contractFile
|
||||
if (Array.isArray(doc_url)) doc_url = doc_url[doc_url.length - 1]
|
||||
const uploaddocs = await pubFun.fadada('uploaddocs.api', {
|
||||
contract_id: data.transactionId,
|
||||
doc_title: data.title,
|
||||
doc_url,
|
||||
// file: doc_url,
|
||||
doc_type: '.pdf'
|
||||
})
|
||||
if (parseInt(uploaddocs.code) === 1000) {
|
||||
let partyCount = 2
|
||||
if (data.thirdList && data.thirdList.length > 0) partyCount += data.thirdList.length
|
||||
// 对方是甲方
|
||||
const buyerSignKeyword = data.buyerSignKeyword // 签约发起方
|
||||
const sellerSignKeyword = data.sellerSignKeyword // 签约被邀请方
|
||||
data.buyerSignKeyword = data.userType % 2 === 1 ? sellerSignKeyword : buyerSignKeyword
|
||||
data.sellerSignKeyword = data.userType % 2 === 1 ? buyerSignKeyword : sellerSignKeyword
|
||||
const contractId = await vk.baseDao.add({
|
||||
dbName: 'jjx-contract',
|
||||
dataJson: {
|
||||
...data, ...{
|
||||
status: 1,
|
||||
userId: uid,
|
||||
changeNum: 0,
|
||||
productTitle: data.title,
|
||||
docTitle: data.title,
|
||||
type: 'sign',
|
||||
contractBase: data.contractFile,
|
||||
partyCount,
|
||||
signCount: 0,
|
||||
tradeMethod: data.tradeMethod
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
await vk.daoCenter.userContractDao.adds([
|
||||
{
|
||||
transactionId: vk.pubfn.createOrderNo("S", 20),
|
||||
userId: uid,
|
||||
role: data.userType === 1 ? 'seller' : 'buyer',
|
||||
sign: false,
|
||||
contractId,
|
||||
},
|
||||
{
|
||||
transactionId: vk.pubfn.createOrderNo("S", 20),
|
||||
userId: otherUser._id,
|
||||
role: data.userType === 1 ? 'buyer' : 'seller',
|
||||
sign: false,
|
||||
contractId,
|
||||
}
|
||||
])
|
||||
|
||||
if (data.thirdList && data.thirdList.length > 0) {
|
||||
for (let i = 0; i < data.thirdList.length; i++) {
|
||||
const thirdUser = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'uni-id-users',
|
||||
whereJson: {
|
||||
mobile: data.thirdList[i].phone
|
||||
}
|
||||
})
|
||||
console.log('thirdUser', thirdUser)
|
||||
if (thirdUser) {
|
||||
await vk.daoCenter.userContractDao.adds([
|
||||
{
|
||||
transactionId: vk.pubfn.createOrderNo("ST", 20),
|
||||
userId: thirdUser._id,
|
||||
role: 'third',
|
||||
sign: false,
|
||||
contractId,
|
||||
keyword: data.thirdList[i].signKeyword,
|
||||
},
|
||||
])
|
||||
await vk.baseDao.add({
|
||||
dbName: "jjx-message",
|
||||
dataJson: {
|
||||
uid: thirdUser._id,
|
||||
title: `金久信签约宝`,
|
||||
content: `您有签约宝邀请,赶紧去签订合同吧`,
|
||||
type: 'contract',
|
||||
hasRead: false,
|
||||
}
|
||||
});
|
||||
}
|
||||
// await pubFun.sendNotifySms(thirdUser._id, 'SMS_474570002', {
|
||||
// name: thirdUser.accountType === 2 ? thirdUser.company.companyName : thirdUser.person.personName,
|
||||
// name2: userInfo.accountType === 2 ? userInfo.company.companyName : userInfo.person.personName,
|
||||
// })
|
||||
}
|
||||
}
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: "uni-id-users",
|
||||
id: payByUser._id,
|
||||
dataJson: {
|
||||
qybNum: _.inc(-1)
|
||||
}
|
||||
});
|
||||
|
||||
// 签约宝扣费记录
|
||||
const remainNum = payByUser.qybNum - 1
|
||||
const addSignLog = await vk.baseDao.add({
|
||||
dbName: "jjx-sign-pay_list",
|
||||
dataJson: {
|
||||
userId: payByUser._id,
|
||||
remainNum,
|
||||
contractId,
|
||||
payBy: data.payBy
|
||||
}
|
||||
});
|
||||
await vk.baseDao.add({
|
||||
dbName: "jjx-message",
|
||||
dataJson: {
|
||||
uid: otherUser._id,
|
||||
title: `金久信签约宝`,
|
||||
content: `您有金久信签约宝邀请,赶紧去签订合同吧`,
|
||||
type: 'contract',
|
||||
hasRead: false,
|
||||
}
|
||||
});
|
||||
// await pubFun.sendNotifySms(otherUser._id, 'SMS_474570002', {
|
||||
// name: otherUser.accountType === 2 ? otherUser.company.companyName : otherUser.person.personName,
|
||||
// name2: userInfo.accountType === 2 ? userInfo.company.companyName : userInfo.person.personName,
|
||||
// })
|
||||
|
||||
}
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user