chicky / laravel-modules
Gamota Laravel 模块管理(用于落地页)
Requires
- php: >=8.0
- ext-json: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.6
- laravel/framework: ^9.0
- mockery/mockery: ^1.4
- orchestra/testbench: ^7.0
- phpstan/phpstan: ^1.4
- phpunit/phpunit: ^9.5
- spatie/phpunit-snapshot-assertions: ^4.2
- dev-master / 9.0.x-dev
- v9.0.7
- v9.0.6
- v9.0.5
- v9.0.4
- v9.0.3
- v9.0.2
- v9.0.1
- v9.0.0
- v8.3.0
- 8.2.0
- 8.1.0
- 8.0.0
- 7.3.0
- 7.2.0
- 7.1.0
- 7.0.x-dev
- 7.0.0
- 6.2.0
- 6.1.0
- 6.0.x-dev
- 6.0.0
- 5.1.0
- 5.0.x-dev
- 5.0.1
- 5.0.0
- 4.1.0
- 4.0.x-dev
- 4.0.0
- 3.3.1
- 3.3.0
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.x-dev
- 3.0.1
- 3.0.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.1
- 2.4.0
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.x-dev
- 2.0.0
- 1.27.2
- 1.27.1
- 1.27.0
- 1.26.0
- 1.25.1
- 1.25.0
- 1.24.0
- 1.23.0
- 1.22.0
- 1.21.0
- 1.20.0
- 1.19.0
- 1.18.0
- 1.17.1
- 1.17.0
- 1.16.0
- 1.15.0
- 1.14.0
- 1.13.1
- 1.13.0
- 1.0.x-dev
- 0.12.0
- 0.11.2
- 0.11.1
- 0.11.0
- 0.10
- 0.9
- 0.8
- 0.7
- 0.6
- 0.5
- 0.4
- 0.3
- 0.2
- 0.1
- dev-feature/use-laravel-migrator
- dev-feature/database-modules
This package is auto-updated.
Last update: 2024-09-06 15:11:47 UTC
README
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 文档
- 基本 URL:https://trutien.gamota.net
- 开发基本 URL:https://dev-trutien.gamota.net
登录
普通登录
- URL:
api/<模块名称>/login
- 方法:
POST
- 参数
username
:字符串password
:字符串
-
响应:JSON
{ "error": int, "message": "string", "data": { "appota_userid": 2618078, "appota_username": "Xuanxuxu", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIyNjE4MDc4IiwiaWF0IjoxNjU1Nzk0Mzk0LCJhcHBvdGFfdXNlcmlkIjoiMjYxODA3OCIsImFwcG90YV91c2VybmFtZSI6Ilh1YW54dXh1IiwiZXhwIjoxNjU1ODA1MTk0fQ.NlgsXksofRR_tGfodO-CRWkv_tJXsXvYDRuPyNu08Dc", "expired": 1655805194 } }
谷歌登录
- URL:
api/<模块名称>/login
- 方法:
POST
- 参数
google_token
:字符串
-
响应:JSON
{ "error": int, "message": "string", "data": { "appota_userid": 2618078, "appota_username": "Xuanxuxu", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIyNjE4MDc4IiwiaWF0IjoxNjU1Nzk0Mzk0LCJhcHBvdGFfdXNlcmlkIjoiMjYxODA3OCIsImFwcG90YV91c2VybmFtZSI6Ilh1YW54dXh1IiwiZXhwIjoxNjU1ODA1MTk0fQ.NlgsXksofRR_tGfodO-CRWkv_tJXsXvYDRuPyNu08Dc", "expired": 1655805194 } }
Facebook 登录
- URL:
api/<模块名称>/login
- 方法:
POST
- 参数
facebook_token
:字符串
-
响应:JSON
{ "error": int, "message": "string", "data": { "appota_userid": 2618078, "appota_username": "Xuanxuxu", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIyNjE4MDc4IiwiaWF0IjoxNjU1Nzk0Mzk0LCJhcHBvdGFfdXNlcmlkIjoiMjYxODA3OCIsImFwcG90YV91c2VybmFtZSI6Ilh1YW54dXh1IiwiZXhwIjoxNjU1ODA1MTk0fQ.NlgsXksofRR_tGfodO-CRWkv_tJXsXvYDRuPyNu08Dc", "expired": 1655805194 } }
服务器和角色
列出服务器
- URL:
api/<模块名称>/list-server
- 授权:null
- 方法:
GET
- 参数
username
:字符串password
:字符串
-
响应:JSON
{ "error": 0, "message": "", "data": { "23001": "Bích Dao", "23092": "Cửu Ngạn", "23102": "Đại Bằng", } }
列出角色
- URL:
api/<模块名称>/list-role
- 头信息:
Authorization: Bearer <access_token>
- 方法:
GET
- 参数
server_id
:整数
-
响应:JSON
{ "error": int, "message": "string" "data": { "6474205939321801742": "Rufuif", "6484620513460142559": "Xxtyu", "6486872313273780784": "xuanxuxu", "6490531487971060786": "heoheo", "6491375912901154073": "chipchip" } }
出席
出席
- URL:
api/<模块名称>/attend
- 头信息:
Authorization: Bearer <access_token>
- 方法:
POST
- 参数
role_id
:字符串role_name
:字符串server_id
:字符串server_name
:字符串
-
响应:JSON
{ "error": 0, "message": "", }
角色信息
获取角色信息
- URL:
api/<模块名称>/get-role-info
- 头信息:
Authorization: Bearer <access_token>
- 方法:
GET
- 参数
role_id
:字符串
-
响应: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" ] } }
旋转
旋转
- URL:
api/<模块名称>/spin
- 头信息:
Authorization: Bearer <access_token>
- 方法:
POST
- 参数
role_id
:字符串server_id
:字符串type
:整数 | 枚举 (1, 3, 6)
-
响应: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 } ] } }
规则
获取规则
-
URL:
api/<模块名称>/rule
-
授权:无
-
方法:
GET
-
参数
-
响应:JSON
{ "error": 0, "message": "", "data": "<p>Rule Text<p>" }
历史记录
列出历史记录
- URL:
api/<module_name>/histories
- 头信息:
Authorization: Bearer <access_token>
- 方法:
GET
- 参数
role_id
:字符串type
: 字符串 - 类型: spin
-
响应: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" } }, ... ] }
排名
列出排名
-
URL:
api/<module_name>/api/ranks
-
授权:无
-
方法:
GET
-
参数
-
响应: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" }, ... ] }
分享
发布分享
-
URL:
api/<module_name>/share
-
头信息:
Authorization: Bearer <access_token>
-
方法:
POST
-
参数
- role_id: 整数 | 必需
-
响应:JSON
{ "error": integer, "message": string }
获取总分享数
-
URL:
api/<module_name>/total-share
-
授权:无
-
方法:
GET
-
参数
-
响应: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/
以设置模块文件夹的权限。