Browse Source

储值卡产品服务协议

gorden 3 months ago
parent
commit
ff2fc56752

+ 27 - 1
app/admin/controller/sys_manage/ProtocolController.php

@@ -9,6 +9,7 @@ use app\controller\Curd;
 use app\model\Adv;
 use app\model\Article;
 use app\model\Content;
+use app\model\SysCategory;
 use support\exception\BusinessException;
 use support\Request;
 use support\Response;
@@ -79,12 +80,37 @@ class ProtocolController extends Curd
         return $model;
     }
 
+    /**
+     * @Desc 查询服务协议列表
+     * @Author Gorden
+     * @Date 2024/12/2 13:51
+     *
+     * @param Request $request
+     * @return Response
+     */
+    public function selectList(Request $request)
+    {
+        $category_type = $request->get('category_type');
+        $categoryIds = [];
+        if (!empty($category_type)) {
+            $categoryIds = SysCategory::where('category_type', $category_type)->pluck('category_id')->toArray();
+        }
+
+        $protocol = Content::whereIn('join_content_category_id',$categoryIds)
+            ->where('content_status','ACTIVED')
+            ->select('content_id','content_title')
+            ->get()
+            ->toArray();
+
+        return json_success('success',$protocol);
+    }
+
     public function insert(Request $request): Response
     {
         if ($this->validate && !$this->validateClass->scene('add')->check($request->post())) {
             return json_fail($this->validateClass->getError());
         }
-        if (Content::where('join_content_category_id',$request->post('join_content_category_id'))->exists()){
+        if (Content::where('join_content_category_id', $request->post('join_content_category_id'))->exists()) {
             return json_fail("当前分类已存在,请不要重复添加");
         }
 

+ 30 - 63
app/admin/service/goods/CardService.php

@@ -826,14 +826,14 @@ class CardService
                 }
                 $data['goods_detail_slider_json'] = rtrim($slider, ',');
             }
-            $extendJson = [];
+            $goodsAttributeJson = [];
             if (!empty($data['goods_attribute_json'])) {
-                $extendJson = json_decode($data['goods_attribute_json'], true);
-                $data['goods_attribute_json'] = $extendJson;
+                $goodsAttributeJson = json_decode($data['goods_attribute_json'], true);
+                $data['goods_attribute_json'] = $goodsAttributeJson;
             }
-            if (!empty($extendJson['card_main_id'])) {
-                $data['card_main_id'] = $extendJson['card_main_id'];
-                $cardMain = CardMain::with('category')->where('card_main_id', $extendJson['card_main_id'])->first();
+            if (!empty($goodsAttributeJson['card_main_id'])) {
+                $data['card_main_id'] = $goodsAttributeJson['card_main_id'];
+                $cardMain = CardMain::with('category')->where('card_main_id', $goodsAttributeJson['card_main_id'])->first();
                 if (!empty($cardMain) && !empty($cardMain->card_main_valid_mode)) {
                     $validTerm = '';
                     if ($cardMain->card_main_valid_mode == 'LONG') {
@@ -855,6 +855,8 @@ class CardService
                     ];
                 }
             }
+            $data['protocol'] = $goodsAttributeJson['protocol'] ?? '';
+            $data['protocol_name'] = $goodsAttributeJson['protocol_name'] ?? '';
 
             $data['express_json'] = [];
             if (!empty($data['goods_express_json'])) {
@@ -1271,82 +1273,37 @@ class CardService
 
             $model->goods_json = '[]';
 
+            $attributeJson = [];
+            if (!empty($model->goods_attribute_json)) {
+                $attributeJson = json_decode($model->goods_attribute_json, true);
+            }
             if (!empty($params['goods_premisses'])) {
-                $attributeJson = [];
-                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
-                    $attributeJson = json_decode($model->goods_attribute_json, true);
-                } elseif (empty($model->goods_attribute_json)) {
-                    $attributeJson = [];
-                }
                 $attributeJson['premisses'] = $params['goods_premisses'];
-                $model->goods_attribute_json = json_encode($attributeJson);
-            }
-
-            if (!empty($params['goods_theme_color']) && !empty($params['goods_theme_icon'])) {
-                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
-                    $attributeJson = json_decode($model->goods_attribute_json, true);
-                } elseif (empty($model->goods_attribute_json)) {
-                    $attributeJson = [];
-                }
-                $attributeJson['bg'] = $params['goods_theme_color'];
-                $attributeJson['icon'] = str_replace(getenv('STORAGE_DOMAIN'), '', $params['goods_theme_icon']);
-                $model->goods_attribute_json = json_encode($attributeJson);
             }
             if (!empty($params['address'])) {
-                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
-                    $attributeJson = json_decode($model->goods_attribute_json, true);
-                } elseif (empty($model->goods_attribute_json)) {
-                    $attributeJson = [];
-                }
                 $attributeJson['address'] = $params['address'];
