将项目中所有total_draw_count字段重构为total_ticket_count字段
将项目中所有paid_draw_count字段重构为paid_ticket_count字段 将项目中所有free_draw_count字段重构为free_ticket_count字段
This commit is contained in:
@@ -169,9 +169,9 @@
|
|||||||
{ prop: 't3_wight', label: 'T3池权重', width: 100, formatter: weightFormatter('t3_wight') },
|
{ prop: 't3_wight', label: 'T3池权重', width: 100, formatter: weightFormatter('t3_wight') },
|
||||||
{ prop: 't4_wight', label: 'T4池权重', width: 100, formatter: weightFormatter('t4_wight') },
|
{ prop: 't4_wight', label: 'T4池权重', width: 100, formatter: weightFormatter('t4_wight') },
|
||||||
{ prop: 't5_wight', label: 'T5池权重', width: 100, formatter: weightFormatter('t5_wight') },
|
{ prop: 't5_wight', label: 'T5池权重', width: 100, formatter: weightFormatter('t5_wight') },
|
||||||
{ prop: 'total_draw_count', label: '总抽奖次数' },
|
{ prop: 'total_ticket_count', label: '总抽奖次数' },
|
||||||
{ prop: 'paid_draw_count', label: '购买抽奖次数' },
|
{ prop: 'paid_ticket_count', label: '购买抽奖次数' },
|
||||||
{ prop: 'free_draw_count', label: '赠送抽奖次数' },
|
{ prop: 'free_ticket_count', label: '赠送抽奖次数' },
|
||||||
{ prop: 'created_at', label: '创建时间' },
|
{ prop: 'created_at', label: '创建时间' },
|
||||||
{ prop: 'updated_at', label: '更新时间' },
|
{ prop: 'updated_at', label: '更新时间' },
|
||||||
{ prop: 'operation', label: '操作', width: 120, fixed: 'right', useSlot: true }
|
{ prop: 'operation', label: '操作', width: 120, fixed: 'right', useSlot: true }
|
||||||
|
|||||||
@@ -83,12 +83,12 @@
|
|||||||
username: undefined,
|
username: undefined,
|
||||||
use_coins_min: undefined,
|
use_coins_min: undefined,
|
||||||
use_coins_max: undefined,
|
use_coins_max: undefined,
|
||||||
total_draw_count_min: undefined,
|
total_ticket_count_min: undefined,
|
||||||
total_draw_count_max: undefined,
|
total_ticket_count_max: undefined,
|
||||||
paid_draw_count_min: undefined,
|
paid_ticket_count_min: undefined,
|
||||||
paid_draw_count_max: undefined,
|
paid_ticket_count_max: undefined,
|
||||||
free_draw_count_min: undefined,
|
free_ticket_count_min: undefined,
|
||||||
free_draw_count_max: undefined,
|
free_ticket_count_max: undefined,
|
||||||
create_time_min: undefined,
|
create_time_min: undefined,
|
||||||
create_time_max: undefined,
|
create_time_max: undefined,
|
||||||
create_time: undefined as [string, string] | undefined
|
create_time: undefined as [string, string] | undefined
|
||||||
@@ -131,9 +131,9 @@
|
|||||||
{ prop: 'id', label: 'ID', width: 80 },
|
{ prop: 'id', label: 'ID', width: 80 },
|
||||||
{ prop: 'player_id', label: '玩家用户名', formatter: (row: Record<string, any>) => usernameFormatter(row) },
|
{ prop: 'player_id', label: '玩家用户名', formatter: (row: Record<string, any>) => usernameFormatter(row) },
|
||||||
{ prop: 'use_coins', label: '消耗硬币' },
|
{ prop: 'use_coins', label: '消耗硬币' },
|
||||||
{ prop: 'total_draw_count', label: '总抽奖次数' },
|
{ prop: 'total_ticket_count', label: '总抽奖次数' },
|
||||||
{ prop: 'paid_draw_count', label: '购买抽奖次数' },
|
{ prop: 'paid_ticket_count', label: '购买抽奖次数' },
|
||||||
{ prop: 'free_draw_count', label: '赠送抽奖次数' },
|
{ prop: 'free_ticket_count', label: '赠送抽奖次数' },
|
||||||
{ prop: 'remark', label: '备注', width: 100, showOverflowTooltip: true },
|
{ prop: 'remark', label: '备注', width: 100, showOverflowTooltip: true },
|
||||||
{ prop: 'create_time', label: '创建时间', width: 170 },
|
{ prop: 'create_time', label: '创建时间', width: 170 },
|
||||||
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
|
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
|
||||||
|
|||||||
@@ -28,25 +28,25 @@
|
|||||||
<el-form-item label="消耗硬币" prop="use_coins">
|
<el-form-item label="消耗硬币" prop="use_coins">
|
||||||
<el-input-number v-model="formData.use_coins" placeholder="请输入消耗硬币" :min="0" />
|
<el-input-number v-model="formData.use_coins" placeholder="请输入消耗硬币" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="购买抽奖次数" prop="paid_draw_count">
|
<el-form-item label="购买抽奖次数" prop="paid_ticket_count">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="formData.paid_draw_count"
|
v-model="formData.paid_ticket_count"
|
||||||
placeholder="请输入购买抽奖次数"
|
placeholder="请输入购买抽奖次数"
|
||||||
:min="0"
|
:min="0"
|
||||||
@change="onDrawCountChange"
|
@change="onTicketCountChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="赠送抽奖次数" prop="free_draw_count">
|
<el-form-item label="赠送抽奖次数" prop="free_ticket_count">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="formData.free_draw_count"
|
v-model="formData.free_ticket_count"
|
||||||
placeholder="请输入赠送抽奖次数"
|
placeholder="请输入赠送抽奖次数"
|
||||||
:min="0"
|
:min="0"
|
||||||
@change="onDrawCountChange"
|
@change="onTicketCountChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="总抽奖次数" prop="total_draw_count">
|
<el-form-item label="总抽奖次数" prop="total_ticket_count">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
:model-value="totalDrawCountComputed"
|
:model-value="totalTicketCountComputed"
|
||||||
placeholder="自动求和"
|
placeholder="自动求和"
|
||||||
:min="0"
|
:min="0"
|
||||||
disabled
|
disabled
|
||||||
@@ -110,23 +110,23 @@
|
|||||||
const rules = reactive<FormRules>({
|
const rules = reactive<FormRules>({
|
||||||
player_id: [{ required: true, message: '请选择玩家', trigger: 'change' }],
|
player_id: [{ required: true, message: '请选择玩家', trigger: 'change' }],
|
||||||
use_coins: [{ required: true, message: '消耗硬币必需填写', trigger: 'blur' }],
|
use_coins: [{ required: true, message: '消耗硬币必需填写', trigger: 'blur' }],
|
||||||
paid_draw_count: [{ required: true, message: '购买抽奖次数必需填写', trigger: 'blur' }],
|
paid_ticket_count: [{ required: true, message: '购买抽奖次数必需填写', trigger: 'blur' }],
|
||||||
free_draw_count: [{ required: true, message: '赠送抽奖次数必需填写', trigger: 'blur' }],
|
free_ticket_count: [{ required: true, message: '赠送抽奖次数必需填写', trigger: 'blur' }],
|
||||||
remark: [{ required: true, message: '备注必需填写', trigger: 'blur' }]
|
remark: [{ required: true, message: '备注必需填写', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
|
|
||||||
/** 玩家下拉选项(id、username) */
|
/** 玩家下拉选项(id、username) */
|
||||||
const playerOptions = ref<Array<{ id: number; username: string }>>([])
|
const playerOptions = ref<Array<{ id: number; username: string }>>([])
|
||||||
|
|
||||||
/** 总抽奖次数 = 购买抽奖次数 + 赠送抽奖次数(只读展示) */
|
/** total_ticket_count = paid_ticket_count + free_ticket_count(只读展示) */
|
||||||
const totalDrawCountComputed = computed(() => {
|
const totalTicketCountComputed = computed(() => {
|
||||||
const paid = Number(formData.paid_draw_count) || 0
|
const paid = Number(formData.paid_ticket_count) || 0
|
||||||
const free = Number(formData.free_draw_count) || 0
|
const free = Number(formData.free_ticket_count) || 0
|
||||||
return paid + free
|
return paid + free
|
||||||
})
|
})
|
||||||
|
|
||||||
function onDrawCountChange() {
|
function onTicketCountChange() {
|
||||||
formData.total_draw_count = totalDrawCountComputed.value
|
formData.total_ticket_count = totalTicketCountComputed.value
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -136,9 +136,9 @@
|
|||||||
id: null,
|
id: null,
|
||||||
player_id: null,
|
player_id: null,
|
||||||
use_coins: null as number | null,
|
use_coins: null as number | null,
|
||||||
total_draw_count: null as number | null,
|
total_ticket_count: null as number | null,
|
||||||
paid_draw_count: null as number | null,
|
paid_ticket_count: null as number | null,
|
||||||
free_draw_count: null as number | null,
|
free_ticket_count: null as number | null,
|
||||||
remark: ''
|
remark: ''
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,9 +188,9 @@
|
|||||||
'id',
|
'id',
|
||||||
'player_id',
|
'player_id',
|
||||||
'use_coins',
|
'use_coins',
|
||||||
'total_draw_count',
|
'total_ticket_count',
|
||||||
'paid_draw_count',
|
'paid_ticket_count',
|
||||||
'free_draw_count',
|
'free_ticket_count',
|
||||||
'remark'
|
'remark'
|
||||||
]
|
]
|
||||||
keys.forEach((key) => {
|
keys.forEach((key) => {
|
||||||
@@ -210,12 +210,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提交表单(总抽奖次数由购买+赠送自动求和,提交前写入)
|
* 提交表单(total_ticket_count 由 paid_ticket_count + free_ticket_count 自动求和,提交前写入)
|
||||||
*/
|
*/
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
if (!formRef.value) return
|
if (!formRef.value) return
|
||||||
try {
|
try {
|
||||||
formData.total_draw_count = totalDrawCountComputed.value
|
formData.total_ticket_count = totalTicketCountComputed.value
|
||||||
await formRef.value.validate()
|
await formRef.value.validate()
|
||||||
if (props.dialogType === 'add') {
|
if (props.dialogType === 'add') {
|
||||||
const rest = { ...formData } as Record<string, unknown>
|
const rest = { ...formData } as Record<string, unknown>
|
||||||
|
|||||||
@@ -35,10 +35,10 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-bind="setSpan(6)">
|
<el-col v-bind="setSpan(6)">
|
||||||
<el-form-item label="总抽奖次数" prop="total_draw_count_min">
|
<el-form-item label="总抽奖次数" prop="total_ticket_count_min">
|
||||||
<div class="range-wrap">
|
<div class="range-wrap">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="formData.total_draw_count_min"
|
v-model="formData.total_ticket_count_min"
|
||||||
placeholder="最小"
|
placeholder="最小"
|
||||||
:min="0"
|
:min="0"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
/>
|
/>
|
||||||
<span class="range-sep">至</span>
|
<span class="range-sep">至</span>
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="formData.total_draw_count_max"
|
v-model="formData.total_ticket_count_max"
|
||||||
placeholder="最大"
|
placeholder="最大"
|
||||||
:min="0"
|
:min="0"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
@@ -56,10 +56,10 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-bind="setSpan(6)">
|
<el-col v-bind="setSpan(6)">
|
||||||
<el-form-item label="购买抽奖次数" prop="paid_draw_count_min">
|
<el-form-item label="购买抽奖次数" prop="paid_ticket_count_min">
|
||||||
<div class="range-wrap">
|
<div class="range-wrap">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="formData.paid_draw_count_min"
|
v-model="formData.paid_ticket_count_min"
|
||||||
placeholder="最小"
|
placeholder="最小"
|
||||||
:min="0"
|
:min="0"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
/>
|
/>
|
||||||
<span class="range-sep">至</span>
|
<span class="range-sep">至</span>
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="formData.paid_draw_count_max"
|
v-model="formData.paid_ticket_count_max"
|
||||||
placeholder="最大"
|
placeholder="最大"
|
||||||
:min="0"
|
:min="0"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
@@ -77,10 +77,10 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-bind="setSpan(6)">
|
<el-col v-bind="setSpan(6)">
|
||||||
<el-form-item label="赠送抽奖次数" prop="free_draw_count_min">
|
<el-form-item label="赠送抽奖次数" prop="free_ticket_count_min">
|
||||||
<div class="range-wrap">
|
<div class="range-wrap">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="formData.free_draw_count_min"
|
v-model="formData.free_ticket_count_min"
|
||||||
placeholder="最小"
|
placeholder="最小"
|
||||||
:min="0"
|
:min="0"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
/>
|
/>
|
||||||
<span class="range-sep">至</span>
|
<span class="range-sep">至</span>
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="formData.free_draw_count_max"
|
v-model="formData.free_ticket_count_max"
|
||||||
placeholder="最大"
|
placeholder="最大"
|
||||||
:min="0"
|
:min="0"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
|
|||||||
@@ -196,9 +196,9 @@
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
showOverflowTooltip: true
|
showOverflowTooltip: true
|
||||||
},
|
},
|
||||||
{ prop: 'total_draw_count', label: '总抽奖次数', align: 'center' },
|
{ prop: 'total_ticket_count', label: '总抽奖次数', align: 'center' },
|
||||||
{ prop: 'paid_draw_count', label: '购买抽奖次数', align: 'center' },
|
{ prop: 'paid_ticket_count', label: '购买抽奖次数', align: 'center' },
|
||||||
{ prop: 'free_draw_count', label: '赠送抽奖次数', align: 'center' },
|
{ prop: 'free_ticket_count', label: '赠送抽奖次数', align: 'center' },
|
||||||
{ prop: 'create_time', label: '创建时间', width: 170, align: 'center' },
|
{ prop: 'create_time', label: '创建时间', width: 170, align: 'center' },
|
||||||
{
|
{
|
||||||
prop: 'operation',
|
prop: 'operation',
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ class UserController extends OpenController
|
|||||||
* 获取当前用户信息
|
* 获取当前用户信息
|
||||||
* GET /api/user/info
|
* GET /api/user/info
|
||||||
* header: user-token(由 CheckUserTokenMiddleware 校验并注入 request->user_id)
|
* 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
|
public function info(Request $request): Response
|
||||||
{
|
{
|
||||||
@@ -88,7 +88,7 @@ class UserController extends OpenController
|
|||||||
if (empty($user)) {
|
if (empty($user)) {
|
||||||
return $this->fail('用户不存在', ReturnCode::NOT_FOUND);
|
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 = [];
|
$info = [];
|
||||||
foreach ($fields as $field) {
|
foreach ($fields as $field) {
|
||||||
if (array_key_exists($field, $user)) {
|
if (array_key_exists($field, $user)) {
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class GameLogic
|
|||||||
* 购买抽奖券
|
* 购买抽奖券
|
||||||
* @param int $playerId 玩家ID(即 user_id)
|
* @param int $playerId 玩家ID(即 user_id)
|
||||||
* @param int $count 购买档位:1 / 5 / 10
|
* @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
|
public function buyLotteryTickets(int $playerId, int $count): array
|
||||||
{
|
{
|
||||||
@@ -52,9 +52,9 @@ class GameLogic
|
|||||||
}
|
}
|
||||||
|
|
||||||
$coinAfter = $coinBefore - $cost;
|
$coinAfter = $coinBefore - $cost;
|
||||||
$totalBefore = (int) ($player->total_draw_count ?? 0);
|
$totalBefore = (int) ($player->total_ticket_count ?? 0);
|
||||||
$paidBefore = (int) ($player->paid_draw_count ?? 0);
|
$paidBefore = (int) ($player->paid_ticket_count ?? 0);
|
||||||
$freeBefore = (int) ($player->free_draw_count ?? 0);
|
$freeBefore = (int) ($player->free_ticket_count ?? 0);
|
||||||
|
|
||||||
Db::transaction(function () use (
|
Db::transaction(function () use (
|
||||||
$player,
|
$player,
|
||||||
@@ -70,9 +70,9 @@ class GameLogic
|
|||||||
$freeBefore
|
$freeBefore
|
||||||
) {
|
) {
|
||||||
$player->coin = $coinAfter;
|
$player->coin = $coinAfter;
|
||||||
$player->total_draw_count = $totalBefore + $addTotal;
|
$player->total_ticket_count = $totalBefore + $addTotal;
|
||||||
$player->paid_draw_count = $paidBefore + $addPaid;
|
$player->paid_ticket_count = $paidBefore + $addPaid;
|
||||||
$player->free_draw_count = $freeBefore + $addFree;
|
$player->free_ticket_count = $freeBefore + $addFree;
|
||||||
$player->save();
|
$player->save();
|
||||||
|
|
||||||
// 钱包流水记录
|
// 钱包流水记录
|
||||||
@@ -82,9 +82,9 @@ class GameLogic
|
|||||||
'type' => self::WALLET_TYPE_BUY_DRAW,
|
'type' => self::WALLET_TYPE_BUY_DRAW,
|
||||||
'wallet_before' => $coinBefore,
|
'wallet_before' => $coinBefore,
|
||||||
'wallet_after' => $coinAfter,
|
'wallet_after' => $coinAfter,
|
||||||
'total_draw_count' => $addTotal,
|
'total_ticket_count' => $addTotal,
|
||||||
'paid_draw_count' => $addPaid,
|
'paid_ticket_count' => $addPaid,
|
||||||
'free_draw_count' => $addFree,
|
'free_ticket_count' => $addFree,
|
||||||
'remark' => "购买抽奖券{$addTotal}次(付费{$addPaid}次+赠送{$addFree}次)",
|
'remark' => "购买抽奖券{$addTotal}次(付费{$addPaid}次+赠送{$addFree}次)",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -92,9 +92,9 @@ class GameLogic
|
|||||||
DicePlayerTicketRecord::create([
|
DicePlayerTicketRecord::create([
|
||||||
'player_id' => $playerId,
|
'player_id' => $playerId,
|
||||||
'use_coins' => $cost,
|
'use_coins' => $cost,
|
||||||
'total_draw_count' => $addTotal,
|
'total_ticket_count' => $addTotal,
|
||||||
'paid_draw_count' => $addPaid,
|
'paid_ticket_count' => $addPaid,
|
||||||
'free_draw_count' => $addFree,
|
'free_ticket_count' => $addFree,
|
||||||
'remark' => "购买抽奖券{$addTotal}次(付费{$addPaid}次+赠送{$addFree}次)",
|
'remark' => "购买抽奖券{$addTotal}次(付费{$addPaid}次+赠送{$addFree}次)",
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
@@ -105,9 +105,9 @@ class GameLogic
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'coin' => (float) $updated->coin,
|
'coin' => (float) $updated->coin,
|
||||||
'total_draw_count' => (int) $updated->total_draw_count,
|
'total_ticket_count' => (int) $updated->total_ticket_count,
|
||||||
'paid_draw_count' => (int) $updated->paid_draw_count,
|
'paid_ticket_count' => (int) $updated->paid_ticket_count,
|
||||||
'free_draw_count' => (int) $updated->free_draw_count,
|
'free_ticket_count' => (int) $updated->free_ticket_count,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,8 +54,8 @@ class PlayStartLogic
|
|||||||
throw new ApiException('当前玩家余额小于DiceRewardConfigMin.real_ev+100无法继续游戏');
|
throw new ApiException('当前玩家余额小于DiceRewardConfigMin.real_ev+100无法继续游戏');
|
||||||
}
|
}
|
||||||
|
|
||||||
$paid = (int) ($player->paid_draw_count ?? 0);
|
$paid = (int) ($player->paid_ticket_count ?? 0);
|
||||||
$free = (int) ($player->free_draw_count ?? 0);
|
$free = (int) ($player->free_ticket_count ?? 0);
|
||||||
if ($paid + $free <= 0) {
|
if ($paid + $free <= 0) {
|
||||||
throw new ApiException('抽奖券不足');
|
throw new ApiException('抽奖券不足');
|
||||||
}
|
}
|
||||||
@@ -125,21 +125,21 @@ class PlayStartLogic
|
|||||||
$coinBefore = (float) $p->coin;
|
$coinBefore = (float) $p->coin;
|
||||||
$coinAfter = $coinBefore + $winCoin;
|
$coinAfter = $coinBefore + $winCoin;
|
||||||
$p->coin = $coinAfter;
|
$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) {
|
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 {
|
} 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),并记录抽奖券获取记录
|
// 若本局中奖档位为 T5,则额外赠送 1 次免费抽奖次数(总次数也 +1),并记录抽奖券获取记录
|
||||||
if ($isTierT5) {
|
if ($isTierT5) {
|
||||||
$p->free_draw_count = (int) $p->free_draw_count + 1;
|
$p->free_ticket_count = (int) $p->free_ticket_count + 1;
|
||||||
$p->total_draw_count = (int) $p->total_draw_count + 1;
|
$p->total_ticket_count = (int) $p->total_ticket_count + 1;
|
||||||
|
|
||||||
DicePlayerTicketRecord::create([
|
DicePlayerTicketRecord::create([
|
||||||
'player_id' => $playerId,
|
'player_id' => $playerId,
|
||||||
'free_draw_count' => 1,
|
'free_ticket_count' => 1,
|
||||||
'remark' => '中奖结果为T5',
|
'remark' => '中奖结果为T5',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ class LotteryService
|
|||||||
return $tiers[4];
|
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
|
public static function drawTicketType(int $paid, int $free): int
|
||||||
{
|
{
|
||||||
if ($paid <= 0 && $free <= 0) {
|
if ($paid <= 0 && $free <= 0) {
|
||||||
|
|||||||
@@ -41,12 +41,12 @@ class DicePlayerTicketRecordController extends BaseController
|
|||||||
['username', ''],
|
['username', ''],
|
||||||
['use_coins_min', ''],
|
['use_coins_min', ''],
|
||||||
['use_coins_max', ''],
|
['use_coins_max', ''],
|
||||||
['total_draw_count_min', ''],
|
['total_ticket_count_min', ''],
|
||||||
['total_draw_count_max', ''],
|
['total_ticket_count_max', ''],
|
||||||
['paid_draw_count_min', ''],
|
['paid_ticket_count_min', ''],
|
||||||
['paid_draw_count_max', ''],
|
['paid_ticket_count_max', ''],
|
||||||
['free_draw_count_min', ''],
|
['free_ticket_count_min', ''],
|
||||||
['free_draw_count_max', ''],
|
['free_ticket_count_max', ''],
|
||||||
['create_time_min', ''],
|
['create_time_min', ''],
|
||||||
['create_time_max', ''],
|
['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
|
public function add(array $data): mixed
|
||||||
{
|
{
|
||||||
$data = $this->fillTotalDrawCount($data);
|
$data = $this->fillTotalTicketCount($data);
|
||||||
return parent::add($data);
|
return parent::add($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改前:总抽奖次数 = 购买抽奖次数 + 赠送抽奖次数
|
* 修改前:total_ticket_count = paid_ticket_count + free_ticket_count
|
||||||
*/
|
*/
|
||||||
public function edit($id, array $data): mixed
|
public function edit($id, array $data): mixed
|
||||||
{
|
{
|
||||||
$data = $this->fillTotalDrawCount($data);
|
$data = $this->fillTotalTicketCount($data);
|
||||||
return parent::edit($id, $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;
|
$paid = isset($data['paid_ticket_count']) ? (int) $data['paid_ticket_count'] : 0;
|
||||||
$free = isset($data['free_draw_count']) ? (int) $data['free_draw_count'] : 0;
|
$free = isset($data['free_ticket_count']) ? (int) $data['free_ticket_count'] : 0;
|
||||||
$data['total_draw_count'] = $paid + $free;
|
$data['total_ticket_count'] = $paid + $free;
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,9 +29,9 @@ class DicePlayerWalletRecordLogic extends BaseLogic
|
|||||||
*/
|
*/
|
||||||
public function add(array $data): mixed
|
public function add(array $data): mixed
|
||||||
{
|
{
|
||||||
$data['total_draw_count'] = $data['total_draw_count'] ?? 0;
|
$data['total_ticket_count'] = $data['total_ticket_count'] ?? 0;
|
||||||
$data['paid_draw_count'] = $data['paid_draw_count'] ?? 0;
|
$data['paid_ticket_count'] = $data['paid_ticket_count'] ?? 0;
|
||||||
$data['free_draw_count'] = $data['free_draw_count'] ?? 0;
|
$data['free_ticket_count'] = $data['free_ticket_count'] ?? 0;
|
||||||
return parent::add($data);
|
return parent::add($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,9 +81,9 @@ class DicePlayerWalletRecordLogic extends BaseLogic
|
|||||||
'wallet_after' => $walletAfter,
|
'wallet_after' => $walletAfter,
|
||||||
'remark' => $remark,
|
'remark' => $remark,
|
||||||
'user_id' => $adminId,
|
'user_id' => $adminId,
|
||||||
'total_draw_count' => 0,
|
'total_ticket_count' => 0,
|
||||||
'paid_draw_count' => 0,
|
'paid_ticket_count' => 0,
|
||||||
'free_draw_count' => 0,
|
'free_ticket_count' => 0,
|
||||||
];
|
];
|
||||||
|
|
||||||
return $this->model->create($record);
|
return $this->model->create($record);
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ use app\dice\model\lottery_config\DiceLotteryConfig;
|
|||||||
* @property $t3_wight T3池权重
|
* @property $t3_wight T3池权重
|
||||||
* @property $t4_wight T4池权重
|
* @property $t4_wight T4池权重
|
||||||
* @property $t5_wight T5池权重
|
* @property $t5_wight T5池权重
|
||||||
* @property $total_draw_count 总抽奖次数
|
* @property $total_ticket_count 总抽奖次数
|
||||||
* @property $paid_draw_count 购买抽奖次数
|
* @property $paid_ticket_count 购买抽奖次数
|
||||||
* @property $free_draw_count 赠送抽奖次数
|
* @property $free_ticket_count 赠送抽奖次数
|
||||||
* @property $created_at 创建时间
|
* @property $created_at 创建时间
|
||||||
* @property $updated_at 更新时间
|
* @property $updated_at 更新时间
|
||||||
* @property $deleted_at 删除时间
|
* @property $deleted_at 删除时间
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ use think\model\relation\BelongsTo;
|
|||||||
* @property $id ID
|
* @property $id ID
|
||||||
* @property $player_id 玩家id
|
* @property $player_id 玩家id
|
||||||
* @property $use_coins 消耗硬币
|
* @property $use_coins 消耗硬币
|
||||||
* @property $total_draw_count 总抽奖次数
|
* @property $total_ticket_count 总抽奖次数
|
||||||
* @property $paid_draw_count 购买抽奖次数
|
* @property $paid_ticket_count 购买抽奖次数
|
||||||
* @property $free_draw_count 赠送抽奖次数
|
* @property $free_ticket_count 赠送抽奖次数
|
||||||
* @property $remark 备注
|
* @property $remark 备注
|
||||||
* @property $create_time 创建时间
|
* @property $create_time 创建时间
|
||||||
* @property $update_time 修改时间
|
* @property $update_time 修改时间
|
||||||
@@ -79,51 +79,51 @@ class DicePlayerTicketRecord extends BaseModel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 总抽奖次数下限 */
|
/** 总抽奖次数(total_ticket_count)下限 */
|
||||||
public function searchTotalDrawCountMinAttr($query, $value)
|
public function searchTotalTicketCountMinAttr($query, $value)
|
||||||
{
|
{
|
||||||
if ($value !== '' && $value !== null) {
|
if ($value !== '' && $value !== null) {
|
||||||
$query->where('total_draw_count', '>=', $value);
|
$query->where('total_ticket_count', '>=', $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 总抽奖次数上限 */
|
/** 总抽奖次数(total_ticket_count)上限 */
|
||||||
public function searchTotalDrawCountMaxAttr($query, $value)
|
public function searchTotalTicketCountMaxAttr($query, $value)
|
||||||
{
|
{
|
||||||
if ($value !== '' && $value !== null) {
|
if ($value !== '' && $value !== null) {
|
||||||
$query->where('total_draw_count', '<=', $value);
|
$query->where('total_ticket_count', '<=', $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 购买抽奖次数下限 */
|
/** 购买抽奖次数(paid_ticket_count)下限 */
|
||||||
public function searchPaidDrawCountMinAttr($query, $value)
|
public function searchPaidTicketCountMinAttr($query, $value)
|
||||||
{
|
{
|
||||||
if ($value !== '' && $value !== null) {
|
if ($value !== '' && $value !== null) {
|
||||||
$query->where('paid_draw_count', '>=', $value);
|
$query->where('paid_ticket_count', '>=', $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 购买抽奖次数上限 */
|
/** 购买抽奖次数(paid_ticket_count)上限 */
|
||||||
public function searchPaidDrawCountMaxAttr($query, $value)
|
public function searchPaidTicketCountMaxAttr($query, $value)
|
||||||
{
|
{
|
||||||
if ($value !== '' && $value !== null) {
|
if ($value !== '' && $value !== null) {
|
||||||
$query->where('paid_draw_count', '<=', $value);
|
$query->where('paid_ticket_count', '<=', $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 赠送抽奖次数下限 */
|
/** 赠送抽奖次数(free_ticket_count)下限 */
|
||||||
public function searchFreeDrawCountMinAttr($query, $value)
|
public function searchFreeTicketCountMinAttr($query, $value)
|
||||||
{
|
{
|
||||||
if ($value !== '' && $value !== null) {
|
if ($value !== '' && $value !== null) {
|
||||||
$query->where('free_draw_count', '>=', $value);
|
$query->where('free_ticket_count', '>=', $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 赠送抽奖次数上限 */
|
/** 赠送抽奖次数(free_ticket_count)上限 */
|
||||||
public function searchFreeDrawCountMaxAttr($query, $value)
|
public function searchFreeTicketCountMaxAttr($query, $value)
|
||||||
{
|
{
|
||||||
if ($value !== '' && $value !== null) {
|
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 $type 类型:0=充值 1=提现 2=购买抽奖次数
|
||||||
* @property $wallet_before 钱包操作前
|
* @property $wallet_before 钱包操作前
|
||||||
* @property $wallet_after 钱包操作后
|
* @property $wallet_after 钱包操作后
|
||||||
* @property $total_draw_count 总抽奖次数
|
* @property $total_ticket_count 总抽奖次数
|
||||||
* @property $paid_draw_count 购买抽奖次数
|
* @property $paid_ticket_count 购买抽奖次数
|
||||||
* @property $free_draw_count 赠送抽奖次数
|
* @property $free_ticket_count 赠送抽奖次数
|
||||||
* @property $remark 备注
|
* @property $remark 备注
|
||||||
* @property $user_id 操作管理员id(type 3/4 时记录)
|
* @property $user_id 操作管理员id(type 3/4 时记录)
|
||||||
* @property $create_time 创建时间
|
* @property $create_time 创建时间
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ class DicePlayerTicketRecordValidate extends BaseValidate
|
|||||||
protected $rule = [
|
protected $rule = [
|
||||||
'player_id' => 'require',
|
'player_id' => 'require',
|
||||||
'use_coins' => 'require',
|
'use_coins' => 'require',
|
||||||
'total_draw_count' => 'require',
|
'total_ticket_count' => 'require',
|
||||||
'paid_draw_count' => 'require',
|
'paid_ticket_count' => 'require',
|
||||||
'free_draw_count' => 'require',
|
'free_ticket_count' => 'require',
|
||||||
'remark' => 'require',
|
'remark' => 'require',
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -31,9 +31,9 @@ class DicePlayerTicketRecordValidate extends BaseValidate
|
|||||||
protected $message = [
|
protected $message = [
|
||||||
'player_id' => '玩家id必须填写',
|
'player_id' => '玩家id必须填写',
|
||||||
'use_coins' => '消耗硬币必须填写',
|
'use_coins' => '消耗硬币必须填写',
|
||||||
'total_draw_count' => '总抽奖次数必须填写',
|
'total_ticket_count' => '总抽奖次数必须填写',
|
||||||
'paid_draw_count' => '购买抽奖次数必须填写',
|
'paid_ticket_count' => '购买抽奖次数必须填写',
|
||||||
'free_draw_count' => '赠送抽奖次数必须填写',
|
'free_ticket_count' => '赠送抽奖次数必须填写',
|
||||||
'remark' => '备注必须填写',
|
'remark' => '备注必须填写',
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -44,17 +44,17 @@ class DicePlayerTicketRecordValidate extends BaseValidate
|
|||||||
'save' => [
|
'save' => [
|
||||||
'player_id',
|
'player_id',
|
||||||
'use_coins',
|
'use_coins',
|
||||||
'total_draw_count',
|
'total_ticket_count',
|
||||||
'paid_draw_count',
|
'paid_ticket_count',
|
||||||
'free_draw_count',
|
'free_ticket_count',
|
||||||
'remark',
|
'remark',
|
||||||
],
|
],
|
||||||
'update' => [
|
'update' => [
|
||||||
'player_id',
|
'player_id',
|
||||||
'use_coins',
|
'use_coins',
|
||||||
'total_draw_count',
|
'total_ticket_count',
|
||||||
'paid_draw_count',
|
'paid_ticket_count',
|
||||||
'free_draw_count',
|
'free_ticket_count',
|
||||||
'remark',
|
'remark',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user