diff --git a/app/admin/logic/store_product/StoreProductLogic.php b/app/admin/logic/store_product/StoreProductLogic.php index ad4f9c5c2..53cb197c7 100644 --- a/app/admin/logic/store_product/StoreProductLogic.php +++ b/app/admin/logic/store_product/StoreProductLogic.php @@ -44,8 +44,12 @@ class StoreProductLogic extends BaseLogic 'purchase' => $params['purchase'], 'rose' => $params['rose'], ]; - $rose_price = bcmul($params['cost'], $params['rose'], 2); - $data['price'] = bcadd($params['cost'], $rose_price, 2); + if ($params['rose'] > 0) { + $rose_price = bcmul($params['cost'], $params['rose'], 2); + $data['price'] = bcadd($params['cost'], $rose_price, 2); + } else { + $data['price'] = 0; + } $res = StoreProduct::create($data); StoreProductAttrValue::create([ "bar_code" => $params["bar_code"] ?? '', @@ -98,7 +102,7 @@ class StoreProductLogic extends BaseLogic StoreCategory::where('id', $params['cate_id'])->inc('three')->update(); StoreCategory::where('id', $StoreProduct['cate_id'])->dec('three')->update(); } - StoreProduct::where('id', $params['id'])->update([ + $data = [ 'store_name' => $params['store_name'], 'image' => $params['image'], 'bar_code' => $params['bar_code'] ?? '', @@ -108,7 +112,14 @@ class StoreProductLogic extends BaseLogic 'cost' => $params['cost'], 'purchase' => $params['purchase'], 'rose' => $params['rose'], - ]); + ]; + if ($params['rose'] > 0) { + $rose_price = bcmul($params['cost'],bcdiv($params['rose'], 100, 2), 2); + $data['price'] = bcadd($params['cost'], $rose_price, 2); + } else { + $data['price'] = 0; + } + StoreProduct::where('id', $params['id'])->update($data); Db::commit(); return true; @@ -134,7 +145,7 @@ class StoreProductLogic extends BaseLogic /** - * @notes 获取商品列表详情 + * @notes 获取商品详情 * @param $params * @return array * @author likeadmin @@ -142,7 +153,20 @@ class StoreProductLogic extends BaseLogic */ public static function detail($params): array { - return StoreProduct::where('id',$params['id'])->findOrEmpty()->toArray(); + $data = StoreProduct::where('id', $params['id'])->findOrEmpty()->toArray(); + if ($data) { + $data['cate_arr'] = []; + $id_1 = StoreCategory::where('id', $data['cate_id'])->value('pid'); + if ($id_1) { + $id_2 = StoreCategory::where('id', $id_1)->value('pid'); + if ($id_2 == 0) { + $data['cate_arr'] = [$id_1, $data['cate_id']]; + } else { + $data['cate_arr'] = [$id_2, $id_1, $data['cate_id']]; + } + } + } + return $data; } /** @@ -190,7 +214,7 @@ class StoreProductLogic extends BaseLogic 'price' => $find['price'], 'store_id' => $store_id, 'sales' => 0, - 'stock' =>0, + 'stock' => 0, ]; StoreBranchProduct::create($product); $arr = [ diff --git a/app/admin/validate/store_product/StoreProductValidate.php b/app/admin/validate/store_product/StoreProductValidate.php index 127637fda..5de3a1f90 100644 --- a/app/admin/validate/store_product/StoreProductValidate.php +++ b/app/admin/validate/store_product/StoreProductValidate.php @@ -21,6 +21,7 @@ class StoreProductValidate extends BaseValidate protected $rule = [ 'id' => 'require', 'store_name' => 'require', + 'rose' => 'require|integer', ]; @@ -31,6 +32,7 @@ class StoreProductValidate extends BaseValidate protected $field = [ 'id' => 'id', 'store_name' => '商品名称', + 'rose'=>'上浮比率' ]; @@ -42,7 +44,7 @@ class StoreProductValidate extends BaseValidate */ public function sceneAdd() { - return $this->only(['store_name']); + return $this->only(['store_name','rose']); } @@ -54,7 +56,7 @@ class StoreProductValidate extends BaseValidate */ public function sceneEdit() { - return $this->only(['id','store_name']); + return $this->only(['id','store_name','rose']); }