作者 赵彬吉
... ... @@ -41,6 +41,7 @@ class Count extends Command
public function handle()
{
$list = DB::table('gl_project')->where('gl_project.extend_type','=',0)
->where('gl_project.type','!=',0)
->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id')
->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
->select($this->selectParam())->get();
... ...
... ... @@ -37,6 +37,7 @@ class InquiryMonthlyCount extends Command
*/
public function handle(){
$list = DB::table('gl_project')->where('gl_project.extend_type','=',0)
->where('gl_project.type','!=',0)
->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id')
->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
->select($this->selectParam())->get()->toArray();
... ...
... ... @@ -69,7 +69,7 @@ class Common
}
} else {
//带原语种翻译
$result = Translate::translateSl($param['keywords'])->json();
$result = Translate::translateSl($param['keywords']);
if (isset($result['texts']['sl']) && isset(Translate::$tls_list[$result['texts']['sl']])) {
$lang = Translate::$tls_list[$result['texts']['sl']]['text'];
} else {
... ...
<?php
namespace App\Http\Controllers\Bside\Import;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\Import\ImportLogic;
use App\Http\Requests\Bside\Import\ImportTaskRequest;
/**
* 新闻、博客、商品导入
* Class ImportController
* @package App\Http\Controllers\Bside\Import
*/
class ImportController extends BaseController
{
/**
* 新增导入任务
* @param ImportTaskRequest $request
* @param ImportLogic $logic
* @throws \App\Exceptions\AsideGlobalException
* @throws \App\Exceptions\BsideGlobalException
* @author Akun
* @date 2023/09/20 11:36
*/
public function save(ImportTaskRequest $request,ImportLogic $logic)
{
$request->validated();
$logic->addImportTask();
$this->response('success', Code::SUCCESS);
}
}
... ...
... ... @@ -41,19 +41,78 @@ class HrLogic extends BaseLogic
foreach ($this->model::specieField() as $v){
$this->param = $this->setJson($v,$this->param);
}
DB::beginTransaction();
try {
if(isset($this->param['id']) && !empty($this->param['id'])){
$this->model->edit($this->param,['id'=>$this->param['id']]);
$this->editHrManager();
}else{
//添加管理员账号
$this->param['manage_id'] = $this->addManager($this->param['mobile'],$this->param['name']);
$this->addHrManager();
}
return $this->success();
}
/**
* @remark :添加人事信息时 同步添加管理员账号
* @name :addManager
* @author :lyh
* @method :post
* @time :2023/9/6 10:18
*/
public function addHrManager(){
$managerModel = new Manage();
$info = $managerModel->read(['mobile'=>$this->param['mobile']]);
if($info !== false){
$this->fail('当前号码已存在');
}
$data = [
'name'=>$this->param['name'],
'mobile'=>$this->param['mobile'],
'password'=>Hash::make('globalsov6'),
'gid'=>4,
];
DB::beginTransaction();
try {
$managerModel = new Manage();
$this->param['manage_id'] = $managerModel->addReturnId($data);
$this->model->add($this->param);
DB::commit();
}catch (\Exception $e){
DB::rollBack();
$this->fail('系统错误请联系管理员');
}
return $this->success();
}
/**
* @remark :编辑人事信息
* @name :editHrManager
* @author :lyh
* @method :post
* @time :2023/9/20 15:06
*/
public function editHrManager(){
$hrInfo = $this->model->read(['id'=>$this->param['id']],['id','mobile','manage_id']);
if($hrInfo === false){
$this->fail('当前数据不存在或已被删除');
}
$managerModel = new Manage();
if($hrInfo['mobile'] != $this->param['mobile']){
$mobileInfo = $this->model->read(['mobile'=>$this->param['mobile']],['id']);
if($mobileInfo !== false){
$this->fail('当前人事信息中手机号已存在');
}
$managerMobileInfo = $managerModel->read(['mobile'=>$this->param['mobile']],['id']);
if($managerMobileInfo !== false){
$this->fail('当前管理员信息中手机号已存在');
}
}
DB::beginTransaction();
try {
//同步更新管理员手机号码
$managerModel->edit(['mobile'=>$this->param['mobile']],['id'=>$hrInfo['manage_id']]);
$this->model->edit($this->param,['id'=>$this->param['id']]);
DB::commit();
}catch (\Exception $e){
DB::rollBack();
$this->fail('系统错误');
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
... ... @@ -81,6 +140,13 @@ class HrLogic extends BaseLogic
return $this->success($data);
}
/**
* @remark :转换
* @name :setJson
* @author :lyh
* @method :post
* @time :2023/9/20 15:23
*/
//数组转json存储
public function setJson($str,$param){
if(isset($param[$str]) && is_array($param[$str])){
... ... @@ -194,27 +260,6 @@ class HrLogic extends BaseLogic
return $this->success($data);
}
/**
* @remark :添加人事信息时 同步添加管理员账号
* @name :addManager
* @author :lyh
* @method :post
* @time :2023/9/6 10:18
*/
public function addManager($mobile,$name){
$managerModel = new Manage();
$info = $managerModel->read(['mobile'=>$mobile]);
if($info !== false){
$this->fail('当前号码已存在');
}
$data = [
'name'=>$name,
'mobile'=>$mobile,
'password'=>Hash::make('globalsov6'),
'gid'=>4,
];
return $managerModel->addReturnId($data);
}
/**
* @param $page_size
... ...
... ... @@ -6,6 +6,7 @@ namespace App\Http\Logic\Aside\Manage;
use App\Helper\Common;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Manage\Manage;
use App\Models\Manage\ManageHr;
use App\Models\Manage\Menu;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Hash;
... ... @@ -35,22 +36,65 @@ class ManageLogic extends BaseLogic
public function managerSave(){
try {
if(isset($this->param['id']) && !empty($this->param['id'])){
if(isset($this->param['password']) && !empty($this->param['password'])){
$this->param['password'] = Hash::make($this->param['password']);
}
$this->model->edit($this->param,['id'=>$this->param['id']]);
$this->editManager();
Common::del_user_cache('manager',$this->param['id'],'A');
}else{
$this->param['password'] = Hash::make($this->param['password']);
$this->model->add($this->param);
$this->addManager();
}
}catch (\Exception $e){
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
/**
* @remark :添加管理员
* @name :addManager
* @author :lyh
* @method :post
* @time :2023/9/20 15:49
*/
public function addManager(){
$managerInfo = $this->model->read(['mobile'=>$this->param['mobile']]);
if($managerInfo !== false){
$this->fail('当前手机号码已存在');
}
$this->param['password'] = Hash::make(isset($this->param['password']) ?? 'globalsov6');
$this->model->add($this->param);
$this->success();
}
/**
* @remark :编辑管理员
* @name :editManager
* @author :lyh
* @method :post
* @time :2023/9/20 15:51
*/
public function editManager(){
$info = $this->model->read(['id'=>$this->param['id']]);
if($info['mobile'] != $this->param['mobile']){
$mobileInfo = $this->model->read(['mobile'=>$this->param['mobile']]);
if($mobileInfo !== false){
$this->fail('当前手机号码在管理员信息中已存在');
}
//查看人事信息中是否关联当前管理员账号
$hrManagerModel = new ManageHr();
$hrInfo = $hrManagerModel->read(['manage_id'=>$this->param['id']]);
if($hrInfo !== false){
//查看是否号码在存在人事表中
$hrMobileInfo = $hrManagerModel->read(['mobile'=>$this->param['mobile']]);
if($hrMobileInfo !== false){
$this->fail('当前号码已存在人事信息中');
}
$hrManagerModel->edit(['mobile'=>$this->param['mobile']],['manage_id'=>$this->param['id']]);
}
}
if(isset($this->param['password']) && !empty($this->param['password'])){
$this->param['password'] = Hash::make($this->param['password']);
}
$this->model->edit($this->param,['id'=>$this->param['id']]);
}
/**
* @remark :设置排序
... ... @@ -75,15 +119,11 @@ class ManageLogic extends BaseLogic
* @time :2023/8/28 16:10
*/
public function getManagerInfo(){
$info = Common::get_user_cache('manager',$this->param['id'],'A');
if(empty($info)){
$info = $this->model->read(['id'=>$this->param['id']],
['id','name','email','mobile','status','gid','sort','dept_id','is_dept_manager','created_at','role','updated_at']);
if($info === false){
$this->fail('error');
}
Common::set_user_cache($info,'manager',$this->param['id'],'A');
}
return $this->success($info);
}
... ...
<?php
namespace App\Http\Logic\Bside\Import;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\Import\ImportTask;
class ImportLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->param = $this->requestAll;
$this->model = new ImportTask();
}
/**
* 新增导入任务
* @return array
* @throws \App\Exceptions\AsideGlobalException
* @throws \App\Exceptions\BsideGlobalException
* @author Akun
* @date 2023/09/20 11:17
*/
public function addImportTask()
{
$this->param['project_id'] = $this->user['project_id'];
$this->param['user_id'] = $this->user['id'];
$rs = $this->model->add($this->param);
if($rs === false){
$this->fail('error');
}
return $this->success();
}
}
... ...
... ... @@ -52,18 +52,18 @@ class KeywordLogic extends BaseLogic
DB::beginTransaction();
try {
if(isset($this->param['id']) && !empty($this->param['id'])){
$route = RouteMap::setRoute($this->param['title'], RouteMap::SOURCE_PRODUCT_KEYWORD, $this->param['id'], $this->user['project_id']);
$id = $this->editCategoryRoute($this->param['id'],$route);
$this->model->edit($this->param,['id'=>$id]);
$info = $this->model->read(['id'=>$this->param['id']],['id','route']);
$route = $info['route'];
$this->model->edit($this->param,['id'=>$info['id']]);
}else{
$this->param['project_id'] = $this->user['project_id'];
$this->param['created_at'] = date('Y-m-d H:i:s');
$this->param['updated_at'] = $this->param['created_at'];
$id = $this->model->insertGetId($this->param);
}
//路由映射
$route = RouteMap::setRoute($this->param['title'], RouteMap::SOURCE_PRODUCT_KEYWORD, $id, $this->user['project_id']);
$this->model->edit(['route'=>$route],['id'=>$id]);
}
//清除缓存
Common::del_user_cache('product_keyword',$this->user['project_id']);
DB::commit();
... ... @@ -77,26 +77,6 @@ class KeywordLogic extends BaseLogic
}
/**
* @remark :编辑路由时生成路由记录
* @name :editCategoryRoute
* @author :lyh
* @method :post
* @time :2023/9/7 10:51
*/
public function editCategoryRoute($id,$route){
//生成一条删除路由记录
$info = $this->model->read(['id'=>$id],['id','route']);
if($info['route'] != $route){
$data = [
'source'=>RouteMap::SOURCE_PRODUCT_KEYWORD,
'route'=>$info['route'],
];
$this->setRouteDeleteSave($data);
}
return $id;
}
/**
* @remark :批量添加数据
* @name :batchAdd
* @author :lyh
... ...
... ... @@ -82,7 +82,7 @@ class UserLoginLogic
$token = md5(uniqid().$info['id']);
//存储缓存
$info['token'] = $token;
Cache::add($token,$info,3600);
Cache::add($token,$info,3600 * 6);
//更新用户信息
$rs = $this->model->edit(['token'=>$token],['id'=>$info['id']]);
if($rs === false){
... ... @@ -121,7 +121,7 @@ class UserLoginLogic
//存储缓存
$info['token'] = $token;
$info['manager_id'] = $data['manager_id'];//代表自动登录写入日志
Cache::add($token,$info,3600);
Cache::add($token,$info,3600 * 6);
}
Common::set_user_login(['user_id'=>$info['id'],'ip'=>request()->ip(),
'project_id'=>$info['project_id'], 'type'=>1 ,'remark' => '自动登录,操作管理员为:'.$data['manager_id']]);
... ...
... ... @@ -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' => '状态值不正确',
];
... ...
<?php
namespace App\Http\Requests\Bside\Import;
use App\Models\Import\ImportTask;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
/**
* 产品新闻博客导入任务
* @author:akun
* @time 2023/9/20 11:32
* Class NavRequest
* @package App\Http\Requests\Bside\Nav
*/
class ImportTaskRequest 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 [
'type' => ['required', Rule::in([ImportTask::TYPE_PROJECT, ImportTask::TYPE_NEWS, ImportTask::TYPE_BLOG])],
'file_url' => ['required'],
];
}
public function messages()
{
return [
'type.required' => '导入类型必须',
'type.in' => '导入类型错误',
'file_url.required' => '文件地址必须',
];
}
}
... ...
<?php
namespace App\Models\Import;
use App\Models\Base;
class ImportTask extends Base
{
protected $table = 'gl_import_task';
const STATUS_UN = 0;//未开始
const STATUS_ING = 1;//导入中
const STATUS_COM = 2;//导入完成
const TYPE_PROJECT = 1;//产品
const TYPE_NEWS = 2;//新闻
const TYPE_BLOG = 3;//博客
}
... ...
... ... @@ -346,6 +346,11 @@ Route::middleware(['bloginauth'])->group(function () {
Route::prefix('tdk')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\BCom\UpdateController::class, 'updateSeoTdk'])->name('tdk_updateSeoTdk');
});
//导入任务
Route::prefix('import')->group(function () {
Route::any('/add_task', [\App\Http\Controllers\Bside\Import\ImportController::class, 'save'])->name('import_add_task');
});
});
//无需登录验证的路由组
Route::group([], function () {
... ...