Pārlūkot izejas kodu

1. 公用图文删除时,会清除掉上传到oss里的图片

2. common\base\classes\BaseClass.php 与 common\base\models\Base.php 注释优化

其中 BaseClass.php 做了以下重构:
1. 在 BaseClass 中创建一个名为 getModel() 的 protected static 方法。
2. 为 getModel() 方法添加 @return Base 的 PHPDoc 注释,明确其返回类型。
3. 将所有方法中重复的 Yii::createObject(...) 调用替换为 self::getModel()。
4. 移除所有方法中多余的 /** @var Base $model */ 注释。
shizhongqi 1 gadu atpakaļ
vecāks
revīzija
3e2214d4c7

+ 31 - 3
app-hd/controllers/PicTextController.php

@@ -82,15 +82,43 @@ class PicTextController extends BaseController
     public function actionDel()
     {
         $id = intval(Yii::$app->request->post('id'));
-        $picText = PicTextClass::getById($id, true);
+        $picText = PicTextClass::getById($id, true, 'id,mainId,content');
         if (empty($picText)) {
             util::fail('图文id不对');
         }
         if ($picText->mainId != $this->mainId) {
             util::fail('没有权限');
         }
-        PicTextClass::updateById($id, ['delStatus'=>1]);
-        util::complete('成功删除');
+        $re = PicTextClass::deleteById($id);
+        if ($re) {
+            // 删除 oss 图片
+            $content = $picText->content;
+            if (!empty($content)) {
+                $contentArr = json_decode($content, true);
+                $filePaths = [];
+                if (is_array($contentArr)) {
+                    foreach ($contentArr as $item) {
+                        if (isset($item['type']) && in_array($item['type'], [1, 2]) && !empty($item['content'])) {
+                            if ($item['type'] == 1) {
+                                $filePaths[] = $item['content'];
+                            } elseif ($item['type'] == 2 && is_array($item['content'])) {
+                                $filePaths = array_merge($filePaths, $item['content']);
+                            }
+                        }
+                    }
+                }
+
+                if (!empty($filePaths)) {
+                    try {
+                        \common\components\oss::deleteObjects($filePaths);
+                    } catch (\Exception $e) {
+                        util::fail('删除OSS文件失败:' . $e->getMessage());
+                    }
+                }
+            }
+            util::complete('成功删除');
+        }
+        util::fail('删除失败');
     }
 
     public function actionDetail()

+ 1 - 1
app-hd/models/goods/CreateDescForm.php

@@ -19,7 +19,7 @@ class CreateDescForm extends BaseForm
     public function rules()
     {
         return [
-            [['title', 'goodsId'], 'required'],
+            [['goodsId'], 'required'],
             ['title', 'string', 'max' => 60],
             [['id', 'goodsId', 'mainId'], 'integer'],
             ['goodsId', 'validateGoodsId'],

+ 34 - 44
common/base/classes/BaseClass.php

@@ -7,14 +7,20 @@ use \common\base\models\Base;
 
 class BaseClass
 {
-
     public static $baseFile;
 
+    /**
+     * @return Base
+     */
+    protected static function getModel()
+    {
+        return Yii::createObject(['class' => static::$baseFile]);
+    }
+
     //查询全部 ssh 2019.11.27
     public static function getAllList($select, $where, $order = '', $with = '')
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         $return = $model->getAllList($select, $where, $order, $with);
         return $return;
     }
@@ -22,12 +28,11 @@ class BaseClass
     //分页查询 ssh 2019.9.21
     public static function getList($select, $where, $order = '', $with = '')
     {
-        /** @var Base $model */
         $get = Yii::$app->request->get();
         $page = isset($get['page']) ? $get['page'] : 1;
         Yii::$app->params['page'] = $page;
         $pageSize = isset($get['pageSize']) && !empty($get['pageSize']) ? $get['pageSize'] : Yii::$app->params['pageSize'];
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         $return = $model->getList($select, $where, $page, $pageSize, $order, $with);
         return $return;
     }
@@ -35,16 +40,14 @@ class BaseClass
     //查询指定条数 ssh 2019.11.30
     public static function getLimitList($select, $where, $limit = 10, $order = '', $with = '')
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         $return = $model->getLimitList($select, $where, $limit, $order, $with);
         return $return;
     }
 
     public static function add($data, $returnObject = false)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->add($data, $returnObject);
     }
 
