feat: 补齐客户端/管理端服务模块与数据库 schema,完善登录短信、法大大签署及公共函数
This commit is contained in:
@@ -0,0 +1,210 @@
|
||||
'use strict';
|
||||
const dayjs = require("dayjs");
|
||||
var isBetween = require('dayjs/plugin/isBetween')
|
||||
dayjs.extend(isBetween)
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增或更新现货
|
||||
* @url client/product/goods/kh/addUpdate 前端调用的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-spot-goods'
|
||||
let {_id, name, categoryIds, address, stock, files, images, answerEndTime} = data
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
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 info = await vk.baseDao.findByWhereJson({
|
||||
// dbName,
|
||||
// whereJson: {
|
||||
// userId: uid,
|
||||
// }
|
||||
// });
|
||||
|
||||
// if (info == null) {
|
||||
//
|
||||
// } else {
|
||||
// await vk.baseDao.updateById({
|
||||
// dbName,
|
||||
// id: info._id,
|
||||
// dataJson: {
|
||||
// name,
|
||||
// categoryIds,
|
||||
// address,
|
||||
// stock,
|
||||
// files,
|
||||
// status: 0
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
await vk.baseDao.update({
|
||||
dbName,
|
||||
whereJson: {
|
||||
userId: uid,
|
||||
},
|
||||
dataJson: {
|
||||
latest: false
|
||||
}
|
||||
})
|
||||
|
||||
const pk = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson: {
|
||||
name,
|
||||
categoryIds,
|
||||
address,
|
||||
stock,
|
||||
files,
|
||||
images,
|
||||
answerEndTime,
|
||||
userId: uid,
|
||||
sort: 0,
|
||||
status: 0,
|
||||
quoteNum: 0,
|
||||
latest: true
|
||||
}
|
||||
});
|
||||
|
||||
const messageUserList = await vk.baseDao.select({
|
||||
dbName: "jjx-message-config",
|
||||
whereJson: {
|
||||
article: true
|
||||
}
|
||||
})
|
||||
const messageList = []
|
||||
for (let i = 0; i < messageUserList.rows.length; i++) {
|
||||
const config = messageUserList.rows[i]
|
||||
const date = dayjs().format("YYYY-MM-DD")
|
||||
// if (config.doNotDisturbRange && config.doNotDisturbRange[0]) {
|
||||
// const doNotDisturbRangeStart = dayjs(config.doNotDisturbRange[0]).format("HH:mm")
|
||||
// const doNotDisturbRangeEnd = dayjs(config.doNotDisturbRange[1]).format("HH:mm")
|
||||
// if (dayjs().isBetween(dayjs(`${date} ${doNotDisturbRangeStart}`), dayjs(`${date} ${doNotDisturbRangeEnd}`)))
|
||||
// continue
|
||||
// }
|
||||
if (config.doNotDisturbStart && config.doNotDisturbStart.length) {
|
||||
const doNotDisturbRangeStart = dayjs(`${date} ${config.doNotDisturbStart[0]}:${config.doNotDisturbStart[1]}`).format("HH:mm")
|
||||
const doNotDisturbRangeEnd = dayjs(`${date} ${config.doNotDisturbEnd[0]}:${config.doNotDisturbEnd[1]}`).format("HH:mm")
|
||||
if (dayjs().isBetween(dayjs(`${date} ${doNotDisturbRangeStart}`), dayjs(`${date} ${doNotDisturbRangeEnd}`)))
|
||||
continue
|
||||
}
|
||||
let inAddress = false
|
||||
if (config.addressList && config.addressList.length > 0) {
|
||||
for (let j = 0; j < config.addressList.length; j++) {
|
||||
if (config.addressList[j].province.code === address.province.code) {
|
||||
if (config.addressList[j].city === null) inAddress = true
|
||||
else if (config.addressList[j].city.code === address.city.code) {
|
||||
if (config.addressList[j].area === null) inAddress = true
|
||||
else if (config.addressList[j].area.code === address.area.code) {
|
||||
inAddress = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else inAddress = true
|
||||
if (!inAddress) continue
|
||||
|
||||
if (messageUserList.rows[i].uid !== uid) {
|
||||
messageList.push({
|
||||
uid: messageUserList.rows[i].uid,
|
||||
title: `现货:${name}`,
|
||||
content: `新的找现货信息发布,赶紧去看看吧`,
|
||||
type: 'spot',
|
||||
hasRead: false,
|
||||
pk
|
||||
})
|
||||
await pubFun.sendNotifySms(messageUserList.rows[i].uid, 'SMS_474105471')
|
||||
}
|
||||
}
|
||||
if (messageList.length > 0) {
|
||||
await vk.baseDao.adds({
|
||||
dbName: "jjx-message",
|
||||
dataJson: messageList
|
||||
});
|
||||
}
|
||||
|
||||
if (data.buyTop || data.buyAll) {
|
||||
const province = data.buyAll ? '-1' : data.address.province.code
|
||||
const amountItem = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-spot-amount",
|
||||
whereJson: {
|
||||
'address.province.code': province
|
||||
}
|
||||
});
|
||||
if (amountItem === null) return {
|
||||
code: 1,
|
||||
msg: '该省现暂时无法购买广告位'
|
||||
}
|
||||
const amount = parseFloat(amountItem.amount) * data.buyTopNum
|
||||
let offAmount = amount
|
||||
let saveAmount = 0, offRate = 100
|
||||
if (userInfo.userLevel > 0) {
|
||||
const userLevel = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-user-level",
|
||||
whereJson: {
|
||||
level: userInfo.userLevel
|
||||
}
|
||||
})
|
||||
if (userLevel) {
|
||||
offRate = parseInt(userLevel.valueAddRate)
|
||||
offAmount = (amount * (parseInt(userLevel.valueAddRate) / 100)).toFixed(2)
|
||||
saveAmount = (amount - offAmount).toFixed(2)
|
||||
}
|
||||
}
|
||||
|
||||
const orderId = await vk.baseDao.add({
|
||||
dbName: "jjx-order",
|
||||
dataJson: {
|
||||
orderNo: vk.pubfn.createOrderNo("39XU", 20),
|
||||
uid,
|
||||
orderStatus: 0,
|
||||
type: 8,
|
||||
amount,
|
||||
offAmount,
|
||||
saveAmount,
|
||||
offRate,
|
||||
}
|
||||
})
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: "jjx-order-goods",
|
||||
dataJson: {
|
||||
orderId,
|
||||
pk,
|
||||
goodsId: province,
|
||||
num: data.buyTopNum,
|
||||
goodsName: '现货信息广告位',
|
||||
goodsPrice: amountItem.amount,
|
||||
goodsCover: null,
|
||||
}
|
||||
})
|
||||
res.data = orderId
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user