前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >合约量化系统开发测试版,合约量化系统开发源码呈现

合约量化系统开发测试版,合约量化系统开发源码呈现

原创
作者头像
达见危Gb16978
发布2022-07-26 16:25:17
1550
发布2022-07-26 16:25:17
举报
文章被收录于专栏:软件开发讲解

/**

* 返回 删除AttachmentIndex,SearchAll,Tag

* @param array $data 文档相关数据 array('arc_id' => 11, 'model_id' => 1);

* @return mixed

*/

function delete_att_tag_search($data) {

if (empty($data) || empty($data['arc_id']) || empty($data['model_id'])) {

return false;

}

if (is_array($data['arc_id'])) {

$where = array('arc_id' => array('IN', $data['arc_id']), 'model_id' => $data['model_id']);

} else {

$where = array('arc_id' => $data['arc_id'], 'model_id' => $data['model_id']);

}

//delete AttachmentIndex

M('AttachmentIndex')->where($where)->delete();

//delete SearchAll

M('SearchAll')->where($where)->delete();

//delete tag

$old_tag_info = M('TagIndex')->where($where)->field('tag_id, arc_id, cid')->select();

if (!empty($old_tag_info)) {

foreach ($old_tag_info as $val) {

M('TagIndex')->where(array('tag_id' => $val['tag_id'], 'arc_id' => $val['arc_id'], 'cid' => $val['cid']))->delete(); //不属于旧栏目了

M('Tag')->where(array('id' => $val['tag_id']))->setDec('num');

}

}

return true;

}

/**

* 保存日志

* @param integer $admin_id 管理员ID---可为0

* @param string $admin_name 管理员名称

* @param string $title 日志名称

* @param string $content 日志内容

* @param integer $operate_status 操作结果,0失败,1成功

* @param integer $login_flag 是否登录。1登录

* @return mixed

*/

代码语言:javascript
复制
function write_log($admin_id, $admin_name, $url, $title, $content, $operate_status = 0, $login_flag = 0) {
    if (empty($url)) {
        return false;
    }
    if (empty($admin_name)) {
        $admin_name = 'Unknown';
    }
    $data = array(
        'aid' => $admin_id,
        'username' => $admin_name,
        'url' => htmlspecialchars($url),
        'title' => $title,
        'content' => $content,
        'useragent' => htmlspecialchars($_SERVER['HTTP_USER_AGENT']),
        'login_flag' => $login_flag,
        'ip' => get_client_ip(),
        'operate_status' => $operate_status,
        'operate_time' => date('Y-m-d H:i:s'),
    );

    $result = M('AdminLog')->add($data);

    return $result;
}

/**

* 返回保存到AttachmentIndex表

* @param string $ip IP

* @return mixed

*/

代码语言:javascript
复制
function run_bad_ip($ip) {
    if (empty($ip)) {
        return false;
    }
    $before_time = date("Y-m-d H:i:s", time() - 3600); //一个小时内,计算一个小时内失败次数

    $where = array('login_flag' => 1, 'operate_status' => 1, 'ip' => $ip, 'operate_time' => array('gt', $before_time)); //搜索同IP登录成功
    $last_id = M('AdminLog')->where($where)->order('id desc')->getField('id');
    $where = array('login_flag' => 1, 'operate_status' => 0, 'ip' => $ip, 'operate_time' => array('gt', $before_time));
    $where = array();
    if ($last_id) {
        $where['id'] = array('gt', $last_id);
    }
    $where['login_flag'] = 1;
    $where['operate_status'] = 0;
    $where['ip'] = $ip;
    $where['operate_time'] = array('gt', $before_time);

    $fail_num = M('AdminLog')->where($where)->order('id desc')->count(); //1个小时内连续失败次数(从最后一次开始登录成功开始计算)

    if ($fail_num >= 10) {
        //--失败后--禁止IP2个小时内的访问
        $expire_time = date("Y-m-d H:i:s", time() + 2 * 3600);
        $where = array('ip' => $ip);
        $ret = M('BadIp')->where($where)->find();

        $data = array(
            'ip' => $ip,
            'forever_flag' => 0,
            'status' => 1,
            'note' => '登录失败多次,锁定IP',
            'expire_time' => $expire_time,
            'update_time' => date('Y-m-d H:i:s'),

        );
        if (!$ret) {
            M('BadIp')->add($data);

        } else {
            if ($ret['forever_flag'] == 0 || ($ret['forever_flag'] == 1 && $ret['status'] == 0)) {
                $data['id'] = $ret['id'];
                if (strtotime($ret['expire_time']) > strtotime($expire_time)) {
                    $data['expire_time'] = $ret['expire_time'];
                }
                M('BadIp')->save($data);
            }

        }
    }

    return true;
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档