Compare commits
2 Commits
502404af17
...
1213f8e58a
| Author | SHA1 | Date | |
|---|---|---|---|
| 1213f8e58a | |||
| 27e9de0ac9 |
@@ -1,8 +0,0 @@
|
||||
// ANSI 转义码生成网站 https://patorjk.com/software/taag/#p=display&f=Big&t=ABB%0A
|
||||
const asciiArt = `
|
||||
\x1b[32m欢迎使用 SaiAdmin 6.x
|
||||
\x1b[0m
|
||||
\x1b[36mSaiAdmin 官网: https://saithink.top
|
||||
\x1b[0m
|
||||
`
|
||||
console.log(asciiArt)
|
||||
|
||||
@@ -14,6 +14,7 @@ use support\think\Db;
|
||||
use app\api\controller\BaseController;
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
use app\api\cache\UserCache;
|
||||
|
||||
/**
|
||||
* 平台 v1 游戏接口
|
||||
@@ -297,6 +298,12 @@ class GameController extends BaseController
|
||||
return $this->fail('操作失败:' . $e->getMessage(), ReturnCode::SERVER_ERROR);
|
||||
}
|
||||
|
||||
// 出于安全:删除该玩家相关缓存,后续 API 调用按需重建
|
||||
UserCache::deleteUser($player->id);
|
||||
if ($player->username !== '') {
|
||||
UserCache::deletePlayerByUsername($player->username);
|
||||
}
|
||||
|
||||
$recordArr = $record->toArray();
|
||||
$recordArr['dice_player'] = ['id' => (int) $player->id, 'username' => $player->username ?? '', 'phone' => $player->phone ?? ''];
|
||||
return $this->success($recordArr);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | saiadmin [ saiadmin?????? ]
|
||||
// | saiadmin [ saiadmin快速开发框架 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: your name
|
||||
// +----------------------------------------------------------------------
|
||||
@@ -15,14 +15,16 @@ use app\dice\validate\player\DicePlayerValidate;
|
||||
use plugin\saiadmin\service\Permission;
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
use app\api\cache\UserCache;
|
||||
use app\dice\model\player\DicePlayer;
|
||||
|
||||
/**
|
||||
* ???-?????
|
||||
* 玩家控制器
|
||||
*/
|
||||
class DicePlayerController extends BaseController
|
||||
{
|
||||
/**
|
||||
* ????
|
||||
* 构造函数
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
@@ -32,11 +34,11 @@ class DicePlayerController extends BaseController
|
||||
}
|
||||
|
||||
/**
|
||||
* ??????????DiceLotteryPoolConfig.id?name????? lottery_config_id ????
|
||||
* 获取彩金池配置选项(id、name)
|
||||
* @param Request $request
|
||||
* @return Response ?? [ ['id' => int, 'name' => string], ... ]
|
||||
* @return Response
|
||||
*/
|
||||
#[Permission('???-????', 'dice:player:index:index')]
|
||||
#[Permission('玩家列表', 'dice:player:index:index')]
|
||||
public function getLotteryConfigOptions(Request $request): Response
|
||||
{
|
||||
$list = DiceLotteryPoolConfig::field('id,name')->order('id', 'asc')->select();
|
||||
@@ -47,12 +49,11 @@ class DicePlayerController extends BaseController
|
||||
}
|
||||
|
||||
/**
|
||||
* ??????????SystemUser.id?username?realname??? admin_id ????
|
||||
* ????????????????????????????????
|
||||
* 获取后台管理员选项(id、username、realname)
|
||||
* @param Request $request
|
||||
* @return Response ?? [ ['id' => int, 'username' => string, 'realname' => string], ... ]
|
||||
* @return Response
|
||||
*/
|
||||
#[Permission('???-????', 'dice:player:index:index')]
|
||||
#[Permission('玩家列表', 'dice:player:index:index')]
|
||||
public function getSystemUserOptions(Request $request): Response
|
||||
{
|
||||
$query = SystemUser::field('id,username,realname')->where('status', 1)->order('id', 'asc');
|
||||
@@ -76,11 +77,11 @@ class DicePlayerController extends BaseController
|
||||
}
|
||||
|
||||
/**
|
||||
* ????
|
||||
* 数据列表
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
#[Permission('???-????', 'dice:player:index:index')]
|
||||
#[Permission('玩家列表', 'dice:player:index:index')]
|
||||
public function index(Request $request): Response
|
||||
{
|
||||
$where = $request->more([
|
||||
@@ -99,54 +100,59 @@ class DicePlayerController extends BaseController
|
||||
}
|
||||
|
||||
/**
|
||||
* ????
|
||||
* 读取数据
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
#[Permission('???-????', 'dice:player:index:read')]
|
||||
#[Permission('玩家读取', 'dice:player:index:read')]
|
||||
public function read(Request $request): Response
|
||||
{
|
||||
$id = $request->input('id', '');
|
||||
$model = $this->logic->read($id);
|
||||
if (!$model) {
|
||||
return $this->fail('??????');
|
||||
return $this->fail('未查找到信息');
|
||||
}
|
||||
$allowedIds = AdminScopeHelper::getAllowedAdminIds($this->adminInfo ?? null);
|
||||
if ($allowedIds !== null && !in_array((int) ($model->admin_id ?? 0), $allowedIds, true)) {
|
||||
return $this->fail('????????');
|
||||
return $this->fail('无权限查看该记录');
|
||||
}
|
||||
$data = is_array($model) ? $model : $model->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* ????
|
||||
* 保存数据
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
#[Permission('???-????', 'dice:player:index:save')]
|
||||
#[Permission('玩家添加', 'dice:player:index:save')]
|
||||
public function save(Request $request): Response
|
||||
{
|
||||
$data = $request->post();
|
||||
$this->validate('save', $data);
|
||||
// ?????????????????????
|
||||
// 类型转化
|
||||
if (empty($data['admin_id']) && isset($this->adminInfo['id']) && (int) $this->adminInfo['id'] > 0) {
|
||||
$data['admin_id'] = (int) $this->adminInfo['id'];
|
||||
}
|
||||
$result = $this->logic->add($data);
|
||||
if ($result) {
|
||||
return $this->success('????');
|
||||
} else {
|
||||
return $this->fail('????');
|
||||
if ($result && isset($result['id'])) {
|
||||
// 出于安全:删除该玩家缓存,后续 API 按需重建
|
||||
UserCache::deleteUser($result['id']);
|
||||
$player = DicePlayer::find($result['id']);
|
||||
if ($player && $player->username !== '') {
|
||||
UserCache::deletePlayerByUsername($player->username);
|
||||
}
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
return $this->fail('添加失败');
|
||||
}
|
||||
|
||||
/**
|
||||
* ????
|
||||
* 更新数据
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
#[Permission('???-????', 'dice:player:index:update')]
|
||||
#[Permission('玩家修改', 'dice:player:index:update')]
|
||||
public function update(Request $request): Response
|
||||
{
|
||||
$data = $request->post();
|
||||
@@ -155,55 +161,66 @@ class DicePlayerController extends BaseController
|
||||
if ($model) {
|
||||
$allowedIds = AdminScopeHelper::getAllowedAdminIds($this->adminInfo ?? null);
|
||||
if ($allowedIds !== null && !in_array((int) ($model->admin_id ?? 0), $allowedIds, true)) {
|
||||
return $this->fail('????????');
|
||||
return $this->fail('无权限修改该记录');
|
||||
}
|
||||
}
|
||||
$result = $this->logic->edit($data['id'], $data);
|
||||
if ($result) {
|
||||
return $this->success('????');
|
||||
} else {
|
||||
return $this->fail('????');
|
||||
// 出于安全:删除该玩家缓存,后续 API 按需重建
|
||||
UserCache::deleteUser($data['id']);
|
||||
$player = DicePlayer::find($data['id']);
|
||||
if ($player && $player->username !== '') {
|
||||
UserCache::deletePlayerByUsername($player->username);
|
||||
}
|
||||
return $this->success('修改成功');
|
||||
}
|
||||
return $this->fail('修改失败');
|
||||
}
|
||||
|
||||
/**
|
||||
* ?????????????
|
||||
* 更新状态
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
#[Permission('???-????', 'dice:player:index:update')]
|
||||
#[Permission('玩家状态修改', 'dice:player:index:update')]
|
||||
public function updateStatus(Request $request): Response
|
||||
{
|
||||
$id = $request->input('id');
|
||||
$status = $request->input('status');
|
||||
if ($id === null || $id === '') {
|
||||
return $this->fail('?? id');
|
||||
return $this->fail('缺少参数 id');
|
||||
}
|
||||
if ($status === null || $status === '') {
|
||||
return $this->fail('?? status');
|
||||
return $this->fail('缺少参数 status');
|
||||
}
|
||||
$model = $this->logic->read($id);
|
||||
if ($model) {
|
||||
$allowedIds = AdminScopeHelper::getAllowedAdminIds($this->adminInfo ?? null);
|
||||
if ($allowedIds !== null && !in_array((int) ($model->admin_id ?? 0), $allowedIds, true)) {
|
||||
return $this->fail('????????');
|
||||
return $this->fail('无权限修改该记录');
|
||||
}
|
||||
}
|
||||
$this->logic->edit($id, ['status' => (int) $status]);
|
||||
return $this->success('????');
|
||||
// 出于安全:删除该玩家缓存,后续 API 按需重建
|
||||
UserCache::deleteUser($id);
|
||||
$player = DicePlayer::find($id);
|
||||
if ($player && $player->username !== '') {
|
||||
UserCache::deletePlayerByUsername($player->username);
|
||||
}
|
||||
return $this->success('修改成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* ????
|
||||
* 删除数据
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
#[Permission('???-????', 'dice:player:index:destroy')]
|
||||
#[Permission('玩家删除', 'dice:player:index:destroy')]
|
||||
public function destroy(Request $request): Response
|
||||
{
|
||||
$ids = $request->post('ids', '');
|
||||
if (empty($ids)) {
|
||||
return $this->fail('?????????');
|
||||
return $this->fail('请选择要删除的数据');
|
||||
}
|
||||
$ids = is_array($ids) ? $ids : explode(',', (string) $ids);
|
||||
$allowedIds = AdminScopeHelper::getAllowedAdminIds($this->adminInfo ?? null);
|
||||
@@ -218,15 +235,22 @@ class DicePlayerController extends BaseController
|
||||
}
|
||||
$ids = $validIds;
|
||||
if (empty($ids)) {
|
||||
return $this->fail('?????????');
|
||||
return $this->fail('无权限删除所选数据');
|
||||
}
|
||||
}
|
||||
$result = $this->logic->destroy($ids);
|
||||
if ($result) {
|
||||
return $this->success('????');
|
||||
} else {
|
||||
return $this->fail('????');
|
||||
// 出于安全:删除相关玩家缓存,后续 API 按需重建
|
||||
foreach ($ids as $id) {
|
||||
UserCache::deleteUser($id);
|
||||
$player = DicePlayer::find($id);
|
||||
if ($player && $player->username !== '') {
|
||||
UserCache::deletePlayerByUsername($player->username);
|
||||
}
|
||||
}
|
||||
return $this->success('删除成功');
|
||||
}
|
||||
return $this->fail('删除失败');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ use plugin\saiadmin\basic\think\BaseLogic;
|
||||
use plugin\saiadmin\exception\ApiException;
|
||||
use app\dice\model\player_wallet_record\DicePlayerWalletRecord;
|
||||
use app\dice\model\player\DicePlayer;
|
||||
use app\api\cache\UserCache;
|
||||
|
||||
/**
|
||||
* 玩家钱包流水逻辑层
|
||||
@@ -73,6 +74,12 @@ class DicePlayerWalletRecordLogic extends BaseLogic
|
||||
|
||||
DicePlayer::where('id', $playerId)->update(['coin' => $walletAfter]);
|
||||
|
||||
// 出于安全:删除该玩家相关缓存,后续 API 按需重建
|
||||
UserCache::deleteUser($playerId);
|
||||
if (isset($player->username) && $player->username !== '') {
|
||||
UserCache::deletePlayerByUsername($player->username);
|
||||
}
|
||||
|
||||
$playerAdminId = ($player->admin_id ?? null) ? (int) $player->admin_id : null;
|
||||
$record = [
|
||||
'player_id' => $playerId,
|
||||
|
||||
Reference in New Issue
Block a user