add
This commit is contained in:
179
app/api/model/Invite.php
Normal file
179
app/api/model/Invite.php
Normal file
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
use app\common\library\DatabaseRoute;
|
||||
use app\common\model\Common;
|
||||
use ba\Random;
|
||||
use think\facade\Db;
|
||||
use think\facade\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::write('下级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::write('签到集合'. 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::write('签到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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user