apps.php 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827
  1. <?php
  2. namespace app\index;
  3. class apps extends BaseUser
  4. {
  5. public $statusText = [-2 => "签名失败", -1 => "解析失败", "未签名", "准备中", "正在解析", "正在签名", "正在打包", "签名完成"];
  6. function index()
  7. {
  8. $_var_0 = SafeRequest("ext", "get");
  9. $_var_1 = SafeRequest("keyword", "get");
  10. $_var_2 = $_var_3 = "";
  11. $_var_4 = [];
  12. if (!empty($_var_0)) {
  13. $_var_5 = ["ipa" => "iOS", "apk" => "Android"];
  14. if (isset($_var_5[$_var_0])) {
  15. $_var_4[] = ["in_form", "=", $_var_5[$_var_0]];
  16. }
  17. }
  18. if (!empty($_var_1)) {
  19. $_var_4[] = ["in_name|in_form|in_bid", "like", "%" . $_var_1 . "%"];
  20. }
  21. db("appid")->where("in_sign", ">", "0")->update(["in_sign_type" => 1]);
  22. db("appid")->where("in_super", ">", "0")->update(["in_sign_type" => 2]);
  23. $_var_6 = "应用管理";
  24. if ($this->action == "sign" && IN_SIGN) {
  25. $_var_4[] = ["in_sign_type", "=", "1"];
  26. $_var_6 = "企业签名";
  27. } else {
  28. if ($this->action == "super" && IN_SUPER) {
  29. $_var_4[] = ["in_sign_type", "=", "2"];
  30. $_var_6 = "超级签名";
  31. } else {
  32. $_var_4[] = ["in_sign_type", "=", "0"];
  33. }
  34. }
  35. $_var_7 = db("appid")->where($_var_4)->where("in_uid", $this->userid)->count();
  36. $_var_8 = 10;
  37. $_var_9 = isset($_GET["page"]) ? $_GET["page"] : 1;
  38. $_var_10 = ceil($_var_7 / $_var_8);
  39. $_var_11 = ($_var_9 - 1) * $_var_8;
  40. $_var_12 = db("appid")->where($_var_4)->where("in_uid", $this->userid)->order("in_applock desc,in_addtime desc")->limit($_var_11, $_var_8)->select();
  41. $_var_13 = $_var_11 + 1;
  42. $_var_14 = $_var_9 == $_var_10 ? $_var_7 : $_var_9 * $_var_8;
  43. $_var_15 = $_var_9 == $_var_10 ? 0 : $_var_9 + 1;
  44. $_var_16 = $_var_9 == 1 ? 0 : $_var_9 - 1;
  45. $_var_17 = explode("|", "50M|100M|300M|600M|1G|1.5G|1.5G以上");
  46. $_var_18 = json_decode(IN_POINTSRULE, true);
  47. $_var_19 = "收费标准:<br>0-";
  48. foreach ($_var_17 as $_var_20 => $_var_21) {
  49. if ($_var_20 > 5) {
  50. $_var_19 .= "<br>";
  51. }
  52. $_var_19 .= $_var_21 . "(" . $_var_18[$_var_20] . "个)";
  53. if ($_var_20 < 5) {
  54. $_var_19 .= "<br>" . $_var_17[$_var_20] . "-";
  55. }
  56. }
  57. $_var_19 .= "<br>CDN云存储" . IN_CDNPOINTS . "倍计费";
  58. ?> <!DOCTYPE html>
  59. <html lang="">
  60. <head>
  61. <meta charset="utf-8">
  62. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/>
  63. <meta name="keywords" content="<?php echo IN_KEYWORDS;?>"/>
  64. <meta name="description" content="<?php echo IN_DESCRIPTION;?>"/>
  65. <title><?php echo $_var_6;?> - <?php echo IN_NAME;?> - 免费应用内测托管平台|iOS应用Beta测试分发|Android应用内测分发</title>
  66. <?php
  67. $this->static_();
  68. ?> </head>
  69. <body>
  70. <?php
  71. $this->header();
  72. ?>
  73. <link rel="stylesheet" href="/static/pack/font-awesome-4.7.0/css/font-awesome.css"/>
  74. <script src="/static/index/js/bootstrap-paginator.js"></script>
  75. <div class="release-app-wrap">
  76. <div class="container">
  77. <div class="release-app2">
  78. <div class="crumbs">
  79. <a href="/index/apps/apps">我的应用</a><span>/</span>应用列表
  80. </div>
  81. <div class="row clearfix">
  82. <div class="col-sm-2">
  83. <aside class="aside-left">
  84. <ul>
  85. <?php if ($this->action == 'apps' && IN_DIST_ON || $this->action == 'sign' && IN_SIGN || $this->action == 'super' && IN_SUPER) {
  86. ?>
  87. <li class="<?php echo ($this->module == 'publish' || $this->module == 'publish_update') ? 'active' : '' ?>">
  88. <a href="/index/publish/<?php echo $this->action ?>"> <span class="iconfont icon-upload1"></span>上传应用</a>
  89. </li>
  90. <?php
  91. } ?>
  92. <li class="<?php echo $this->module == 'apps' ? 'active' : '' ?>">
  93. <a href="/index/apps/<?php echo $this->action ?>"><span class="iconfont icon-41"></span>应用列表</a>
  94. </li>
  95. <?php if (IN_SUPER && ($this->action == 'apps' || strstr($this->module, 'apps2'))) { ?>
  96. <li class="<?php echo $this->module == 'domain' ? 'active' : '' ?>">
  97. <a href="/index/domain/<?php echo $this->action ?>"><span class="iconfont icon-liulanqi"></span>绑定域名</a>
  98. </li>
  99. <li class="<?php echo $this->module == 'combine' ? 'active' : '' ?>">
  100. <a href="/index/combine/<?php echo $this->action ?>"><span class="iconfont icon-erweima"></span>外部链接合并</a>
  101. </li>
  102. <li class="<?php echo $this->module == 'jilu' ? 'active' : '' ?>">
  103. <a href="/index/jilu/<?php echo $this->action ?>"><span class="iconfont icon-jilu"></span>合并记录</a>
  104. </li>
  105. <?php } ?>
  106. <?php if (IN_SUPER && ($this->action == 'super' || strstr($this->module, 'super'))) { ?>
  107. <li class="<?php echo $this->module == 'super_code' ? 'active' : '' ?>">
  108. <a href="/index/super_code/super"><span class="iconfont icon-pwd"></span>授权码管理</a>
  109. </li>
  110. <li class="<?php echo $this->module == 'super_cert' ? 'active' : '' ?>">
  111. <a href="/index/super_cert/super"><span class="iconfont icon-gongju"></span>开发者账号</a>
  112. </li>
  113. <?php } ?>
  114. </ul>
  115. </aside>
  116. </div>
  117. <div class="col-sm-10">
  118. <div class="aside-right">
  119. <?php
  120. if (IN_VERIFY == 1 && $this->user["in_verify"] != 1) {
  121. ?> <div class="warn-prompt" style="margin-bottom: 10px;">
  122. <span class="icon-warn iconfont"></span>
  123. 您当前尚未实名,不能上传APP;实名认证通过后,才可以上传应用。
  124. <a href="/index/certification" class="color-hover">立即实名认证</a>
  125. </div>
  126. <?php
  127. }
  128. ?> <?php
  129. if (empty($this->user["in_mobile"])) {
  130. ?> <div class="warn-prompt" style="margin-bottom: 10px;">
  131. <span class="icon-warn iconfont"></span>
  132. 您当前尚未绑定手机号码,绑定手机可以增加账号安全性。
  133. <a href="/index/bind_mobile" class="color-hover">立即绑定手机</a>
  134. </div>
  135. <?php
  136. }
  137. ?> <?php
  138. if ($this->user["in_release"] == 1) {
  139. ?> <div class="warn-prompt" style="margin-bottom: 10px;">
  140. <span class="icon-warn iconfont"></span>
  141. 因发布的APP不符合审核规则,已停用此账号发布功能。
  142. </div>
  143. <?php
  144. }
  145. ?> <div class="table-list-wrap">
  146. <div class="table-list">
  147. <div class="a-top mb10 clearfix">
  148. <?php
  149. if ($this->action == "apps") {
  150. ?> <div class="app-system-select fl">
  151. <span class="text">
  152. <?php
  153. if ($_var_0 == "ipa") {
  154. echo "iOS";
  155. } elseif ($_var_0 == "apk") {
  156. echo "Android";
  157. } else {
  158. echo "全部";
  159. }
  160. ?> </span>
  161. <span class="iconfont icon-arrow-down-1"></span>
  162. <ul class="app_device">
  163. <li data-system="" <?php
  164. if ($_var_0 == "") {
  165. ?>class="active"<?php
  166. }
  167. ?>>
  168. 全部
  169. </li>
  170. <li data-system="ipa" <?php
  171. if ($_var_0 == "ipa") {
  172. ?>class="active"<?php
  173. }
  174. ?>>
  175. iOS
  176. </li>
  177. <li data-system="apk" <?php
  178. if ($_var_0 == "apk") {
  179. ?>class="active"<?php
  180. }
  181. ?>>
  182. Android
  183. </li>
  184. </ul>
  185. </div>
  186. <?php
  187. }
  188. ?> <div class="input-search fl">
  189. <input type="text" class="fl" placeholder="输入应用名称" name="search_input"
  190. id="keyword" value="<?php echo $_var_1;?>">
  191. <span class="iconfont icon-search"></span>
  192. </div>
  193. <div class="fr clearfix how-many">
  194. <dl class="clearfix">
  195. <dd class="fl">
  196. <div class="clearfix">
  197. <div class="fr">
  198. <p class="p1">
  199. 应用存储空间容量
  200. </p>
  201. <span class="iconfont icon-prompt1"
  202. data-container="body"
  203. data-toggle="popover" data-placement="top"
  204. data-trigger="hover" data-html="true"
  205. data-content="1. 应用存储空间上限<br>2. 应用存储空间容量可以通过购买会员增加">
  206. </span>
  207. </div>
  208. </div>
  209. <div class="p2 clearfix">
  210. <span><?php echo get_user_in_spacetotal($this->user, true);?><i>(总量)</i></span>
  211. <span><?php echo formatsize($this->user["in_spaceuse"]);?><i>(已用)</i></span>
  212. </div>
  213. <div class="right-line">
  214. </div>
  215. </dd>
  216. <dd class="fl">
  217. <div class="clearfix">
  218. <div class="fr">
  219. <p class="p1">
  220. 上传限制
  221. </p>
  222. <span class="iconfont icon-prompt1"
  223. data-container="body"
  224. data-toggle="popover" data-placement="top"
  225. data-trigger="hover" data-html="true"
  226. data-content="1. 单个应用最大上传限制<br>2. 应用上传可以通过购买会员升级"></span>
  227. </div>
  228. </div>
  229. <div class="p2 clearfix">
  230. <span><?php echo get_user_in_filesize($this->user, true);?><i></i></span>
  231. </div>
  232. <div class="right-line">
  233. </div>
  234. </dd>
  235. <?php
  236. if ($this->action == "apps") {
  237. ?> <dd class="fl">
  238. <div class="clearfix">
  239. <div class="fr">
  240. <p class="p1">
  241. <?php echo IN_POINTNAME;?> </p>
  242. <span class="iconfont icon-prompt1"
  243. data-container="body"
  244. data-toggle="popover" data-placement="top"
  245. data-trigger="hover" data-html="true"
  246. data-content="购买的<?php echo IN_POINTNAME;?>没有时间限制,用完为止">
  247. </span>
  248. </div>
  249. </div>
  250. <div class="p2 clearfix">
  251. <span><?php echo number_format($this->user["in_points"]);?></span>
  252. </div>
  253. <div class="right-line">
  254. </div>
  255. </dd>
  256. <dt class="fl">
  257. <a href="/index/item_price?type=1"
  258. class="ms-btn ms-btn-primary mt3 w60">购买</a></dt>
  259. <?php
  260. }
  261. if ($this->action == "sign") {
  262. ?> <dd class="fl">
  263. <div class="clearfix">
  264. <div class="fr">
  265. <p class="p1">余额</p>
  266. <span class="iconfont icon-prompt1"
  267. data-container="body"
  268. data-toggle="popover" data-placement="top"
  269. data-trigger="hover" data-html="true"
  270. data-content="账户余额可以用来购买平台的分发下载点数(云币 )、企业签名、超级签名设备和封装APP等服务,余额账户的钱不支持提现。">
  271. </span>
  272. </div>
  273. </div>
  274. <div class="p2 clearfix">
  275. <span><?php echo number_format($this->user["money"]);?><i>(元)</i></span>
  276. </div>
  277. <div class="right-line">
  278. </div>
  279. </dd>
  280. <dt class="fl">
  281. <a href="/index/item_price"
  282. class="ms-btn ms-btn-primary mt3 w60">充值</a>
  283. </dt>
  284. <?php
  285. }
  286. if ($this->action == "super") {
  287. ?> <dd class="fl">
  288. <div class="clearfix">
  289. <div class="fr">
  290. <p class="p1">
  291. 公有设备
  292. </p>
  293. <span class="iconfont icon-prompt1"
  294. data-container="body"
  295. data-toggle="popover" data-placement="top"
  296. data-trigger="hover" data-html="true"
  297. data-content="购买的公有设备没有时间限制,用完为止。<br>公有设备使用平台证书,无需自己上传。">
  298. </span>
  299. </div>
  300. </div>
  301. <div class="p2 clearfix">
  302. <span><?php echo number_format($this->user["device_num"]);?></span>
  303. </div>
  304. <div class="right-line">
  305. </div>
  306. </dd>
  307. <?php
  308. if (IN_SUPER_PRV || $this->user["prv_device_num"] > 0) {
  309. ?> <dd class="fl">
  310. <div class="clearfix">
  311. <div class="fr">
  312. <p class="p1">
  313. 私有设备
  314. </p>
  315. <span class="iconfont icon-prompt1"
  316. data-container="body"
  317. data-toggle="popover" data-placement="top"
  318. data-trigger="hover" data-html="true"
  319. data-content="购买的私有设备没有时间限制,用完为止。<br>私有设备使用自有证书,需自行上传p8证书。">
  320. </span>
  321. </div>
  322. </div>
  323. <div class="p2 clearfix">
  324. <span><?php echo number_format($this->user["prv_device_num"]);?></span>
  325. </div>
  326. <div class="right-line">
  327. </div>
  328. </dd>
  329. <?php
  330. }
  331. ?> <dt class="fl"><a
  332. href="/index/item_price?type=4"
  333. class="ms-btn ms-btn-primary mt3 w60">购买</a></dt>
  334. <?php
  335. }
  336. ?> </dl>
  337. </div>
  338. </div>
  339. <div class="app-table-wrap">
  340. <div class="table-wrap">
  341. <div class="table-responsive">
  342. <table class="table app-table">
  343. <tr>
  344. <th class="app-th-name">名称</th>
  345. <th>版本</th>
  346. <th>大小</th>
  347. <?php
  348. if ($this->action != "sign") {
  349. ?> <th>下载链接/二维码</th>
  350. <?php
  351. }
  352. ?> <?php
  353. if (IN_REMOTE && $this->action != "sign" && !IN_MANDATORY_REMOTE) {
  354. ?> <th>CDN存储</th>
  355. <?php
  356. }
  357. ?> <?php
  358. if ($this->action == "apps") {
  359. ?> <th>下载次数</th>
  360. <th>下载扣除<span data-container="body"
  361. data-toggle="popover"
  362. data-placement="top" data-trigger="hover"
  363. data-html="true"
  364. data-content="<?php echo $_var_19;?>">?</span>
  365. </th>
  366. <?php
  367. }
  368. ?> <?php
  369. if ($this->action == "sign") {
  370. ?> <th>套餐</th>
  371. <th>到期时间</th>
  372. <?php
  373. }
  374. ?> <?php
  375. if ($this->action == "super") {
  376. ?> <th>设备池</th>
  377. <th>签名设备</th>
  378. <!--th>签名次数</th-->
  379. <?php
  380. }
  381. ?> <th>状态</th>
  382. <th>操作</th>
  383. </tr>
  384. <?php
  385. foreach ($_var_12 as $_var_22 => $_var_23) {
  386. $_var_24 = app_file_exists($_var_23);
  387. $_var_25 = getlink($_var_23["in_id"], $this->action == "super");
  388. ?><tr>
  389. <td>
  390. <div class="clearfix app-icon-name">
  391. <div class="fl app-icon-size">
  392. <a href="<?php echo $_var_23["in_applock"] ? "javascript:;" : "/index/publish_detail?id=" . bees_encrypt($_var_23["in_id"]);?>">
  393. <img src="<?php echo geticon($_var_23["in_icon"]);?>" onerror="javascript:this.src='/static/index/image/<?php echo $_var_23["in_form"];?>.png'">
  394. </a>
  395. </div>
  396. <div class="fl">
  397. <a href="<?php echo $_var_23["in_applock"] ? "javascript:;" : "/index/publish_detail?id=" . bees_encrypt($_var_23["in_id"]);?>" class="tit2" data-container="body" data-toggle="popover" data-placement="bottom" data-content="<?php echo $_var_23["in_name"];?>" data-trigger="hover"><?php echo $_var_23["in_name"];?></a>
  398. <span class="tit3"><?php echo $_var_23["in_form"];?></span>
  399. </div>
  400. </div>
  401. </td><td><?php echo $_var_23["in_bsvs"];?></td><td>
  402. <?php echo formatsize($_var_23["in_size"]);?>
  403. </td><?php
  404. if ($this->action != "sign") {
  405. if ($_var_23["in_applock"]) {
  406. ?><td style="color:orange;"><?php echo ["-2" => "应用已下架", "-1" => "应用正在审核", "1" => "应用涉嫌违规,已被锁定"][$_var_23["in_applock"]];?></td><?php
  407. } else {
  408. if ($this->action == "apps" && IN_DIST_ON || $this->action == "super" && IN_SUPER && $_var_23["in_super"]) {
  409. ?><td>
  410. <div class="download-code-wrap">
  411. <div class="clearfix download-code download-code1">
  412. <span class="icon icon-small-code fl" data-html="true" data-toggle="popover" title="" data-container="body" data-trigger="hover" data-placement="bottom" data-content="<img src='/qrcode?link=<?php echo $_var_25;?>'>" data-original-title="扫描二维码下载">
  413. </span><a style="margin: 0 5px;" class="ellipsis fl" data-container="body" data-toggle="popover" data-placement="bottom" data-content="<?php echo $_var_25;?>" data-trigger="hover" target="_blank" href="<?php echo $_var_25;?>"><?php echo $_var_25;?></a>
  414. <button class="copy-btn" data-clipboard-text="<?php echo $_var_25;?>" style="border-radius: 3px;border: 1px solid goldenrod;background: #fff;font-size: 10px;color: goldenrod;padding: 0 5px">复制</button>
  415. </div>
  416. </div>
  417. <div class="app-list-notes-wrap">
  418. <span class="app-list-notes app-list-notes2 ellipsis" data-container="body" data-toggle="popover" data-placement="bottom" data-content="" data-trigger="hover" data-original-title="" title=""></span>
  419. </div>
  420. </td><?php
  421. } else {
  422. ?><?php echo $this->action == "super" && IN_SUPER && !$_var_23["in_super"] ? "<td>未开启超级签名</td>" : "<td>功能未开放</td>";?><?php
  423. }
  424. }
  425. }
  426. if (IN_REMOTE && $this->action != "sign" && !IN_MANDATORY_REMOTE) {
  427. ?><td><?php
  428. if ($this->user["in_svip"]) {
  429. ?><a href="javascript:;" data-id="<?php echo $_var_23["in_id"];?>" data-remote="0" class="table-btn color-delete cdnBtn" data-container="body" data-toggle="popover" data-placement="top" data-trigger="hover" data-html="true" data-content="CDN开启中,点击可关闭" <?php echo $_var_23["remote"] ? "" : "style=\"display:none\"";?>>
  430. 加速中</a><a href="javascript:;" data-id="<?php echo $_var_23["in_id"];?>" data-remote="1" class="table-btn color-hover cdnBtn" data-container="body" data-toggle="popover" data-placement="top" data-trigger="hover" data-html="true" data-content="点击开启CDN加速"<?php echo $_var_23["remote"] ? "style=\"display:none\"" : "";?>>
  431. 开启
  432. </a><?php
  433. } else {
  434. ?><a href="/index/item_price?type=2" class="table-btn color-hover" data-container="body" data-toggle="popover" data-placement="top" data-trigger="hover" data-html="true" data-content="开通CDN,请购买会员">
  435. 开通VIP
  436. </a><?php
  437. }
  438. ?></td><?php
  439. }
  440. if ($this->action == "apps") {
  441. ?><td><?php echo intval($_var_23["in_downloads"]);?></td><td><?php echo $_var_23["in_deduct"];?><?php echo IN_POINTNAME;?></td><td><?php echo ["-2" => "下架", "-1" => "审核中", "正常", "锁定"][$_var_23["in_applock"]];?></td><?php
  442. }
  443. if ($this->action == "sign") {
  444. if ($_var_23["in_sign"]) {
  445. ?><td><?php echo $_var_23["in_package"] ? str_replace(["[0]", "[1]"], ["基础版", "稳定版"], $_var_23["in_package"]) : ["基础版", "稳定版"][$_var_23["in_cert_type"]];?></td><td><?php echo $_var_23["in_sign"] ? date("Y-m-d H:i", $_var_23["in_sign"]) : ($_var_23["in_sign"] ? "已到期" : "未开通");?></td><?php
  446. $_var_26 = db("sign")->where("in_aid", $_var_23["in_id"])->value("in_status");
  447. ?><td><?php echo $this->statusText[$_var_26];?></td><?php
  448. } else {
  449. ?><td>未开通</td><td>未开通</td><td>未开通</td><?php
  450. }
  451. }
  452. if ($this->action == "super") {
  453. ?><td><?php echo $_var_23["in_private"] ? "私有" : "公有";?></td><?php
  454. $_var_27 = db("ios_device")->where("app_id", $_var_23["in_id"])->count();
  455. ?><td><?php echo $_var_27;?></td><td class="in_super<?php echo $_var_23["in_id"];?>"><?php echo $_var_23["in_super"] ? "已开启" : "未开启";?></td><?php
  456. }
  457. ?><td><?php
  458. if ($this->action == "apps" && IN_DIST_ON || $this->action == "super" && IN_SUPER) {
  459. if ($_var_23["in_kid"]) {
  460. ?><a app_id="<?php echo bees_encrypt($_var_23["in_id"]);?>" ext="ipa" class="table-btn color-hover ms-btn-secondary cancel_merge" data-toggle="modal" data-target="#myModal2" <?php echo $_var_23["in_applock"] ? "disabled=\"disabled\"" : "";?>>取消合并</a><?php
  461. } else {
  462. ?><a href="javascript:;" class="table-btn color-hover ms-btn-secondary btn-success" data-toggle="modal" data-target="#myModal" app_id="<?php echo bees_encrypt($_var_23["in_id"]);?>" ext="ipa" <?php echo $_var_23["in_applock"] ? "disabled=\"disabled\"" : "";?>>合并应用</a><?php
  463. }
  464. ?><a href="<?php echo $_var_23["in_applock"] ? "javascript:;" : "/index/publish/" . $this->action . "?id=" . bees_encrypt($_var_23["in_id"]);?>" class="table-btn color-hover"<?php echo $_var_23["in_applock"] ? "disabled=\"disabled\"" : "";?>>更新</a><?php
  465. }
  466. if ($this->action == "sign" && IN_SIGN) {
  467. ?><?php echo $_var_24 ? "<a href=\"" . ($_var_23["in_applock"] ? "javascript:;" : "/index/publish_sign/" . $this->action . "?id=" . bees_encrypt($_var_23["in_id"])) . "\" class=\"table-btn color-hover\"" . ($_var_23["in_applock"] ? "disabled=\"disabled\"" : "") . ">立即签名</a>" : "<a href=\"/index/publish/sign\" class=\"table-btn color-hover\">请重新上传</a>";?><?php
  468. }
  469. if ($this->action == "super" && IN_SUPER) {
  470. ?><a href="javascript:;"<?php echo $_var_23["in_applock"] ? "disabled=\"disabled\"" : "";?> data-id="<?php echo $_var_23["in_id"];?>" data-in_super="0" data-in_private="<?php echo $_var_23["in_private"];?>" class="table-btn color-delete in_superBtn" data-container="body" data-toggle="popover" data-placement="top" data-trigger="hover" data-html="true" data-content="超级签名启用中,点击可停用" <?php echo $_var_23["in_super"] ? "" : "style=\"display:none\"";?>>
  471. 关闭</a><a href="javascript:;" <?php echo $_var_23["in_applock"] ? "disabled=\"disabled\"" : "";?> data-id="<?php echo $_var_23["in_id"];?>" data-in_super="1" data-in_private="<?php echo $_var_23["in_private"];?>" class="table-btn color-hover in_superBtn" data-container="body" data-toggle="popover" data-placement="top" data-trigger="hover" data-html="true" data-content="点击启用超级签名"<?php echo $_var_23["in_super"] ? "style=\"display:none\"" : "";?>>
  472. 开启
  473. </a><?php
  474. }
  475. if ($this->action == "apps") {
  476. if ($_var_23["in_applock"] == 0) {
  477. ?><a href="javascript:;" class="table-btn color-hover" onclick="setStatus('<?php echo bees_encrypt($_var_23["in_id"]);?>', -2)">下架</a><?php
  478. }
  479. if ($_var_23["in_applock"] == -2) {
  480. ?><a href="javascript:;" class="table-btn color-hover" onclick="setStatus('<?php echo bees_encrypt($_var_23["in_id"]);?>', 0)">上架</a><?php
  481. }
  482. }
  483. ?><a href="<?php echo $_var_23["in_applock"] ? "javascript:;" : "/index/publish_detail/" . $this->action . "?id=" . bees_encrypt($_var_23["in_id"]);?>" class="table-btn color-hover"<?php echo $_var_23["in_applock"] ? "disabled=\"disabled\"" : "";?>>详情</a>
  484. <a href="javascript:;" app_id="<?php echo bees_encrypt($_var_23["in_id"]);?>" class="table-btn color-delete delete-app">删除</a>
  485. </td>
  486. </tr><?php
  487. }
  488. ?> </table>
  489. </div>
  490. <?php
  491. if ($_var_7 == 0) {
  492. ?><div class="no-app text-center">
  493. <div class="mt60 small">
  494. <img src="/static/index/image/icon-19.png">
  495. </div>
  496. <div class="color-333 mt20">
  497. 暂无APP
  498. </div>
  499. <a href="/index/publish/<?php echo $this->action;?>" class="ms-btn ms-btn-primary btn-new-release clearfix mt20">
  500. <span class="iconfont icon-upload fl"></span>
  501. <span class="text fl">立即发布</span>
  502. </a>
  503. </div><?php
  504. }
  505. ?> </div>
  506. <?php
  507. if ($_var_10 != 1) {
  508. ?> <?php
  509. if ($_var_7 !== 0) {
  510. ?> <div style="text-align: center"><ul id="pager" class="pagination"><li><a>共<b><?php echo $_var_7;?></b>个应用</b> <?php echo $_var_9;?>/<?php echo $_var_10;?></a></li><?php
  511. if ($_var_9 == 1) {
  512. ?><li class='active'><a>首页</a></li><?php
  513. } else {
  514. ?><li><a href='?page=1&ext=<?php echo $_var_0;?>&keyword=<?php echo $_var_1;?>'>首页</a></li><?php
  515. }
  516. if ($_var_16) {
  517. ?><li><a href='?page=<?php echo $_var_16;?>&ext=<?php echo $_var_0;?>&keyword=<?php echo $_var_1;?>'>上一页</a></li><?php
  518. } else {
  519. }
  520. if ($_var_15) {
  521. ?><li><a href='?page=<?php echo $_var_15;?>&ext=<?php echo $_var_0;?>&keyword=<?php echo $_var_1;?>'>下一页</a></li><?php
  522. } else {
  523. }
  524. if ($_var_9 == $_var_10) {
  525. ?><li class='active'><a>尾页</a></li><?php
  526. } else {
  527. ?><li><a href='?page=<?php echo $_var_10;?>&ext=<?php echo $_var_0;?>&keyword=<?php echo $_var_1;?>'>尾页</a></li><?php
  528. }
  529. ?></ul></div> <?php
  530. }
  531. ?> <?php
  532. }
  533. ?>
  534. </div>
  535. </div>
  536. </div>
  537. </div>
  538. </div>
  539. </div>
  540. </div>
  541. </div>
  542. </div>
  543. <?php
  544. $this->inc_merge();
  545. ?> <script src="/static/pack/layer/layer.js"></script>
  546. <script src="/static/index/js/clipboard.min.js"></script>
  547. <?php
  548. if ($this->action == "sign" && IN_SIGNMETHOD) {
  549. ?> <script>
  550. function papapap() {
  551. $.get("<?php echo IN_API;?>/open/apps/get", {
  552. uid: '<?php echo $this->userid;?>',
  553. secret: '<?php echo IN_SECRET;?>'
  554. }, function (ret) {
  555. $.each(ret.data.items, function (k, v) {
  556. $.post('/index/apps/update', v, function (ret) {
  557. }, 'json');
  558. });
  559. }, 'json'
  560. );
  561. }
  562. </script>
  563. <?php
  564. }
  565. ?>
  566. <script>
  567. $(function () {
  568. if (!$.cookie('contactQQ')) {
  569. $("#showModalNotice").modal("show");
  570. $.cookie('contactQQ', '1', {expires: 0});
  571. }
  572. $(".contactQQ").on('click', function () {
  573. $.cookie('contactQQ', '1', {expires: 1});
  574. $(".chatQQ").trigger('click');
  575. $("#showModalNotice").modal("hide");
  576. });
  577. var mySwiper = new Swiper('.index-banner .swiper-container', {
  578. navigation: {
  579. nextEl: '.swiper-button-next',
  580. prevEl: '.swiper-button-prev'
  581. },
  582. pagination: {
  583. el: '.swiper-pagination',
  584. clickable: true
  585. },
  586. loop: true,
  587. speed: 800,
  588. autoplay: {
  589. delay: 4000,
  590. stopOnLastSlide: false,
  591. disableOnInteraction: true
  592. }
  593. });
  594. })
  595. </script>
  596. <script>
  597. var clipboard = new ClipboardJS('.copy-btn');
  598. clipboard.on('success', function (e) {
  599. alert('复制成功');
  600. });
  601. clipboard.on('error', function (e) {
  602. alert('复制失败');
  603. });
  604. $('.icon-search').click(function () {
  605. var keyword = $('#keyword').val();
  606. if (keyword) {
  607. window.location.href = "/index/apps/<?php echo $this->action;?>?ext=<?php echo $_var_0;?>&keyword=" + $('#keyword').val();
  608. }
  609. });
  610. $(".app_device li").on('click', function () {
  611. ext = $(this).data('system');
  612. window.location.href = "/index/apps/apps?keyword=<?php echo $_var_1;?>&ext=" + ext;
  613. });
  614. $('#keyword').bind('keyup', function (event) {
  615. if (event.keyCode == "13") {
  616. //回车执行查询
  617. $('.icon-search').click();
  618. }
  619. });
  620. function setStatus(id, status) {
  621. $.post('/index/ajax_profile/setStatus', {id, status}, function (ret) {
  622. ret.msg && alert(ret.msg);
  623. if (ret.code = 1) {
  624. window.location.reload();
  625. }
  626. }, 'json');
  627. }
  628. $(".delete-app").click(function () {
  629. var appId = $(this).attr("app_id");
  630. alert('你确定要删除该app吗?', function () {
  631. $.post('/index/ajax_profile/del', {id: appId}, function (data) {
  632. if (data.code == 200) {
  633. window.location.reload();
  634. } else {
  635. alert('删除失败');
  636. }
  637. }, 'json')
  638. }, function () {
  639. }, 'center', '确定', '取消');
  640. });
  641. $('.cdnBtn').click(function () {
  642. var id = $(this).attr('data-id');
  643. var remote = $(this).attr('data-remote');
  644. var th = $(this);
  645. var text = (remote == 1 ? '开启' : '关闭');
  646. alert('你确定' + text + 'CDN加速码?', function () {
  647. var index = layer.load(2, {
  648. icon: 16, shade: 0.01, content: '正在' + text + 'CDN加速...',
  649. success: function (layero) {
  650. layero.find('.layui-layer-content').css({
  651. 'paddingTop': '40px',
  652. 'width': '100px',
  653. 'textAlign': 'center',
  654. 'backgroundPositionX': 'center'
  655. });
  656. }
  657. });
  658. $.ajax({
  659. url: '/index/ajax_profile/changeremote',
  660. data: {id, remote},
  661. dataType: 'json',
  662. success: function (ret) {
  663. layer.close(index);
  664. console.log(ret)
  665. if (ret.msg) {
  666. alert(ret.msg, function () {
  667. if (ret.code == 200) {
  668. th.hide();
  669. th.siblings().show();
  670. }
  671. });
  672. }
  673. }
  674. })
  675. }, function () {
  676. }, 'center', '确定', '取消');
  677. });
  678. $('.in_superBtn').click(function () {
  679. var id = $(this).attr('data-id');
  680. var in_super = $(this).attr('data-in_super');
  681. var in_private = $(this).attr('data-in_private');
  682. var th = $(this);
  683. var text = (in_super == 1 ? '开启' : '关闭');
  684. var device_num = "<?php echo $this->user["device_num"];?>";
  685. var prv_device_num = "<?php echo $this->user["prv_device_num"];?>";
  686. var dn = in_private == 1 ? prv_device_num : device_num;
  687. if (in_super == 1 && dn < 1) {
  688. // return alert('请先购买' + (in_private == 1 ? '私有' : '公有') + '设备!');
  689. }
  690. alert('你确定' + text + '超级签名?', function () {
  691. var index = layer.load(2, {
  692. icon: 16, shade: 0.01, content: '正在' + text + '超级签名...',
  693. success: function (layero) {
  694. layero.find('.layui-layer-content').css({
  695. 'paddingTop': '40px',
  696. 'width': '100px',
  697. 'textAlign': 'center',
  698. 'backgroundPositionX': 'center'
  699. });
  700. }
  701. });
  702. $.ajax({
  703. url: '/index/ajax_profile/changein_super',
  704. data: {id, in_super},
  705. dataType: 'json',
  706. success: function (ret) {
  707. layer.close(index);
  708. console.log(ret)
  709. if (ret.msg) {
  710. alert(ret.msg)
  711. }
  712. if (ret.code == 200) {
  713. $('.in_super' + id).text(in_super == 1 ? '已开启' : '未开启');
  714. th.hide();
  715. th.siblings().show();
  716. setTimeout(function () {
  717. location.reload();
  718. }, 1000);
  719. }
  720. }
  721. })
  722. }, function () {
  723. }, 'center', '确定', '取消');
  724. });
  725. <?php
  726. if (IN_VERIFY == 1 && $this->user["in_verify"] != 1) {
  727. ?> Modal.templateModal({
  728. imgName: "modal-bg-2.jpg",
  729. title1: '提示',
  730. title2: '账户尚未实名,请尽快操作实名认证',
  731. p: '建议您:<br>尽快登录<?php echo IN_NAME;?>网站,点击右上角未实名认证,进行认证。<br>未实名认证,不能上传应用。',
  732. align: 'left', // %e7%a6%81%e6%ad%a2%e5%80%92%e5%8d%96%ef%bc%8c%38%31%32%39%37%32%32%37%36
  733. btnText: '知道了',
  734. btnClass: "modal-btn1"
  735. });
  736. <?php
  737. }
  738. ?> </script>
  739. <?php
  740. $this->footer();
  741. ?> </body>
  742. </html>
  743. <?php
  744. }
  745. function update()
  746. {
  747. $_var_28 = $this->userid;
  748. $_var_29 = SafeRequest("name");
  749. $_var_30 = SafeRequest("build_id");
  750. $_var_31 = SafeRequest("create_time");
  751. $_var_32 = SafeRequest("end_time");
  752. $_var_33 = SafeRequest("sign");
  753. $_var_34 = SafeRequest("version");
  754. $_var_35 = SafeRequest("cert");
  755. $_var_36 = SafeRequest("cert_type");
  756. $_var_37 = SafeRequest("size");
  757. $_var_38 = SafeRequest("icon_file");
  758. $_var_39 = SafeRequest("aid");
  759. $_var_40["in_uid"] = $_var_28;
  760. $_var_40["in_name"] = $_var_29;
  761. $_var_40["in_bid"] = $_var_30;
  762. $_var_40["in_sign"] = $_var_32;
  763. $_var_40["in_resign"] = $_var_33;
  764. $_var_40["in_team"] = $_var_35;
  765. $_var_40["in_size"] = $_var_37;
  766. $_var_40["in_deduct"] = getDeduct($_var_37);
  767. $_var_40["in_cert_type"] = $_var_36;
  768. if ($_var_41 = db("appid")->where("in_uid", $_var_28)->where("in_name", $_var_29)->where("in_bid", $_var_30)->where("in_form", "iOS")->where("in_sign_type", "1")->find()) {
  769. $_var_42 = $_var_41["in_id"];
  770. $_var_43 = db("appid")->where("in_uid", $_var_28)->where("in_name", $_var_29)->where("in_bid", $_var_30)->where("in_form", "iOS")->where("in_sign_type", "1")->update($_var_40);
  771. } else {
  772. $_var_40["in_bsvs"] = $_var_34;
  773. $_var_40["in_bvs"] = $_var_34;
  774. $_var_40["in_type"] = 2;
  775. $_var_40["in_uname"] = $this->username;
  776. $_var_40["in_form"] = "iOS";
  777. $_var_40["in_app"] = $_var_39 . ".ipa";
  778. $_var_40["in_mnvs"] = "8.0";
  779. $_var_40["in_sign_type"] = 1;
  780. $_var_44 = @file_get_contents(IN_API . $_var_38);
  781. $_var_45 = date("Y/m");
  782. creatdir(IN_IMAGES_PATH . "app/" . $_var_45 . "/");
  783. $_var_46 = uniqid() . basename($_var_38);
  784. file_put_contents(IN_IMAGES_PATH . "app/" . $_var_45 . "/" . $_var_46, $_var_44);
  785. $_var_40["in_icon"] = $_var_45 . "/" . $_var_46;
  786. $_var_40["in_addtime"] = strtotime($_var_31);
  787. $_var_42 = db("appid")->insertGetId($_var_40);
  788. }
  789. if (db("sign")->where("in_aid", $_var_42)->count()) {
  790. db("sign")->where("in_aid", $_var_42)->update(["api_aid" => $_var_39]);
  791. } else {
  792. $_var_47["in_aid"] = $_var_42;
  793. $_var_47["api_aid"] = $_var_39;
  794. $_var_47["in_aname"] = $_var_29;
  795. $_var_47["in_uid"] = $_var_28;
  796. $_var_47["in_uname"] = $this->username;
  797. $_var_47["in_cert"] = $_var_35;
  798. $_var_47["in_cert_type"] = $_var_36;
  799. db("sign")->insertGetId($_var_47);
  800. }
  801. reJSON($_var_43, $_var_42);
  802. }
  803. }