zhandudi
zhandudi
  • 发布:2021-03-09 08:23
  • 更新:2021-03-09 08:23
  • 阅读:846

个人发卡网源码内核

分类:快应用

发卡网源码演示及下载地址:fakaysw.top
<?php

namespace app\admin\controller;

use controller\BasicAdmin;
use think\Db;

class App extends BasicAdmin
{

public function index()  
{  
    if (!$this->request->isPost()) {  
        return $this->fetch();  
    }  

    $version = input('version/s');  
    if(empty($version)){  
        $this->error('请输入版本号');  
    }  
    $data = [  
        'platform' => input('platform/s'),  
        'version' => $version,  
    ];  

    //判断是否已经存在相同的版本号  
    $res = Db::name('app_version')->where($data)->find();  
    if($res){  
        $this->error('已存在相同版本');  
    }  

    $platform = input('platform/s');  
    $url = '';  
    if ($platform == 'android') {  
        $package = getUploadFile('package', true, ['apk']);  

        if (!$package['status']) {  
            $this->error($package['msg']);  
        } else {  
            $url = $package['data']['file'];  
        }  
    } else {  
        $url = input('appstore_url/s');  
    }  

    $data = array_merge($data,[  
        'package' => $url,  
        'create_at' => time(),  
        'create_ip' => $_SERVER['REMOTE_ADDR'],  
        'remark' => input('remark/s')  
    ]);  

    $res = Db::name('app_version')->insert($data);  
    if ($res) {  
        $this->success('新增版本成功');  
    } else {  
        $this->error('新增版本失败');  
    }  
}  

}

<?php

namespace app\admin\controller;

use controller\BasicAdmin;
use service\DataService;
use service\NodeService;
use service\ToolsService;
use think\Request;
use think\Session;
use think\Db;
use think\captcha\Captcha;
use app\common\util\Sms;
use service\LogService;

