作者 李宇航

合并分支 'master-server' 到 'master'

Master server



查看合并请求 !897
... ... @@ -43,13 +43,13 @@ class TemplateLog extends Command
}
public function handle(){
$this->deleteUserLog();
$projectModel = new Project();
$list = $projectModel->list(['delete_status'=>0]);
foreach ($list as $v){
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
ProjectServer::useProject($v['id']);
$this->deleteTemplate();
$this->deleteUserLog();
DB::disconnect('custom_mysql');
}
echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
... ...
... ... @@ -138,10 +138,11 @@ class RecommendedSuppliers extends Command
$v['email'] = json_encode($v['email'],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
$v['mobile'] = json_encode($v['mobile'],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
$v['social_media'] = json_encode($v['social_media'],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
$v['image'] = str_replace('admin.hagro.cn','fob.ai.cc',$v['image']);
// $v['created_at'] = date('Y-m-d H:i:s');
// $v['updated_at'] = $v['created_at'];
$param = $v;
$info = $purchaserInfoModel->read(['keyword'=>$keyword,'buyer'=>$v['buyer'],'project_id'=>$project_id],['id']);
$info = $purchaserInfoModel->read(['keyword'=>$keyword,'buyer_id'=>$v['buyer_id'],'project_id'=>$project_id],['id']);
if($info === false){
$purchaserInfoModel->add($param);
}
... ...
... ... @@ -20,6 +20,7 @@ use App\Models\Project\Project;
use App\Models\RouteMap\RouteMap;
use App\Models\WebSetting\SettingNum;
use App\Models\WebSetting\Translate;
use App\Models\WebSetting\TranslateKey;
class TranslateController extends BaseController
{
... ... @@ -57,15 +58,92 @@ class TranslateController extends BaseController
],[
'language_id.required' => 'language_id不能为空',
]);
//上线后放开
// $is_trans_proof = $this->project['deploy_build']['is_trans_proof'] ?? 0;
// if($is_trans_proof == 0){
// $this->response('未开启导出功能。请联系管理员开启。',Code::SYSTEM_ERROR);
// }
$res_data = [];
$res_data['language_id'] = $this->param['language_id'];
$this->map['type'] = 1;
$data = $translate->formatQuery($this->map)->with('translate_data')->get()->toArray();
foreach ($data as $k=>$v){
$v['data'] = json_decode($v['translate_data']['data'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$data[$k] = $v;
if(empty($data)){
$keyModel = new TranslateKey();
$keyList = $keyModel->list([],'id',['*'],'asc');
if(empty($keyList)){
$this->response('导出数据为空',Code::SYSTEM_ERROR);
}
$this->response('success',Code::SUCCESS,$data);
$res_data = $this->resEmptyData($keyList);
$this->response('success',Code::SUCCESS,$res_data);
}
$res_data = $this->resData($data);
$this->response('success',Code::SUCCESS,$res_data);
}
/**
* @remark :都不为处理数据
* @name :resData
* @author :lyh
* @method :post
* @time :2024/11/22 17:50
*/
public function resData($data){
$result_id_data = [];
$keyModel = new TranslateKey();
foreach ($data as $values){
$resData['route'] = $values['url'];
$resData['page'] = $values['page'];
$resData['data'] = [];
$keyInfo = $keyModel->read(['route'=>$values['route'],'page'=>$values['page']],['id','proof_key']);
if($keyInfo !== false){
$result_id_data[] = $keyInfo['id'];
$translate_data = json_decode($values['translate_data']['data'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$translate_data_keys = array_keys($translate_data);
$proof_key_data = json_decode($keyInfo['proof_key'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
foreach ($proof_key_data as $value){
if(!in_array($value,$translate_data_keys)){
$translate_data[$value] = '';
}
}
}
$resData['data'] = $translate_data;
$res_data[] = $resData;
}
$keyList = $keyModel->list(['id'=>['not in',$result_id_data]],'id',['id','proof_key','url','page']);
if(!empty($keyList)){
foreach ($keyList as $val){
$resData['route'] = $val['url'];
$resData['page'] = $val['page'];
$proof_key_data = json_decode($val['proof_key'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
foreach ($proof_key_data as $value){
$resData[$value] = '';
}
$res_data[] = $resData;
}
}
return $res_data;
}
/**
* @remark :data值为空 按原key返回
* @name :resEmptyKeyList
* @author :lyh
* @method :post
* @time :2024/11/22 17:45
*/
public function resEmptyData($keyList){
$res_data = [];
foreach ($keyList as $values){
$key_data = json_decode($values['proof_key'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$resData['route'] = $values['url'];
$resData['page'] = $values['page'];
foreach ($key_data as $key_val){
$resData['data'][] = [$key_val => ''];
}
$res_data[] = $resData;
}
return $res_data;
}
/**
* @remark :图片列表
... ...
... ... @@ -46,6 +46,7 @@ class CustomTemplateLogic extends BaseLogic
*/
public function customTemplateInfo(){
$info = $this->model->read(['id'=>$this->param['id']]);
$info['image'] = getImageUrl($info['image'],$this->user['storage_type'],$this->user['project_location']);
if($info === false){
$this->fail('当前数据不存在');
}
... ... @@ -163,7 +164,7 @@ class CustomTemplateLogic extends BaseLogic
$six_read = $this->param['six_read'] ?? 0;//5.0数据时,是否按6.0显示
if($is_upgrade == 0 || $six_read == 0) {
$this->param['url'] = RouteMap::setRoute($this->param['url'], RouteMap::SOURCE_PAGE, $id, $this->user['project_id']);
if($this->param['url'] == 'news' || $this->param['url'] == 'product' || $this->param['url'] == 'blog'){
if(($this->param['url'] == 'news') || ($this->param['url'] == 'product') || ($this->param['url'] == 'blog')){
$this->fail('不允许创建路由为:'.$this->param['url']);
}
}
... ... @@ -185,7 +186,7 @@ class CustomTemplateLogic extends BaseLogic
$this->param['html_style'] = "<style id='globalsojs-styles'></style>";
}
}
if($this->param['url'] == 'news' || $this->param['url'] == 'product' || $this->param['url'] == 'blog'){
if(($this->param['url'] == 'news') || ($this->param['url'] == 'product') || ($this->param['url'] == 'blog')){
$this->fail('不允许修改路由为:'.$this->param['url']);
}
$this->param['project_id'] = $this->user['project_id'];
... ... @@ -205,6 +206,9 @@ class CustomTemplateLogic extends BaseLogic
* @time :2024/8/6 16:52
*/
public function handleSaveParam(){
if(isset($param['image'])){
$this->param['image'] = str_replace_url($this->param['image'] ?? '');
}
$this->param['url'] = str_replace_url($this->param['url']);
$this->param['operator_id'] = $this->user['id'];
if(empty($this->project)){
... ...
... ... @@ -2,6 +2,7 @@
namespace App\Models\Template;
use App\Helper\Arr;
use App\Models\Base;
class BCustomTemplate extends Base
... ... @@ -14,4 +15,5 @@ class BCustomTemplate extends Base
const STATUS_ACTIVE = 1;
const STATUS_DRAFT = 0;
}
... ...
<?php
/**
* @remark :
* @name :TranslateKey.php
* @author :lyh
* @method :post
* @time :2024/11/22 11:11
*/
namespace App\Models\WebSetting;
use App\Models\Base;
class TranslateKey extends Base
{
protected $table = 'gl_translate_key';
protected $connection = 'custom_mysql';
}
... ...