Merge pull request 'fix(app): 修复订单退款和库存处理相关问题' (#493) from dev into main

Reviewed-on: #493
This commit is contained in:
mkm 2025-01-25 13:11:25 +08:00
commit 8658df0d79

View File

@ -284,8 +284,8 @@ class PayNotifyLogic extends BaseLogic
// self::dealProductLog($order);
if ($order->pay_type == 7) {
$openid=UserAuth::where('user_id',$order['uid'])->value('openid');
if($openid){
$openid = UserAuth::where('user_id', $order['uid'])->value('openid');
if ($openid) {
Redis::send('push-delivery', ['order_id' => $order['order_id'], 'openid' => $openid, 'logistics_type' => 4]);
}
}
@ -326,8 +326,8 @@ class PayNotifyLogic extends BaseLogic
UserSignLogic::RefundRecharge($orderRe);
return true;
}
$refund=bcdiv($extra['amount']['refund'], 100, 2);
if($refund==$order['pay_price']){
$refund = bcdiv($extra['amount']['refund'], 100, 2);
if ($refund == $order['pay_price']) {
$order->status = OrderEnum::REFUND_PAY;
$order->refund_status = OrderEnum::REFUND_STATUS_FINISH;
$order->refund_price = $refund;
@ -351,7 +351,7 @@ class PayNotifyLogic extends BaseLogic
// $user = User::where('id', $order['uid'])->findOrEmpty();
// $capitalFlowDao = new CapitalFlowLogic($user);
// $capitalFlowDao->userIncome('user_order_refund', 'system_back', $order['id'], $order['pay_price'], '', 1);
self::addStock($order['id'],$order);
self::addStock($order['id'], $order);
return true;
}
@ -374,7 +374,7 @@ class PayNotifyLogic extends BaseLogic
}
$user->save();
//增加数量
self::addStock($order['id'],$order);
self::addStock($order['id'], $order);
}
if ($order['pay_type'] == PayEnum::PURCHASE_FUNDS) { //采购款支付
$user = User::where('id', $order['uid'])->findOrEmpty();
@ -389,7 +389,7 @@ class PayNotifyLogic extends BaseLogic
}
$user->save();
//增加数量
self::addStock($order['id'],$order);
self::addStock($order['id'], $order);
}
UserSignLogic::RefundOrder($order);
@ -427,7 +427,7 @@ class PayNotifyLogic extends BaseLogic
$model->status = YesNoEnum::YES;
$model->save();
//增加数量
self::addStock($order['id'],$order);
self::addStock($order['id'], $order);
StoreOrderCartInfo::where('oid', $order['id'])->update(['status' => OrderEnum::REFUND_STATUS_FINISH]);
(new StoreFinanceFlowLogic())->store_finance_back($orderSn, $order['store_id']);
@ -502,7 +502,7 @@ class PayNotifyLogic extends BaseLogic
$uid = $order['other_uid'];
}
$cashFlowLogic = new CashFlowLogic();
$cashFlowLogic->insert($order['store_id'], $order['price'],$orderSn);
$cashFlowLogic->insert($order['store_id'], $order['price'], $orderSn);
PushService::push('wechat_mmp_' . $uid, $uid, ['type' => 'INDUSTRYMEMBERS', 'msg' => '订单支付成功', 'data' => ['id' => $order['id'], 'paid' => 1]]);
PushService::push('store_merchant_' . $order['store_id'], $order['store_id'], ['type' => 'INDUSTRYMEMBERS', 'msg' => '订单支付成功', 'data' => ['id' => $order['id'], 'paid' => 1]]);
@ -624,25 +624,27 @@ class PayNotifyLogic extends BaseLogic
'total_price' => bcmul($stock, $storeProduct['purchase'], 2),
'sales' => bcadd($storeProduct['sales'], $v['cart_num'], 2)
], ['id' => $v['product_id']]);
if($storeProduct['product_type']==5){
continue;
if ($storeProduct['product_type'] == 5) {
continue;
}
}
if ($branchProduct) {
$stock = bcsub($branchProduct['stock'], $v['cart_num'], 2);
StoreBranchProduct::update([
'stock' => $stock,
'total_price' => bcmul($stock, $branchProduct['purchase'], 2),
'sales' => bcadd($branchProduct['sales'], $v['cart_num'], 2)
], ['id' => $branchProduct['id']]);
SqlChannelLog('StoreBranchProduct',$branchProduct['id'], $v['cart_num'], -1, Request()->url());
} else {
StoreProductLogic::ordinary(['id' => $v['product_id']], $v['store_id'], 0, $storeProduct);
StoreBranchProduct::update([
'stock' => -$v['cart_num'],
'sales' => $v['cart_num']
], ['product_id' => $v['product_id'],'store_id'=>$v['store_id']]);
SqlChannelLog('StoreBranchProduct',$branchProduct['id'], $v['cart_num'], -1, Request()->url());
if ($order['source'] != OrderEnum::SOURCE_20) {
if ($branchProduct) {
$stock = bcsub($branchProduct['stock'], $v['cart_num'], 2);
StoreBranchProduct::update([
'stock' => $stock,
'total_price' => bcmul($stock, $branchProduct['purchase'], 2),
'sales' => bcadd($branchProduct['sales'], $v['cart_num'], 2)
], ['id' => $branchProduct['id']]);
SqlChannelLog('StoreBranchProduct', $branchProduct['id'], $v['cart_num'], -1, Request()->url());
} else {
StoreProductLogic::ordinary(['id' => $v['product_id']], $v['store_id'], 0, $storeProduct);
StoreBranchProduct::update([
'stock' => -$v['cart_num'],
'sales' => $v['cart_num']
], ['product_id' => $v['product_id'], 'store_id' => $v['store_id']]);
SqlChannelLog('StoreBranchProduct', $branchProduct['id'], $v['cart_num'], -1, Request()->url());
}
}
}
} catch (\Throwable $e) {
@ -660,8 +662,8 @@ class PayNotifyLogic extends BaseLogic
if ($order['uid'] != 1) {
Redis::send('order_wetcha_push_send', ['order' => $order]);
}
$xprinter=DictData::where('type_value','xprinter')->where('name','xprinter_'.$order['store_id'])->where('status',1)->find();
if($xprinter){
$xprinter = DictData::where('type_value', 'xprinter')->where('name', 'xprinter_' . $order['store_id'])->where('status', 1)->find();
if ($xprinter) {
Redis::send('order_xprinter_push_send', ['order' => $order]);
}
} catch (\Exception $e) {
@ -866,9 +868,9 @@ class PayNotifyLogic extends BaseLogic
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public static function addStock($oid,$order)
public static function addStock($oid, $order)
{
if($order && $order['source']==OrderEnum::SOURCE_20){
if ($order && $order['source'] == OrderEnum::SOURCE_20) {
return true;
}
$updateData = [];
@ -884,14 +886,14 @@ class PayNotifyLogic extends BaseLogic
$updateData[] = [
'id' => $StoreBranchProduct['id'],
'stock' => $StoreBranchProduct['stock'] + $v['cart_num'],
'sales' => ['dec', $v['cart_num']]
'sales' => ['dec', $v['cart_num']]
// 'sales' => ['inc', $v['cart_num']]
];
}
}
(new StoreBranchProduct())->saveAll($updateData);
SqlChannelLog('StoreBranchProduct',0,0,1,Request()->url());
SqlChannelLog('StoreBranchProduct', 0, 0, 1, Request()->url());
}