初始化项目

This commit is contained in:
2026-09-01 22:15:50 +08:00
commit b5a26a8848
11217 changed files with 1710987 additions and 0 deletions
@@ -0,0 +1,66 @@
<?php
// +----------------------------------------------------------------------
// | 管理系统
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.zizai.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
// +----------------------------------------------------------------------
// | Author: 自在科技
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\api\controller\syb;
use app\api\controller\Controller;
/**
* 加油e卡通基础数据
* Class SybBase
* @package app\api\controller
*/
class SybBase extends Controller
{
/** 油站查询
* @param $data
* @return array|mixed|string[]
*/
public function baseGasStationList($data)
{
$header = [
'method' => 'syb.base.gasStation.list',
];
$body = [
'province' => $data['province']??'',
'city' => $data['city']??'',
'longitude' => $data['longitude']??'',
'latitude' => $data['latitude']??'',
'pageLimit' => $data['pageLimit']??'',
'pageNum' => $data['pageNum']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/base/gasStationList', $body, $header);
$this->saveLog("油站查询".json_encode($response,320));
return $response;
}
/** 文件上传接口
* @param $data
* @return array|mixed|string[]
*/
public function baseFileUpload($data)
{
$header = [
'method' => 'syb.base.file.upload',
];
$body = [
'orgNo' => config('crypto.company_no'),
'file' => request()->file('file'),
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/base/uploadFile', $body, $header);
$this->saveLog("文件上传接口".json_encode($response,320));
return $response;
}
}
@@ -0,0 +1,98 @@
<?php
// +----------------------------------------------------------------------
// | 管理系统
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.zizai.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
// +----------------------------------------------------------------------
// | Author: 自在科技
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\api\controller\syb;
use app\api\controller\Controller;
use app\api\model\Order as OrderModel;
use app\api\model\Order\Record as RecordModel;
use app\common\crypto\Crypto;
use think\facade\Request;
/**
* 加油e卡通通知接口
* Class SybUser
* @package app\api\controller
*/
class SybNotify extends Controller
{
/** 通知接口
* @return array|mixed|string[]
*/
public function notify()
{
// 获取所有 HTTP 请求头
$headers = Request::header();
// 获取 JSON 格式的请求体
$jsonData = Request::instance()->getContent();
$data = json_decode($jsonData, true);
$crypto = new Crypto();
$res = $crypto->processResponse(['header'=>$headers,'encryptData'=>$data]);
// 检查 JSON 解码是否成功
if (!$res) {
return json(['code' => '03', 'message' => '报文解密异常']);
}
// 此处可以根据业务逻辑处理接收到的数据
switch ($headers['method']) {
case "syb.notify.pay.result":
// 二维码交易结果通知
$where = array(
['oilCardNo', '=', $res['oilCardNo']],
['amount', '=', $res['amount']],
);
$field['qrCode'] = $res['qrCode'];
if($res['status'] == 'success'){
$field['order_status'] = 30;
$field['use_status'] = 1;
}else{
$field['use_text'] = $res['errMessage'];
}
OrderModel::orderUpdate($where, $field);
break;
case "syb.notify.oilCard.change":
// 油卡变动通知
$order = OrderModel::detail(['oilCardNo'=>$res['oilCardNo'], 'amount'=>$res['amount']]);
$res['order_id'] = $order['order_id'];
$res['user_id'] = $order['user_id'];
$RecordModel = new RecordModel();
$RecordModel->add($res);
break;
case "syb.notify.oilCard.share":
// 分油结果通知
$where = array(
['oilCardNo', '=', $res['oilCardNo']],
['amount', '=', $res['amount']],
);
$field = ['oil_time' => time()];
if($res['status'] == 'success'){
$field['order_status'] = 20;
$field['oil_status'] = 1;
}else{
$field['order_status'] = 60;
$field['oil_status'] = 0;
$field['oil_text'] = $res['msg'];
}
OrderModel::orderUpdate($where, $field);
break;
default:
return json(['code' => '03', 'message' => '报文解密异常']);
}
// 记录日志等
$this->saveLog($headers['method'].":".json_encode($res,320));
// 返回成功的 JSON 响应
return json(['code' => '00', 'message' => '请求成功']);
}
}
@@ -0,0 +1,122 @@
<?php
// +----------------------------------------------------------------------
// | 管理系统
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.zizai.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
// +----------------------------------------------------------------------
// | Author: 自在科技
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\api\controller\syb;
use app\api\controller\Controller;
/**
* 加油e卡通油卡操作
* Class SybOil
* @package app\api\controller
*/
class SybOil extends Controller
{
/** 油卡查询
* @param $data
* @return array|mixed|string[]
*/
public function oilOilCardSelect($data)
{
$header = [
'method' => 'syb.oil.oilCard.select',
];
$body = [
'orgNo' => config('crypto.company_no'),
'mobile' => $data['mobile']??'',
'userNo' => $data['userNo']??'',
'oilCardNo' => $data['oilCardNo']??'',
'pageLimit' => $data['pageLimit']??'10',
'pageNum' => $data['pageNum']??'1',
'oilCardType' => $data['oilCardType']??'card', //不填时默认为“E卡通平台自营卡”
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/oil/oilCard/select', $body, $header);
$this->saveLog("油卡查询".json_encode($response,320));
return $response;
}
/** 用户分油
* @param $data
* @return array|mixed|string[]
*/
public function oilOilCardShare($data)
{
$header = [
'method' => 'syb.oil.oilCard.share',
];
$body = [
'orgNo' => config('crypto.company_no'),
'goodsNo' => $data['goodsNo']??'',
'amount' => $data['oilCardType']=='card' ? round($data['amount'],2) : '',
'userNo' => $data['userNo']??'',
'mobile' => $data['mobile']??'',
'saleOrderNo' => $data['saleOrderNo']??'',
'oilCardType' => $data['oilCardType']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/oil/oilCard/share', $body, $header);
$this->saveLog("用户分油".json_encode($response,320));
return $response;
}
/** 分油撤销接口
* @param $data
* @return array|mixed|string[]
*/
public function oilOilCardCancelShare($data)
{
$header = [
'method' => 'syb.oil.oilCard.cancelShare',
];
$body = [
'orgNo' => config('crypto.company_no'),
'shareNo' => $data['shareNo']??'',
'amount' => !empty($data['amount']??'') ? round($data['amount'],2) : '',
'saleOrderNo' => $data['saleOrderNo']??'',
'type' => $data['type']??'',
'oilCardType' => $data['oilCardType']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/oil/oilCard/cancelShare', $body, $header);
$this->saveLog("分油撤销接口".json_encode($response,320));
return $response;
}
/** 用户分油记录查询
* @param $data
* @return array|mixed|string[]
*/
public function oilOilCardShareList($data)
{
$header = [
'method' => 'syb.oil.oilCard.shareList',
];
$body = [
'orgNo' => config('crypto.company_no'),
'userNo' => $data['userNo']??'',
'mobile' => $data['mobile']??'',
'shareNo' => $data['shareNo']??'',
'saleOrderNo' => $data['saleOrderNo']??'',
'beginDate' => $data['beginDate']??'',
'endDate' => $data['endDate']??'',
'pageLimit' => $data['pageLimit']??'',
'pageNum' => $data['pageNum']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/opt/oilCard/shareList', $body, $header);
$this->saveLog("用户分油记录查询".json_encode($response,320));
return $response;
}
}
@@ -0,0 +1,48 @@
<?php
// +----------------------------------------------------------------------
// | 管理系统
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.zizai.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
// +----------------------------------------------------------------------
// | Author: 自在科技
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\api\controller\syb;
use app\api\controller\Controller;
/**
* 加油e卡通加油记录查询
* Class SybOrder
* @package app\api\controller
*/
class SybOrder extends Controller
{
/** 加油记录查询
* @param $data
* @return array|mixed|string[]
*/
public function orderListSale($data)
{
$header = [
'method' => 'syb.order.list.sale',
];
$body = [
'orgNo' => config('crypto.company_no'),
'mobile' => $data['mobile']??'',
'shareNo' => $data['shareNo']??'',
'beginDate' => $data['beginDate']??'',
'endDate' => $data['endDate']??'',
'pageLimit' => $data['pageLimit']??'',
'pageNum' => $data['pageNum']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/opt/list/sale', $body, $header);
$this->saveLog("加油记录查询".json_encode($response,320));
return $response;
}
}
@@ -0,0 +1,154 @@
<?php
// +----------------------------------------------------------------------
// | 管理系统
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.zizai.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
// +----------------------------------------------------------------------
// | Author: 自在科技
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\api\controller\syb;
use app\api\controller\Controller;
/**
* 加油e卡通支付财务
* Class SybOil
* @package app\api\controller
*/
class SybPay extends Controller
{
/** 付款二维码申请
* @param $data
* @return array|mixed|string[]
*/
public function payQrCodeRequest($data)
{
$header = [
'method' => 'syb.pay.qrCode.request',
];
$body = [
'orgNo' => config('crypto.company_no'),
'oilCardNo' => $data['oilCardNo']??'',
'mobile' => $data['mobile']??'',
'longitude' => $data['longitude']??'',
'oilCardType' => $data['oilCardType']??'',
'latitude' => $data['latitude']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/pay/getPayQrCode', $body, $header);
$this->saveLog("付款二维码申请".json_encode($response,320));
return $response;
}
/** 主扫订单创建
* @param $data
* @return array|mixed|string[]
*/
public function payActiveScan($data)
{
$header = [
'method' => 'syb.pay.active.scan',
];
$body = [
'orgNo' => config('crypto.company_no'),
'oilCardNo' => $data['oilCardNo']??'',
'qrInfo' => $data['qrInfo']??'',
'longitude' => $data['longitude']??'',
'latitude' => $data['latitude']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/pay/activeScan', $body, $header);
$this->saveLog("主扫订单创建".json_encode($response,320));
return $response;
}
/** 主扫订单信息确认
* @param $data
* @return array|mixed|string[]
*/
public function payActiveVerify($data)
{
$header = [
'method' => 'syb.pay.active.verify',
];
$body = [
'orgNo' => config('crypto.company_no'),
'activeOrderId' => $data['activeOrderId']??'',
'amount' => !empty($data['amount']??'') ? round($data['amount'],2) : '',
'deviceId' => $data['deviceId']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/pay/activeVerify', $body, $header);
$this->saveLog("主扫订单信息确认".json_encode($response,320));
return $response;
}
/** 账户余额查询
* @param $data
* @return array|mixed|string[]
*/
public function payAmountBalance($data)
{
$header = [
'method' => 'syb.pay.account.balance',
];
$body = [
'orgNo' => config('crypto.company_no'),
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/finance/account/balance', $body, $header);
$this->saveLog("账户余额查询".json_encode($response,320));
return $response;
}
/** 申请发票
* @param $data
* @return array|mixed|string[]
*/
public function payInvoiceRequest($data)
{
$header = [
'method' => 'syb.pay.invoice.request',
];
$body = [
'orgNo' => config('crypto.company_no'),
'amount' => !empty($data['amount']??'') ? round($data['amount'],2) : '',
'oilNo' => $data['oilNo']??'',
'invoiceAddress' => $data['invoiceAddress']??'',
'invoiceHeader' => $data['invoiceHeader']??'',
'invoicePhone' => $data['invoicePhone']??'',
'invoiceOpenBank' => $data['invoiceOpenBank']??'',
'taxIdentifyNo' => $data['taxIdentifyNo']??'',
'invoiceCardNo' => $data['invoiceCardNo']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/finance/invoice/request', $body, $header);
$this->saveLog("申请发票".json_encode($response,320));
return $response;
}
/** 开票状态查询
* @param $data
* @return array|mixed|string[]
*/
public function payInvoiceStatus($data)
{
$header = [
'method' => 'syb.pay.invoice.status',
];
$body = [
'orgNo' => config('crypto.company_no'),
'invoiceNo' => $data['invoiceNo']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/finance/invoice/status', $body, $header);
$this->saveLog("开票状态查询".json_encode($response,320));
return $response;
}
}
@@ -0,0 +1,46 @@
<?php
// +----------------------------------------------------------------------
// | 管理系统
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.zizai.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
// +----------------------------------------------------------------------
// | Author: 自在科技
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\api\controller\syb;
use app\api\controller\Controller;
/**
* 加油e卡通用户账户
* Class SybUser
* @package app\api\controller
*/
class SybUser extends Controller
{
/** 添加用户
* @param $data
* @return array|mixed|string[]
*/
public function userOptAdd($data)
{
$header = [
'method' => 'syb.user.opt.add',
];
$body = [
'orgNo' => config('crypto.company_no'),
'mobile' => $data['mobile']??'',
'userName' => $data['userName']??'',
'userIdCard' => $data['userIdCard']??'',
'userType' => $data['userType']??'user',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/user/opt/add', $body, $header);
$this->saveLog("添加用户".json_encode($response,320));
return $response;
}
}
@@ -0,0 +1,92 @@
<?php
// +----------------------------------------------------------------------
// | 管理系统
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.zizai.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
// +----------------------------------------------------------------------
// | Author: 自在科技
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\api\controller\syb;
use app\api\controller\Controller;
/**
* 优惠券
* Class SybVoucher
* @package app\api\controller
*/
class SybVoucher extends Controller
{
/** 优惠券下单
* @param $data
* @return array|mixed|string[]
*/
public function voucherCreateOrder($data)
{
$header = [
'method' => 'syb.opt.voucher.createOrder',
];
$body = [
'orgNo' => config('crypto.company_no'),
'model' => $data['model']??'',
'voucherAmount' => $data['voucherAmount']??'',
'fullAmount' => $data['fullAmount']??'',
'storeNum' => $data['storeNum']??'',
'validTime' => $data['validTime']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/voucher/createOrder', $body, $header);
$this->saveLog("优惠券下单".json_encode($response,320));
return $response;
}
/** 优惠券订单查询
* @param $data
* @return array|mixed|string[]
*/
public function voucherOrderListPage($data)
{
$header = [
'method' => 'syb.opt.voucher.order.listPage',
];
$body = [
'orgNo' => config('crypto.company_no'),
'orderNo' => $data['orderNo']??'',
'model' => $data['model']??'',
'pageLimit' => $data['pageLimit']??'',
'pageNum' => $data['pageNum']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/voucher/order/listPage', $body, $header);
$this->saveLog("优惠券订单查询".json_encode($response,320));
return $response;
}
/** 卡券查询
* @param $data
* @return array|mixed|string[]
*/
public function voucherItemListPage($data)
{
$header = [
'method' => 'syb.opt.voucher.item.listPage',
];
$body = [
'orgNo' => config('crypto.company_no'),
'orderNo' => $data['orderNo']??'',
'model' => $data['model']??'',
'pageLimit' => $data['pageLimit']??'',
'pageNum' => $data['pageNum']??'',
];
$response = $this->sendRequest(config('crypto.url').'/api/1.0.0/voucher/item/listPage', $body, $header);
$this->saveLog("卡券查询".json_encode($response,320));
return $response;
}
}