shish 2 år sedan
förälder
incheckning
72284fc7c1

+ 85 - 0
app-pt/controllers/PtCpItemController.php

@@ -0,0 +1,85 @@
+<?php
+
+namespace pt\controllers;
+
+use biz\cp\classes\PtCpClass;
+use biz\cp\classes\PtCpItemClass;
+use biz\item\classes\PtItemClass;
+use  Yii;
+use common\components\util;
+
+class PtCpItemController extends BaseController
+{
+
+    //多个花材设置产品 ssh 20240120
+    public function actionSetCp()
+    {
+        $post = Yii::$app->request->post();
+        $str = $post['ids'] ?? '';
+        $cpId = $post['cpId'] ?? 0;
+        $ids = json_decode($str, true);
+        if (empty($ids)) {
+            util::fail('请选择花材');
+        }
+        $cp = PtCpClass::getById($cpId, true);
+        if (empty($cp)) {
+            util::fail('没有找到产品');
+        }
+        $cpAuth = $cp->auth ?? 0;
+        $cpPy = $cp->py ?? '';
+        $cpName = $cp->name ?? '';
+        $itemList = PtItemClass::getByIds($ids);
+        if (empty($itemList)) {
+            util::fail('没有花材');
+        }
+        foreach ($itemList as $item) {
+            $itemId = $item['id'] ?? 0;
+            $delStatus = $item['delStatus'] ?? 0;
+            $name = $item['name'] ?? '';
+            $py = $item['py'] ?? '';
+            $itemAuth = $item['auth'] ?? 0;
+            if ($delStatus == 1) {
+                util::fail("【{$name}】已删除");
+            }
+            $has = PtCpItemClass::getByCondition(['cpId' => $cpId, 'itemId' => $itemId], true);
+            if (empty($has)) {
+                $auth = 0;
+                if ($itemAuth == 1 && $cpAuth == 1) {
+                    $auth = 1;
+                }
+                $relate = ['itemId' => $itemId, 'cpId' => $cpId, 'name' => $name, 'py' => $py, 'auth' => $auth, 'cpName' => $cpName, 'cpPy' => $cpPy];
+                PtCpItemClass::add($relate);
+            }
+        }
+        util::complete('设置成功');
+    }
+
+    //删除花材和产品的对应关系 ssh 20240120
+    public function actionDelCp()
+    {
+        $post = Yii::$app->request->post();
+        $str = $post['ids'] ?? '';
+        $cpId = $post['cpId'] ?? 0;
+        $ids = json_decode($str, true);
+        if (empty($ids)) {
+            util::fail('请选择花材');
+        }
+        $cp = PtCpClass::getById($cpId, true);
+        if (empty($cp)) {
+            util::fail('没有找到产品');
+        }
+        $itemList = PtItemClass::getByIds($ids);
+        if (empty($itemList)) {
+            util::fail('没有花材');
+        }
+        foreach ($itemList as $item) {
+            $itemId = $item['id'] ?? 0;
+            $has = PtCpItemClass::getByCondition(['cpId' => $cpId, 'itemId' => $itemId], true);
+            if (!empty($has)) {
+                $has->delete();
+            }
+        }
+        util::complete('删除成功');
+    }
+
+}

+ 12 - 0
app-pt/controllers/PtItemController.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace pt\controllers;
+
+use common\components\stringUtil;
+use  Yii;
+use common\components\util;
+
+class PtItemController extends BaseController
+{
+
+}

+ 18 - 3
biz/item/classes/PtItemClass.php

@@ -3,6 +3,7 @@
 namespace biz\item\classes;
 
 use biz\base\classes\BaseClass;
+use biz\cp\classes\PtCpItemClass;
 use bizGhs\product\classes\ProductClass;
 use common\components\imgUtil;
 use bizGhs\item\classes\ItemClass;
@@ -22,15 +23,26 @@ class PtItemClass extends BaseClass
         $sjItems = [];
         if ($showSelect && $mainId) {
             $sjItemIds = ProductClass::getAllByCondition($where = ['mainId' => $mainId], null, "*");
-
             foreach ($sjItemIds as $item) {
                 $sjItems[$item['itemId']] = ['ghsItemId' => $item['id'], 'delStatus' => $item['delStatus']];
             }
         }
         $classIds = array_column($list, "classId");
         $classNameMap = PtItemClassClass::getNameMap($classIds);
-
-        if ($list) {
+        if (!empty($list)) {
+            //产品相关
+            $ids = array_column($list, 'id');
+            $cpInfoList = [];
+            if (!empty($ids)) {
+                $relate = PtCpItemClass::getAllByCondition(['itemId' => ['in', $ids]], null, '*');
+                if (!empty($relate)) {
+                    foreach ($relate as $it) {
+                        $ptItemId = $it['itemId'] ?? 0;
+                        $cpName = $it['cpName'] ?? '';
+                        $cpInfoList[$ptItemId][] = ['name' => $cpName];
+                    }
+                }
+            }
             foreach ($list as $k => $v) {
                 $shortCover = $v['cover'] ?? '';
                 $cover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
@@ -46,6 +58,9 @@ class PtItemClass extends BaseClass
                     $list[$k]['is_delete'] = isset($sjItems[$v['id']]['delStatus']) ? ($sjItems[$v['id']]['delStatus'] == 1 ? 1 : 0) : 0;
                     $list[$k]['ghs_item_id'] = $sjItems[$v['id']]['ghsItemId'] ?? 0;
                 }
+                $id = $v['id'] ?? 0;
+                $cpList = $cpInfoList[$id] ?? [];
+                $list[$k]['cpList'] = $cpList;
             }
         }
         $data['list'] = $list;