第二阶段完善代理商激活码

This commit is contained in:
huangzhenpc
2025-02-12 10:45:49 +08:00
parent 46b14149c9
commit abfa783907
23 changed files with 2541 additions and 0 deletions

View File

@@ -0,0 +1,123 @@
{extend name="../../admin/view/main"}
{block name="button"}
<button class='layui-btn layui-btn-sm layui-btn-primary' data-modal='{:url("generate")}'>生成激活码</button>
{/block}
{block name="content"}
<div class="think-box-shadow">
<form class="layui-form layui-form-pane form-search" action="{:sysuri()}" onsubmit="return false" method="get" autocomplete="off">
<div class="layui-form-item layui-inline">
<label class="layui-form-label">激活码</label>
<div class="layui-input-inline">
<input name="code" value="{$get.code|default=''}" placeholder="请输入激活码" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">代理商</label>
<div class="layui-input-inline">
<select name='agent_id' lay-search class='layui-select'>
<option value=''>-- 全部 --</option>
{foreach $agents as $agent}
<option value='{$agent.id}' {if isset($get.agent_id) and $get.agent_id==$agent.id}selected{/if}>
{$agent.username} ({if $agent.level==1}一级代理{else}二级代理{/if})
</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">使用状态</label>
<div class="layui-input-inline">
<select name='is_used' lay-search class='layui-select'>
<option value=''>-- 全部 --</option>
<option value='0' {if isset($get.is_used) and $get.is_used=='0'}selected{/if}>未使用</option>
<option value='1' {if isset($get.is_used) and $get.is_used=='1'}selected{/if}>已使用</option>
</select>
</div>
</div>
<div class="layui-form-item layui-inline">
<button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button>
</div>
</form>
<table class="layui-table margin-top-10" lay-skin="line">
{notempty name='list'}
<thead>
<tr>
<th class='list-table-check-td think-checkbox'>
<label><input data-auto-none data-check-target='.list-check-box' type='checkbox'></label>
</th>
<th class='text-left'>激活码</th>
<th class='text-left'>有效天数</th>
<th class='text-left'>代理商</th>
<th class='text-left'>代理级别</th>
<th class='text-left'>销售价格</th>
<th class='text-left'>佣金</th>
<th class='text-left'>上级佣金</th>
<th class='text-left'>结算状态</th>
<th class='text-left'>使用状态</th>
<th class='text-left'>使用时间</th>
<th class='text-left'>使用者</th>
<th class='text-left'>生成时间</th>
<th></th>
</tr>
</thead>
{/notempty}
<tbody>
{foreach $list as $key=>$vo}
<tr>
<td class='list-table-check-td think-checkbox'>
<label><input class="list-check-box" value='{$vo.id}' type='checkbox'></label>
</td>
<td class='text-left'>{$vo.code}</td>
<td class='text-left'>{$vo.days} </td>
<td class='text-left'>{$vo.agent_name|default='--'}</td>
<td class='text-left'>
{if $vo.agent_level eq 1}
<span class="color-blue">一级代理</span>
{elseif $vo.agent_level eq 2}
<span class="color-green">二级代理</span>
{else}
--
{/if}
</td>
<td class='text-left'>{$vo.price|default='--'}</td>
<td class='text-left'>{$vo.commission|default='--'}</td>
<td class='text-left'>{$vo.parent_commission|default='--'}</td>
<td class='text-left'>
{if isset($vo.settle_status)}
{if $vo.settle_status eq 1}
<span class="color-blue">已结算</span>
{else}
<span class="color-red">未结算</span>
{/if}
{else}
--
{/if}
</td>
<td class='text-left'>
{if $vo.is_used eq 1}
<span class="color-red">已使用</span>
{else}
<span class="color-green">未使用</span>
{/if}
</td>
<td class='text-left'>{$vo.used_at|format_datetime|default='--'}</td>
<td class='text-left'>{$vo.used_by|default='--'}</td>
<td class='text-left'>{$vo.created_at|format_datetime}</td>
<td class='text-left'>
{if auth("removeCode")}
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要删除该激活码吗?" data-csrf="{:systoken('removeCode')}" data-action='{:url("removeCode")}' data-value="id#{$vo.id}"> </a>
{/if}
</td>
</tr>
{/foreach}
</tbody>
</table>
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
</div>
{/block}

