setName('xQueue:FeedovHfAuto')->setDescription('[ 飞之度 ] 话费自动化处理'); } /** * @param Input $input * @param Output $output * @throws \think\admin\Exception */ protected function execute(Input $input, Output $output) { ini_set('memory_limit', '1024M'); $channelService = ChannelService::instance(); $merchantService = MerchantService::instance(); $merchantList = $merchantService->db()->where(['merchant_type'=>7,'status'=>1])->select()->toArray(); if(!$merchantList) $this->setQueueSuccess("未找到支持的蜜蜂商家"); $merchantList_num = count($merchantList); $count_sum = 0; $total_sum=0; $this->redis = RedisService::getInstance(); $account_data = $channelService->call('account', 13, ''); $balance = $account_data['account']; $redis_balance = $this->redis->get('channel_account-13'); if(!$this->redis->get('channel_account-13')){ $this->redis->set('channel_account-13',$balance,24*60*60); $stock = intval(bcdiv($balance, '1.002', 3)); // 第三个参数是保留的小数位数,可根据需要调整 $need_update = true; }else{ $this->redis->set('channel_account-13',$balance,24*60*60); if($balance<=$redis_balance){ $need_update = false; }else{ $stock = intval(bcdiv($balance, '1.002', 3)); // 第三个参数是保留的小数位数,可根据需要调整 $need_update = true; } } $class = new Feedov($this->app); if(!$need_update){ $this->setQueueSuccess("当前账户余额为{$balance},无需更新"); return; } foreach ($merchantList as $merchant) { $mid = $merchant['id']; $request_data = [ 'goods' =>[ [ 'goods_id' => 10000595, 'status' => 1, 'user_quote_stock' =>$stock, ] ] ]; $request = [ 'app_key'=>$merchant['agentId'], 'app_secret'=>$merchant['agentkey'], 'data'=>$request_data ]; $msg = $class->editSupplyGoodManageStock($request); $array = json_decode($msg,true); if(is_array($array) && isset($array['code']) && $array['code']==0){ $this->setQueueProgress($array['data']['successMsgs']['10000595'] ?? '商品更新成功'); }else{ $this->setQueueProgress($array['data']['errorMsgs']['10000595'] ?? '商品更新失败'); } } $this->setQueueSuccess("成功更新"); } }