recycle.ctrl.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /**
  3. * [WeEngine System] Copyright (c) 2014 WE7.CC
  4. * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
  5. */
  6. defined('IN_IA') or exit('Access Denied');
  7. load()->model('account');
  8. $dos = array('display', 'recover', 'delete');
  9. $do = in_array($do, $dos) ? $do : 'display';
  10. if (!in_array($_W['role'], array(ACCOUNT_MANAGE_NAME_OWNER, ACCOUNT_MANAGE_NAME_FOUNDER, ACCOUNT_MANAGE_NAME_VICE_FOUNDER))) {
  11. itoast('无权限操作!', referer(), 'error');
  12. }
  13. $_W['page']['title'] = $account_typename . '回收站 - ' . $account_typename;
  14. if ($do == 'display') {
  15. $pindex = max(1, $_GPC['page']);
  16. $psize = 20;
  17. $start = ($pindex - 1) * $psize;
  18. $condition = '';
  19. $param = array();
  20. $keyword = trim($_GPC['keyword']);
  21. $type_condition = array(
  22. ACCOUNT_TYPE_APP_NORMAL => array(ACCOUNT_TYPE_APP_NORMAL),
  23. ACCOUNT_TYPE_OFFCIAL_NORMAL => array(ACCOUNT_TYPE_OFFCIAL_NORMAL, ACCOUNT_TYPE_OFFCIAL_AUTH),
  24. ACCOUNT_TYPE_OFFCIAL_AUTH => array(ACCOUNT_TYPE_OFFCIAL_NORMAL, ACCOUNT_TYPE_OFFCIAL_AUTH),
  25. ACCOUNT_TYPE_WEBAPP_NORMAL => array(ACCOUNT_TYPE_WEBAPP_NORMAL),
  26. ACCOUNT_TYPE_PHONEAPP_NORMAL => array(ACCOUNT_TYPE_PHONEAPP_NORMAL),
  27. );
  28. $type_condition_sql = "'".implode("','", $type_condition[ACCOUNT_TYPE])."'";
  29. if (!empty($_W['isfounder'])) {
  30. $condition .= " WHERE a.acid <> 0 AND b.isdeleted = 1 AND b.type IN ($type_condition_sql)";
  31. $order_by = " ORDER BY a.`acid` DESC";
  32. } else {
  33. $condition .= "LEFT JOIN ". tablename('uni_account_users')." as c ON a.uniacid = c.uniacid WHERE a.acid <> 0 AND c.uid = :uid AND b.isdeleted = 1 AND b.type IN ($type_condition_sql)";
  34. $param[':uid'] = $_W['uid'];
  35. $order_by = " ORDER BY c.`rank` DESC, a.`acid` DESC";
  36. }
  37. if(!empty($keyword)) {
  38. $condition .=" AND a.`name` LIKE :name";
  39. $param[':name'] = "%{$keyword}%";
  40. }
  41. $tsql = "SELECT count(*) FROM " .tablename(uni_account_tablename(ACCOUNT_TYPE)) . " AS a LEFT JOIN " . tablename('account') . " AS b ON a.acid = b.acid {$condition} {$order_by}";
  42. $sql = $sql = "SELECT * FROM ". tablename(uni_account_tablename(ACCOUNT_TYPE)). " as a LEFT JOIN ". tablename('account'). " as b ON a.acid = b.acid {$condition} {$order_by}, a.`uniacid` DESC LIMIT {$start}, {$psize}";
  43. $total = pdo_fetchcolumn($tsql, $param);
  44. $del_accounts = pdo_fetchall($sql, $param);
  45. if(!empty($del_accounts)) {
  46. foreach ($del_accounts as &$account) {
  47. $settings = uni_setting($account['uniacid'], array('notify'));
  48. if(!empty($settings['notify'])) {
  49. $account['sms'] = $settings['notify']['sms']['balance'];
  50. }else {
  51. $account['sms'] = 0;
  52. }
  53. $account['thumb'] = tomedia('headimg_'.$account['acid']. '.jpg').'?time='.time();
  54. $account['setmeal'] = uni_setmeal($account['uniacid']);
  55. }
  56. }
  57. $pager = pagination($total, $pindex, $psize);
  58. template('account/recycle' . ACCOUNT_TYPE_TEMPLATE);
  59. }
  60. if ($do == 'recover') {
  61. $acid = intval($_GPC['acid']);
  62. $uniacid = intval($_GPC['uniacid']);
  63. $state = permission_account_user_role($_W['uid'], $uniacid);
  64. if($state != ACCOUNT_MANAGE_NAME_FOUNDER && $state != ACCOUNT_MANAGE_NAME_OWNER) {
  65. itoast('没有权限,请联系该公众号的主管理员或网站创始人进行恢复操作!', referer(), 'error');
  66. }
  67. $account_info = permission_user_account_num();
  68. if ($account_info['uniacid_limit'] <= 0 && $_W['role'] != ACCOUNT_MANAGE_NAME_FOUNDER) {
  69. itoast('您所在用户组可添加的主公号数量已达上限,请停用后再行恢复此公众号!', referer(), 'error');
  70. }
  71. if (!empty($uniacid)) {
  72. pdo_update('account', array('isdeleted' => 0), array('uniacid' => $uniacid));
  73. cache_delete("uniaccount:{$uniacid}");
  74. cache_delete("unisetting:{$uniacid}");
  75. } else {
  76. pdo_update('account', array('isdeleted' => 0), array('acid' => $acid));
  77. }
  78. itoast('恢复成功', referer(), 'success');
  79. }
  80. if($do == 'delete') {
  81. if (empty($_W['isajax']) || empty($_W['ispost'])) {
  82. iajax(0, '非法操作!', referer());
  83. }
  84. $uniacid = intval($_GPC['uniacid']);
  85. $acid = intval($_GPC['acid']);
  86. $state = permission_account_user_role($_W['uid'], $uniacid);
  87. if (!in_array($state, array(ACCOUNT_MANAGE_NAME_OWNER, ACCOUNT_MANAGE_NAME_FOUNDER, ACCOUNT_MANAGE_NAME_VICE_FOUNDER))) {
  88. itoast('没有权限!', referer(), 'error');
  89. }
  90. account_delete($acid);
  91. iajax(0, '删除成功!', referer());
  92. }