作者 赵彬吉
... ... @@ -55,7 +55,7 @@ class UpdateRoute extends Command
*/
public function handle(){
$projectModel = new Project();
$list = $projectModel->list(['id'=>687]);
$list = $projectModel->list(['id'=>775]);
$data = [];
foreach ($list as $v){
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
... ... @@ -110,7 +110,7 @@ class UpdateRoute extends Command
// $tag = "-tag";
// if ((substr($v['route'], -strlen($tag)) === $tag)) {
// echo date('Y-m-d H:i:s') . '拼接 :'.$v['id'] . PHP_EOL;
//// $route = Translate::tran($v['route'], 'en').$tag;
// $route = Translate::tran($v['route'], 'en').$tag;
// // 如果不是以 '-tag' 结尾,则拼接上 '-tag'
// $route = trim($v['route'],'-tag');
// $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']);
... ...
... ... @@ -594,12 +594,12 @@ if (!function_exists('getFileUrl')) {
if(substr($path,0,2) == '//'){
return 'https:'.$path;
}
$file_type = pathinfo($path, PATHINFO_EXTENSION);
$fileTypeArr = ['zip', 'pdf', 'mp4', 'doc', 'docx', 'm4v', 'xlsx'];
if(in_array(strtolower($file_type),$fileTypeArr)){
$cdn2 = config('filesystems.disks.cos')['cdn2'];
return $cdn2.$path;
}
// $file_type = pathinfo($path, PATHINFO_EXTENSION);
// $fileTypeArr = ['zip', 'pdf', 'mp4', 'doc', 'docx', 'm4v', 'xlsx'];
// if(in_array(strtolower($file_type),$fileTypeArr)){
// $cdn2 = config('filesystems.disks.cos')['cdn2'];
// return $cdn2.$path;
// }
if($location == 0){
//v6-file.globalso.com
$cos = config('filesystems.disks.cos');
... ...
... ... @@ -58,9 +58,11 @@ class UpdateController extends BaseController
$this->request->validate([
'project_id' => 'required',
'type' => 'required',
'old_collect' => 'required',
], [
'project_id.required' => 'project_id不能为空',
'type.required' => '是否重新采集分类不能为空',
'old_collect.required' => '现有数据是否重新采集页面不能为空',
]);
$collect_un = UpdateLog::where('project_id', $this->param['project_id'])->where('collect_status', 0)->get();
... ... @@ -92,13 +94,17 @@ class UpdateController extends BaseController
}
try {
DB::connection('custom_mysql')->statement("DELETE FROM `gl_collect_source` WHERE `origin` LIKE '%.css%' OR `origin` LIKE '%.js%'");
if ($domain_info) {
//已上线项目
DB::connection('custom_mysql')->statement("UPDATE `gl_collect_task` SET `status` = 0,`domain` = '" . $test_domain . "' WHERE `language` = ''");
} else {
DB::connection('custom_mysql')->statement("UPDATE `gl_collect_task` SET `status` = 0 WHERE `language` = ''");
if($this->param['old_collect'] == 1){
//现有数据需要重新采集页面
DB::connection('custom_mysql')->statement("DELETE FROM `gl_collect_source` WHERE `origin` LIKE '%.css%' OR `origin` LIKE '%.js%'");
if ($domain_info) {
//已上线项目
DB::connection('custom_mysql')->statement("UPDATE `gl_collect_task` SET `status` = 0,`domain` = '" . $test_domain . "' WHERE `language` = ''");
} else {
DB::connection('custom_mysql')->statement("UPDATE `gl_collect_task` SET `status` = 0 WHERE `language` = ''");
}
}
if ($this->param['type'] == 1) {
//需要重新采集分类
DB::connection('custom_mysql')->statement("TRUNCATE `gl_product_category`");
... ...
... ... @@ -3,16 +3,10 @@
namespace App\Http\Controllers\Aside\Manage;
use App\Enums\Common\Code;
use App\Helper\Arr;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Manage\MenuLogic;
use App\Http\Requests\Aside\Manage\MenuRequest;
use App\Models\Manage\Menu;
use App\Rules\Ids;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;
/**
* 后台菜单
* Class MenuController
... ...
... ... @@ -211,6 +211,9 @@ class OptimizeController extends BaseController
if(isset($this->map['title']) && !empty($this->map['title'])){
$query = $query->where('gl_project.title','like','%'.$this->map['title'].'%');
}
if(isset($this->map['amp_status'])){
$query = $query->where('gl_domain_info.amp_status',$this->map['amp_status']);
}
if(isset($this->map['level']) && !empty($this->map['level'])){
$query = $query->whereRaw("FIND_IN_SET(?, gl_project.level) > 0", [$this->map['level']]);
}
... ...
... ... @@ -987,15 +987,18 @@ class ProjectController extends BaseController
]);
//查看当前用户是否存在
$hrModel = new ManageHr();
$hrInfo = $hrModel->read(['id'=>$this->param['old_id']]);
if($hrInfo === false){
$oldHrInfo = $hrModel->read(['id'=>$this->param['old_id']]);
if($oldHrInfo === false){
$this->response('当前用户不存在',Code::SYSTEM_ERROR);
}
$hrInfo = $hrModel->read(['id'=>$this->param['new_id'],'status'=>1]);
if($hrInfo === false){
$newHrInfo = $hrModel->read(['id'=>$this->param['new_id'],'status'=>1]);
if($newHrInfo === false){
$this->response('变更的用户不存在',Code::SYSTEM_ERROR);
}
$logic->getManagerFiled($hrInfo['entry_position'],$this->param['old_id'],$this->param['new_id'],$this->param['project_id'] ?? []);
if($oldHrInfo['entry_position'] != $newHrInfo['entry_position']){
$this->response('不同岗位不允许变更',Code::SYSTEM_ERROR);
}
$logic->getManagerFiled($newHrInfo['entry_position'],$this->param['old_id'],$this->param['new_id'],$this->param['project_id'] ?? []);
$this->response('success');
}
... ...
... ... @@ -11,7 +11,12 @@ namespace App\Http\Controllers\Bside\BCom;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Models\HomeCount\Count;
use App\Models\HomeCount\MonthCount;
use App\Models\News\News;
use App\Models\Product\Category;
use App\Models\Product\Product;
use Carbon\Carbon;
class MonthReportController extends BaseController
{
... ... @@ -25,6 +30,7 @@ class MonthReportController extends BaseController
public function getMonth(){
$monthCountModel = new MonthCount();
$this->map['project_id'] = $this->user['project_id'];
$this->map['month'] = ['>=',date('Y-m',strtotime($this->user['uptime']))];
$month = $monthCountModel->formatQuery($this->map)->pluck('month')->unique()->toArray();
$this->response('success',Code::SUCCESS,$month);
}
... ... @@ -40,24 +46,43 @@ class MonthReportController extends BaseController
$monthCountModel = new MonthCount();
$this->map['project_id'] = $this->user['project_id'];
$info = $monthCountModel->read($this->map);
foreach ($info as $k => $v){
if(!empty($v['source_country'])){
$v['source_country'] = json_decode($v['source_country']);
}
if(!empty($v['referrer_port'])){
$v['referrer_port'] = json_decode($v['referrer_port']);
}
if(!empty($v['referrer_url'])){
$v['referrer_url'] = json_decode($v['referrer_url']);
}
if(!empty($v['source'])){
$v['source'] = json_decode($v['source']);
}
if(!empty($v['country'])){
$v['country'] = json_decode($v['country']);
}
$lists[$k] = $v;
if(!empty($info['source_country'])){
$info['source_country'] = json_decode($info['source_country']);
}
if(!empty($info['referrer_port'])){
$info['referrer_port'] = json_decode($info['referrer_port']);
}
if(!empty($info['referrer_url'])){
$info['referrer_url'] = json_decode($info['referrer_url']);
}
if(!empty($info['source'])){
$info['source'] = json_decode($info['source']);
}
if(!empty($info['country'])){
$info['country'] = json_decode($info['country']);
}
// 获取上个月的开始时间
$startTime = Carbon::now()->subMonth()->startOfMonth()->toDateString();
// 获取上个月的结束时间
$endTime = Carbon::now()->subMonth()->endOfMonth()->toDateString();
$param = [
'date' => ['between',[$startTime,$endTime]],
'project_id' => $this->user['project_id']
];
$info['pv_ip'] = (new Count())->list($param,'date',['id','pv_num','ip_num','date']);
$categoryModel = new Category();
$info['category_num'] = $categoryModel->formatQuery(['status'=>1])->count();
$productModel = new Product();
$info['products_num'] = $productModel->formatQuery(['status'=>1])->count();
$info['products_num_last_30'] = $productModel->formatQuery(
['status'=>1,'created_at'=>['between',[now()->subDays(30)->startOfDay()->toDateString(),now()->startOfDay()->toDateString()]]
])->count();
$newsModel = new News();
$info['news_num'] = $newsModel->formatQuery(['status'=>0])->count();
$info['news_num_last_7'] = $newsModel->formatQuery(
['status'=>0,'created_at'=>['between',[now()->subDays(7)->startOfDay()->toDateString(),now()->startOfDay()->toDateString()]]
])->count();
$info['speed'] = round((0.3 + mt_rand()/mt_getrandmax() * (1-0.3)),2);
$this->response('success',Code::SUCCESS,$info);
}
}
... ...
<?php
namespace App\Http\Controllers\Bside\Setting;
use App\Enums\Common\Code;
use App\Helper\Translate;
use App\Http\Controllers\Bside\BaseController;
use App\Models\WebSetting\Proofreading;
use App\Models\WebSetting\WebLanguage;
use Illuminate\Support\Facades\DB;
class ProofreadingController extends BaseController
{
const LANGUAGE_ID = 1;//默认语言英语
const TYPE_IMAGE = 2;//校队图片
/**
* @name :lists
* @author :lyh
* @method :post
* @time :2023/6/12 10:52
*/
public function lists(){
//获取语种信息
$languageModel = new WebLanguage();
$languageInfo = $languageModel->read(['id'=>$this->param['language_id']]);
//获取当前链接和语种的校队列表
$proofreadingModel = new Proofreading();
$list = $proofreadingModel->list(['url'=>$this->param['url'],'language_id'=>$this->param['language_id'],'type'=>1],'created_at',['text','translate']);
//获取当前URl的所有文本内容
$new_list = $this->getUrlRead($this->param['url']);
if(empty($list)){
$data = [];
$translate_list = Translate::tran($new_list, $languageInfo['short']);
foreach ($new_list as $k=>$v){
$data[] = [
'text'=>trim($v),
'translate'=>$translate_list[$k],
];
}
return $this->response('success',Code::SUCCESS,$data);
}
$data = [];//返回数据
$old_list = [];
foreach ($list as $v){
$old_list[] = $v['text'];
$data[] = [
'text'=>$v['text'],
'translate'=>$v['translate'],
];
}
$arr2 = array_values(array_diff($new_list, $old_list));
if(!empty($arr2)){
$translate_list = Translate::tran($arr2, $languageInfo['short']);
foreach ($arr2 as $k1=>$v1){
$data[] = [
'text'=>$v1,
'translate'=>$translate_list[$k1]
];
}
}
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :获取图片列表
* @name :imageList
* @author :lyh
* @method :post
* @time :2023/11/23 17:29
*/
public function imageList(){
$proofreadingModel = new Proofreading();
$list = $proofreadingModel->list(['url'=>$this->param['url'],'language_id'=>$this->param['language_id'],'type'=>2],'created_at',['text','translate']);
if(empty($list)){
$new_list = $this->getUrlImageRead($this->param['url']);
foreach ($new_list as $k=>$v){
$data[] = [
'text'=>$v,
'translate'=>$v,
];
}
return $this->response('success',Code::SUCCESS,$data);
}
$new_list = $this->getUrlImageRead($this->param['url']);
$data = [];//返回数据
$old_list = [];
foreach ($list as $v){
$old_list[] = $v['text'];
$data[] = [
'text'=>$v['text'],
'translate'=>$v['translate'],
];
}
$arr2 = array_values(array_diff($new_list, $old_list));
if(!empty($arr2)){
foreach ($arr2 as $v1){
$data[] = [
'text'=>$v1,
'translate'=>$v1
];
}
}
$this->response('success',Code::SUCCESS,$data);
}
/**
* @name :(新增/更新多语言)save
* @author :lyh
* @method :post
* @time :2023/6/12 10:52
*/
public function save(){
//清除以前的翻译校队数据,重新添加
$param = [
'type'=>1,
'project_id'=>$this->user['project_id'],
'url'=>$this->param['url'],
'language_id'=>$this->param['language_id'],
'alias'=>$this->param['alias'],
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s')
];
$proofreadingModel = new Proofreading();
DB::beginTransaction();
try {
$proofreadingModel->del(['language_id'=>$this->param['language_id'],'url'=>$this->param['url'],'type'=>1]);
//删除成功后,重新添加
$save_data = [];
foreach ($this->param['data'] as $k => $v){
$param['text'] = $v['text'];
$param['translate'] = $v['translate'];
$save_data[] = $param;
}
$proofreadingModel->insert($save_data);
DB::commit();
}catch (\Exception $e){
DB::rollBack();
$this->fail('系统错误请联系管理员');
}
$this->response('success');
}
/**
* @name :(新增/更新多语言)save
* @author :lyh
* @method :post
* @time :2023/6/12 10:52
*/
public function saveImage(){
//清除以前的翻译校队数据,重新添加
$param = [
'type'=>2,
'project_id'=>$this->user['project_id'],
'url'=>$this->param['url'],
'language_id'=>$this->param['language_id'],
'alias'=>$this->param['alias'],
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s')
];
$proofreadingModel = new Proofreading();
DB::beginTransaction();
try {
$proofreadingModel->del(['language_id'=>$this->param['language_id'],'url'=>$this->param['url'],'type'=>2]);
//删除成功后,重新添加
$save_data = [];
foreach ($this->param['data'] as $k => $v){
$param['text'] = $v['text'];
$param['translate'] = $v['translate'];
$save_data[] = $param;
}
$proofreadingModel->insert($save_data);
DB::commit();
}catch (\Exception $e){
DB::rollBack();
$this->fail('系统错误请联系管理员');
}
$this->response('success');
}
/**
* @remark :获取Url内容
* @name :getUrlRead
* @author :lyh
* @method :post
* @time :2023/11/22 10:02
*/
public function getUrlRead($url){
$contextOptions = [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
];
$context = stream_context_create($contextOptions);
$sourceCode = file_get_contents($url, false, $context);
$pattern = '/<style\b[^>]*>(.*?)<\/style>/s'; // 定义匹配`<style>`标签及其内容的正则表达式
$strippedContent = preg_replace($pattern, '', $sourceCode); // 删除`<style>`标签及其内容
$pattern = '/<script\b[^>]*>(.*?)<\/script>/s'; // 定义匹配`<script>`标签及其内容的正则表达式
$strippedContent = preg_replace($pattern, '', $strippedContent); // 删除`<script>`标签及其内容
$pattern = '/<link\b[^>]*>/'; // 定义匹配 `<link>` 标签的正则表达式
$strippedContent = preg_replace($pattern, '', $strippedContent); // 删除 `<link>` 标签
$pattern = '/>([^<]+)</'; // 定义匹配中间内容不是标签的正则表达式
$matches = array();
preg_match_all($pattern, $strippedContent, $matches);
$textContentArray = array_filter($matches[1], function($item) {
return !empty(trim($item));
});
$data = [];
foreach ($textContentArray as $v){
$content = trim($v);
$trimmedString = preg_replace('/\s+/', ' ', $content);
$data[] = $trimmedString;
}
$data = array_values($data);
// $uniqueArray = array_unique($data);
// $data = array_values($uniqueArray);
return $data;
}
/**
* @remark :获取Url内容
* @name :getUrlRead
* @author :lyh
* @method :post
* @time :2023/11/22 10:02
*/
public function getUrlImageRead($url){
$contextOptions = [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
];
$pattern = '/<img.*?src="(.*?)".*?>/i';
$matches = array();
$context = stream_context_create($contextOptions);
$sourceCode = file_get_contents($url, false, $context);
preg_match_all($pattern, $sourceCode, $matches);
$textContentArray = $matches[1];
$data = [];
foreach ($textContentArray as $v){
if(!empty($v)){
$data[] = $v;
}
}
$uniqueArray = array_unique($data);
$data = array_values($uniqueArray);
return $data;
}
}
... ... @@ -85,8 +85,8 @@ class TranslateController extends BaseController
'url.required' => 'url不能为空',
'alias.required' => 'url不能为空',
]);
$logic->translateSave();
$this->response('success');
$rs = $logic->translateSave();
$this->response('success',Code::SUCCESS,$rs);
}
/**
... ...
... ... @@ -41,7 +41,7 @@ class LoginLogic extends BaseLogic
*/
public function login()
{
$manage = $this->model->select('id', 'name', 'password', 'token', 'status', 'gid', 'dept_id','role')
$manage = $this->model->select('id', 'name', 'password', 'token', 'status', 'gid', 'dept_id','role','rules')
->where('mobile', $this->param['mobile'])->first();
if (!$manage){
$this->fail('登录用户名不存在');
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Http\Logic\Aside\Manage;
use App\Helper\Arr;
use App\Helper\Common;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Manage\Manage;
... ... @@ -59,6 +60,9 @@ class ManageLogic extends BaseLogic
if($managerInfo !== false){
$this->fail('当前手机号码已存在');
}
if (isset($this->param['rules']) && is_array($this->param['rules'])){
$this->param['rules'] = Arr::arrToSet($this->param['rules']);
}
$this->param['password'] = Hash::make(isset($this->param['password']) ?? 'globalsov6');
$this->model->add($this->param);
$this->success();
... ... @@ -93,6 +97,9 @@ class ManageLogic extends BaseLogic
if(isset($this->param['password']) && !empty($this->param['password'])){
$this->param['password'] = Hash::make($this->param['password']);
}
if (isset($this->param['rules']) && is_array($this->param['rules'])){
$this->param['rules'] = Arr::arrToSet($this->param['rules']);
}
$this->model->edit($this->param,['id'=>$this->param['id']]);
}
... ... @@ -120,7 +127,10 @@ class ManageLogic extends BaseLogic
*/
public function getManagerInfo(){
$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']);
['id','name','email','mobile','status','gid','sort','dept_id','is_dept_manager','created_at','role','rules','updated_at']);
if(!empty($info['rules'])){
$info['rules'] = Arr::setToArr($info['rules']);
}
if($info === false){
$this->fail('error');
}
... ...
... ... @@ -93,6 +93,14 @@ class MenuLogic extends BaseLogic
*/
public function getMenuByGroupId($gid){
$rights = Group::where(['id' => $gid, 'status' => Group::STATUS_NORMAL])->pluck('rights')->first();
//获取个人权限
if(isset($this->manager['rules']) && !empty($this->manager['rules'])){
$rules = Arr::setToArr($this->manager['rules']);
// 合并两个数组
$mergedArray = array_merge($rules, $rights);
// 去除重复的元素
$rights = array_unique($mergedArray);
}
$map = [
'type'=>0,
'status' => Menu::STATUS_NORMAL,
... ...
... ... @@ -98,9 +98,12 @@ class ProjectLogic extends BaseLogic
//升级项目采集完成时间
$collect_time = '';
if($info['is_upgrade'] == 1){
$collect_info = UpdateLog::where('project_id',$id)->where('api_type','blog')->first();
if($collect_info){
$collect_time = $collect_info->collect_status == 0 ? '采集中' : $collect_info->updated_at->format('Y-m-d H:i:s');
$collect_un_count = UpdateLog::where('project_id',$id)->where('collect_status',0)->count();
if($collect_un_count > 0){
$collect_time = '采集中';
}else{
$collect_info = UpdateLog::where('project_id',$id)->orderBy('updated_at','desc')->first();
$collect_time = $collect_info->updated_at->format('Y-m-d H:i:s');
}
}
$info['collect_time'] = $collect_time;
... ... @@ -861,6 +864,7 @@ class ProjectLogic extends BaseLogic
$param['designer_mid'] = $old_id;
$deployBuildModel = new DeployBuild();
$deployBuildModel->edit(['designer_mid'=>$new_id],$param);
break;
//技术助理
case 40:
$param['tech_mid'] = $old_id;
... ... @@ -875,32 +879,35 @@ class ProjectLogic extends BaseLogic
$deployOptimizeModel->edit(['manager_mid'=>$new_id],$param);
$param['tech_leader'] = $old_id;
unset($param['manager_mid']);
$deployOptimizeModel->edit(['tech_leader'=>$new_id],['tech_leader'=>$old_id]);
$deployOptimizeModel->edit(['tech_leader'=>$new_id],$param);
break;
//优化师
case 44:
case 46:
$param['optimist_mid'] = $old_id;
$deployOptimizeModel = new DeployOptimize();
$deployOptimizeModel->edit(['optimist_mid'=>$new_id],$param);
$param['assist_mid'] = $old_id;
unset($param['optimist_mid']);
$deployOptimizeModel->edit(['assist_mid'=>$new_id],['assist_mid'=>$old_id]);
$deployOptimizeModel->edit(['assist_mid'=>$new_id],$param);
break;
case 46:
case 49:
//优化师助理
$param['assist_mid'] = $old_id;
$deployOptimizeModel = new DeployOptimize();
$deployOptimizeModel->edit(['assist_mid'=>$new_id],$param);
break;
case 45:
//售后技术
$param['tech_mid'] = $old_id;
$deployOptimizeModel = new DeployOptimize();
$deployOptimizeModel->edit(['tech_mid'=>$new_id],$param);
break;
case 38:
//品控
$param['design_mid'] = $old_id;
$deployOptimizeModel = new DeployOptimize();
$deployOptimizeModel->edit(['design_mid'=>$new_id],$param);
break;
default:
break;
}
... ...
... ... @@ -61,7 +61,12 @@ class TranslateLogic extends BaseLogic
$data[] = [$k => $v];
}
}
$arr2 = array_values(array_diff($text_array, $old_key));
$arr2 = [];
foreach ($text_array as $val) {
if (FALSE == in_array($val, $old_key)){
$arr2[] = $val;
}
}
if(!empty($arr2)){
$i = 0;
TranslateText:
... ... @@ -102,7 +107,7 @@ class TranslateLogic extends BaseLogic
$info = $this->model->read(['url'=>$this->param['url'],'language_id'=>$this->param['language_id'],'type'=>$this->param['type']]);
$data = [];
if(!empty($info) && !empty($info['data'])){
$translateInfo = json_decode($info['data'],JSON_UNESCAPED_UNICODE);
$translateInfo = json_decode($info['data'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
foreach ($translateInfo as $k => $v){
$data[] = [$k=>$v];
}
... ... @@ -191,6 +196,7 @@ class TranslateLogic extends BaseLogic
}
$need_tran[] = $description ? $description->attr['content'] : '';
$need_tran[] = $keywords ? $keywords->attr['content'] : '';
$need_tran = array_values(array_unique($need_tran));
return $need_tran;
}
... ... @@ -245,7 +251,7 @@ class TranslateLogic extends BaseLogic
}
$this->param['data'] = $data;
}
try {
// try {
$info = $this->model->read(['language_id'=>$this->param['language_id'],'url'=>$this->param['url'],'project_id'=>$this->user['project_id'],'type'=>$this->param['type']]);
if($info === false){
$param = [
... ... @@ -256,21 +262,21 @@ class TranslateLogic extends BaseLogic
'alias'=>$this->param['alias'],
];
$param['data'] = json_encode($data,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$this->model->add($param);
$rs = $this->model->add($param);
}else{
if(!empty($data)){
$data = json_encode($data,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$this->model->edit(['data'=>$data],['language_id'=>$this->param['language_id'],'project_id'=>$this->user['project_id'],'url'=>$this->param['url'],'type'=>$this->param['type']]);
$rs = $this->model->edit(['data'=>$data],['language_id'=>$this->param['language_id'],'project_id'=>$this->user['project_id'],'url'=>$this->param['url'],'type'=>$this->param['type']]);
}
}
//写日志
$userLogModel = new UserLog();
$userLogModel->add(['model'=>'translate/save','remark'=>json_encode($this->param,true),'type'=>0,'operator_id'=>$this->user['id'],'project_id'=>$this->user['project_id']]);
}catch (\Exception $e){
$this->fail('系统错误请联系管理员');
}
// }catch (\Exception $e){
// $this->fail('系统错误请联系管理员');
// }
$this->handleRoute($this->param['url']);
return $this->success();
return $this->success($rs);
}
/**
... ...
... ... @@ -55,10 +55,8 @@ class RouteMap extends Base
public static function generateRoute($title, $source, $source_id, $project_id){
if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $title)){
$title = Translate::tran($title, 'en');
}else{
if(!preg_match('/[a-zA-Z]/', $title)){
$title = Translate::tran($title, 'en');
}
}elseif(preg_match('/^[\x{0400}-\x{04FF}]+$/u', $title)){
$title = Translate::tran($title, 'en');
}
$i=1;
$sign = generateRoute($title);
... ...
... ... @@ -190,13 +190,6 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/save', [\App\Http\Controllers\Bside\Setting\WebSettingReceivingController::class, 'save'])->name('web_setting_receiving_save');
});
//翻译校队
Route::prefix('proofreading')->group(function () {//languageList
Route::any('/', [\App\Http\Controllers\Bside\Setting\ProofreadingController::class, 'lists'])->name('web_proofreading_lists');
Route::any('/imageList', [\App\Http\Controllers\Bside\Setting\ProofreadingController::class, 'imageList'])->name('web_proofreading_imageList');
Route::any('/save', [\App\Http\Controllers\Bside\Setting\ProofreadingController::class, 'save'])->name('web_proofreading_save');
Route::any('/saveImage', [\App\Http\Controllers\Bside\Setting\ProofreadingController::class, 'saveImage'])->name('web_proofreading_saveImage');
});
//新版翻译校队
Route::prefix('translate_check')->group(function () {//languageList
Route::any('/', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'lists'])->name('translate_check_lists');
... ...