add
This commit is contained in:
602
app/api/model/Orders.php
Normal file
602
app/api/model/Orders.php
Normal file
@@ -0,0 +1,602 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
use app\common\library\DatabaseRoute;
|
||||
use app\common\model\BaseModel;
|
||||
use app\common\model\SysUser;
|
||||
use app\queue\ActivitiesQueue;
|
||||
use app\utils\RedisUtils;
|
||||
use DateTime;
|
||||
use think\facade\Db;
|
||||
use support\Log;
|
||||
|
||||
class Orders extends BaseModel
|
||||
{
|
||||
|
||||
public static function fillSysUserId(array &$order, $userInfo)
|
||||
{
|
||||
if (!empty($order['sys_user_id'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$order['sys_user_id'] = 1;
|
||||
|
||||
// $userInfo = DatabaseRoute::getDb('tb_user', $userId)->where([
|
||||
// 'user_id' => $userId
|
||||
// ])->find();
|
||||
if (empty($userInfo['qd_code'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$sysUser = DatabaseRoute::getMasterDb('sys_user')->where([
|
||||
'qd_code' => $userInfo['qd_code']
|
||||
])->find();
|
||||
if (!$sysUser) {
|
||||
return;
|
||||
}
|
||||
$order['sys_user_id'] = $sysUser['user_id'];
|
||||
}
|
||||
|
||||
/**
|
||||
* 加入短剧到我的列表
|
||||
* @param $order array 订单
|
||||
*/
|
||||
public static function insertOrders($order)
|
||||
{
|
||||
// 短剧订单
|
||||
if ($order['orders_type'] == 1) {
|
||||
// 单集购买
|
||||
if (!empty($order['course_details_ids'])) {
|
||||
$insertDataIst = [];
|
||||
$courseDetailList = json_decode($order['course_details_ids'], true);
|
||||
foreach ($courseDetailList as $courseDetailId) {
|
||||
$insertDataIst[] = [
|
||||
'course_id' => $order['course_id'],
|
||||
'course_details_id' => $courseDetailId,
|
||||
'classify' => 2,
|
||||
'user_id' => $order['user_id'],
|
||||
'order_id' => $order['orders_id'],
|
||||
'create_time' => getNormalDate()
|
||||
];
|
||||
}
|
||||
|
||||
DatabaseRoute::getDb('course_user', $order['user_id'], true)->insertAll()($insertDataIst);
|
||||
|
||||
Log::info("添加短剧到我的列表成功: " . json_encode($insertDataIst));
|
||||
}else{
|
||||
DatabaseRoute::getDb('course_user', $order['user_id'], true)->insert([
|
||||
'course_id' => $order['course_id'],
|
||||
'course_details_id' => $order['course_details_id'],
|
||||
'classify' => $order['course_details_id'] ? 2 : 1,
|
||||
'user_id' => $order['user_id'],
|
||||
'order_id' => $order['orders_id'],
|
||||
'create_time' => getNormalDate()
|
||||
]);
|
||||
}
|
||||
// 会员订单
|
||||
}else{
|
||||
$dateFormat = 'Y-m-d H:i:s';
|
||||
// 查询用户是否是会员
|
||||
$userVip = DatabaseRoute::getDb('user_vip', $order['user_id'])->where([
|
||||
'user_id' => $order['user_id']
|
||||
])->find();
|
||||
$cal = new DateTime();
|
||||
if ($userVip) {
|
||||
//未到期
|
||||
// 判断会员是否未到期(isVip == 2)
|
||||
if ($userVip['isVip'] == 2) {
|
||||
// 设置会员到期时间
|
||||
$endTime = new DateTime($userVip['endTime']);
|
||||
$cal->setTimestamp($endTime->getTimestamp()); // 当前时间
|
||||
self::setDateByType($cal, $order['vip_name_type']);
|
||||
} else {
|
||||
// 到期会员续费
|
||||
$cal->setTimestamp(time()); // 当前时间
|
||||
self::setDateByType($cal, $order['vip_name_type']);
|
||||
}
|
||||
|
||||
$userVip['is_vip'] = 2;
|
||||
$userVip['create_time'] = getNormalDate();
|
||||
$userVip['end_time'] = $cal->format($dateFormat);
|
||||
$userVip['vip_type'] = 2;
|
||||
|
||||
DatabaseRoute::getDb('user_vip', $order['user_id'], true)->where([
|
||||
'user_id' => $order['user_id']
|
||||
])->update($userVip);
|
||||
Log::info("会员续费成功: " . json_encode($userVip));
|
||||
|
||||
}else{
|
||||
$cal->setTimestamp(time()); // 当前时间
|
||||
self::setDateByType($cal, $order['vip_name_type']);
|
||||
|
||||
// 开通会员
|
||||
DatabaseRoute::getDb('user_vip', $order['user_id'], true)->insert([
|
||||
'user_id' => $order['user_id'],
|
||||
'create_time' => getNormalDate(),
|
||||
'is_vip' => 2,
|
||||
'end_time' => $cal->format($dateFormat)
|
||||
]);
|
||||
Log::info("会员续费成功: " . json_encode($userVip));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static function setDateByType(DateTime $cal, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case 0: $cal->modify('+1 month'); break;
|
||||
case 1: $cal->modify('+3 months'); break;
|
||||
case 2: $cal->modify('+1 year'); break;
|
||||
}
|
||||
}
|
||||
|
||||
public static function updateOrderStatus($payDetail, $order, $userId) {
|
||||
if ($payDetail['state'] == 1) {
|
||||
// TODO 测试
|
||||
// return;
|
||||
}
|
||||
|
||||
$userInfo = DatabaseRoute::getDb('tb_user', $userId, true)->find();
|
||||
self::fillSysUserId($order, $userInfo);
|
||||
|
||||
DatabaseRoute::getDb('pay_details', $userId, true)->where([
|
||||
'id' => $payDetail['id']
|
||||
])->update([
|
||||
'state' => 1,
|
||||
'pay_time' => getNormalDate(),
|
||||
'trade_no' => $payDetail['trade_no'],
|
||||
'third_order_no' => $payDetail['third_order_no'],
|
||||
]);
|
||||
|
||||
DatabaseRoute::getDb('orders', $userId, true)->where([
|
||||
'orders_id' => $order['orders_id']
|
||||
])->update([
|
||||
'pay_way' => 9,
|
||||
'status' => 1,
|
||||
'pay_time' => getNormalDate(),
|
||||
'sys_user_id' => $order['sys_user_id']
|
||||
]);
|
||||
|
||||
// 短剧插入
|
||||
self::insertOrders($order);
|
||||
|
||||
// 用户信息及上级信息
|
||||
$userInfo = DatabaseRoute::getDb('tb_user', $order['user_id'])->where([
|
||||
'user_id' => $order['user_id']
|
||||
])->find();
|
||||
|
||||
|
||||
$byUser = TbUser::getByUserIdOrInviterCode($userInfo['inviter_user_id'], $userInfo['inviter_code']);
|
||||
// 记录上级用户奖励信息
|
||||
Log::info("上级用户: ".json_encode($byUser));
|
||||
if ($byUser) {
|
||||
$inviteAchievement = DatabaseRoute::getAllDbData('invite_achievement', function ($query) use ($byUser, $userInfo) {
|
||||
return $query->where([
|
||||
'target_user_id' => $userInfo['user_id']
|
||||
]);
|
||||
})->find();
|
||||
if ($inviteAchievement) {
|
||||
Log::info("修改邀请统计");
|
||||
DatabaseRoute::getDb('invite_achievement', $byUser['user_id'], true)->where([
|
||||
'user_id' => $inviteAchievement['user_id'],
|
||||
'id' => $inviteAchievement['id']
|
||||
])->update([
|
||||
'count' => $inviteAchievement['count'] + 1,
|
||||
'update_time' => getNormalDate()
|
||||
]);
|
||||
}else{
|
||||
Log::info("新增邀请统计");
|
||||
DatabaseRoute::getDb('invite_achievement', $byUser['user_id'], true)->insert([
|
||||
'state' => 0,
|
||||
'count' => 1,
|
||||
'create_time' => getNormalDate(),
|
||||
'target_user_id' => $userInfo['user_id'],
|
||||
'user_id' => $byUser['user_id']
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
// TODO 异步领取奖励
|
||||
// pushQueue(ActivitiesQueue::class, [
|
||||
// 'userInfo' => $userInfo,
|
||||
// 'sourceUser' => $byUser
|
||||
// ], 1);
|
||||
DatabaseRoute::transactionXa(function () use ($userInfo, $byUser, $userId) {
|
||||
self::activities($userInfo, $byUser);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 推广奖励发放
|
||||
if ($userInfo['inviter_code'] || !$byUser || $byUser['user_id'] == 1) {
|
||||
$sysUser = SysUser::GetByQrcode($userInfo['qd_code']);
|
||||
if ($sysUser) {
|
||||
$rateMoney = $sysUser['qd_rate'];
|
||||
SysUser::updateSysMoney($sysUser['user_id'], $rateMoney, 1);
|
||||
|
||||
DatabaseRoute::getDb('sys_user_money_details', $sysUser['user_id'], true)->insert([
|
||||
'sys_user_id' => $sysUser['user_id'],
|
||||
'user_id' => $sysUser['user_id'],
|
||||
'type' => 1,
|
||||
'money' => $rateMoney,
|
||||
'create_time' => getNormalDate(),
|
||||
'state' => 2,
|
||||
'classify' => 10,
|
||||
'title' => "[渠道用户]用户名称:{$userInfo['user_name']}",
|
||||
'money_type' => 1,
|
||||
'content' => '总佣金'.$rateMoney.',到账佣金'.$rateMoney
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
// 增加剧集支付次数
|
||||
self::incrWeekPayCount($order['course_id']);
|
||||
|
||||
}
|
||||
|
||||
public static function incrWeekPayCount($courseId)
|
||||
{
|
||||
RedisUtils::incrWeekCounter("setWeekPayCount:", $courseId);
|
||||
$count = RedisUtils::getWeekCounter("setWeekPayCount:", $courseId);
|
||||
DatabaseRoute::getMasterDb('course', true)->where([
|
||||
'course_id' => $courseId
|
||||
])->update([
|
||||
'week_pay' => $count
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 推广奖励 一级二级佣金 废弃
|
||||
*/
|
||||
public static function updateInvite($userInfo, $userId, $price)
|
||||
{
|
||||
if ($userInfo['user_id'] == 1) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if ($userInfo && $userId && $price) {
|
||||
$invite = DatabaseRoute::getMasterDb('invite')->where([
|
||||
'user_id' => $userInfo['user_id'],
|
||||
'invitee_user_id' => $userId
|
||||
])->where(function ($query) {
|
||||
$query->where([
|
||||
'user_type' => 1
|
||||
])->whereOrNotNull('user_type');
|
||||
})->find();
|
||||
if (!$invite) {
|
||||
$invite = [
|
||||
'state' => 0,
|
||||
'money' => 0,
|
||||
'user_id' => $userInfo['user_id'],
|
||||
'invitee_user_id' => $userId,
|
||||
'create_time' => getNormalDate(),
|
||||
'user_type' => 1,
|
||||
];
|
||||
DatabaseRoute::getMasterDb('invite', true)->insert($invite);
|
||||
}
|
||||
|
||||
$sourceUser = TbUser::selectUserById($userId);
|
||||
// if (bccomp($userInfo['rate'], "0", 2) > 0) {
|
||||
// $rateMoney = $userInfo['rate'];
|
||||
// Db::name('invite')->where([
|
||||
// 'id' => $invite['id']
|
||||
// ])->update([
|
||||
// 'user_type' => 1,
|
||||
// 'state' => 1,
|
||||
// 'money' => $invite['money'] + $rateMoney
|
||||
// ]);
|
||||
//
|
||||
// Invite::updateInviteMoneySum($userInfo['user_id'], $rateMoney);
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static function activities($user, $sourceUser)
|
||||
{
|
||||
Log::info("活动领取开始: 用户{$user['user_name']}, 上级{$sourceUser['user_name']}");
|
||||
// 查询上级用户
|
||||
$inviteAchievement = DatabaseRoute::getAllDbData('invite_achievement', function ($query) use ($user) {
|
||||
return $query->where([
|
||||
'target_user_id' => $user['user_id']
|
||||
]);
|
||||
})->find();
|
||||
|
||||
// 首次达标
|
||||
$commonModel = (new CommonInfo());
|
||||
$signCount = $commonModel->getByCodeToInt(913);
|
||||
Log::info("活动领取: 用户{$user['user_name']}, 上级{$sourceUser['user_name']}, 达标次数{$inviteAchievement['count']}");
|
||||
// 首次达标发放奖励
|
||||
// if ($inviteAchievement['state'] == 0 && $inviteAchievement['count'] >= $signCount) {
|
||||
if (true) {
|
||||
Log::info('开始领取达标奖励');
|
||||
$amount = $commonModel->getByCode(912)['value'];
|
||||
// 记录资金明细
|
||||
DatabaseRoute::getDb('user_money_details', $sourceUser['user_id'], true)->insert([
|
||||
'classify' => 6,
|
||||
'money' => $amount,
|
||||
'user_id' => $sourceUser['user_id'],
|
||||
'create_time' => getNormalDate(),
|
||||
'content' => "分享达标{$amount}元",
|
||||
'title' => '分享达标奖励',
|
||||
'state' => 2,
|
||||
'type' => 1,
|
||||
'money_type' => 1,
|
||||
]);
|
||||
|
||||
Invite::updateInviteMoneySum($sourceUser['user_id'], $amount);
|
||||
|
||||
// 增加上级用户钱
|
||||
if(DatabaseRoute::getDb('user_money', $sourceUser['user_id'])->count() == 0) {
|
||||
DatabaseRoute::getDb('user_money', $sourceUser['user_id'], true)->insert([
|
||||
'user_id' => $sourceUser['user_id'],
|
||||
'money' => $amount,
|
||||
'amount' => $amount
|
||||
]);
|
||||
}else{
|
||||
DatabaseRoute::getDb('user_money', $sourceUser['user_id'], true, true)->inc('amount', $amount)->inc('invite_income_money', $amount)->update();
|
||||
}
|
||||
|
||||
DatabaseRoute::getDb('invite_achievement', $inviteAchievement['user_id'], true, true)->update([
|
||||
'state' => 1
|
||||
]);
|
||||
|
||||
|
||||
// 代理发放佣金
|
||||
if ($user['qd_code'] && $user['qd_code'] != "666666") {
|
||||
$sysUser = DatabaseRoute::getAllDbData('sys_user', function ($query) use ($user) {
|
||||
return $query->whereNull('sys_user_id')->where([
|
||||
'qd_code' => $user['qd_code']
|
||||
]);
|
||||
})->find();
|
||||
|
||||
if ($sysUser) {
|
||||
// 查询代理奖励金额
|
||||
$qdAward = $commonModel->getByCode(915)['value'];
|
||||
if (bccomp($qdAward, "0", 2) > 0) {
|
||||
DatabaseRoute::getDb('sys_user_money_details', $sysUser['user_id'], true)->insert([
|
||||
'user_id' => $sysUser['user_id'],
|
||||
'sys_user_id' => $sysUser['sys_user_id'],
|
||||
'title' => '[分享达标额外奖励]',
|
||||
'classify' => 6,
|
||||
'type' =>1,
|
||||
'state' => 2,
|
||||
'money' => $qdAward,
|
||||
'content' => '推广人员首次达标,额外奖励现金红包'.$qdAward,
|
||||
'money_type' => 1,
|
||||
'create_time' => getNormalDate()
|
||||
]);
|
||||
|
||||
DatabaseRoute::getMasterDb('sys_user_money', true)->where([
|
||||
'user_id' => $sysUser['user_id']
|
||||
])->inc('money', $qdAward)->inc('invite_income_money', $qdAward)->update();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
Log::info('未达标或已领取跳过领取'.json_encode($inviteAchievement));
|
||||
}
|
||||
|
||||
|
||||
// 拉人奖励
|
||||
self::calcUserInviteAmount($user, $sourceUser, $signCount);
|
||||
self::calcInviteStandardAward($user, $sourceUser);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算用户邀请奖励金额
|
||||
*/
|
||||
private static function calcUserInviteAmount($user, $sourceUser, $signCount)
|
||||
{
|
||||
// 检查实名
|
||||
$user = DatabaseRoute::getDb('user_info', $sourceUser['user_id'])->find();
|
||||
if (!$user || empty($user['cert_no'])) {
|
||||
Log::info("邀请用户{$sourceUser['user_name']}未实名认证, 不发放奖励");
|
||||
return;
|
||||
}
|
||||
|
||||
// 查询用户当天完成订单
|
||||
$orderCount = DatabaseRoute::getDb('orders', $user['user_id'])->where([
|
||||
'status' => 1,
|
||||
'pay_way' => 9,
|
||||
['create_time', '>=', date('Y-m-d 00:00:00')],
|
||||
])->count();
|
||||
if ($orderCount < $signCount) {
|
||||
Log::info("用户{$sourceUser['user_name']}未完成{$signCount}个订单, 不发放奖励");
|
||||
return;
|
||||
}
|
||||
|
||||
// 查询当天是否已经给过上级奖励
|
||||
$count = DatabaseRoute::getDb('user_money_details', $sourceUser['user_id'])->where([
|
||||
'classify' => 6,
|
||||
'by_user_id' => $user['id'],
|
||||
['create_time', '>=', date('Y-m-d 00:00:00')]
|
||||
])->count();
|
||||
if ($count > 0) {
|
||||
Log::info("上级用户奖励已发放,{$sourceUser['user_id']}");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// 给上级用户达标奖励
|
||||
if (empty($sourceUser['invite_amount'])) {
|
||||
DatabaseRoute::getDb('user_money', $sourceUser['user_id'], true, true)->update([
|
||||
'invite_amount' => '0.1'
|
||||
]);
|
||||
}
|
||||
|
||||
DatabaseRoute::getDb('user_money_details', $sourceUser['user_id'], true)->insert([
|
||||
'classify' => 6,
|
||||
'money' => '0.1',
|
||||
'user_id' => $sourceUser['user_id'],
|
||||
'by_user_id' => $user['id'],
|
||||
'create_time' => getNormalDate(),
|
||||
'content' => '下级签到奖励0.1元',
|
||||
'title' => '签到奖励',
|
||||
'state' => 2,
|
||||
'type' => 1,
|
||||
'money_type' => 1,
|
||||
]);
|
||||
|
||||
// 发放奖励
|
||||
DatabaseRoute::getDb('user_money', $sourceUser['user_id'], true, true)->inc('amount', 0.1)->update();
|
||||
Log::info("用户: {$user['user_id']}, 上级: {$sourceUser['user_id']}, 签到奖励0.1元");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算分享达标奖励
|
||||
*/
|
||||
private static function calcInviteStandardAward($userInfo, $sourceUser)
|
||||
{
|
||||
runWithLock("userAward".$sourceUser['user_id'], 500, function () use ($sourceUser, $userInfo) {
|
||||
// 查询邀请用户人数
|
||||
$byUserIdList = DatabaseRoute::getDb('invite_achievement', $sourceUser['user_id'])->where([
|
||||
'state' => 1,
|
||||
])->column('target_user_id');
|
||||
|
||||
// 去重(替代 array_unique)
|
||||
$uniqueMap = [];
|
||||
foreach ($byUserIdList as $id) {
|
||||
$uniqueMap[$id] = true;
|
||||
}
|
||||
$byUserIdList = array_keys($uniqueMap);
|
||||
|
||||
if (empty($byUserIdList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 查询邀请用户的 cert_no,并排除自己,去重
|
||||
$targetCertNo = $userInfo['cert_no'] ?? null;
|
||||
|
||||
$collect = [];
|
||||
$chunkSize = 2000; // 每批处理1000条,视数据库配置可调高
|
||||
|
||||
foreach (array_chunk($byUserIdList, $chunkSize) as $chunk) {
|
||||
$partial = DatabaseRoute::getAllDbData('user_info', function ($builder) use ($chunk, $targetCertNo) {
|
||||
$builder = $builder->whereIn('user_id', $chunk)->whereNotNull('account_no');
|
||||
if (!empty($targetCertNo)) {
|
||||
$builder = $builder->where('cert_no', '<>', $targetCertNo);
|
||||
}
|
||||
return $builder;
|
||||
})->column('cert_no');
|
||||
|
||||
// 合并本批结果
|
||||
if (!empty($partial)) {
|
||||
$collect = array_merge($collect, $partial);
|
||||
}
|
||||
}
|
||||
// 去重(用更快方式)
|
||||
$collect = array_keys(array_flip($collect ?? []));
|
||||
|
||||
$inviteCount = count($collect);
|
||||
|
||||
// 查询所有已开启的奖励
|
||||
$completAward = DatabaseRoute::getMasterDb('complet_award', true)->where([
|
||||
'id' => 1
|
||||
])->find();
|
||||
if (!$completAward) {
|
||||
Log::info("分享达标未配置");
|
||||
return;
|
||||
}
|
||||
|
||||
if ($inviteCount < $completAward['invite_count']) {
|
||||
return;
|
||||
}
|
||||
// 查询是否开启分享循环奖励
|
||||
$isLoop = (new CommonInfo())->getByCodeToInt(932);
|
||||
$inviteAchievement = DatabaseRoute::getDb('invite_achievement', $sourceUser['inviter_user_id'])->where([
|
||||
'target_user_id' => $userInfo['user_id']
|
||||
])->find();
|
||||
if (!$inviteAchievement) {
|
||||
$inviteAchievement = [
|
||||
'user_id' => $sourceUser['inviter_user_id'],
|
||||
'target_user_id' => $sourceUser['id'],
|
||||
'give_award_count' => 0
|
||||
];
|
||||
DatabaseRoute::getDb('invite_achievement', $sourceUser['user_id'], true)->insert($inviteAchievement);
|
||||
}
|
||||
$awardCount = $inviteAchievement['give_award_count'];
|
||||
// 如果未开启循环奖励,并且已经发放过奖励,则跳过
|
||||
if ($isLoop != 1 && $awardCount > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 计算获取奖励次数 邀请达标人员 / 邀请人数
|
||||
$awardNum = intval($inviteCount / $completAward['invite_count']);
|
||||
if ($isLoop != 1) {
|
||||
$awardNum = 1;
|
||||
}
|
||||
|
||||
if ($awardNum - $awardCount <= 0 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $awardNum - $awardCount; $i++) {
|
||||
switch ($completAward['type']) {
|
||||
case 1:
|
||||
DatabaseRoute::getDb('user_money_details', $sourceUser['user_id'], true)->insert([
|
||||
'user_id' => $sourceUser['user_id'],
|
||||
'title' => '[分享达标额外奖励]',
|
||||
'classify' => 6,
|
||||
'type' => 1,
|
||||
'state' => 2,
|
||||
'money' => $completAward['award_number'],
|
||||
'content' => "邀请人员已有{$completAward['invite_count']}人达标,额外奖励金币{$completAward['award_number']}",
|
||||
'money_type' => 2,
|
||||
'source_id' => $completAward['id']
|
||||
]);
|
||||
|
||||
DatabaseRoute::getDb('user_money', $sourceUser['user_id'], true, true)->inc('money', $completAward['award_number'])->update();
|
||||
break;
|
||||
case 2:
|
||||
DatabaseRoute::getDb('user_money_details', $sourceUser['user_id'], true)->insert([
|
||||
'user_id' => $sourceUser['user_id'],
|
||||
'title' => '[分享达标额外奖励]',
|
||||
'classify' => 6,
|
||||
'type' => 1,
|
||||
'state' => 2,
|
||||
'money' => $completAward['award_number'],
|
||||
'content' => "邀请人员已有{$completAward['invite_count']}人达标,额外奖励现金红包{$completAward['award_number']}",
|
||||
'money_type' => 1,
|
||||
'source_id' => $completAward['id']
|
||||
]);
|
||||
|
||||
DatabaseRoute::getDb('user_money', $sourceUser['user_id'], true, true)->inc('amount', $completAward['award_number'])->update();
|
||||
}
|
||||
|
||||
//更新邀请达标奖励次数
|
||||
DatabaseRoute::getDb('invite_achievement', $inviteAchievement['user_id'], true, true)->where([
|
||||
'id' => $inviteAchievement['id'],
|
||||
])->update([
|
||||
'user_id' => $inviteAchievement['user_id'],
|
||||
'give_award_count' => $inviteAchievement['give_award_count'] + ($awardNum - $awardCount)
|
||||
]);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
public static function selectOrdersByDay(int $userId)
|
||||
{
|
||||
return DatabaseRoute::getDb('orders', $userId, false, false, false)->alias('o')
|
||||
->leftJoin('disc_spinning_record r', 'o.orders_id = r.source_id')
|
||||
->where('o.user_id', $userId)
|
||||
->where('o.status', 1)
|
||||
->where('o.pay_way', 9)
|
||||
->whereraw('o.create_time > DATE_FORMAT(NOW(), "%Y-%m-%d 00:00:00")')
|
||||
->whereNull('r.source_id')
|
||||
->order('o.create_time')
|
||||
->find(); // LIMIT 1
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user