redis) { $this->redis = RedisService::getInstance(); } } public function finishafter() { $day = input('day'); $page = 1; while($this->finishOne_after($day, $page)) { $page++; } } public function finishOne_after($day, $page) { $afterSalesOrderService= AfterSalesOrderService::instance(); $data = $afterSalesOrderService->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) { $afterSalesOrderService->del($id); } } return true; } else { return false; } } #完成订单迁移 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(); $orderLastHistoryService = OrderLastHistoryService::instance(); $data = $this->getFinishData($day, $page, $orderService,2); // $data = $orderService->getFinishData($day, $page); if ($data) { foreach ($data as $k => $v) { # 先插入一条历史数据 $id = $v['id']; unset($v['id']); $state = $orderLastHistoryService->up($v); if ($state) { $orderService->del($id); } } } $orderTwoHistoryService = OrderTwoHistoryService::instance(); $last_data = $this->getFinishData($day, $page, $orderLastHistoryService,3); // $data = $orderService->getFinishData($day, $page); if ($last_data) { foreach ($last_data as $k => $v) { # 先插入一条历史数据 $id = $v['id']; unset($v['id']); $state = $orderTwoHistoryService->up($v); if ($state) { $orderLastHistoryService->del($id); } } } $two_data = $this->getFinishData($day, $page, $orderTwoHistoryService,4); // $data = $orderService->getFinishData($day, $page); if ($two_data) { foreach ($two_data as $k => $v) { # 先插入一条历史数据 $id = $v['id']; unset($v['id']); $state = $orderHistoryService->up($v); if ($state) { $orderTwoHistoryService->del($id); } } } if($data || $last_data || $two_data){ return true; }else{ return false; } } public function getFinishData($day, $page, $orderService ,$type = 1) { if (!$day) { $start = date('Y-m-d', strtotime('-360 day')); $day = date('Y-m-d', strtotime('-1 day')); if($type == 2){ $start = date('Y-m-d', strtotime('-30 day')); $day = date('Y-m-d', strtotime('-1 day')); } if($type == 3){ $start = date('Y-m-d', strtotime('-90 day')); $day = date('Y-m-d', strtotime('-31 day')); } if($type == 4){ $start = date('Y-m-d', strtotime('-365 day')); $day = date('Y-m-d', strtotime('-91 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 notify_profit() { $day = input('day'); if (!$day) { $day = date('Y-m-d', strtotime('-1 day')); } // $orderHistoryService = OrderHistoryService::instance(); $orderLastweekHistoryService = OrderLastweekHistoryService::instance(); $data = $orderLastweekHistoryService->getTotalData($day,false,false,2); // var_dump($data); if ($data) { StatService::instance()->handle($day, $data); } } /* 对快手黑名单队列进行退款处理正常执行 */ public function refundKuaishou() { try { $this->redis(); $redisData = $this->redis->pop('blackcall'); $param = array(); $param['orderId'] = $redisData['orderNo']; $param['status'] = 'FAILED'; $param['bizType'] = '10'; $param['failCode'] = '4013022'; $param['failMsg'] = '黑名单'; $param = json_encode($param); $signtime = time(); $sign = 'access_token=' . $redisData['access_token'] . '&appkey=' . $redisData['agentId'] . '&method=integration.virtual.topup.mobile.order.callback¶m=' . $param . '&signMethod=MD5×tamp=' . $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¶m=' . $param . '&signMethod=MD5×tamp=' . $signtime . '&version=1&sign=' . $signmd5; // $blackGet= ['result' => '1']; $blackGet = \app\openapi\controller\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'; } } }