'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; } }