1511 lines
51 KiB
PHP
1511 lines
51 KiB
PHP
<?php
|
||
namespace app\openapi\controller;
|
||
set_time_limit(0);
|
||
ini_set('memory_limit','512M');
|
||
ini_set('default_socket_timeout', -1); //不超时
|
||
use app\channel\service\CardService;
|
||
use app\channel\service\ChannelService;
|
||
use app\channel\service\KamiService;
|
||
use app\channel\service\ProductService;
|
||
use app\core\BtWafService;
|
||
use app\gateway\controller\api\Notify;
|
||
use app\gateway\service\RedisService;
|
||
use app\kami\controller\getcookie\KaiDianBao;
|
||
use app\kami\controller\getcookie\ZhongZhao;
|
||
use app\kami\controller\suoka\JunKa;
|
||
//use app\kami\controller\suoka\ZhongZhao as ZhongZhaoSuoKA;
|
||
use app\kami\service\LockCardService;
|
||
use app\merchant\service\MerchantLogService;
|
||
use app\merchant\service\MerchantService;
|
||
|
||
use app\merchant\service\OrderAutoService;
|
||
use app\merchant\service\OrderHistoryService;
|
||
use app\merchant\service\OrderLastHistoryService;
|
||
use app\merchant\service\OrderLastweekHistoryService;
|
||
use app\merchant\service\OrderTwoHistoryService;
|
||
use app\merchant\service\PercentService;
|
||
use app\merchant\service\ProductService as MerchantProductService;
|
||
use app\merchant\service\ProjectProductService as MerchantProjectProductService;
|
||
use app\merchant\service\ProjectService;
|
||
use app\openapi\controller\Coretb;
|
||
use app\merchant\service\OrderService;
|
||
//use app\kami\controller\suoka\ZhongZhao as ZhongZhaoM;
|
||
|
||
|
||
//use app\openapi\controller\Coretb;
|
||
use app\order\controller\Order;
|
||
use app\order\service\AfterSalesOrderService;
|
||
use app\order\service\Kami91OrderService;
|
||
use app\order\service\OrderService as OrderBase;
|
||
use app\robot\controller\api\Qqbot;
|
||
use app\setting\service\BlackCardService;
|
||
use app\setting\service\StatService;
|
||
use dever\Log;
|
||
use think\Collection;
|
||
use think\console\Input;
|
||
use think\console\Output;
|
||
use think\exception\HttpResponseException;
|
||
use think\facade\Db;
|
||
|
||
/**
|
||
* 测试接口 上线取消
|
||
* Class Test
|
||
* @package app\gateway\api
|
||
*/
|
||
class Test extends Core
|
||
{
|
||
# 是否检测数据
|
||
protected $redis = false;
|
||
protected $check = false;
|
||
|
||
// public function __construct($async = false, $data = array(), $channel = array(), $product = array())
|
||
// {
|
||
// parent::__construct($async, $data, $channel, $product);
|
||
// $actionName = request()->action();
|
||
// $param=func_get_args();
|
||
// if(strpos($actionName, '_cardbuy') !== false){
|
||
// if(!method_exists($this,$actionName)){
|
||
//// $param = request()->param();
|
||
// $this->cardbuy($param);
|
||
// }
|
||
// }
|
||
//
|
||
// }
|
||
|
||
|
||
|
||
public function cardbuy($param)
|
||
{
|
||
var_dump($param);die;
|
||
|
||
}
|
||
|
||
public function btwaf()
|
||
{
|
||
// $m_oldIpWhite_data = MerchantService::instance()->db()->field('ip_white')->where(['id'=>6])->find();
|
||
//// $m_oldIpWhite = $m_oldIpWhite_data['ip_white'];
|
||
// if($m_oldIpWhite_data && isset($m_oldIpWhite_data['ip_white']) && $m_oldIpWhite_data['ip_white']){
|
||
// $old_ip_white_array = $m_oldIpWhite_data['ip_white']?explode(',', $m_oldIpWhite_data['ip_white']):[];
|
||
// $ip_white_array = [
|
||
// '223.5.5.5','122.234.200.204'
|
||
// ];
|
||
// foreach ($old_ip_white_array as $k => $v) {
|
||
// if(in_array($old_ip_white_array[$k], $ip_white_array)){
|
||
// var_dump($old_ip_white_array[$k]);
|
||
// }
|
||
//
|
||
// }
|
||
// }
|
||
// var_dump(123);die;
|
||
// $inf= '{"name":"ip白名单","servers":["apis.gcdat.com"],"status":1,"is_global":0,"priority":0,"root":{"logic":"or","type":"block","option":null,"children":[{"logic":"and","type":"block","option":null,"children":[{"type":"option","logic":"","children":[],"option":{"type":"ip","operator":"eq","left_factor":"","right_factor":"125.122.178.235"}}]},{"logic":"and","type":"block","option":null,"children":[{"type":"option","logic":"","children":[],"option":{"type":"ip","operator":"eq","left_factor":"","right_factor":"1.1.1.1"}}]},{"logic":"and","type":"block","option":null,"children":[{"type":"option","logic":"","children":[],"option":{"type":"ip","operator":"eq","left_factor":"","right_factor":"223.5.5.5"}}]}]},"action":{"type":"allow","response":{"type":"","response_id":0,"status":0,"headers":{},"body":""}}}';
|
||
// var_dump(json_decode($inf,true));die;
|
||
$api_domain = 'apis.gcdat.com';
|
||
|
||
$ip_white_data = '223.5.5.5,1.1.1.1,8.9.9.9';
|
||
|
||
|
||
|
||
$ip_white_array = $ip_white_data ? explode(',', $ip_white_data) : [];
|
||
$bt = new BtWafService();
|
||
$list = $bt->get_customize_list();
|
||
$ip_white_id = '';
|
||
if ($list) {
|
||
$rule_list = $list['msg']['rules'];
|
||
$name = 'ip白名单-' . '3';
|
||
foreach ($rule_list as $k => $v) {
|
||
if ($v['name'] == $name) {
|
||
$ip_white_id = $k;
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
if ($ip_white_id) {
|
||
$data = $bt->update_waf_whiteIp($ip_white_id, $name, $api_domain, $ip_white_array);
|
||
var_dump($data);
|
||
|
||
}else{
|
||
$data = $bt->update_waf_whiteIp('', $name, $api_domain, $ip_white_array);
|
||
var_dump($data);
|
||
}
|
||
die;
|
||
|
||
|
||
$bt = new BtWafService();
|
||
$list = $bt->get_customize_list();
|
||
$ip_white_id = '';
|
||
if($list){
|
||
$rule_list = $list['msg']['rules'];
|
||
$name = 'ip白名单-'.'1';
|
||
foreach ($rule_list as $k=>$v){
|
||
if($v['name'] == $name){
|
||
$ip_white_id = $k;
|
||
break;
|
||
}
|
||
|
||
}
|
||
var_dump($list);
|
||
|
||
|
||
}
|
||
|
||
if($ip_white_id){
|
||
var_dump($ip_white_id);
|
||
|
||
}
|
||
|
||
|
||
// var_dump($rule_list);
|
||
|
||
}
|
||
|
||
public function check_oar()
|
||
{
|
||
$orderAutoService = OrderAutoService::instance();
|
||
$use = $orderAutoService->get('GC202410015956625258801961');
|
||
$use_product[] = 51;
|
||
foreach ($use as $k => $v) {
|
||
$use_product[] = $v['pid'];
|
||
}
|
||
$product_data = MerchantProductService::instance()->getAll(6, 'ydcz');
|
||
$where['mid'] = 6;
|
||
$where['pid'] = $use_product[0];
|
||
|
||
$data1 = MerchantProductService::instance()->db()->where($where)->find();
|
||
|
||
if ($product_data) {
|
||
foreach ($product_data as $k => $v) {
|
||
if ($v['cash']) {
|
||
if ($isp && (strstr($v['cash'], '联通') || strstr($v['cash'], '移动') || strstr($v['cash'], '电信'))) {
|
||
$cash = $isp;
|
||
}
|
||
$temp = explode(',', $v['cash']);
|
||
if (!in_array($cash, $temp)) {
|
||
continue;
|
||
}
|
||
}
|
||
if (!$data1) {
|
||
$data1 = ['sort' => '10'];
|
||
}
|
||
if (!in_array($v['pid'], $use_product) && $v['sort'] < $data1['sort']) {
|
||
return $v['pid'];
|
||
}
|
||
}
|
||
}
|
||
var_dump($this->use_product);
|
||
|
||
}
|
||
|
||
public function check_merchant_limit()
|
||
{
|
||
$mid = input('mid');
|
||
$count = OrderBase::instance()->countMerchantCash($mid);
|
||
var_dump($count);
|
||
|
||
|
||
}
|
||
|
||
# 计算利润
|
||
public function profit()
|
||
{
|
||
$day = input('day');
|
||
if (!$day) {
|
||
$day = date('Y-m-d', strtotime('-1 day'));
|
||
}
|
||
// $orderHistoryService = OrderHistoryService::instance();
|
||
$orderHistoryService = OrderLastHistoryService::instance();
|
||
$data = $orderHistoryService->getTotalData($day);
|
||
// var_dump($data);
|
||
if ($data) {
|
||
StatService::instance()->handle($day, $data);
|
||
}
|
||
}
|
||
|
||
public function upblacks()
|
||
{
|
||
$infoArray = BlackCardService::instance()->db()->select()->toArray();
|
||
|
||
foreach ($infoArray as $k=>$v){
|
||
if(str_contains($v['desc'], ":")){
|
||
$order_id = explode(':', $v['desc']);
|
||
if(str_contains($order_id[1], "C")){
|
||
// var_dump($order[1]);die;
|
||
$order = OrderLastHistoryService::instance();
|
||
|
||
$info = $order->db()->field('mid,merchant_order_id,mid,param,order_id')->where(['order_id' => $order_id[1]])->find();
|
||
if(!$info){
|
||
$order = OrderTwoHistoryService::instance();
|
||
$info = $order->db()->field('mid,merchant_order_id,mid,param,order_id')->where(['order_id' => $order_id[1]])->find();
|
||
}
|
||
if(!$info){
|
||
$order = OrderHistoryService::instance();
|
||
$info = $order->db()->field('mid,merchant_order_id,mid,param,order_id')->where(['order_id' => $order_id[1]])->find();
|
||
}
|
||
|
||
if($info){
|
||
$param = json_decode($info['param'],true);
|
||
|
||
$merchant = MerchantService::instance()->get($info['mid']);
|
||
|
||
$Seesionkey = $merchant['refresh_token'];#淘宝此token为直充系统授权token
|
||
$request = [];
|
||
$request['agentId'] = $merchant['agentId'];
|
||
$request['agentkey'] = $merchant['agentkey'];
|
||
if(isset($merchant['other_param']) && $merchant['other_param'] && str_contains($merchant['other_param'], "reapi_appkey"))
|
||
{
|
||
$other_param = json_decode($merchant['other_param'], true);
|
||
$request['agentId'] = $other_param['reapi_appkey'];
|
||
$request['agentkey'] = $other_param['reapi_appsecret'];
|
||
$Seesionkey = $merchant['access_token'];
|
||
|
||
}
|
||
$request['tid'] = $info['merchant_order_id'];
|
||
$request['access_token'] = $Seesionkey;
|
||
$response = Coretb::taobaosdk('getByTrade',$request);
|
||
$json = json_encode($response);
|
||
$array = json_decode($json,true);
|
||
if(is_array($array)){
|
||
if(isset($array['open_uid']) && $array['open_uid']){
|
||
|
||
$uid = $array['open_uid'];
|
||
BlackCardService::instance()->db()->where(array('id' => $v['id']))->update(['value'=>$uid]);
|
||
// var_dump($uid);
|
||
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
// $infoss = json_decode($v,true);
|
||
|
||
|
||
|
||
|
||
}
|
||
// var_dump($data);die;
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
public function test()
|
||
{
|
||
|
||
$begin = '2024-08-06 00:00:00';
|
||
$after = '2024-08-06 23:59:59';
|
||
$orderHistoryService = OrderLastHistoryService::instance();
|
||
$time = [$begin, $after];
|
||
|
||
// $db =Db::name('daxiangka_heidui');
|
||
|
||
// $db = $orderHistoryService->db()->whereRaw('status in(3) and cid = 5');
|
||
// $data = $db->whereBetween('create_at', $time)->order('id asc')->select()->toArray();
|
||
$data = Db::name('baka_hedui')->select();
|
||
|
||
foreach ($data as $k => $v) {
|
||
$id_order = $orderHistoryService->db()->whereRaw('status = 2 and cid = 8 and channel_order_id like '.$v['channel_order_id'])->find();
|
||
// if()
|
||
$sd = Db::name('daxiangka_heidui')->where(['order_id' => $v['order_id']])->delete();
|
||
// var_dump($id_order['order_id']);
|
||
// $id_order = $orderHistoryService->db()->whereBetween('create_at', $time)->whereRaw('status in(2) and cid = 5')->where(['merchant_order_id' => $v['merchant_order_id']])->findOrEmpty();
|
||
|
||
if (!$id_order) {
|
||
var_dump($v);
|
||
// var_dump($v['merchant_order_id']);
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
public function daxk()
|
||
{
|
||
|
||
$begin = '2024-08-06 00:00:00';
|
||
$after = '2024-08-06 23:59:59';
|
||
$orderHistoryService = OrderLastHistoryService::instance();
|
||
$time = [$begin, $after];
|
||
|
||
// $db =Db::name('daxiangka_heidui');
|
||
|
||
$db = $orderHistoryService->db()->whereRaw('status in(3) and cid = 5');
|
||
$data = $db->whereBetween('create_at', $time)->order('id asc')->select()->toArray();
|
||
// $data = Db::name('daxiangka_heidui')->select();
|
||
|
||
foreach ($data as $k => $v) {
|
||
$id_order = Db::name('daxiangka_heidui')->where(['merchant_order_id' => $v['merchant_order_id']])->find();
|
||
// $id_order = $orderHistoryService->db()->whereBetween('create_at', $time)->whereRaw('status in(2) and cid = 5')->where(['merchant_order_id' => $v['merchant_order_id']])->findOrEmpty();
|
||
|
||
if($id_order){
|
||
var_dump($id_order);
|
||
// var_dump($v['merchant_order_id']);
|
||
}
|
||
|
||
// foreach ($id_order as $ks => $vs) {
|
||
//
|
||
//// var_dump($sd);die;
|
||
////
|
||
//// $id = $vs['merchant_order_id'];
|
||
//// unset($vs['id']);
|
||
//
|
||
// $state = Db::name('test_error')->insert($vs);
|
||
// if ($state) {
|
||
// $sd = Db::name('daxiangka_heidui')->where(['order_id' => $vs['order_id']])->delete();
|
||
// }
|
||
//// $jine = $jine+($v['count']-1)*$v['cash'];
|
||
//// $jine = $jine+($v['count']-1);
|
||
//// var_dump($v);die;
|
||
//
|
||
// }
|
||
// $jine = $jine+($v['count']-1)*$v['cash'];
|
||
// $jine = $jine+($v['count']-1);
|
||
// var_dump($v);die;
|
||
|
||
}
|
||
die;
|
||
// $db = $orderHistoryService->db()->whereRaw('status in(2) and cid = 5');
|
||
// $data = $db->whereBetween('create_at', $time)->order('id asc')->select()->toArray();
|
||
// $data = $db->field('*, COUNT(*) as count')
|
||
// ->group('merchant_order_id')
|
||
// ->having('count > 1')
|
||
// ->select();
|
||
// $jine = 0;
|
||
////
|
||
// foreach ($data as $k => $v) {
|
||
//// $jine = $jine+($v['count']-1)*$v['cash'];
|
||
// $jine = $jine+($v['count']-1);
|
||
//// var_dump($v);die;
|
||
//
|
||
// }
|
||
//
|
||
// var_dump($jine);die;
|
||
|
||
//
|
||
$db =Db::name('daxiangka_heidui');
|
||
$s = $db->field('*, COUNT(*) as count')
|
||
->group('merchant_order_id')
|
||
->having('count > 1')
|
||
->select();
|
||
|
||
var_dump($s);die;
|
||
|
||
$jine = 0;
|
||
//
|
||
|
||
foreach ($s as $k => $v) {
|
||
$id_order = Db::name('daxiangka_heidui')->where(['merchant_order_id' => $v['merchant_order_id']])->select()->toArray();
|
||
foreach ($id_order as $ks => $vs) {
|
||
|
||
// var_dump($sd);die;
|
||
//
|
||
// $id = $vs['merchant_order_id'];
|
||
// unset($vs['id']);
|
||
|
||
$state = Db::name('test_error')->insert($vs);
|
||
if ($state) {
|
||
$sd = Db::name('daxiangka_heidui')->where(['order_id' => $vs['order_id']])->delete();
|
||
}
|
||
// $jine = $jine+($v['count']-1)*$v['cash'];
|
||
// $jine = $jine+($v['count']-1);
|
||
// var_dump($v);die;
|
||
|
||
}
|
||
// $jine = $jine+($v['count']-1)*$v['cash'];
|
||
// $jine = $jine+($v['count']-1);
|
||
// var_dump($v);die;
|
||
|
||
}
|
||
|
||
var_dump($jine);
|
||
|
||
}
|
||
|
||
public function kaidianbao_query()
|
||
{
|
||
$merchant_order = input('merchant_order_id');
|
||
$request['shop_id'] = input('mid');
|
||
$request['bill_id'] = $merchant_order;
|
||
$request['time_stamp'] =date('YmdHis');
|
||
|
||
|
||
|
||
$signature_string = '';
|
||
foreach ($request as $k => $v) {
|
||
// if (isset($request[$v]) && $request[$v]) {
|
||
|
||
$signature_string .= $k . '=' . $v . '&';
|
||
|
||
}
|
||
|
||
$signature_string = substr($signature_string, 0, -1);
|
||
|
||
$signature_string .= '|||'.(input('token'));
|
||
// var_dump($signature_string);die;
|
||
// $signature_string = iconv("UTF-8", "gbk", $signature_string);
|
||
|
||
|
||
$request['sign'] = md5($signature_string);
|
||
$url = 'http://papi.sx92577.com/api/UCardFetchQuery';
|
||
$response = http_get($url,$request);
|
||
|
||
|
||
$pairs = explode('&', $response);
|
||
$array = [];
|
||
foreach ($pairs as $pair) {
|
||
// 分割键和值
|
||
list($key, $value) = explode('=', $pair);
|
||
// 解码键和值
|
||
$array[urldecode($key)] = urldecode($value);
|
||
}
|
||
|
||
$result = array();
|
||
// $result['status'] = 4;
|
||
if (isset($array['ret_code']) && $array['ret_code'] == '0') {
|
||
if (isset($array['card_no_data'])) {
|
||
$cipher = "des-ede3"; // 3des-ebc 使用的是des-ede3算法
|
||
$mode = "ebc"; // 工作模式为ebc
|
||
|
||
$iv = ""; // EBC模式不需要IV,留空即可
|
||
$deskey = input('deskey');
|
||
|
||
|
||
|
||
$kami = openssl_decrypt(hex2bin($array['card_no_data']), $cipher, $deskey, $options=OPENSSL_RAW_DATA, $iv); // 输出解密后的字符串
|
||
$kami = explode(',', $kami);
|
||
$kamidata = [
|
||
'cardno' => $kami[0],
|
||
'cardpwd' => $kami[1],
|
||
'expired' => $kami[2],
|
||
|
||
];
|
||
var_dump($kamidata);die;
|
||
}
|
||
}
|
||
var_dump($array);
|
||
|
||
}
|
||
|
||
|
||
public function stat_amount()
|
||
{
|
||
$day = input('day');
|
||
if (!$day) {
|
||
$day = date('Y-m-d', strtotime('-1 day'));
|
||
// var_dump($day);die;
|
||
}
|
||
// $orderHistoryService = OrderHistoryService::instance();
|
||
$orderHistoryService = OrderLastweekHistoryService::instance();
|
||
// if (!$day) {
|
||
// $day = date('Y-m-d', strtotime('-1 day'));
|
||
// }
|
||
$begin = $day . ' 00:00:00';
|
||
$after = $day . ' 23:59:59';
|
||
// $begin = '2024-08-01' . ' 00:00:00';
|
||
// $after = $day . ' 23:59:59';
|
||
$time = [$begin, $after];
|
||
$db = $orderHistoryService->db()->whereRaw('status in(2,3) ');
|
||
$where = array();
|
||
|
||
if ($where) {
|
||
$db->where($where);
|
||
}
|
||
$data = $db->whereBetween('create_at', $time)->field('cash,mid,cid,id,order_id,actual_cash,product_key,account,status,isp')->order('id asc')->select()->toArray();
|
||
// var_dump($data);die;
|
||
|
||
if ($data) {
|
||
|
||
|
||
$productService = ProductService::instance();
|
||
$zhekou = PercentService::instance();
|
||
$merchant = MerchantService::instance();
|
||
// $rule = $zhekou->get(1, 'jxk_cardbuy');
|
||
// var_dump($rule);die;
|
||
foreach ($data as $k => $v) {
|
||
$rule = $zhekou->get($v['mid'], $v['product_key']);
|
||
|
||
|
||
if ($rule && $rule['percent']) {
|
||
$percent = $rule['percent'];
|
||
if (isset($rule['percent_type']) && $rule['percent_type']) {
|
||
$percent_type = $rule['percent_type'];
|
||
}
|
||
|
||
$percent = $merchant->getPercent($percent, $v['account'], $v['product_key'], $v['cash'], $rule['rule'], $v['isp']);
|
||
}else{
|
||
$info = $merchant->getInfo($v['mid']);
|
||
$percent=$info['percent'];
|
||
$percent_type= 1;
|
||
|
||
}
|
||
|
||
|
||
|
||
if ($percent > 0) {
|
||
if ($percent_type == 2) {
|
||
$new_cash = $percent;
|
||
} else {
|
||
$new_cash = $percent*$v['cash'];
|
||
}
|
||
}
|
||
|
||
// var_dump($new_cash);
|
||
|
||
$orderHistoryService->db()->where(['order_id'=>$v['order_id']])->update(['actual_cash'=>$new_cash]);
|
||
|
||
// var_dump($expression);die;
|
||
|
||
|
||
}
|
||
die;
|
||
# 检查是否是固定数值
|
||
|
||
|
||
// var_dump($product);die;
|
||
|
||
|
||
}
|
||
print_r($data);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
public function test_daochu(){
|
||
$data = Db::name('test_daochu')->whereNull('cardno')->select()->toArray();
|
||
foreach ($data as $k => $v) {
|
||
$order = Db::name('merchant_order_lastweek_history')->where(['merchant_order_id'=>$v['merchant_order_id']])->field('merchant_order_id,order_id,mid,response,channel_callback_msg,status')->find();
|
||
if(!$order){
|
||
$order = Db::name('merchant_order_last_history')->where(['merchant_order_id'=>$v['merchant_order_id']])->field('merchant_order_id,order_id,mid,response,channel_callback_msg,status')->find();
|
||
}
|
||
if(!$order){
|
||
$order = Db::name('merchant_order_two_history')->where(['merchant_order_id'=>$v['merchant_order_id']])->field('merchant_order_id,order_id,mid,response,channel_callback_msg,status')->find();
|
||
}
|
||
if(!$order){
|
||
var_dump($v);continue;
|
||
}
|
||
if($order){
|
||
$response = json_decode($order['response'],true);
|
||
if(isset($response['kami'])){
|
||
$up = [
|
||
'cardno'=>$response['kami']['cardno'],
|
||
'cardpwd'=>$response['kami']['cardpwd']
|
||
];
|
||
}else{
|
||
$json = json_decode($$order['channel_callback_msg'],true);
|
||
if(isset($json['kami'])){
|
||
$up = [
|
||
'cardno'=>$json['kami']['cardno'],
|
||
'cardpwd'=>$json['kami']['cardpwd']
|
||
];
|
||
}
|
||
}
|
||
if(!$up){
|
||
var_dump($v);continue;
|
||
}
|
||
if($up){
|
||
Db::name('test_daochu')->where(['merchant_order_id'=>$v['merchant_order_id']])->update($up);
|
||
}
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
public function taobao_notify(){
|
||
$input = input();
|
||
$merchant_order_id = $input['merchant_order_id'];
|
||
$order = Db::name('merchant_order')->where(['merchant_order_id'=>$merchant_order_id])->find();
|
||
|
||
// if($order['status'] == 2){
|
||
// #成功1
|
||
//
|
||
// $apiParams['coop_order_status'] = 'SUCCESS';
|
||
//
|
||
//// $rsp_info = '';
|
||
// } elseif ($order['status'] == 3) {
|
||
// # 失败...
|
||
//
|
||
// $apiParams['coop_order_status'] = 'FAILED';
|
||
// $apiParams['failed_code'] = '0503';
|
||
// $apiParams['failed_reason'] = '充值失败';
|
||
// }
|
||
//
|
||
////
|
||
//
|
||
// }
|
||
//
|
||
// $taobao=new \app\openapi\controller\Taobao($this->app);
|
||
// $msg = $taobao ->notify($url,$param['merchant_order_id'] ,$merchant,$apiParams);
|
||
|
||
}
|
||
|
||
public function upkami()
|
||
{
|
||
$group_id = input('group_id');
|
||
$mid = input('mid');
|
||
$data = DB::name('ssss1234')->whereLike('status', '%已锁定%')->select()->toArray();
|
||
foreach ($data as $vo) {
|
||
// $m = DB::name('ssss1234')->whereLike('order', $vo['order'])->select()->toArray();//这个查出来的是很多
|
||
// var_dump($vo);die;//还不行?
|
||
#这个出来的是有空格的,我要去掉空格hao空格可能好长的那种;等会把身份证给我我要去程序员客栈认证//////可以吗?
|
||
$pattern = '/\s+/';
|
||
// $cardno = trim($pattern,'', $vo['卡号']);//正则判断去掉所有空格
|
||
$cardno = trim($vo['卡号']);//这是去掉首尾的空格
|
||
$cardpwd = trim( $vo['卡密']);
|
||
$cash = trim($vo['面值']);
|
||
$experid = rtrim($vo['过期时间']);#这个前面空格保留,我要去掉最后面的空格比如2024-04-09 12:00:00 我要去掉00后面的空格
|
||
#宝蓝那边的问题是这个原因吗/1
|
||
$KamiService = KamiService::instance();
|
||
// var_dump($cardno);
|
||
$upkami = $KamiService->upKami($cardno, $cardpwd, $cash,$experid,$group_id,$mid);
|
||
if($upkami){
|
||
Db::name('ssss1234')->whereLike('order', $vo['order'])->delete();//这个用like会不会太范了?不会,因为order是唯一只是怕空格影响
|
||
}else{
|
||
#判断是否为之前的订单二锁定二次销售
|
||
$data = array();
|
||
$data['cnum'] = $cardno;
|
||
$data['cpwd'] = $cardpwd;
|
||
$data['value'] = $cash;
|
||
|
||
// $data['kami_group_id'] = $sid;
|
||
$info = $KamiService->db()->where($data)->find();
|
||
if($info && $info['use'] == 2){
|
||
#更新为1
|
||
$KamiService->db()->where($data)->update(['use'=>1]);
|
||
var_dump($cardno);
|
||
$erorder = $KamiService->db()->where($data)->find();
|
||
if($erorder['use'] == 1){
|
||
Db::name('ssss1234')->whereLike('order', $vo['order'])->delete();//这个用like会不会太范了?不会,因为order是唯一只是怕空格
|
||
}
|
||
// 影响
|
||
|
||
}
|
||
}
|
||
|
||
// var_dump($upkami);die;
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
public function refuse()
|
||
{
|
||
$merchant_order_id = '2152497721850058778';
|
||
|
||
$merchant = MerchantService::instance()->get(1);
|
||
$app_data = json_decode($merchant['other_param'],true);
|
||
|
||
// $request['agentId'] = '34615444';
|
||
// $request['agentkey'] = '2e59a0c00b4fafd9ae46bedced6eccc3';
|
||
$request['agentId'] = $app_data['reapi_appkey'];
|
||
$request['agentkey'] = $app_data['reapi_appsecret'];
|
||
$request['access_token'] = $merchant['access_token'];
|
||
|
||
|
||
$request['refund_id'] = "156290305490057887";
|
||
$request['RefuseMessage'] = "测试一下";
|
||
$request['tid'] = $merchant_order_id;
|
||
$request['oid'] = $merchant_order_id;
|
||
$request['proof'] = "/www/sites/reapi/index/extend/refuse/QN_2137603910451763869.jpg";
|
||
$request['Phase'] = "aftersale";
|
||
$request['RefundVersion'] = "1715680501592";
|
||
$request['refuse_reason_id'] = "999";
|
||
|
||
//附件上传的机制参见PHP CURL文档,在文件路径前加@符号即可
|
||
|
||
|
||
// $request;
|
||
|
||
$requests = \app\openapi\controller\Coretb::taobaosdk("refundRefuse", $request);
|
||
var_dump($requests);
|
||
|
||
}
|
||
|
||
public function chuli_bug(){
|
||
$yema = input('yema');
|
||
$order = Db::name('merchant_order')->where(['status'=>'7','cid'=>4])->page($yema,20)->select()->toArray();
|
||
$LockCardService = LockCardService::instance();
|
||
foreach ($order as $vo => $value) {
|
||
$response = json_decode($value['response'], true);
|
||
|
||
$cardno = $response['kami']['cardno'];
|
||
$cardpwd = $response['kami']['cardpwd'];
|
||
$expire_time = $response['kami']['expired'];
|
||
|
||
$suoka = $LockCardService->call('suoka', $value['cid'], $cardno, $cardpwd, $value['pid'], $value['cash']);
|
||
var_dump($value['order_id'].'状态:'.$suoka);
|
||
if ($suoka == 'ok' || $suoka == 'old_ok') {
|
||
Db::name('merchant_order')->where(['order_id'=>$value['order_id']])->update(['status'=>'3']);
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
public function lock_card(){
|
||
$order_id = input('order_id');
|
||
$order = Db::name('merchant_order')->where(['order_id'=>$order_id])->find();
|
||
$LockCardService = LockCardService::instance();
|
||
|
||
$response = json_decode($order['response'], true);
|
||
|
||
$cardno = $response['kami']['cardno'];
|
||
$cardpwd = $response['kami']['cardpwd'];
|
||
$expire_time = $response['kami']['expired'];
|
||
|
||
$suoka = $LockCardService->call('suoka', $order['cid'], $cardno, $cardpwd, $order['pid'], $order['cash']);
|
||
var_dump($value['order_id'].'状态:'.$suoka);
|
||
if ($suoka == 'ok' || $suoka == 'old_ok') {
|
||
Db::name('merchant_order')->where(['order_id'=>$value['order_id']])->update(['status'=>'3']);
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
public function test1()
|
||
{
|
||
|
||
$nick = $this->get_nick('2139549746248392952');
|
||
$value = $nick;
|
||
$desc = '该买家于' . date('Y-m-d H-i-s') . '系统导入黑名单黑名单,关联订单号之一:2139549746248392952';
|
||
if($value != 'error'){
|
||
$upStatus = $this->upBlack(1, $value, $desc);
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
#获取买家id
|
||
public function get_nick($merchant_order_id,$mid)
|
||
{
|
||
$merchant = MerchantService::instance()->get($mid);
|
||
$Seesionkey = $merchant['refresh_token'];#淘宝此token为直充系统授权token
|
||
$request = [];
|
||
$request['agentId'] = $merchant['agentId'];
|
||
$request['agentkey'] = $merchant['agentkey'];
|
||
$request['tid'] = $merchant_order_id;
|
||
$request['access_token'] = $Seesionkey;
|
||
$response = Coretb::taobaosdk('getByTrade',$request);
|
||
$json = json_encode($response);
|
||
$array = json_decode($json,true);
|
||
if(is_array($array)){
|
||
if(isset($array['open_uid']) && $array['open_uid']){
|
||
return $array['open_uid'];
|
||
}
|
||
}
|
||
Log::write('openapi', 'taobao_getnick', $json);#写入到日志里
|
||
|
||
return 'error';
|
||
|
||
}
|
||
public function finishafter()
|
||
{
|
||
$day = input('day');
|
||
/*
|
||
if (!$day) {
|
||
$day = date('Y-m-d', strtotime('-1 day'));
|
||
}
|
||
*/
|
||
$page = 1;
|
||
while($this->finishOne_after($day, $page)) {
|
||
$page++;
|
||
}
|
||
|
||
}
|
||
|
||
public function finishOne_after($day, $page)
|
||
{
|
||
$orderService = AfterSalesOrderService::instance();
|
||
|
||
$data = $orderService->getFinishData($day, $page);
|
||
|
||
if ($data) {
|
||
foreach ($data as $k => $v) {
|
||
# 先插入一条历史数据
|
||
$id = $v['id'];
|
||
unset($v['id']);
|
||
$state = Db::name('merchant_order_history_aftersales')->insert($v);
|
||
if ($state) {
|
||
$orderService->del($id);
|
||
}
|
||
}
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
public function finishkami()
|
||
{
|
||
$day = input('day');
|
||
/*
|
||
if (!$day) {
|
||
$day = date('Y-m-d', strtotime('-1 day'));
|
||
}
|
||
*/
|
||
$page = 1;
|
||
while($this->finishOne_kami($day, $page)) {
|
||
$page++;
|
||
}
|
||
|
||
}
|
||
|
||
public function finishOne_kami($day, $page)
|
||
{
|
||
$orderService = Kami91OrderService::instance();
|
||
|
||
$data = $orderService->getFinishData($day, $page);
|
||
|
||
if ($data) {
|
||
foreach ($data as $k => $v) {
|
||
# 先插入一条历史数据
|
||
$id = $v['id'];
|
||
unset($v['id']);
|
||
$state = Db::name('merchant_order_history_kami91')->insert($v);
|
||
if ($state) {
|
||
$orderService->del($id);
|
||
}
|
||
}
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
public function checkkami()
|
||
{
|
||
$order = $this->getOrderInfo(input('order_id'),'','');
|
||
$order_id = $order['order_id'].'_R';
|
||
// var_dump($order);die;
|
||
$channelService = ChannelService::instance();
|
||
$check = $channelService->call('replaceCard_query', $order['cid'], $order_id);
|
||
var_dump($check);
|
||
|
||
|
||
|
||
}
|
||
|
||
public function cancel(){
|
||
$order_id = input('order_id');
|
||
|
||
$data = OrderService::instance()->get($order_id);
|
||
if(isset($data['num']) && $data['num']>0) {
|
||
$data['order_id'] = $data['order_id'].'_'.$data['num'];
|
||
}
|
||
|
||
$channelService = ChannelService::instance();
|
||
if($data['cid'])
|
||
|
||
$channelList = $channelService->db()->where(['id'=>$data['cid'],'status'=>1,'cancel_status'=>1])->find();
|
||
if(!$channelList){
|
||
var_dump('渠道不支持');die;
|
||
}
|
||
|
||
|
||
$result = $channelService->call('cancel', $data['cid'], $data);
|
||
var_dump($result);die;
|
||
|
||
|
||
}
|
||
|
||
public function cancel_list(){
|
||
$mid = input('mid');
|
||
|
||
$timeout_cancel = input('timeout');
|
||
$timeout_cancel = intval($timeout_cancel);
|
||
$cid = input('cid');
|
||
$product_key = input('product_key');
|
||
$cash = input('cash');
|
||
$num = input('num');
|
||
// if($num){
|
||
// $num
|
||
// }
|
||
|
||
$where = [['status','=',4],['mid','=',$mid],['cid','=',$cid],['cash','=',$cash],['product_key','=',$product_key],['expire_time','<=',date('Y-m-d H:i:s',time()+$timeout_cancel)],['num','=',$num]];
|
||
|
||
|
||
// list($count, $total) = [0, OrderService->db()->where($where)->order('id asc')->count()];
|
||
// $order_id = input('order_id');
|
||
|
||
$data = OrderService::instance()->db()->where($where)->order('id asc')->select()->toArray();
|
||
$channelService = ChannelService::instance();
|
||
|
||
|
||
foreach ($data as $k => $vo) {
|
||
if(isset($vo['num']) && $vo['num']>0) {
|
||
$vo['order_id'] = $vo['order_id'].'_'.$vo['num'];
|
||
}
|
||
|
||
$result = $channelService->call('cancel', $vo['cid'], $vo);
|
||
var_dump($result);
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
public function arrayToJson()
|
||
{
|
||
$input = input();
|
||
throw new HttpResponseException(json($input));
|
||
|
||
}
|
||
|
||
public function test_test(){
|
||
$where['mid'] = 1;
|
||
// $where['product_key'] = $product_key;
|
||
|
||
$data = MerchantProductService::instance()->db()->where($where)->order('sort desc')->orderRand()->select()->toArray();
|
||
var_dump($data);
|
||
}
|
||
|
||
public function renwu()
|
||
{
|
||
$input=input();
|
||
// $this->_queue('[ 淘宝直充 - 自动同步 ] 主动更新售后订单信息', "xQueue:TaobaoAfterSalesOrderInfo", 0, [], 0,60);
|
||
// $this->_queue('[ 淘宝直充 - 自动同步 ] 自动同步关联售后订单并尝试锁卡', "xQueue:TaobaoAfterSalesOrdeRelated", 0, [], 0,60);
|
||
// $this->_queue('[ 订单列表 ] 订单主动查单', "xQueue:OrderQuery", 0, [], 0,1800);
|
||
// $this->_queue('[ 淘宝直充 - 自动同步 ] 主动更新售后订单信息', "xQueue:TaobaoAfterSalesOrderInfo", 0, [], 0,60);
|
||
// $this->_queue('[ 淘宝直充 - 自动同步 ] 自动同步关联售后订单并尝试锁卡', "xQueue:TaobaoAfterSalesOrdeRelated", 0, [], 0,60);
|
||
// $this->_queue('[ 快手商家-订单列表 ] 渠道超时订单拦截', "xQueue:KsOrderChanelTimeoutInt", 0, [], 0, 60);
|
||
// $this->_queue('[ 淘宝直充 - 自动同步 ] 特定渠道库存或余额不足自动下架', "xQueue:TaobaoAutoUpOrDown", 0, [], 0, 180);
|
||
// $this->_queue('[ 淘宝直充 - 自动同步 ] 主动更新订单状态', "xQueue:TaobaoAfterSalesOrderUpStatus", 0, [], 0, 300);
|
||
// $this->_queue('[ 淘宝直充 - 自动同步 ] 失败订单二次通知', "xQueue:TaobaoFailOrderSecondNotify", 0, [], 0, 600);
|
||
// $this->_queue('[ 淘宝直充 - 黑名单 ] 自动拉黑规则', "xQueue:TaobaoBlacklistRules", 0, [], 0, 3600);
|
||
// $this->_queue('[ 卡密列表 - 自动同步 ] 标准商户默认更新', "xQueue:KamiOrderStatusStandardUp", 0, [], 0, 1);
|
||
// $this->_queue('[ 淘宝订单 - 自动同步 ] 强行更新', "xQueue:KamiOrderStatusForceUpdate", 0, [], 0, 180);
|
||
// $this->_queue('[ 订单列表 ] 卡密完成订单迁移', "xQueue:KamiOrderFinish", 0, [], 0, 72400);
|
||
// $this->_queue('[ 订单列表 ] 完成订单迁移', "xQueue:OrderFinish", 0, [], 0, 28800);
|
||
$this->_queue($input['title'], $input['command'], 0, [], 0, $input['loops']);
|
||
}
|
||
|
||
//
|
||
public function getOrderInfo($order_id,$merchant_order_id,$mid)
|
||
{
|
||
$orderService = OrderService::instance();
|
||
$order = $orderService->get($order_id, $merchant_order_id, $mid);
|
||
if (!$order) {
|
||
$orderHistoryService = OrderHistoryService::instance();
|
||
$order = $orderHistoryService->get($order_id, $merchant_order_id, $mid);
|
||
}
|
||
|
||
return $order;
|
||
|
||
}
|
||
|
||
public function cgetkami(){
|
||
// var_dump('123');die;
|
||
$request['username'] = input('username');
|
||
$request['password'] = input('password');
|
||
$request['sporder_id'] = input('sporder_id');
|
||
$request['version'] = '1.0';
|
||
|
||
$sign = md5('username='.$request['username'].'&sporder_id='.$request['sporder_id'].'||25f570cb9244088641124df31f12aaa4');
|
||
|
||
$request['sign'] = $sign;
|
||
$url = 'http://pfapi.anh618.com/queryorder.aspx';
|
||
$response = http_get($url,$request);
|
||
|
||
|
||
$array = (array) simplexml_load_string($response);
|
||
// var_dump($array);die;
|
||
// $array = (array) $array['info'];
|
||
// var_dump($array);die;
|
||
if (isset($array['Order']) && $array['Order']) {
|
||
$array['Order'] = (array) $array['Order'];
|
||
|
||
}
|
||
if (isset($array['info']) && $array['info']) {
|
||
$array['info'] = (array) $array['info'];
|
||
|
||
}
|
||
if (isset($array['Card']) && $array['Card']) {
|
||
$array['Card'] = (array) $array['Card'];
|
||
|
||
}
|
||
|
||
if (!$array) {
|
||
$msg = 'error';
|
||
} elseif (isset($array['info']['ret']) && $array['info']['ret'] == '0' && isset($array['Order']['orderid']) && $array['Order']['orderid']) {
|
||
$array['kami'] = [];
|
||
|
||
if(isset($array['Card'][0])){
|
||
foreach ($array['Card'] as $key=>$value){
|
||
$value = (array) $value;
|
||
|
||
$up = array
|
||
(
|
||
'cardno' => $value['cardnum'],
|
||
'cardpwd' => $value['cardpass'],
|
||
'ex' => $value['expriedate'],
|
||
// 'value' => $array['Order']['rtlprice'],
|
||
);
|
||
DB::name('test_kami_zm')->insert($up);
|
||
}
|
||
var_dump($array['kami']);die;
|
||
}
|
||
}
|
||
}
|
||
|
||
public function tradeUpdate($vo,$request,$beizhu = 1)
|
||
{
|
||
|
||
$request['merchant_order_id'] = $vo['merchant_order_id'];
|
||
if($beizhu == 1){
|
||
$request['beizhu'] = "卡密已使用,请操作拒绝退款,并上传退款凭证--Reapi系统自动化";
|
||
}elseif($beizhu == 2){
|
||
$request['beizhu'] = "卡密锁卡失败,请人工介入操作,核实拒绝退款,并上传拒绝退款凭证--Reapi系统自动化";
|
||
}elseif ($beizhu == 3){
|
||
$request['beizhu'] = "此订单不存在中控系统中,可能属于早期订单,请人工核实处理--Reapi系统自动化";
|
||
}
|
||
$request['flag'] = "1";
|
||
|
||
$request['reset'] = "false";
|
||
|
||
// $request['access_token'] = $merchant['access_token'];
|
||
$response = Coretb::taobaosdk('tradeUpdate', $request);
|
||
$json = json_encode($response);
|
||
$array = json_decode($json, true);
|
||
|
||
if (isset($array['Trade']['tid']) && $array['Trade']['tid'] == $vo['merchant_order_id']) {
|
||
|
||
return 'ok';
|
||
} else {
|
||
return 'error';
|
||
}
|
||
}
|
||
|
||
public function test23()
|
||
{
|
||
|
||
#成功
|
||
|
||
$apiParams['coop_order_status'] = 'SUCCESS';
|
||
$merchant = MerchantService::instance()->get('PT_34608230');
|
||
$taobao=new \app\openapi\controller\Taobao($this->app);
|
||
$request = $this->getOrder('', '2219313037572987070');
|
||
$requestParam = json_decode($request['param'],true);
|
||
var_dump($request);die;
|
||
|
||
$senddata = Coretb::doaction($merchant,$request,$requestParam,$apiParams);
|
||
// $msg = $taobao ->notify('https://eco.taobao.com/router/rest','' ,$apiParams);
|
||
var_dump($senddata);
|
||
}
|
||
|
||
public function refundsp($vo,$request)
|
||
{
|
||
$request['caozuo_name'] = '系统自动处理';
|
||
$request['refundId'] = $vo['refund_id'];
|
||
$request['phase'] = $vo['refund_phase'];
|
||
$RefundVersion = json_decode($vo['infodata'],true);
|
||
$RefundVersion = $RefundVersion['refund_version'];
|
||
$request['RefundVersion'] = $RefundVersion;
|
||
$request['RefundMsg'] = '未使用,同意退款';#默认同意
|
||
$request['RefundStatus'] = 'true';
|
||
// $request['access_token'] = $merchant['access_token'];
|
||
$response = Coretb::taobaosdk('refundSp', $request);
|
||
$json = json_encode($response);
|
||
$array = json_decode($json, true);
|
||
var_dump($request);
|
||
|
||
if(isset($array['is_success']) && $array['is_success'] == 'true'){
|
||
return 'true';
|
||
}elseif(isset($array['sub_msg']) && str_contains($array['sub_msg'], "退款版本号不一致,请重新获取最新的退款数据")){
|
||
|
||
$RefundVersion = $this->refundget($vo,$request);
|
||
// var_dump($RefundVersion);die;
|
||
if($RefundVersion != 'error'){
|
||
$request['RefundVersion'] = $RefundVersion;
|
||
|
||
sleep(3);
|
||
$response = Coretb::taobaosdk('refundSp', $request);
|
||
$json = json_encode($response);
|
||
$array = json_decode($json, true);
|
||
|
||
if(isset($array['is_success']) && $array['is_success'] == 'true'){
|
||
return 'true';
|
||
}else{
|
||
Log::write('queue', 'taobao_sp', $array);#写入到日志里
|
||
return 'error';
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
}else {
|
||
Log::write('queue', 'taobao_sp', $array);#写入到日志里
|
||
return 'error';
|
||
}
|
||
|
||
var_dump($array);die;
|
||
|
||
|
||
}else{
|
||
Log::write('queue', 'taobao_sp', $array);#写入到日志里
|
||
return 'error';
|
||
}
|
||
|
||
#判断响应是否成功
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
public function refundtk($vo,$request,$num = 0)
|
||
{
|
||
|
||
$RefundVersion = $this->refundget($vo,$request);
|
||
if($RefundVersion != 'error'){
|
||
$cash = $vo['refund_fee'] * 100;
|
||
$request['refund_infos'] = $vo['refund_id'].'|'.$cash.'|'.$RefundVersion .'|'.$vo['refund_phase'];
|
||
$response = Coretb::taobaosdk('refundAgree', $request);
|
||
$json = json_encode($response);
|
||
$array = json_decode($json, true);
|
||
if(isset($array['sub_msg']) ){
|
||
if(str_contains($array['sub_msg'], "未审核状态")){
|
||
while ($num<1) {
|
||
$num++;
|
||
sleep(3);
|
||
return $this->refundtk($vo,$request,$num);
|
||
}
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
if (isset($array['succ'])) {
|
||
if(isset($array['message']) && $array['message']=='操作成功'){
|
||
|
||
return 'ok';
|
||
}else{
|
||
Log::write('queue', 'taobao_tk', $array);#写入到日志里
|
||
return 'error';
|
||
}
|
||
|
||
|
||
|
||
} else {
|
||
Log::write('queue', 'taobao_tk', $array);#写入到日志里
|
||
return 'error';
|
||
}
|
||
}else {
|
||
Log::write('queue', 'taobao_tk', $RefundVersion);#写入到日志里
|
||
return 'error';
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
public function refundget($vo,$request)
|
||
{
|
||
if(isset($request['sub_code'])){
|
||
unset($request['sub_code']);
|
||
}
|
||
|
||
|
||
$request['refundId'] = $vo['refund_id'];
|
||
|
||
// $request['access_token'] = $merchant['access_token'];
|
||
$response = Coretb::taobaosdk('refundInfo', $request);
|
||
$json = json_encode($response);
|
||
$array = json_decode($json, true);
|
||
|
||
if (isset($array['refund'])) {
|
||
$array = $array['refund'];
|
||
$RefundVersion = $array['refund_version'];
|
||
|
||
return $RefundVersion;
|
||
} else {
|
||
return 'error';
|
||
}
|
||
}
|
||
|
||
public function quchong()
|
||
{
|
||
// 'linshi_order'
|
||
// $page = 1;
|
||
// while ($this->finishOnes( $page)) {
|
||
// $page++;
|
||
// }
|
||
|
||
$start = date('Y-m-d', strtotime('-8 day'));
|
||
$day = date('Y-m-d', strtotime('-3 day'));
|
||
|
||
$begin = $start . ' 00:00:00';
|
||
$after = $day . ' 23:59:59';
|
||
$time = [$begin, $after];
|
||
$OrderLastweekHistoryService = OrderLastweekHistoryService::instance();
|
||
|
||
$order_data = $OrderLastweekHistoryService->db()->whereBetween('create_at', $time)->order('id asc')->select()->toArray();;
|
||
|
||
// $order_data = $OrderLastweekHistoryService->db()->limit(78,1000)->select()->toArray();
|
||
foreach ($order_data as $vo) {
|
||
$order_datas = Db::name('linshi_order')->where('order_id', $vo['order_id'])->find();
|
||
if(!$order_datas){
|
||
$state = Db::name('linshi_order')->insert($vo);
|
||
}else{
|
||
$m = $OrderLastweekHistoryService->db()->where('order_id', $vo['order_id'])->count();
|
||
if($m > 1){
|
||
$OrderLastweekHistoryService->db()->where('id', $vo['id'])->delete();//这个用like会不会太范了?不会,因为order是唯一只是怕空格影响
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
public function finishOnes($page){
|
||
|
||
$OrderLastweekHistoryService = OrderLastweekHistoryService::instance();
|
||
|
||
// $order_data = $OrderLastweekHistoryService->db()->limit(5000)->select()->toArray();
|
||
if ($page) {
|
||
$limit = 10000;
|
||
$page = $page - 1;
|
||
$page = $page * $limit;
|
||
$order_data = $OrderLastweekHistoryService->db()->limit(2,1000)->select()->toArray();
|
||
// $db->limit($page, $limit);
|
||
}
|
||
$order_data = $OrderLastweekHistoryService->db()->limit(2,1000)->select()->toArray();
|
||
foreach ($order_data as $vo) {
|
||
$order_datas = Db::name('linshi_order')->where('order_id', $vo['order_id'])->find();
|
||
if(!$order_datas){
|
||
$state = Db::name('linshi_order')->insert($vo);
|
||
}else{
|
||
$m = $OrderLastweekHistoryService->db()->where('order_id', $vo['order_id'])->count();
|
||
if($m > 1){
|
||
$OrderLastweekHistoryService->db()->whereLike('id', $vo['id'])->delete();//这个用like会不会太范了?不会,因为order是唯一只是怕空格影响
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
public function execute()
|
||
{
|
||
ini_set('memory_limit', '1024M');
|
||
|
||
|
||
|
||
$channelService = ChannelService::instance();
|
||
|
||
$channelList = $channelService->db()->where(['query_status'=>1,'status'=>1])->select()->toArray();
|
||
$channelList_num = count($channelList);
|
||
$count_sum = 0;
|
||
$total_sum=0;
|
||
foreach($channelList as $channel) {
|
||
|
||
$class = OrderService::instance();
|
||
$where['cid'] = $channel['id'];
|
||
$where['status'] = 4;
|
||
list($count, $total) = [0, $class->db()->where($where)->order('id asc')->count()];
|
||
$total_sum += $total;
|
||
// $data = $class->db()->where($where)->limit(100)->select()->toArray();
|
||
$class->db()->where($where)->order('id asc')->chunk(100, function (Collection $data) use (&$count, $total,$channel,$channelService,&$count_sum) {
|
||
$array = $data->toArray();
|
||
|
||
|
||
foreach ($array as $k => $vo) {
|
||
if(isset($vo['num']) && $vo['num']>0) {
|
||
$vo['order_id'] = $vo['order_id'].'_'.$vo['num'];
|
||
}
|
||
|
||
$result = $channelService->call('query', $vo['cid'], $vo);
|
||
var_dump($result);die;
|
||
if ($result['status'] != 4) {
|
||
$count_sum++;
|
||
$count++;
|
||
$notifyClass = new Notify($this->app);
|
||
$notifyClass->queue_query($vo['order_id'], $result);
|
||
$this->setQueueProgress("查询 {$vo['order_id']} 新的状态进行主动更新", $count / $total * 100);
|
||
}
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
$this->setQueueSuccess("共处理 {$channelList_num} 个渠道,共有 {$total_sum} 个订单处理查询中, 完成{$count_sum} 个订单查询新状态更新!");
|
||
}
|
||
|
||
|
||
public function finishOne($day, $page)
|
||
{
|
||
$orderHistoryService = OrderLastweekHistoryService::instance();
|
||
// $orderService = OrderHistoryService::instance();
|
||
$orderService = OrderLastHistoryService::instance();
|
||
$data = $this->getFinishData($day, $page, $orderService);
|
||
|
||
//??//
|
||
|
||
|
||
list($count, $total) = [0, $data->count()];
|
||
|
||
$data->chunk(1000, function (Collection $data) use (&$count, $total, $orderService, $orderHistoryService) {
|
||
// var_dump($orderlist);die;
|
||
foreach ($data->toArray() as $vo) {
|
||
|
||
if ($vo) {
|
||
|
||
# 先插入一条历史数据
|
||
$id = $vo['id'];
|
||
unset($vo['id']);
|
||
$state = $orderHistoryService->up($vo);
|
||
if ($state) {
|
||
$orderService->del($id);
|
||
$count++;
|
||
var_dump($count);
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
|
||
});
|
||
|
||
}
|
||
|
||
public function getFinishData($day, $page, $orderService)
|
||
{
|
||
if (!$day) {
|
||
$start = date('Y-m-d', strtotime('-7 day'));
|
||
$day = date('Y-m-d', strtotime('-1 day'));
|
||
} else {
|
||
$start = $day;
|
||
}
|
||
$begin = $start . ' 00:00:00';
|
||
$after = $day . ' 23:59:59';
|
||
$time = [$begin, $after];
|
||
|
||
$db = $orderService->db()->whereRaw('status in(2,3) ');
|
||
$db = $db->whereBetween('create_at', $time)->order('id asc');
|
||
if ($page) {
|
||
$limit = 10000;
|
||
$page = $page - 1;
|
||
$page = $page * $limit;
|
||
$db->limit($page, $limit);
|
||
}
|
||
return $db;
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// public function getOrderInfo($order_id)
|
||
// {
|
||
// $orderService = OrderService::instance();
|
||
//
|
||
// $order = $orderService->db()->where(['order_id' => $order_id])->find();
|
||
// if (!$order) {
|
||
// $orderHistoryService = OrderHistoryService::instance();
|
||
// $order = $orderHistoryService->db()->where(['order_id' => $order_id])->find();
|
||
// }
|
||
//
|
||
//
|
||
// return $order;
|
||
//
|
||
// }
|
||
|
||
public function upBlack($type, $value, $desc = '')
|
||
{
|
||
$BlackCardService = BlackCardService::instance();
|
||
$where['type'] = $type;
|
||
$where['value'] = $value;
|
||
$info = $BlackCardService->db()->where($where)->find();
|
||
if($info){
|
||
return 'false';
|
||
}else{
|
||
$update['type'] = $type;
|
||
$update['value'] = $value;
|
||
$update['desc'] = $desc;
|
||
$update['status'] = 1;
|
||
$BlackCardService->db()->insert($update);
|
||
return '1';
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
//
|
||
|
||
|
||
#==================================================================================
|
||
|
||
protected function redis()
|
||
{
|
||
if (!$this->redis) {
|
||
$this->redis = RedisService::getInstance();
|
||
}
|
||
}
|
||
|
||
public function test_shuju(){
|
||
$orderhistory = OrderHistoryService::instance();
|
||
$where = ['cid' =>4];
|
||
$where1[] = [
|
||
'response','like','%kami%'
|
||
];
|
||
$start = '2024-05-22';
|
||
$day = '2024-06-01';
|
||
$begin = $start . ' 00:00:00';
|
||
$after = $day . ' 23:59:59';
|
||
$time = [$begin, $after];
|
||
$order = $orderhistory->db()->where($where)->where($where1)->whereBetween('create_at', $time)->select()->toArray();
|
||
$LockCardService = LockCardService::instance();
|
||
foreach ($order as $vo) {
|
||
$response= json_decode($vo['response'],true);
|
||
$cardno = $response['kami']['cardno'];
|
||
$cardpwd = $response['kami']['cardpwd'];
|
||
$expire_time = $response['kami']['expired'];
|
||
$suoka = $LockCardService->call('suoka', $vo['cid'],$cardno,$cardpwd,$vo['pid'],$vo['cash']);
|
||
Log::write('card', "kaidianbao", $suoka.$cardno);
|
||
// var_dump($suoka,$cardno);
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
} |