PHP 封装方法 private

主方法

 //导入第三方结果集
    public function import()
    {
        //查询第三方表  rs_other_request_log  ->field("id,cloud_platform,module,data,status")
        set_time_limit(0);       //超时
        ini_set('memory_limit', '256M');   //内存

        //查询所有
        $list = M('OtherRequestLog')
            ->field("id,data,status,cloud_platform,module")
            ->where(['status' => 0, 'cloud_platform' => ['in', [0, 2]], 'module' => 2])
            ->select();

        foreach ($list as $value => $key) {
            $data = json_decode($key['data'], true);

            //调用分词方法,拿到词汇
            $result = $this->get_word($key['cloud_platform'], $data, $key['module']);

            //循环处理数据库
            if(!empty($result)){
                foreach ($result as $v => $k) {
                    $this->deal_sql($k);
                }
            }

        //更新第三方的状态
        M('OtherRequestLog')->where(['id' => $key['id']])->save(['status' => 1]);
        }
        $this->success('操作成功');
    }

 方法一(第一步:整理数据):

//筛选词汇 将data里边的词汇取出来返回
    private function get_word($cloud_platform, $data, $module)
    {
        if(empty($data)) return false;
        //调用通用物体识别 cloud_platform= 0  module=2  status=0(未检索)

        if ($cloud_platform == 0 && $module == 2) {

            if (!empty($data['log_id'])) {    //log_id存在

                $arr = $data['result'];  //二维数组

                foreach ($arr as $v => $k) {
                    $word[] = $k['keyword'];
                }

            } else {     //login_id 不存在

                $barr = $data['Keywords'] ;

                foreach ($barr as $v => $k) {
                    $word[] = $k['Word'];
                }

            }

         //第二种 阿里图像识别接口 cloud_platform= 2  module=2
        } elseif ($cloud_platform == 2 && $module == 2) {

            $arr = $data['tags'];  //二维数组

            foreach ($arr as $v => $k) {
                $word[] = $k['value'];
            }

        }
        return $word;   //数组
    }

方法二(第二步:操作数据库):

//处理数据库
    private function deal_sql($word)
    {
        if (empty($word)) return false;

        //拿到keyword 判断词库表是否存在   rs_rubbish_keywords
        $sys_status = M('RubbishKeywords')
            ->field("id,txt")
            ->where(['txt' => $word])
            ->find();

        if (!empty($sys_status)) return false;

        //拿到keyword 判断系统记录表是否存在
        $record_status = M('KeywordSearchRecord')
            ->field("id,input_text,count")
            ->where(['input_text' => $word])
            ->find();

        if (empty($record_status) && !empty($word)  ) {  //无记录

            $arr = [
                'input_text' => $word,
                'create_user' => session('ADMIN_ID'),
                'create_time' => NOW_TIME,
            ];

            $add_ststus = M('KeywordSearchRecord')->add($arr);

            if ($add_ststus == false) return false;
        } else {    //有记录

            //记录表搜索次数加1
            $record_sts = M('KeywordSearchRecord')->where(['id' => $record_status['id']])->save(['count' => $record_status['count'] + 1]);

            if ($record_sts == false) return false;

        }
        return true;
    }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值