浏览代码

批量添加花材

shish 3 年之前
父节点
当前提交
10407e2f51
共有 2 个文件被更改,包括 33 次插入35 次删除
  1. 10 3
      app-ghs/controllers/ItemController.php
  2. 23 32
      biz-ghs/item/services/ItemService.php

+ 10 - 3
app-ghs/controllers/ItemController.php

@@ -3,6 +3,7 @@
 namespace ghs\controllers;
 
 use biz\item\classes\PtItemClass;
+use biz\shop\classes\ShopClass;
 use bizGhs\item\classes\ItemClass;
 use bizGhs\item\services\ItemService;
 use common\components\dict;
@@ -312,12 +313,10 @@ class ItemController extends BaseController
     //批量添加花材
     public function actionBatchAdd()
     {
-
         $shopAdmin = $this->shopAdmin;
         if (isset($shopAdmin->super) == false || $shopAdmin->super != 1) {
             util::fail('超管才能操作');
         }
-
         $post = Yii::$app->request->post();
         //[{itemId:1000,classId:2,price:1,stockWarning:1}]
         $data = $post['data'];
@@ -338,12 +337,20 @@ class ItemController extends BaseController
             util::fail("有花材已经添加过了");
         }
 
-        $connection = Yii::$app->db;//事务处理
+        $shopList = ShopClass::getAllByCondition(['sjId' => $sjId], null, '*');
+        if (count($shopList) > 1) {
+            util::fail('您已有多家门店,暂不支持批量添加花材');
+        }
+        $shopId = $this->shopId;
+        $mainId = $this->mainId;
+        $connection = Yii::$app->db;
         $transaction = $connection->beginTransaction();
         try {
             foreach ($data as $v) {
                 $v['adminId'] = $this->adminId;
                 $v['sjId'] = $sjId;
+                $v['shopId'] = $shopId;
+                $v['mainId'] = $mainId;
                 ItemService::addGhsItem($v);
             }
             $transaction->commit();

+ 23 - 32
biz-ghs/item/services/ItemService.php

@@ -17,6 +17,7 @@ use bizGhs\item\classes\ItemClassClass;
 use biz\shop\services\ShopService;
 use bizGhs\product\classes\ProductClass;
 use common\components\dict;
+use common\components\stringUtil;
 use Yii;
 use common\components\util;
 use yii\db\Exception;
@@ -30,7 +31,6 @@ class ItemService extends BaseService
     //新增花材
     public static function addGhsItem($data)
     {
-        $sjId = $data['sjId'] ?? 0;
         $classId = $data['classId'] ?? 0;
         $itemId = $data['itemId'] ?? 0;
         if (empty($classId)) {
@@ -45,57 +45,48 @@ class ItemService extends BaseService
         if (is_numeric($data['price']) == false) {
             util::fail('价格填写错误');
         }
-        $price = $data['price'];
-        if ($price < 0.5) {
-            util::fail('价格不能小于0.5');
-        }
         if (isset($data['name']) == false || empty($data['name'])) {
             util::fail('请填写名称');
         }
         $name = $data['name'] ?? '';
-
-        $data['cost'] = $price;
-
-        $stockWarning = isset($data['stockWarning']) && preg_match("/^[1-9][0-9]*$/", $data['stockWarning']) ? $data['stockWarning'] : 5;
-
+        if (isset($data['price']) == false || is_numeric($data['price']) == false) {
+            util::fail($name . " 没有填写花店价");
+        }
+        if (isset($data['skPrice']) == false || is_numeric($data['skPrice']) == false) {
+            util::fail($name . " 没有填写散客价");
+        }
+        if (isset($data['cost']) == false || is_numeric($data['cost']) == false) {
+            util::fail($name . " 没有填写成本价");
+        }
+        $stockWarning = isset($data['stockWarning']) && is_numeric($data['stockWarning']) ? $data['stockWarning'] : 5;
         //判断平台花材是否存在
         $ptItem = PtItemClass::getById($itemId);
         if (empty($ptItem)) {
             util::fail("平台花材不存在");
         }
-        $existItemClass = ItemClassClass::exists(['id' => $classId, 'sjId' => $sjId]);
+        $existItemClass = ItemClassClass::exists(['id' => $classId]);
         if (empty($existItemClass)) {
             util::fail("分类不存在");
         }
-
-        //补全花材信息
+        $skPrice = $data['skPrice'];
+        $price = $data['price'];
+        $cost = $data['cost'];
+        $skMore = bcsub($skPrice, $price, 2);
+        $addPrice = bcsub($price, $cost, 2);
         $data['name'] = $name;
         $data['alias'] = $ptItem['alias'];
-        $data['py'] = $ptItem['py'];
+        $data['py'] = stringUtil::py($name);
         $data['cover'] = $ptItem['cover'];
         $data['ratio'] = $ptItem['ratio'];
         $data['weight'] = $ptItem['weight'];
         $data['bigUnit'] = $ptItem['bigUnit'];
         $data['smallUnit'] = $ptItem['smallUnit'];
-        $data['variety'] = $ptItem['variety'] ?? 0;
+        $data['variety'] = 0;
+        $data['stock'] = 0;
+        $data['skMore'] = $skMore;
+        $data['addPrice'] = $addPrice;
         $data['stockWarning'] = $stockWarning;
-        $data['addPrice'] = $ptItem['addPrice'] ?? 0;
-        $data['skAddPrice'] = $ptItem['skAddPrice'] ?? 0;
-        $data['hjAddPrice'] = $ptItem['hjAddPrice'] ?? 0;
-        $data['zsAddPrice'] = $ptItem['zsAddPrice'] ?? 0;
-
-        $shopIds = ShopService::getShopIds($sjId);
-        if (empty($shopIds)) {
-            util::fail("没有找到门店");
-        }
-        foreach ($shopIds as $shopId) {
-            $data['shopId'] = $shopId;
-            $existItem = ProductClass::exists(['itemId' => $itemId, 'sjId' => $sjId, 'shopId' => $shopId]);
-            if ($existItem) {
-                continue;
-            }
-            ProductClass::add($data);
-        }
+        ProductClass::add($data);
     }
 
     //初始化花材