REAPI/app/merchant/service/OrderAutoService.php
2024-09-29 15:43:18 +08:00

126 lines
3.9 KiB
PHP

<?php
namespace app\merchant\service;
use app\core\Service;
use think\admin\extend\CodeExtend;
use app\merchant\service\MerchantService;
use app\merchant\service\OrderService;
/**
* 商户失败订单服务
* Class MerchantService
* @package app\merchant\service
*/
class OrderAutoService extends Service
{
/**
* 设置默认操作表
* @var string
*/
public $table = 'merchant_order_auto_error';
# 提交订单
/*
public function up($mid, $cid, $pid, $product_key, $order_id, $channel_order_id, $merchant_order_id, $cash, $url, $request, $response, $status = 1, $account = '', $parent_order_id = '', $project_id = false, $card_id = false, $param = false)
{
$data = array();
$data['mid'] = $mid;
$data['cid'] = $cid;
$data['pid'] = $pid;
$data['product_key'] = $product_key;
$data['order_id'] = $order_id;
if ($parent_order_id) {
$data['parent_order_id'] = $parent_order_id;
}
if ($project_id) {
$data['project_id'] = $project_id;
}
if ($card_id) {
$data['card_id'] = $card_id;
}
if ($param && is_array($param)) {
$data['param'] = json_encode($param, JSON_UNESCAPED_UNICODE);
}
$data['channel_order_id'] = $channel_order_id;
$data['merchant_order_id'] = $merchant_order_id;
$data['cash'] = $cash;
$data['url'] = $url;
if (is_array($request)) {
$request = json_encode($request, JSON_UNESCAPED_UNICODE);
}
if (is_array($response)) {
$response = json_encode($response, JSON_UNESCAPED_UNICODE);
}
$data['request'] = $request;
$data['response'] = $response;
$data['status'] = $status;
$data['merchant_callback_num'] = 0;
if ($account) {
$data['account'] = $account;
}
$this->db()->insert($data);
return $data;
}
*/
# 提交订单
public function up($data)
{
if (is_numeric($data)) {
$orderService = OrderService::instance();
$data = $orderService->get($data);
}
$id = false;
if ($data) {
$w['order_id'] = $data['order_id'];
$w['num']= $data['num'];
$info = $this->db()->where($w)->find();
if ($info) {
return false;
}
unset($data['id']);
if (isset($data['param']) && $data['param'] && is_array($data['param'])) {
$data['param'] = json_encode($data['param']);
}
if (isset($data['request']) && $data['request'] && is_array($data['request'])) {
$data['request'] = json_encode($data['request']);
}
if (isset($data['response']) && $data['response'] && is_array($data['response'])) {
$data['response'] = json_encode($data['response']);
}
if (isset($data['channel_callback_msg']) && $data['channel_callback_msg'] && is_array($data['channel_callback_msg'])) {
$data['channel_callback_msg'] = json_encode($data['channel_callback_msg']);
}
$id = $this->db()->insert($data);
}
return $id;
}
public function get($order_id)
{
$where['order_id'] = $order_id;
return $this->db()->where($where)->column('mid,cid,pid');
}
# 修改渠道回调信息
public function upChannelMsg($order_id, $status, $msg, $num = 0)
{
$data['status'] = $status;
$data['channel_callback_msg'] = json_encode($msg, JSON_UNESCAPED_UNICODE);
if ($data['status'] != 4) {
$data['channel_callback_at'] = date('Y-m-d H:i:s');
}
$where['order_id'] = $order_id;
if ($num) {
$where['num'] = $num;
}
$this->db()->where($where)->update($data);
}
}