app.php 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751
  1. <?php
  2. namespace app\admin;
  3. use app\aliyunoss\Aliyunoss;
  4. use app\qiniuoss\Qiniuoss;
  5. class app extends Base
  6. {
  7. public function initialize()
  8. {
  9. parent::initialize();
  10. $this->Administrator(3);
  11. $this->header();
  12. ?>
  13. <link rel="stylesheet" type="text/css" media="screen" href="https://cdn.staticfile.org/ionicons/2.0.1/css/ionicons.min.css">
  14. <link href="/static/pack/fancybox/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css"/>
  15. <script src="/static/pack/fancybox/jquery.fancybox.min.js"></script>
  16. <script type="text/javascript" src="/xinadmin/js/xadmin.js"></script>
  17. <script src="/static/pack/fancybox/jquery.fancybox.pack.js"></script>
  18. <style type="text/css">
  19. .icon {
  20. font-size: 20px;
  21. }
  22. .btnnn {
  23. display: inline-block;
  24. height: 32px;
  25. line-height: 32px;
  26. padding: 0 18px;
  27. background-color: #094e1e;
  28. color: #fff;
  29. white-space: nowrap;
  30. text-align: center;
  31. font-size: 14px;
  32. border: none;
  33. border-radius: 2px;
  34. cursor: pointer;
  35. }
  36. .checkbox {
  37. height: 14px;
  38. position: relative;
  39. top: 0;
  40. width: 18px;
  41. height: 23px;
  42. line-height: 10px;
  43. border: 1px solid #d2d2d2;
  44. font-size: 12px;
  45. border-radius: 10px;
  46. background-color: #fff;
  47. -webkit-transition: .1s linear;
  48. transition: .1s linear;
  49. }
  50. .lightnum {
  51. color: #F60;
  52. height: 30px;
  53. line-height: 30px;
  54. padding: 0 8px;
  55. font-size: 14px;
  56. display: inline-block;
  57. height: 22px;
  58. line-height: 22px;
  59. vertical-align: top;
  60. padding: 0 8px;
  61. background-color: #009688;
  62. color: #fff;
  63. white-space: nowrap;
  64. text-align: center;
  65. font-size: 14px;
  66. border: none;
  67. border-radius: 2px;
  68. cursor: pointer;
  69. }
  70. .lightnum2 {
  71. height: 22px;
  72. line-height: 22px;
  73. padding: 0 5px;
  74. font-size: 12px;
  75. border: 1px solid #C9C9C9;
  76. background-color: #fff;
  77. color: #555;
  78. display: inline-block;
  79. height: 22px;
  80. line-height: 22px;
  81. padding: 0 10px;
  82. }
  83. .lightnum3 {
  84. padding: 0 5px;
  85. font-size: 12px;
  86. border: 1px solid #C9C9C9;
  87. background-color: #fff;
  88. color: #555;
  89. display: inline-block;
  90. height: 22px;
  91. line-height: 22px;
  92. }
  93. .lightnum4 {
  94. padding: 0 8px;
  95. font-size: 12px;
  96. border: 1px solid #C9C9C9;
  97. background-color: #fff;
  98. color: #555;
  99. display: inline-block;
  100. height: 22px;
  101. line-height: 22px;
  102. }
  103. .lightnum5 {
  104. display: inline-block;
  105. height: 24px;
  106. line-height: 24px;
  107. vertical-align: top;
  108. padding: 0 6px;
  109. background-color: #009688;
  110. color: #fff;
  111. white-space: nowrap;
  112. text-align: center;
  113. font-size: 14px;
  114. border: none;
  115. border-radius: 2px;
  116. cursor: pointer;
  117. }
  118. .layui-layer-iframe .layui-layer-btn, .layui-layer-page .layui-layer-btn {
  119. padding-top: 10px;
  120. background-color: #f5f5f5;
  121. }
  122. a{
  123. text-decoration: none;
  124. }
  125. a:hover{ text-decoration:none}
  126. </style>
  127. <?php
  128. }
  129. public function __destruct()
  130. {
  131. $this->footer();
  132. }
  133. function check()
  134. {
  135. $this->index([["in_applock", "=", "-1"]]);
  136. }
  137. function del()
  138. {
  139. $_var_9 = intval(SafeRequest("id", "get"));
  140. // var_dump($_var_9);die;
  141. $_var_10 = db("appid")->where("in_id", $_var_9)->delete();
  142. $this->ShowMessage("恭喜您,删除成功!", "?c=app", "infotitle2", 1000, 1);
  143. }
  144. function index($map = [])
  145. {
  146. $this->form = SafeRequest("form", "get");
  147. $this->form && ($map[] = ["in_form", "=", $this->form]);
  148. $this->status = SafeRequest("status", "get");
  149. is_numeric($this->status) && ($map[] = ["in_applock", "=", $this->status]);
  150. $this->sign_type = SafeRequest("sign_type", "get");
  151. is_numeric($this->sign_type) && ($map[] = ["in_sign_type", "=", $this->sign_type]);
  152. $_var_0 = SafeRequest("page", "get");
  153. $this->search = SafeRequest("search", "get");
  154. $this->search && ($map[] = ["in_name|in_uname", "like", "%" . $this->search . "%"]);
  155. $_var_1 = SafeRequest("app_id", "get");
  156. $_var_1 && ($map[] = ["in_id", "=", $_var_1]);
  157. $this->mapTime("in_addtime", true, $map);
  158. $_var_2 = db("appid")->where($map)->order("in_id desc")->paginate(["page" => $_var_0]);
  159. $_var_3 = $_var_2->items();
  160. $_var_4 = getRender($_var_2, $_var_0);
  161. $_var_5 = $_var_2->total();
  162. $_var_6 = [-2 => '<span class="lightnum4">下架</span>', -1 => '<span class="lightnum4">待审核</span>', '<span class="lightnum5">正常</span>', '<span class="lightnum4">封禁</span>'];
  163. ?>
  164. <div class="container"><?php
  165. $this->nav3();
  166. if ($this->search) {
  167. $_var_7 = "<li>以下是搜索“" . $this->search . "”的应用</li>";
  168. } else {
  169. $_var_7 = "<li>可以输入编号、应用名称、所属会员等关键词进行搜索</li>";
  170. }
  171. $this->searchForm($_var_7, "", function () {
  172. ?><select name="form" onchange="document.btnsearch.submit();">
  173. <option value="">全部系统</option>
  174. <option value="iOS" <?php echo $this->form == "iOS" ? "selected" : "";?>>iOS</option>
  175. <option value="Android" <?php echo $this->form == "Android" ? "selected" : "";?>>Android</option>
  176. </select>
  177. <select name="sign_type" onchange="document.btnsearch.submit();">
  178. <option value="">全部类型</option>
  179. <option value="0" <?php echo is_numeric($this->sign_type) && $this->sign_type == "0" ? "selected" : "";?>>内测分发</option>
  180. <option value="1" <?php echo is_numeric($this->sign_type) && $this->sign_type == "1" ? "selected" : "";?>>企业签</option>
  181. <option value="2" <?php echo is_numeric($this->sign_type) && $this->sign_type == "2" ? "selected" : "";?>>超级签</option>
  182. </select>
  183. <select name="status" onchange="document.btnsearch.submit();">
  184. <option value="">全部状态</option>
  185. <option value="0" <?php echo is_numeric($this->status) && $this->status == "0" ? "selected" : "";?>>正常</option>
  186. <option value="1" <?php echo is_numeric($this->status) && $this->status == "1" ? "selected" : "";?>>下架</option>
  187. <option value="-1" <?php echo is_numeric($this->status) && $this->status == "-1" ? "selected" : "";?>>待审核</option>
  188. <option value="-2" <?php echo is_numeric($this->status) && $this->status == "-2" ? "selected" : "";?>>封禁</option>
  189. </select><?php
  190. });
  191. ?>
  192. <form name="form" method="post" action="?c=app&a=allsave">
  193. <table class="tb tb2">
  194. <tr><td> <select id="in_allsave" name="in_allsave" onchange="all_save(this.form);">
  195. <option value="0">激活应用</option>
  196. <option value="1">封禁应用</option>
  197. <option value="-2">下架应用</option>
  198. <option value="del">删除应用</option>
  199. </select> &nbsp;&nbsp; <input type="submit" name="allsave" class="layui-btn" value="批量操作" /></td></tr>
  200. </table>
  201. <table class="layui-table">
  202. <thead>
  203. <tr>
  204. <th>
  205. <input type="checkbox" id="chkall" class="checkbox" onclick="CheckAll(this.form);"/>
  206. </th>
  207. <th>编号</th>
  208. <th>应用图标</th>
  209. <th>应用名称</th>
  210. <th>发布状态</th>
  211. <th>下载</th>
  212. <th>应用大小</th>
  213. <th>应用平台</th>
  214. <th>所属会员</th>
  215. <th>存储位置</th>
  216. <th>超级签名</th>
  217. <th>企业签名</th>
  218. <th>更新时间</th>
  219. <th>安装统计</th>
  220. <th>扣量</th>
  221. <th>编辑操作</th>
  222. </tr>
  223. </thead>
  224. <tbody>
  225. <?php
  226. if ($_var_5 == 0) {
  227. ?><tr><td colspan="22" style="margin:auto;text-align:center" >暂无数据</td></tr><?php
  228. }
  229. if ($_var_3) {
  230. foreach ($_var_3 as $_var_8) {
  231. ?><script>
  232. $(document).ready(
  233. function(){
  234. $("#thumb<?php echo $_var_8["in_id"];?>").fancybox({
  235. 'overlayColor':'#000',
  236. 'overlayOpacity':0.1,
  237. 'overlayShow':true,
  238. 'transitionIn':'elastic',
  239. 'transitionOut':'elastic'
  240. });
  241. });
  242. </script><?php
  243. $_var_9 = db("super_sign")->where("app_id", $_var_8["in_id"])->where("status", "5")->count();
  244. ?><tr class="hover">
  245. <td>
  246. <input class="checkbox" type="checkbox" name="in_id[]" id="in_id" value="<?php echo $_var_8["in_id"];?>">
  247. </td>
  248. <td class="td25"><?php echo $_var_8["in_id"];?></td>
  249. <td>
  250. <a href="<?php echo geticon($_var_8["in_icon"]);?>" id="thumb<?php echo $_var_8["in_id"];?>">
  251. <img src="<?php echo geticon($_var_8["in_icon"]);?>" onerror="this.src='static/index/image/<?php echo $_var_8["in_form"];?>.png'" width="25" height="25" />
  252. </a>
  253. </td>
  254. <td>
  255. <a href="<?php echo getlink($_var_8["in_id"]);?>" target="_blank" class="layui-table-link"><?php echo lightnum($_var_8["in_name"], SafeRequest("key", "get"));?></a>
  256. </td>
  257. <td ><?php echo $_var_6[$_var_8["in_applock"]];?></td>
  258. <td>
  259. <a class="layui-btn layui-btn-normal layui-btn-xs" href="<?php echo getapp($_var_8, 1);?>">下载</a>
  260. </td>
  261. <td><?php echo formatsize($_var_8["in_size"]);?></td>
  262. <td><?php echo $_var_8["in_form"];?></td>
  263. <td>
  264. <?php echo lightnum($_var_8["in_uname"], SafeRequest("key", "get"));?>
  265. </td>
  266. <td><?php echo $_var_8["remote"] ? lightnum('云储存') : '<span class="lightnum3">本地储存</span>';?></td>
  267. <td><?php echo $_var_8["in_sign"] ? lightnum("已开通(" . $_var_8["in_resign"] . ")") : ($_var_8["in_super"] == 1 ? lightnum("已开通") : "<span class='lightnum2'>未开通</span>");?></td>
  268. <td><?php echo ["未开通", "企业版", "未开通"][$_var_8["in_sign_type"]];?><?php echo $_var_8["in_sign"] ? lightnum("已开通(" . $_var_8["in_resign"] . ")") : ($_var_8["in_sign_type"] == 1 ? "开通中" : "");?></td>
  269. <td><?php echo date("Y-m-d H:i:s", $_var_8["in_updatetime"]);?></td>
  270. <td><?php echo $_var_8["in_sign_type"] == 2 ? $_var_9 : $_var_8["in_downloads"];?></td>
  271. <td><a href="?c=app&a=setSteal&in_id=<?php echo $_var_8["in_id"];?>" class="layui-table-link"><?php echo lightnum($_var_8["in_steal_on"] ? "已开启" : "<span class='lightnum2'>未开启</span>", "已开启");?></a>
  272. </td>
  273. <td>
  274. <a class="layui-btn layui-btn-normal layui-btn-xs" onclick="x_admin_show2t('编辑应用内容','?c=app&a=edit&in_id=<?php echo $_var_8["in_id"];?>')"><i class="layui-icon layui-icon-edit"></i>编辑</a>
  275. <a class="layui-btn layui-btn-danger layui-btn-xs" style="cursor:pointer" onclick="del_msgyy('?c=app&a=del&id=<?php echo $_var_8["in_id"];?>');"><i class="layui-icon layui-icon-delete"></i>删除</a>
  276. <?php
  277. if ($_var_8["in_super"]) {
  278. ?><?php
  279. }
  280. ?></td></tr><?php
  281. }
  282. }
  283. ?>
  284. </tbody>
  285. </table>
  286. <?php echo $this->render($_var_4);?>
  287. </form>
  288. </div>
  289. <?php
  290. }
  291. function getAc($_var_10)
  292. {
  293. $_var_11 = "in_points";
  294. $_var_12 = IN_POINTNAME;
  295. if ($_var_10["in_super"]) {
  296. $_var_11 = "device_num";
  297. $_var_12 = "公有设备";
  298. if ($_var_10["in_private"]) {
  299. $_var_11 = "prv_device_num";
  300. $_var_12 = "私有设备";
  301. }
  302. }
  303. $_var_13 = db("user")->where("in_userid", $_var_10["in_uid"])->value($_var_11) ?: 0;
  304. $_var_14 = "<p>" . $_var_12 . "(<span class=\"lightnum\">" . $_var_13 . "</span>)</p>";
  305. return $_var_14;
  306. }
  307. function setSteal()
  308. {
  309. $_var_15 = SafeRequest("in_id", "get");
  310. $_var_16 = db("appid")->where("in_id", $_var_15)->value("in_steal_on");
  311. db("appid")->where("in_id", $_var_15)->update(["in_steal_on" => intval(!$_var_16)]);
  312. $this->ShowMessage("恭喜您,修改成功!", $_SERVER["HTTP_REFERER"], "infotitle2", 1000, 1);
  313. }
  314. function allsave()
  315. {
  316. if (!submitcheck("allsave")) {
  317. $this->ShowMessage("表单验证不符,无法提交!", $_SERVER["PHP_SELF"], "infotitle3", 3000, 1);
  318. }
  319. $_var_17 = RequestBox("in_id");
  320. $_var_18 = SafeRequest("in_allsave", "post");
  321. if ($_var_17 == 0) {
  322. $this->ShowMessage("批量操作失败,请先勾选数据!", $_SERVER["HTTP_REFERER"], "infotitle3", 3000, 1);
  323. } else {
  324. if ($_var_18 == "del") {
  325. $_var_19 = db("appid")->where("in_id", "in", $_var_17)->select();
  326. foreach ($_var_19 as $_var_20) {
  327. $_var_21 = $_var_20["in_id"];
  328. $_var_22 = db("app")->where("in_uid", $_var_20["in_uid"])->where("in_appid", $_var_21)->select();
  329. foreach ($_var_22 as $_var_23) {
  330. db("app")->where("in_id", $_var_23["in_id"])->delete();
  331. db("user")->where("in_userid", $_var_23["in_uid"])->dec("in_spaceuse", $_var_23["in_size"])->update();
  332. $_var_24 = str_replace(array(".ipa", ".apk", ".mobileconfig"), "", $_var_23["in_app"]);
  333. if ($_var_23["remote"]) {
  334. $_var_25 = $_var_23["remote"] == 1 ? new Qiniuoss() : new Aliyunoss();
  335. $_var_25->delete($_var_23["in_app"]);
  336. }
  337. @unlink(IN_ATTACHMENT_PATH . $_var_24 . ".mobileprovision");
  338. @unlink(IN_ATTACHMENT_PATH . $_var_23["in_app"]);
  339. $_var_23["in_form"] == "iOS" && @destroyDir(IN_IPADIR_PATH . $_var_23["in_app"]);
  340. }
  341. db("appid")->where(array("in_id" => $_var_20["in_kid"]))->update(array("in_kid" => 0));
  342. @unlink(IN_IMAGES_PATH . "app/" . $_var_20["in_icon"]);
  343. if ($_var_20["in_form"] == "iOS") {
  344. $_var_26 = db("super_sign")->where("app_id", $_var_23["in_id"])->select();
  345. foreach ($_var_26 as $_var_23) {
  346. if ($_var_23["remote"]) {
  347. $_var_25 = $_var_23["remote"] == 1 ? new Qiniuoss() : new Aliyunoss();
  348. $_var_25->delete($_var_23["ipa_path"]);
  349. }
  350. @unlink(IN_UPLOADS_PATH . "ios_mobileprovision/" . $_var_23["udid"] . ".mobileprovision");
  351. @unlink(IN_ROOT . $_var_23["plist_path"]);
  352. @unlink(IN_ROOT . $_var_23["ipa_path"]);
  353. }
  354. db("super_sign")->where("app_id", $_var_23["in_id"])->delete();
  355. }
  356. }
  357. $_var_27 = db("appid")->where("in_id", "in", $_var_17)->delete();
  358. if ($_var_27) {
  359. db("downhistory")->where("appid", "in", $_var_17)->delete();
  360. db("salt")->where("in_aid", "in", $_var_17)->delete();
  361. db("signlog")->where("in_aid", "in", $_var_17)->delete();
  362. $this->ShowMessage("恭喜您,应用批量删除成功!", $_SERVER["HTTP_REFERER"], "infotitle2", 3000, 1);
  363. }
  364. } elseif ($_var_18 == 0) {
  365. db("appid")->where("in_id", "in", $_var_17)->update(["in_applock" => 0]);
  366. $this->ShowMessage("恭喜您,批量激活成功!", $_SERVER["HTTP_REFERER"], "infotitle2", 1000, 1);
  367. } elseif ($_var_18 == 1) {
  368. db("appid")->where("in_id", "in", $_var_17)->update(["in_applock" => 1]);
  369. $this->ShowMessage("恭喜您,批量封禁成功!", $_SERVER["HTTP_REFERER"], "infotitle2", 1000, 1);
  370. } elseif ($_var_18 == -2) {
  371. db("appid")->where("in_id", "in", $_var_17)->update(["in_applock" => -2]);
  372. $this->ShowMessage("恭喜您,批量下架成功!", $_SERVER["HTTP_REFERER"], "infotitle2", 1000, 1);
  373. }
  374. }
  375. }
  376. function edit()
  377. {
  378. $_var_28 = intval(SafeRequest("in_id", "get"));
  379. $this->EditBoard($_var_28, "?c=app&a=saveedit&in_id=" . $_var_28, "编辑");
  380. }
  381. function EditBoard($_var_29, $_var_30, $_var_31)
  382. {
  383. $_var_32 = db("appid")->where("in_id", $_var_29)->find();
  384. $_var_33 = db("user")->where("in_username", $_COOKIE["in_adminname"])->value("in_userid");
  385. $_var_34 = $_var_32["in_name"] ?? "";
  386. $_var_35 = $_var_29 ? $_var_32["in_uname"] : $_var_33;
  387. $_var_36 = intval($_var_32["in_sign_type"] ?? "");
  388. $_var_37 = $_var_32["in_mnvs"] ?? "";
  389. $_var_38 = $_var_32["in_form"] ?? "";
  390. $_var_39 = intval($_var_32["in_size"] ?? "");
  391. $_var_40 = $_var_32["in_bid"] ?? "";
  392. $_var_41 = $_var_32["in_bsvs"] ?? "";
  393. $_var_42 = $_var_32["in_bvs"] ?? "";
  394. $_var_43 = $_var_32["in_nick"] ?? "";
  395. $_var_44 = $_var_32["in_team"] ?? "";
  396. $_var_45 = $_var_32["in_icon"] ?? "";
  397. $_var_46 = $_var_32["in_app"] ?? "";
  398. $_var_47 = $_var_32["in_kid"] ?? "";
  399. $_var_48 = $_var_32["in_link"] ?? "";
  400. $_var_49 = db("signlog")->where("in_status", 1)->where("in_aid", $_var_29)->value("in_id");
  401. ?><script>
  402. function CheckForm(){
  403. if(document.form2.in_name.value==""){
  404. layer.msg("应用名称不能为空,请填写!", {icon: 1, time: 2000});
  405. document.form2.in_name.focus();
  406. return false;
  407. }
  408. else if(document.form2.in_uname.value==""){
  409. layer.msg("所属会员不能为空,请填写!", {icon: 1, time: 2000});
  410. document.form2.in_uname.focus();
  411. return false;
  412. }
  413. else if(document.form2.in_app.value==""){
  414. layer.msg("应用文件不能为空,请填写!", {icon: 1, time: 2000});
  415. document.form2.in_app.focus();
  416. return false;
  417. }
  418. else {
  419. return true;
  420. }
  421. }
  422. </script>
  423. <div class="container"><?php
  424. $this->nav3();
  425. ?>
  426. <form action="<?php echo $_var_30;?>" method="post" name="form2">
  427. <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin" style="padding: 20px 0 0 0;">
  428. <div class="layui-form-item">
  429. <div class="layui-inline">
  430. <label class="layui-form-label">所属会员:</label>
  431. <div class="layui-input-inline">
  432. <input type="text" class="layui-input" value="<?php echo $_var_35;?>" name="in_uname" id="in_uname">
  433. </div>
  434. </div>
  435. <div class="layui-inline">
  436. <label class="layui-form-label">应用名称</label>
  437. <div class="layui-input-inline">
  438. <input type="text" class="layui-input" value="<?php echo $_var_34;?>" name="in_name" id="in_name">
  439. </div>
  440. </div>
  441. <div class="layui-inline">
  442. <label class="layui-form-label">应用类型</label>
  443. <div class="layui-input-inline">
  444. <select name="in_sign_type" id="in_sign_type" disabled="disabled" class="ps">
  445. <option value="0" <?php if ($_var_36 == 0) { ?> selected<?php } ?>>内测分发</option>
  446. <option value="1" <?php if ($_var_36 == 1) { ?> selected<?php } ?>>企业版</option>
  447. <option value="2" <?php if ($_var_36 == 2) { ?> selected<?php } ?>>超级签</option>
  448. </select>
  449. </div>
  450. </div>
  451. </div>
  452. <div class="layui-form-item">
  453. <div class="layui-inline">
  454. <label class="layui-form-label">应用平台</label>
  455. <div class="layui-input-inline">
  456. <input type="text" class="layui-input" value="<?php echo $_var_38;?>" name="in_form" id="in_form">
  457. </div>
  458. </div>
  459. <div class="layui-inline">
  460. <label class="layui-form-label">应用大小:</label>
  461. <div class="layui-input-inline">
  462. <input type="text" class="layui-input" value="<?php echo $_var_39;?>" name="in_size" id="in_size" readonly>
  463. </div>
  464. </div>
  465. <div class="layui-inline">
  466. <label class="layui-form-label">版本兼容</label>
  467. <div class="layui-input-inline">
  468. <input type="text" class="layui-input" value="<?php echo $_var_37;?>" name="in_mnvs" id="in_mnvs">
  469. </div>
  470. </div>
  471. </div>
  472. <div class="layui-form-item">
  473. <div class="layui-inline">
  474. <label class="layui-form-label">应用标识</label>
  475. <div class="layui-input-inline">
  476. <input type="text" class="layui-input" value="<?php echo $_var_40;?>" name="in_bid" id="in_bid">
  477. </div>
  478. </div>
  479. <div class="layui-inline">
  480. <label class="layui-form-label">精简版本</label>
  481. <div class="layui-input-inline">
  482. <input type="text" class="layui-input" value="<?php echo $_var_41;?>" name="in_bsvs" id="in_bsvs">
  483. </div>
  484. </div>
  485. <div class="layui-inline">
  486. <label class="layui-form-label">详细版本</label>
  487. <div class="layui-input-inline">
  488. <input type="text" class="layui-input" value="<?php echo $_var_42;?>" name="in_bvs" id="in_bvs">
  489. </div>
  490. </div>
  491. </div>
  492. <div class="layui-form-item">
  493. <div class="layui-inline">
  494. <label class="layui-form-label">应用关联</label>
  495. <div class="layui-input-inline">
  496. <input type="text" class="layui-input" value="<?php echo $_var_47;?>" name="in_kid" id="in_kid" onkeyup="this.value=this.value.replace(/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
  497. </div>
  498. </div>
  499. <div class="layui-inline">
  500. <label class="layui-form-label">短连接后缀</label>
  501. <div class="layui-input-inline">
  502. <input type="text" class="layui-input" value="<?php echo $_var_48;?>" name="in_link" id="in_team">
  503. </div>
  504. </div>
  505. </div>
  506. <div class="layui-form-item">
  507. <div class="layui-col-md12">
  508. <label class="layui-form-label">公司名称</label>
  509. <div class="layui-input-block">
  510. <input type="text" class="layui-input" value="<?php echo $_var_43;?>" name="in_nick" id="in_nick">
  511. </div>
  512. </div>
  513. </div>
  514. <div class="layui-form-item">
  515. <div class="layui-col-md12">
  516. <label class="layui-form-label">集团信息</label>
  517. <div class="layui-input-block">
  518. <input type="text" class="layui-input" value="<?php echo $_var_44;?>" name="in_team" id="in_team">
  519. </div>
  520. </div>
  521. </div>
  522. <div class="layui-form-item">
  523. <div class="layui-col-md12">
  524. <label class="layui-form-label">应用图片</label>
  525. <div class="layui-input-block">
  526. <input type="text" class="layui-input" disabled="disabled" value="<?php echo $_var_45;?>" name="in_icon" id="in_icon">
  527. </div>
  528. </div>
  529. </div>
  530. <div class="layui-form-item">
  531. <div class="layui-col-md12">
  532. <label class="layui-form-label">应用文件名称</label>
  533. <div class="layui-input-block">
  534. <input type="text" class="layui-input" disabled="disabled" value="<?php echo $_var_46;?>" name="in_app" id="in_app">
  535. </div>
  536. </div>
  537. </div>
  538. <div class="layui-form-item">
  539. <label class="layui-form-label">应用状态:</label>
  540. <div class="layui-input-block">
  541. <input type="radio" name="in_applock" value="0" <?php if($_var_32['in_applock'] == "0"){ echo "checked"; } ?> title="正常" >
  542. <input type="radio" name="in_applock" value="1" <?php if($_var_32['in_applock'] == "1"){ echo "checked"; } ?> title="封禁">
  543. <input type="radio" name="in_applock" value="-2" <?php if($_var_32['in_applock'] == "-2"){ echo "checked"; } ?> title="下架">
  544. </div>
  545. </div>
  546. <tr><td><input type="text" class="txt" style="display:none" value="<?php echo $_var_45;?>" name="in_icon" id="in_icon"></td><?php
  547. if ($_var_29) {
  548. ?><td><div><input type="button" style="display:none" value="上传图标" onclick="pop.up('no', '上传图标', '/upload/admin/open_icon?id=<?php echo $_var_29;?>', '406px', '180px', '175px');" /></div></td><?php
  549. }
  550. ?></tr>
  551. <tr><td><input type="text" class="txt" style="display:none" value="<?php echo $_var_46;?>" name="in_app" id="in_app"></td>
  552. <td><div><input type="button" value="上传应用" style="display:none" onclick="pop.up('no', '上传应用', '/upload/admin/open', '406px', '180px', '175px');" /></div></td>
  553. </tr>
  554. <tr><td><input type="submit" class="btn" name="form2" style="display:none" id="btnsave" value="确定"/><?php
  555. if ($_var_49) {
  556. ?><input class="checkbox" type="checkbox" id="signid" name="signid" value="<?php echo $_var_49;?>" checked /><label for="signid">重置签名</label><?php
  557. }
  558. ?></td>
  559. </tr>
  560. </form>
  561. </div>
  562. </div>
  563. <?php
  564. }
  565. function add()
  566. {
  567. $_var_50 = array("", "", "", "", "", "", "", "", "", "", "", "", "", "", "");
  568. $this->EditBoard($_var_50, "?c=app&a=saveadd", "新增");
  569. }
  570. function saveadd()
  571. {
  572. if (!submitcheck("form2")) {
  573. $this->ShowMessage("表单验证不符,无法提交!", $_SERVER["PHP_SELF"], "infotitle3", 3000, 1);
  574. }
  575. $_var_51 = SafeRequest("in_name", "post");
  576. $_var_52 = SafeRequest("in_uname", "post");
  577. $_var_53 = SafeRequest("in_type", "post");
  578. $_var_54 = SafeRequest("in_mnvs", "post");
  579. $_var_55 = SafeRequest("in_form", "post");
  580. $_var_56 = intval(SafeRequest("in_size", "post"));
  581. $_var_57 = SafeRequest("in_bid", "post");
  582. $_var_58 = SafeRequest("in_bsvs", "post");
  583. $_var_59 = SafeRequest("in_bvs", "post");
  584. $_var_60 = SafeRequest("in_nick", "post");
  585. $_var_61 = SafeRequest("in_team", "post");
  586. $_var_62 = SafeRequest("in_link", "post");
  587. $_var_63 = db("appid")->where("in_link", $_var_62)->count();
  588. if ($_var_63) {
  589. $this->ShowMessage("下载链接已被占用,请更改", "history.back(1);", "infotitle3", 3000, 2);
  590. }
  591. $_var_64 = SafeRequest("in_icon", "post");
  592. $_var_65 = SafeRequest("in_app", "post");
  593. $_var_66 = intval(SafeRequest("in_kid", "post"));
  594. $_var_67 = db("user")->where("in_username", $_var_52)->find();
  595. if ($_var_67) {
  596. db("user")->where("in_userid", $_var_67["in_userid"])->inc("in_spaceuse", $_var_56)->update();
  597. db("appid")->insert(["in_name" => $_var_51, "in_uid" => $_var_67["in_userid"], "in_uname" => $_var_67["in_username"], "in_type" => $_var_53, "in_size" => $_var_56, "in_form" => $_var_55, "in_mnvs" => $_var_54, "in_bid" => $_var_57, "in_bsvs" => $_var_58, "in_bvs" => $_var_59, "in_nick" => $_var_60, "in_team" => $_var_61, "in_icon" => $_var_64, "in_link" => $_var_62, "in_app" => $_var_65, "in_hits" => 0, "in_kid" => $_var_66, "in_sign" => 0, "in_resign" => 0, "in_removead" => 0, "in_highspeed" => 0, "in_addtime" => date("Y-m-d H:i:s")]);
  598. $this->ShowMessage("恭喜您,应用新增成功!", "?c=app", "infotitle2", 1000, 1);
  599. } else {
  600. $this->ShowMessage("新增失败,所属会员不存在!", "history.back(1);", "infotitle3", 3000, 2);
  601. }
  602. }
  603. function saveedit()
  604. {
  605. if (!submitcheck("form2")) {
  606. $this->ShowMessage("表单验证不符,无法提交!", $_SERVER["PHP_SELF"], "infotitle3", 3000, 1);
  607. }
  608. $_var_68 = intval(SafeRequest("in_id", "get"));
  609. $_var_69 = SafeRequest("in_name", "post");
  610. $_var_70 = SafeRequest("in_uname", "post");
  611. $_var_71 = SafeRequest("in_type", "post");
  612. $_var_72 = SafeRequest("in_mnvs", "post");
  613. $_var_73 = SafeRequest("in_form", "post");
  614. $_var_74 = intval(SafeRequest("in_size", "post"));
  615. $_var_75 = SafeRequest("in_bid", "post");
  616. $_var_76 = SafeRequest("in_bsvs", "post");
  617. $_var_77 = SafeRequest("in_bvs", "post");
  618. $_var_78 = SafeRequest("in_nick", "post");
  619. $_var_503 = SafeRequest("in_sign_type", "post");
  620. $_var_79 = SafeRequest("in_team", "post");
  621. $_var_80 = SafeRequest("in_link", "post");
  622. $_var_99 = SafeRequest("in_applock", "post");
  623. if ($_var_99 == "del") {
  624. $_var_19 = db("appid")->where("in_id", "=", $_var_68)->select();
  625. foreach ($_var_19 as $_var_20) {
  626. $_var_21 = $_var_20["in_id"];
  627. $_var_22 = db("app")->where("in_uid", $_var_20["in_uid"])->where("in_appid", $_var_21)->select();
  628. foreach ($_var_22 as $_var_23) {
  629. db("app")->where("in_id", $_var_23["in_id"])->delete();
  630. db("user")->where("in_userid", $_var_23["in_uid"])->dec("in_spaceuse", $_var_23["in_size"])->update();
  631. $_var_24 = str_replace(array(".ipa", ".apk", ".mobileconfig"), "", $_var_23["in_app"]);
  632. if ($_var_23["remote"]) {
  633. $_var_25 = $_var_23["remote"] == 1 ? new Qiniuoss() : new Aliyunoss();
  634. $_var_25->delete($_var_23["in_app"]);
  635. }
  636. @unlink(IN_ATTACHMENT_PATH . $_var_24 . ".mobileprovision");
  637. @unlink(IN_ATTACHMENT_PATH . $_var_23["in_app"]);
  638. $_var_23["in_form"] == "iOS" && @destroyDir(IN_IPADIR_PATH . $_var_23["in_app"]);
  639. }
  640. db("appid")->where(array("in_id" => $_var_20["in_kid"]))->update(array("in_kid" => 0));
  641. @unlink(IN_IMAGES_PATH . "app/" . $_var_20["in_icon"]);
  642. if ($_var_20["in_form"] == "iOS") {
  643. $_var_26 = db("super_sign")->where("app_id", $_var_23["in_id"])->select();
  644. foreach ($_var_26 as $_var_23) {
  645. if ($_var_23["remote"]) {
  646. $_var_25 = $_var_23["remote"] == 1 ? new Qiniuoss() : new Aliyunoss();
  647. $_var_25->delete($_var_23["ipa_path"]);
  648. }
  649. @unlink(IN_UPLOADS_PATH . "ios_mobileprovision/" . $_var_23["udid"] . ".mobileprovision");
  650. @unlink(IN_ROOT . $_var_23["plist_path"]);
  651. @unlink(IN_ROOT . $_var_23["ipa_path"]);
  652. }
  653. db("super_sign")->where("app_id", $_var_23["in_id"])->delete();
  654. }
  655. }
  656. $_var_27 = db("appid")->where("in_id", "=", $_var_68)->delete();
  657. if ($_var_27) {
  658. db("downhistory")->where("appid", "=", $_var_68)->delete();
  659. db("salt")->where("in_aid", "=", $_var_68)->delete();
  660. db("signlog")->where("in_aid", "=", $_var_68)->delete();
  661. }
  662. } elseif ($_var_99 == 0) {
  663. // var_dump($_var_99);die;
  664. db("appid")->where("in_id", "=", $_var_68)->update(["in_applock" => 0]);
  665. } elseif ($_var_99 == 1) {
  666. db("appid")->where("in_id", "=", $_var_68)->update(["in_applock" => 1]);
  667. } elseif ($_var_99 == -2) {
  668. db("appid")->where("in_id", "=", $_var_68)->update(["in_applock" => -2]);
  669. }
  670. $_var_81 = db("appid")->where("in_link", $_var_80)->where("in_id", "<>", $_var_68)->count();
  671. if ($_var_81) {
  672. $this->ShowMessage("下载链接已被占用,请更改", "history.back(1);", "infotitle3", 3000, 2);
  673. }
  674. $_var_82 = SafeRequest("in_icon", "post");
  675. $_var_83 = SafeRequest("in_app", "post");
  676. $_var_84 = intval(SafeRequest("in_kid", "post"));
  677. $_var_85 = intval(SafeRequest("signid", "post"));
  678. $_var_86 = db("user")->where("in_username", $_var_70)->find();
  679. if ($_var_86) {
  680. $_var_87 = db("appid")->where("in_id", $_var_68)->find();
  681. if ($_var_82 !== $_var_87["in_icon"]) {
  682. @unlink("data/attachment/" . $_var_87["in_icon"]);
  683. }
  684. if ($_var_83 !== $_var_87["in_app"]) {
  685. @unlink("data/attachment/" . $_var_87["in_app"]);
  686. db("user")->where("in_userid", $_var_87["in_uid"])->dec("in_spaceuse", $_var_87["in_size"])->update();
  687. db("user")->where("in_userid", $_var_86["in_userid"])->inc("in_spaceuse", $_var_74)->update();
  688. } elseif ($_var_86["in_userid"] !== $_var_87["in_uid"]) {
  689. $_var_88 = db("app")->where("in_uid", $_var_87["in_uid"])->where("in_appid", $_var_68)->sum("in_size");
  690. db("user")->where("in_userid", $_var_87["in_uid"])->dec("in_spaceuse", $_var_88)->update();
  691. db("user")->where("in_userid", $_var_86["in_userid"])->inc("in_spaceuse", $_var_88)->update();
  692. db("app")->where("in_uid", $_var_87["in_uid"])->where("in_appid", $_var_68)->update(["in_uid" => $_var_86["in_userid"], "in_uname" => $_var_86["in_username"]]);
  693. }
  694. $_var_85 and db("signlog")->where(array("in_id" => $_var_85))->update(array("in_status" => 2));
  695. db("appid")->where("in_id", $_var_68)->update(["in_name" => $_var_69, "in_uid" => $_var_86["in_userid"], "in_uname" => $_var_86["in_username"], "in_type" => $_var_71, "in_size" => $_var_74, "in_form" => $_var_73, "in_mnvs" => $_var_72, "in_bid" => $_var_75,'in_sign_type'=>$_var_503, "in_bsvs" => $_var_76, "in_bvs" => $_var_77, "in_nick" => $_var_78, "in_team" => $_var_79, "in_link" => $_var_80, "in_icon" => $_var_82, "in_app" => $_var_83, "in_kid" => $_var_84, "in_addtime" => date("Y-m-d H:i:s")]);
  696. $this->ShowMessage("恭喜您,应用编辑成功!", $_SERVER["HTTP_REFERER"], "infotitle2", 1000, 1);
  697. } else {
  698. $this->ShowMessage("编辑失败,所属会员不存在!", "history.back(1);", "infotitle3", 3000, 2);
  699. }
  700. }
  701. }