REAPI/app/gateway/controller/api/Task.php.bak

1027 lines
33 KiB
PHP
Raw Normal View History

2024-09-29 15:43:18 +08:00
<?php
namespace app\gateway\controller\api;
set_time_limit(0);
ini_set('memory_limit','512M');
ini_set('default_socket_timeout', -1); //<2F><><EFBFBD><EFBFBD>ʱ
use app\merchant\service\OrderService;
use app\merchant\service\OrderHistoryService;
use app\merchant\service\MerchantService;
use app\merchant\service\RebateService;
use app\gateway\service\RedisService;
use app\order\service\Kami91OrderService;
use app\order\service\KamiOrderHistoryService;
use app\setting\service\StatService;
use app\setting\service\ChannelAccountService;
use app\channel\service\ProductService;
use app\merchant\service\MerchantLogHistoryService;
//use app\gateway\controller\api\Coreks;
use dever\Log;
use think\exception\HttpResponseException;
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* Class Test
* @package app\gateway\api
*/
class Task extends Core
{
# <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected $check = false;
# redis<69><73><EFBFBD><EFBFBD>
protected $redis = false;
public function cron()
{
while(1) {
$this->submit();
}
}
# <20><>submit<69><EFBFBD><E1BDBB><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>д<EFBFBD><D0B4><EFBFBD>
public function submit()
{
try {
$settingUpdate = sysconf('settingUpdate');
if ($settingUpdate == 1) {
return true;
}
# <20><><EFBFBD><EFBFBD>ģʽ 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$queue = sysconf('queue');
if ($queue == 1) {
# <20><>ȡ<EFBFBD><C8A1>ǰִ<C7B0>еĽ<D0B5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$num = $this->getNum();
if ($num >= 1000) {
# <20>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
sleep(30);
return true;
}
$popen = true;
} else {
$popen = false;
}
$this->redis();
$data = $this->redis->pop('submit');
$this->run($data, $popen);
return true;
} catch (\Exception $e) {
$this->redis = false;
return true;
}
}
protected function redis()
{
if (!$this->redis) {
$this->redis = RedisService::getInstance();
}
}
protected function run($data, $popen = false)
{
if (isset($data['merchant']) && $data['merchant'] && isset($data['product']) && $data['product'] && isset($data['param']) && $data['param'] && isset($data['order']) && $data['order']) {
if ($popen) {
$this->popen($data['order']);
} else {
$this->channel($data['merchant'], $data['product'], false, $data['param'], $data['order']);
}
}
}
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ӽ<EFBFBD><D3BD>̴<EFBFBD><CCB4><EFBFBD>
public function popen($order)
{
// $command = '/www/server/php/74/bin/php /www/wwwroot/bao111/public/index.php gateway/api.task/runOne ' . $order . ' 1>/dev/null 2>&1 &';
<><C4AC>
$command = 'php /www/sites/reapi/index/public/index.php gateway/api.task/runOne ' . $order . ' 1>/dev/null 2>&1 &';
//$command = 'php /www/jiekou/public/index.php gateway/api.task/runOne ' . $order . ' 1>/dev/null 2>&1 &';
exec($command);
}
# <20><>ȡ<EFBFBD><C8A1>ǰִ<C7B0>е<EFBFBD><D0B5>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public function getNum()
{
$command = 'ps -ef | grep gateway/api.task/runOne | grep -v grep | wc -l';
$num = exec($command);
return $num;
}
# <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>д<EFBFBD><D0B4><EFBFBD>
public function runOne()
{
if (isset($_SERVER["argv"][2]) && $_SERVER["argv"][2]) {
$order = $_SERVER["argv"][2];
} else {
$order = input('order');
}
if (!$order) {
exit('error');
}
$nq = false;
if (strstr($order, '_nq')) {
$order = str_replace('_nq', '', $order);
$nq = true;
}
$orderService = OrderService::instance();
$info = $orderService->get($order);
if ($info && $info['status'] <= 1 && $info['request']) {
$info['request'] = json_decode($info['request'], true);
if ($nq) {
$info['request']['param']['s'] = 1;
}
$this->run($info['request']);
}
exit('ok');
}
# ֱ<>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>еĶ<D0B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>д<EFBFBD><D0B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧЧ<CAA7><D0A7><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ø÷<C3B8><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>ͬʱִ<CAB1>У<EFBFBD><D0A3><EFBFBD>ȡ<EFBFBD><C8A1>
/*
public function runAll()
{
$orderService = OrderService::instance();
$data = $orderService->getData();
if ($data) {
foreach ($data as $k => $v) {
if ($v['request']) {
$v['request'] = json_decode($v['request'], true);
$this->run($v['request']);
}
}
}
}
*/
public function runtestdiy()
{
$time = '1';
$orderService = OrderService::instance();
$data = $orderService->getOldDataDiy($time);
foreach ($data as $k => $v) {
if ($v['request'] && $v['status'] == 1 && $v['order_id']=='R202402197619128992613340') {
$v['request'] = json_decode($v['request'], true);
$this->run($v['request']);
}
}
/*
if ($state && $state > 0) {
//$this->restart();
//$this->runAll();
}
*/
}
# <20><><EFBFBD>⵱ǰ<E2B5B1><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>status=1<>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>5<EFBFBD><35><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD>status=1<><31><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ִ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ÿ5<C3BF><35><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>һ<EFBFBD>Σ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>runAll<6C><6C><EFBFBD><EFBFBD>
public function runOther()
{
$orderService = OrderService::instance();
$data = $orderService->getOldData();
foreach ($data as $k => $v) {
if ($v['request'] && $v['status'] == 1) {
$v['request'] = json_decode($v['request'], true);
$this->run($v['request'], true);
}
}
/*
if ($state && $state > 0) {
//$this->restart();
//$this->runAll();
}
*/
}
// public function runtest()
// {
// $orderService = OrderService::instance();
// $data = $orderService->getOldData();
//
// foreach ($data as $k => $v) {
// if ($v['request'] && $v['status'] == 1) {
// $v['request'] = json_decode($v['request'], true);
// $this->run($v['request'], true);
// }
// }
// /*
// if ($state && $state > 0) {
// //$this->restart();
// //$this->runAll();
// }
// */
// }
# <20><><EFBFBD>ӳ<EFBFBD><D3B3>µ<EFBFBD><C2B5>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>µ<EFBFBD> status = -1 <20><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>һ<EFBFBD><D2BB>
public function runTempOrder()
{
$orderService = OrderService::instance();
$result = $orderService->getTempOrder();
if ($result) {
$data = $result;
$time = time();
$account = array();
foreach ($data as $k => $v) {
if ($v['request']) {
$v['request'] = json_decode($v['request'], true);
if (isset($v['request']['time']) && $time > $v['request']['time']) {
if ($v['account']) {
if (isset($account[$v['account']]) && $account[$v['account']]) {
continue;
} else {
$account[$v['account']] = $v['account'];
}
}
$this->run($v['request'], true);
}
}
}
}
}
# <20>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>µ<EFBFBD> status = -3 <20><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>һ<EFBFBD><D2BB>
public function runTimeOrder()
{
# <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳٴ<D3B3><D9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$where['status'] = 1;
$where['is_deleted'] = 0;
$data = \app\channel\service\ChannelService::instance()->db()->where($where)->whereRaw('order_limit > 0')->select()->toArray();
if ($data) {
$orderService = OrderService::instance();
foreach ($data as $k1 => $v1) {
$result = $orderService->getTimeOrder($v1['id'], false, false, $v1['order_limit']);
if ($result) {
foreach ($result as $k => $v) {
if ($v['request']) {
$v['request'] = json_decode($v['request'], true);
if ($v['request']) {
$v['request']['order'] .= '_nq';
$this->run($v['request'], true);
}
}
}
}
}
}
}
// public function checkorederqd()
// {
// #=
//
//
// $orderService = OrderService::instance();
// foreach ($data as $k1 => $v1) {
// $result = $orderService->getTimeOrder($v1['id'], false, false, $v1['order_limit']);
//
// if ($result) {
// foreach ($result as $k => $v) {
// if ($v['request']) {
// $v['request'] = json_decode($v['request'], true);
// if ($v['request']) {
// $v['request']['order'] .= '_nq';
// $this->run($v['request'], true);
// }
// }
// }
// }
// }
//
// }
# <20><><EFBFBD><EFBFBD>ͣ<EFBFBD>ĵĶ<C4B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> status = -5
public function runStopOrder()
{
$orderService = OrderService::instance();
$result = $orderService->getStopOrder();
if ($result) {
$data = $result;
$time = time();
$account = array();
$service = \app\channel\service\ChannelService::instance();
foreach ($data as $k => $v) {
if ($v['param']) {
$v['param'] = json_decode($v['param'], true);
if ($v['param']) {
$param = $v['param'];
$order_id = $v['order_id'] . '_' . $v['num'];
$service->use($v['mid'], $v['pid'], $param, true, $order_id);
}
}
}
}
}
<><C9BE><EFBFBD><EFBFBD>־
public function delLog()
{
#.extend/data/logs/gateway/2023/10/1/xxx.log
$currentTimes=strtotime(date("Y-m-d",time()));
$delTimes=strtotime('-4 months', $currentTimes);
$mounth=date('m',$delTimes);
$year=date("Y",$delTimes);
#TODO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵ<DEB8>ַ
// $path='/www/wwwroot/bao111/extend/data/logs/gateway/'.$year.'/'.$mounth;
$path='/www/sites/reapi/index/extend/data/logs/gateway/'.$year.'/'.$mounth;
$result=$this->delete_directory($path);
}
<><C9BE>Ŀ¼<C4BF>ļ<EFBFBD><C4BC><EFBFBD>
public function delete_directory($dir)
{
#file_exists(): open_basedir restriction in effect. File(/www/wwroot/bao111/extend/data/logs/gateway/2023/09) is not within the allowed path(s): (/www/wwwroot/bao111/:/tmp/)
if(!file_exists($dir)){
return true;
}
if(!is_dir($dir)){
return unlink($dir);
}
// var_dump(1111);die;
#rm -rf /www/www/bao111/gateway/
foreach(scandir($dir) as $item){
if($item =="."||$item ==".."){
continue;
}
if(!$this->delete_directory($dir .DIRECTORY_SEPARATOR.$item)){
return false;
}
}
return rmdir($dir);
}
# <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>µ<EFBFBD> status = -4 <20><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>һ<EFBFBD><D2BB>
public function runFcOrder()
{
$orderService = OrderService::instance();
$result = $orderService->getFcOrder();
if ($result) {
$data = $result;
$time = time();
$account = array();
$service = \app\channel\service\ChannelService::instance();
foreach ($data as $k => $v) {
if ($v['param']) {
$v['param'] = json_decode($v['param'], true);
if ($v['param']) {
$param = $v['param'];
$order_id = $v['order_id'] . '_' . $v['num'];
$service->use($v['mid'], $v['pid'], $param, true, $order_id);
}
}
}
}
}
# <20>Իص<D4BB><D8B5>ٴδ<D9B4><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>ͬʱ<CDAC>̻<EFBFBD><CCBB>ص<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʹ<EFBFBD>ø÷<C3B8><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٴη<D9B4><CEB7><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>һ<EFBFBD><D2BB>
public function call()
{
$orderService = OrderService::instance();
$data = $orderService->getErrorData();
// var_dump($data);die;
if ($data) {
foreach ($data as $k => $v) {
$this->callSend($v, 1);
}
}
}
# <20>Իص<D4BB><D8B5>ٴδ<D9B4><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>ͬʱ<CDAC>̻<EFBFBD><CCBB>ص<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʹ<EFBFBD>ø÷<C3B8><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٴη<D9B4><CEB7><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>һ<EFBFBD><D2BB>
public function callHistory()
{
$orderService = OrderHistoryService::instance();
$data = $orderService->getErrorData();
if ($data) {
foreach ($data as $k => $v) {
$this->callSend($v, 2);
}
}
}
private function callSend($v, $type = 1)
{
OrderService::instance()->callSend($v, $type);
}
# <20><><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD> ÿ<><C3BF><EFBFBD>賿1<E8B3BF><31>ִ<EFBFBD>а<EFBFBD>
public function restart()
{
sysconf('settingUpdate', 1);
#<23>޸ĵ<DEB8>ַ
// $command = 'python /www/wwwroot/bao111/kill.py 1>/dev/null 2>&1 &';
$command = 'python /www/sites/reapi/index/kill.py 1>/dev/null 2>&1 &';
exec($command);
sysconf('settingUpdate', 2);
}
# <20><><EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>賿1<E8B3BF><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD>Ĭ<EFBFBD><C4AC>Ǩ<EFBFBD><C7A8>ǰһ<C7B0><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public function finish()
{
$day = input('day');
MerchantService::instance()->init($day);
/*
if (!$day) {
$day = date('Y-m-d', strtotime('-1 day'));
}
*/
$page = 1;
while($this->finishOne($day, $page)) {
$page++;
}
}
public function finishOne($day, $page)
{
$orderService = OrderService::instance();
$orderHistoryService = OrderHistoryService::instance();
$data = $orderService->getFinishData($day, $page);
if ($data) {
foreach ($data as $k => $v) {
# <20>Ȳ<EFBFBD><C8B2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
$id = $v['id'];
unset($v['id']);
$state = $orderHistoryService->up($v);
if ($state) {
$orderService->del($id);
}
}
return true;
} else {
return false;
}
}
# <20><><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD>˻<EFBFBD><CBBB><EFBFBD>ˮ<EFBFBD><CBAE>־<EFBFBD><D6BE><EFBFBD><EFBFBD>Ǩ<EFBFBD><C7A8> ÿ<><C3BF>1<EFBFBD><31><EFBFBD>賿3<E8B3BF><33><EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD>
# 30 3 1 * * /www/server/php/74/bin/php /www/wwwroot/api/public/index.php gateway/api.task/moveAccountLog > /dev/null
public function moveAccountLog()
{
MerchantLogHistoryService::instance()->handle();
}
# <20><><EFBFBD>̻<EFBFBD><CCBB><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD>
public function rebate()
{
RebateService::instance()->getData();
}
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public function profit()
{
$day = input('day');
if (!$day) {
$day = date('Y-m-d', strtotime('-1 day'));
}
$orderHistoryService = OrderHistoryService::instance();
$data = $orderHistoryService->getTotalData($day);
if ($data) {
StatService::instance()->handle($day, $data);
}
}
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public function statChannel()
{
$day = input('day');
if (!$day) {
$day = date('Y-m-d', strtotime('-1 day'));
}
ChannelAccountService::instance()->stat($day);
}
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ӽ<EFBFBD><D3BD>̴<EFBFBD><CCB4><EFBFBD>
public function popenRunError()
{
$num = $this->getErrorNum();
if ($num < 1) {
$command = 'php /www/sites/reapi/index/public/index.php gateway/api.task/runErrorOrder 1>/dev/null 2>&1 &';
#<23>޸ĵ<DEB8>ַ
// $command = '/www/server/php/74/bin/php /www/wwwroot/bao111/public/index.php gateway/api.task/runErrorOrder 1>/dev/null 2>&1 &';
//$command = 'php /www/jiekou/public/index.php gateway/api.task/runErrorOrder 1>/dev/null 2>&1 &';
exec($command);
}
$this->success('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>', array('msg' => 'ok'));
}
# <20><>ȡ<EFBFBD><C8A1>ǰִ<C7B0>еĴ<D0B5><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public function getErrorNum()
{
$command = 'ps -ef | grep gateway/api.task/runErrorOrder | grep -v grep | wc -l';
$num = exec($command);
return $num;
}
# <20><>ʧ<EFBFBD>ܵĶ<DCB5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> status = -2 <20>ֶ<EFBFBD>ִ<EFBFBD><D6B4>
public function runErrorOrder()
{
$orderService = OrderService::instance();
$data = $orderService->getErrorOrder();
if ($data) {
foreach ($data as $k => $v) {
if ($v['request']) {
$v['request'] = json_decode($v['request'], true);
// ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$v['request']['product'] = ProductService::instance()->get($v['request']['merchant'], 12);
print_r($v);
$this->run($v['request']);die;
}
}
}
}
/*
public function not()
{
$MerchantService = MerchantService::instance();
$data['status'] = 3;
$data['cash'] = 100;
$data['order_id'] = 'Q202010284980886664664866';
$data['merchant_order_id'] = '1603849810460200838';
$data['notify_num'] = 1;
$MerchantService->up(5, $data);
}
*/
# <20><><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3> ÿ<><C3BF>0<EFBFBD><30>10<31><30>ͳ<EFBFBD>ư<EFBFBD>
public function account()
{
$day = input('day');
if (!$day) {
$day = date('Y-m-d', strtotime('-1 day'));
}
\app\setting\service\AccountLogService::instance()->handle($day);
}
public function account_all()
{
$yue = '2021-07-';
for ($i = 1; $i<=30; $i++) {
if ($i < 10) {
$k = '0'. $i;
} else {
$k = $i;
}
$day = $yue . $k;
\app\setting\service\AccountLogService::instance()->handle($day);
}
}
# <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public function getYue(): void
{
$day = input('day');
if (!$day) {
$day = date('Y-m-d', strtotime('-1 day'));
}
if (isset($_SERVER["argv"][2]) && $_SERVER["argv"][2]) {
$cid = $_SERVER["argv"][2];
} else {
$cid = false;
}
if (!$cid) {
exit('error');
}
//10040_10026_10044
//10040_10026
$log = \app\setting\service\AccountLogService::instance();
$cid = explode('_', $cid);
foreach ($cid as $k => $v) {
$log->getYue($v, $day);
}
}
# <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3AC>ÿСʱ58<35><38><EFBFBD><EFBFBD>ʱִ<CAB1><D6B4>
public function pullredisOrder(): void
{
$orderService = OrderService::instance();
$data = $orderService->db()->field('status,merchant_order_id,create_at,account,mid')->select()->toArray();
$this->redis();
if($data){
foreach($data as $key=>$v){
$res= $this->redis->set('kuaishou_query'.$data[$key]['merchant_order_id'],$data[$key],10*60+rand(10,99));
if($res==false){
Log::write('gateway', 'kuaishou_query_task', '<27><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>-'.$data[$key]['merchant_order_id']);
}
}
}
}
/* <20>Կ<EFBFBD><D4BF>ֺ<EFBFBD><D6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD>˿<CBBF><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4> */
public function refundKuaishou()
{
try {
$this->redis();
$redisData = $this->redis->pop('blackcall');
$param = array();
$param['orderId'] = $redisData['orderNo'];
$param['status'] = 'FAILED';
$param['bizType'] = '20';
$param['failCode'] = '4013022';
$param['failMsg'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$param = json_encode($param);
$signtime = time();
$sign = 'access_token=' . $redisData['access_token'] . '&appkey=' . $redisData['agentId'] . '&method=integration.virtual.topup.mobile.order.callback&param=' . $param . '&signMethod=MD5&timestamp=' . $signtime . '&version=1';
$signmd5 = md5($sign);
$param = urlencode($param);
$geturl = $redisData['notify_url'] . '?access_token=' . $redisData['access_token'] . '&appkey=' . $redisData['agentId'] . '&method=integration.virtual.topup.mobile.order.callback&param=' . $param . '&signMethod=MD5&timestamp=' . $signtime . '&version=1&sign=' . $signmd5;
// $blackGet= ['result' => '1'];
$blackGet = \app\gateway\controller\api\Coreks::get_curl_post($geturl);
$blackGet = json_decode($blackGet, true);
$response = $blackGet['result'];
if ($response == '1') {
Log::write('gateway', 'black', $blackGet);
} else {
Log::write('errorTip', 'black_request', $redisData);
Log::write('gateway', 'black', $blackGet);
}
return 'ok';
} catch (\Exception $e) {
// return $e;
Log::write('errorTip', 'redis', $e->getMessage());
return 'error';
}
}
#<23><>cardbuy<75><79><EFBFBD>õĿ<C3B5><C4BF><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><ECB2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>״̬,<2C><><EFBFBD><EFBFBD>Ϊÿ<CEAA><C3BF><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
public function kami_chanel_notifly()
{
$orderService = OrderService::instance();
$where1 = [
'status' => '7' ,
// 'product_key' => ['like','%cardbuy%']
];
$where[] = [
'product_key','like','%cardbuy%'
];
// $where = [
// 'status' => '7' ,
// 'product_key' => ['like','%cardbuy%']
// ];
$orderlist = $orderService->db()->where($where)->where($where1)->order('id asc')->select()->toArray();
// var_dump($orderlist);die;
foreach($orderlist as $key=>$v){
$kami91server = Kami91OrderService::instance();
$info = $kami91server->db()->where(['order_id' => $v['order_id']])->find();
// var_dump($info);die;
if(!$info){
$this->kami91order();
}elseif(isset($info['status']) && $info['status'] == '6'){
#<23><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>״̬<D7B4>Ƿ<EFBFBD><C7B7>ѷ<EFBFBD><D1B7><EFBFBD>
$kami91 =new \app\openapi\controller\Kami91($this->app);
$check = $kami91->queryFaka($v['merchant_order_id']);
// var_dump($check);die;
if($check == 'ok'){
$msg = 'success';
$kami91server->upStatus($v['order_id'], 2 ,$msg);
$kami91->huidiao($v['order_id']);
}
} elseif (empty($info['cardno'])){
$kami91=new \app\openapi\controller\Kami91($this->app);
$kami91->uphuidiao($v['order_id']);
}
}
}
#<23><><EFBFBD><EFBFBD>91<39><31><EFBFBD><EFBFBD><E2B6A9><EFBFBD><EFBFBD>
public function kami91order()
{
$kami91server = Kami91OrderService::instance();
$where1 = [
'status' => '1' ,
// 'product_key' => ['like','%cardbuy%']
];
$where[] = [
'product_key','like','%cardbuy%'
];
$orderlist = $kami91server->db()->where($where)->where($where1)->order('id asc')->select()->toArray();
// var_dump($orderlist);die;
foreach($orderlist as $key=>$v){
$orderService = OrderService::instance();
$order = $orderService->get('', $v['merchant_order_id'] ,$v['mid']);
if($order){
$data =array();
$data['order_id'] = $order['order_id'];
$data['status'] = 4;
$kami91server->db()->where(array('merchant_order_id' => $v['merchant_order_id']))->update($data);
}
}
}
public function runerrorOther()
{
$time = '1.5';
$orderService = OrderService::instance();
$data = $orderService->getOldDataDiy($time);
// print_r($data);die;
foreach ($data as $k => $v) {
if ($v['request'] && $v['status'] == 1) {
$v['request'] = json_decode($v['request'], true);
\app\order\service\OrderService::instance()->setCallback(1, $v['order_id'], 3);
}
}
}
public function kami91orderstatus()
{
$kami91server = Kami91OrderService::instance();
$where1 = [
'status' => '4' ,
// 'product_key' => ['like','%cardbuy%']
];
$where[] = [
'product_key','like','%cardbuy%'
];
$orderlist = $kami91server->db()->where($where)->where($where1)->order('id asc')->select()->toArray();
// var_dump($orderlist);die;
foreach($orderlist as $key=>$v){
$orderService = OrderService::instance();
$order = $orderService->get('', $v['merchant_order_id'] ,$v['mid']);
// var_dump($order);die;
if($order){
$data = [];
if($order['status'] == '3'){
if(empty($order['merchant_callback_msg']) || $order['merchant_callback_msg'] == '{}'){
$data['order_id'] = $order['order_id'];
$data['status'] = '3';
$kami91server->db()->where(array('merchant_order_id' => $v['merchant_order_id']))->update($data);
}elseif(isset($order['response']) ){
$response = json_decode($order['response'],true);
if(isset($response['kami'])){
$data = [
'cardno' =>$response['kami']['cardno'],
'cardpwd' =>$response['kami']['cardpwd'],
'expire_time' =>$response['kami']['expired'],
];
$data['order_id'] = $order['order_id'];
$data['status'] = '7';
$kami91server->db()->where(array('merchant_order_id' => $v['merchant_order_id']))->update($data);
}else{
$data['order_id'] = $order['order_id'];
$data['status'] = '3';
$kami91server->db()->where(array('merchant_order_id' => $v['merchant_order_id']))->update($data);
}
}else{
$data['order_id'] = $order['order_id'];
$data['status'] = '3';
$kami91server->db()->where(array('merchant_order_id' => $v['merchant_order_id']))->update($data);
}
}elseif($order['status'] == '2'){
if(isset($order['response'])) {
$response = json_decode($order['response'], true);
if (isset($response['kami'])) {
$data = [
'cardno' => $response['kami']['cardno'],
'cardpwd' => $response['kami']['cardpwd'],
'expire_time' => $response['kami']['expired'],
];
}
}
$data['order_id'] = $order['order_id'];
$data['status'] = '2';
$kami91server->db()->where(array('merchant_order_id' => $v['merchant_order_id']))->update($data);
}
}
}
}
public function kami91orderstatus2()
{
$kami91server = Kami91OrderService::instance();
$where1 = [
'status' => '6' ,
// 'product_key' => ['like','%cardbuy%']
];
$where[] = [
'product_key','like','%cardbuy%'
];
$orderlist = $kami91server->db()->where($where)->where($where1)->order('id asc')->select()->toArray();
// var_dump($orderlist);die;
foreach($orderlist as $key=>$v){
$orderService = OrderService::instance();
$order = $orderService->get('', $v['merchant_order_id'] ,$v['mid']);
if($order){
$data = [];
if($order['status'] == '3') {
$kami91 = new \app\openapi\controller\Kami91($this->app);
$check = $kami91->queryFaka($v['merchant_order_id']);
// var_dump($check);die;
if ($check == 'ok') {
$msg = 'success';
$data['order_id'] = $order['order_id'];
$data['status'] = '5';
$kami91server->db()->where(array('merchant_order_id' => $v['merchant_order_id']))->update($data);
// $kami91server->upStatus($v['order_id'], 2 ,$msg);
// $kami91->huidiao($v['order_id']);
} else {
// $msg = 'success';
$data['order_id'] = $order['order_id'];
$data['status'] = '7';
$kami91server->db()->where(array('merchant_order_id' => $v['merchant_order_id']))->update($data);
}
}elseif ($order['status'] == '2'){
$data['order_id'] = $order['order_id'];
$data['status'] = '2';
$kami91server->db()->where(array('merchant_order_id' => $v['merchant_order_id']))->update($data);
}
}
}
}
public function kamiordertime()
{
$time = '30';
$orderService = OrderService::instance();
$data = $orderService->getKamiOldDataDiy($time);
$kami91server = Kami91OrderService::instance();
foreach ($data as $k => $v) {
if ($v['status'] == 7) {
$info = $kami91server->db()->where(['order_id' => $v['order_id']])->find();
// var_dump($info);die;
if(!$info){
\app\order\service\OrderService::instance()->setCallback(1, $v['order_id'], 3);
}else {
$kami91 = new \app\openapi\controller\Kami91($this->app);
$check = $kami91->queryFaka($v['merchant_order_id']);
if ($check == 'ok') {
$msg = 'success';
$kami91server->upStatus($v['order_id'], 2, $msg);
$kami91->huidiao($v['order_id']);
} else {
\app\order\service\OrderService::instance()->setCallback(1, $v['order_id'], 3);
}
}
// $v['request'] = json_decode($v['request'], true);
// \app\order\service\OrderService::instance()->setCallback(1, $v['order_id'], 3);
}
}
}
# <20>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>賿1<E8B3BF><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD>Ĭ<EFBFBD><C4AC>Ǩ<EFBFBD><C7A8>ǰһ<C7B0><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public function kami_finish()
{
$day = input('day');
MerchantService::instance()->init($day);
/*
if (!$day) {
$day = date('Y-m-d', strtotime('-1 day'));
}
*/
$page = 1;
while($this->kami_finishOne($day, $page)) {
$page++;
}
}
public function kami_finishOne($day, $page)
{
$kami91server = Kami91OrderService::instance();
$kamiorderHistoryService = KamiOrderHistoryService::instance();
$data = $kami91server->getFinishData($day, $page);
if ($data) {
foreach ($data as $k => $v) {
# <20>Ȳ<EFBFBD><C8B2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
$id = $v['id'];
unset($v['id']);
$state = $kamiorderHistoryService->up($v);
if ($state) {
$kami91server->del($id);
}
}
return true;
} else {
return false;
}
}
public function kami_jc()
{
$kami91server = Kami91OrderService::instance();
$where1 = [
'status' => '7',
// 'product_key' => ['like','%cardbuy%']
];
$where[] = [
'product_key', 'like', '%cardbuy%'
];
$orderlist = $kami91server->db()->where($where)->where($where1)->order('id asc')->select()->toArray();
// var_dump($orderlist);die;
$quantity = 0;
$quantity1 = 0;
foreach ($orderlist as $key => $v) {
$orderService = OrderService::instance();
$order = $orderService->get('', $v['merchant_order_id'], $v['mid']);
if ($order) {
$data = [];
if ($order['status'] == '3') {
$kami91 = new \app\openapi\controller\Kami91($this->app);
$check = $kami91->queryFaka($v['merchant_order_id']);
// var_dump($check);die;
if ($check == 'ok') {
// $quantity++; // ÿ<><C3BF>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
// $quantity1 = $quantity1 + $order['cash'];
// $quantity++;
//
echo $order['merchant_order_id'] . "\n";
// $kami91server->upStatus($v['order_id'], 2 ,$msg);
// $kami91->huidiao($v['order_id']);
}
}
}
}
}
public function renwu()
{
// $this->_queue('[ <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD> - <20>Զ<EFBFBD>ͬ<EFBFBD><CDAC> ] <20><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>', "xQueue:KamiOrderAssociation", 0, [], 0,1);
// $this->_queue('[ <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD> - <20>Զ<EFBFBD>ͬ<EFBFBD><CDAC> ] ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬', "xQueue:KamiOrderStatusSync", 0, [], 0,1);
// $this->_queue('[ <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD> - <20>Զ<EFBFBD>ͬ<EFBFBD><CDAC> ] <20><>cardbuy<75><79><EFBFBD>õĿ<C3B5><C4BF><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><ECB2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>״̬', "xQueue:KamiOrderChanelNotify", 0, [], 0,1);
$this->_queue('[ <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD> - <20>Զ<EFBFBD>ͬ<EFBFBD><CDAC> ] <20><><EFBFBD>󶩵<EFBFBD><F3B6A9B5>˿<EFBFBD>', "xQueue:KamiOrderErrorRefund", 0, [], 0,300);
// $cur = time();
// $time = 300;
// $whereRaw = $cur . '-unix_timestamp(create_at) >=' . $time;
// $kami91server = Kami91OrderService::instance();
// $total = $kami91server->db()->whereRaw('status = 1 and ' . $whereRaw)->count();
// print_r($total);
}
}