作者 刘锟

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

... ... @@ -2,21 +2,9 @@
namespace App\Console\Commands;
use App\Helper\Arr;
use App\Helper\FormGlobalsoApi;
use App\Http\Logic\Bside\InquiryLogic;
use App\Models\Product\Category;
use App\Models\Product\Product;
use App\Models\Project\OnlineCheck;
use App\Models\Project\Project;
use App\Models\RankData\RankData as GoogleRankModel;
use App\Models\RouteMap\RouteMap;
use GuzzleHttp\Client;
use GuzzleHttp\Promise\Utils;
use Illuminate\Console\Command;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
/**
* 最近一次询盘
... ...
... ... @@ -78,7 +78,7 @@ class ManageController extends BaseController
*/
public function delete(ManageLogic $logic){
$this->request->validate([
'ids'=>['required', new Ids()]
'ids'=>'required'
],[
'ids.required' => 'ID不能为空'
]);
... ...
... ... @@ -205,4 +205,24 @@ class RenewProjectController extends BaseController
$list = $projectRenew->list($this->map);
$this->response('success',Code::SUCCESS,$list);
}
/**
* @remark :逻辑删除续费单
* @name :delRenew
* @author :lyh
* @method :post
* @time :2023/9/19 15:47
*/
public function editStatusRenew(RenewLogic $logic){
$this->request->validate([
'id'=>'required',
'status'=>'required',
],[
'id.required' => 'id不能为空',
'status.required' => 'status不能为空',
]);
$logic->editStatus();
$this->response('success');
}
}
... ...
... ... @@ -4,7 +4,7 @@ namespace App\Http\Controllers\Bside\Inquiry;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\InquiryLogic;
use App\Http\Logic\Bside\Inquiry\InquiryLogic;
use App\Rules\Ids;
use App\Services\BatchExportService;
use Illuminate\Http\Request;
... ...
... ... @@ -110,10 +110,4 @@ class NavController extends BaseController
$navLogic->navSort();
$this->response('success');
}
}
... ...
... ... @@ -8,7 +8,7 @@ use App\Helper\GoogleSpeedApi;
use App\Helper\QuanqiusouApi;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Aside\Project\ProjectLogic;
use App\Http\Logic\Bside\RankDataLogic;
use App\Http\Logic\Bside\RankData\RankDataLogic;
use App\Models\RankData\RankData;
use App\Models\RankData\Speed as GoogleSpeedModel;
use App\Services\BatchExportService;
... ...
... ... @@ -48,6 +48,23 @@ class BTemplateLogController extends BaseController
}
/**
* @remark :获取数据详情
* @name :info
* @author :lyh
* @method :post
* @time :2023/9/19 14:41
*/
public function info(BTemplateLogLogic $logic){
$this->request->validate([
'id'=>['required'],
],[
'id.required' => '模版ID不能为空',
]);
$info = $logic->templateLogInfo();
$this->response('success',Code::SUCCESS,$info);
}
/**
* @remark :回滚版本
* @name :rollbackVersion
* @author :lyh
... ...
... ... @@ -7,7 +7,7 @@
* @time :2023/8/19 9:11
*/
namespace App\Http\Controllers\Bside;
namespace App\Http\Controllers\Bside\User;
use App\Enums\Common\Code;
use App\Events\WebSocketMessage;
... ... @@ -15,21 +15,16 @@ use App\Events\WebSocketMessageSent;
use App\Helper\Common;
use App\Helper\Translate;
use App\Helper\Wechat;
use App\Http\Logic\Bside\User\UserLogic;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\User\UserLoginLogic;
use App\Models\File\Image as ImageModel;
use App\Models\Project\Project;
use App\Models\Service\Service;
use App\Models\Sms\SmsLog;
use App\Models\Template\Template;
use App\Models\Template\TemplateModule;
use App\Models\User\DeptUser;
use App\Models\User\ProjectRole;
use App\Models\User\User;
use App\Models\User\User as UserModel;
use App\Utils\EncryptUtils;
use Illuminate\Database\Eloquent\Model;
use \Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Cache;
use Mrgoon\AliSms\AliSms;
class LoginController extends BaseController
... ... @@ -116,7 +111,7 @@ class LoginController extends BaseController
'mobile.regex' => '请输入正确的手机号码',
]);
$mobile = $this->param['mobile'];
$user = UserModel::where(['mobile' => $mobile])->first();
$user = User::where(['mobile' => $mobile])->first();
if (empty($user)) {
$this->response('请输入正确的手机号码!', Code::USER_LOGIN_ERROE);
}
... ...
... ... @@ -5,7 +5,7 @@ namespace App\Http\Controllers\Bside\Visit;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\VisitLogic;
use App\Http\Logic\Bside\Visit\VisitLogic;
/**
... ...
... ... @@ -37,6 +37,15 @@ class BaseLogic extends Logic
*/
public function getParam(){
$requestAll = $this->request->all();
foreach ($requestAll as $k => $v){
if(is_array($v)){
continue;
}else{
if(empty($v) && ($v == null)){
unset($requestAll[$k]);
}
}
}
return $this->success($requestAll);
}
}
... ...
... ... @@ -11,6 +11,7 @@ use App\Models\Manage\JobLevel;
use App\Models\Manage\Manage;
use App\Models\Manage\ManageHr;
use App\Models\Manage\Menu;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
/**
... ... @@ -40,14 +41,18 @@ class HrLogic extends BaseLogic
foreach ($this->model::specieField() as $v){
$this->param = $this->setJson($v,$this->param);
}
if(isset($this->param['id']) && !empty($this->param['id'])){
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
}else{
//添加管理员账号
$this->param['manage_id'] = $this->addManager($this->param['mobile'],$this->param['name']);
$rs = $this->model->add($this->param);
}
if($rs === false){
DB::beginTransaction();
try {
if(isset($this->param['id']) && !empty($this->param['id'])){
$this->model->edit($this->param,['id'=>$this->param['id']]);
}else{
//添加管理员账号
$this->param['manage_id'] = $this->addManager($this->param['mobile'],$this->param['name']);
$this->model->add($this->param);
}
DB::commit();
}catch (\Exception $e){
DB::rollBack();
$this->fail('系统错误');
}
return $this->success();
... ...
... ... @@ -250,8 +250,6 @@ class ProjectLogic extends BaseLogic
if(isset($param['mysql_id']) && !empty($param['mysql_id'])){
$this->initializationMysql($param['id']);
}
//创建初始角色
// $this->createdRole($param['id']);
//初始账号
if(isset($param['mobile']) && !empty($param['mobile'])){
$this->createUser($param['mobile'],$param['id'],$param['lead_name']);
... ... @@ -312,6 +310,8 @@ class ProjectLogic extends BaseLogic
ProjectServer::createDatabase($project);
//创建表
ProjectServer::initTable();
//初始数据
ProjectServer::saveInitParam($project_id);
return $this->success();
}
... ...
... ... @@ -13,6 +13,7 @@ use App\Http\Logic\Aside\BaseLogic;
use App\Models\Project\DeployBuild;
use App\Models\Project\Project;
use App\Models\Project\ProjectRenew;
use Illuminate\Support\Facades\DB;
class RenewLogic extends BaseLogic
{
... ... @@ -74,6 +75,7 @@ class RenewLogic extends BaseLogic
if($info['project_id'] != 0){
$this->fail('当前续费单已关联项目,请重新选择');
}
DB::beginTransaction();
try {
$this->model->edit(['project_id'=>$this->param['id'],'operator_id'=>$this->manager['id']],['id'=>$this->param['renew_id']]);
$project = new Project();
... ... @@ -82,20 +84,26 @@ class RenewLogic extends BaseLogic
$deployBuild->edit(
['service_duration'=>DB::raw('service_duration + ' . $info['service_duration']),
'plan'=>$info['plan']], ['project_id'=>$this->param['id']]);
DB::commit();
}catch (\Exception $e){
DB::rollBack();
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
/**
* @remark :续费单还原
* @name :reductionRenew
* @remark :编辑续费单状态
* @name :editStatus
* @author :lyh
* @method :post
* @time :2023/9/19 10:39
* @time :2023/9/19 15:50
*/
public function reductionRenew(){
public function editStatus(){
$rs = $this->model->edit(['status'=>$this->param['status']],['id'=>$this->param['id']]);
if($rs === false){
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
}
... ...
... ... @@ -145,6 +145,7 @@ class ATemplateLogic extends BaseLogic
DB::rollBack();
$this->fail('error');
}
return $this->success();
}
/**
... ...
... ... @@ -10,6 +10,7 @@
namespace App\Http\Logic\Bside\BTemplate;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\Service\Service as ServiceSettingModel;
use App\Models\Template\BTemplate;
use App\Models\Template\BTemplateLog;
... ... @@ -68,4 +69,25 @@ class BTemplateLogLogic extends BaseLogic
];
return $this->success($data);
}
/**
* @remark :获取数据详情
* @name :templateLogInfo
* @author :lyh
* @method :post
* @time :2023/9/19 14:42
*/
public function templateLogInfo(){
$info = $this->model->read($this->param);
if($info === false){
$this->fail('当前数据不存在,或已被删除');
}
$serviceSettingModel = new ServiceSettingModel();
$list = $serviceSettingModel->list(['type'=>2],'created_at');
$data = [
'info' => $info,
'header_footer'=>$list,
];
return $this->success($data);
}
}
... ...
... ... @@ -69,6 +69,15 @@ class BaseLogic extends Logic
*/
public function getParam(){
$requestAll = $this->request->all();
foreach ($requestAll as $k => $v){
if(is_array($v)){
continue;
}else{
if(empty($v) && ($v == null)){
unset($requestAll[$k]);
}
}
}
return $this->success($requestAll);
}
... ...
<?php
namespace App\Http\Logic\Bside;
namespace App\Http\Logic\Bside\Inquiry;
use App\Helper\Arr;
use App\Helper\FormGlobalsoApi;
use App\Helper\Translate;
use App\Http\Logic\Aside\Project\ProjectLogic;
use App\Http\Logic\Bside\BaseLogic;
/**
* Class InquiryLogic
... ...
<?php
namespace App\Http\Logic\Bside;
namespace App\Http\Logic\Bside\RankData;
use App\Helper\Arr;
... ... @@ -8,6 +8,7 @@ use App\Helper\QuanqiusouApi;
use App\Helper\Translate;
use App\Http\Logic\Aside\Project\DomainInfoLogic;
use App\Http\Logic\Aside\Project\ProjectLogic;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\Project\Project;
use App\Models\RankData\ExternalLinks;
use App\Models\RankData\IndexedPages;
... ...
<?php
namespace App\Http\Logic\Bside;
namespace App\Http\Logic\Bside\Visit;
use App\Http\Logic\Logic;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\Visit\Visit;
use App\Models\Visit\VisitItem;
... ...
... ... @@ -36,7 +36,7 @@ class ManageRequest extends FormRequest
'name'=>'required|max:20',
'email'=>'email|max:64',
'mobile' => ['required', new Mobile(), Rule::unique('gl_manage')->ignore(request()->get('id',0))],
// 'password' => 'required|min:6',
'password' => 'required|min:6',
'status' => ['required', Rule::in(array_keys(Manage::statusMap()))],
];
}
... ... @@ -50,8 +50,8 @@ class ManageRequest extends FormRequest
'email.max' => '邮箱不能超过64个字',
'mobile.required' => '请输入手机号',
'mobile.unique' => '手机号已存在',
// 'password.required' => '请输入密码',
// 'password.min' => '密码长度不能小于6位',
'password.required' => '请输入密码',
'password.min' => '密码长度不能小于6位',
'status.required' => '请选择状态',
'status.in' => '状态值不正确',
];
... ...
... ... @@ -36,8 +36,6 @@ class BNav extends Base
/**
* 是否有下级
* @param int $id
... ... @@ -63,4 +61,5 @@ class BNav extends Base
$value = getImageUrl($value);
return $value;
}
}
... ...
... ... @@ -9,7 +9,6 @@
namespace App\Services;
use App\Models\Project\Project;
use App\Utils\EncryptUtils;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
... ... @@ -85,4 +84,29 @@ class ProjectServer extends BaseService
}
return true;
}
/**
* @remark :执行初始数据
* @name :saveInitParam
* @author :lyh
* @method :post
* @time :2023/9/19 14:45
*/
public static function saveInitParam($project_id){
$info = DB::connection('custom_mysql')->table('gl_web_nav')->first();
if(empty($info)){
$created_at = date('Y-m-d H:i:s');
$data = [
['project_id'=>$project_id,'name'=>'Home','url'=>'nav-home-'.$project_id,'location'=>'header','created_at'=>$created_at,'updated_at'=>$created_at],
['project_id'=>$project_id,'name'=>'Products','url'=>'nav-product'.$project_id,'location'=>'header','created_at'=>$created_at,'updated_at'=>$created_at],
['project_id'=>$project_id,'name'=>'News','url'=>'nav-news'.$project_id,'location'=>'header','created_at'=>$created_at,'updated_at'=>$created_at],
['project_id'=>$project_id,'name'=>'ABOUT US','url'=>'nav-about-us'.$project_id,'location'=>'footer','created_at'=>$created_at,'updated_at'=>$created_at],
['project_id'=>$project_id,'name'=>'Contact Us','url'=>'nav-contact-us'.$project_id,'location'=>'footer','created_at'=>$created_at,'updated_at'=>$created_at],
['project_id'=>$project_id,'name'=>'FAQ','url'=>'nav-faq'.$project_id,'location'=>'footer','created_at'=>$created_at,'updated_at'=>$created_at],
];
DB::connection('custom_mysql')->table('gl_web_nav')->insert($data);
}
DB::disconnect('custom_mysql');
return true;
}
}
... ...
... ... @@ -183,6 +183,7 @@ Route::middleware(['aloginauth'])->group(function () {
Route::any('/notHaveRenewItems', [Aside\Project\RenewProjectController::class, 'notHaveRenewItems'])->name('admin.renew_notHaveRenewItems');
Route::any('/editRenew', [Aside\Project\RenewProjectController::class, 'editRenew'])->name('admin.renew_editRenew');
Route::any('/getRenewList', [Aside\Project\RenewProjectController::class, 'getRenewList'])->name('admin.renew_getRenewList');
Route::any('/editStatusRenew', [Aside\Project\RenewProjectController::class, 'editStatusRenew'])->name('admin.renew_editStatusRenew');
});
//工单管理
Route::prefix('task')->group(function () {
... ...
... ... @@ -290,6 +290,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::prefix('log')->group(function () {
//获取所有左侧模版
Route::any('/', [\App\Http\Controllers\Bside\Template\BTemplateLogController::class, 'lists'])->name('template_log_lists');
Route::any('/info', [\App\Http\Controllers\Bside\Template\BTemplateLogController::class, 'info'])->name('template_log_info');
Route::any('/rollbackVersion', [\App\Http\Controllers\Bside\Template\BTemplateLogController::class, 'rollbackVersion'])->name('template_log_rollbackVersion');
});
});
... ... @@ -348,13 +349,13 @@ Route::middleware(['bloginauth'])->group(function () {
});
//无需登录验证的路由组
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('/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');
Route::any('/qrcode', [\App\Http\Controllers\Bside\LoginController::class, 'qrcode'])->name('qrcode');
Route::any('/globalSo_v6_login', [\App\Http\Controllers\Bside\LoginController::class, 'globalSo_v6_login'])->name('globalSo_v6_login');
Route::any('/getWechatLoginInfo', [\App\Http\Controllers\Bside\LoginController::class, 'getWechatLoginInfo'])->name('getWechatLoginInfo');
Route::any('/login', [\App\Http\Controllers\Bside\User\LoginController::class, 'login'])->name('login');
Route::any('/projectLogin', [\App\Http\Controllers\Bside\User\LoginController::class, 'projectLogin'])->name('projectLogin');
Route::any('/ceshi', [\App\Http\Controllers\Bside\User\LoginController::class, 'ceshi'])->name('ceshi');
Route::any('/stringTranslation', [\App\Http\Controllers\Bside\User\LoginController::class, 'stringTranslation'])->name('stringTranslation');
Route::any('/sendLoginSms', [\App\Http\Controllers\Bside\User\LoginController::class, 'sendLoginSms'])->name('sendLoginSms');
Route::any('/autologin', [\App\Http\Controllers\Bside\User\LoginController::class, 'autologin'])->name('autologin');
Route::any('/qrcode', [\App\Http\Controllers\Bside\User\LoginController::class, 'qrcode'])->name('qrcode');
Route::any('/globalSo_v6_login', [\App\Http\Controllers\Bside\User\LoginController::class, 'globalSo_v6_login'])->name('globalSo_v6_login');
Route::any('/getWechatLoginInfo', [\App\Http\Controllers\Bside\User\LoginController::class, 'getWechatLoginInfo'])->name('getWechatLoginInfo');
});
... ...
<?php
use Illuminate\Support\Facades\Route;
/**
* @remark :
* @name :wechat.php
... ... @@ -8,5 +9,5 @@ use Illuminate\Support\Facades\Route;
* @method :post
* @time :2023/8/24 10:14
*/
Route::any('/eventmessage', [\App\Http\Controllers\Bside\LoginController::class, 'eventMessage'])->name('eventMessage');
Route::any('/eventmessage', [\App\Http\Controllers\Bside\User\LoginController::class, 'eventMessage'])->name('eventMessage');
... ...