123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754 |
- <?php
- namespace app\admin\controller\auth;
- use app\common\controller\Backend;
- use app\common\library\Rabbitmq;
- use app\common\library\Redis;
- use app\common\utility\WeChatMenu;
- use app\main\helper\StringHelper;
- use app\main\service\AdminService;
- use app\main\service\GoodsService;
- use app\main\service\OfficialAccountsService;
- use fast\Random;
- use think\Log;
- use think\session;
- use app\main\constants\AdminConstants;
- /**
- * 管理员管理
- *
- * @icon fa fa-users
- * @remark 一个管理员可以有多个角色组,左侧的菜单根据管理员所拥有的权限进行生成
- */
- class Agent extends Backend
- {
- const SYNC_MQ_QUEUE_NAME = 'Q_SYNC_USER';
- const SYNC_MQ_EXCHANGE_NAME = 'E_SYNC_USER';
- /**
- * @var \app\common\model\Admin
- */
- protected $modelAdmin = null;
- protected $dataLimit = false;
- protected $childrenGroupIds = [];
- protected $searchFields = 'id,username,nickname';
- protected $relationSearch = true;
- protected $benefit;
- protected $authId;
- /**
- * 无需登录的方法,同时也就不需要鉴权了
- * @var array
- */
- protected $noNeedLogin = ['checkplatformauth'];
- public function _initialize()
- {
- parent::_initialize();
- $this->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']."-已授权<br>";
- }else{
- $v['platforms'] .= $pv['name']."-未授权<br>";
- }
- }
- }
- }
- 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();
- }
- }
|