add users online
This commit is contained in:
parent
20c20b3eaf
commit
aa07c84fb0
|
@ -14,6 +14,7 @@ use App\Entity\Registry;
|
|||
use App\Entity\Settings;
|
||||
use App\Entity\StoreroomTicket;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserToken;
|
||||
use App\Entity\WalletTransaction;
|
||||
use App\Service\Extractor;
|
||||
use App\Service\Jdate;
|
||||
|
@ -581,6 +582,23 @@ class AdminController extends AbstractController
|
|||
return $this->json($extractor->operationSuccess(array_reverse($temps)));
|
||||
}
|
||||
|
||||
#[Route('/api/admin/onlineusers/list', name: 'api_admin_online_users_list')]
|
||||
public function api_admin_online_users_list(Extractor $extractor,Jdate $jdate, EntityManagerInterface $entityManager): JsonResponse
|
||||
{
|
||||
$tokens = $entityManager->getRepository(UserToken::class)->getOnlines(120);
|
||||
$res = [];
|
||||
foreach($tokens as $token){
|
||||
$res[] = [
|
||||
'name' => $token->getUser()->getFullName(),
|
||||
'email'=>$token->getUser()->getEmail(),
|
||||
'mobile'=>$token->getUser()->getMobile(),
|
||||
'lastActive'=>$token->getLastActive() - time(),
|
||||
];
|
||||
}
|
||||
return $this->json($res);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
|
|
|
@ -218,7 +218,7 @@ class BusinessController extends AbstractController
|
|||
}
|
||||
}
|
||||
if (array_key_exists('profitCalcType', $params)) {
|
||||
if ($params['profitCalcType'] == 'lis' || $params['profitCalcType'] == 'avgis') {
|
||||
if ($params['profitCalcType'] == 'lis' || $params['profitCalcType'] == 'avgis' || $params['profitCalcType'] == 'simple') {
|
||||
$business->setProfitCalcType($params['profitCalcType']);
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -4,6 +4,7 @@ namespace App\Controller;
|
|||
|
||||
use App\Entity\Business;
|
||||
use App\Entity\Notification;
|
||||
use App\Entity\UserToken;
|
||||
use App\Service\Access;
|
||||
use App\Service\Jdate;
|
||||
use App\Service\Log;
|
||||
|
@ -11,13 +12,14 @@ use App\Service\twigFunctions;
|
|||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
|
||||
class NotificationsController extends AbstractController
|
||||
{
|
||||
#[Route('/api/notifications/list/{type}', name: 'api_notification_list')]
|
||||
public function api_notification_list(twigFunctions $twigFunctions,Access $access, Jdate $jdate, EntityManagerInterface $entityManager,String $type = 'all'): JsonResponse
|
||||
public function api_notification_list(twigFunctions $twigFunctions,Access $access,Request $request, Jdate $jdate, EntityManagerInterface $entityManager,String $type = 'all'): JsonResponse
|
||||
{
|
||||
if(!$this->getUser())
|
||||
throw $this->createAccessDeniedException('lot loged in');
|
||||
|
@ -62,6 +64,15 @@ class NotificationsController extends AbstractController
|
|||
$temp['id'] = $item->getId();
|
||||
$temps[] = $temp;
|
||||
}
|
||||
|
||||
$userToken = $entityManager->getRepository(UserToken::class)->findOneBy([
|
||||
'token'=> $request->headers->get('X-AUTH-TOKEN')
|
||||
]);
|
||||
if($userToken){
|
||||
$userToken->setLastActive(time());
|
||||
$entityManager->persist($userToken);
|
||||
$entityManager->flush();
|
||||
}
|
||||
return $this->json($temps);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,9 @@ class UserToken
|
|||
#[ORM\Column(length: 255, nullable: true)]
|
||||
private ?string $tokenID = null;
|
||||
|
||||
#[ORM\Column(length: 40, nullable: true)]
|
||||
private ?string $lastActive = null;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
|
@ -63,4 +66,16 @@ class UserToken
|
|||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getLastActive(): ?string
|
||||
{
|
||||
return $this->lastActive;
|
||||
}
|
||||
|
||||
public function setLastActive(?string $lastActive): static
|
||||
{
|
||||
$this->lastActive = $lastActive;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,13 +67,14 @@ class UserTokenRepository extends ServiceEntityRepository
|
|||
->getQuery()
|
||||
->getOneOrNullResult();
|
||||
}
|
||||
// public function findOneBySomeField($value): ?UserToken
|
||||
// {
|
||||
// return $this->createQueryBuilder('u')
|
||||
// ->andWhere('u.exampleField = :val')
|
||||
// ->setParameter('val', $value)
|
||||
// ->getQuery()
|
||||
// ->getOneOrNullResult()
|
||||
// ;
|
||||
// }
|
||||
|
||||
public function getOnlines($maxTime = 120): ?array
|
||||
{
|
||||
return $this->createQueryBuilder('u')
|
||||
->andWhere('u.lastActive > :maxTime')
|
||||
->setParameter('maxTime', time() - $maxTime)
|
||||
->getQuery()
|
||||
->getResult()
|
||||
;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue