179 lines
6.5 KiB
PHP
179 lines
6.5 KiB
PHP
<?php
|
|
|
|
namespace app\api\model;
|
|
|
|
use app\common\library\DatabaseRoute;
|
|
use app\common\model\Common;
|
|
use extend\ba\Random;
|
|
use think\facade\Db;
|
|
use support\Log;
|
|
use think\Model;
|
|
|
|
class Invite extends Model
|
|
{
|
|
|
|
public static function saveBody($user_id, $inviter)
|
|
{
|
|
$inviter_model = new self;
|
|
$inviter_model->create_time = date('Y-m-d H:i:s');
|
|
$inviter_model->state = 0;
|
|
$inviter_model->money = 0.00;
|
|
$inviter_model->user_id = $inviter['user_id'];
|
|
$inviter_model->invitee_user_id = $user_id;
|
|
$inviter_model->user_type = 1;
|
|
$inviter_model->save();
|
|
// 同步二级
|
|
if(!empty($inviter['inviter_user_id'])) {
|
|
$inviter_level_two = new self;
|
|
$inviter_level_two->create_time = date('Y-m-d H:i:s');
|
|
$inviter_level_two->state = 0;
|
|
$inviter_level_two->money = 0.00;
|
|
$inviter_level_two->user_id = $inviter['inviter_user_id'];
|
|
$inviter_level_two->invitee_user_id = $user_id;
|
|
$inviter_level_two->user_type = 2;
|
|
$inviter_level_two->save();
|
|
}
|
|
$where = $sale = ['user_id' => $inviter['user_id']];
|
|
Common::saveDbData('tb_user',
|
|
$sale,
|
|
['invite_count' => $inviter['invite_count'] + 1 ],
|
|
'update',
|
|
$where
|
|
);
|
|
// 金币
|
|
$money = CommonInfo::where(['type' => 911])->find()->value;
|
|
if($money > 0 && $inviter['user_id'] != 1) {
|
|
$for_money = formatTo4Decimal($money);
|
|
$insert_data = [
|
|
'id' => Random::generateRandomPrefixedId(19),
|
|
'user_id' => $inviter['user_id'],
|
|
'type' => 1,
|
|
'classify' => 1,
|
|
'state' => 2,
|
|
'money_type' => 2,
|
|
'title' => "[分享奖励金币]",
|
|
'content' => '获取金币:' . $money,
|
|
'money' => $for_money,
|
|
'create_time' => date('Y-m-d H:i:s'),
|
|
];
|
|
$a = Common::saveDbData('user_money_details', $sale, $insert_data);
|
|
|
|
$usermoney = Common::saveDbData('user_money', $sale, [], 'find', $where);
|
|
if($usermoney) {
|
|
$user_money_update_data = [
|
|
'money' => !empty($usermoney['money'])? $usermoney['money'] + $for_money:$for_money,
|
|
'invite_income_coin' => !empty($usermoney['invite_income_coin'])? $usermoney['invite_income_coin'] + $for_money:$for_money,
|
|
];
|
|
// 更新邀请人钱包
|
|
Common::saveDbData('user_money',
|
|
$sale,
|
|
$user_money_update_data,
|
|
'update',
|
|
$where
|
|
);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
public static function updateInviteMoneySum($userId, $money)
|
|
{
|
|
$count = DatabaseRoute::getDb('invite_money', $userId)->count();
|
|
if (!$count) {
|
|
DatabaseRoute::getDb('invite_money', $userId, true)->insert([
|
|
'cash_out' => 0,
|
|
'user_id' => $userId,
|
|
'money' => 0,
|
|
'money_sum' => 0
|
|
]);
|
|
}
|
|
|
|
$money = floatval($money);
|
|
$model = DatabaseRoute::getDb('invite_money', $userId, true, true)->inc('money', $money)->inc('money_sum', $money);
|
|
$model->update();
|
|
|
|
}
|
|
|
|
|
|
// 我的收益
|
|
public static function selectInviteMoney($user):array
|
|
{
|
|
$inviteMoney = InviteMoney::selectInviteMoney($user['user_id']);
|
|
$inviteCount = TbUser::GetByuserInvite($user['invitation_code']);
|
|
$inviteSignCount = InviteAchievement::GetByInviteAchievementInvite($user['user_id']);
|
|
$userMoney = UserMoney::selectUserMoneyfind($user['user_id']);
|
|
|
|
return returnSuccessData([
|
|
'inviteMoney' => $inviteMoney,
|
|
'inviteCount' => $inviteCount,
|
|
'inviteSignCount' => $inviteSignCount,
|
|
'earning' => [
|
|
'inviteGoldMoney' => $userMoney['invite_income_coin'],
|
|
'inviteMoney' => $userMoney['invite_income_money'],
|
|
],
|
|
]);
|
|
}
|
|
|
|
// 查看我邀请的人员列表(查看所有邀请列表)
|
|
public static function selectInviteByUserIdLists($user, $get, $os)
|
|
{
|
|
if(empty($get['page']) || empty($get['limit'])) {
|
|
return returnErrorData('参数不完整');
|
|
}
|
|
// 拿到下级列表
|
|
$junior_list = TbUser::GetByuserInviteselect($user['invitation_code'], $get['page'], $get['limit']);
|
|
$return = [
|
|
'currPage' => 1,
|
|
'pageSize' => $get['limit'],
|
|
'totalCount' => 0,
|
|
'totalPage' => 0,
|
|
];
|
|
if(empty($junior_list)) {
|
|
$return['list'] = [];
|
|
if($os == 'admin') {
|
|
return returnSuccessData(['pageUtils' => $return]);
|
|
}else {
|
|
return returnSuccessData($return);
|
|
}
|
|
}
|
|
// 下级user_id集合
|
|
$junior_user_list = extract_user_ids($junior_list);
|
|
Log::info('下级user_id集合'. json_encode($junior_user_list));
|
|
$ach_select = DatabaseRoute::getDb('invite_achievement', $user['user_id'])
|
|
->where('count', '>=', 3)
|
|
->where(['user_id' => $user['user_id']])
|
|
->whereIn('target_user_id', $junior_user_list)
|
|
->select()
|
|
->toArray();
|
|
Log::info('签到集合'. json_encode($ach_select));
|
|
foreach ($ach_select as $k => &$v) {
|
|
$v['user_id'] = (string) $v['user_id'];
|
|
}
|
|
// 下级user_id集合
|
|
$ach_user_list = extract_target_user_ids($ach_select);
|
|
Log::info('签到user_id集合---'. json_encode($ach_user_list));
|
|
$commonInfoCount = CommonInfo::where(['type' => 913])->find()->value;
|
|
$date = date('Y-m-d 00:00:00');
|
|
|
|
foreach ($junior_list as $k => $v) {
|
|
$count = DatabaseRoute::getDb('orders', $v['user_id'])->where(['user_id' => $v['user_id'], 'status' => 1, 'pay_way' => 9])->where('create_time', '>', $date)->count();
|
|
$return['list'][] = [
|
|
'userId' => $v['user_id'],
|
|
'avatar' => $v['avatar'],
|
|
'userName' => $v['user_name'],
|
|
'recordNum' => in_array($v['user_id'], $ach_user_list)?1:0,
|
|
'userTag' => $count >= $commonInfoCount ? 1 : 0,
|
|
];
|
|
}
|
|
if($os == 'admin') {
|
|
return returnSuccessData(['pageUtils' => $return]);
|
|
}else {
|
|
return returnSuccessData($return);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
} |