修复了多个类中的逻辑问题

- 在BeforehandOrderThreeLists和BeforehandOrderTwoLists类中,添加了判断条件,以防止在outbound_id或warehousing_id为0时执行无效的数据库查询
- 在BeforehandOrderLogic类中,为订单详情添加了order_type字段,以支持不同类型的订单
- 在BeforehandOrderCartInfoLogic类中,修复了一键入库功能的逻辑错误,确保只有在bhoid参数有效时才执行后续操作
This commit is contained in:
mkm 2024-10-09 16:35:46 +08:00
parent 7f43276720
commit 02ada622ef
4 changed files with 22 additions and 7 deletions

View File

@ -18,7 +18,7 @@ use app\common\model\warehouse_product\WarehouseProduct;
*/ */
class BeforehandOrderThreeLists extends BaseAdminDataLists implements ListsSearchInterface class BeforehandOrderThreeLists extends BaseAdminDataLists implements ListsSearchInterface
{ {
public $outbound_id;
/** /**
* @notes 设置搜索条件 * @notes 设置搜索条件
@ -48,6 +48,7 @@ class BeforehandOrderThreeLists extends BaseAdminDataLists implements ListsSearc
if(empty($outbound_id)){ if(empty($outbound_id)){
return []; return [];
} }
$this->outbound_id=$outbound_id;
$this->searchWhere[]=['oid','=',$outbound_id]; $this->searchWhere[]=['oid','=',$outbound_id];
$this->searchWhere[]=['financial_pm','=',0]; $this->searchWhere[]=['financial_pm','=',0];
return WarehouseProduct::where($this->searchWhere)->select() return WarehouseProduct::where($this->searchWhere)->select()
@ -79,7 +80,11 @@ class BeforehandOrderThreeLists extends BaseAdminDataLists implements ListsSearc
*/ */
public function count(): int public function count(): int
{ {
return WarehouseProduct::where($this->searchWhere)->count(); if($this->outbound_id>0){
return WarehouseProduct::where($this->searchWhere)->count();
}else{
return 0;
}
} }
} }

View File

@ -19,7 +19,7 @@ use app\common\model\warehouse_product\WarehouseProduct;
class BeforehandOrderTwoLists extends BaseAdminDataLists implements ListsSearchInterface class BeforehandOrderTwoLists extends BaseAdminDataLists implements ListsSearchInterface
{ {
public $warehousing_id;
/** /**
* @notes 设置搜索条件 * @notes 设置搜索条件
* @return \string[][] * @return \string[][]
@ -48,6 +48,7 @@ class BeforehandOrderTwoLists extends BaseAdminDataLists implements ListsSearchI
if(empty($warehousing_id)){ if(empty($warehousing_id)){
return []; return [];
} }
$this->warehousing_id=$warehousing_id;
$this->searchWhere[]=['oid','=',$warehousing_id]; $this->searchWhere[]=['oid','=',$warehousing_id];
$this->searchWhere[]=['financial_pm','=',1]; $this->searchWhere[]=['financial_pm','=',1];
return WarehouseProduct::where($this->searchWhere)->select() return WarehouseProduct::where($this->searchWhere)->select()
@ -79,7 +80,11 @@ class BeforehandOrderTwoLists extends BaseAdminDataLists implements ListsSearchI
*/ */
public function count(): int public function count(): int
{ {
return WarehouseProduct::where($this->searchWhere)->count(); if($this->warehousing_id>0){
return WarehouseProduct::where($this->searchWhere)->count();
}else{
return 0;
}
} }
} }

View File

@ -41,6 +41,7 @@ class BeforehandOrderLogic extends BaseLogic
$total_price = 0; $total_price = 0;
$uid = $params['uid'] ?? 0; $uid = $params['uid'] ?? 0;
foreach ($params['product_arr'] as $k => $v) { foreach ($params['product_arr'] as $k => $v) {
$datas[$k]['mark'] = $v['mark']??'';
$datas[$k]['product_id'] = $v['product_id']; $datas[$k]['product_id'] = $v['product_id'];
$datas[$k]['uid'] = $uid; $datas[$k]['uid'] = $uid;
$datas[$k]['cart_num'] = $v['nums']; $datas[$k]['cart_num'] = $v['nums'];
@ -61,7 +62,8 @@ class BeforehandOrderLogic extends BaseLogic
'pay_type' => 0, 'pay_type' => 0,
'deduction_price' => 0, 'deduction_price' => 0,
'paid' => 0, 'paid' => 0,
'mark' => $params['mark'] ?? '' 'mark' => $params['mark'] ?? '',
'order_type' => $params['order_type'] ?? 0
]); ]);
foreach ($datas as $k => $v) { foreach ($datas as $k => $v) {
$datas[$k]['bhoid'] = $order['id']; $datas[$k]['bhoid'] = $order['id'];

View File

@ -97,8 +97,8 @@ class BeforehandOrderCartInfoLogic extends BaseLogic
Db::startTrans(); Db::startTrans();
try { try {
BeforehandOrderCartInfo::where('id', $params['id'])->update([ BeforehandOrderCartInfo::where('id', $params['id'])->update([
'price' => $params['purchase'], 'price' => $params['purchases'],
'total_price' => $params['total_price'], 'total_price' => bcmul($params['purchases'],$params['nums'],2),
'cart_num' => $params['nums'], 'cart_num' => $params['nums'],
]); ]);
$bhoid = $params['bhoid']; $bhoid = $params['bhoid'];
@ -117,6 +117,9 @@ class BeforehandOrderCartInfoLogic extends BaseLogic
*/ */
public static function oneClickStorage($params) public static function oneClickStorage($params)
{ {
if($params['bhoid']<=0){
throw new BusinessException('参数错误');
}
$count = PurchaseProductOffer::where(['order_id' => $params['bhoid'], 'is_storage' => 0, 'buyer_nums' => 0])->count('id'); $count = PurchaseProductOffer::where(['order_id' => $params['bhoid'], 'is_storage' => 0, 'buyer_nums' => 0])->count('id');
$warehousing_id = BeforehandOrder::where('id', $params['bhoid'])->value('warehousing_id'); $warehousing_id = BeforehandOrder::where('id', $params['bhoid'])->value('warehousing_id');