refactor(order): 优化预订单转订单流程

- 修改订单来源为 OrderEnum::SOURCE_20
- 增加用户是否为会员的判断逻辑
- 优化 PayNotifyLogic 中的 addStock 方法,针对预订单转订单情况进行特殊处理
- 新增 OrderEnum 中的订单来源类型
This commit is contained in:
mkm 2025-01-25 12:32:13 +08:00
parent 26df751c99
commit b67ecfd595
3 changed files with 31 additions and 6 deletions

View File

@ -7,6 +7,7 @@ use app\admin\logic\store_product\StoreProductLogic;
use app\admin\logic\warehouse_product\WarehouseProductLogic;
use app\api\logic\order\CartLogic;
use app\api\logic\order\OrderLogic;
use app\common\enum\OrderEnum;
use app\common\model\beforehand_order\BeforehandOrder;
use app\common\logic\BaseLogic;
use app\common\model\auth\Admin;
@ -260,7 +261,7 @@ class BeforehandOrderLogic extends BaseLogic
'store_id' => $params['store_id'] ?? 0,
'shipping_type' => 2, //配送方式 1=快递 2=门店自提
'deduction_price' => 0, //抵扣金额
'source' => 2, //后台下单
'source' => OrderEnum::SOURCE_20, //来源
'order_type' => $order['order_type'],
'is_storage' => 0,
'verify_code' => createCode($code),
@ -669,6 +670,15 @@ class BeforehandOrderLogic extends BaseLogic
$res['examine_name'] = Admin::where('id', $record['check_user_id'])->value('name');
}
}
$res['is_vip']=0;
if($res['uid']>0){
$user_ship=User::where('id',$res['uid'])->value('user_ship');
if($user_ship>0){
$res['is_vip']=1;
}
}
return $res;
}

View File

@ -49,6 +49,18 @@ class OrderEnum
const USER_ORDER_REFUND = 19;//订单返还
const PAY_BACK =-1;
//-----------------------订单来源-----------------------//
/**
* @SOURCE_0 小程序
* @SOURCE_1 收银台
* @SOURCE_2 后台下单
* @SOURCE_20 预订单转订单
*/
const SOURCE_0 =0;//小程序
const SOURCE_1 =1;//收银台
const SOURCE_2 =2;//后台下单
const SOURCE_20 =20;//预订单转订单
/**
* 收入支出类型

View File

@ -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']); //微信
self::addStock($order['id'],$order);
return true;
}
@ -374,7 +374,7 @@ class PayNotifyLogic extends BaseLogic
}
$user->save();
//增加数量
self::addStock($order['id']);
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']);
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']);
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']);
@ -866,8 +866,11 @@ class PayNotifyLogic extends BaseLogic
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public static function addStock($oid)
public static function addStock($oid,$order)
{
if($order && $order['source']==OrderEnum::SOURCE_20){
return true;
}
$updateData = [];
$goods_list = StoreOrderCartInfo::where('oid', $oid)->select()->toArray();
foreach ($goods_list as $v) {