-                $model->goods_attribute_json = json_encode($attributeJson);
             }
             if (!empty($params['position'])) {
-                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
-                    $attributeJson = json_decode($model->goods_attribute_json, true);
-                } elseif (empty($model->goods_attribute_json)) {
-                    $attributeJson = [];
-                }
                 $attributeJson['position'] = $params['position'];
-                $model->goods_attribute_json = json_encode($attributeJson);
             }
             if (isset($params['goods_service_premises'])) {
-                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
-                    $attributeJson = json_decode($model->goods_attribute_json, true);
-                } elseif (empty($model->goods_attribute_json)) {
-                    $attributeJson = [];
-                }
                 $attributeJson['service_premises_id'] = $params['goods_service_premises'];
-                $model->goods_attribute_json = json_encode($attributeJson);
             }
             if (isset($params['min_count'])) {
-                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
-                    $attributeJson = json_decode($model->goods_attribute_json, true);
-                } elseif (empty($model->goods_attribute_json)) {
-                    $attributeJson = [];
-                }
                 $attributeJson['min-count'] = $params['min_count'];
-                $model->goods_attribute_json = json_encode($attributeJson);
-            }
-            if (isset($params['teachers'])) {
-                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
-                    $attributeJson = json_decode($model->goods_attribute_json, true);
-                } elseif (empty($model->goods_attribute_json)) {
-                    $attributeJson = [];
-                }
-                $attributeJson['teachers'] = $params['teachers'];
-                $model->goods_attribute_json = json_encode($attributeJson);
             }
             if (!empty($params['card_main_id'])) {
-                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
-                    $attributeJson = json_decode($model->goods_attribute_json, true);
-                } elseif (empty($model->goods_attribute_json)) {
-                    $attributeJson = [];
-                }
                 $attributeJson['payment'] = 'Wx+Ali';
                 $attributeJson['card_main_id'] = $params['card_main_id'];
-                $model->goods_attribute_json = json_encode($attributeJson, JSON_UNESCAPED_UNICODE);
             }
+            if (!empty($params['protocol'])){
+                $attributeJson['protocol'] = $params['protocol'];
+            }
+            if (!empty($params['protocol_name'])){
+                $attributeJson['protocol_name'] = $params['protocol_name'];
+            }
+            $model->goods_attribute_json = json_encode($attributeJson);
+
             if ($model->save()) {
                 return $model->goods_id;
             }
@@ -1598,6 +1555,16 @@ class CardService
             if (!empty($params['card_main_id'])) {
                 $attributeJson['card_main_id'] = $params['card_main_id'];
             }
+            if (!empty($params['protocol'])){
+                $attributeJson['protocol'] = $params['protocol'];
+            }else{
+                unset($attributeJson['protocol']);
+            }
+            if (!empty($params['protocol_name'])){
+                $attributeJson['protocol_name'] = $params['protocol_name'];
+            }else{
+                unset($attributeJson['protocol_name']);
+            }
 
             $data['goods_attribute_json'] = json_encode($attributeJson, JSON_UNESCAPED_UNICODE);
 

+ 8 - 2
app/admin/service/sys_manage/CategoryService.php

@@ -88,8 +88,14 @@ class CategoryService
             // 不是顶级分类,有path
             if ($params['category_super_id'] != 0) {
                 // 回填path
-                $categoryPath = self::getCategoryPath($params['category_super_id']);
-                SysCategory::where('category_id', $categoryId)->update(['category_super_path' => $categoryPath . '#' . $params['category_super_id'] . '#']);
+                $parentSuperPath = self::getCategoryPath($params['category_super_id']);
+                $superPath = '#' . $params['category_super_id'] . '#';
+                if ($parentSuperPath == $superPath) {
+                    $categorySuperPath = $superPath;
+                } else {
+                    $categorySuperPath = $parentSuperPath . $superPath;
+                }
+                SysCategory::where('category_id', $categoryId)->update(['category_super_path' => $categorySuperPath]);
             }
             // 提交事务
             DB::commit();

+ 1 - 0
route/admin.php

@@ -384,6 +384,7 @@ Route::group('/admin', function () {
         ]);
         Route::group('/protocol', function () {
             Route::get('/list', [\app\admin\controller\sys_manage\ProtocolController::class, 'select']);
+            Route::get('/selectList', [\app\admin\controller\sys_manage\ProtocolController::class, 'selectList']);
             Route::post('/add', [\app\admin\controller\sys_manage\ProtocolController::class, 'insert']);
             Route::post('/update', [\app\admin\controller\sys_manage\ProtocolController::class, 'update']);
             Route::delete('/delete', [\app\admin\controller\sys_manage\ProtocolController::class, 'delete']);