将项目中所有total_draw_count字段重构为total_ticket_count字段
将项目中所有paid_draw_count字段重构为paid_ticket_count字段 将项目中所有free_draw_count字段重构为free_ticket_count字段
This commit is contained in:
@@ -79,7 +79,7 @@ class UserController extends OpenController
|
||||
* 获取当前用户信息
|
||||
* GET /api/user/info
|
||||
* header: user-token(由 CheckUserTokenMiddleware 校验并注入 request->user_id)
|
||||
* 返回:id, username, phone, uid, name, coin, total_draw_count
|
||||
* 返回:id, username, phone, uid, name, coin, total_ticket_count
|
||||
*/
|
||||
public function info(Request $request): Response
|
||||
{
|
||||
@@ -88,7 +88,7 @@ class UserController extends OpenController
|
||||
if (empty($user)) {
|
||||
return $this->fail('用户不存在', ReturnCode::NOT_FOUND);
|
||||
}
|
||||
$fields = ['id', 'username', 'phone', 'uid', 'name', 'coin', 'total_draw_count'];
|
||||
$fields = ['id', 'username', 'phone', 'uid', 'name', 'coin', 'total_ticket_count'];
|
||||
$info = [];
|
||||
foreach ($fields as $field) {
|
||||
if (array_key_exists($field, $user)) {
|
||||
|
||||
@@ -29,7 +29,7 @@ class GameLogic
|
||||
* 购买抽奖券
|
||||
* @param int $playerId 玩家ID(即 user_id)
|
||||
* @param int $count 购买档位:1 / 5 / 10
|
||||
* @return array 更新后的 coin, total_draw_count, paid_draw_count, free_draw_count
|
||||
* @return array 更新后的 coin, total_ticket_count, paid_ticket_count, free_ticket_count
|
||||
*/
|
||||
public function buyLotteryTickets(int $playerId, int $count): array
|
||||
{
|
||||
@@ -52,9 +52,9 @@ class GameLogic
|
||||
}
|
||||
|
||||
$coinAfter = $coinBefore - $cost;
|
||||
$totalBefore = (int) ($player->total_draw_count ?? 0);
|
||||
$paidBefore = (int) ($player->paid_draw_count ?? 0);
|
||||
$freeBefore = (int) ($player->free_draw_count ?? 0);
|
||||
$totalBefore = (int) ($player->total_ticket_count ?? 0);
|
||||
$paidBefore = (int) ($player->paid_ticket_count ?? 0);
|
||||
$freeBefore = (int) ($player->free_ticket_count ?? 0);
|
||||
|
||||
Db::transaction(function () use (
|
||||
$player,
|
||||
@@ -70,9 +70,9 @@ class GameLogic
|
||||
$freeBefore
|
||||
) {
|
||||
$player->coin = $coinAfter;
|
||||
$player->total_draw_count = $totalBefore + $addTotal;
|
||||
$player->paid_draw_count = $paidBefore + $addPaid;
|
||||
$player->free_draw_count = $freeBefore + $addFree;
|
||||
$player->total_ticket_count = $totalBefore + $addTotal;
|
||||
$player->paid_ticket_count = $paidBefore + $addPaid;
|
||||
$player->free_ticket_count = $freeBefore + $addFree;
|
||||
$player->save();
|
||||
|
||||
// 钱包流水记录
|
||||
@@ -82,9 +82,9 @@ class GameLogic
|
||||
'type' => self::WALLET_TYPE_BUY_DRAW,
|
||||
'wallet_before' => $coinBefore,
|
||||
'wallet_after' => $coinAfter,
|
||||
'total_draw_count' => $addTotal,
|
||||
'paid_draw_count' => $addPaid,
|
||||
'free_draw_count' => $addFree,
|
||||
'total_ticket_count' => $addTotal,
|
||||
'paid_ticket_count' => $addPaid,
|
||||
'free_ticket_count' => $addFree,
|
||||
'remark' => "购买抽奖券{$addTotal}次(付费{$addPaid}次+赠送{$addFree}次)",
|
||||
]);
|
||||
|
||||
@@ -92,9 +92,9 @@ class GameLogic
|
||||
DicePlayerTicketRecord::create([
|
||||
'player_id' => $playerId,
|
||||
'use_coins' => $cost,
|
||||
'total_draw_count' => $addTotal,
|
||||
'paid_draw_count' => $addPaid,
|
||||
'free_draw_count' => $addFree,
|
||||
'total_ticket_count' => $addTotal,
|
||||
'paid_ticket_count' => $addPaid,
|
||||
'free_ticket_count' => $addFree,
|
||||
'remark' => "购买抽奖券{$addTotal}次(付费{$addPaid}次+赠送{$addFree}次)",
|
||||
]);
|
||||
});
|
||||
@@ -105,9 +105,9 @@ class GameLogic
|
||||
|
||||
return [
|
||||
'coin' => (float) $updated->coin,
|
||||
'total_draw_count' => (int) $updated->total_draw_count,
|
||||
'paid_draw_count' => (int) $updated->paid_draw_count,
|
||||
'free_draw_count' => (int) $updated->free_draw_count,
|
||||
'total_ticket_count' => (int) $updated->total_ticket_count,
|
||||
'paid_ticket_count' => (int) $updated->paid_ticket_count,
|
||||
'free_ticket_count' => (int) $updated->free_ticket_count,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,8 +54,8 @@ class PlayStartLogic
|
||||
throw new ApiException('当前玩家余额小于DiceRewardConfigMin.real_ev+100无法继续游戏');
|
||||
}
|
||||
|
||||
$paid = (int) ($player->paid_draw_count ?? 0);
|
||||
$free = (int) ($player->free_draw_count ?? 0);
|
||||
$paid = (int) ($player->paid_ticket_count ?? 0);
|
||||
$free = (int) ($player->free_ticket_count ?? 0);
|
||||
if ($paid + $free <= 0) {
|
||||
throw new ApiException('抽奖券不足');
|
||||
}
|
||||
@@ -125,21 +125,21 @@ class PlayStartLogic
|
||||
$coinBefore = (float) $p->coin;
|
||||
$coinAfter = $coinBefore + $winCoin;
|
||||
$p->coin = $coinAfter;
|
||||
$p->total_draw_count = max(0, (int) $p->total_draw_count - 1);
|
||||
$p->total_ticket_count = max(0, (int) $p->total_ticket_count - 1);
|
||||
if ($ticketType === self::LOTTERY_TYPE_PAID) {
|
||||
$p->paid_draw_count = max(0, (int) $p->paid_draw_count - 1);
|
||||
$p->paid_ticket_count = max(0, (int) $p->paid_ticket_count - 1);
|
||||
} else {
|
||||
$p->free_draw_count = max(0, (int) $p->free_draw_count - 1);
|
||||
$p->free_ticket_count = max(0, (int) $p->free_ticket_count - 1);
|
||||
}
|
||||
|
||||
// 若本局中奖档位为 T5,则额外赠送 1 次免费抽奖次数(总次数也 +1),并记录抽奖券获取记录
|
||||
if ($isTierT5) {
|
||||
$p->free_draw_count = (int) $p->free_draw_count + 1;
|
||||
$p->total_draw_count = (int) $p->total_draw_count + 1;
|
||||
$p->free_ticket_count = (int) $p->free_ticket_count + 1;
|
||||
$p->total_ticket_count = (int) $p->total_ticket_count + 1;
|
||||
|
||||
DicePlayerTicketRecord::create([
|
||||
'player_id' => $playerId,
|
||||
'free_draw_count' => 1,
|
||||
'free_ticket_count' => 1,
|
||||
'remark' => '中奖结果为T5',
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ class LotteryService
|
||||
return $tiers[4];
|
||||
}
|
||||
|
||||
/** 按 paid_draw_count 与 free_draw_count 权重随机抽取 0=付费 1=免费 */
|
||||
/** 按 paid_ticket_count 与 free_ticket_count 权重随机抽取 0=付费 1=免费 */
|
||||
public static function drawTicketType(int $paid, int $free): int
|
||||
{
|
||||
if ($paid <= 0 && $free <= 0) {
|
||||
|
||||
@@ -41,12 +41,12 @@ class DicePlayerTicketRecordController extends BaseController
|
||||
['username', ''],
|
||||
['use_coins_min', ''],
|
||||
['use_coins_max', ''],
|
||||
['total_draw_count_min', ''],
|
||||
['total_draw_count_max', ''],
|
||||
['paid_draw_count_min', ''],
|
||||
['paid_draw_count_max', ''],
|
||||
['free_draw_count_min', ''],
|
||||
['free_draw_count_max', ''],
|
||||
['total_ticket_count_min', ''],
|
||||
['total_ticket_count_max', ''],
|
||||
['paid_ticket_count_min', ''],
|
||||
['paid_ticket_count_max', ''],
|
||||
['free_ticket_count_min', ''],
|
||||
['free_ticket_count_max', ''],
|
||||
['create_time_min', ''],
|
||||
['create_time_max', ''],
|
||||
]);
|
||||
|
||||
@@ -25,28 +25,28 @@ class DicePlayerTicketRecordLogic extends BaseLogic
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加前:总抽奖次数 = 购买抽奖次数 + 赠送抽奖次数
|
||||
* 添加前:total_ticket_count = paid_ticket_count + free_ticket_count
|
||||
*/
|
||||
public function add(array $data): mixed
|
||||
{
|
||||
$data = $this->fillTotalDrawCount($data);
|
||||
$data = $this->fillTotalTicketCount($data);
|
||||
return parent::add($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改前:总抽奖次数 = 购买抽奖次数 + 赠送抽奖次数
|
||||
* 修改前:total_ticket_count = paid_ticket_count + free_ticket_count
|
||||
*/
|
||||
public function edit($id, array $data): mixed
|
||||
{
|
||||
$data = $this->fillTotalDrawCount($data);
|
||||
$data = $this->fillTotalTicketCount($data);
|
||||
return parent::edit($id, $data);
|
||||
}
|
||||
|
||||
private function fillTotalDrawCount(array $data): array
|
||||
private function fillTotalTicketCount(array $data): array
|
||||
{
|
||||
$paid = isset($data['paid_draw_count']) ? (int) $data['paid_draw_count'] : 0;
|
||||
$free = isset($data['free_draw_count']) ? (int) $data['free_draw_count'] : 0;
|
||||
$data['total_draw_count'] = $paid + $free;
|
||||
$paid = isset($data['paid_ticket_count']) ? (int) $data['paid_ticket_count'] : 0;
|
||||
$free = isset($data['free_ticket_count']) ? (int) $data['free_ticket_count'] : 0;
|
||||
$data['total_ticket_count'] = $paid + $free;
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,9 +29,9 @@ class DicePlayerWalletRecordLogic extends BaseLogic
|
||||
*/
|
||||
public function add(array $data): mixed
|
||||
{
|
||||
$data['total_draw_count'] = $data['total_draw_count'] ?? 0;
|
||||
$data['paid_draw_count'] = $data['paid_draw_count'] ?? 0;
|
||||
$data['free_draw_count'] = $data['free_draw_count'] ?? 0;
|
||||
$data['total_ticket_count'] = $data['total_ticket_count'] ?? 0;
|
||||
$data['paid_ticket_count'] = $data['paid_ticket_count'] ?? 0;
|
||||
$data['free_ticket_count'] = $data['free_ticket_count'] ?? 0;
|
||||
return parent::add($data);
|
||||
}
|
||||
|
||||
@@ -81,9 +81,9 @@ class DicePlayerWalletRecordLogic extends BaseLogic
|
||||
'wallet_after' => $walletAfter,
|
||||
'remark' => $remark,
|
||||
'user_id' => $adminId,
|
||||
'total_draw_count' => 0,
|
||||
'paid_draw_count' => 0,
|
||||
'free_draw_count' => 0,
|
||||
'total_ticket_count' => 0,
|
||||
'paid_ticket_count' => 0,
|
||||
'free_ticket_count' => 0,
|
||||
];
|
||||
|
||||
return $this->model->create($record);
|
||||
|
||||
@@ -28,9 +28,9 @@ use app\dice\model\lottery_config\DiceLotteryConfig;
|
||||
* @property $t3_wight T3池权重
|
||||
* @property $t4_wight T4池权重
|
||||
* @property $t5_wight T5池权重
|
||||
* @property $total_draw_count 总抽奖次数
|
||||
* @property $paid_draw_count 购买抽奖次数
|
||||
* @property $free_draw_count 赠送抽奖次数
|
||||
* @property $total_ticket_count 总抽奖次数
|
||||
* @property $paid_ticket_count 购买抽奖次数
|
||||
* @property $free_ticket_count 赠送抽奖次数
|
||||
* @property $created_at 创建时间
|
||||
* @property $updated_at 更新时间
|
||||
* @property $deleted_at 删除时间
|
||||
|
||||
@@ -18,9 +18,9 @@ use think\model\relation\BelongsTo;
|
||||
* @property $id ID
|
||||
* @property $player_id 玩家id
|
||||
* @property $use_coins 消耗硬币
|
||||
* @property $total_draw_count 总抽奖次数
|
||||
* @property $paid_draw_count 购买抽奖次数
|
||||
* @property $free_draw_count 赠送抽奖次数
|
||||
* @property $total_ticket_count 总抽奖次数
|
||||
* @property $paid_ticket_count 购买抽奖次数
|
||||
* @property $free_ticket_count 赠送抽奖次数
|
||||
* @property $remark 备注
|
||||
* @property $create_time 创建时间
|
||||
* @property $update_time 修改时间
|
||||
@@ -79,51 +79,51 @@ class DicePlayerTicketRecord extends BaseModel
|
||||
}
|
||||
}
|
||||
|
||||
/** 总抽奖次数下限 */
|
||||
public function searchTotalDrawCountMinAttr($query, $value)
|
||||
/** 总抽奖次数(total_ticket_count)下限 */
|
||||
public function searchTotalTicketCountMinAttr($query, $value)
|
||||
{
|
||||
if ($value !== '' && $value !== null) {
|
||||
$query->where('total_draw_count', '>=', $value);
|
||||
$query->where('total_ticket_count', '>=', $value);
|
||||
}
|
||||
}
|
||||
|
||||
/** 总抽奖次数上限 */
|
||||
public function searchTotalDrawCountMaxAttr($query, $value)
|
||||
/** 总抽奖次数(total_ticket_count)上限 */
|
||||
public function searchTotalTicketCountMaxAttr($query, $value)
|
||||
{
|
||||
if ($value !== '' && $value !== null) {
|
||||
$query->where('total_draw_count', '<=', $value);
|
||||
$query->where('total_ticket_count', '<=', $value);
|
||||
}
|
||||
}
|
||||
|
||||
/** 购买抽奖次数下限 */
|
||||
public function searchPaidDrawCountMinAttr($query, $value)
|
||||
/** 购买抽奖次数(paid_ticket_count)下限 */
|
||||
public function searchPaidTicketCountMinAttr($query, $value)
|
||||
{
|
||||
if ($value !== '' && $value !== null) {
|
||||
$query->where('paid_draw_count', '>=', $value);
|
||||
$query->where('paid_ticket_count', '>=', $value);
|
||||
}
|
||||
}
|
||||
|
||||
/** 购买抽奖次数上限 */
|
||||
public function searchPaidDrawCountMaxAttr($query, $value)
|
||||
/** 购买抽奖次数(paid_ticket_count)上限 */
|
||||
public function searchPaidTicketCountMaxAttr($query, $value)
|
||||
{
|
||||
if ($value !== '' && $value !== null) {
|
||||
$query->where('paid_draw_count', '<=', $value);
|
||||
$query->where('paid_ticket_count', '<=', $value);
|
||||
}
|
||||
}
|
||||
|
||||
/** 赠送抽奖次数下限 */
|
||||
public function searchFreeDrawCountMinAttr($query, $value)
|
||||
/** 赠送抽奖次数(free_ticket_count)下限 */
|
||||
public function searchFreeTicketCountMinAttr($query, $value)
|
||||
{
|
||||
if ($value !== '' && $value !== null) {
|
||||
$query->where('free_draw_count', '>=', $value);
|
||||
$query->where('free_ticket_count', '>=', $value);
|
||||
}
|
||||
}
|
||||
|
||||
/** 赠送抽奖次数上限 */
|
||||
public function searchFreeDrawCountMaxAttr($query, $value)
|
||||
/** 赠送抽奖次数(free_ticket_count)上限 */
|
||||
public function searchFreeTicketCountMaxAttr($query, $value)
|
||||
{
|
||||
if ($value !== '' && $value !== null) {
|
||||
$query->where('free_draw_count', '<=', $value);
|
||||
$query->where('free_ticket_count', '<=', $value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@ use think\model\relation\BelongsTo;
|
||||
* @property $type 类型:0=充值 1=提现 2=购买抽奖次数
|
||||
* @property $wallet_before 钱包操作前
|
||||
* @property $wallet_after 钱包操作后
|
||||
* @property $total_draw_count 总抽奖次数
|
||||
* @property $paid_draw_count 购买抽奖次数
|
||||
* @property $free_draw_count 赠送抽奖次数
|
||||
* @property $total_ticket_count 总抽奖次数
|
||||
* @property $paid_ticket_count 购买抽奖次数
|
||||
* @property $free_ticket_count 赠送抽奖次数
|
||||
* @property $remark 备注
|
||||
* @property $user_id 操作管理员id(type 3/4 时记录)
|
||||
* @property $create_time 创建时间
|
||||
|
||||
@@ -19,9 +19,9 @@ class DicePlayerTicketRecordValidate extends BaseValidate
|
||||
protected $rule = [
|
||||
'player_id' => 'require',
|
||||
'use_coins' => 'require',
|
||||
'total_draw_count' => 'require',
|
||||
'paid_draw_count' => 'require',
|
||||
'free_draw_count' => 'require',
|
||||
'total_ticket_count' => 'require',
|
||||
'paid_ticket_count' => 'require',
|
||||
'free_ticket_count' => 'require',
|
||||
'remark' => 'require',
|
||||
];
|
||||
|
||||
@@ -31,9 +31,9 @@ class DicePlayerTicketRecordValidate extends BaseValidate
|
||||
protected $message = [
|
||||
'player_id' => '玩家id必须填写',
|
||||
'use_coins' => '消耗硬币必须填写',
|
||||
'total_draw_count' => '总抽奖次数必须填写',
|
||||
'paid_draw_count' => '购买抽奖次数必须填写',
|
||||
'free_draw_count' => '赠送抽奖次数必须填写',
|
||||
'total_ticket_count' => '总抽奖次数必须填写',
|
||||
'paid_ticket_count' => '购买抽奖次数必须填写',
|
||||
'free_ticket_count' => '赠送抽奖次数必须填写',
|
||||
'remark' => '备注必须填写',
|
||||
];
|
||||
|
||||
@@ -44,17 +44,17 @@ class DicePlayerTicketRecordValidate extends BaseValidate
|
||||
'save' => [
|
||||
'player_id',
|
||||
'use_coins',
|
||||
'total_draw_count',
|
||||
'paid_draw_count',
|
||||
'free_draw_count',
|
||||
'total_ticket_count',
|
||||
'paid_ticket_count',
|
||||
'free_ticket_count',
|
||||
'remark',
|
||||
],
|
||||
'update' => [
|
||||
'player_id',
|
||||
'use_coins',
|
||||
'total_draw_count',
|
||||
'paid_draw_count',
|
||||
'free_draw_count',
|
||||
'total_ticket_count',
|
||||
'paid_ticket_count',
|
||||
'free_ticket_count',
|
||||
'remark',
|
||||
],
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user