|
|
@@ -9,6 +9,8 @@ use biz\item\classes\UnitClass;
|
|
|
use biz\shop\services\ShopService;
|
|
|
use biz\wx\classes\WxMessageClass;
|
|
|
use bizGhs\base\classes\BaseClass;
|
|
|
+use bizGhs\cp\classes\CpClass;
|
|
|
+use bizGhs\cp\classes\CpItemClass;
|
|
|
use bizGhs\custom\classes\CustomClass;
|
|
|
use bizGhs\item\classes\CostChangeClass;
|
|
|
use bizGhs\item\classes\ItemClass;
|
|
|
@@ -1603,6 +1605,53 @@ class ProductClass extends BaseClass
|
|
|
CostChangeClass::addData($changeData);
|
|
|
}
|
|
|
|
|
|
+ if (isset($data['cpInfo']) && !empty($data['cpInfo'])) {
|
|
|
+
|
|
|
+ $dbHas = CpItemClass::getAllByCondition(['productId' => $id], null, '*', 'cpId', true);
|
|
|
+
|
|
|
+ $cpIds = array_column($data['cpInfo'], 'cpId');
|
|
|
+ $cpInfoList = CpClass::getByIds($cpIds, null, 'id');
|
|
|
+ foreach ($data['cpInfo'] as $cpKey => $cpVal) {
|
|
|
+ $cpId = $cpVal['cpId'] ?? 0;
|
|
|
+ $hasCp = CpItemClass::getByCondition(['cpId' => $cpId, 'productId' => $id], true);
|
|
|
+ if (isset($cpInfoList[$cpId]) == false) {
|
|
|
+ util::fail('添加了无效产品');
|
|
|
+ }
|
|
|
+ $currentCp = $cpInfoList[$cpId];
|
|
|
+ if (isset($currentCp['mainId']) == false || $currentCp['mainId'] != $mainId) {
|
|
|
+ util::fail('不是你的产品哦');
|
|
|
+ }
|
|
|
+ if (isset($dbHas[$cpId]) == false) {
|
|
|
+ //数据库里有,但传过来的没有,则需要删除
|
|
|
+ CpItemClass::deleteByCondition(['cpId' => $cpId, 'productId' => $id]);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $cpName = $currentCp['name'] ?? '';
|
|
|
+ $cpPy = $currentCp['py'] ?? '';
|
|
|
+ $name = $update['name'] ?? '';
|
|
|
+ $py = stringUtil::py($name);
|
|
|
+ if (empty($hasCp)) {
|
|
|
+ $addCp = [
|
|
|
+ 'cpId' => $cpId,
|
|
|
+ 'productId' => $id,
|
|
|
+ 'name' => $name,
|
|
|
+ 'py' => $py,
|
|
|
+ 'cpName' => $cpName,
|
|
|
+ 'cpPy' => $cpPy,
|
|
|
+ 'mainId' => $mainId,
|
|
|
+ ];
|
|
|
+ CpItemClass::add($addCp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $upData['hasCpId'] = 1;
|
|
|
+ } else {
|
|
|
+ foreach ($data['cpInfo'] as $cpKey => $cpVal) {
|
|
|
+ $cpId = $cpVal['cpId'] ?? 0;
|
|
|
+ CpItemClass::deleteByCondition(['cpId' => $cpId, 'productId' => $id]);
|
|
|
+ }
|
|
|
+ $upData['hasCpId'] = 0;
|
|
|
+ }
|
|
|
+
|
|
|
self::updateById($id, $upData);
|
|
|
//不影响其它直营店花材的上下架
|
|
|
unset($upData['status']);
|