feat: 签约提示/赠送次数/自动划付提醒,自营支付成功弹窗,隐藏微信登录

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-27 03:28:31 +08:00
parent 85cddfbf8d
commit 683a9411fd
19 changed files with 469 additions and 99 deletions
@@ -95,14 +95,14 @@ module.exports = {
const num = Number(value);
return Number.isNaN(num) ? defaultValue : num;
};
if (data.formData && data.formData.isSignOnly && res.rows && res.rows.length > 0) {
if (res.rows && res.rows.length > 0) {
const userIds = res.rows.map(item => item._id).filter(Boolean);
const qybStatMap = {};
userIds.forEach(userId => {
qybStatMap[userId] = {
qybBuyNum: 0,
qybUsedNum: 0,
qybGiftNum: 0,
qybPackageGiftNum: 0,
qybTotalGetNum: 0
};
});
@@ -174,14 +174,18 @@ module.exports = {
}
Object.keys(qybStatMap).forEach(userId => {
qybStatMap[userId].qybGiftNum = Math.max(qybStatMap[userId].qybTotalGetNum - qybStatMap[userId].qybBuyNum, 0);
qybStatMap[userId].qybPackageGiftNum = Math.max(qybStatMap[userId].qybTotalGetNum - qybStatMap[userId].qybBuyNum, 0);
});
res.rows.forEach(item => {
const qybStat = qybStatMap[item._id] || {};
const adminGiftNum = toNum(item.qybTotalGiftNum, 0);
// 用户表上的 qybGiftNum 为后台赠送累加值;套餐优惠政策赠送从订单统计
const storedGiftNum = toNum(item.qybGiftNum, 0);
item.qybBuyNum = qybStat.qybBuyNum || 0;
item.qybUsedNum = qybStat.qybUsedNum || 0;
item.qybNum = toNum(item.qybNum, 0);
item.qybGiftNum = qybStat.qybGiftNum || 0;
item.qybGiftNum = (qybStat.qybPackageGiftNum || 0) + storedGiftNum;
item.qybTotalGiftNum = adminGiftNum || storedGiftNum;
});
}
}
@@ -0,0 +1,46 @@
'use strict';
module.exports = {
/**
* 后台赠送签约宝次数
* @url admin/system/user/sys/giftQybNum
* @param {String} user_id 用户ID
* @param {Number} giftNum 赠送次数
*/
main: async (event) => {
let { data = {}, util } = event;
let { vk, _ } = util;
let res = { code: 0, msg: '' };
const { user_id, giftNum } = data;
const num = Number(giftNum);
if (!user_id) {
return { code: -1, msg: '用户ID不能为空' };
}
if (!Number.isInteger(num) || num <= 0) {
return { code: -1, msg: '赠送次数必须为正整数' };
}
const user = await vk.baseDao.findById({
dbName: 'uni-id-users',
id: user_id
});
if (!user) {
return { code: -1, msg: '用户不存在' };
}
// 剩余签约次数、优惠政策赠送次数、累计赠送次数同步累加
await vk.baseDao.updateById({
dbName: 'uni-id-users',
id: user_id,
dataJson: {
qybNum: _.inc(num),
qybGiftNum: _.inc(num),
qybTotalGiftNum: _.inc(num)
}
});
res.msg = '赠送成功';
return res;
}
};