const userGoodsDao = require('../../dao/modules/userGoodsDao.js')
|
|
// 获取多少天后的时间
|
function getDateStr(today, addDayCount) {
|
var dd;
|
if (today) {
|
dd = new Date(today);
|
} else {
|
dd = new Date();
|
}
|
dd.setDate(dd.getDate() + addDayCount); //获取AddDayCount天后的日期
|
var y = dd.getFullYear();
|
var m =
|
dd.getMonth() + 1 < 10 ?
|
"0" + (dd.getMonth() + 1) :
|
dd.getMonth() + 1;
|
var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
|
return y + "-" + m + "-" + d + " 23:59:59";
|
}
|
|
//比较日期大小
|
function getDataCompare(d2) {
|
//当前时间
|
let d1 = new Date();
|
|
//转换为标准时间"2019/12/29 23:59:59"
|
d2 = d2.replace(/-/g, "/");
|
d2 = new Date(d2);
|
|
//如果当前时间大于到期时间
|
//valueOf() 函数返回指定对象的原始值,这里返回以毫秒数存储的时间值
|
return d1.valueOf() > d2.valueOf()
|
}
|
|
module.exports = async (obj, originalParam) => {
|
let user_order_success = true;
|
let { data = {}, verifyResult } = obj;
|
let { db, _ } = originalParam;
|
let {
|
out_trade_no,
|
total_fee
|
} = data;
|
|
//设置订单支付成功
|
let order = await db.collection('uni-id-base-order').doc(out_trade_no)
|
.update({
|
status: 2,
|
transaction_id: data.payNo,
|
paid_time: new Date().getTime(),
|
update_time: new Date().getTime()
|
});
|
|
|
//----发货----
|
let goods = (await db.collection('order_goods').where({
|
oid: out_trade_no
|
}).get({
|
getOne: true
|
})).data[0]
|
|
|
// 不同类型的会员 续期处理?
|
//全部记录在 user 的 vip_role 字段
|
//字段内容示例
|
// const vip_role = {
|
// 'all': [], //拥有的所有权限类别
|
// 'role1': 'express_date', //权限 - 过期时间
|
// }
|
|
//分别查询出当前用户信息 以及 会员信息
|
let user_id = goods.user_id
|
let goods_id = goods.goods_id
|
|
let currentUser = (await db.collection('uni-id-users').where({
|
_id: user_id
|
}).get({
|
getOne: true
|
})).data[0]
|
|
let currentRole = (await db.collection('uce-vip-role').where({
|
_id: goods_id
|
}).get({
|
getOne: true
|
})).data[0]
|
|
//当前已有权限
|
let vip_role = currentUser.vip_role || { all: [] }
|
if (vip_role.all.includes(currentRole.role_type)) {
|
if (vip_role[currentRole.role_type] == 0) {
|
//如果之前是永久会员 不处理
|
vip_role[currentRole.role_type] = 0
|
} else if (currentRole.expire_days == 0) {
|
//如果现在是永久会员 直接处理
|
vip_role[currentRole.role_type] = 0
|
} else {
|
//先判断是否已经过期
|
if (getDataCompare(vip_role[currentRole.role_type])) {
|
vip_role[currentRole.role_type] = getDateStr(null, currentRole.expire_days)
|
} else {
|
vip_role[currentRole.role_type] = getDateStr(vip_role[currentRole.role_type],
|
currentRole.expire_days)
|
}
|
}
|
} else {
|
vip_role.all.push(currentRole.role_type)
|
if (currentRole.expire_days == 0) {
|
//如果是永久会员
|
vip_role[currentRole.role_type] = 0
|
} else {
|
//否则就有过期时间
|
vip_role[currentRole.role_type] = getDateStr(null, currentRole.expire_days)
|
}
|
}
|
|
//更新当前用户的信息
|
await db.collection('uni-id-users').where({
|
_id: user_id
|
}).update({
|
vip_role: vip_role
|
})
|
|
return user_order_success;
|
};
|