将项目中所有total_draw_count字段重构为total_ticket_count字段

将项目中所有paid_draw_count字段重构为paid_ticket_count字段
将项目中所有free_draw_count字段重构为free_ticket_count字段
This commit is contained in:
2026-03-05 14:15:32 +08:00
parent 5ab16243bd
commit e5f83846b3
16 changed files with 134 additions and 134 deletions

View File

@@ -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)) {

View File

@@ -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,
];
}
}

View File

@@ -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',
]);
}

View File

@@ -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) {

View File

@@ -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', ''],
]);

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -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 删除时间

View File

@@ -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);
}
}

View File

@@ -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 操作管理员idtype 3/4 时记录)
* @property $create_time 创建时间

View File

@@ -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',
],
];