正在显示
13 个修改的文件
包含
189 行增加
和
14 行删除
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Controllers\Bside; | ||
| 4 | + | ||
| 5 | +use App\Helper\Arr; | ||
| 6 | +use App\Http\Logic\Bside\DepartmentLogic; | ||
| 7 | +use App\Http\Requests\Bside\DepartmentRequest; | ||
| 8 | +use App\Rules\Ids; | ||
| 9 | +use Illuminate\Http\Request; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * Class DepartmentController | ||
| 13 | + * @package App\Http\Controllers\Bside | ||
| 14 | + * @author zbj | ||
| 15 | + * @date 2023/4/18 | ||
| 16 | + */ | ||
| 17 | +class DepartmentController extends BaseController | ||
| 18 | +{ | ||
| 19 | + | ||
| 20 | + public function index(DepartmentLogic $logic) | ||
| 21 | + { | ||
| 22 | + $map = []; | ||
| 23 | + if(!empty($this->param['search'])){ | ||
| 24 | + $map[] = ['title', 'like', "%{$this->param['search']}%"]; | ||
| 25 | + } | ||
| 26 | + $sort = ['id' => 'desc']; | ||
| 27 | + $data = $logic->getList($map, $sort, ['id', 'pid', 'title'],0); | ||
| 28 | + return $this->success(Arr::listToTree($data)); | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + public function info(Request $request, DepartmentLogic $logic){ | ||
| 32 | + $request->validate([ | ||
| 33 | + 'id'=>'required' | ||
| 34 | + ],[ | ||
| 35 | + 'id.required' => 'ID不能为空' | ||
| 36 | + ]); | ||
| 37 | + $data = $logic->getInfo($this->param['id']); | ||
| 38 | + return $this->success(Arr::twoKeepKeys($data, ['id', 'pid', 'title', 'manager_uids', 'remark'])); | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + public function save(DepartmentRequest $request, DepartmentLogic $logic) | ||
| 42 | + { | ||
| 43 | + $data = $logic->save($this->param); | ||
| 44 | + return $this->success($data); | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + public function delete(Request $request, DepartmentLogic $logic) | ||
| 48 | + { | ||
| 49 | + $request->validate([ | ||
| 50 | + 'ids'=>['required', new Ids()] | ||
| 51 | + ],[ | ||
| 52 | + 'ids.required' => 'ID不能为空' | ||
| 53 | + ]); | ||
| 54 | + | ||
| 55 | + $data = $logic->delete($this->param['ids']); | ||
| 56 | + return $this->success($data); | ||
| 57 | + } | ||
| 58 | +} |
| @@ -56,6 +56,4 @@ class CategoryController extends BaseController | @@ -56,6 +56,4 @@ class CategoryController extends BaseController | ||
| 56 | $data = $logic->delete($this->param['ids']); | 56 | $data = $logic->delete($this->param['ids']); |
| 57 | return $this->success($data); | 57 | return $this->success($data); |
| 58 | } | 58 | } |
| 59 | - | ||
| 60 | - //todo Ai生成 关键词和描述 | ||
| 61 | } | 59 | } |
| @@ -138,7 +138,7 @@ class BaseLogic | @@ -138,7 +138,7 @@ class BaseLogic | ||
| 138 | $this->fail('数据不存在或者已经删除'); | 138 | $this->fail('数据不存在或者已经删除'); |
| 139 | } | 139 | } |
| 140 | } | 140 | } |
| 141 | - | 141 | + $param['project_id'] = $this->user['project_id']; |
| 142 | foreach ($param as $name => $value){ | 142 | foreach ($param as $name => $value){ |
| 143 | $this->model[$name] = $value; | 143 | $this->model[$name] = $value; |
| 144 | } | 144 | } |
app/Http/Logic/Bside/DepartmentLogic.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Logic\Bside; | ||
| 4 | + | ||
| 5 | +use App\Helper\Arr; | ||
| 6 | +use App\Models\Department; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * Class DepartmentLogic | ||
| 10 | + * @package App\Http\Logic\Bside\Department | ||
| 11 | + * @author zbj | ||
| 12 | + * @date 2023/4/18 | ||
| 13 | + */ | ||
| 14 | +class DepartmentLogic extends BaseLogic | ||
| 15 | +{ | ||
| 16 | + public function __construct() | ||
| 17 | + { | ||
| 18 | + parent::__construct(); | ||
| 19 | + | ||
| 20 | + $this->model = new Department(); | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + public function save($param){ | ||
| 24 | + if(!empty($param['pid'])){ | ||
| 25 | + if(!empty($param['id']) && $param['pid'] == $param['id']){ | ||
| 26 | + $this->fail('上级部门不能是本部门'); | ||
| 27 | + } | ||
| 28 | + $p_cate = $this->getCacheInfo($param['pid']); | ||
| 29 | + if(!$p_cate){ | ||
| 30 | + $this->fail('上级部门不存在'); | ||
| 31 | + } | ||
| 32 | + } | ||
| 33 | + return parent::save($param); | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + public function delete($ids){ | ||
| 37 | + $ids= array_filter(Arr::splitFilterToArray($ids), 'intval'); | ||
| 38 | + foreach ($ids as $id){ | ||
| 39 | + $info = $this->getCacheInfo($id); | ||
| 40 | + if(!$info){ | ||
| 41 | + continue; | ||
| 42 | + } | ||
| 43 | + //是否有子部门 | ||
| 44 | + if(Department::where('pid', $id)->count()){ | ||
| 45 | + $this->fail("部门{$info['title']}存在下级部门,不能删除"); | ||
| 46 | + } | ||
| 47 | + } | ||
| 48 | + return parent::delete($ids); | ||
| 49 | + } | ||
| 50 | +} |
| @@ -27,7 +27,7 @@ class CategoryLogic extends BaseLogic | @@ -27,7 +27,7 @@ class CategoryLogic extends BaseLogic | ||
| 27 | if(!empty($param['id']) && $param['pid'] == $param['id']){ | 27 | if(!empty($param['id']) && $param['pid'] == $param['id']){ |
| 28 | $this->fail('上级分类不能是本分类'); | 28 | $this->fail('上级分类不能是本分类'); |
| 29 | } | 29 | } |
| 30 | - $p_cate = Category::find($param['pid']); | 30 | + $p_cate = $this->getCacheInfo($param['pid']); |
| 31 | if(!$p_cate){ | 31 | if(!$p_cate){ |
| 32 | $this->fail('上级分类不存在'); | 32 | $this->fail('上级分类不存在'); |
| 33 | } | 33 | } |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Requests\Bside; | ||
| 4 | + | ||
| 5 | +use Illuminate\Foundation\Http\FormRequest; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * Class DepartmentRequest | ||
| 9 | + * @package App\Http\Requests\Bside\product | ||
| 10 | + * @author zbj | ||
| 11 | + * @date 2023/4/18 | ||
| 12 | + */ | ||
| 13 | +class DepartmentRequest extends FormRequest | ||
| 14 | +{ | ||
| 15 | + /** | ||
| 16 | + * Determine if the user is authorized to make this request. | ||
| 17 | + * | ||
| 18 | + * @return bool | ||
| 19 | + */ | ||
| 20 | + public function authorize() | ||
| 21 | + { | ||
| 22 | + return true; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * Get the validation rules that apply to the request. | ||
| 27 | + * | ||
| 28 | + * @return array | ||
| 29 | + */ | ||
| 30 | + public function rules() | ||
| 31 | + { | ||
| 32 | + return [ | ||
| 33 | + 'title'=>'required|max:50', | ||
| 34 | + 'remark'=>'max:200', | ||
| 35 | + ]; | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + public function messages() | ||
| 39 | + { | ||
| 40 | + return [ | ||
| 41 | + 'title.required' => '请输入部门名称', | ||
| 42 | + 'title.max' => '部门名称不能超过50个字符', | ||
| 43 | + 'remark.max' => '备注不能超过200个字符', | ||
| 44 | + ]; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | +} |
| @@ -30,7 +30,7 @@ class AttrRequest extends FormRequest | @@ -30,7 +30,7 @@ class AttrRequest extends FormRequest | ||
| 30 | public function rules() | 30 | public function rules() |
| 31 | { | 31 | { |
| 32 | return [ | 32 | return [ |
| 33 | - 'title' => 'required|max:30', | 33 | + 'title' => 'required|max:50', |
| 34 | 'remark' => 'max:200', | 34 | 'remark' => 'max:200', |
| 35 | 'values' => 'required|array' | 35 | 'values' => 'required|array' |
| 36 | ]; | 36 | ]; |
| @@ -40,7 +40,7 @@ class AttrRequest extends FormRequest | @@ -40,7 +40,7 @@ class AttrRequest extends FormRequest | ||
| 40 | { | 40 | { |
| 41 | return [ | 41 | return [ |
| 42 | 'title.required' => '请输入参数名称', | 42 | 'title.required' => '请输入参数名称', |
| 43 | - 'title.max' => '参数名称不能超过30个字符', | 43 | + 'title.max' => '参数名称不能超过50个字符', |
| 44 | 'remark.max' => '备注不能超过200个字符', | 44 | 'remark.max' => '备注不能超过200个字符', |
| 45 | 'values.required' => '请添加参数值', | 45 | 'values.required' => '请添加参数值', |
| 46 | 'values.array' => '参数值格式异常', | 46 | 'values.array' => '参数值格式异常', |
| @@ -30,7 +30,7 @@ class CategoryRequest extends FormRequest | @@ -30,7 +30,7 @@ class CategoryRequest extends FormRequest | ||
| 30 | public function rules() | 30 | public function rules() |
| 31 | { | 31 | { |
| 32 | return [ | 32 | return [ |
| 33 | - 'title'=>'required|max:20', | 33 | + 'title'=>'required|max:50', |
| 34 | 'image'=>'required', | 34 | 'image'=>'required', |
| 35 | 'keywords'=>'required|max:50', | 35 | 'keywords'=>'required|max:50', |
| 36 | 'describe'=>'required|max:200', | 36 | 'describe'=>'required|max:200', |
| @@ -41,7 +41,7 @@ class CategoryRequest extends FormRequest | @@ -41,7 +41,7 @@ class CategoryRequest extends FormRequest | ||
| 41 | { | 41 | { |
| 42 | return [ | 42 | return [ |
| 43 | 'title.required' => '请输入分类名称', | 43 | 'title.required' => '请输入分类名称', |
| 44 | - 'title.max' => '分类名称不能超过20个字符', | 44 | + 'title.max' => '分类名称不能超过50个字符', |
| 45 | 'image.required' => '请上传分类图片', | 45 | 'image.required' => '请上传分类图片', |
| 46 | 'keywords.required' => '请输入分类关键词', | 46 | 'keywords.required' => '请输入分类关键词', |
| 47 | 'keywords.max' => '分类关键词不能超过50个字符', | 47 | 'keywords.max' => '分类关键词不能超过50个字符', |
| @@ -30,7 +30,7 @@ class DescribeRequest extends FormRequest | @@ -30,7 +30,7 @@ class DescribeRequest extends FormRequest | ||
| 30 | public function rules() | 30 | public function rules() |
| 31 | { | 31 | { |
| 32 | return [ | 32 | return [ |
| 33 | - 'title'=>'required|max:30', | 33 | + 'title'=>'required|max:50', |
| 34 | 'describe'=>'required', | 34 | 'describe'=>'required', |
| 35 | ]; | 35 | ]; |
| 36 | } | 36 | } |
| @@ -39,7 +39,7 @@ class DescribeRequest extends FormRequest | @@ -39,7 +39,7 @@ class DescribeRequest extends FormRequest | ||
| 39 | { | 39 | { |
| 40 | return [ | 40 | return [ |
| 41 | 'title.required' => '请输入描述名称', | 41 | 'title.required' => '请输入描述名称', |
| 42 | - 'title.max' => '描述名称不能超过30个字符', | 42 | + 'title.max' => '描述名称不能超过50个字符', |
| 43 | 'seo_title.required' => '请输入描述内容', | 43 | 'seo_title.required' => '请输入描述内容', |
| 44 | ]; | 44 | ]; |
| 45 | } | 45 | } |
| @@ -30,7 +30,7 @@ class KeywordRequest extends FormRequest | @@ -30,7 +30,7 @@ class KeywordRequest extends FormRequest | ||
| 30 | public function rules() | 30 | public function rules() |
| 31 | { | 31 | { |
| 32 | return [ | 32 | return [ |
| 33 | - 'title'=>'required|max:30', | 33 | + 'title'=>'required|max:50', |
| 34 | 'seo_title'=>'max:200', | 34 | 'seo_title'=>'max:200', |
| 35 | 'seo_keywords'=>'max:200', | 35 | 'seo_keywords'=>'max:200', |
| 36 | 'seo_description'=>'max:200', | 36 | 'seo_description'=>'max:200', |
| @@ -41,7 +41,7 @@ class KeywordRequest extends FormRequest | @@ -41,7 +41,7 @@ class KeywordRequest extends FormRequest | ||
| 41 | { | 41 | { |
| 42 | return [ | 42 | return [ |
| 43 | 'title.required' => '请输入关键词', | 43 | 'title.required' => '请输入关键词', |
| 44 | - 'title.max' => '关键词不能超过30个字符', | 44 | + 'title.max' => '关键词不能超过50个字符', |
| 45 | 'seo_title.max' => 'SEO标题不能超过200个字符', | 45 | 'seo_title.max' => 'SEO标题不能超过200个字符', |
| 46 | 'seo_keywords.max' => 'SEO关键词不能超过200个字符', | 46 | 'seo_keywords.max' => 'SEO关键词不能超过200个字符', |
| 47 | 'seo_description.max' => 'SEO描述不能超过200个字符', | 47 | 'seo_description.max' => 'SEO描述不能超过200个字符', |
| @@ -94,7 +94,7 @@ class ProductRequest extends FormRequest | @@ -94,7 +94,7 @@ class ProductRequest extends FormRequest | ||
| 94 | 'category_id.required' => '请选择分类', | 94 | 'category_id.required' => '请选择分类', |
| 95 | 'keywords.required' => '请添加关键词标签', | 95 | 'keywords.required' => '请添加关键词标签', |
| 96 | 'intro.required' => '请输入短描述', | 96 | 'intro.required' => '请输入短描述', |
| 97 | - 'intro.max' => '短描述不能超过20个字符', | 97 | + 'intro.max' => '短描述不能超过500个字符', |
| 98 | 'content.required' => '请输入产品描述', | 98 | 'content.required' => '请输入产品描述', |
| 99 | 'describe.required' => '请添加描述切换栏', | 99 | 'describe.required' => '请添加描述切换栏', |
| 100 | 'describe.array' => '描述切换栏格式异常', | 100 | 'describe.array' => '描述切换栏格式异常', |
app/Models/Department.php
0 → 100644
| @@ -88,7 +88,7 @@ Route::middleware(['bloginauth'])->group(function () { | @@ -88,7 +88,7 @@ Route::middleware(['bloginauth'])->group(function () { | ||
| 88 | //产品 | 88 | //产品 |
| 89 | Route::get('/', [\App\Http\Controllers\Bside\Product\ProductController::class, 'index'])->name('product'); | 89 | Route::get('/', [\App\Http\Controllers\Bside\Product\ProductController::class, 'index'])->name('product'); |
| 90 | Route::get('/info', [\App\Http\Controllers\Bside\Product\ProductController::class, 'info'])->name('product_info'); | 90 | Route::get('/info', [\App\Http\Controllers\Bside\Product\ProductController::class, 'info'])->name('product_info'); |
| 91 | - Route::post('/save', [\App\Http\Controllers\Bside\Product\ProductController::class, 'save'])->name(' '); | 91 | + Route::post('/save', [\App\Http\Controllers\Bside\Product\ProductController::class, 'save'])->name('product_save'); |
| 92 | Route::any('/delete', [\App\Http\Controllers\Bside\Product\ProductController::class, 'delete'])->name('product_delete'); | 92 | Route::any('/delete', [\App\Http\Controllers\Bside\Product\ProductController::class, 'delete'])->name('product_delete'); |
| 93 | 93 | ||
| 94 | //产品分类 | 94 | //产品分类 |
| @@ -115,6 +115,14 @@ Route::middleware(['bloginauth'])->group(function () { | @@ -115,6 +115,14 @@ Route::middleware(['bloginauth'])->group(function () { | ||
| 115 | Route::post('describe/save', [\App\Http\Controllers\Bside\Product\DescribeController::class, 'save'])->name('product_describe_save'); | 115 | Route::post('describe/save', [\App\Http\Controllers\Bside\Product\DescribeController::class, 'save'])->name('product_describe_save'); |
| 116 | Route::any('describe/delete', [\App\Http\Controllers\Bside\Product\DescribeController::class, 'delete'])->name('product_describe_delete'); | 116 | Route::any('describe/delete', [\App\Http\Controllers\Bside\Product\DescribeController::class, 'delete'])->name('product_describe_delete'); |
| 117 | }); | 117 | }); |
| 118 | + | ||
| 119 | + //组织架构 | ||
| 120 | + Route::prefix('department')->group(function () { | ||
| 121 | + Route::get('/', [\App\Http\Controllers\Bside\DepartmentController::class, 'index'])->name('department'); | ||
| 122 | + Route::get('/info', [\App\Http\Controllers\Bside\DepartmentController::class, 'info'])->name('department_info'); | ||
| 123 | + Route::post('/save', [\App\Http\Controllers\Bside\DepartmentController::class, 'save'])->name('department_save'); | ||
| 124 | + Route::any('/delete', [\App\Http\Controllers\Bside\DepartmentController::class, 'delete'])->name('department_delete'); | ||
| 125 | + }); | ||
| 118 | }); | 126 | }); |
| 119 | 127 | ||
| 120 | //无需登录验证的路由组 | 128 | //无需登录验证的路由组 |
-
请 注册 或 登录 后发表评论