View File

@@ -0,0 +1,75 @@
{extend name="../../admin/view/main"}
{block name="content"}
<div class="think-box-shadow">
<form class="layui-form layui-form-pane form-search" action="{:sysuri()}" onsubmit="return false" method="get" autocomplete="off">
<div class="layui-form-item layui-inline">
<label class="layui-form-label">账号邮箱</label>
<div class="layui-input-inline">
<input name="email" value="{$get.email|default=''}" placeholder="请输入账号邮箱" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">设备ID</label>
<div class="layui-input-inline">
<input name="used_by" value="{$get.used_by|default=''}" placeholder="请输入设备ID" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button>
</div>
</form>
<table class="layui-table margin-top-10" lay-skin="line">
{notempty name='list'}
<thead>
<tr>
<th class='text-left'>账号邮箱</th>
<th class='text-left'>设备ID</th>
<th class='text-left'>使用时间</th>
<th class='text-left'>注册时间</th>
<th class='text-left'>缓存状态</th>
<th class='text-left'>冷却状态</th>
<th class='text-left'>操作</th>
</tr>
</thead>
{/notempty}
<tbody>
{foreach $list as $key=>$vo}
<tr>
<td class='text-left'>{$vo.email}</td>
<td class='text-left'>{$vo.used_by}</td>
<td class='text-left'>{$vo.used_at|format_datetime}</td>
<td class='text-left'>{$vo.registration_time|format_datetime}</td>
<td class='text-left'>
{if $vo.has_cache}
{if $vo.cache_match}
<span class="color-green">正常</span>
{else}
<span class="color-red">异常(缓存不匹配)</span>
{/if}
{else}
<span class="color-gray">无缓存</span>
{/if}
</td>
<td class='text-left'>
{if $vo.in_cooldown}
<span class="color-red">冷却中 ( {$vo.cooldown_time})</span>
{else}
<span class="color-green">可用</span>
{/if}
</td>
<td class='text-left'>
{if auth("resetDevice")}
<a class="layui-btn layui-btn-sm layui-btn-warm" data-confirm="确定要重置该设备的账号吗?" data-csrf="{:systoken('resetDevice')}" data-action='{:url("resetDevice")}' data-value="machine_id#{$vo.used_by}">重置账号</a>
{/if}
</td>
</tr>
{/foreach}
</tbody>
</table>
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
</div>
{/block}

View File

@@ -0,0 +1,57 @@
{extend name="../../admin/view/main"}
{block name="content"}
<form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post">
<div class="layui-card-body">
<div class="layui-form-item">
<label class="layui-form-label">生成数量</label>
<div class="layui-input-block">
<input name="count" value="1" required placeholder="请输入要生成的激活码数量" class="layui-input">
<tip class="help-block">一次最多可生成100个激活码</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">有效天数</label>
<div class="layui-input-block">
<input name="days" value="30" required placeholder="请输入激活码有效天数" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择代理</label>
<div class="layui-input-block">
<select name='agent_id' class='layui-select' lay-filter='agent_id'>
<option value=''>不分配给代理商</option>
{foreach $agents as $agent}
<option value='{$agent.id}'>{$agent.username} ({if $agent.level==1}一级代理{else}二级代理{/if}) - 佣金比例{$agent.commission_rate}%</option>
{/foreach}
</select>
<tip class="help-block">如果选择代理商,需要设置销售价格</tip>
</div>
</div>
<div class="layui-form-item" id="price_item" style="display:none;">
<label class="layui-form-label">销售价格</label>
<div class="layui-input-block">
<input name="price" value="0" placeholder="请输入销售价格" class="layui-input">
<tip class="help-block">设置激活码的销售价格,用于计算佣金</tip>
</div>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="layui-form-item text-center">
<button class="layui-btn" type="submit">确定生成</button>
<button class="layui-btn layui-btn-danger" type="button" data-close>取消</button>
</div>
</form>
<script>
layui.form.on('select(agent_id)', function(data){
if(data.value){
$('#price_item').show();
$('input[name=price]').attr('required', true);
}else{
$('#price_item').hide();
$('input[name=price]').removeAttr('required');
}
});
</script>
{/block}

