modelAdmin = model('Admin'); $this->childrenGroupIds = $this->auth->getChildrenGroupIds($this->auth->isSuperAdmin() ? true : false); $this->view->assign("payMethodList", model('AdminExtend')->getPayMethodList()); if(isset($_GET['ids']) && $_GET['ids']>0){ $this->authId = $_GET['ids']; $this->assignconfig('ids',$this->authId); }else{ $this->authId = $this->auth->id; $this->assignconfig('ids',0); } if (in_array($this->group, [ AdminConstants::ADMIN_GROUP_ID_CHANNEL, AdminConstants::ADMIN_GROUP_ID_AGENT, AdminConstants::ADMIN_GROUP_ID_CUSTOMER_SERVICE, AdminConstants::ADMIN_GROUP_ID_OPERATOR, AdminConstants::ADMIN_GROUP_ID_VIP, AdminConstants::ADMIN_GROUP_ID_VIP_OPERATOR, ])) { $this->assignconfig("admin", ['id' => $this->authId]); $extends = model('Admin_extend')->where('admin_id', $this->authId)->find(); $this->benefit = $extends->benefit; $this->assign('benefit', $this->benefit); $this->assignconfig('benefit', $this->benefit); }else{ $this->assign('benefit', 1); $this->assignconfig('benefit', 1); } $this->assign('group',$this->group); $this->assignconfig('group',$this->group); } /** * 查看 */ public function index() { //今天 $today = date('Ymd', time()); //昨天 $yesterday = date('Ymd', strtotime('-1 days')); $platformlist = model("platform")->getPlatformList(); $ophosts = OfficialAccountsService::instance()->getOphostModel() ->where('status', 1) ->column('id, concat(id,"|",host,"\|",p_desc)'); $wxpays = OfficialAccountsService::instance()->getWxpayModel() ->where('status', 1) ->column('id, concat(id," | ",pay_host," \| ",name,if(is_closure=\'1\',"(被封)",""))'); $this->assignconfig('platforms',$platformlist); $this->assignconfig('ophosts',$ophosts); $this->assignconfig('wxpays',$wxpays); if ($this->request->isAjax()) { $channels = $this->modelAdmin->join('auth_group_access a', 'a.uid= admin.id')->where('a.group_id', 'neq', 4)->select(); $cNames = []; foreach ($channels as $channel) { $cNames[$channel->id] = $channel->nickname; } // list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $filter = $this->request->get("filter", ''); $sort = $this->request->get("sort", "id"); $order = $this->request->get("order", "DESC"); $offset = $this->request->get("offset", 0); $limit = $this->request->get("limit", 0); $filter = json_decode($filter, TRUE); $where = []; $idMap = [ 'ophost'=>'ophost_id', 'wxpay'=>'wxpay_id', 'menuophost'=>'menuophost_id', 'menuwxpay_host'=>'menuwxpay_id', ]; if($filter){ foreach ($filter as $k => $v){ if(array_key_exists($k, $idMap)){ $where["ac.{$idMap[$k]}"] = $v; } elseif ($k == "admin.id" || $k == "admin_extend.reward_state" || $k == "ac.platform_id") { $where[$k] = $v; } elseif ($k == "status") { $where['admin.' . $k] = $v; } elseif ($k == "nickname" || $k == "username") { $where['admin.' . $k] = ['like', "%{$v}%"]; } else { $where[$k] = ['like',"%{$v}%"]; } } } $adminWhere = []; if (in_array($this->group, [ AdminConstants::ADMIN_GROUP_ID_SUPER_ADMIN, AdminConstants::ADMIN_GROUP_ID_TECHNICAL_SUPPORT, AdminConstants::ADMIN_GROUP_ID_CONFIG_MANAGER ])) { //如果当前是超管 $adminWhere['adminExtend.distribute'] = '1'; }else{ $adminWhere['adminExtend.create_by'] = $this->authId; } //dump($where);die; $total = $this->modelAdmin ->with("adminExtend") ->join("admin_config ac","admin.id = ac.admin_id","left") ->join('auth_group_access a', 'a.uid= admin.id') ->join('admin a2','a2.id=admin_extend.create_by', "LEFT") ->where($adminWhere) ->where($where) ->where('a.group_id', AdminConstants::ADMIN_GROUP_ID_AGENT) ->count(); $list = $this->modelAdmin ->with("adminExtend") ->join("admin_config ac","admin.id = ac.admin_id","left") ->join('auth_group_access a', 'a.uid= admin.id') ->join('orders_collect o','o.admin_id = admin.id and o.type=3 and o.flag =1 and business_line="0"','left') ->join('admin_money m','m.admin_id = admin.id','left') ->join('admin a2','a2.id=admin_extend.create_by', "LEFT") ->where($where) ->where($adminWhere) ->where('a.group_id', AdminConstants::ADMIN_GROUP_ID_AGENT) ->field('o.id as oid,o.recharge_money as recharge_money,m.cash_money,m.count_cash_money,m.split_money,ac.is_fouce,ac.entryhost_id,ac.guide_domain,ac.platform_list,ac.appid,ac.qrcode_image,a2.id as create_id, a2.username as create_username, a2.nickname as create_nickname') ->order($sort, $order) ->limit($offset, $limit) ->select(); $todayRes = $this->modelAdmin ->with("adminExtend") ->join("admin_config ac","admin.id = ac.admin_id","left") ->join('auth_group_access a','a.uid= admin.id') ->join('orders_collect o','o.admin_id = admin.id and o.type=1 and o.flag =1 and business_line="0" and o.createdate='.$today,'left') ->join('admin a2','a2.id=admin_extend.create_by', "LEFT") ->where($where) ->where($adminWhere) ->where('a.group_id',AdminConstants::ADMIN_GROUP_ID_AGENT) ->field('o.id as oid,o.recharge_money as recharge_money') ->order($sort, $order) ->limit($offset, $limit) ->select(); $yesterdayRes = $this->modelAdmin ->with("adminExtend") ->join("admin_config ac","admin.id = ac.admin_id","left") ->join('auth_group_access a','a.uid= admin.id') ->join('orders_collect o','o.admin_id = admin.id and o.type=1 and o.flag =1 and business_line="0" and o.createdate='.$yesterday,'left') ->join('admin a2','a2.id=admin_extend.create_by', "LEFT") ->where($where) ->where($adminWhere) ->where('a.group_id',AdminConstants::ADMIN_GROUP_ID_AGENT) ->field('o.id as oid,o.recharge_money as recharge_money') ->order($sort, $order) ->limit($offset, $limit) ->select(); foreach ($list as $k => &$v) { $v['no_cash_money'] = $v['benefit_money'] = 0; //未提现金额,结算单金额 $money_collect = model('orders_collect')->sumCollect($v['id'],1,1, '20180101', date("Ymd")); if ($money_collect) { $v['benefit_money'] = $money_collect['recharge_money_benefit']; $v['no_cash_money'] = StringHelper::moneyFormat(($money_collect['recharge_money_benefit']*100-$v['cash_money']*100-$v['count_cash_money']*100 - $v['split_money']*100)/100); } $v['entryhost'] = ""; $entryinfo = model("entryhost")->getinfo($v['entryhost_id']); if($entryinfo){ $v['entryhost'] = $entryinfo['host']; } $adminconfiginfo = model("AdminConfig")->getAdminInfoAll($v['id']); $v['ophost'] = ""; $v['wxpay'] = ""; $v['menuophost'] = ""; $v['menuwxpay_host'] = ""; if($adminconfiginfo){ $v['ophost'] = $adminconfiginfo['ophost_host']; $v['wxpay'] = $adminconfiginfo['wxpay_name']."-{$adminconfiginfo['wxpay_pay_host']}"; if(isset($adminconfiginfo['menuophost'])) $v['menuophost'] = $adminconfiginfo['menuophost']; if(isset($adminconfiginfo['menuwxpay_host'])) $v['menuwxpay_host'] = $adminconfiginfo['menuwxpay_host']; } $v['platforms'] = ""; if(!empty($v['platform_list'])){ $platarr = explode(",",trim($v['platform_list'],",")); foreach ($platformlist as $pk=>$pv){ if(in_array($pv['id'],$platarr)){ $token = model("ptoken")->getToken($pv['id'],$v['id']); if($token){ $v['platforms'] .= $pv['name']."-已授权
"; }else{ $v['platforms'] .= $pv['name']."-未授权
"; } } } } if(empty($v['platforms'])) $v['platforms'] = "无"; $v['admin_extend']['create_by'] = $cNames[$v['admin_extend']['create_by']]; $v['today_recharge_money'] = $todayRes[$k]['recharge_money']; $v['yesterday_recharge_money'] = $yesterdayRes[$k]['recharge_money']; //短链接关联条数 $v['short_relation_count'] = model('ShortRelation')->where(['admin_id'=>$v['id']])->count(); //导粉链接关联条数 $v['guide_relation_count'] = model('GuideRelation')->where(['admin_id'=>$v['id']])->count(); } unset($v); $result = array("total" => $total, "rows" => $list); return json($result); } return $this->view->fetch(); } /** * 代理商订单明细 */ /*public function orders($ids) { $ids = intval($ids); $userInfo = model('Admin')->get($ids); //$list = model('Orders')->join('User u', 'u.id=orders.user_id')->join('Book b', 'orders.book_id=b.id', 'LEFT')->where('orders.admin_id', $ids)->paginate(10); $list = model('Orders') ->join('User u', 'u.id=orders.user_id') ->join('Book b', 'orders.book_id=b.id', 'LEFT') ->where('orders.admin_id', $ids) ->field('u.id,orders.user_id,u.avatar,u.nickname,orders.payid,orders.money,orders.state,orders.kandian,orders.free_kandian,b.name,b.author,orders.createtime') ->order('orders.createtime','desc') ->paginate(10); // echo model('Orders')->getLastSql(); if($list){ foreach($list as $key=>$val){ $list[$key]['createtime'] = date('Y-m-d H:i:s',$val['createtime']); } } $this->assign('list', $list); $this->assign('userInfo', $userInfo); //dump($list); return $this->view->fetch(); }*/ /** * 读者管理 * @param $ids */ public function users($ids) { header('location:/admin/auth/user/index?agent=' . $ids); } /** * 代理商数据统计 */ public function collect($ids) { $ids = intval($ids); $userInfo = model('Admin')->get($ids); $users = model('UserCollect')->where(['admin_id' => $ids, 'type' => 3])->find(); //用户统计 $collect = model('OrdersCollect')->where(['admin_id' => $ids, 'type' => 3])->find(); //订单统计 $this->assign('userInfo', $userInfo); $this->assign('users', $users); $this->assign('collect', $collect); return $this->view->fetch(); } /** * 更多 */ public function more($ids) { $this->assign('ids', $ids); $this->assign('user', '/admin/auth/agent/users/ids/' . $ids); $this->assign('order', '/admin/auth/agent/orders/ids/' . $ids); return $this->view->fetch(); } /** * 添加 */ public function add() { if ($this->request->isPost()) { $params = $this->request->post("row/a"); $extends = $this->request->post("extend/a"); if(!empty($extends['idcard_no'])){ $flag = validateIDCard($extends['idcard_no']); if(!$flag){ $this->error('身份证号不合法,请重新填写'); } } if ($params) { $params['salt'] = Random::alnum(); if (! AdminService::instance()->checkPassword($params['password'])){ $this->error(AdminService::instance()->getPasswordRule()); } $params['password'] = md5(md5($params['password']) . $params['salt']); $params['avatar'] = asset('/img/avatar.png'); //设置新管理员默认头像。 $result = $this->modelAdmin->validate('Admin.add')->save($params); if ($result === false) { $this->error($this->modelAdmin->getError()); } $group = $this->request->post("group/a"); //过滤不允许的组别,避免越权 $group = array_intersect($this->childrenGroupIds, $group); $dataset = []; foreach ($group as $value) { $dataset[] = ['uid' => $this->modelAdmin->id, 'group_id' => $value]; } model('AuthGroupAccess')->insertAll($dataset); if ($extends) { $extends['admin_id'] = $this->modelAdmin->id; $extends['create_by'] = Session::get('admin')['id']; $res = model('Admin_extend')->save($extends); $redis = Redis::instance(); $key = 'AE:'.$this->modelAdmin->id; $redis->del($key); if ($res === false) { $this->error(model('Admin_extend')->getError()); } if(isset($extends['distribute']) && $extends['distribute']=='1'){ $parentAdminConfig = model('AdminConfig')->where(['admin_id'=>Session::get('admin')['id']])->find(); $adminData = []; $adminData['admin_id'] = $this->modelAdmin->id; $adminData['platform_list'] = $parentAdminConfig->platform_list; $adminData['platform_id'] = $parentAdminConfig->platform_id; $adminData['ophost_id'] = $parentAdminConfig->ophost_id; $adminData['wxpay_id'] = $parentAdminConfig->wxpay_id; $adminData['menuophost_id'] = $parentAdminConfig->menuophost_id; $adminData['menuwxpay_id'] = $parentAdminConfig->menuwxpay_id; $adminData['menu_platform_id'] = $parentAdminConfig->menu_platform_id; $adminData['fakeophost_id'] = $parentAdminConfig->fakeophost_id; $adminData['fakemenuophost_id'] = $parentAdminConfig->fakemenuophost_id; $adminData['unpay_tip'] = '1'; $adminData['read_tip'] = '1'; $adminData['ref_out_push'] = $parentAdminConfig->ref_out_push; $adminData['book_guide_chapter_idx'] = config('site.book_guide_chapter_idx'); $adminData['createtime'] = time(); $adminData['updatetime'] = time(); $resultSql = model('AdminConfig')->insert($adminData); if ($resultSql === false) { $this->error(model('AdminConfig')->getError()); } } } $this->success(); } $this->error(); } //判断是否显示配号 $distr = ''; if($this->group == 3){ $ae = model('AdminExtend')->where('admin_id',$this->auth->id)->find(); if(!empty($ae) && $ae->can_distribute == '1'){ $distr = 1; } } $this->assign('distr',$distr); return $this->view->fetch(); } /** * 检查平台信息 * @param $config * @param $admin_data */ private function checkedPlatform(&$config,&$admin_data){ $admin_data = array_merge($config,$admin_data); if(!$ophost_id = $config['ophost_id'] ?? null){ $this->error('业务域名不能为空'); } if(!$wxpay_id = $config['wxpay_id'] ?? null){ $this->error('支付域名不能为空'); } $ophost = model('Ophost')->where('id',$ophost_id)->column('platform_id,host'); if(!$menuophost_id = $config['menuophost_id'] ?? null){ $this->error('菜单域名不能为空'); } if(!$menuwxpay_id = $config['menuwxpay_id'] ?? null){ $this->error('菜单支付域名不能为空'); } $menu_ophost = model('Ophost')->where('id',$menuophost_id)->column('platform_id,host'); //添加参数 $admin_data['platform_id'] = key($ophost); $admin_data['menu_platform_id'] = key($menu_ophost); $admin_data['ophost_id'] = $ophost_id; $admin_data['wxpay_id'] = $wxpay_id; $admin_data['menuophost_id'] = $menuophost_id; $admin_data['menuwxpay_id'] = $menuwxpay_id; if($config['platform_list']){ if(!in_array($admin_data['platform_id'],$config['platform_list'])){ array_push($config['platform_list'],$admin_data['platform_id']); } }else{ array_push($config['platform_list'],$admin_data['platform_id']); } $admin_data['platform_list'] = trim(implode(',',$config['platform_list']),','); //下单未充值时间间隔验证 if(isset($admin_data['order_unrecharge_post_time'])){ if($admin_data['order_unrecharge_post_time']<=0){ $admin_data['order_unrecharge_post_time'] = 1; } if($admin_data['order_unrecharge_post_time']>31){ $admin_data['order_unrecharge_post_time'] = 30; } } } /** * 编辑 */ public function edit($ids = null) { $row = $this->modelAdmin->get(['id' => $ids]); if (!$row) { $this->error(__('No Results were found')); } if ($this->request->isPost()) { //编辑处理 $message = null; $params = $this->request->post("row/a"); $extends = $this->request->post("extend/a"); $config = $this->request->post("config/a"); //身份证验证 if(!empty($extends['idcard_no'])){ $flag = validateIDCard($extends['idcard_no']); if(!$flag){ $this->error('身份证号不合法,请重新填写'); } } //修改Admin if($params){ if ($params['password']) { if (! AdminService::instance()->checkPassword($params['password'])){ $this->error(AdminService::instance()->getPasswordRule()); } $params['salt'] = Random::alnum(); $params['password'] = md5(md5($params['password']) . $params['salt']); AdminService::instance()->updateAdminSessionStatus($ids); } else { unset($params['password'], $params['salt']); } //自定义商品是否开启为否,则删除渠道商自定义商品信息,数据库+redis if ($config['custom_goods'] == 0) { GoodsService::instance()->delChannelGoodsList($row->id); } //这里需要针对username和email做唯一验证 $adminValidate = \think\Loader::validate('Admin'); $adminValidate->rule([ 'username' => 'require|max:50|unique:admin,username,' . $row->id, 'email' => 'email|unique:admin,email,' . $row->id, ]); $result = $row->validate('Admin.edit')->save($params); if ($result === false) { $this->error($row->getError()); } } //修改AdminExtend if ($extends) { $res = model('AdminExtend')->save($extends, ['admin_id' => $row->id]); $redis = Redis::instance(); $key = 'AE:'.$row->id; $redis->del($key); if ($res === false) { $this->error(model('AdminExtend')->getError()); } } //检查平台相关信息 if($config){ //推送开关 add at 2018-08-31 19:46:08 $adminConfig['subscribe_tip'] = $config['subscribe_tip'] ?? '0'; $adminConfig['sign_tip'] = $config['sign_tip'] ?? '0'; $adminConfig['continueread_tip'] = $config['continueread_tip'] ?? '0'; $adminConfig['unpay_tip'] = $config['unpay_tip'] ?? '0'; $adminConfig['read_tip'] = $config['read_tip'] ?? '0'; $adminConfig['update_tip'] = $config['update_tip'] ?? '0'; $adminConfig['search_tip'] = $config['search_tip'] ?? '0'; $adminConfig['timing_tip'] = $config['timing_tip'] ?? '0'; $adminConfig['first_recharge_imgtext_post'] = $config['first_recharge_imgtext_post'] ?? '0'; $adminConfig['order_unrecharge_post_time'] = (int)$config['order_unrecharge_post_time'] ?? 0; $adminConfig['wx_ad_state'] = $config['wx_ad_state']; //倒粉域名&短链域名 开关 -- 检测是否有关联的倒粉域名或者短链域名 if(isset($config['guide_domain']) && $config['guide_domain']){ if(!model('ShortRelation')->checkChannelRelation($row['id']) || !model('GuideRelation')->checkChannelRelation($row['id'])){ $this->error('请先为代理商指派导粉域名和短链域名'); } } //检查平台信息&设置要更新的参数 $configCache = model('AdminConfig')->getAdminInfoAll($row['id']); $this->checkedPlatform($config,$adminConfig); //检查是否要刷新菜单 if($adminConfig['platform_id'] != $configCache['platform_id'] || //平台不一致 $adminConfig['ophost_id'] != $configCache['ophost_id'] || //业务域名不一致 $adminConfig['menuophost_id'] != $configCache['menuophost_id'] //菜单域名不一致 ){ //推送微信菜单 list($status,$message) = WeChatMenu::replaceChannelMenuById($row['id'],$adminConfig['menuophost_id'], $configCache['is_qrcode_menu']); if($status){ $adminConfig['wx_menu'] = $message; $message = null; } } $res = model('AdminConfig')->save($adminConfig, ['admin_id' => $row->id]); if ($res === false) { $this->error(model('AdminConfig')->getError()); } //清除redis缓存 model('AdminConfig')->delAdminInfoAllCache($row['id']); } if($message){ $this->success($message); } $this->success(); } //展示处理 $adminConfig = model('AdminConfig')->where('admin_id',$row['id'])->find(); //AdminExtend $extends = model('Admin_extend')->where('admin_id', $row['id'])->find(); //授权信息-重置 管理员&超管可见 if($extends->distribute && (in_array($this->group, [ AdminConstants::ADMIN_GROUP_ID_SUPER_ADMIN, AdminConstants::ADMIN_CONFIG_SUBSCRIBE_METHOD_GUID, AdminConstants::ADMIN_GROUP_ID_TECHNICAL_SUPPORT, AdminConstants::ADMIN_GROUP_ID_CONFIG_MANAGER ]))){ $auth_platform_list = model("platform")->whereIn('id',$adminConfig['platform_list'])->select(); foreach($auth_platform_list as $key => $val){ $auth_platform_list[$key]['is_auth'] = false; if(model('Ptoken')->getToken($val['id'],$row['id'])){ $auth_platform_list[$key]['is_auth'] = true; } } $this->assign('auth_json',$adminConfig['json']); $this->assign('auth_platform_list',$auth_platform_list); $sync = model('SyncUser')->where(['admin_id'=>$row['id'],'appid'=>$adminConfig['appid']])->find(); $this->assign('sync',$sync); } $canEditDomain = in_array($this->group, [ AdminConstants::ADMIN_GROUP_ID_SUPER_ADMIN, AdminConstants::ADMIN_GROUP_ID_TECHNICAL_SUPPORT, AdminConstants::ADMIN_GROUP_ID_CONFIG_MANAGER ]); $this->assign('can_edit_domain', $canEditDomain); //平台配置信息 超管可见 if($extends->distribute && (in_array($this->group, [ AdminConstants::ADMIN_GROUP_ID_SUPER_ADMIN, AdminConstants::ADMIN_GROUP_ID_TECHNICAL_SUPPORT, AdminConstants::ADMIN_GROUP_ID_CONFIG_MANAGER ]))){ //检查渠道平台列表 if(!$adminConfig['platform_list']){ $this->error('没有平台信息'); } //获取全部平台列表 $platform_lists = model('Platform')->getPlatformList(); //检查渠道是否授权全部平台 $channel_is_auth = model('Ptoken')->checkChannelIsAuth($adminConfig['platform_list'],$row['id']); //获取业务域名列表与支付域名列表 if($channel_is_auth){ $channelAuthPlatformId = model('Platform')->getChannelHaveAuthorizedPlatformId($adminConfig['admin_id'],$adminConfig['platform_list']); }else{ $channelAuthPlatformId = $adminConfig['platform_list']; } $ophost_list = model("ophost")->getListFormatByPlatformId($channelAuthPlatformId); $wxpay_list = model("wxpay")->getListFormatByPlatformId(); $menu_wxpay_list = model("wxpay")->getListFormatByPlatformId(); //关联短链域名数量 $row['short_relation_count'] = model('ShortRelation')->getRelationCount($row['id']); //关联导粉域名数量 $row['guide_relation_count'] = model('GuideRelation')->getRelationCount($row['id']); //虚假域名 $fake_ophost_list = $fake_menuophost_list =model("VirtualDomain")->getFakeophostList(); // $this->assign("row", $row); $this->assign('platforms',$platform_lists); $this->assign('plist',explode(',',$adminConfig['platform_list'])); $this->assign('adminConfigs',$adminConfig); $this->assign('platform_id',$adminConfig['platform_id']); $this->assign('ophost_list',$ophost_list); $this->assign('wxpay_list',$wxpay_list); $this->assign('menu_wxpay_list',$menu_wxpay_list); $this->assign('fake_menuophost_list',$fake_menuophost_list); $this->assign('fake_ophost_list',$fake_ophost_list); $this->assign('extends',$extends); $this->assignconfig('admin_id',$adminConfig['admin_id']); $this->assignconfig('channel_is_auth',$channel_is_auth); } $this->assign('extends', $extends); $this->assign("row", $row); return $this->view->fetch(); } /** * 重置服务号 */ public function re(){ $admin_id = $this->request->param('admin_id'); /** * 清除旧配置 */ if(!$adminConfig = model('AdminConfig')->get(['admin_id' => $admin_id])){ $this->error('获取信息失败'); } $adminInfo = collection($adminConfig)->toArray(); $token = collection(model('Ptoken')->where(['admin_id'=>$admin_id])->select())->toArray(); Log::info('Reset WeChat Config Data:'.var_export(['admin_config'=>$adminInfo,'ptoken'=>$token],true)); $data = [ 'secret' => null, 'appid' => null, 'json' => null, 'txt' => null, 'refresh_token' => null, 'wx_menu' => null, 'is_auth' => 0, 'wx_ad_source_id' => 0, 'wx_ad_state' => 0, 'qrcode_image' => null ]; if(false === model('Ptoken')->where(['admin_id'=>$admin_id])->delete()){ $this->error('删除Token数据失败'); } if(false === $adminConfig->save($data)){ $this->error('清除授权配置信息失败'); } $redis = Redis::instance(); model('AdminConfig')->delAdminInfoAllCache($admin_id); $redis->del('AA:' . $adminConfig['appid']); $this->success('重置成功'); } /** * 同步微信用户 */ public function sync(){ $admin_id = $this->request->param('admin_id'); if(!$admin_id){ $this->error('获取用户ID错误'); } if(!$adminConfig = model('AdminConfig')->getAdminInfoAll($admin_id)){ $this->error('获取渠道信息错误'); } $mq = new Rabbitmq(); $mq->send(['channel_id'=>$admin_id,'appid'=>$adminConfig['appid']],self::SYNC_MQ_QUEUE_NAME,self::SYNC_MQ_EXCHANGE_NAME); Log::info('syncUser->Queue: Channel_id:'.$admin_id.' AppID:'.$adminConfig['appid'].' 添加微信用户同步任务'); $this->success('微信用户同步任务添加成功'); } /** * 删除 */ public function del($ids = "") { if ($ids) { // 避免越权删除管理员 $childrenGroupIds = $this->childrenGroupIds; $adminList = $this->modelAdmin->where('id', 'in', $ids)->where('id', 'in', function ($query) use ($childrenGroupIds) { $query->name('auth_group_access')->where('group_id', 'in', $childrenGroupIds)->field('uid'); })->select(); if ($adminList) { $deleteIds = []; foreach ($adminList as $k => $v) { $deleteIds[] = $v->id; } $deleteIds = array_diff($deleteIds, [$this->authId]); if ($deleteIds) { $this->modelAdmin->where('id', 'in', $deleteIds)->update(['status' => 'hidden']); //$this->modelAdmin->destroy($deleteIds); //model('AuthGroupAccess')->where('uid', 'in', $deleteIds)->delete(); $this->success(); } } } $this->error(); } /** * 选择(多选) * @return string|\think\response\Json */ public function select() { if ($this->request->isAjax()) { return $this->index(); } return $this->view->fetch(); } /** * 批量更新 * @internal */ public function multi($ids = "") { // 管理员禁止批量操作 $this->error(); } }