refactor(store_branch_product): 重构库存编辑逻辑

- 移除了冗余的代码和不必要的条件判断
- 优化了数据库查询和更新操作
- 简化了库存更新逻辑,提高了代码可读性和维护性
This commit is contained in:
mkm 2025-01-11 11:31:48 +08:00
parent b7f9a3b5ee
commit ca43cf01fa
2 changed files with 6 additions and 20 deletions
app/admin
controller/store_branch_product
logic/store_branch_product

@ -93,6 +93,8 @@ class StoreBranchProductController extends BaseAdminController
*/
public function edit_stock()
{
$params = $this->request->post();
StoreBranchProductLogic::stock($params);
return $this->success('编辑成功', [], 1, 1);
}
/**

@ -67,7 +67,7 @@ class StoreBranchProductLogic extends BaseLogic
return true;
} catch (\Throwable $e) {
Db::rollback();
throw new BusinessException('商品编辑失败:',$e->getMessage());
throw new BusinessException('商品编辑失败:', $e->getMessage());
}
}
/**
@ -77,29 +77,13 @@ class StoreBranchProductLogic extends BaseLogic
* @author admin
* @date 2024/06/07 13:56
*/
public static function stock(array $params, $type = 1,$admin_id=0): bool
public static function stock(array $params, $type = 1, $admin_id = 0): bool
{
Db::startTrans();
try {
$find = StoreProduct::where('id', $params['product_id'])->find()->toArray();
$storeBranchProduct = StoreBranchProduct::where('id', $params['id'])->find()->toArray();
if ($type == 1) {
$stock = bcadd($find['stock'], $params['nums'], 2);
$branchStock = bcadd($storeBranchProduct['stock'], $params['nums'], 2);
StoreBranchProduct::update(['stock' => $branchStock, 'total_price' => bcmul($branchStock, $find['purchase'], 2)],['id'=> $params['id']]);
SqlChannelLog('StoreBranchProduct', $params['id'], $params['nums'], 1, Request()->url(),$admin_id);
StoreProduct::update(['stock' => $stock, 'total_price' => bcmul($stock, $find['purchase'], 2)],['id'=> $params['product_id']]);
} else {
$branchStock = bcsub($storeBranchProduct['stock'], $params['nums'], 2);
$stock = bcsub($find['stock'], $params['nums'], 2);
StoreBranchProduct::where('id', $params['id'])->update(['stock' => $branchStock, 'total_price' => bcmul($branchStock, $find['purchase'], 2)],['id'=>$params['id']]);
SqlChannelLog('StoreBranchProduct', $params['id'], $params['nums'], -1, Request()->url(),$admin_id);
StoreProduct::where('id', $params['product_id'])->update(['stock' => $stock, 'total_price' => bcmul($stock, $find['purchase'], 2)],['id'=>$params['product_id']]);
}
StoreBranchProduct::update(['stock' => $params['stock'], 'total_price' => bcmul($params['stock'], $storeBranchProduct['purchase'], 2)], ['id' => $params['id']]);
SqlChannelLog('StoreBranchProduct', $params['id'], $params['stock'], 0, Request()->url(), $admin_id);
Db::commit();
return true;
} catch (\Throwable $e) {