作者 刘锟

Merge remote-tracking branch 'origin/master' into akun

... ... @@ -79,7 +79,7 @@ class PushAiccData extends Command
$data['friend_id'] = $isExists->friend_id;
$data['user_id'] = $isExists->user_id;
$url = env('AICC_URL');
$url = env('AICC_URL') . env('AICC_PUSH_API_URL');
$msg = http_post($url, json_encode(compact('data')));
$status_code = 0;
if ($msg) {
... ... @@ -105,7 +105,7 @@ class PushAiccData extends Command
public function post_data($data)
{
$url = env('AICC_URL');
$url = env('AICC_URL') . env('AICC_PUSH_API_URL');
$msg = http_post($url, json_encode(compact('data')));
print_r($msg);
}
... ...
... ... @@ -24,21 +24,55 @@ class FileManageController extends BaseController
public function __construct(Request $request)
{
parent::__construct($request);
//判断是否开启
$project = Project::find($this->user['project_id']);
if(empty($project['is_upload_manage'])){
$this->fail('文件上传管理功能未开启');
if(!empty($this->user)){
$project = Project::find($this->user['project_id']);
if(empty($project['is_upload_manage'])){
$this->fail('文件上传管理功能未开启');
}
//判断是否开启
$this->upload_config = $project['upload_config'];
}
$this->upload_config = $project['upload_config'];
}
/**
* @remark :列表
* @name :index
* @author :lyh
* @method :post
* @time :2023/12/28 17:03
*/
public function index(FileManage $fileManage){
$this->map['project_id'] = $this->user['project_id'];
$this->request['name'] && $this->map['name'] = ['like','%'.$this->request['name'].'%'];
$lists = $fileManage->lists($this->map, $this->page, $this->row);
@file_put_contents(storage_path('logs/lyh_error.log'), var_export($lists, true) . PHP_EOL, FILE_APPEND);
if(!empty($lists) && !empty($lists['list'])){
foreach ($lists['list'] as $k => $v){
$v['download_url'] = url('b/file_manager_downLoad?path='.$v['path']);
$lists['list'][$k] = $v;
}
}
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @remark :下载方法
* @name :downLoad
* @author :lyh
* @method :post
* @time :2023/12/28 17:18
*/
public function downLoad(){
$username = basename($this->param['path']);
$fileUrl = 'https://file.globalso.com'.$this->param['path'];
// 设置响应头
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $username . '"');
// 下载文件
readfile($fileUrl);
}
public function upload(Request $request, FileManage $fileManage){
$request->validate([
'file'=>['required'],
... ...
... ... @@ -6,7 +6,9 @@ use App\Enums\Common\Code;
use App\Exceptions\BsideGlobalException;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Aside\ProjectAssociation\ProjectAssociationLogic;
use App\Models\ProjectAssociation\ProjectAssociation;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
... ... @@ -31,9 +33,9 @@ class ProjectAssociationController extends BaseController
if (empty($project_id)) {
$this->fail('请选择项目!', Code::USER_PARAMS_ERROE);
}
$status = (bool)request()->post('status', 1); # 1 - 正常, 0 - 禁用
$status = (bool)request()->post('status', 1); # 1 - 正常, 0 - 禁用
$user_id = (int)env('AICC_WECHAT_USER_ID') ?? 0;
$user_id = (int)env('AICC_WECHAT_USER_ID') ?? 0;
if (empty($user_id) && $status) {
$this->fail('请选择要绑定的AICC用户!', Code::USER_PARAMS_ERROE);
}
... ... @@ -44,8 +46,68 @@ class ProjectAssociationController extends BaseController
$nickname = request()->post('nickname', '');
$user_name = request()->post('user_name', '');
$image = request()->post('image', '');
$data = compact('project_id', 'user_id', 'friend_id', 'nickname', 'user_name', 'image');
$data = compact('project_id', 'user_id', 'friend_id', 'nickname', 'user_name', 'image');
$this->ProjectAssociationLogic->saveWeChatData($data);
$this->response('success');
}
public function check()
{
$project_id = (int)request()->input('project_id', 0);
$status = request()->input('status');
// 重载redis缓存
$cache = request()->input('cache');
if (isset($status)) {
$status = (int)$status ? ProjectAssociation::STATUS_NORMAL : ProjectAssociation::STATUS_DISABLED;
}
$isRes = $this->ProjectAssociationLogic->normal($project_id);
DB::beginTransaction();
try {
// 当数据不存在时并开启状态,自动添加一条数据
if (is_null($isRes) && (!is_null($status) && $status)) {
$isRes = $this->ProjectAssociationLogic->disabled($project_id);
if (is_null($isRes)) {
$isRes = new ProjectAssociation();
}
$isRes->project_id = $project_id;
$isRes->user_id = (int)env('AICC_WECHAT_USER_ID');
$isRes->status = $status;
$isRes->save();
DB::commit();
} // 关闭状态
elseif (!is_null($isRes) && (!is_null($status) && empty($status))) {
$isRes->status = $status;
$isRes->save();
DB::commit();
return [
'code' => Code::SUCCESS,
'data' => [],
'message' => '关闭AICC绑定成功!',
];
}
} catch (\Exception $exception) {
DB::rollBack();
$this->response('数据错误,请重试!', Code::SERVER_ERROR);
}
if (is_null($isRes)) {
$this->response('请开启AICC绑定!', Code::USER_ERROR, []);
}
$redis_key = 'aicc_friend_lists_' . (int)env('AICC_WECHAT_USER_ID');
$result = isset($cache) ? false : redis_get($redis_key);
if (empty($result)) {
$url = env('AICC_URL') . env('AICC_WECHAT_FRIEND_API_URL');
$result = curlGet($url);
redis_set($redis_key, json_encode($result));
} else {
$result = json_decode($result, true);
}
$result['info'] = [
'friend_id' => $isRes->friend_id ?? 0,
'nickname' => $isRes->nickname ?? '',
'user_name' => $isRes->user_name ?? '',
'image' => $isRes->image ?? '',
];
$this->response('success', Code::SUCCESS, $result);
}
}
... ...
... ... @@ -110,26 +110,23 @@ class DomainInfoLogic extends BaseLogic
}
/**
* @remark :删除域名
* @name :delDomain
* @author :lyh
* @method :post
* @time :2023/8/1 15:41
* 删除域名
* @return array
* @throws \App\Exceptions\AsideGlobalException
* @throws \App\Exceptions\BsideGlobalException
*/
public function delDomain(){
$ids = $this->param['id'];
// 初始化数据
if (FALSE == is_array($ids))
$ids = [$ids];
foreach ($ids as $k => $v){
$info = $this->model->read(['id'=>$v]);
$deployOptimizeModel = new DeployOptimize();
$domainInfo = $deployOptimizeModel->read(['domain'=>$info['domain']]);
if($domainInfo !== false){
$this->fail('当前域名正在使用中');
}
}
$this->param['id'] = ['in',$ids];
$rs = $this->model->del($this->param);
if($rs === false){
$this->fail('error');
$domain = DomainInfo::where(['id' => $v])->first();
if (empty($domain))
continue;
if (FALSE == empty($domain['project_id']))
$this->fail($domain->domain . '域名正在使用中, 删除失败!');
$domain->delete();
}
return $this->success();
}
... ...
... ... @@ -5,6 +5,8 @@ namespace App\Http\Logic\Aside\ProjectAssociation;
use App\Enums\Common\Code;
use App\Http\Logic\Logic;
use App\Models\ProjectAssociation\ProjectAssociation;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class ProjectAssociationLogic extends Logic
... ... @@ -24,4 +26,25 @@ class ProjectAssociationLogic extends Logic
}
return $status;
}
/**
* status - 正常
* @param $project_id
* @return ProjectAssociation|Builder|Model|object|null
*/
public function normal($project_id)
{
return ProjectAssociation::query()->whereProjectId($project_id)->whereStatus(ProjectAssociation::STATUS_NORMAL)->first();
}
/**
* status - 禁用
* @param $project_id
* @return ProjectAssociation|Builder|Model|object|null
*/
public function disabled($project_id)
{
return ProjectAssociation::query()->whereProjectId($project_id)->whereStatus(ProjectAssociation::STATUS_DISABLED)->first();
}
}
... ...
... ... @@ -10,6 +10,7 @@
namespace App\Http\Logic\Bside\BTemplate;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\RouteMap\RouteMap;
use App\Models\Service\Service as ServiceSettingModel;
use App\Models\Template\BTemplate;
use App\Models\Template\BTemplateCommon;
... ... @@ -109,6 +110,8 @@ class InitHtmlLogic extends BaseLogic
$bTemplateMainModel->edit($data,['id'=>$mainInfo['id']]);
}
$this->saveDetailCommonHtml($this->param['html'],$this->param['type'],$template_id,$is_custom,$is_list);
$route = RouteMap::getRoute('all',0,$this->user['project_id']);
$this->curlDelRoute(['route'=>$route,'new_route'=>$route]);
return $this->success();
}
/**
... ...
... ... @@ -73,6 +73,8 @@ Route::middleware(['aloginauth'])->group(function () {
Route::any('/log', [Aside\Ai\AiLogController::class, 'lists'])->name('admin.lists');
// 绑定AICC微信应用
Route::post('/wechat', [ProjectAssociationController::class, 'saveWeChatData'])->name('admin.aicc.wechat');
// OA后台开启关闭AICC用户绑定
Route::post('/check', [ProjectAssociationController::class, 'check'])->name('admin.aicc.check');
});
//特殊模块权限设置
Route::prefix('special')->group(function () {
... ...
... ... @@ -470,6 +470,7 @@ Route::group([], function () {
Route::any('/login', [\App\Http\Controllers\Bside\LoginController::class, 'login'])->name('login');
Route::any('/projectLogin', [\App\Http\Controllers\Bside\LoginController::class, 'projectLogin'])->name('projectLogin');
Route::any('/ceshi', [\App\Http\Controllers\Bside\LoginController::class, 'ceshi'])->name('ceshi');
Route::any('/file_manager_downLoad', [\App\Http\Controllers\Bside\FileManage\FileManageController::class, 'downLoad'])->name('file_manager_downLoad');
Route::any('/stringTranslation', [\App\Http\Controllers\Bside\LoginController::class, 'stringTranslation'])->name('stringTranslation');
Route::any('/sendLoginSms', [\App\Http\Controllers\Bside\LoginController::class, 'sendLoginSms'])->name('sendLoginSms');
Route::any('/autologin', [\App\Http\Controllers\Bside\LoginController::class, 'autologin'])->name('autologin');
... ...