/**

  • 系统权限管理控制器
  • Class Auth
  • @package app\admin\controller
  • @author Anyon zoujingli@qq.com
  • @date 2017/02/15 18:13
    */
    class Auth extends BasicAdmin
    {

    /**

    • 默认数据模型
    • @var string
      */
      public $table = 'SystemAuth';

    /**

    • 权限列表
      */
      public function index()
      {
      $this->title = '系统权限管理';
      return parent::_list($this->table);
      }

    /**

    • 权限授权
    • @return string
      */
      public function apply()
      {
      $auth_id = $this->request->get('id', '0');
      $method = 'apply' . strtolower($this->request->get('action', '0'));
      if (method_exists($this, $method)) {
      return $this->$method($auth_id);
      }
      $this->assign('title', '节点授权');
      return $this->_form($this->table, 'apply');
      }

    /**

    • 读取授权节点
    • @param $auth_id
      */
      protected function _apply_getnode($auth_id)
      {
      $nodes = NodeService::get();
      $checked = Db::name('SystemAuthNode')->where(['auth' => $auth_id])->column('node');
      foreach ($nodes as &$node) {
      $node['checked'] = in_array($node['node'], $checked);
      }
      $all = $this->_apply_filter(ToolsService::arr2tree($nodes, 'node', 'pnode', 'sub'));
      $this->success('获取节点成功!', '', $all);
      }

    /**

    • 保存授权节点
    • @param $auth_id
      */
      protected function _apply_save($auth_id)
      {
      list($data, $post) = [[], $this->request->post()];
      foreach (isset($post['nodes']) ? $post['nodes'] : [] as $node) {
      $data[] = ['auth' => $auth_id, 'node' => $node];
      }
      Db::name('SystemAuthNode')->where(['auth' => $auth_id])->delete();
      Db::name('SystemAuthNode')->insertAll($data);
      LogService::write('系统权限', '节点授权成功');
      $this->success('节点授权更新成功!', '');
      }

    /**

    • 节点数据拼装
    • @param array $nodes
    • @param int $level
    • @return array
      */
      protected function _apply_filter($nodes, $level = 1)
      {
      foreach ($nodes as $key => &$node) {
      if (!empty($node['sub']) && is_array($node['sub'])) {
      $node['sub'] = $this->_apply_filter($node['sub'], $level + 1);
      }
      }
      return $nodes;
      }

    /**

    • 权限添加
      */
      public function add()
      {
      return $this->_form($this->table, 'form');
      }

    /**

    • 权限编辑
      */
      public function edit()
      {
      return $this->_form($this->table, 'form');
      }

    /**

    • 权限禁用
      */
      public function forbid()
      {
      if (DataService::update($this->table)) {
      LogService::write('系统权限', '权限禁用成功');
      $this->success("权限禁用成功!", '');
      }
      $this->error("权限禁用失败,请稍候再试!");
      }

    /**

    • 权限恢复
      */
      public function resume()
      {
      if (DataService::update($this->table)) {
      LogService::write('系统权限', '权限启用成功');
      $this->success("权限启用成功!", '');
      }
      $this->error("权限启用失败,请稍候再试!");
      }

    /**

    • 权限删除
      */
      public function del()
      {
      if (DataService::update($this->table)) {
      $id = $this->request->post('id');
      Db::name('SystemAuthNode')->where(['auth' => $id])->delete();
      LogService::write('系统权限', '权限删除成功');
      $this->success("权限删除成功!", '');
      }
      $this->error("权限删除失败,请稍候再试!");
      }

    /**

    • 谷歌令牌验证
      */
      public function google()
      {
      if (!session('user')) {
      $this->error('未登录');
      }
      if(sysconf('is_google_auth') == 0) {
      $this->error('系统未开启谷歌身份验证', '@admin');
      }
      $google_auth = session('google_auth');
      if($google_auth) {
      $this->redirect('@admin');
      }
      $ga = new \Util\Verify\PHPGangsta_GoogleAuthenticator();
      $google_token = Db::name('system_user')->where('id',session('user')['id'])->value('google_secret_key');
      if (!$this->request->isPost()) {
      if($google_token == '') {
      $secret = $ga->createSecret();
      $qrCodeUrl = $ga->getQRCodeGoogleUrl(Request::instance()->domain(), $secret);
      session('google_secret_key', $secret);
      $this->assign('secret', $secret);
      $this->assign('qrCodeUrl', $qrCodeUrl);

      }  
      $this->assign('action_type', $google_token == '' ? 0 : 1);  
      $this->assign('google_token', $google_token);  
      return view();  

      } else {
      $action_type = input('action_type/d', 0);
      $code = $this->request->post('code', '', 'trim');
      if($code == '') {
      $this->error("请输入验证码");
      }
      if($action_type == 0) {//首次绑定
      $google_secret_key = session('google_secret_key');
      if(!$google_secret_key) {
      $this->error("绑定失败,请刷新页面重试");
      }
      $oneCode = $ga->getCode($google_secret_key);
      if($code !== $oneCode) {
      $this->error("验证码错误");
      } else {
      $re = Db::name('system_user')->where(['id'=>session('user')['id']])->update(['google_secret_key'=>$google_secret_key]);
      if(FALSE !== $re) {
      session('google_auth', $oneCode);
      session('google_secret_key', null);
      $this->success("绑定成功", '@admin');
      } else {
      $this->error("绑定失败,请售后重试");
      }
      }
      } else {
      $google_secret_key = Db::name('system_user')->where(['id'=>session('user')['id']])->value('google_secret_key');
      if($google_secret_key == '') {
      $this->error("您未绑定谷歌身份验证器");
      }
      $captcha = $this->request->post('captcha_code', '', 'trim');
      $captchaClass = new Captcha();
      if(!$captchaClass->check($captcha)) {
      $this->error('图形验证码错误!');
      }
      $oneCode = $ga->getCode($google_secret_key);
      if($code != $oneCode) {
      $this->error("身份验证码错误");
      } else {
      session('google_auth', $oneCode);
      LogService::write('系统权限', '绑定谷歌身份验证器成功');
      $this->success("验证通过,正在进入系统...", '@admin');
      }
      }

      }
      }
      public function resetGoogle()
      {
      if (!session('user')) {
      $this->error('未登录');
      }
      if(sysconf('is_google_auth') == 0) {
      $this->error('系统未开启谷歌身份验证');
      }
      $mobile = session('user')['phone'];
      $google_auth = session('google_auth');
      if($google_auth) {
      $this->redirect('@admin');
      }
      if (!$this->request->isPost()) {
      if($mobile) {
      $mobile = substr($mobile, 0, 3).'****'.substr($mobile, 7);
      }
      $this->assign('mobile', $mobile);
      return view();
      } else {
      $code = input('sms_code');
      if($code == '') {
      $this->error('请输入验证码');
      }
      $sms=new Sms();
      if(!$sms->verifyCode($mobile, $code,'google_auth')){
      $this->error($sms->getError());
      }
      $re = Db::name('system_user')->where(['id'=>session('user')['id']])->update(['google_secret_key'=>'']);
      if(FALSE !== $re) {
      LogService::write('系统权限', '谷歌身份验证器验证通过');
      $this->success('验证通过,进入下一步...','admin/auth/google');
      } else {
      $this->error("重置失败");
      }
      }
      }

    //生成绑定谷歌身份验证器二维码(测试,部署生产环境时删除!)
    public function bindGoogle()
    {
    $id = input('id/d');
    if(!$id) {
    return false;
    }
    $ga = new \Util\Verify\PHPGangsta_GoogleAuthenticator();
    $google_secret_key = Db::name('system_user')->where(['id'=>$id])->value('google_secret_key');
    if(!$google_secret_key) {
    return false;
    }
    $qrCodeUrl = $ga->getQRCodeGoogleUrl(Request::instance()->domain(), $google_secret_key);
    echo '<img src="'.$qrCodeUrl.'"">';die;
    }

    /**

    • 发送短信验证码
      */
      public function sendSmsCode()
      {
      if (!session('user')) {
      $this->error('未登录');
      }
      $mobile=session('user')['phone'];
      if(!is_mobile_number($mobile)){
      $this->error('不是有效的号码!');
      }
      $sms=new Sms();
      $res=$sms->sendCode($mobile, 'google_auth');
      if($res===false){
      $this->error($sms->getError());
      }
      $this->success('已发送验证码,请注意查收!!');
      }
      }
0 关注 分享

要回复文章请先登录注册