|
...
|
...
|
@@ -67,20 +67,16 @@ class TranslateController extends BaseController |
|
|
|
$res_data['language_id'] = $this->param['language_id'];
|
|
|
|
$this->map['type'] = 1;
|
|
|
|
$data = $translate->formatQuery($this->map)->with('translate_data')->get()->toArray();
|
|
|
|
$keyModel = new TranslateKey();
|
|
|
|
$keyList = $keyModel->list([],'id',['*'],'asc');
|
|
|
|
if(empty($data) && empty($keyList)){
|
|
|
|
$this->response('导出数据为空',Code::SYSTEM_ERROR);
|
|
|
|
}
|
|
|
|
if(empty($data)){
|
|
|
|
$keyModel = new TranslateKey();
|
|
|
|
$keyList = $keyModel->list([],'id',['*'],'asc');
|
|
|
|
if(empty($keyList)){
|
|
|
|
$this->response('导出数据为空',Code::SYSTEM_ERROR);
|
|
|
|
}
|
|
|
|
$res_data = $this->resEmptyData($keyList);
|
|
|
|
$this->response('success',Code::SUCCESS,$res_data);
|
|
|
|
}
|
|
|
|
if(empty($keyList)){
|
|
|
|
$res_data = $this->resEmptyKey($data);
|
|
|
|
$this->response('success',Code::SUCCESS,$res_data);
|
|
|
|
}
|
|
|
|
$res_data = $this->resData($keyList,$data);
|
|
|
|
$res_data = $this->resData($data);
|
|
|
|
$this->response('success',Code::SUCCESS,$res_data);
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -91,49 +87,36 @@ class TranslateController extends BaseController |
|
|
|
* @method :post
|
|
|
|
* @time :2024/11/22 17:50
|
|
|
|
*/
|
|
|
|
public function resData($keyList,$data){
|
|
|
|
$result_key_data = [];
|
|
|
|
public function resData($data){
|
|
|
|
$result_id_data = [];
|
|
|
|
$keyModel = new TranslateKey();
|
|
|
|
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['route'] == $v1['route']) && ($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] = '';
|
|
|
|
}
|
|
|
|
$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;
|
|
|
|
//去除,已匹配的页面统计出来
|
|
|
|
$result_key_data[] = $v1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$resData['data'] = $translate_data;
|
|
|
|
$res_data[] = $resData;
|
|
|
|
}
|
|
|
|
// 排除掉 $result_key_data 中的元素
|
|
|
|
$result = array_udiff($keyList, $result_key_data, function ($a, $b) {
|
|
|
|
return strcmp(json_encode($a), json_encode($b));
|
|
|
|
});
|
|
|
|
$result_key_list = array_values($result); // 重置键名
|
|
|
|
if(!empty($result_key_list)){
|
|
|
|
foreach ($result_key_list 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'];
|
|
|
|
$key_data = json_decode($values['proof_key'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
|
|
|
|
foreach ($key_data as $key_val){
|
|
|
|
$resData['data'][] = [$key_val => ''];
|
|
|
|
$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;
|
|
|
|
}
|
|
...
|
...
|
@@ -153,10 +136,6 @@ class TranslateController extends BaseController |
|
|
|
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 => ''];
|
|
...
|
...
|
@@ -167,28 +146,6 @@ class TranslateController extends BaseController |
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :key为空 直接返回data
|
|
|
|
* @name :resEmptyKey
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/11/22 17:48
|
|
|
|
*/
|
|
|
|
public function resEmptyKey($data){
|
|
|
|
$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'] = json_decode($values['translate_data']['data'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
|
|
|
|
$res_data[] = $resData;
|
|
|
|
}
|
|
|
|
return $res_data;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :图片列表
|
|
|
|
* @name :imageList
|
|
|
|
* @author :lyh
|
...
|
...
|
|