作者 liyuhang

gx

<?php
namespace App\Http\Controllers\Bside\Blog;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Requests\Bside\Blog\BlogCategoryRequest;
use App\Models\Blog\Blog as BlogModel;
use App\Models\Blog\BlogCategory as BlogCategoryModel;
use Illuminate\Http\Request;
class BlogCategoryController extends BaseController
{
/**
* @name :博客分类列表
* @return json
* @author :liyuhang
* @method
*/
public function lists(BlogCategoryModel $blogCategoryModel){
//搜索条件
$lists = $blogCategoryModel->lists($this->map,$this->page,$this->row);
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @name :获取当前分类详情
* @return void
* @author :liyuhang
* @method
*/
public function info(Request $request,BlogCategoryModel $blogCategoryModel){
$request->validate([
'id'=>['required']
],[
'id.required' => 'ID不能为空'
]);
$info = $blogCategoryModel->read($this->param);
if($info === false){
$this->response('error',Code::USER_ERROR);
}
$this->response('success',Code::SUCCESS,$info);
}
/**
* @name :添加分类
* @return json
* @author :liyuhang
* @method
*/
public function add(BlogCategoryRequest $request,BlogCategoryModel $blogCategoryModel,BlogModel $blogModel){
$request->validated();
$this->param['project_id'] = $this->user['project_id'];
$this->param['Operator_id'] = $this->uid;
$this->param['create_id'] = $this->uid;
DB::beginTransaction();
$rs = $blogCategoryModel->add($this->param);
if($rs === false){
DB::rollBack();
$this->response('error',Code::USER_ERROR);
}
//TODO::判断当前分内是否为一级分类
if(isset($this->param['pid']) && !empty($this->param['pid'])){
//查看当前上级分类下是否有其他分类
$cate_info = $blogCategoryModel->read(['pid'=>$this->param['pid'],'id'=>['!=',$blogCategoryModel->id]]);
if($cate_info === false){
//查看当前上一级分类下是否有商品
$news_info = $blogModel->read(['category_id'=>$this->param['pid'],'pid'=>0]);
if($news_info !== false){
//更新所有商品到当前分类
$rs = $blogModel->edit(['category_id'=>$blogCategoryModel->id],['category_id'=>$this->param['pid']]);
if($rs === false){
DB::rollBack();
$this->response('error',Code::USER_ERROR);
}
}
}
}
//TODO::写入日志
DB::commit();
$this->response('success');
}
/**
* @name :编辑分类
* @return void
* @author :liyuhang
* @method
*/
public function edit(BlogCategoryRequest $request,BlogCategoryModel $blogCategoryModel){
$request->validate([
'id'=>['required']
],[
'id.required' => 'ID不能为空'
]);
$this->param['Operator_id'] = $this->uid;
$rs = $blogCategoryModel->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
//TODO::写入日志
$this->response('success',Code::SUCCESS);
}
/**
* @name :编辑状态/与排序
* @return void
* @author :liyuhang
* @method
*/
public function status(Request $request,BlogCategoryModel $blogCategoryModel){
$request->validate([
'id'=>['required'],
],[
'id.required' => 'ID不能为空',
]);
$this->param['Operator_id'] = $this->uid;
$rs = $blogCategoryModel->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
$this->response('success');
}
/**
* @name :删除分类
* @return void
* @author :liyuhang
* @method
*/
public function del(Request $request,BlogCategoryModel $blogCategoryModel,BlogModel $blogModel){
$request->validate([
'id'=>['required'],
],[
'id.required' => 'ID不能为空',
]);
foreach ($this->param['id'] as $v){
//查询是否有子分类
$rs = $blogCategoryModel->read(['pid'=>$v],['id']);
if($rs !== false){
$this->response('当前分类拥有子分类不允许删除',Code::USER_ERROR);
}
//查看当前分内下是否有博客
$rs = $blogModel->read(['category_id'=>$v],['id']);
if($rs !== false){
$this->response('当前分类拥有博客',Code::USER_ERROR);
}
}
$this->param['id'] = ['in',$this->param['id']];
$rs = BlogCategoryModel->del($this->param);
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
//TODO::写入操作日志
$this->response('success');
}
}
... ...
<?php
namespace App\Http\Controllers\Bside\Blog;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Requests\Bside\Blog\BlogRequest;
use App\Models\Blog\Blog as BlogModel;
use App\Models\Blog\BlogCategory as BlogCategoryModel;
use Illuminate\Http\Request;
class BlogController extends BaseController
{
/**
* @name :博客列表
* @return json
* @author :liyuhang
* @method
*/
public function lists(BlogModel $blogModel){
//搜索条件
$lists = $blogModel->lists($this->map,$this->page,$this->row);
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @name :获取当前博客详情
* @return void
* @author :liyuhang
* @method
*/
public function info(Request $request,BlogModel $blogModel){
$request->validate([
'id'=>['required']
],[
'id.required' => 'ID不能为空'
]);
$info = $blogModel->read($this->param);
if($info === false){
$this->response('error',Code::USER_ERROR);
}
$this->response('success',Code::SUCCESS,$info);
}
/**
* @name :添加博客
* @return json
* @author :liyuhang
* @method
*/
public function add(BlogRequest $request,BlogModel $blogModel){
$request->validated();
$this->param['create_id'] = $this->uid;
$this->param['Operator_id'] = $this->uid;
$this->param['project_id'] = $this->user['project_id'];
//TODO::路由映射
$rs = $blogModel->add($this->param);
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
//TODO::写入日志
$this->response('success');
}
/**
* @name :编辑博客
* @return void
* @author :liyuhang
* @method
*/
public function edit(BlogRequest $request,BlogModel $blogModel){
$request->validate([
'id'=>['required']
],[
'id.required' => 'ID不能为空'
]);
$this->param['operator_id'] = $this->uid;
$rs = $blogModel->edit($this->param,['id'=>$this->param['id']]);
//TODO::路由映射
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
//TODO::写入日志
$this->response('success');
}
/**
* @name :编辑博客状态/排序
* @return void
* @author :liyuhang
* @method
*/
public function status(Request $request,BlogModel $blogModel){
$request->validate([
'id'=>['required'],
],[
'id.required' => 'ID不能为空',
]);
$this->param['Operator_id'] = $this->uid;
$rs = $blogModel->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
//TODO::写入日志
$this->response('success');
}
/**
* @name :删除博客(批量逻辑删除)
* @return void
* @author :liyuhang
* @method
*/
public function del(Request $request,BlogModel $blogModel){
$request->validate([
'id'=>['required'],
],[
'id.required' => 'ID不能为空',
]);
$this->param['id'] = ['in',$this->param['id']];
$rs = $blogModel->edit(['status'=>2],$this->param);
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
$this->response('success');
}
}
... ...
... ... @@ -3,15 +3,13 @@
namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Models\Project;
use App\Models\Project as ProjectModel;
use App\Models\ProjectMenu as ProjectMenuModel;
use App\Models\ProjectRole as ProjectRoleModel;
use App\Models\User as UserModel;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
/***
* 当前为公共类 所有方法均不需要验证登录token
*/
... ... @@ -73,8 +71,7 @@ class ComController extends BaseController
* @author :liyuhang
* @method
*/
public function get_project(){
$projectModel = new ProjectModel();
public function get_project(ProjectModel $projectModel){
$info = $projectModel->read(['id'=>$this->user['project_id']]);
if(empty($info)){
$this->response('error',Code::USER_ERROR);
... ...
... ... @@ -48,27 +48,27 @@ class NewsCategoryController extends BaseController
* @author :liyuhang
* @method
*/
public function add(NewsCategoryRequest $request,NewsCategoryModel $newsCategory,NewsModel $news){
public function add(NewsCategoryRequest $request,NewsCategoryModel $newsCategoryModel,NewsModel $newsModel){
$request->validated();
$this->param['project_id'] = $this->user['project_id'];
$this->param['Operator_id'] = $this->uid;
$this->param['create_id'] = $this->uid;
DB::beginTransaction();
$rs = $newsCategory->add($this->param);
if($rs === false){
$rs = $newsCategoryModel->add($this->param);
if($rs === false){
DB::rollBack();
$this->response('error',Code::USER_ERROR);
}
//TODO::判断当前分内是否为一级分类
//判断当前分内是否为一级分类
if(isset($this->param['pid']) && !empty($this->param['pid'])){
//查看当前上级分类下是否有其他分类
$cate_info = $newsCategory->read(['pid'=>$this->param['pid'],'id'=>['!=',$newsCategory->id]]);
$cate_info = $newsCategoryModel->read(['pid'=>$this->param['pid'],'id'=>['!=',$newsCategoryModel->id]]);
if($cate_info === false){
//查看当前上一级分类下是否有商品
$news_info = $news->read(['category_id'=>$this->param['pid'],'pid'=>0]);
$news_info = $newsModel->read(['category_id'=>$this->param['pid'],'pid'=>0]);
if($news_info !== false){
//更新所有商品到当前分类
$rs = $news->edit(['category_id'=>$newsCategory->id],['category_id'=>$this->param['pid']]);
$rs = $newsModel->edit(['category_id'=>$newsCategoryModel->id],['category_id'=>$this->param['pid']]);
if($rs === false){
DB::rollBack();
$this->response('error',Code::USER_ERROR);
... ... @@ -77,6 +77,7 @@ class NewsCategoryController extends BaseController
}
}
DB::commit();
//TODO::写入日志
$this->response('success',Code::SUCCESS);
}
... ... @@ -97,12 +98,12 @@ class NewsCategoryController extends BaseController
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
//写入日志
//TODO::写入日志
$this->response('success',Code::SUCCESS);
}
/**
* @name :编辑状态
* @name :编辑状态/排序
* @return void
* @author :liyuhang
* @method
... ... @@ -110,10 +111,8 @@ class NewsCategoryController extends BaseController
public function status(Request $request,NewsCategoryModel $newsCategory){
$request->validate([
'id'=>['required'],
'status'=>['required'],
],[
'id.required' => 'ID不能为空',
'status.required' => 'status不能为空'
]);
$this->param['Operator_id'] = $this->uid;
$rs = $newsCategory->edit($this->param,['id'=>$this->param['id']]);
... ...
... ... @@ -22,15 +22,36 @@ class NewsController extends BaseController
}
/**
* @name :添加分类
* @name :获取详情
* @return void
* @author :liyuhang
* @method
*/
public function info(Request $request,NewsModel $news){
$request->validate([
'id'=>['required'],
],[
'id.required' => 'ID不能为空',
]);
$rs = $news->read($this->param);
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
//TODO::清空相关资源
$this->response('success');
}
/**
* @name :添加新闻
* @return json
* @author :liyuhang
* @method
*/
public function add(NewsRequest $newsRequest,NewsModel $news){
$newsRequest->validated();
$this->param['user_id'] = $this->uid;
$this->param['create_id'] = $this->uid;
$this->param['Operator_id'] = $this->uid;
$this->param['project_id'] = $this->user['project_id'];
//TODO::路由映射
$rs = $news->add($this->param);
if($rs === false){
$this->response('error',Code::USER_ERROR);
... ... @@ -39,7 +60,7 @@ class NewsController extends BaseController
}
/**
* @name :编辑分类
* @name :编辑
* @return void
* @author :liyuhang
* @method
... ... @@ -79,7 +100,7 @@ class NewsController extends BaseController
$this->response('success');
}
/**
* @name :删除分类
* @name :删除
* @return void
* @author :liyuhang
* @method
... ...
... ... @@ -28,6 +28,24 @@ class ProjectGroupController extends BaseController
}
/**
* @name :详情
* @return json
* @author :liyuhang
* @method
*/
public function info(Request $request,ProjectGroupModel $projectGroupModel){
$request->validate([
'id'=>['required', new Ids()],
],[
'id.required' => 'ID不能为空',
]);
$rs = $projectGroupModel->read($this->param);
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
$this->response('success');
}
/**
* @name:添加用户组获取用户列表
* @return void
* @author :liyuhang
... ...
... ... @@ -14,7 +14,7 @@ class ProjectRoleController extends BaseController
{
/**
* @name :用户角色列表()
* @return void
* @return json
* @author :liyuhang
* @method
*/
... ... @@ -27,18 +27,33 @@ class ProjectRoleController extends BaseController
$lists = $projectRoleModel->lists($this->map,$this->page,$this->row,$this->order);
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @name :详情
* @return json
* @author :liyuhang
* @method
*/
public function info(Request $request,ProjectRoleModel $projectRoleModel){
$request->validate([
'id'=>['required', new Ids()],
],[
'id.required' => 'ID不能为空',
]);
$rs = $projectRoleModel->read($this->param);
if($rs === false){
$this->response('error',Code::USER_ERROR);
}
$this->response('success');
}
/**
* @name :添加/编辑角色时获取菜单列表
* @return void
* @author :liyuhang
* @method
*/
public function get_role_menu(){
public function get_role_menu(ProjectRoleModel $projectRoleModel,ProjectMenuModel $projectMenuModel){
//根据当前登录用户角色返回用户菜单列表
$projectRoleModel = new ProjectRoleModel();
$info = $projectRoleModel->read(['id'=>$this->user['role_id']]);
$projectMenuModel = new ProjectMenuModel();
$info['role_menu'] = trim($info['role_menu'],',');
$lists = $projectMenuModel->where(['status'=>0])->whereIn('id',explode(',',$info['role_menu']))->get();
$lists = $lists->toArray();
... ...
<?php
namespace App\Http\Requests\Bside\Blog;
use Illuminate\Foundation\Http\FormRequest;
class BlogCategoryRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name'=>'required|max:100',
];
}
public function messages()
{
return [
'name.required'=>'请填写名称',
'name.max'=>'名称最大100字',
];
}
}
... ...
<?php
namespace App\Http\Requests\Bside\Blog;
use Illuminate\Foundation\Http\FormRequest;
class BlogRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name'=>'required|max:100',
'remark'=>'required|max:100',
'text'=>'required|min:10',
];
}
public function messages()
{
return [
'name.required'=>'请填写名称',
'remark.required'=>'请填写简介',
'text.required'=>'内容不能为空',
'name.max'=>'名称最大100字',
'remark.max'=>'简介最大100字',
'text.max'=>'内容最小100字',
];
}
}
... ...
... ... @@ -24,14 +24,15 @@ class NewsCategoryRequest extends FormRequest
public function rules()
{
return [
'name'=>'required',
'name'=>'required|max:100',
];
}
public function messages()
{
return [
'name.required'=>'名称必须填写',
];
'name.required'=>'请填写名称',
'name.max'=>'名称最大100字',
];
}
}
... ...
... ... @@ -24,14 +24,21 @@ class NewsRequest extends FormRequest
public function rules()
{
return [
'name'=>'required',
'name'=>'required|max:100',
'remark'=>'required|max:100',
'text'=>'required|min:10',
];
}
public function messages()
{
return [
'name.required'=>'名称必须填写',
'name.required'=>'请填写名称',
'remark.required'=>'请填写简介',
'text.required'=>'内容不能为空',
'name.max'=>'名称最大100字',
'remark.max'=>'简介最大100字',
'text.max'=>'内容最小100字',
];
}
}
... ...
<?php
namespace App\Models\Blog;
use App\Models\Base;
class Blog extends Base
{
protected $table = 'gl_blog';
}
... ...
<?php
namespace App\Models\Blog;
use App\Models\Base;
class BlogCategory extends Base
{
protected $table = 'gl_blog_category';
}
... ...
... ... @@ -43,6 +43,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/del', [\App\Http\Controllers\Bside\ProjectGroupController::class, 'del'])->name('project_group_del');
Route::any('/get_user_lists', [\App\Http\Controllers\Bside\ProjectGroupController::class, 'get_user_lists'])->name('project_group_get_user_lists');
});
//新闻相关路由
Route::prefix('news')->group(function () {
//分类
... ... @@ -62,7 +63,24 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/status', [\App\Http\Controllers\Bside\News\NewsController::class, 'status'])->name('news_category_status');
});
//博客相关路由
Route::prefix('blog')->group(function () {
//分类
Route::any('/category/add', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'add'])->name('news_category_add');
Route::any('/category/info', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'info'])->name('news_category_info');
Route::any('/category/edit', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'edit'])->name('news_category_edit');
Route::any('/category/lists', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'lists'])->name('news_category_lists');
Route::any('/category/del', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'del'])->name('news_category_del');
Route::any('/category/status', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'status'])->name('news_category_status');
//新闻
Route::any('/add', [\App\Http\Controllers\Bside\News\NewsController::class, 'add'])->name('news_category_add');
Route::any('/info', [\App\Http\Controllers\Bside\News\NewsController::class, 'info'])->name('news_category_info');
Route::any('/edit', [\App\Http\Controllers\Bside\News\NewsController::class, 'edit'])->name('news_category_edit');
Route::any('/lists', [\App\Http\Controllers\Bside\News\NewsController::class, 'lists'])->name('news_category_lists');
Route::any('/del', [\App\Http\Controllers\Bside\News\NewsController::class, 'del'])->name('news_category_del');
Route::any('/status', [\App\Http\Controllers\Bside\News\NewsController::class, 'status'])->name('news_category_status');
});
//产品
Route::prefix('product')->group(function () {
... ...