作者 liyuhang

gx

... ... @@ -59,7 +59,6 @@ class Handler extends ExceptionHandler
*/
public function report(Throwable $exception)
{
//日志记录
$exceptionMessage = "错误CODE:" . $exception->getCode() .
"-----错误message:" . $exception->getMessage() .
... ... @@ -128,16 +127,6 @@ class Handler extends ExceptionHandler
$exception->getLine();
(new DingService())->handle(['keyword' => "ERROR", 'msg' => config('app.env') . '环境报错:' . $exceptionMessage, 'isAtAll' => false]);
}
//生成日志
$log = config('logging.operator_log');
if(isset($log,$log['log'],$log['action']) && $log['log'] == true){
if(empty($log['action']) || (strpos($log['action'],$request->route()->getName()) < 0)){
$info = Cache::get($request->header('token'));
if(!empty($info)){
\App\Helper\Common::set_user_log(['model'=>$request->route()->getName(),'remark'=>'请求的参数:param = '.json_encode($request->all()),'operator_id'=>$info['id']]);
}
}
}
//开启debug 错误原样输出
$debub = config('app.debug');
$message = $debub ? $message : ($code->description ?? $message);
... ...
... ... @@ -33,7 +33,7 @@ class Common
*/
public static function set_user_login($param = []){
$data = [
'user_id'=>$param['id'],
'user_id'=>$param['user_id'],
'ip'=>$param['ip']
];
$model = new UserLoginModel();
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Helper\Common;
use Illuminate\Http\Request;
class AiCommandController extends BaseController
... ... @@ -23,7 +24,7 @@ class AiCommandController extends BaseController
'key.required' => '场景不能为空',
]);
#TODO 通过key获取到ai指令对象
$data = $this->send_openai_msg($this->chat_url);
$data = Common::send_openai_msg($this->chat_url);
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Helper\Common;
use App\Http\Controllers\Controller;
use App\Models\AiCommand as AiCommandModel;
use Illuminate\Http\JsonResponse;
... ... @@ -34,34 +35,13 @@ class BaseController extends Controller
$info = Cache::get($this->token);
$this->user = $info;
$this->uid = $info['id'];
}else{
return response(['code'=>Code::USER_ERROR,'msg'=>'当前用户未登录']);
}
//参数处理
$this->get_param();
//日志记录
$this->set_user_log();
}
/**
* 成功返回
* @param array $data
* @param string $code
* @param bool $objectData
* @return JsonResponse
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
*/
function success(array $data = [], string $code = Code::SUCCESS, bool $objectData = false): JsonResponse
{
if ($objectData) {
$data = (object)$data;
}
$code = Code::fromValue($code);
$response = [
'code' => $code->value,
'data' => $data,
'msg' => $code->description,
];
$this->header['token'] = $this->token;
return response()->json($response,200,$this->header);
}
/**
* @name 参数过滤
* @return void
... ... @@ -115,7 +95,7 @@ class BaseController extends Controller
}
}
/**
* @name 统一返回参数
* @name :统一返回参数
* @return JsonResponse
* @author :liyuhang
* @method
... ... @@ -134,25 +114,27 @@ class BaseController extends Controller
throw new HttpResponseException($response);
}
/**
* 菜单权限->得到子级数组
* @param int
* @return array
* 成功返回
* @param array $data
* @param string $code
* @param bool $objectData
* @return JsonResponse
*/
public function _get_child($my_id, $arr)
function success(array $data = [], string $code = Code::SUCCESS, bool $objectData = false): JsonResponse
{
$new_arr = array();
foreach ($arr as $k => $v) {
$v = (array)$v;
if ($v['pid'] == $my_id) {
$v['sub'] = $this->_get_child($v['id'],$arr);
$new_arr[] = $v;
}
if ($objectData) {
$data = (object)$data;
}
return $new_arr ? $new_arr : false;
$code = Code::fromValue($code);
$response = [
'code' => $code->value,
'data' => $data,
'msg' => $code->description,
];
$this->header['token'] = $this->token;
return response()->json($response,200,$this->header);
}
/**
* @param $data
* @name :返回参数处理
... ... @@ -184,27 +166,18 @@ class BaseController extends Controller
}
/**
* @name :ai自动生成
* @return mixed
* @name :写入操作日志
* @return void
* @author :liyuhang
* @method
*/
public function send_openai_msg($url){
$url = HTTP_OPENAI_URL.$url;
$aiCommandModel = New AiCommandModel();
//指定库获取指令
$info = $aiCommandModel->read(['key'=>$this->param['key']]);
if($info === false){
$this->response('指令不存在',Code::USER_ERROR);
}
//替换关键字
$content = str_replace('$keyword$', $this->param['keywords'], $info['ai']);
$data = [
'messages'=>[
['role'=>'system','content'=>$info['scene']],
['role'=>'assistant','content'=>$content],
]
];
return http_post($url,json_encode($data));
public function set_user_log(){
//生成日志
$log = config('logging.operator_log');
if(isset($log) && $log['log'] == true){
if(empty($log['action']) || (strpos($log['action'],$this->request->route()->getName()) < 0)){
Common::set_user_log(['model'=>$this->request->route()->getName(),'remark'=>'请求的参数:param = '.json_encode($this->param),'operator_id'=>$this->uid]);
}
}
}
}
... ...
... ... @@ -3,8 +3,10 @@
namespace App\Http\Controllers\Bside\Blog;
use App\Enums\Common\Code;
use App\Helper\Common;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\Blog\BlogLogic;
use App\Http\Logic\Bside\News\NewsLogic;
use App\Http\Requests\Bside\Blog\BlogRequest;
use App\Models\Blog\Blog as BlogModel;
use App\Models\Blog\BlogCategory as BlogCategoryModel;
... ... @@ -95,6 +97,27 @@ class BlogController extends BaseController
}
/**
* @name :编辑新闻seo
* @return void
* @author :liyuhang
* @method
*/
public function edit_seo(Request $request,BlogLogic $blogLogic){
$request->validate([
'id'=>['required'],
'seo_title'=>['required'],
'seo_description'=>['required'],
'seo_keywords'=>['required'],
],[
'id.required' => 'ID不能为空',
'seo_title.required' => 'seo_title不能为空',
'seo_description.required' => 'seo_description不能为空',
'seo_keywords.required' => 'seo_description不能为空',
]);
$blogLogic->edit_seo();
$this->response('success');
}
/**
* @name :编辑博客状态/排序
* @return void
* @author :liyuhang
... ... @@ -142,7 +165,7 @@ class BlogController extends BaseController
]);
#TODO 通过key获取到ai指令对象
$url = 'v2/openai_chat';
$data = $this->send_openai_msg($url);
$data = Common::send_openai_msg($url);
$this->response('success',Code::SUCCESS,$data);
}
... ...
... ... @@ -57,7 +57,7 @@ class ComController extends BaseController
foreach ($lists as $k => $v){
$v = (array)$v;
if ($v['pid'] == 0) {
$v['sub'] = $this->_get_child($v['id'], $lists);
$v['sub'] = _get_child($v['id'], $lists);
$menu[] = $v;
}
}
... ...
... ... @@ -96,7 +96,7 @@ class NewsController extends BaseController
}
/**
* @name :编辑seo
* @name :编辑新闻seo
* @return void
* @author :liyuhang
* @method
... ... @@ -116,6 +116,7 @@ class NewsController extends BaseController
$newsLogic->edit_seo();
$this->response('success');
}
/**
* @name :编辑状态/与排序
* @return void
... ... @@ -166,7 +167,7 @@ class NewsController extends BaseController
]);
#TODO 通过key获取到ai指令对象
$url = 'v2/openai_chat';
$data = $this->send_openai_msg($url);
$data = Common::send_openai_msg($url);
$this->response('success',Code::SUCCESS,$data);
}
... ...
... ... @@ -125,9 +125,22 @@ class BlogLogic extends BaseLogic
return $this->success();
}
/**
* @name :编辑seo
* @return void
* @author :liyuhang
* @method
*/
public function edit_seo(){
$this->param['operator_id'] = $this->user['id'];
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->fail('error');
}
return $this->success();
}
/**
* @name :获取数据详情
* @return array
* @throws \App\Exceptions\BsideGlobalException
* @author :liyuhang
* @method
*/
... ...
... ... @@ -68,7 +68,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\News\NewsController::class, 'lists'])->name('news_category_lists');
Route::any('/get_category_list', [\App\Http\Controllers\Bside\News\NewsController::class, 'get_category_list'])->name('news_get_category_list');
Route::any('/add', [\App\Http\Controllers\Bside\News\NewsController::class, 'add'])->name('news_add');
Route::any('/edit_seo', [\App\Http\Controllers\Bside\News\NewsController::class, 'edit_seo'])->name('edit_seo');
Route::any('/edit_seo', [\App\Http\Controllers\Bside\News\NewsController::class, 'edit_seo'])->name('news_edit_seo');
Route::any('/info', [\App\Http\Controllers\Bside\News\NewsController::class, 'info'])->name('news_info');
Route::any('/edit', [\App\Http\Controllers\Bside\News\NewsController::class, 'edit'])->name('news_edit');
Route::any('/del', [\App\Http\Controllers\Bside\News\NewsController::class, 'del'])->name('news_del');
... ... @@ -90,6 +90,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/add', [\App\Http\Controllers\Bside\Blog\BlogController::class, 'add'])->name('blog_add');
Route::any('/info', [\App\Http\Controllers\Bside\Blog\BlogController::class, 'info'])->name('blog_info');
Route::any('/edit', [\App\Http\Controllers\Bside\Blog\BlogController::class, 'edit'])->name('blog_edit');
Route::any('/edit_seo', [\App\Http\Controllers\Bside\Blog\BlogController::class, 'edit_seo'])->name('blog_edit_seo');
Route::any('/del', [\App\Http\Controllers\Bside\Blog\BlogController::class, 'del'])->name('blog_del');
Route::any('/status', [\App\Http\Controllers\Bside\Blog\BlogController::class, 'status'])->name('blog_status');
... ...