Răsfoiți Sursa

产品优化

shish 2 ani în urmă
părinte
comite
802251fcfb

+ 11 - 1
app-ghs/controllers/CpItemController.php

@@ -69,6 +69,7 @@ class CpItemController extends BaseController
         if ($cp->mainId != $this->mainId) {
             util::fail('不是你的产品');
         }
+        $ptCpId = $cp->ptCpId ?? 0;
         $product = ProductClass::getById($productId, true);
         if (empty($product)) {
             util::fail('没有找到花材');
@@ -76,13 +77,22 @@ class CpItemController extends BaseController
         if ($product->mainId != $this->mainId) {
             util::fail('不是你的花材');
         }
+        $ptItemId = $product->itemId ?? 0;
         $relate = CpItemClass::getByCondition(['cpId' => $cpId, 'productId' => $productId], true);
         if (!empty($relate)) {
             util::fail('已经添加了');
         }
         $productName = $product->name ?? '';
         $py = stringUtil::py($productName);
-        $data = ['cpId' => $cpId, 'productId' => $productId, 'name' => $productName, 'py' => $py, 'mainId' => $this->mainId];
+        $data = [
+            'cpId' => $cpId,
+            'ptCpId' => $ptCpId,
+            'ptItemId' => $ptItemId,
+            'productId' => $productId,
+            'name' => $productName,
+            'py' => $py,
+            'mainId' => $this->mainId
+        ];
         $respond = CpItemClass::add($data, true);
         if (empty($respond)) {
             util::fail('添加失败');

+ 3 - 0
biz-ghs/item/classes/ItemClass.php

@@ -244,8 +244,11 @@ class ItemClass extends BaseClass
                                 $current = $allMyItem[$ptItemId];
                                 $productId = $current->id ?? 0;
                                 $customCpId = $customCp->id ?? 0;
+                                $ptCpId = $customCp->ptCpId ?? 0;
                                 $addData = [
                                     'cpId' => $customCpId,
+                                    'ptCpId' => $ptCpId,
+                                    'ptItemId' => $ptItemId,
                                     'productId' => $productId,
                                     'name' => $ptItemName,
                                     'py' => $ptItemNamePy,

+ 7 - 0
biz-ghs/product/classes/ProductClass.php

@@ -1634,6 +1634,7 @@ class ProductClass extends BaseClass
                     util::fail('不是你的产品哦');
                 }
                 $cpName = $currentCp['name'] ?? '';
+                $ptCpId = $currentCp['ptCpId'] ?? 0;
                 $cpPy = $currentCp['py'] ?? '';
                 $name = $update['name'] ?? '';
                 $py = stringUtil::py($name);
@@ -1641,6 +1642,8 @@ class ProductClass extends BaseClass
                 if (empty($hasCp)) {
                     $addCp = [
                         'cpId' => $cpId,
+                        'ptCpId' => $ptCpId,
+                        'ptItemId' => $ptItemId,
                         'productId' => $id,
                         'name' => $name,
                         'py' => $py,
@@ -1712,6 +1715,7 @@ class ProductClass extends BaseClass
                 /***************产品模块*****************/
                 if (!empty($ptCpIds)) {
                     $chainProductId = $chainProduct->id ?? 0;
+                    $chainPtItemId = $chainProduct->itemId ?? 0;
                     $currentCpList = CpClass::getAllByCondition(['mainId' => $chainMainId, 'ptCpId' => ['in', $ptCpIds]], null, '*', 'ptCpId', true);
                     $hasPtCpIds = array_keys($currentCpList);
                     $diffIds = array_diff($ptCpIds, $hasPtCpIds);
@@ -1780,6 +1784,7 @@ class ProductClass extends BaseClass
                     }
                     foreach ($cpInfoList as $cpKey => $currentCp) {
                         $cpId = $currentCp['id'] ?? 0;
+                        $ptCpId = $currentCp['ptCpId'] ?? 0;
                         $cpName = $currentCp['name'] ?? '';
                         $cpPy = $currentCp['py'] ?? '';
                         $name = $params['name'] ?? '';
@@ -1788,7 +1793,9 @@ class ProductClass extends BaseClass
                         if (empty($hasCp)) {
                             $addCp = [
                                 'cpId' => $cpId,
+                                'ptCpId' => $ptCpId,
                                 'productId' => $chainProductId,
+                                'ptItemId' => $chainPtItemId,
                                 'name' => $name,
                                 'py' => $py,
                                 'cpName' => $cpName,

+ 91 - 2
biz/cp/serices/PtCpService.php

@@ -6,6 +6,15 @@ use biz\base\services\BaseService;
 use biz\cp\classes\PtCpClass;
 use biz\cp\classes\PtCpClassClass;
 use biz\cp\classes\PtCpItemClass;
+use biz\item\classes\PtItemClass;
+use biz\product\classes\ProductClass;
+use bizGhs\cp\classes\CpClass;
+use bizGhs\cp\classes\CpClassClass;
+use bizGhs\cp\classes\CpItemClass;
+use bizGhs\item\classes\ItemClassClass;
+use common\components\noticeUtil;
+use common\components\stringUtil;
+use common\components\util;
 
 class PtCpService extends BaseService
 {
@@ -17,14 +26,94 @@ class PtCpService extends BaseService
         $ptClassList = PtCpClassClass::getAllByCondition(['delStatus' => 0], null, '*');
         foreach ($ptClassList as $ptClass) {
             $ptClassId = $ptClass['id'] ?? 0;
+            $ptClassName = $ptClass['name'] ?? '';
+            $ptClassCover = $ptClass['cover'] ?? '';
+            $ptClassInTurn = $ptClass['inTurn'] ?? 100;
+            $ptClassIsDefault = $ptClass['isDefault'] ?? 0;
+            $addClass = ['cover' => $ptClassCover, 'mainId' => $mainId, 'name' => $ptClassName, 'inTurn' => $ptClassInTurn, 'isDefault' => $ptClassIsDefault];
+            $customClass = CpClassClass::add($addClass, true);
+            $customClassId = $customClass->id ?? 0;
             $ptCpList = PtCpClass::getAllByCondition(['classId' => $ptClassId, 'delStatus' => 0], null, '*');
             if (!empty($ptCpList)) {
                 foreach ($ptCpList as $ptCp) {
                     $ptCpId = $ptCp['id'] ?? 0;
-                    $ptCpItemList = PtCpItemClass::getAllByCondition(['cpId' => $ptCpId], null, '*');
+                    $ptCpName = $ptCp['name'] ?? '';
+                    $ptCpPy = $ptCp['py'] ?? '';
+                    $ptCpCover = $ptCp['cover'] ?? '';
+                    $ptCpAuth = $ptCp['auth'] ?? 0;
+                    $ptCpInTurn = $ptCp['inTurn'] ?? 100;
+                    $addCp = [
+                        'mainId' => $mainId,
+                        'name' => $ptCpName,
+                        'cover' => $ptCpCover,
+                        'classId' => $customClassId,
+                        'ptCpId' => $ptCpId,
+                        'py' => $ptCpPy,
+                        'auth' => $ptCpAuth,
+                        'inTurn' => $ptCpInTurn,
+                    ];
+                    $customCp = CpClass::add($addCp, true);
+                    $customCpId = $customCp->id ?? 0;
+                    $customCpName = $customCp->name ?? '';
+                    $customCpPy = $customCp->py ?? '';
+                    $ptCpItemList = PtCpItemClass::getAllByCondition(['cpId' => $ptCpId], null, '*', 'itemId');
                     if (!empty($ptCpItemList)) {
+                        $ids = array_keys($ptCpItemList);
+                        $ptProductList = PtItemClass::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id');
+                        $productList = ProductClass::getAllByCondition(['mainId' => $mainId, 'itemId' => ['in', $ids]], null, '*', 'itemId', true);
+                        $customDefaultClass = ItemClassClass::getByCondition(['mainId' => $mainId, 'isDefault' => 1], true);
+                        if (empty($customDefaultClass)) {
+                            noticeUtil::push("mainId:{$mainId} 初始化产品和花材信息,没有找到默认分类", '15280215347');
+                            util::stop('没有找到默认分类哈');
+                        }
+                        $customDefaultClassId = $customDefaultClass->id ?? 0;
                         foreach ($ptCpItemList as $ptCpItem) {
-
+                            $currentItemId = $ptCpItem['itemId'] ?? 0;
+                            $currentCpId = $ptCpItem['cpId'] ?? 0;
+                            $currentAuth = $ptCpItem['auth'] ?? 0;
+                            $currentInTurn = $ptCpItem['inTurn'] ?? 100;
+                            if (isset($productList[$currentItemId])) {
+                                $currentProduct = $productList[$currentItemId];
+                                if ($currentProduct->delStatus == 1) {
+                                    $currentProduct->delStatus = 0;
+                                }
+                                $currentProduct->hasCpId = 1;
+                                $currentProduct->save();
+                            } else {
+                                $currentPtProduct = $ptProductList[$currentItemId];
+                                if (empty($currentPtProduct)) {
+                                    noticeUtil::push("mainId:{$mainId} 初始化产品和花材信息,没有找到平台花材 ptItemId:{$currentItemId}", '15280215347');
+                                    util::stop('没有找到平台的花材信息哦');
+                                }
+                                $addItem = $currentPtProduct;
+                                unset($addItem['id']);
+                                $addItem['itemId'] = $currentItemId;
+                                $addItem['hasCpId'] = 1;
+                                $addItem['skPrice'] = 36;
+                                $addItem['price'] = 36;
+                                $addItem['hjPrice'] = 36;
+                                $addItem['mainId'] = $mainId;
+                                $addItem['py'] = stringUtil::py($addItem['name']);
+                                $addItem['classId'] = $customDefaultClassId;
+                                $currentProduct = ProductClass::add($addItem, true);
+                            }
+                            $productId = $currentProduct->id ?? 0;
+                            $productName = $currentProduct->name ?? '';
+                            $productPy = $currentProduct->py ?? '';
+                            $addCpItem = [
+                                'cpId' => $customCpId,
+                                'ptCpId' => $currentCpId,
+                                'productId' => $productId,
+                                'ptItemId' => $currentItemId,
+                                'name' => $productName,
+                                'py' => $productPy,
+                                'cpName' => $customCpName,
+                                'cpPy' => $customCpPy,
+                                'mainId' => $mainId,
+                                'auth' => $currentAuth,
+                                'inTurn' => $currentInTurn,
+                            ];
+                            CpItemClass::add($addCpItem, true);
                         }
                     }
                 }