This commit is contained in:
2026-10-08 18:18:21 +08:00
parent 9cc1ff546c
commit 1e3095c05e
1911 changed files with 349551 additions and 0 deletions
@@ -0,0 +1,112 @@
'use strict';
module.exports = {
/**
* 申请合作
* @url client/spot/goods/kh/addCooperate 前端调用的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, company, manager, person, accountType, goodsUserId, goodsId, remark, name, mobile, files} = data;
let res = {code: 0, msg: ""};
// 业务逻辑开始-----------------------------------------------------------
const checkSheet = await vk.baseDao.findById({
dbName: "jjx-spot-goods",
id: goodsId
})
if (checkSheet.status > 0) return {
code: -1,
msg: "该现货已关闭"
}
let info = await vk.baseDao.findByWhereJson({
dbName: "jjx-goods-cooperate",
whereJson: {
userId: uid,
goodsId: goodsId
}
});
if (info != null) {
return {
code: -1,
msg: '您已经申请过了'
}
}
await vk.baseDao.updateById({
dbName: "jjx-spot-goods",// 表名
id: goodsId,
dataJson: {
quoteNum: _.inc(1)
}
});
for (const cate of checkSheet.categoryIds) {
await vk.baseDao.updateById({
dbName: "jjx-spot-category",
id: cate,
dataJson: {
quoteNum: _.inc(1)
}
})
}
// let subjectName = ''
// let subjectMobile = ''
// let managerName = ''
// let managerMobile = ''
//
// if (accountType == 1) {
// subjectName = person.personName
// subjectMobile = person.mobile
// } else {
// subjectName = company.companyName
// subjectMobile = company.legalMobile
// if (manager.mobile && manager.personName) {
// managerName = manager.personName
// managerMobile = manager.mobile
// }
// }
res.data = await vk.baseDao.add({
dbName: "jjx-goods-cooperate",// 表名
dataJson: { // 需要新增的数据 json格式
userId: uid,
goodsUserId: goodsUserId,
goodsId: goodsId,
// company,
// manager,
// person,
accountType,
status: 0,
name,
mobile,
files,
// managerName,
// managerMobile,
remark
}
});
await vk.baseDao.add({
dbName: "jjx-message",
dataJson: {
uid: checkSheet.userId,
title: `现货合作申请:${checkSheet.name}`,
content: `新的现货合作申请,赶紧去看看吧`,
type: 'spot',
hasRead: false,
pk: checkSheet._id
}
});
await pubFun.sendNotifySms(checkSheet.userId, 'SMS_474305480')
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -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;
}
}
@@ -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-spot-goods',
id: _id
});
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,57 @@
'use strict';
const dbName = 'jjx-spot-goods'
module.exports = {
/**
* XXXnameXXX
* @url client/spot/goods/kh/getSelfOne 前端调用的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: ""};
// 业务逻辑开始-----------------------------------------------------------
res = await vk.baseDao.selects({
dbName,
whereJson: {
userId: uid,
},
pageIndex,
pageSize,
sortArr: [{name: "_add_time", type: "desc"}],
foreignDB: [
{
dbName: "jjx-goods-cooperate",
localKey: "_id",
foreignKey: "goodsId",
as: "cooperateList",
limit: 500, // limit=1则以对象形式返回
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,
},
},
]
}]
});
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,70 @@
'use strict';
const dbName = 'jjx-spot-goods'
module.exports = {
/**
* XXXnameXXX
* @url client/spot/goods/kh/getDetail 前端调用的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 {
_id
} = data
res.data = await vk.baseDao.findByWhereJson({
dbName,
whereJson: {
_id
},
});
res.data.user = await vk.baseDao.findByWhereJson({
dbName: "uni-id-users",
whereJson: {
_id: res.data.userId,
dcloud_appid: _.in(["__UNI__EB80D26","__UNI__8BFD66E","__UNI__0F0703D"])
}
})
const cooperateList = await vk.baseDao.selects({
dbName: "jjx-goods-cooperate",
whereJson: {
goodsId: _id
},
pageIndex: 1,
pageSize: 500,
foreignDB: [{
dbName: "uni-id-users",
localKey: "userId",
foreignKey: "_id",
as: "user",
limit: 1, // limit=1则以对象形式返回
},
]
})
res.data.cooperateList = cooperateList.rows
res.data.isMine = res.data.userId === uid
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
@@ -0,0 +1,100 @@
'use strict';
const dayjs = require("dayjs");
const dbName = 'jjx-spot-goods'
module.exports = {
/**
* 查询现货列表
* @url client/spot/goods/kh/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: ""};
// 业务逻辑开始-----------------------------------------------------------
const {keyword, categoryIds, provinceCodes, cityCodes, areaCodes, pageIndex, pageSize} = data
let whereJson = {
latest: true,
isOn: 1
};
if (vk.pubfn.isNotNull(keyword)) {
whereJson.name = new RegExp(keyword)
}
if (vk.pubfn.isNotNull(categoryIds)) {
whereJson.categoryIds = _.in(categoryIds)
}
if (vk.pubfn.isNotNull(provinceCodes)) {
whereJson['address.province.code'] = _.in(provinceCodes)
}
if (vk.pubfn.isNotNull(cityCodes)) {
whereJson['address.city.code'] = _.in(cityCodes)
}
if (vk.pubfn.isNotNull(areaCodes)) {
whereJson['address.area.code'] = _.in(areaCodes)
}
res = await vk.baseDao.selects({
dbName,
getCount: true,
pageIndex,
pageSize,
// 主表where条件
whereJson: whereJson,
// 主表字段显示规则
// groupJson: {
// _id: "$userId",
// userId: _.$.last("$userId"),
// name: _.$.last("$name"),
// stock: _.$.last("$stock"),
// address: _.$.last("$address"),
// id: _.$.last("$_id"),
// _add_time: _.$.last("$_add_time"),
// _add_time_str: _.$.last("$_add_time_str"),
// topExpiredAt: _.$.last("$topExpiredAt"),
// categoryIds: _.$.last("$categoryIds"),
// },
// 主表排序规则
sortArr: [
{name: "topExpiredAt", type: "desc"},
{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) {
// const spotAd = await vk.baseDao.findByWhereJson({
// dbName: "jjx-spot-ad",
// whereJson: {
// uid: item.userId,
// province: (vk.pubfn.isNotNull(provinceCodes) && provinceCodes.length > 0) ? _.in(provinceCodes) : '-1',
// }
// });
item.isTop = !!item.topExpiredAt
}
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}