View File

@@ -0,0 +1,86 @@
{extend name="../../admin/view/main"}
{block name="button"}
<!--{if auth("add")}-->
<button class='layui-btn layui-btn-sm layui-btn-primary' data-modal='{:url("add")}'>添加账号</button>
<!--{/if}-->
{/block}
{block name="content"}
<div class="think-box-shadow">
<form class="layui-form layui-form-pane form-search" action="{:sysuri()}" onsubmit="return false" method="get" autocomplete="off">
<div class="layui-form-item layui-inline">
<label class="layui-form-label">邮箱账号</label>
<div class="layui-input-inline">
<input name="email" value="{$get.email|default=''}" placeholder="请输入邮箱账号" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<label class="layui-form-label">使用状态</label>
<div class="layui-input-inline">
<select name='is_used' lay-search class='layui-select' lay-filter='is_used'>
<option value=''>-- 全部 --</option>
<option value='0' {if isset($get.is_used) and $get.is_used=='0'}selected{/if}>未使用</option>
<option value='1' {if isset($get.is_used) and $get.is_used=='1'}selected{/if}>已使用</option>
</select>
</div>
</div>
<div class="layui-form-item layui-inline">
<button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button>
</div>
</form>
<table id="AccountTable" class="layui-table margin-top-10" lay-skin="line">
{notempty name='list'}
<thead>
<tr>
<th class='list-table-check-td think-checkbox'>
<label><input data-auto-none data-check-target='.list-check-box' type='checkbox'></label>
</th>
<th class='text-left'>邮箱账号</th>
<th class='text-left'>姓名</th>
<th class='text-left'>机器ID</th>
<th class='text-left'>注册时间</th>
<th class='text-left'>使用状态</th>
<th class='text-left'>使用时间</th>
<th class='text-left'>使用者</th>
<th></th>
</tr>
</thead>
{/notempty}
<tbody>
{foreach $list as $key=>$vo}
<tr>
<td class='list-table-check-td think-checkbox'>
<label><input class="list-check-box" value='{$vo.id}' type='checkbox'></label>
</td>
<td class='text-left'>{$vo.email|default=''}</td>
<td class='text-left'>{$vo.first_name|default=''} {$vo.last_name|default=''}</td>
<td class='text-left'>{$vo.machine_id|default=''}</td>
<td class='text-left'>{$vo.registration_time|format_datetime}</td>
<td class='text-left'>
{if $vo.is_used eq 1}
<span class="color-red">已使用</span>
{else}
<span class="color-green">未使用</span>
{/if}
</td>
<td class='text-left'>{$vo.used_at|format_datetime|default='--'}</td>
<td class='text-left'>{$vo.used_by|default='--'}</td>
<td class='text-left'>
{if auth("state") and $vo.is_used eq 1}
<a class="layui-btn layui-btn-sm" data-action='{:url("state")}' data-value="id#{$vo.id};state#0" data-csrf="{:systoken('state')}">标记未使用</a>
{/if}
{if auth("remove")}
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要删除该账号吗?" data-csrf="{:systoken('remove')}" data-action='{:url("remove")}' data-value="id#{$vo.id}"> </a>
{/if}
</td>
</tr>
{/foreach}
</tbody>
</table>
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
</div>
{/block}