syamsoul/laravel-activity-logger

This laravel package allows you to log your system activity with ease.

1.0.4 2023-09-15 17:59 UTC

This package is auto-updated.

Last update: 2024-10-15 20:08:12 UTC


README

Latest Version on Packagist

Documentation, Installation and Usage Instructions

See the documentation for detailed installation and usage instructions.

   

Introduction

This package can help you to log your application activity easily and neatly. This package is actually specially built for logging activity in Command. But you can also use this package in route's callback / Controller, Middleware or anywhere inside your application.

   

Requirement

  • Laravel 8.x (and above)

This package can be used in Laravel 8.x or higher. If you are using an older version of Laravel, there's might be some problem. If there's any problem, you can create new issue and I will try to fix it as soon as possible.

   

What You Can Do

<?php

namespace App\Console\Commands\Order;

use Illuminate\Console\Command;
use SoulDoit\ActivityLogger\Logger;
use DB;

use App\Models\Order;
use App\Models\User;

class AllocateBonusCommand extends Command
{
    protected $signature = 'order:allocate-bonus';

    protected $description = 'Allocate bonus to upline user for each order.';

    public function handle(Logger $logger) // You can inject the dependency into this `handle` method
    {
        $logger->setTrack("ALLOCATE_BONUS_FOR_EACH_ORDER", true, "COMMAND");

        $orders = Order::select('id', 'user_id', 'amount')
        ->where([
            'status' => 1,
            'is_bonus_paid' => 0,
        ])->get();

        foreach($orders as $each_order){
            $upline_user_id = $each_order->user->upline_user_id;

            $bonus_amount = (5/100) * $each_order->amount;

            User::where('id', $upline_user_id)->update([
                'wallet_balance' => DB::raw("`wallet_balance` + $bonus_amount"),
            ]);

            $logger->log("Allocate $bonus_amount to User ID: $upline_user_id");
        }

        return Command::SUCCESS;
    }
}

 

The output will be:

[2022-12-28 16:11:33] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] START COMMAND  
[2022-12-28 16:11:33] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 30 to User ID: 7
[2022-12-28 16:11:33] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 30 to User ID: 8
[2022-12-28 16:11:33] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 20 to User ID: 7
[2022-12-28 16:11:33] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 30 to User ID: 8
[2022-12-28 16:11:33] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 20 to User ID: 7
[2022-12-28 16:11:33] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 30 to User ID: 8
[2022-12-28 16:11:33] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 20 to User ID: 7
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 30 to User ID: 8
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 20 to User ID: 7
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 30 to User ID: 8
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 20 to User ID: 7
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 30 to User ID: 1963
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 30 to User ID: 122
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 300 to User ID: 741
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 200 to User ID: 8
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 300 to User ID: 8
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 200 to User ID: 7
[2022-12-28 16:11:34] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] -- Allocate 30 to User ID: 7
[2022-12-28 16:11:49] production.INFO: [ALLOCATE_BONUS_FOR_EACH_ORDER][REF: 521645] STOP COMMAND (Total Time: 15.5869 secs)

   

Support me

If you find this package helps you, kindly support me by donating some BNB (BSC) to the address below.

0x364d8eA5E7a4ce97e89f7b2cb7198d6d5DFe0aCe

   

License

The MIT License (MIT). Please see License File for more information.