Prechádzať zdrojové kódy

Merge branch 'master' of http://git.bjzxtw.org.cn:3000/zxt/public_producer

rkljw 1 mesiac pred
rodič
commit
ee90f9b5bf

+ 93 - 40
app/JsonRpc/PublicRpcService.php

@@ -31,6 +31,8 @@ use App\Model\Size;
 use function Hyperf\Support\retry;
 use Hyperf\Paginator\Paginator;
 use App\Model\User;
+use App\Model\Website;
+
 #[RpcService(name: "PublicRpcService", protocol: "jsonrpc-http", server: "jsonrpc-http")]
 class PublicRpcService implements PublicRpcServiceInterface
 {
@@ -672,8 +674,10 @@ class PublicRpcService implements PublicRpcServiceInterface
         $count = $template->count();
         // $countQuery = clone $template;
         $row = $template
-            ->leftJoin('template', 'template_class.id', '=', 'template.template_class_id')
-            ->select('template_class.*', DB::raw('COUNT(template.id) as template_count'))
+            ->leftJoin('template', function ($join) {
+                $join->on('template_class.class_id', '=', 'template.template_class_id');
+            })
+            ->select('template_class.*', DB::raw('COUNT(template.template_class_id) as template_count'))
             ->groupBy('template_class.id')
             ->orderBy('template_class.id', 'desc')
             ->offset(($data['page'] - 1) * $data['pageSize'])
@@ -765,25 +769,35 @@ class PublicRpcService implements PublicRpcServiceInterface
         $where = [
             'id' => $data['id'],
         ];
-        $template = TemplateClass::where($where)->first();
-        if (empty($template)) {
+        $template_class = TemplateClass::where($where)->first();
+        if (empty($template_class)) {
             return Result::error("未查询到风格", 0);
         }
-        if($template->type == 1){
+        if($template_class->type == 1){
             return Result::error("默认风格不能删除", 0);
         }
-        
-        try{
-            // 默认风格   1
-            $template = Template::where('template_class_id',$data['id'])->update(['template_class_id'=>1]);
-            if(empty($template)){
-                Db::rollBack();
-                return Result::error("删除失败", 0);
+        $template = Template::where('template_class_id',$template_class['class_id'])->get();
+        if(!empty($template->all())){
+            try{
+                // 默认风格   1
+                Db::beginTransaction();
+                $template = Template::where('template_class_id',$template['class_id'])->update(['template_class_id'=>1]);
+    
+                if(empty($template)){
+                    Db::rollBack();
+                    return Result::error("删除失败", 0);
+                }
+                $result = TemplateClass::where($where)->delete();
+            }catch (\Exception $e){
+                return Result::error("删除失败".$e->getMessage(), 0);
             }
-            $result = TemplateClass::where($where)->delete();
-        }catch (\Exception $e){
-            return Result::error("删除失败".$e->getMessage(), 0);
+        }else{
+            $result = TemplateClass::where('id',$data['id'])->delete();
+        }
+        if(empty($result)){
+            return Result::error("删除失败", 0);
         }
+
         return Result::success($result);
     }
     /**
@@ -793,7 +807,11 @@ class PublicRpcService implements PublicRpcServiceInterface
      */
     public function getTemplateClass(array $data): array
     {
-        $result = TemplateClass::where('name','like','%'.$data['template_name'].'%')->get();
+        $where = [];
+        if (!empty($data['template_name'])) {
+            $where['name'] = $data['template_name'];
+        }
+        $result = TemplateClass::where($where)->get();
         if(empty($result)){
             return Result::error("暂无风格", 0);
         }
@@ -871,7 +889,14 @@ class PublicRpcService implements PublicRpcServiceInterface
     {
         $rector = Sector::where('template_id', $data['id'])->first();
         if (!empty($rector)) {
-            return Result::error("此皮肤已被绑定,不可删除", 0);
+            return Result::error("此皮肤已被绑定通栏,不可删除", 0);
+        }
+        $template = WebsiteTemplateInfo::where('template_id', $data['id'])->first();
+        if(empty($template)){
+            return Result::error("此皮肤已被绑定网站,不可删除", 0);
+        }
+        if($template->type == 1){
+            return Result::error("默认皮肤不能删除", 0);
         }
         $result = Template::where('id', $data['id'])->delete();
         var_dump($result, '-------------------delete');
@@ -1280,7 +1305,7 @@ class PublicRpcService implements PublicRpcServiceInterface
             $result = WebsiteTemplateInfo::insertGetId(['website_id' => $data['website_id'], 'page_type' => $page_type, 'user_id' => $data['user_id']]);
                 
         }else{
-            if($website_template_info['action_id'] == 2){
+            if($website_template_info['status'] == 2){
                 return Result::error('网站已应用,不可再次修改!');
             }
             $result = WebsiteTemplateInfo::where('website_id', $data['website_id'])->update(['page_type' => $page_type],['action_id' => 1,'user_id' => $data['user_id']]);
@@ -1323,6 +1348,8 @@ class PublicRpcService implements PublicRpcServiceInterface
                 $escapedKeyword = addcslashes($data['keyword'], '%_'); // 转义通配符
                 $where[] = [DB::raw("JSON_EXTRACT(template_keyword, '$[*]') LIKE ?"), "%$escapedKeyword%"];
             }
+        }else{
+            $query = Template::where($where);
         }
         $template_id = WebsiteTemplateInfo::where('website_id', $data['website_id'])->first(['template_id', 'page_type']);
         // return Result::success($template_id);
@@ -1336,16 +1363,11 @@ class PublicRpcService implements PublicRpcServiceInterface
         }
         // 确保 $template_page 为有效数据,避免 SQL 注入风险,这里使用参数绑定
         $template_page_str = json_encode($template_page);
-        if (isset($query)) {
-            $result['template'] = $query->where($where)
-                ->whereRaw("JSON_CONTAINS(template.page_type, ?)", [$template_page_str])
-                ->paginate($data['page_size'], ['*'], 'page', $data['page']);
-        } else {
-            $result['template'] = Template::where($where)
-                ->whereRaw("JSON_CONTAINS(template.page_type, ?)", [$template_page_str])
-                ->paginate($data['page_size'], ['*'], 'page', $data['page']);
-        }
-        if (empty($result['template']['data'])) {
+        $result['template'] = $query->where($where)
+            ->whereRaw("JSON_CONTAINS(template.page_type, ?)", [$template_page_str])
+            ->orderBy('updated_at','desc')
+            ->paginate($data['page_size'], ['*'], 'page', $data['page']);
+        if (empty($result['template'])) {
             $result['template'] = Template::orderBy('updated_at','desc')
                 ->paginate($data['page_size'], ['*'], 'page', $data['page']);
         }
@@ -1391,6 +1413,7 @@ class PublicRpcService implements PublicRpcServiceInterface
      */
     public function saveWebsiteTemplate(array $data): array
     {
+        // return Result::success($data);
         $website_template_info = WebsiteTemplateInfo::where('website_id', $data['website_id'])->first();
         if(empty($website_template_info)){
             return Result::error('请先填写网站基础信息!');
@@ -1403,20 +1426,50 @@ class PublicRpcService implements PublicRpcServiceInterface
             return Result::error('请完成之前的步骤!');
         }
         $template_info = WebsiteTemplate::where('website_id', $data['website_id'])->first();
-        var_dump($data['template_data']);
-        if(empty($template_info)){
-            $template = WebsiteTemplate::insertGetId([
-                'website_id' => $data['website_id'],
-                'template_data' => $data['template_data']
-            ]);
-        }else{
-            $template = WebsiteTemplate::where('website_id', $data['website_id'])->update(['template_data' => $data['template_data']]);
+        // var_dump($data['template_data']);
+        try{
+            Db::beginTransaction();
+            if(empty($template_info)){
+                $template = WebsiteTemplate::insertGetId([
+                    'website_id' => $data['website_id'],
+                    'template_data' => $data['template_data'],
+                    'user_id' => $data['user_id'],
+                    'canvas_data' => $data['canvas_data'],
+                ]);
+            }else{
+                $template = WebsiteTemplate::where('website_id', $data['website_id'])->update(['template_data' => $data['template_data'],'user_id' => $data['user_id'],'canvas_data' => $data['canvas_data']]);
+            }
+            if(empty($template)){
+                Db::rollback();
+                return Result::error('保存失败!');
+            }else{
+                $tempalte_info = WebsiteTemplateInfo::where('website_id', $data['website_id'])->update(['status' => 1]);
+                if(empty($tempalte_info)){
+                    Db::rollback();
+                    return Result::error('保存失败!');
+                }
+                Db::commit();
+            }
+        }catch (\Exception $e){
+            return Result::error('模版数据格式错误!');
+        }
+        return Result::success($template);
+    }
+    /**
+     * 自助建站---流程---6.返显保存的模版
+     * @param array $data
+     * @return array
+     */
+    public function getWebsiteTemplate(array $data): array
+    {
+        $web = Website::where('id', $data['website_id'])->first();
+        if(empty($web)){
+            return Result::error('未查询到网站信息!');
         }
+        $template = WebsiteTemplate::where('website_id', $data['website_id'])->first();
         if(empty($template)){
-            return Result::error('保存失败!');
-        }else{
-            return Result::success($template);
+            return Result::error('未查询到模版!');
         }
+        return Result::success($template);
     }
-    
 }

+ 1 - 0
app/JsonRpc/PublicRpcServiceInterface.php

@@ -182,4 +182,5 @@ interface PublicRpcServiceInterface
     public function chooseWebsiteTemplate(array $data): array;
     public function saveWebsiteTemplate(array $data): array;
     public function getAllTemplate(array $data): array;
+    public function getWebsiteTemplate(array $data): array;
 }