1.优化开奖和推送

2.新增控制连续开奖赔率
This commit is contained in:
2026-04-20 10:02:27 +08:00
parent c184fa8a46
commit 24aab111b5
18 changed files with 749 additions and 37 deletions

View File

@@ -3,6 +3,8 @@
namespace app\admin\controller\config;
use app\common\controller\Backend;
use app\common\library\game\DepositTier;
use app\common\library\game\StreakWinReward;
use app\common\library\game\ZiHuaDictionary as ZiHuaDictionaryLib;
use support\Response;
use Webman\Http\Request as WebmanRequest;
@@ -33,7 +35,19 @@ class GameConfig extends Backend
}
/**
* 列表:排除独立表单维护的 36 字花字典
* @return list<string>
*/
protected function excludedConfigKeys(): array
{
return [
ZiHuaDictionaryLib::CONFIG_KEY,
DepositTier::CONFIG_KEY,
StreakWinReward::CONFIG_KEY,
];
}
/**
* 列表:排除独立表单维护的配置键
*/
protected function _index(): Response
{
@@ -45,7 +59,7 @@ class GameConfig extends Backend
$table = strtolower($this->model->getTable());
$mainShort = $alias[$table] ?? '';
if ($mainShort !== '') {
$where[] = [$mainShort . '.config_key', '<>', ZiHuaDictionaryLib::CONFIG_KEY];
$where[] = [$mainShort . '.config_key', 'not in', $this->excludedConfigKeys()];
}
$res = $this->model
@@ -63,4 +77,51 @@ class GameConfig extends Backend
'remark' => get_route_remark(),
]);
}
/**
* 远程下拉:排除独立维护的配置键
*/
protected function _select(): Response
{
if (empty($this->model)) {
return $this->success('', [
'list' => [],
'total' => 0,
]);
}
$pk = $this->model->getPk();
$fields = [$pk];
$quickSearchArr = is_array($this->quickSearchField) ? $this->quickSearchField : explode(',', (string) $this->quickSearchField);
foreach ($quickSearchArr as $f) {
$f = trim((string) $f);
if ($f === '') {
continue;
}
$f = str_contains($f, '.') ? substr($f, strrpos($f, '.') + 1) : $f;
if ($f !== '' && !in_array($f, $fields, true)) {
$fields[] = $f;
}
}
list($where, $alias, $limit, $order) = $this->queryBuilder();
$table = strtolower($this->model->getTable());
$mainShort = $alias[$table] ?? '';
if ($mainShort !== '') {
$where[] = [$mainShort . '.config_key', 'not in', $this->excludedConfigKeys()];
}
$res = $this->model
->field($fields)
->alias($alias)
->where($where)
->order($order)
->paginate($limit);
return $this->success('', [
'list' => $res->items(),
'total' => $res->total(),
]);
}
}