chicky/laravel-modules

Gamota Laravel 模块管理(用于落地页)

资助包维护!
nwidart

安装: 12

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 0

分支: 948


README

Latest Version on Packagist Software License Build Status Scrutinizer Coverage Quality Score Total Downloads

chicky/laravel-modules 是一个 Laravel 包,用于通过模块化管理大型 Laravel 应用程序,主要用于支持 Gamota 落地系统。模块类似于 Laravel 包,它包含一些视图、控制器或模型。此包在 Laravel 9 中得到支持和测试。

安装

要通过 Composer 安装,请运行以下命令

composer require chicky/laravel-modules

该包将自动注册服务提供者和别名。

可选地,通过运行以下命令发布包的配置文件

php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"

自动加载

默认情况下,模块类不会自动加载。您可以使用 psr-4 来自动加载您的模块。例如

{
  "autoload": {
    "psr-4": {
      "App\\": "app/",
      "Modules\\": "Modules/",
      "Database\\Factories\\": "database/factories/",
      "Database\\Seeders\\": "database/seeders/"
  }

}

提示:不要忘记运行 composer dump-autoload

文档

有关基本文档,请访问 https://docs.laravelmodules.com/

Gamota 组件文档

要求

  • 在 env 文件中添加变量(支持落地 API)
      PURCHASE_LIST_GAME_SECRET_KEY=
      PURCHASE_SECRET_KEY=
      PURCHASE_GET_ROLE_SECRET_KEY=
      PAY_AUTH_SECRET_KEY=
      GAME_API_KEY=
      APPOTA_API_KEY=
      TELEGRAM_API_KEY=
      SENDGIFT_VERIFY_TOKEN=
    
  • 安装 Passport
      php artisan migrate
      php artisan passport:install
    

1. 创建模块

  • 有两种方式来创建模块
方式 1

使用默认设置创建模块

  • 步骤 1:运行 php artisan module:make <模块名称> --support="gamota"
  • 步骤 2:运行 php artisan make:gamota-component birthday --components="item,item_log"

组件:item, item_log, role, payment, config.

方式 2(推荐)

使用组件创建模块

  • 步骤 1:运行 php artisan module:make <模块名称> --components="item,item_log,config,share,payment,role" --support="gamota"

组件:item, item_log, role, payment, config.

参数 --support="gamota" 用于生成支持 Gamota 落地 API 的模块控制器

运行迁移
  • 不要忘记运行 php artisan module:migrate <模块名称>

2. 在 CMS 的侧边栏中添加模块

在文件 resources/views/partials/sidebar.blade.php 中插入以下代码 @include('trianvip::partials.sidebar.trianvip')

3. 创建发送礼物控制台

  • 运行 php artisan module:make-sendgift-command <模块名称>
  • 将以下代码添加到模块服务提供者中
    $this->commands([
        SendGiftCommand::class,
    ]);
    
  • 运行命令 php artisan module_name:send-gift。例如:运行 php artisan birthday:send-gift

列出 Laravel 命令:运行 php artisan list

4. 落地 API 文档

登录

服务器 & 角色

出席

角色信息

旋转

规则

历史记录

排名

分享

登录

普通登录

  1. URL:api/<模块名称>/login
  2. 方法:POST
  3. 参数
  • username:字符串
  • password:字符串
  1. 响应:JSON

    {
        "error": int,
        "message": "string",
        "data": {
            "appota_userid": 2618078,
            "appota_username": "Xuanxuxu",
             "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIyNjE4MDc4IiwiaWF0IjoxNjU1Nzk0Mzk0LCJhcHBvdGFfdXNlcmlkIjoiMjYxODA3OCIsImFwcG90YV91c2VybmFtZSI6Ilh1YW54dXh1IiwiZXhwIjoxNjU1ODA1MTk0fQ.NlgsXksofRR_tGfodO-CRWkv_tJXsXvYDRuPyNu08Dc",
            "expired": 1655805194
        }
    }

谷歌登录

  1. URL:api/<模块名称>/login
  2. 方法:POST
  3. 参数
  • google_token:字符串
  1. 响应:JSON

    {
        "error": int,
        "message": "string",
        "data": {
            "appota_userid": 2618078,
            "appota_username": "Xuanxuxu",
             "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIyNjE4MDc4IiwiaWF0IjoxNjU1Nzk0Mzk0LCJhcHBvdGFfdXNlcmlkIjoiMjYxODA3OCIsImFwcG90YV91c2VybmFtZSI6Ilh1YW54dXh1IiwiZXhwIjoxNjU1ODA1MTk0fQ.NlgsXksofRR_tGfodO-CRWkv_tJXsXvYDRuPyNu08Dc",
            "expired": 1655805194
        }
    }

Facebook 登录

  1. URL:api/<模块名称>/login
  2. 方法:POST
  3. 参数
  • facebook_token:字符串
  1. 响应:JSON

    {
        "error": int,
        "message": "string",
        "data": {
            "appota_userid": 2618078,
            "appota_username": "Xuanxuxu",
             "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIyNjE4MDc4IiwiaWF0IjoxNjU1Nzk0Mzk0LCJhcHBvdGFfdXNlcmlkIjoiMjYxODA3OCIsImFwcG90YV91c2VybmFtZSI6Ilh1YW54dXh1IiwiZXhwIjoxNjU1ODA1MTk0fQ.NlgsXksofRR_tGfodO-CRWkv_tJXsXvYDRuPyNu08Dc",
            "expired": 1655805194
        }
    }

服务器和角色

列出服务器

  1. URL:api/<模块名称>/list-server
  2. 授权:null
  3. 方法:GET
  4. 参数
  • username:字符串
  • password:字符串
  1. 响应:JSON

    {
        "error": 0,
        "message": "",
        "data": {
            "23001": "Bích Dao",
            "23092": "Cửu Ngạn",
            "23102": "Đại Bằng",
        }
    }

列出角色

  1. URL:api/<模块名称>/list-role
  2. 头信息:Authorization: Bearer <access_token>
  3. 方法:GET
  4. 参数
  • server_id:整数
  1. 响应:JSON

    {
        "error": int,
        "message": "string"
        "data": {
            "6474205939321801742": "Rufuif",
            "6484620513460142559": "Xxtyu",
            "6486872313273780784": "xuanxuxu",
            "6490531487971060786": "heoheo",
            "6491375912901154073": "chipchip"
        }
    }

出席

出席

  1. URL:api/<模块名称>/attend
  2. 头信息:Authorization: Bearer <access_token>
  3. 方法:POST
  4. 参数
  • role_id:字符串
  • role_name:字符串
  • server_id:字符串
  • server_name:字符串
  1. 响应:JSON

    {
        "error": 0,
        "message": "",
    }

角色信息

获取角色信息

  1. URL:api/<模块名称>/get-role-info
  2. 头信息:Authorization: Bearer <access_token>
  3. 方法:GET
  4. 参数
  • role_id:字符串
  1. 响应:JSON

    {
        "error": 0,
        "message": "",
        "data": {
            "spin_total": 100,
            "spin_received": 20,
            "spin_available": 80,
            "detail": [
                "role_id": "6490250012994306385",
                "role_name": "BăngČTuyết",
                "server_name": "Đằng Vân",
                "spin_total": "100"
            ]
        }
    }

旋转

旋转

  1. URL:api/<模块名称>/spin
  2. 头信息:Authorization: Bearer <access_token>
  3. 方法:POST
  4. 参数
  • role_id:字符串
  • server_id:字符串
  • type:整数 | 枚举 (1, 3, 6)
  1. 响应:JSON

    {
        "error": 0,
        "message": "",
        "data": {
            "spin_total": 100,
            "spin_received": 20,
            "spin_available": 80,
            "detail": [
                {
                    "gift_title": "Quà ingame ",
                    "gift_id": 1,
                    "position": 1
                },
                {
                    "gift_title": "Quà ingame ",
                    "gift_id": 1,
                    "position": 1
                },
                {
                    "gift_title": "Áo Tru Tiên",
                    "gift_id": 2,
                    "position": 2
                }
            ]
        }
    }

规则

获取规则

  1. URL:api/<模块名称>/rule

  2. 授权:无

  3. 方法:GET

  4. 参数

  5. 响应:JSON

    {
        "error": 0,
        "message": "",
        "data": "<p>Rule Text<p>"
    }

历史记录

列出历史记录

  1. URL: api/<module_name>/histories
  2. 头信息:Authorization: Bearer <access_token>
  3. 方法:GET
  4. 参数
  • role_id:字符串
  • type: 字符串 - 类型: spin
  1. 响应:JSON

    {
        "error": 0,
        "message": "",
        "data": [
            {
                "gift_id": 1,
                "gift_type": "spin",
                "gift_title": "Quà ingame",
                "role_name": "BăngČTuyết",
                "server_name": "Đằng Vân",
                "created_at": "2022-06-20 17:56:30",
                "detail": {
                    "title": "Quà ingame",
                    "image": "https://trutien.gamota.com/wp-content/uploads/2021/03/giang-tu-tinh-hon.png\r\n"
                }
            },
            ...
        ]
    }

排名

列出排名

  1. URL: api/<module_name>/api/ranks

  2. 授权:无

  3. 方法:GET

  4. 参数

  5. 响应:JSON

    {
        "error": 0,
        "message": "",
        "data": [
            {
                "role_name": "BăngČTuyết",
                "server_name": "Đằng Vân",
                "counted_rows": 14,
                "appota_userid": 2618078,
                "appota_username": "caongocthu1995"
            },
            ...
        ]
    }

分享

发布分享

  1. URL: api/<module_name>/share

  2. 头信息:Authorization: Bearer <access_token>

  3. 方法:POST

  4. 参数

    • role_id: 整数 | 必需
  5. 响应:JSON

    {
        "error": integer,
        "message": string
    }

获取总分享数

  1. URL: api/<module_name>/total-share

  2. 授权:无

  3. 方法:GET

  4. 参数

  5. 响应:JSON

    {
        "error": integer,
        "message": string,
        "data": 1
    }

针对开发者

  • 运行 docker-compose up
  • 运行 docker exec -it api-gamota-landing_php-fpm_1 bash 以访问服务器。
  • 运行 chown -R 1000:1000 Modules/ 以设置模块文件夹的权限。