作者 Your Name

gx

<?php
namespace App\Http\Controllers\Aside;
namespace App\Http\Controllers\Aside\Ai;
use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Ai\AiCommandLogic;
use App\Http\Requests\Aside\Ai\AiCommandRequest;
use App\Models\AiCommand as AiCommandModel;
use Illuminate\Http\Request;
use function App\Helper\send_openai_msg;
/**
... ... @@ -24,13 +27,30 @@ class AiCommandController extends BaseController
}
/**
* @name :详情
* @return void
* @author :liyuhang
* @method
*/
public function info(Request $request,AiCommandLogic $aiCommandLogic){
$request->validate([
'id'=>'required'
],[
'id.required' => 'ID不能为空'
]);
$aiCommandLogic->ai_info();
$this->response('success');
}
/**
* @name
* @return void
* @author :liyuhang
* @method
*/
public function add(){
public function add(AiCommandRequest $request,AiCommandLogic $aiCommandLogic){
$request->validated();
$aiCommandLogic->ai_add();
$this->response('success');
}
/**
... ... @@ -39,8 +59,14 @@ class AiCommandController extends BaseController
* @author :liyuhang
* @method
*/
public function edit(){
public function edit(AiCommandRequest $request,AiCommandLogic $aiCommandLogic){
$request->validate([
'id'=>'required'
],[
'id.required' => 'ID不能为空'
]);
$aiCommandLogic->ai_edit();
$this->response('success');
}
/**
... ... @@ -49,7 +75,13 @@ class AiCommandController extends BaseController
* @author :liyuhang
* @method
*/
public function del(){
public function del(Request $request,AiCommandLogic $aiCommandLogic){
$request->validate([
'id'=>'required'
],[
'id.required' => 'ID不能为空'
]);
$aiCommandLogic->ai_del();
$this->response('success');
}
}
... ...
... ... @@ -39,10 +39,26 @@ class BaseController extends Controller
$this->get_param();
//日志记录
$this->set_user_log();
//读取缓存
$this->get_cache();
}
}
/**
* @name :读取缓存
* @return void
* @author :liyuhang
* @method
*/
public function get_cache(){
//TODO::读取缓存
$data = Cache::get('cache_'.$this->request->route()->getName());
if(isset($data) && !empty($data)){
$this->response('success',Code::SUCCESS,$data);
}
}
/**
* @name 参数过滤
* @return void
* @author :liyuhang
... ... @@ -163,10 +179,9 @@ class BaseController extends Controller
case 'operator_id':
if(!empty($v)){
$name = $this->get_name(['operator_id'=>$v]);
$data['operator_name'] = isset($name) && !empty($name) ? $name : '无名称';
$data['operator_name'] = (isset($name['name']) && !empty($name['name'])) ? $name['name'] : '无名称';
}
break;
}
}
}
... ... @@ -180,8 +195,8 @@ class BaseController extends Controller
*/
public function get_name($data){
$user = new UserModel();
$info = $user->read($data,['name']);
return $info['name'];
$info = $user->read($data,['id','name']);
return $info;
}
/**
* @name :写入操作日志
... ...
<?php
namespace App\Http\Controllers\Bside;
namespace App\Http\Controllers\Bside\User;
use App\Helper\Arr;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\DeptLogic;
use App\Http\Requests\Bside\DeptRequest;
use App\Rules\Ids;
... ...
... ... @@ -9,6 +9,7 @@ use App\Http\Logic\Bside\User\UserLogic;
use App\Http\Requests\Bside\User\UserRequest;
use App\Models\User\User as UserModel;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
class UserController extends BaseController
{
... ... @@ -18,13 +19,15 @@ class UserController extends BaseController
* @author :liyuhang
* @method
*/
public function lists(UserModel $userModel){
//TODO::搜索参数处理
public function lists(Request $request,UserModel $userModel){
//TODO::搜索参数统一处理
$this->map['project_id'] = $this->user['project_id'];
$lists = $userModel->lists($this->map,$this->page,$this->row,$this->order,['id','name','mobile','created_at']);
if(empty($lists)){
$this->response('error',Code::USER_ERROR,[]);
}
//TODO::写入缓存
Cache::add('cache_'.$request->route()->getName(),$lists);
$this->response('success',Code::SUCCESS,$lists);
}
... ...
... ... @@ -21,7 +21,11 @@ class AiCommandLogic extends BaseLogic
* @author :liyuhang
* @method
*/
<<<<<<< HEAD
public function info(){
=======
public function ai_info(){
>>>>>>> 0a33166a03a36ebcf1c74fe78d1a9a2080e1c6d4
return $this->success();
}
... ... @@ -31,7 +35,11 @@ class AiCommandLogic extends BaseLogic
* @author :liyuhang
* @method
*/
<<<<<<< HEAD
public function add(){
=======
public function ai_add(){
>>>>>>> 0a33166a03a36ebcf1c74fe78d1a9a2080e1c6d4
return $this->success();
}
... ... @@ -41,7 +49,11 @@ class AiCommandLogic extends BaseLogic
* @author :liyuhang
* @method
*/
<<<<<<< HEAD
public function edit(){
=======
public function ai_edit(){
>>>>>>> 0a33166a03a36ebcf1c74fe78d1a9a2080e1c6d4
return $this->success();
}
... ... @@ -51,7 +63,11 @@ class AiCommandLogic extends BaseLogic
* @author :liyuhang
* @method
*/
<<<<<<< HEAD
public function del(){
=======
public function ai_del(){
>>>>>>> 0a33166a03a36ebcf1c74fe78d1a9a2080e1c6d4
return $this->success();
}
}
... ...
<?php
namespace App\Http\Logic\Aside;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\AiCommand as AiCommandModel;
class AiCommandLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new AiCommandModel();
}
}
... ... @@ -167,20 +167,19 @@ class Logic
if(!$ids){
$this->fail('ID不能为空');
}
$map[] = ['id', 'in', $ids];
$res = $this->formatQuery($map)->delete();
if($res){
foreach ($ids as $id){
$model = $this->getCacheInfo($id);
if(!$model){
continue;
}
$model->delete();
if($this->is_cache){
foreach ($ids as $id){
Cache::forget($this->getInfoCacheKey($id));
}
Cache::forget($this->getInfoCacheKey($id));
}
return $this->success();
}else{
$this->fail('删除失败');
}
return $this->success();
}
/**
... ...
<?php
namespace App\Http\Requests\Aside\Ai;
use Illuminate\Foundation\Http\FormRequest;
class AiCommandRequest 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 [
'key'=>'required',
'scene'=>'required',
'ai'=>'required',
];
}
public function messages()
{
return [
'key.required'=>'指令不能为空',
'scene.required' => '场景不能为空',
'ai.required'=>'指令不猛为空',
];
}
}
... ...
... ... @@ -27,6 +27,7 @@ class NewsRequest extends FormRequest
'name'=>'required|max:100',
'remark'=>'required|max:100',
'text'=>'required|min:10',
'category_id'=>'required',
];
}
... ... @@ -39,6 +40,7 @@ class NewsRequest extends FormRequest
'name.max'=>'名称最大100字',
'remark.max'=>'简介最大100字',
'text.max'=>'内容最小100字',
'category_id.required'=>'分类不能为空',
];
}
}
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
class Base extends Model
... ... @@ -15,6 +16,41 @@ class Base extends Model
'created_at' => 'datetime:Y-m-d H:i:s',
'updated_at' => 'datetime:Y-m-d H:i:s',
];
/**
* 监听模型事件
* @author zbj
* @date 2023/4/25
*/
protected static function booted()
{
//模型实例操作才会触发
//保存前数据 $row->original['xx']
//保存后数据 $row->xx
static::saved(function ($row) {
//删除缓存
$row->original && static::clearCache($row);
});
static::deleted(function ($row) {
//删除缓存
$row->original && static::clearCache($row);
});
}
/**
* 删除缓存 子类重写此方法
*
* @param $row
* @return bool
* @author zbj
* @date 2023/4/25
*/
public static function clearCache($row){
return true;
}
/**
* 日期序列化 勿删 删了时间就不是东八区时间了哈
* @param \DateTimeInterface $date
... ...
... ... @@ -56,4 +56,9 @@ class Menu extends Base
}
return $data;
}
public static function clearCache($row){
$cache_key = 'manage_menu_' . $row->original['route_name'];
Cache::forget($cache_key);
}
}
... ...
... ... @@ -147,10 +147,10 @@ Route::middleware(['bloginauth'])->group(function () {
//组织架构
Route::prefix('dept')->group(function () {
Route::get('/', [\App\Http\Controllers\Bside\DeptController::class, 'index'])->name('dept');
Route::get('/info', [\App\Http\Controllers\Bside\DeptController::class, 'info'])->name('dept_info');
Route::post('/save', [\App\Http\Controllers\Bside\DeptController::class, 'save'])->name('dept_save');
Route::any('/delete', [\App\Http\Controllers\Bside\DeptController::class, 'delete'])->name('dept_delete');
Route::get('/', [\App\Http\Controllers\Bside\User\DeptController::class, 'index'])->name('dept');
Route::get('/info', [\App\Http\Controllers\Bside\User\DeptController::class, 'info'])->name('dept_info');
Route::post('/save', [\App\Http\Controllers\Bside\User\DeptController::class, 'save'])->name('dept_save');
Route::any('/delete', [\App\Http\Controllers\Bside\User\DeptController::class, 'delete'])->name('dept_delete');
});
//文件操作
... ...