feat: 补齐客户端/管理端服务模块与数据库 schema,完善登录短信、法大大签署及公共函数
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询商品分类列表
|
||||
* @url client/product/category/pub/getAll 前端调用的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, whereJson } = data;
|
||||
let res = { code: 0, msg: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let dbName = "jjx-process-category";
|
||||
res.data = await vk.baseDao.selects({
|
||||
dbName,
|
||||
getMain: true,
|
||||
whereJson,
|
||||
pageSize: -1
|
||||
});
|
||||
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询商品分类列表
|
||||
* @url client/product/category/pub/getAll 前端调用的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 dbName = "jjx-process-category";
|
||||
res = await vk.baseDao.selects({
|
||||
dbName,
|
||||
pageIndex: 1,
|
||||
pageSize: 500,
|
||||
whereJson: {
|
||||
parent_id: _.in([null, ""]),
|
||||
_id: _.exists(true)
|
||||
},
|
||||
sortArr: [{name: "sort", type: "asc"}],
|
||||
// 树状结构参数
|
||||
// treeProps: {
|
||||
// id: "_id", // 唯一标识字段,默认为 _id
|
||||
// parent_id: "parent_id", // 父级标识字段,默认为 parent_id
|
||||
// children: "children", // 自定义返回的下级字段名,默认为 children
|
||||
// level: 2, // 查询返回的树的最大层级。超过设定层级的节点不会返回。默认10级,最大15,最小1
|
||||
// limit: 500, // 每一级最大返回的数据。
|
||||
// whereJson: {}
|
||||
// }
|
||||
});
|
||||
for (const item of res.rows) {
|
||||
const children = await vk.baseDao.selects({
|
||||
dbName,
|
||||
pageIndex: 1,
|
||||
pageSize: 500,
|
||||
whereJson: {
|
||||
parent_id: item._id
|
||||
},
|
||||
sortArr: [
|
||||
// {name: "quoteNum", type: "desc"},
|
||||
{name: "sort", type: "asc"},
|
||||
]
|
||||
})
|
||||
item.children = children.rows
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
'use strict';
|
||||
const dayjs = require("dayjs");
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增加工单
|
||||
* @url client/process/kh/add 前端调用的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,
|
||||
title,
|
||||
address,
|
||||
files,
|
||||
remark,
|
||||
invoice,
|
||||
writeInvoiceTime,
|
||||
invoiceType,
|
||||
transportDocuments,
|
||||
otherTransportDocuments,
|
||||
transportLimit,
|
||||
tradeMethod,
|
||||
payMethod,
|
||||
advancePayRate,
|
||||
otherPayMethod,
|
||||
reputationPayDay,
|
||||
answerTime,
|
||||
earnestMoney,
|
||||
status
|
||||
} = data;
|
||||
let res = {
|
||||
code: 0,
|
||||
msg: "添加成功"
|
||||
};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
if (parseInt(userInfo.userLevel) < 3)
|
||||
{
|
||||
if (parseInt(userInfo.remainQuoteNum) === 0 || !userInfo.remainQuoteNum) {
|
||||
|
||||
return {
|
||||
code: 1,
|
||||
msg: "您的询价次数用完"
|
||||
}
|
||||
}
|
||||
if (userInfo.quoteExpiredAt || dayjs(userInfo.quoteExpiredAt).isBefore(dayjs())) {
|
||||
return {
|
||||
code: 1,
|
||||
msg: "您的询价次数已过期"
|
||||
}
|
||||
}
|
||||
}
|
||||
if (userInfo.remainQuoteNum && userInfo.remainQuoteNum > 0) {
|
||||
await vk.baseDao.update({
|
||||
dbName: "uni-id-users",
|
||||
whereJson: {
|
||||
uid
|
||||
},
|
||||
dataJson: {
|
||||
remainQuoteNum: _.inc(-1)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName: '',
|
||||
dataJson:{
|
||||
title,
|
||||
address,
|
||||
files,
|
||||
remark,
|
||||
invoice,
|
||||
writeInvoiceTime,
|
||||
invoiceType,
|
||||
transportDocuments,
|
||||
otherTransportDocuments,
|
||||
transportLimit,
|
||||
tradeMethod,
|
||||
payMethod,
|
||||
advancePayRate,
|
||||
otherPayMethod,
|
||||
reputationPayDay,
|
||||
answerTime,
|
||||
earnestMoney,
|
||||
status,
|
||||
answerNumber: 0,
|
||||
showInAdmin: 1,
|
||||
userId: uid
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,157 @@
|
||||
'use strict';
|
||||
const dayjs = require("dayjs");
|
||||
var isBetween = require('dayjs/plugin/isBetween')
|
||||
dayjs.extend(isBetween)
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增报价
|
||||
* @url client/process/quote/kh/addQuote 前端调用的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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
if (parseInt(userInfo.factoryStatus) !== 1) return {
|
||||
code: 1,
|
||||
msg: "非加工厂,无法报价,请去个人中心申请加工厂"
|
||||
}
|
||||
|
||||
let noQuoteNo = false
|
||||
|
||||
if (parseInt(userInfo.userLevel) < 3) {
|
||||
if (parseInt(userInfo.remainQuoteNum) === 0 || !userInfo.remainQuoteNum) {
|
||||
|
||||
const checkSheetQuoteNum = await vk.baseDao.findById({
|
||||
dbName: "jjx-process-sheet",
|
||||
id: data.sheetId
|
||||
})
|
||||
if (checkSheetQuoteNum.quoteAmount) {
|
||||
const checkQuoteNum = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-user-quote-num",
|
||||
whereJson: {
|
||||
uid,
|
||||
type: 'process',
|
||||
sheetId: data.sheetId,
|
||||
}
|
||||
});
|
||||
if (!checkQuoteNum || checkQuoteNum.num === 0) noQuoteNo = true
|
||||
} else noQuoteNo = true
|
||||
}
|
||||
noQuoteNo = !!(userInfo.quoteExpiredAt && dayjs(userInfo.quoteExpiredAt).isBefore(dayjs()));
|
||||
}
|
||||
if (noQuoteNo) {
|
||||
return {
|
||||
code: 1,
|
||||
msg: "您的报价次数已过期/用完"
|
||||
}
|
||||
}
|
||||
if (userInfo.remainQuoteNum && userInfo.remainQuoteNum > 0) {
|
||||
await vk.baseDao.update({
|
||||
dbName: "uni-id-users",
|
||||
whereJson: {
|
||||
uid
|
||||
},
|
||||
dataJson: {
|
||||
remainQuoteNum: _.inc(-1)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const checkSheet = await vk.baseDao.findById({
|
||||
dbName: "jjx-process-sheet",
|
||||
id: data.sheetId
|
||||
})
|
||||
|
||||
if (checkSheet.status > 0) return {
|
||||
code: 11,
|
||||
msg: "该加工单已关闭"
|
||||
}
|
||||
|
||||
if (checkSheet.earnestMoney && checkSheet.earnestMoney > 0 && checkSheet.earnestMoney > userInfo.paidEnsure) {
|
||||
return {
|
||||
code: 12,
|
||||
msg: "您的保证金不足,请先缴纳保证金"
|
||||
}
|
||||
}
|
||||
|
||||
const dbName = 'jjx-process-quote'
|
||||
await vk.baseDao.add({
|
||||
dbName,// 表名
|
||||
dataJson: { // 需要新增的数据 json格式
|
||||
...data,
|
||||
...{
|
||||
userId: data.uid,
|
||||
status: 0
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
await vk.baseDao.update({
|
||||
dbName: "jjx-process-sheet",// 表名
|
||||
whereJson: {
|
||||
_id: data.sheetId,
|
||||
},
|
||||
dataJson: {
|
||||
quoteNum: _.inc(1)
|
||||
}
|
||||
})
|
||||
|
||||
const sheet = await vk.baseDao.findById({
|
||||
dbName: "jjx-process-sheet",// 表名
|
||||
id: data.sheetId
|
||||
});
|
||||
|
||||
const checkMessage = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-message-config",
|
||||
whereJson: {
|
||||
process: true,
|
||||
uid: sheet.userId
|
||||
}
|
||||
})
|
||||
|
||||
if (checkMessage) {
|
||||
|
||||
// if (checkMessage.doNotDisturbRange && checkMessage.doNotDisturbRange[0]) {
|
||||
// const date = dayjs().format("YYYY-MM-DD")
|
||||
// const doNotDisturbRangeStart = dayjs(checkMessage.doNotDisturbRange[0]).format("HH:mm")
|
||||
// const doNotDisturbRangeEnd = dayjs(checkMessage.doNotDisturbRange[1]).format("HH:mm")
|
||||
// if (dayjs().isBetween(dayjs(`${date} ${doNotDisturbRangeStart}`), dayjs(`${date} ${doNotDisturbRangeEnd}`)))
|
||||
// return res
|
||||
// }
|
||||
const date = dayjs().format("YYYY-MM-DD")
|
||||
if (checkMessage.doNotDisturbStart && checkMessage.doNotDisturbStart.length) {
|
||||
const doNotDisturbRangeStart = dayjs(`${date} ${checkMessage.doNotDisturbStart[0]}:${checkMessage.doNotDisturbStart[1]}`).format("HH:mm")
|
||||
const doNotDisturbRangeEnd = dayjs(`${date} ${checkMessage.doNotDisturbEnd[0]}:${checkMessage.doNotDisturbEnd[1]}`).format("HH:mm")
|
||||
if (dayjs().isBetween(dayjs(`${date} ${doNotDisturbRangeStart}`), dayjs(`${date} ${doNotDisturbRangeEnd}`)))
|
||||
return res
|
||||
}
|
||||
|
||||
if (checkMessage.tradeAmount && checkMessage.tradeAmount[0]) {
|
||||
if (sheet.totalPrice < checkMessage.tradeAmount[0] || sheet.totalPrice > checkMessage.tradeAmount[1])
|
||||
return res
|
||||
}
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: "jjx-message",
|
||||
dataJson: {
|
||||
uid: sheet.userId,
|
||||
title: `加工:${sheet.title}报价`,
|
||||
content: `您的加工信息有新的报价,赶紧去看看吧`,
|
||||
type: 'process',
|
||||
hasRead: false,
|
||||
pk: data.sheetId
|
||||
}
|
||||
});
|
||||
await pubFun.sendNotifySms(sheet.userId, 'SMS_474165512')
|
||||
}
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
'use strict';
|
||||
|
||||
const dbName = require('../../../../../dao/config.js')
|
||||
module.exports = {
|
||||
/**
|
||||
* 同意合作
|
||||
* @url client/enquiry/quote/kh/confirmQuote 前端调用的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,
|
||||
quoteId
|
||||
} = data;
|
||||
let res = {
|
||||
code: 0,
|
||||
msg: ""
|
||||
};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
// 修改报价单状态
|
||||
const quote = await vk.baseDao.updateAndReturn({
|
||||
dbName: 'jjx-enquiry-quote',
|
||||
whereJson: {
|
||||
_id: quoteId,
|
||||
status: 0
|
||||
},
|
||||
dataJson: {
|
||||
status: 1
|
||||
}
|
||||
})
|
||||
|
||||
if (!quote) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: '请刷新页面'
|
||||
}
|
||||
}
|
||||
// 获取乙方信息
|
||||
const quoteUser = await vk.baseDao.select({
|
||||
dbName: dbName.user,
|
||||
getMain: true,
|
||||
getOne: true,
|
||||
whereJson: {
|
||||
_id: quote.userId
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// 获取询价单信息
|
||||
const sheet = await vk.baseDao.selects({
|
||||
dbName: dbName.enquirySheet,
|
||||
whereJson: {_id: quote.sheetId},
|
||||
getMain: true,
|
||||
getOne: true
|
||||
})
|
||||
|
||||
// 获取商品信息
|
||||
const productTitle = sheet.productList.map(item => {
|
||||
return item.goodsName
|
||||
}).join("/")
|
||||
|
||||
if (sheet.signMethod !== 1) {
|
||||
console.log('quote', quote)
|
||||
console.log('sheet', sheet)
|
||||
const fadadaContractId = vk.pubfn.createOrderNo("E", 20)
|
||||
// 新增合同记录
|
||||
const contractId = await vk.baseDao.add({
|
||||
dbName: 'jjx-contract',
|
||||
dataJson: {
|
||||
fadadaContractId: fadadaContractId,
|
||||
contractBase: '', // 原始合同
|
||||
contractHistory: [], // 历史合同
|
||||
contractFinal: '', // 归档合同
|
||||
status: 0,
|
||||
userId: uid,
|
||||
type: 'enquiry',
|
||||
quoteId: quoteId,
|
||||
sheetId: quote.sheetId,
|
||||
productList: quote.productList,
|
||||
productTitle,
|
||||
tradeMethod: quote.tradeMethod,
|
||||
partyCount: 2,
|
||||
signCount: 0,
|
||||
contractType: sheet.contractType,
|
||||
signMethod: sheet.signMethod,
|
||||
sellerSupplement: sheet.sellerSupplement,
|
||||
transactionId: vk.pubfn.createOrderNo("C", 20),
|
||||
amount: quote.totalPrice,
|
||||
docTitle: sheet.title,
|
||||
}
|
||||
})
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-enquiry-sheet',
|
||||
id: quote.sheetId,
|
||||
dataJson: {
|
||||
status: 1
|
||||
}
|
||||
})
|
||||
// await vk.baseDao.updateById({
|
||||
// dbName: 'jjx-enquiry-quote',
|
||||
// id: quoteId,
|
||||
// dataJson: {
|
||||
// status: 1
|
||||
// }
|
||||
// })
|
||||
|
||||
// 上传合同模板
|
||||
|
||||
//新增 用户与合同的关联记录
|
||||
await vk.daoCenter.userContractDao.adds([
|
||||
{
|
||||
transactionId: vk.pubfn.createOrderNo("E", 20),
|
||||
userId: uid,
|
||||
role: 'buyer',
|
||||
sign: false,
|
||||
contractId
|
||||
},
|
||||
{
|
||||
transactionId: vk.pubfn.createOrderNo("E", 20),
|
||||
userId: quote.userId,
|
||||
role: 'seller',
|
||||
sign: false,
|
||||
contractId
|
||||
}
|
||||
])
|
||||
}else {
|
||||
const orderId = await vk.baseDao.add({
|
||||
dbName: "jjx-order",
|
||||
dataJson: {
|
||||
orderNo: vk.pubfn.createOrderNo("39XU", 20),
|
||||
uid: uid,
|
||||
sellerUid: quote.userId,
|
||||
orderStatus: 0,
|
||||
type: 4,
|
||||
amount: quote.totalPrice,
|
||||
sheetId: quote.sheetId,
|
||||
}
|
||||
})
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: "jjx-order-goods",
|
||||
dataJson: {
|
||||
orderId,
|
||||
goodsId: null,
|
||||
num: 1,
|
||||
goodsName: '询价单',
|
||||
goodsPrice: quote.totalPrice,
|
||||
goodsCover: null,
|
||||
}
|
||||
})
|
||||
}
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 获取加工单
|
||||
* @url client/process/pub/getList 前端调用的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, pageIndex, pageSize} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
let dbName = "jjx-process-quote";
|
||||
|
||||
let whereJson = {userId: uid};
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
getCount: true,
|
||||
whereJson,
|
||||
sortArr: [{name: "_add_time", type: "desc"}],
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "jjx-process-sheet",
|
||||
localKey: "sheetId",
|
||||
foreignKey: "_id",
|
||||
as: "sheet",
|
||||
limit: 1,
|
||||
},
|
||||
]
|
||||
});
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 获取加工单
|
||||
* @url client/process/pub/getList 前端调用的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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
'use strict';
|
||||
const dbName = require('../../../../../dao/config.js')
|
||||
const dayjs = require("dayjs");
|
||||
var isBetween = require('dayjs/plugin/isBetween')
|
||||
dayjs.extend(isBetween)
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增加工单
|
||||
* @url client/process/kh/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param event
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
if (!userInfo.fadadaConfirm && userInfo.authStatus === 1) {
|
||||
return {
|
||||
code: 1,
|
||||
msg: '请先完成认证'
|
||||
}
|
||||
} else if (!userInfo.businessCard) {
|
||||
return {
|
||||
code: 1,
|
||||
msg: '请完善名片信息'
|
||||
}
|
||||
} else {
|
||||
if (userInfo.businessCard.status !== 1) {
|
||||
return {
|
||||
code: 1,
|
||||
msg: '您的名片信息未审核,请耐心等待'
|
||||
}
|
||||
}
|
||||
}
|
||||
let dbName = "jjx-process-sheet";
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson: {
|
||||
...data,
|
||||
...{
|
||||
userId: data.uid,
|
||||
quoteNum: 0,
|
||||
status: 0,
|
||||
isShow: 0,
|
||||
showInAdmin: 1,
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
+156
@@ -0,0 +1,156 @@
|
||||
'use strict';
|
||||
const dbName = require("../../../../../dao/config");
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url client/process/sheet/kh/changeToOnlineSign 前端调用的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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const sheet = await vk.baseDao.updateAndReturn({
|
||||
dbName: "jjx-process-sheet",
|
||||
whereJson: {
|
||||
_id: data.id
|
||||
},
|
||||
dataJson: {
|
||||
signMethod: 0,
|
||||
status: 1
|
||||
}
|
||||
});
|
||||
|
||||
const quote = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-process-quote",
|
||||
whereJson: {
|
||||
sheetId: data.id,
|
||||
status: 1
|
||||
}
|
||||
});
|
||||
|
||||
if (quote) {
|
||||
|
||||
|
||||
const fadadaContractId = vk.pubfn.createOrderNo("E", 20)
|
||||
const contractTransactionId = vk.pubfn.createOrderNo("C", 20)
|
||||
|
||||
const contractId = await vk.baseDao.add({
|
||||
dbName: 'jjx-contract',
|
||||
dataJson: {
|
||||
fadadaContractId,
|
||||
contractBase: '', // 原始合同
|
||||
contractHistory: [], // 历史合同
|
||||
contractFinal: '', // 归档合同
|
||||
status: 0,
|
||||
userId: uid,
|
||||
type: 'process',
|
||||
quoteId: quote.id,
|
||||
sheetId: quote.sheetId,
|
||||
productList: quote.productList,
|
||||
productTitle: sheet.title,
|
||||
tradeMethod: 0,
|
||||
partyCount: 2,
|
||||
signCount: 0,
|
||||
contractType: sheet.contractType,
|
||||
signMethod: sheet.signMethod,
|
||||
sellerSupplement: sheet.sellerSupplement,
|
||||
transactionId: contractTransactionId,
|
||||
amount: quote.totalPrice,
|
||||
docTitle: sheet.title
|
||||
}
|
||||
})
|
||||
|
||||
// 上传合同模板
|
||||
|
||||
//新增 用户与合同的关联记录
|
||||
await vk.daoCenter.userContractDao.adds([
|
||||
{
|
||||
transactionId: vk.pubfn.createOrderNo("P", 20),
|
||||
userId: quote.userId,
|
||||
role: 'seller',
|
||||
sign: false,
|
||||
contractId
|
||||
},
|
||||
{
|
||||
transactionId: vk.pubfn.createOrderNo("P", 20),
|
||||
userId: uid,
|
||||
role: 'buyer',
|
||||
sign: false,
|
||||
contractId
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
// const contractFile = await vk.baseDao.findById({
|
||||
// dbName: 'jjx-dict',
|
||||
// id: '657d36befe975f63af1f24e7'
|
||||
// })
|
||||
// const signMaxDate = await vk.baseDao.findById({
|
||||
// dbName: 'jjx-dict',
|
||||
// id: '657d78958b0da41d311bd94c'
|
||||
// })
|
||||
// const buyerSignKeyword = await vk.baseDao.findById({
|
||||
// dbName: 'jjx-dict',
|
||||
// id: '657d37972139294200fc9a01'
|
||||
// })
|
||||
// const sellerSignKeyword = await vk.baseDao.findById({
|
||||
// dbName: 'jjx-dict',
|
||||
// id: '657d37a609664c4f4a5c4afb'
|
||||
// })
|
||||
// const signEndDate = vk.pubfn.getOffsetTime(new Date(), {
|
||||
// day: parseInt(signMaxDate.content),
|
||||
// mode: "after",
|
||||
// });
|
||||
//
|
||||
// const uploaddocs = await pubFun.fadada('uploaddocs.api', {
|
||||
// contract_id: contractTransactionId,
|
||||
// doc_title: sheet.title,
|
||||
// doc_url: contractFile.content,
|
||||
// // file: doc_url,
|
||||
// doc_type: '.pdf'
|
||||
// })
|
||||
// if (parseInt(uploaddocs.code) === 1000) {
|
||||
// await vk.baseDao.updateAndReturn({
|
||||
// dbName: dbName.contract,
|
||||
// whereJson: {
|
||||
// _id: contractId,
|
||||
// userId: uid
|
||||
// },
|
||||
// dataJson: {
|
||||
// status: 1,
|
||||
// docTitle: sheet.title,
|
||||
// signEndDate,
|
||||
// otherFile: '',
|
||||
// contractBase: contractFile.content,
|
||||
// buyerSignKeyword: buyerSignKeyword.content,
|
||||
// sellerSignKeyword: sellerSignKeyword.content
|
||||
// }
|
||||
// })
|
||||
// await vk.baseDao.updateAndReturn({
|
||||
// dbName: 'jjx-process-sheet',
|
||||
// whereJson: {
|
||||
// _id: data.id
|
||||
// },
|
||||
// dataJson: {
|
||||
// status: 2
|
||||
// }
|
||||
// })
|
||||
//
|
||||
// res.data = uploaddocs.result
|
||||
// } else {
|
||||
// return {
|
||||
// code: -1,
|
||||
// msg: uploaddocs.msg
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
const dbName = require('../../../../../dao/config.js')
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url client/enquiry/sheet/kh/delete 前端调用的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 { _id } = data;
|
||||
if(vk.pubfn.isNull(_id)){
|
||||
return { code : -1, msg : 'id不能为空' };
|
||||
}
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-process-sheet',
|
||||
id:_id
|
||||
});
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 加工详情
|
||||
* @url client/process/sheet/pub/getInfo 前端调用的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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const dbName = "jjx-process-sheet";
|
||||
const quoteDbName = "jjx-process-quote";
|
||||
const userDbName = "uni-id-users";
|
||||
|
||||
res = await vk.baseDao.findById({
|
||||
dbName, id: data.id
|
||||
})
|
||||
|
||||
res.quoteList = await vk.baseDao.selects({
|
||||
dbName: quoteDbName,
|
||||
whereJson: {
|
||||
sheetId: data.id,
|
||||
},
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "userId",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
fieldJson: {
|
||||
_id: true,
|
||||
company: {
|
||||
companyName: true,
|
||||
mobile: true,
|
||||
},
|
||||
person: {
|
||||
personName: true,
|
||||
mobile: true,
|
||||
},
|
||||
businessCard: true,
|
||||
accountType: true,
|
||||
},
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
res.user = await vk.baseDao.findById({
|
||||
dbName: userDbName,
|
||||
id: res.userId
|
||||
})
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
'use strict';
|
||||
const dbName = require('../../../../../dao/config.js')
|
||||
module.exports = {
|
||||
/**
|
||||
* 获取加工单
|
||||
* @url client/process/pub/getList 前端调用的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, userId, pageIndex, pageSize, keyword, categoryIds, provinceCodes, area, formData, status, isUser} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
const dbName = "jjx-process-sheet";
|
||||
const whereJson = {isShow: 1};
|
||||
|
||||
if (vk.pubfn.isNotNull(keyword)) {
|
||||
whereJson.title = new RegExp(keyword)
|
||||
}
|
||||
|
||||
if (vk.pubfn.isNotNull(isUser)) {
|
||||
if (data.otherUid) whereJson.otherUid = data.otherUid;
|
||||
else whereJson.userId = userId;
|
||||
} else {
|
||||
if (vk.pubfn.isNotNull(data.status)) {
|
||||
whereJson.status = data.status
|
||||
}else whereJson.status = 0
|
||||
|
||||
}
|
||||
|
||||
if (formData && formData.hasOwnProperty('companyList') && vk.pubfn.isNotNull(formData.companyList)) {
|
||||
whereJson.userId = _.in(formData.companyList)
|
||||
}
|
||||
|
||||
if (formData && formData.hasOwnProperty('categoryIds') && vk.pubfn.isNotNull(formData.categoryIds)) {
|
||||
whereJson.productList = _.in(formData.categoryIds)
|
||||
}
|
||||
|
||||
if (vk.pubfn.isNotNull(categoryIds)) {
|
||||
whereJson.productList = _.in(categoryIds)
|
||||
}
|
||||
|
||||
if (vk.pubfn.isNotNull(area)) {
|
||||
if (area.length === 3) whereJson['addressRegion.area.code'] = area[2]
|
||||
if (area.length === 2) whereJson['addressRegion.city.code'] = area[1]
|
||||
if (area.length === 1) whereJson['addressRegion.province.code'] = area[0]
|
||||
} else if (vk.pubfn.isNotNull(provinceCodes)) {
|
||||
whereJson['addressRegion.province.code'] = _.in(provinceCodes)
|
||||
}
|
||||
|
||||
if (vk.pubfn.isNotNull(status) && status !== 'all') {
|
||||
if (status === 'noQuote') whereJson.quoteNum = 0
|
||||
else if (status === 'notPick') whereJson.status = 0
|
||||
else if (status === 'picked') whereJson.status = 1
|
||||
}
|
||||
console.log('where', whereJson)
|
||||
res = await vk.baseDao.selects({
|
||||
dbName,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
whereJson,
|
||||
getCount: true,
|
||||
sortArr: [{name: "_add_time", type: "desc"}],
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "userId",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
fieldJson: {
|
||||
_id: true,
|
||||
company: {
|
||||
companyName: true
|
||||
},
|
||||
person: {
|
||||
personName: true
|
||||
},
|
||||
businessCard: true,
|
||||
accountType: true,
|
||||
},
|
||||
},
|
||||
|
||||
]
|
||||
});
|
||||
|
||||
for (const item of res.rows) {
|
||||
item.quoteList = await vk.baseDao.selects({
|
||||
dbName: 'jjx-process-quote',
|
||||
whereJson: {
|
||||
sheetId: item._id,
|
||||
},
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "userId",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
fieldJson: {
|
||||
_id: true,
|
||||
company: {
|
||||
companyName: true,
|
||||
mobile: true,
|
||||
},
|
||||
person: {
|
||||
personName: true,
|
||||
mobile: true,
|
||||
},
|
||||
businessCard: true,
|
||||
accountType: true,
|
||||
},
|
||||
}
|
||||
]
|
||||
})
|
||||
item.contract = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'jjx-contract',
|
||||
whereJson: {
|
||||
sheetId: item._id,
|
||||
type: 'process',
|
||||
},
|
||||
})
|
||||
if (vk.pubfn.isNotNull(isUser)) {
|
||||
|
||||
item.otherUser = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'uni-id-users',
|
||||
whereJson: {
|
||||
_id: !data.otherUid ? item.otherUid : item.userId,
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
res.notPickNum = await vk.baseDao.count({
|
||||
dbName,
|
||||
whereJson: {
|
||||
userId: uid,
|
||||
status: 0,
|
||||
isShow: 1
|
||||
},
|
||||
});
|
||||
|
||||
res.pickedNum = await vk.baseDao.count({
|
||||
dbName,
|
||||
whereJson: {
|
||||
userId: uid,
|
||||
status: 1,
|
||||
isShow: 1
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
res.noQuoteNum = await vk.baseDao.count({
|
||||
dbName,
|
||||
whereJson: {
|
||||
userId: uid,
|
||||
quoteNum: 0,
|
||||
isShow: 1
|
||||
},
|
||||
});
|
||||
|
||||
res.all = await vk.baseDao.count({
|
||||
dbName,
|
||||
whereJson: {
|
||||
userId: uid,
|
||||
isShow: 1
|
||||
},
|
||||
});
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user