作者 lyh

gx翻译校队导出

... ... @@ -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,13 +58,68 @@ class TranslateController extends BaseController
],[
'language_id.required' => 'language_id不能为空',
]);
$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;
$keyModel = new TranslateKey();
$keyList = $keyModel->list();
if(empty($data) && empty($keyList)){
$this->response('导出数据为空');
}
$this->response('success',Code::SUCCESS,$data);
if(empty($data)){
foreach ($keyList as $values){
$key_data = json_decode($values['proof_key'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$resData['route'] = $values['url'];
$resData['source'] = $values['source'];
$resData['source_id'] = $values['source_id'];
$resData['is_list'] = $values['is_list'];
$resData['is_custom'] = $values['is_custom'];
$resData['page'] = $values['page'];
foreach ($key_data as $key_val){
$resData['data'][] = [$key_val => ''];
}
$res_data[] = $resData;
}
$this->response('success',Code::SUCCESS,$res_data);
}
if(empty($keyList)){
foreach ($data as $values){
$resData['route'] = $values['url'];
$resData['source'] = $values['source'];
$resData['source_id'] = $values['source_id'];
$resData['is_list'] = $values['is_list'];
$resData['is_custom'] = $values['is_custom'];
$resData['page'] = $values['page'];
$resData['data'] = json_decode($values['translate_data']['data'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$res_data[] = $resData;
}
$this->response('success',Code::SUCCESS,$res_data);
}
foreach ($data as $values){
$resData['route'] = $values['url'];
$resData['source'] = $values['source'];
$resData['source_id'] = $values['source_id'];
$resData['is_list'] = $values['is_list'];
$resData['is_custom'] = $values['is_custom'];
$resData['page'] = $values['page'];
$resData['data'] = [];
foreach ($keyList as $v1){
if(($values['page'] == $v1['page']) && ($values['source'] == $v1['source']) && ($values['source_id'] == $v1['source_id']) && ($values['is_list'] == $v1['is_list']) && ($values['is_custom'] == $v1['is_custom'])){
$translate_data = json_decode($values['translate_data']['data'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$keys_data = array_keys($translate_data);
$translate_key_data = json_decode($v1['proof_key'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
foreach ($translate_key_data as $value){
if(!in_array($value,$keys_data)){
$translate_data[$value] = '';
}
}
$resData['data'] = $translate_data;
}
}
$res_data[] = $resData;
}
$this->response('success',Code::SUCCESS,$res_data);
}
... ...
<?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';
}
... ...