作者 赵彬吉

Merge branch 'dev' of http://47.244.231.31:8099/zhl/globalso-v6 into dev

... ... @@ -28,7 +28,12 @@ class AiCommandController extends BaseController
]);
#TODO 通过key获取到ai指令对象
$data = Common::send_openai_msg($this->chat_url,$this->param);
$this->set_ai_log($data);
$param = [
'key'=>$this->param['key'],
'keywords'=>$this->param['keywords'],
'remark'=>json_encode($data)
];
$this->set_ai_log($param);
$this->response('success',Code::SUCCESS,$data);
}
... ... @@ -42,8 +47,9 @@ class AiCommandController extends BaseController
//写入日志
$param = [
'key'=> $this->param['key'],
'keywords'=>$this->param['key'],
'remark' =>$data
'keywords'=>$this->param['keywords'],
'remark' =>$data['remark'],
'operator_id'=>$this->uid
];
$aiLog = new AiLog();
return $aiLog->add($param);
... ...
<?php
namespace App\Http\Controllers\Bside\Project;
use App\Http\Controllers\Bside\BaseController;
class CountryController extends BaseController
{
/**
* @name :lists
* @author :lyh
* @method :post
* @time :2023/4/28 14:49
*/
public function lists(){
}
}
... ...
<?php
namespace App\Http\Controllers\Bside\Project;
use App\Http\Controllers\Bside\BaseController;
class ProjectController extends BaseController
{
/**
* @name :lists
* @author :lyh
* @method :post
* @time :2023/4/28 14:48
*/
public function lists(){
}
}
... ...
<?php
namespace App\Http\Controllers\Bside\Setting;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\Setting\WebSettingLogic;
class WebSettingController extends BaseController
{
/**
* @name :首页设置
* @return void
* @author :liyuhang
* @method
*/
public function lists(WebSettingLogic $webSettingLogic){
$info = $webSettingLogic->setting_read();
$this->response('success',Code::SUCCESS,$info);
}
/**
* @name :添加数据add
* @author :lyh
* @method :post
* @time :2023/4/28 15:17
*/
public function save(WebSettingLogic $webSettingLogic){
$webSettingLogic->setting_save();
$this->response('success');
}
}
... ...
<?php
namespace App\Http\Controllers\Bside\Setting;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\Setting\WebSettingCountryLogic;
class WebSettingCountryController extends BaseController
{
/**
* @name :列表lists
* @author :lyh
* @method :post
* @time :2023/4/28 14:40
*/
public function lists(WebSettingCountryLogic $webSettingCountryLogic){
}
}
... ...
<?php
namespace App\Http\Controllers\Bside\Setting;
use App\Http\Controllers\Bside\BaseController;
class WebSettingFromController extends BaseController
{
/**
* @name :lists
* @author :lyh
* @method :post
* @time :2023/4/28 14:41
*/
public function lists(){
}
}
... ...
<?php
namespace App\Http\Controllers\Bside\Setting;
use App\Http\Controllers\Bside\BaseController;
class WebSettingHtmlController extends BaseController
{
/**
* @name :lists
* @author :lyh
* @method :post
* @time :2023/4/28 14:45
*/
public function lists(){
}
}
... ...
<?php
namespace App\Http\Controllers\Bside\Setting;
use App\Http\Controllers\Bside\BaseController;
class WebSettingServiceController extends BaseController
{
/**
* @name :lists
* @author :lyh
* @method :post
* @time :2023/4/28 14:46
*/
public function lists(){
}
}
... ...
... ... @@ -192,7 +192,7 @@ class ImageController
'data' => $data,
];
$this->header['Content-Type'] = $type;
$response = response($result,$result_code,$this->header);;
$response = response($result,$result_code,$this->header);
throw new HttpResponseException($response);
}
}
... ...
... ... @@ -34,7 +34,7 @@ class ProjectGroupLogic extends BaseLogic
*/
public function group_add(){
//查看当前用户组是否存在
$this->model->read(['name'=>$this->param['name'],'create_id'=>1]);
$this->model->read(['name'=>$this->param['name'],'create_id'=>$this->user['id']]);
$rs = $this->model->add($this->param);
if($rs === false){
$this->fail('error');
... ... @@ -50,7 +50,10 @@ class ProjectGroupLogic extends BaseLogic
*/
public function group_edit(){
//查看当前用户组是否存在
$this->model->read(['name'=>$this->param['name'],'create_id'=>1]);
$rs = $this->model->read(['name'=>$this->param['name'],'create_id'=>$this->user['id']]);
if($rs === false){
$this->fail('error');
}
return $this->success();
}
... ... @@ -61,6 +64,11 @@ class ProjectGroupLogic extends BaseLogic
* @method
*/
public function group_del(){
$this->param['id'] = ['in',$this->param['id']];
$rs = $this->model->del($this->param);
if($rs === false){
$this->fail('error');
}
return $this->success();
}
}
... ...
<?php
namespace App\Http\Logic\Bside\Setting;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\WebSetting\WebSettingCountry;
class WebSettingCountryLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new WebSettingCountry();
$this->param = $this->requestAll;
}
}
... ...
<?php
namespace App\Http\Logic\Bside\Setting;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\WebSetting\WebSettingForm;
class WebSettingFromLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new WebSettingForm();
$this->param = $this->requestAll;
}
}
... ...
<?php
namespace App\Http\Logic\Bside\Setting;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\WebSetting\WebSettingHtml;
class WebSettingHtmlLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new WebSettingHtml();
$this->param = $this->requestAll;
}
}
... ...
<?php
namespace App\Http\Logic\Bside\Setting;
use App\Helper\Common as CommonHelper;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\WebSetting\WebSetting;
class WebSettingLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new WebSetting();
$this->param = $this->requestAll;
}
/**
* @name :(获取首页设置)setting_read
* @author :lyh
* @method :post
* @time :2023/4/28 15:14
*/
public function setting_read(){
$info = CommonHelper::get_user_cache($this->model->getTable(),$this->user['project_id']);
if(empty($info)){
$info = $this->model->read(['project_id'=>$this->user['project_id']]);
if($info === false){
$this->fail('当前数据不存在');
}
CommonHelper::set_user_cache($info,$this->model->getTable(),$this->user['project_id']);
}
return $this->success($info);
}
/**
* @name :(添加或编辑)setting_save
* @author :lyh
* @method :post
* @time :2023/4/28 15:18
*/
public function setting_save(){
//查看数据是否存在
$info = $this->model->read(['project_id'=>$this->user['project_id']]);
if($info === false){
$this->param['operator_id'] = $this->user['id'];
$this->param['project_id'] = $this->user['project_id'];
$rs = $this->model->add($this->param);
}else{
$rs = $this->model->edit($this->param,['project_id'=>$this->user['project_id']]);
}
if($rs === false){
$this->fail('error');
}
return $this->success();
}
}
... ...
<?php
namespace App\Http\Logic\Bside\Setting;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\WebSetting\WebSettingService;
class WebSettingServiceLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new WebSettingService();
$this->param = $this->requestAll;
}
}
... ...
<?php
namespace App\Http\Controllers;
use App\Enums\Common\Code;
use App\Models\Image as ImageModel;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Intervention\Image\Facades\Image;
class ImageLogic
{
public $path = '';
public $request = '';
public function __construct(Request $request)
{
$this->request = $request;
$this->path = config('filesystems.disks')['upload']['root'].config('upload');
}
/**
* 图片上传
*/
public function upload() {
$this->request->validate([
'image'=>['required'],
],[
'image.required'=>'图片必须填写',
]);
$files = $this->request->file('image');
if (empty($files)) {
$this->response('没有上传的文件!', 400);
}
$type = $this->request->post('type', 'single');
if ($type == 'multi') {
return $this->multi($files);
} else {
return $this->single($files);
}
}
/**
* @name :上传图片
* @return void
* @author :liyuhang
* @method
*/
public function single($files){
$hash = hash_file('md5', $files->getPathname());
$url = $this->path;
$filename = date('ymdHis').rand(10000,99999);
$res = $this->request->file('image')->move($url,$filename);
if ($res === false) {
return $this->response($files->getError(), Code::USER_ERROR);
}
$imageModel = new ImageModel();
$data = [
'path' => $url.$filename,
'created_at' => date('Y-m-d H:i:s',time()),
'size' => $res->getSize(),
'hash' => $hash.$filename,
'type'=>$files->getClientOriginalExtension(),
];
$rs = $imageModel->add($data);
if ($rs === false) {
return $this->response('添加失败', Code::USER_ERROR);
}
return $hash.$filename;
}
/**
* 生成缩略图缓存
* @param type $info
* @param type $w
* @param type $h
* @return string
*/
private function cacheImage($info, $w, $h) {
$path = $info['path'];
$filename = $this->path . $info['hash'] . $w . '_' . $h;
Image::make($path)->resize($w, $h)->save($filename);
return $filename;
}
/**
* 多图片上传
* @param type $files file对象集合
* @return type
*/
private function multi($files) {
if (!is_array($files)) {
$files = [$files];
}
$save_data = [];
$data = [];
foreach ($files as $file) {
$hash = hash_file('md5', $file->getPathname());
$url = $this->path;
$filename = date('ymdHis').rand(10000,99999);
$res = $file->move($url,$filename);
if ($res === false) {
return $this->response($file->getError(), Code::USER_ERROR);
}
$save_data[] = [
'path' => $url.$filename,
'created_at' => date('Y-m-d H:i:s',time()),
'size' => $res->getSize(),
'hash' => $hash.$filename,
'type'=>$files->getClientOriginalExtension(),
];
$data[] = $hash.$filename;
}
$imageModel = new ImageModel();
$imageModel->insert($save_data);
return $data;
}
//下载
public function download($filename){
$path = Storage::path($filename);
return response()->download($path,time().rand(1,100000));
}
/**
* @name 统一返回参数
* @return JsonResponse
* @author :liyuhang
* @method
*/
public function response($msg = null,string $code = Code::SUCCESS,$data = [],$result_code = 200,$type = 'application/json'): JsonResponse
{
$code = Code::fromValue($code);
$result = [
'msg' => $msg == ' ' ? $code->description : $msg,
'code' => $code->value,
'data' => $data,
];
$this->header['Content-Type'] = $type;
$response = response($result,$result_code,$this->header);
throw new HttpResponseException($response);
}
}
... ...
<?php
namespace App\Models\Project;
use App\Models\Base;
class Country extends Base
{
protected $table = 'gl_project_country';
}
... ...
<?php
namespace App\Models;
class ProjectGroup extends Base
{
//设置关联表名
protected $table = 'gl_project_group';
//自动维护create_at创建时间 updated_at修改时间
public $timestamps = true;
}
<?php
namespace App\Models\WebSetting;
use App\Models\Base;
class WebSetting extends Base
{
protected $table = 'gl_web_setting';
}
... ...
<?php
namespace App\Models\WebSetting;
use App\Models\Base;
class WebSettingCountry extends Base
{
protected $table = 'gl_web_setting_country';
}
... ...
<?php
namespace App\Models\WebSetting;
use App\Models\Base;
class WebSettingForm extends Base
{
protected $table = 'gl_web_setting_from';
}
... ...
<?php
namespace App\Models\WebSetting;
use App\Models\Base;
class WebSettingHtml extends Base
{
protected $table = 'gl_web_setting_html';
}
... ...
<?php
namespace App\Models\WebSetting;
use App\Models\Base;
class WebSettingService extends Base
{
protected $table = 'gl_web_setting_service';
}
... ...
... ... @@ -129,7 +129,7 @@ return [
],
//操作日志
'operator_log' =>[
'log'=>true,//true开启
'log'=>false,//true开启
'action' => [],//不需要写入日志的方法
],
];
... ...
... ... @@ -106,7 +106,12 @@ Route::middleware(['bloginauth'])->group(function () {
//公用ai自动生成
Route::any('/ai_http_post', [\App\Http\Controllers\Bside\Ai\AiCommandController::class, 'ai_http_post'])->name('ai_http_post');
});
//ai指令
Route::prefix('setting')->group(function () {
//首页设置
Route::any('/', [\App\Http\Controllers\Bside\Setting\WebSettingController::class, 'lists'])->name('web_setting_lists');
Route::any('/save', [\App\Http\Controllers\Bside\Setting\WebSettingController::class, 'save'])->name('web_setting_save');
});
//产品
Route::prefix('product')->group(function () {
//产品
... ...