123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591 |
- <?php
- namespace app\index;
- class super_code extends BaseUser
- {
- function import_codes($_var_0 = [])
- {
- Header("Content-type: text");
- Header("Accept-Ranges: bytes");
- $_var_1 = "授权码-全部-" . date("Y-m-d H:i:s") . ".txt";
- Header("Content-Disposition: attachment; filename=" . $_var_1);
- $_var_2 = db("super_code")->field("code")->where($_var_0)->where("user_id", $this->userid)->where("status", "0")->select()->toArray();
- $_var_3 = SafeRequest("codes", "get") ?: implode("\n", array_column($_var_2, "code"));
- exit($_var_3);
- }
- function import_codesall($_var_0 = [])
- {
- Header("Content-type: text");
- Header("Accept-Ranges: bytes");
- $_var_1 = "授权码-未使用-" . date("Y-m-d H:i:s") . ".txt";
- Header("Content-Disposition: attachment; filename=" . $_var_1);
- $_var_2 = db("super_code")->field("code")->where($_var_0)->where("user_id", $this->userid)->where('use_time','')->where("status", "0")->select()->toArray();
- $_var_3 = SafeRequest("codes", "get") ?: implode("\n", array_column($_var_2, "code"));
- exit($_var_3);
- }
- function index($_var_4 = [])
- {
- $_var_5 = SafeRequest("ext", "get");
- $_var_6 = SafeRequest("keyword", "get");
- $_var_7 = $_var_8 = "";
- if (!empty($_var_5)) {
- $_var_4[] = ["type", "=", $_var_5];
- }
-
- if (!empty($_var_6)) {
- $_var_4[] = ["code|udid", "like", "%" . $_var_6 . "%"];
- }
- $_var_9 = db("super_code")->where($_var_4)->where("user_id", $this->userid)->count();
- $_var_10 = db("super_code")->where($_var_4)->where("user_id", $this->userid)->where("use_time", ">", "0")->count();
- $_var_11 = db("super_code")->where($_var_4)->where("user_id", $this->userid)->where("use_time", 0)->count();
- $_var_12 = 10;
- $_var_13 = isset($_GET["page"]) ? $_GET["page"] : 1;
- $_var_14 = ceil($_var_9 / $_var_12);
- $_var_15 = ($_var_13 - 1) * $_var_12;
- $_var_16 = db("super_code")->where($_var_4)->where("user_id", $this->userid)->order("create_time desc")->limit($_var_15, $_var_12)->select();
- $_var_17 = $_var_15 + 1;
- $_var_18 = $_var_13 == $_var_14 ? $_var_9 : $_var_13 * $_var_12;
- $_var_19 = $_var_13 == $_var_14 ? 0 : $_var_13 + 1;
- $_var_20 = $_var_13 == 1 ? 0 : $_var_13 - 1;
- $_var_21 = db("user")->where("in_userid=" . $_COOKIE["in_userid"])->find();
- ?> <!DOCTYPE html>
- <html lang="">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/>
- <meta name="keywords" content="<?php echo IN_KEYWORDS;?>"/>
- <meta name="description" content="<?php echo IN_DESCRIPTION;?>"/>
- <title>应用管理 - <?php echo IN_NAME;?> - 免费应用内测托管平台|iOS应用Beta测试分发|Android应用内测分发</title>
- <?php
- $this->static_();
- ?> </head>
- <body>
- <?php
- $this->header();
- ?> <link rel="stylesheet" href="/static/pack/font-awesome-4.7.0/css/font-awesome.css"/>
- <script src="/static/index/js/bootstrap-paginator.js"></script>
- <div class="release-app-wrap">
- <div class="container">
- <div class="release-app2">
- <div class="crumbs">
- <a href="/index/apps/apps">我的应用</a><span>/</span>应用列表
- </div>
- <div class="row clearfix">
- <?php
- $this->left();
- ?> <div class="col-sm-10">
- <div class="aside-right">
- <?php
- if (IN_VERIFY == 1 && $this->user["in_verify"] != 1) {
- ?> <div class="warn-prompt" style="margin-bottom: 10px;">
- <span class="icon-warn iconfont"></span>
- 您当前尚未实名,不能上传APP;实名认证通过后,才可以上传应用。
- <a href="/index/certification" class="color-hover">立即实名认证</a>
- </div>
- <?php
- }
- ?> <?php
- if (empty($this->user["in_mobile"])) {
- ?> <div class="warn-prompt" style="margin-bottom: 10px;">
- <span class="icon-warn iconfont"></span>
- 您当前尚未绑定手机号码,绑定手机可以增加账号安全性。
- <a href="/index/bind_mobile" class="color-hover">立即绑定手机</a>
- </div>
- <?php
- }
- ?> <?php
- if ($this->user["in_release"] == 1) {
- ?> <div class="warn-prompt" style="margin-bottom: 10px;">
- <span class="icon-warn iconfont"></span>
- 因发布的APP不符合审核规则,已停用此账号发布功能。
- </div>
- <?php
- }
- ?> <div class="table-list-wrap">
- <div class="table-list">
- <div class="a-top mb10 clearfix">
- <div class="app-system-select fl">
- <span class="text">
- <?php
- if ($_var_5 == "1") {
- echo "一码一用";
- } elseif ($_var_5 == "2") {
- echo "一码多用";
- } else {
- echo "全部";
- }
- ?> </span>
- <span class="iconfont icon-arrow-down-1"></span>
- <ul class="app_device">
- <li data-system="" <?php
- if ($_var_5 == "") {
- ?>class="active"<?php
- }
- ?>>
- 全部
- </li>
- <li data-system="1" <?php
- if ($_var_5 == "1") {
- ?>class="active"<?php
- }
- ?>>
- 一码一用
- </li>
- <li data-system="2" <?php
- if ($_var_5 == "2") {
- ?>class="active"<?php
- }
- ?>>
- 一码多用
- </li>
-
- </ul>
- </div>
- <div class="input-search fl">
- <input type="text" class="fl" placeholder="输入授权码或设备号"
- name="search_input"
- id="keyword" value="<?php echo $_var_6;?>">
- <span class="iconfont icon-search"></span>
- </div>
- <div class="input-search fl">
- <input type="button" class="fl" value="导出全部" onclick="import_codes()"
- style="background:#157df1;border:#157df1;color:#fff;width: 75px;padding-right: 10px;margin-left: 10px;">
- <input type="button" class="fl" value="导出未使用" onclick="import_codesall()"
- style="background:#f1158f;border:#157df1;color:#fff;width: 85px;padding-right: 10px;margin-left: 10px;">
- </div>
- <div class="fr clearfix how-many">
- <dl class="clearfix">
- <dd class="fl">
- <div class="clearfix">
- <div class="fr">
- <p class="p1">
- 总计
- </p>
- <span class="iconfont icon-prompt1"
- data-container="body"
- data-toggle="popover" data-placement="top"
- data-trigger="hover" data-html="true"
- data-content="">
- </span>
- </div>
- </div>
- <div class="p2 clearfix">
- <span><?php echo $_var_9;?></span>
- </div>
- <div class="right-line">
- </div>
- </dd>
- <dd class="fl">
- <div class="clearfix">
- <div class="fr">
- <p class="p1">
- 已使用
- </p>
- <span class="iconfont icon-prompt1"
- data-container="body"
- data-toggle="popover" data-placement="top"
- data-trigger="hover" data-html="true"
- data-content="">
- </span>
- </div>
- </div>
- <div class="p2 clearfix">
- <span><?php echo $_var_10;?></span>
- </div>
- <div class="right-line">
- </div>
- </dd>
- <dd class="fl">
- <div class="clearfix">
- <div class="fr">
- <p class="p1">
- 未使用
- </p>
- <span class="iconfont icon-prompt1"
- data-container="body"
- data-toggle="popover" data-placement="top"
- data-trigger="hover" data-html="true"
- data-content="">
- </span>
- </div>
- </div>
- <div class="p2 clearfix">
- <span><?php echo $_var_11;?></span>
- </div>
- <div class="right-line">
- </div>
- </dd>
- <dt class="fl"><a href="javascript:;"
- class="ms-btn ms-btn-primary mt3"
- id="addcode">生成授权码</a></dt>
- </dl>
- </div>
- </div>
- <div class="app-table-wrap">
- <div class="table-wrap">
- <div class="table-responsive">
- <table class="table app-table">
- <tr>
- <th class="app-th-name">
- 授权码
- </th>
- <th>
- 设备号
- </th>
- <th>
- 应用名称
- </th>
- <th>类型</th>
- <th>
- 生成时间
- </th>
- <th>
- 使用时间
- </th>
- <th>
- 授权时长
- </th>
- <th>
- 状态
- </th>
- <th>
- 操作
- </th>
- </tr>
- <?php
- foreach ($_var_16 as $_var_22 => $_var_23) {
- if ($_var_23["app_id"]) {
- $_var_24 = db("appid")->where("in_id", $_var_23["app_id"])->value("in_name");
- if (!$_var_24) {
- $_var_24 = "应用已删除";
- }
- } else {
- $_var_24 = "未使用";
- }
- ?><tr>
- <td><?php echo $_var_23["code"];?></td>
- <td><?php echo $_var_23["udid"] ?: "未使用";?></td>
- <td><?php echo $_var_24;?></td>
- <td><font color="red"><?php echo $_var_23["type"] == 1 ? "一码一用" : "一码多用";?></font></td>
- <td><?php echo date("Y-m-d H:i", $_var_23["create_time"]);?></td>
- <td><?php echo $_var_23["use_time"] ? date("Y-m-d H:i", $_var_23["use_time"]) : "未使用";?></td>
- <td><?php echo $_var_23["days"] ? $_var_23["days"] . "天" : "长期";?></td>
- <td><?php echo $_var_23["status"] ? "<font color=\"red\">已禁用</font>" : "已启用";?></td>
- <td><a class="table-btn color-hover" href="/index/super_code/setStatus?id=<?php echo $_var_23["id"];?>&status=<?php echo $_var_23["status"];?>"><?php echo $_var_23["status"] ? "启用" : "禁用";?></a>
- <a class="table-btn color-delete" onclick="del(<?php echo $_var_23["id"];?>)">删除</a></td>
- </tr><?php
- }
- ?> </table>
- </div>
- <?php
- if ($_var_9 == 0) {
- ?><div class="no-app text-center">
- <div class="mt60 small">
- <img src="/static/index/image/icon-19.png">
- </div>
- <div class="color-333 mt20">
- 暂无APP
- </div>
- <a href="javascript:;" class="ms-btn ms-btn-primary btn-new-release clearfix mt20">
- <span class="iconfont icon-upload fl"></span>
- <span class="text fl">立即生成</span>
- </a>
- </div><?php
- }
- ?> </div>
- <?php
- if ($_var_14 != 1) {
- ?> <?php
- if ($_var_9 !== 0) {
- ?> <div style="text-align: center"><ul id="pager" class="pagination"><li><a>共<b><?php echo $_var_9;?></b>个应用</b> <?php echo $_var_13;?>/<?php echo $_var_14;?></a></li><?php
- if ($_var_13 == 1) {
- ?><li class='active'><a>首页</a></li><?php
- } else {
- ?><li><a href='?page=1&ext=<?php echo $_var_5;?>&keyword=<?php echo $_var_6;?>'>首页</a></li><?php
- }
- if ($_var_20) {
- ?><li><a href='?page=<?php echo $_var_20;?>&ext=<?php echo $_var_5;?>&keyword=<?php echo $_var_6;?>'>上一页</a></li><?php
- } else {
- }
- if ($_var_19) {
- ?><li><a href='?page=<?php echo $_var_19;?>&ext=<?php echo $_var_5;?>&keyword=<?php echo $_var_6;?>'>下一页</a></li><?php
- } else {
- }
- if ($_var_13 == $_var_14) {
- ?><li class='active'><a>尾页</a></li><?php
- } else {
- ?><li><a href='?page=<?php echo $_var_14;?>&ext=<?php echo $_var_5;?>&keyword=<?php echo $_var_6;?>'>尾页</a></li><?php
- }
- ?></ul></div> <?php
- }
- ?> <?php
- }
- ?> </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="modal fade in" id="vipkeySC" tabindex="-1" role="dialog"
- style="display: none; padding-right: 15px;">
- <div class="modal-dialog" role="document">
- <div class="modal-content">
- <div class="modal-header">
- <center>
- <h4 class="modal-title">生成条件</h4></center>
- </div>
- <div class="modal-body" id="modal_body">
- <div class="size-list">
- <form id="upload" method="post" target="post_frame" enctype="multipart/form-data">
- <div style="padding-left:30px;">
- <div style="margin-top:20px;">
- <label style="width:100px;text-align:right;">剩余数量 </label>
- <input type="text" name="max_num" disabled="disabled" id="max_num"
- style="width:420px;padding-left:10px;height:35px;border:1px solid #e0e0e0;"
- value="<?php echo $_var_21["max_super_code"];?>">
- </div>
- </div>
- <div style="padding-left:30px;">
- <div style="margin-top:20px;">
- <label style="width:100px;text-align:right;">生成数量 </label>
- <input type="number"
- style="width:420px;padding-left:10px;height:35px;border:1px solid #e0e0e0;"
- placeholder="(必填)" name="nums" id="nums"
- oninput="value=value.replace(/[^\d]/g,'')">
- </div>
- </div>
- <div style="padding-left:30px;">
- <div style="margin-top:20px;">
- <label style="width:100px;text-align:right;">有效时长 </label>
- <input type="number"
- style="width:420px;padding-left:10px;height:35px;border:1px solid #e0e0e0;"
- placeholder="(天)" name="days" id="days"
- oninput="value=value.replace(/[^\d]/g,'')">
- </div>
- </div>
- <div style="padding-left:30px;">
- <div style="margin-top:20px;">
- <label style="width:100px;text-align:right;">生成类型 </label>
- <input type="hidden" value="1" id="type"/>
- <ul class="clearfix download-way"
- style="width:420px;float:right;margin-right:10px;">
- <li class="clearfix active" style="float:left;">
- <span class="icon icon-radio icon-radio-checked fl" id="gkcheck"></span>
- <span class="fl">一码一用</span>
- </li>
- <li class="clearfix">
- <span class="icon icon-radio fl"
- style="float:left;margin-left:10px;"
- id="pwcheck"></span>
- <span class="fl">一码多用</span>
- </li>
- </ul>
- </div>
- </div>
- </form>
- </div>
- <div class="form-group" style="margin-top:10px;">
- <div class="tipPanel"
- style="margin: 10px;padding: 10px;font-size: 14px;border: 1px dotted gray;border-radius: 8px;">
- <div class="tipItem" id="codeInfo">
- 1、<font color="red">剩余生成</font>:充值公有池或私有池的设备数,会增加剩余生成数量<br>
- 2、<font color="red">最大生成</font>:每次生成数量最大不超过1000个<br>
- 3、<font color="red">有效时长</font>:设置,有效期内可以无限重签。不设置,掉签授权码失效。<br>
- 4、<font color="red">一码一用</font>:每个授权码可以针对一个设备一个应用单次使用<br>
- 5、<font color="red">一码多用</font>:每个授权码可以针对一个设备多个应用多次使用<br>
- </div>
- </div>
- </div>
- <div style="text-align:right;margin-top:30px;">
- <div style="border-top:1px solid #eee;">
- <div class="text-right mt30">
- <input type="hidden" id="in_tid" value="0">
- <button type="button" class="btn btn-default" data-dismiss="modal"
- aria-label="Close"
- onclick="$('#vipkeySC').toggle();">取消
- </button>
- <button type="button" class="btn btn-primary" onclick="produce()">生成</button>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <script src="/static/index/js/clipboard.min.js"></script>
- <script>
- function import_codes() {
- window.location.href = "/index/super_code/import_codes?ext=" + $('.app_device li.active').data('system') + "&keyword=" + $('#keyword').val();
- }
- function import_codesall() {
- window.location.href = "/index/super_code/import_codesall?ext=" + $('.app_device li.active').data('system') + "&keyword=" + $('#keyword').val()+'&status=1';
- }
- $('.icon-search').click(function () {
- var keyword = $('#keyword').val();
- if (keyword) {
- window.location.href = "/index/super_code/super?ext=<?php echo $_var_5;?>&keyword=" + $('#keyword').val();
- }
- });
- $(".app_device li").on('click', function () {
- ext = $(this).data('system');
- window.location.href = "/index/super_code/super?keyword=<?php echo $_var_6;?>&ext=" + ext;
- });
- $('#keyword').bind('keyup', function (event) {
- if (event.keyCode == "13") {
- //回车执行查询
- $('.icon-search').click();
- }
- });
- $('#addcode,.btn-new-release').click(function () {
- $('#vipkeySC').toggle();
- });
- $('.download-way li').click(function () {
- $(this).addClass('active').siblings().removeClass('active');
- $('.download-way li span').removeClass('icon-radio-checked');
- $(this).find('.icon-radio').addClass('icon-radio-checked');
- $('#type').val($(this).index() + 1);
- });
- var clipboard = new ClipboardJS('.copy-btn');
- clipboard.on('success', function (e) {
- alert('复制成功');
- });
- clipboard.on('error', function (e) {
- alert('复制失败');
- });
- function del(id) {
- alert('你确定要删除该授权码吗?', function () {
- $.post('/index/super_code/del', {id}, function (ret) {
- if (ret.msg) alert(ret.msg, function () {
- if (ret.code == 1) {
- location.reload();
- }
- });
- }, 'json')
- }, function () {
- }, 'center', '确定', '取消');
- }
- function produce() {
- var nums = parseInt($('#nums').val());
- if (!nums) {
- return alert('请输入生成数量');
- }
- var max_num = parseInt($('#max_num').val());
- if (nums > max_num) {
- return alert('超出最大可生成数量');
- }
- var days = parseInt($('#days').val() || 0);
- var type = $('#type').val();
- $.post('/index/super_code/add', {nums, days, type, max_num}, function (ret) {
- alert(ret.msg);
- if (ret.code == 200) {
- // window.location.reload();
- if (ret.data.codes) {
- $('.modal-title').html('生成结果');
- $('#modal_body').html('<textarea id="copybox" rows="8">' + ret.data.codes + '</textarea>' +
- '<div style="text-align: center;padding-top: 15px">' +
- '<button type="button" class="btn btn-primary copy-btn" data-clipboard-action="copy" data-clipboard-target="#copybox">复制</button>' +
- '<button type="button" class="btn btn-default" data-dismiss="modal" aria-label="Close" onclick="location.reload()">关闭</button></div>');
- } else {
- }
- }
- }, 'json');
- }
- function copycode() {
- }
- <?php
- if (IN_VERIFY == 1 && $this->user["in_verify"] != 1) {
- ?> Modal.templateModal({
- imgName: "modal-bg-2.jpg",
- title1: '提示',
- title2: '账户尚未实名,请尽快操作实名认证',
- p: '建议您:<br>尽快登录<?php echo IN_NAME;?>网站,点击右上角未实名认证,进行认证。<br>未实名认证,不能上传应用。',
- align: 'left', // 居左 left, 居中 center, 居右 right
- btnText: '知道了',
- btnClass: "modal-btn1"
- });
- <?php
- }
- ?> </script>
- <?php
- $this->footer();
- ?> </body>
- </html>
- <?php
- }
- function add()
- {
- $_var_25 = SafeRequest("nums", "post");
- $_var_26 = SafeRequest("max_num", "post");
- $_var_27 = intval(SafeRequest("days"));
- $_var_28 = SafeRequest("type", "post");
- $_var_29 = db("user")->where("in_userid=" . $_COOKIE["in_userid"])->find();
- if ($_var_25 <= 0) {
- reJSON("请输入生成数量", 404);
- }
- if ($_var_25 > 50) {
- //$_var_25 = 50;
- }
- if ($this->user["max_super_code"] < $_var_25) {
- reJSON("设备数量不足" . $_var_25 . "个", 404);
- }
- $_var_30 = [];
- db("super_code")->startTrans();
- try {
- for ($_var_31 = 1; $_var_31 <= $_var_25; $_var_31++) {
- $_var_32 = Randomstr(12);
- db("super_code")->insert(["user_id" => $_COOKIE["in_userid"], "code" => $_var_32, "type" => $_var_28, "days" => $_var_27, "create_time" => time()]);
- $_var_30[] = $_var_32;
- }
- db("user")->where("in_userid=" . $_COOKIE["in_userid"])->dec("max_super_code", $_var_25)->update();
- db("super_code")->commit();
- } catch (\Exception $_var_33) {
- db("super_code")->rollback();
- reJSON("生成失败", 404);
- }
- $_var_30 = implode("\n", $_var_30);
- reJSON(["codes" => $_var_30], 200, "生成成功");
- }
- function del()
- {
- $_var_34 = SafeRequest("id");
- if (!$_var_34) {
- reJSON("参数错误");
- }
- $_var_35 = db("super_code")->where("id", $_var_34)->delete();
- reJSON($_var_35 ? "删除成功" : "删除失败", 1);
- }
- function setStatus()
- {
- $_var_36 = SafeRequest("id", "get");
- $_var_37 = SafeRequest("status", "get");
- $_var_38 = db("super_code")->where("id", $_var_36)->update(["status" => intval(!$_var_37)]);
- redirect("/index/super_code");
- }
- }
|