@@ -53,18 +56,20 @@ class BaseClass
      */
     public static function batchAdd($data)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         $model->batchAdd($data);
     }
 
     /**
      * 根据主键ID删除一条记录
+     * @param $id
+     * @return false|int the number of rows deleted, or `false` if the deletion is unsuccessful for some reason.
+     * @throws \Throwable
+     * @throws \yii\db\StaleObjectException
      */
     public static function deleteById($id)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->deleteById($id);
     }
 
@@ -73,8 +78,7 @@ class BaseClass
      */
     public static function deleteByCondition($condition)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         $count = $model->deleteByCondition($condition);
         return $count;
     }
@@ -82,8 +86,7 @@ class BaseClass
     //根据id批量删 ssh 2019.12.7
     public static function deleteByIds($ids)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->deleteByIds($ids);
     }
 
@@ -92,16 +95,14 @@ class BaseClass
      */
     public static function updateById($id, $data)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->updateById($id, $data);
     }
 
     //根据多个主键id更新 ssh 2019.9.3
     public static function updateByIds($ids, $data)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->updateByIds($ids, $data);
     }
 
@@ -110,8 +111,7 @@ class BaseClass
      */
     public static function updateByCondition($condition, $data)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         $count = $model->updateByCondition($condition, $data);
         return $count;
     }
@@ -121,16 +121,14 @@ class BaseClass
      */
     public static function getById($id, $returnObject = false, $field = '*')
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->getById($id, $returnObject, $field);
     }
 
     //随机取一个 ssh 2020.2.10
     public static function getOne($returnObject = false, $order = false, $field = '*')
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->getOne($returnObject, $order, $field);
     }
 
@@ -139,16 +137,14 @@ class BaseClass
      */
     public static function getByCondition($condition, $returnObject = false, $order = false, $field = '*')
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->getByCondition($condition, $returnObject, $order, $field);
     }
 
     //是否存在  ssh 2019.8.30
     public static function exists($condition)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->exists($condition);
     }
 
@@ -157,8 +153,7 @@ class BaseClass
      */
     public static function getAllByCondition($condition, $order = null, $field = '*', $indexBy = null, $returnObject = false)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->getAllByCondition($condition, $order, $field, $indexBy, $returnObject);
     }
 
@@ -167,8 +162,7 @@ class BaseClass
      */
     public static function getByIds($ids, $order = null, $indexBy = null, $field = '*')
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->getByIds($ids, $order, $indexBy, $field);
     }
 
@@ -177,33 +171,29 @@ class BaseClass
      */
     public static function getCount($condition)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->getCount($condition);
     }
 
     //计数器+1-1 shizq 2019-12-05
     public static function counters($counters, $condition, $params = [])
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->counters($counters, $condition, $params);
     }
 
     //根据主键获取被销的信息 ssh 2021.5.18
     public static function getLockById($id, $field = '*')
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->getLockById($id, $field);
     }
 
     //求和
     public static function sum($condition, $field)
     {
-        /** @var Base $model */
-        $model = Yii::createObject(['class' => static::$baseFile]);
+        $model = self::getModel();
         return $model->sum($condition, $field);
     }
 
-}
+}

+ 14 - 4
common/base/models/Base.php

@@ -8,6 +8,9 @@ use yii\db\ActiveRecord;
 class Base extends ActiveRecord
 {
 
+    /**
+     * @return static
+     */
     public function getModel()
     {
         $self = get_called_class();
@@ -67,19 +70,26 @@ class Base extends ActiveRecord
 
     /**
      * 根据主键ID删除一条记录
+     * @param $id
+     * @return int|false the number of rows deleted, or `false` if the deletion is unsuccessful for some reason.
+     * @throws \Throwable
+     * @throws \yii\db\StaleObjectException
      */
     public function deleteById($id)
     {
-        //shizhongqi 2019-12-07
         $model = $this->getModel();
         return $model::findOne($id)->delete();
     }
 
-    //根据id批量删 ssh 2019.12.7
+    /**
+     * 根据id批量删 ssh 2019.12.7
+     * @param $ids
+     * @return int the number of rows deleted
+     */
     public function deleteByIds($ids)
     {
         $model = $this->getModel();
-        $model::deleteAll(['id' => $ids]);
+        return $model::deleteAll(['id' => $ids]);
     }
 
     /**
@@ -364,4 +374,4 @@ class Base extends ActiveRecord
         return $this->conditionQuery($condition)->sum($field);
     }
 
-}
+}