Explorar el Código

通栏版式相关接口初步完成

15313670163 hace 4 días
padre
commit
3ada7dfdc8
Se han modificado 3 ficheros con 213 adiciones y 16 borrados
  1. 179 16
      app/JsonRpc/PublicRpcService.php
  2. 7 0
      app/JsonRpc/PublicRpcServiceInterface.php
  3. 27 0
      app/Model/LevelUser.php

+ 179 - 16
app/JsonRpc/PublicRpcService.php

@@ -1587,27 +1587,190 @@ class PublicRpcService implements PublicRpcServiceInterface
     public function getSectorPlace(array $data): array
     {
         if(isset($data['sector_num']) && !empty($data['sector_num'])){
-            $where['t.sector_num'] = $data['sector_num'];
-            $template = DB::table(DB::raw('(
-                SELECT 
-                    sp.*, 
-                    s.width, 
-                    s.height,
-                    ROW_NUMBER() OVER (PARTITION BY sp.type ORDER BY sp.id DESC) as rn
-                FROM sector_place sp
-                LEFT JOIN size s ON sp.size_id = s.id
-            ) as t'))
-            ->where('rn', 1)
+            $where['sector_place.component_num'] = $data['sector_num'];
+            $template =  SectorPlace::where('sector_place.type_id',1)
             ->where($where)
-            ->select('t.*')
+            ->leftJoin('size','sector_place.size_id','=','size.id')
+            ->select('sector_place.*','size.width','size.height')
             ->get();
         }
-        if(isset($data['type']) && !empty($data['type'])){
-            $template = SectorPlace::where('type', $data['type'])->get()->all();
-        }
         if(empty($template)){
-            return Result::error('未查询到通栏位置相关模版!');
+            return Result::error('未查询到相关通栏版式!');
         }
         return Result::success($template);
     }
+
+    /**
+     * 通栏版式管理-获取通栏版式列表
+     */ 
+    public function getSectorPlaceList(array $data): array
+    {
+        $where['sector_place.type_id'] = $data['type_id'];
+        if(isset($data['component_num']) && !empty($data['component_num'])){
+            $where['sector_place.component_num'] = $data['component_num'];
+        }
+        if(isset($data['sector_type']) && !empty($data['sector_type'])){
+            $where['sector_place.sector_type'] = $data['sector_type'];
+        }
+        if(isset($data['component_type']) && !empty($data['component_type'])){
+            $where['sector_place.component_type'] = $data['component_type'];
+        }
+        if(isset($data['name']) && !empty($data['name'])){
+            array_push($where,['sector_place.name', 'like', '%'.$data['name'].'%']);
+        }
+        if (isset($data['width']) && !empty($data['width']) && isset($data['height']) && !empty($data['height'])){
+            $size_id = Size::where('width','like','%' .$data['width'].'%')->where('height','like','%' .$data['height'].'%')->pluck('id');
+        } else if( isset($data['width']) && !empty($data['width'])){
+            $size_id = Size::where('width','like','%' .$data['width'].'%')->pluck('id');
+        }else if( isset($data['height']) && !empty($data['height'])){
+            $size_id = Size::where('height','like','%' .$data['height'].'%')->pluck('id');
+        }else{
+            $size_id = [];
+        }
+        $sector_place = SectorPlace::where($where)
+            ->when(!empty($size_id), function ($query) use ($size_id) {
+                $query->whereIn('sector_place.size_id', $size_id);
+            })
+            ->leftJoin('size','sector_place.size_id','=','size.id')
+            ->select('sector_place.*','size.width','size.height');
+        $result['count'] = $sector_place->count();
+        $result['row'] =$sector_place->paginate($data['page_size'], ['*'], 'page', $data['page']);
+        if(empty($result['count'])){
+            return Result::error("暂无相关版式数据!");
+        }
+        return Result::success($result);
+    }
+    /**
+     * 通栏版式管理-添加通栏版式
+     */ 
+    public function addSectorPlace(array $data): array
+    {
+        // 1:通栏;2:组件;
+        if($data['type_id'] == 1){
+            $sector_place = SectorPlace::where('sector_type', $data['type'])->first();
+            if(!empty($sector_place)){
+                return Result::error('通栏版式类别编号已存在!');
+            }
+            $data = [
+                'name' => $data['name'],
+                'component_num' => $data['component_num'], 
+                'size_id' => $data['size_id'],
+                'sort_id' => $data['sort_id'],
+                'sector_img' => $data['sector_img'],
+                'sector_type' => $data['type'],
+                'type_id' => $data['type_id'],
+            ];
+        }else{
+            $sector_type = SectorPlace::where('sector_type', $data['type'])->where('type_id',1)->first();
+            if(empty($sector_type)){
+                return Result::error('通栏版式类别不存在!');
+            }
+            $component_type = SectorPlace::where('component_type', $data['type'])->where('type_id',2)->first();
+            if(!empty($component_type)){
+                return Result::error('组件版式类别编号已存在!');
+            }
+            $data = [
+                'name' => $data['name'],
+                'component_num' => 0, 
+                'size_id' => $data['size_id'],
+                'sort_id' => $data['sort_id'],
+                'sector_img' => $data['sector_img'],
+                'component_type' => $data['type'],
+                'type_id' => $data['type_id'],
+            ];
+        }
+        
+        $result = SectorPlace::insertGetId($data);
+        if(empty($result)){
+            return Result::error('添加失败!');
+        }
+        return Result::success('添加成功!',$result);
+    }
+    /**
+     * 通栏版式管理-修改通栏版式
+     */ 
+    public function upSectorPlace(array $data): array
+    {
+       // 1:通栏;2:组件;
+        if($data['type_id'] == 1){
+            $sector_place = SectorPlace::where('sector_type', $data['type'])->first();
+            if(!empty($sector_place)){
+                return Result::error('通栏版式类别编号已存在!');
+            }
+            $data = [
+                'id' => $data['id'],
+                'name' => $data['name'],
+                'component_num' => $data['component_num'], 
+                'size_id' => $data['size_id'],
+                'sort_id' => $data['sort_id'],
+                'sector_img' => $data['sector_img'],
+                'sector_type' => $data['type'],
+                'type_id' => $data['type_id'],
+            ];
+        }else{
+            $sector_type = SectorPlace::where('sector_type', $data['type'])->where('type_id',1)->first();
+            if(empty($sector_type)){
+                return Result::error('通栏版式类别不存在!');
+            }
+            $component_type = SectorPlace::where('component_type', $data['type'])->where('type_id',2)->first();
+            if(!empty($component_type)){
+                return Result::error('组件版式类别编号已存在!');
+            }
+            $data = [
+                'id' => $data['id'],
+                'name' => $data['name'],
+                'component_num' => 0, 
+                'size_id' => $data['size_id'],
+                'sort_id' => $data['sort_id'],
+                'sector_img' => $data['sector_img'],
+                'component_type' => $data['type'],
+                'type_id' => $data['type_id'],
+            ];
+        }
+        $result = SectorPlace::where('id',$data['id'])->update($data);
+        if(empty($result)){
+            return Result::error('修改失败!');
+        }
+        return Result::success('修改成功!',$result);
+    }
+    /**
+     * 通栏版式管理-删除通栏版式
+     */ 
+    public function delSectorPlace(array $data): array
+    {
+        $sector_place = SectorPlace::where('id',$data['id'])->first();
+        if(empty($sector_place)){
+            return Result::error('通栏版式不存在!');
+        }
+        if($sector_place['type_id'] == 1){
+            $sector = Sector::where('place_type', $sector_place['sector_type'])->first();
+            if(!empty($sector)){
+                return Result::error('通栏版式分类已应用,暂不可删除!');
+            }
+        }else{
+            $sector = Component::where('place_type', $sector_place['component_type'])->first();
+            if(!empty($sector)){
+                return Result::error('组件版式分类已应用,暂不可删除!');
+            }
+        }
+       $result = SectorPlace::where('id',$data['id'])->delete();
+        if(empty($result)){
+            return Result::error('删除失败!');
+        }
+        return Result::success('删除成功!');
+    }
+    /**
+     * 自助建站-通栏版式管理-获取通栏版式详情
+     */
+    public function getSectorPlaceInfo(array $data): array
+    {
+        $result = SectorPlace::where('sector_place.id',$data['id'])
+        ->leftJoin('size','sector_place.size_id','=','size.id') 
+        ->select('sector_place.*','size.width','size.height')
+        ->first();
+        if(empty($result)){
+            return Result::error('通栏版式不存在!');
+        }
+        return Result::success($result);
+    }
 }

+ 7 - 0
app/JsonRpc/PublicRpcServiceInterface.php

@@ -182,4 +182,11 @@ interface PublicRpcServiceInterface
     public function getWebsiteTemplate(array $data): array;
     public function getAllSize(array $data): array;
     public function getSectorPlace(array $data): array;
+
+    // 通栏版式管理-获取通栏版式列表
+    public function getSectorPlaceList(array $data): array;
+    public function addSectorPlace(array $data): array;
+    public function upSectorPlace(array $data): array;
+    public function delSectorPlace(array $data): array;
+    public function getSectorPlaceInfo(array $data): array;
 }

+ 27 - 0
app/Model/LevelUser.php

@@ -0,0 +1,27 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class LevelUser extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'level_user';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}