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); } } }