|
@@ -39,7 +39,7 @@ class OrderService
|
|
|
Order::where('order_id', $order->order_id)->update([
|
|
|
'order_is_complete' => 'Y',
|
|
|
'order_status_system' => 'CONFIRM',
|
|
|
- 'order_status_storage'=> 'DONE'
|
|
|
+ 'order_status_storage' => 'DONE'
|
|
|
]);
|
|
|
// 订单详情表
|
|
|
OrderSheet::where('join_sheet_order_id', $order->order_id)->update(['order_sheet_status' => 'DONE']);
|
|
@@ -71,15 +71,15 @@ class OrderService
|
|
|
$key = Order::AUTOMATIC_COMPLETE_PREFIX . date('Ymd');
|
|
|
$orderIds = $redis->smembers($key);
|
|
|
|
|
|
- foreach ($orderIds as $orderId){
|
|
|
- $order = Order::where('order_id',$orderId)
|
|
|
- ->select('order_is_complete','order_category','order_status_system')
|
|
|
+ foreach ($orderIds as $orderId) {
|
|
|
+ $order = Order::where('order_id', $orderId)
|
|
|
+ ->select('order_is_complete', 'order_category', 'order_status_system')
|
|
|
->first();
|
|
|
- if ($order && $order->order_is_complete != 'Y' && $order->order_category != 'RETURN' && in_array($order->order_status_system,['RECVING','SIGNED','CONFIRM'])){
|
|
|
+ if ($order && $order->order_is_complete != 'Y' && $order->order_category != 'RETURN' && in_array($order->order_status_system, ['RECVING', 'SIGNED', 'CONFIRM'])) {
|
|
|
// 更新主表
|
|
|
- Order::where('order_id',$orderId)->update(['order_is_complete'=>'Y','order_status_system'=>'CONFIRM','order_status_storage'=>'DONE']);
|
|
|
+ Order::where('order_id', $orderId)->update(['order_is_complete' => 'Y', 'order_status_system' => 'CONFIRM', 'order_status_storage' => 'DONE']);
|
|
|
// sheet表
|
|
|
- OrderSheet::where('join_sheet_order_id',$orderId)->update(['order_sheet_status'=>'DONE']);
|
|
|
+ OrderSheet::where('join_sheet_order_id', $orderId)->update(['order_sheet_status' => 'DONE']);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -98,10 +98,10 @@ class OrderService
|
|
|
Db::beginTransaction();
|
|
|
$timeUnix = strtotime("-30 minutes");
|
|
|
$orders = Order::where('order_status_system', 'PAYING')
|
|
|
- ->where('order_category','<>','DISHES') // 点餐不自动取消
|
|
|
+ ->where('order_category', '<>', 'DISHES') // 点餐不自动取消
|
|
|
// ->where('order_platform','<>','SYSTEM') // 后台产生的订单不自动取消
|
|
|
- ->where(function($query){
|
|
|
- $query->where('order_platform','<>','SYSTEM')->orWhereNull('order_platform');
|
|
|
+ ->where(function ($query) {
|
|
|
+ $query->where('order_platform', '<>', 'SYSTEM')->orWhereNull('order_platform');
|
|
|
})
|
|
|
->where('order_addtimes', '<', $timeUnix)
|
|
|
->get();
|
|
@@ -113,12 +113,12 @@ class OrderService
|
|
|
'order_status_payment' => 'CANCEL'
|
|
|
]);
|
|
|
$sheets = OrderSheet::where('join_sheet_order_id', $order->order_id)->get();
|
|
|
- foreach ($sheets as $sheet){
|
|
|
+ foreach ($sheets as $sheet) {
|
|
|
// 还原库存
|
|
|
- $goodsSku = GoodsSku::where('goods_sku_id',$sheet->join_sheet_goods_sku_id)->first();
|
|
|
- if (!empty($goodsSku) && !empty($goodsSku->goods_sku_storage_json)){
|
|
|
- $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
|
|
|
- if (isset($skuStorageJson['storage']) && !empty($skuStorageJson['storage'])){
|
|
|
+ $goodsSku = GoodsSku::where('goods_sku_id', $sheet->join_sheet_goods_sku_id)->first();
|
|
|
+ if (!empty($goodsSku) && !empty($goodsSku->goods_sku_storage_json)) {
|
|
|
+ $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json, true);
|
|
|
+ if (isset($skuStorageJson['storage']) && !empty($skuStorageJson['storage'])) {
|
|
|
$skuStorageJson['storage'] = $skuStorageJson['storage'] + $sheet->order_sheet_num;
|
|
|
$goodsSku->goods_sku_storage_json = json_encode($skuStorageJson);
|
|
|
$goodsSku->save();
|
|
@@ -126,8 +126,8 @@ class OrderService
|
|
|
}
|
|
|
|
|
|
|
|
|
- $goodsRunning = GoodsRunning::where('join_running_goods_id',$sheet->join_sheet_goods_id)->first();
|
|
|
- if(!empty($goodsRunning)){
|
|
|
+ $goodsRunning = GoodsRunning::where('join_running_goods_id', $sheet->join_sheet_goods_id)->first();
|
|
|
+ if (!empty($goodsRunning)) {
|
|
|
$goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage + $sheet->order_sheet_num;
|
|
|
$goodsRunning->goods_running_sale = $goodsRunning->goods_running_sale - $sheet->order_sheet_num;
|
|
|
$goodsRunning->save();
|
|
@@ -138,10 +138,10 @@ class OrderService
|
|
|
OrderSheet::where('join_sheet_order_id', $order->order_id)->update(['order_sheet_status' => 'CANCEL']);
|
|
|
// 支付表
|
|
|
$payDetail = PayDetail::where('join_pay_order_id', $order->order_groupby)->first();
|
|
|
- if(!empty($payDetail)){
|
|
|
+ if (!empty($payDetail)) {
|
|
|
$payExtendJson = [];
|
|
|
- if (!empty($payDetail->pay_extend_json)){
|
|
|
- $payExtendJson = json_decode($payDetail->pay_extend_json,true);
|
|
|
+ if (!empty($payDetail->pay_extend_json)) {
|
|
|
+ $payExtendJson = json_decode($payDetail->pay_extend_json, true);
|
|
|
}
|
|
|
$payExtendJson['cancel_times'] = date('Y-m-d H:i:s');
|
|
|
PayDetail::where('join_pay_order_id', $order->order_groupby)->update([
|
|
@@ -172,13 +172,13 @@ class OrderService
|
|
|
|
|
|
public static function generateAppointmentApplyData($params)
|
|
|
{
|
|
|
- $member = Member::with('cert','info')
|
|
|
- ->where('member_id',$params['join_order_member_id'])
|
|
|
+ $member = Member::with('cert', 'info')
|
|
|
+ ->where('member_id', $params['join_order_member_id'])
|
|
|
->first();
|
|
|
$name = '';
|
|
|
- if (!empty($member) && !empty($member->cert) && !empty($member->cert->member_cert_name)){
|
|
|
+ if (!empty($member) && !empty($member->cert) && !empty($member->cert->member_cert_name)) {
|
|
|
$name = $member->cert->member_cert_name;
|
|
|
- }else if (!empty($member) && !empty($member->info) && !empty($member->info->member_info_nickname)){
|
|
|
+ } else if (!empty($member) && !empty($member->info) && !empty($member->info->member_info_nickname)) {
|
|
|
$name = $member->info->member_info_nickname;
|
|
|
}
|
|
|
|
|
@@ -197,10 +197,10 @@ class OrderService
|
|
|
public static function qrcodePay($params)
|
|
|
{
|
|
|
$log = SupportLog::channel('pay');
|
|
|
- $log->info("PAY_PARAMS",json_decode(json_encode($params),true));
|
|
|
+ $log->info("PAY_PARAMS", json_decode(json_encode($params), true));
|
|
|
$params['order_amount_pay'] = floatval($params['order_amount_pay']);
|
|
|
$qrcodeNbr = $params['qrcode_nbr'];
|
|
|
- $prefix = substr($qrcodeNbr,0,2);
|
|
|
+ $prefix = substr($qrcodeNbr, 0, 2);
|
|
|
// 模拟数据
|
|
|
// $result = [
|
|
|
// 'return_code'=>'SUCCESS',
|
|
@@ -208,65 +208,79 @@ class OrderService
|
|
|
// ];
|
|
|
// return $result;
|
|
|
// 微信支付
|
|
|
- if(in_array($prefix,[10,11,12,13,14,15])){
|
|
|
+ if (in_array($prefix, [10, 11, 12, 13, 14, 15])) {
|
|
|
$payData = [
|
|
|
'out_trade_no' => $params['orderGroupId'],
|
|
|
- 'body' => '万悦康养订单',
|
|
|
- 'total_fee' => $params['order_amount_pay']*100,
|
|
|
- 'auth_code' => $params['qrcode_nbr'],
|
|
|
+ 'body' => '万悦康养订单',
|
|
|
+ 'total_fee' => $params['order_amount_pay'] * 100,
|
|
|
+ 'auth_code' => $params['qrcode_nbr'],
|
|
|
];
|
|
|
- try{
|
|
|
- $result = Pay::wechat(config('payment.wxpay'))->pos($payData);
|
|
|
- }catch(\Exception $e){
|
|
|
- $log->error("WXPAY",['msg'=>$e->getMessage()]);
|
|
|
+ try {
|
|
|
+// $result = Pay::wechat(config('payment.wxpay'))->pos($payData);
|
|
|
+ $result = self::findWxpay('OD20240816113023HNSQDI',0);
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ $log->error("WXPAY", ['msg' => $e->getMessage()]);
|
|
|
throw new BusinessException("支付失败");
|
|
|
}
|
|
|
|
|
|
- $log->info("WXPAY_RETURN",json_decode(json_encode($result),true));
|
|
|
+ $log->info("WXPAY_RETURN", json_decode(json_encode($result), true));
|
|
|
|
|
|
- }else if(in_array($prefix,[25,26,27,28,29,30])){
|
|
|
+ } else if (in_array($prefix, [25, 26, 27, 28, 29, 30])) {
|
|
|
$payData = [
|
|
|
'out_trade_no' => $params['orderGroupId'],
|
|
|
'total_amount' => $params['order_amount_pay'],
|
|
|
- 'subject' => '万悦康养订单',
|
|
|
- 'auth_code' => $params['qrcode_nbr'],
|
|
|
+ 'subject' => '万悦康养订单',
|
|
|
+ 'auth_code' => $params['qrcode_nbr'],
|
|
|
];
|
|
|
- try{
|
|
|
+ try {
|
|
|
$result = Pay::alipay(config('payment.alipay'))->pos($payData);
|
|
|
- }catch(\Exception $e){
|
|
|
- $log->error("ALIPAY",['msg'=>$e->getMessage()]);
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ $log->error("ALIPAY", ['msg' => $e->getMessage()]);
|
|
|
throw new BusinessException("支付失败");
|
|
|
}
|
|
|
|
|
|
- $log->info("ALIPAY_RETURN",json_decode(json_encode($result),true));
|
|
|
+ $log->info("ALIPAY_RETURN", json_decode(json_encode($result), true));
|
|
|
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
throw new BusinessException("二维码无效");
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
+ public static function findWxpay($orderId, $nbr = 0)
|
|
|
+ {
|
|
|
+ dump('进来了');
|
|
|
+ $order = [
|
|
|
+ 'out_trade_no' => $orderId,
|
|
|
+ ];
|
|
|
+
|
|
|
+ $result = Pay::wechat(config('payment.wxpay'))->find($orderId);
|
|
|
+ dump($result);
|
|
|
+
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 验证产品库存
|
|
|
*/
|
|
|
public static function checkGoodsStorage($params)
|
|
|
{
|
|
|
- foreach($params['goodsContentList'] as $goods){
|
|
|
+ foreach ($params['goodsContentList'] as $goods) {
|
|
|
// 减库存,规格和总库存
|
|
|
- if (!isset($params['submit_goods_classify']) || $params['submit_goods_classify'] != 'MEALS'){
|
|
|
- $goodsSku = GoodsSku::where('goods_sku_id',$goods['sku_id'])->first();
|
|
|
- $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
|
|
|
- if (isset($skuStorageJson['storage']) && !empty($skuStorageJson['storage'])){
|
|
|
+ if (!isset($params['submit_goods_classify']) || $params['submit_goods_classify'] != 'MEALS') {
|
|
|
+ $goodsSku = GoodsSku::where('goods_sku_id', $goods['sku_id'])->first();
|
|
|
+ $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json, true);
|
|
|
+ if (isset($skuStorageJson['storage']) && !empty($skuStorageJson['storage'])) {
|
|
|
$skuStorageJson['storage'] = $skuStorageJson['storage'] - $goods['nbr'];
|
|
|
}
|
|
|
- if (!isset($skuStorageJson['storage']) || (!empty($skuStorageJson['storage']) && $skuStorageJson['storage'] < 0)){
|
|
|
+ if (!isset($skuStorageJson['storage']) || (!empty($skuStorageJson['storage']) && $skuStorageJson['storage'] < 0)) {
|
|
|
throw new BusinessException('库存不足');
|
|
|
}
|
|
|
}
|
|
|
- $goodsRunning = GoodsRunning::where('join_running_goods_id',$goods['goods_id'])->first();
|
|
|
+ $goodsRunning = GoodsRunning::where('join_running_goods_id', $goods['goods_id'])->first();
|
|
|
$goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage - $goods['nbr'];
|
|
|
- if ($goodsRunning->goods_running_storage < 0){
|
|
|
+ if ($goodsRunning->goods_running_storage < 0) {
|
|
|
throw new BusinessException('库存不足');
|
|
|
}
|
|
|
}
|
|
@@ -278,15 +292,15 @@ class OrderService
|
|
|
public static function createPayDetail($params)
|
|
|
{
|
|
|
$insertPayDetailData = [
|
|
|
- 'join_pay_member_id'=>$params['join_order_member_id'],
|
|
|
- 'join_pay_order_id'=>$params['orderGroupId'],
|
|
|
- 'pay_status'=>'SUCCESS',
|
|
|
+ 'join_pay_member_id' => $params['join_order_member_id'],
|
|
|
+ 'join_pay_order_id' => $params['orderGroupId'],
|
|
|
+ 'pay_status' => 'SUCCESS',
|
|
|
'pay_category' => !empty($params['submit_goods_classify']) ? $params['submit_goods_classify'] : $params['goods_classify'],
|
|
|
- 'pay_amount'=> $params['order_amount_pay'],
|
|
|
- 'pay_paytimes'=>date('Y-m-d H:i:s'),
|
|
|
- 'pay_prepayid'=>$params['pay_category'],
|
|
|
+ 'pay_amount' => $params['order_amount_pay'],
|
|
|
+ 'pay_paytimes' => date('Y-m-d H:i:s'),
|
|
|
+ 'pay_prepayid' => $params['pay_category'],
|
|
|
'pay_json_request' => json_encode($params),
|
|
|
- 'pay_json_response'=> $params['pay_json_response'] ?? '[]',
|
|
|
+ 'pay_json_response' => $params['pay_json_response'] ?? '[]',
|
|
|
'pay_addtimes' => time()
|
|
|
];
|
|
|
|
|
@@ -296,13 +310,13 @@ class OrderService
|
|
|
/**
|
|
|
* 组合支付,PayDetail
|
|
|
*/
|
|
|
- public static function createPayConstituteDetail($params,$payDetail)
|
|
|
+ public static function createPayConstituteDetail($params, $payDetail)
|
|
|
{
|
|
|
$qrcodePrepayId = '';
|
|
|
- if(in_array($params['pay_category'],['WXPAY','ALIPAY'])){
|
|
|
- $qrcodePrepayId = $params['join_order_member_id'].'-QRCODE';
|
|
|
+ if (in_array($params['pay_category'], ['WXPAY', 'ALIPAY'])) {
|
|
|
+ $qrcodePrepayId = $params['join_order_member_id'] . '-QRCODE';
|
|
|
}
|
|
|
- if (!$payDetail || ($payDetail->pay_prepayid != $params['pay_category'] && $payDetail->pay_prepayid != $qrcodePrepayId)){
|
|
|
+ if (!$payDetail || ($payDetail->pay_prepayid != $params['pay_category'] && $payDetail->pay_prepayid != $qrcodePrepayId)) {
|
|
|
$payDetail = new PayDetail();
|
|
|
$payDetail->join_pay_member_id = $params['join_order_member_id'];
|
|
|
$payDetail->join_pay_order_id = $params['orderGroupId'];
|
|
@@ -310,15 +324,15 @@ class OrderService
|
|
|
$payDetail->pay_prepayid = $params['pay_category'];
|
|
|
$payDetail->pay_json_request = json_encode($params);
|
|
|
$payDetail->pay_json_response = $params['pay_json_response'] ?? json_encode([
|
|
|
- 'pay-result'=>'支付成功','result-datetime'=>date('Y-m-d H:i:s')
|
|
|
+ 'pay-result' => '支付成功', 'result-datetime' => date('Y-m-d H:i:s')
|
|
|
]);
|
|
|
$payDetail->pay_addtimes = time();
|
|
|
}
|
|
|
- if ($payDetail->pay_prepayid == $qrcodePrepayId){
|
|
|
+ if ($payDetail->pay_prepayid == $qrcodePrepayId) {
|
|
|
$payDetail->pay_prepayid = $params['pay_category'];
|
|
|
}
|
|
|
$payDetail->pay_json_response = $params['pay_json_response'] ?? json_encode([
|
|
|
- 'pay-result'=>'支付成功','result-datetime'=>date('Y-m-d H:i:s')
|
|
|
+ 'pay-result' => '支付成功', 'result-datetime' => date('Y-m-d H:i:s')
|
|
|
]);
|
|
|
$payDetail->pay_amount = $params['order_amount_pay'];
|
|
|
$payDetail->pay_paytimes = date('Y-m-d H:i:s');
|