作者 lyh

gx翻译校队导出

@@ -20,6 +20,7 @@ use App\Models\Project\Project; @@ -20,6 +20,7 @@ use App\Models\Project\Project;
20 use App\Models\RouteMap\RouteMap; 20 use App\Models\RouteMap\RouteMap;
21 use App\Models\WebSetting\SettingNum; 21 use App\Models\WebSetting\SettingNum;
22 use App\Models\WebSetting\Translate; 22 use App\Models\WebSetting\Translate;
  23 +use App\Models\WebSetting\TranslateKey;
23 24
24 class TranslateController extends BaseController 25 class TranslateController extends BaseController
25 { 26 {
@@ -57,13 +58,68 @@ class TranslateController extends BaseController @@ -57,13 +58,68 @@ class TranslateController extends BaseController
57 ],[ 58 ],[
58 'language_id.required' => 'language_id不能为空', 59 'language_id.required' => 'language_id不能为空',
59 ]); 60 ]);
  61 + $res_data = [];
  62 + $res_data['language_id'] = $this->param['language_id'];
60 $this->map['type'] = 1; 63 $this->map['type'] = 1;
61 $data = $translate->formatQuery($this->map)->with('translate_data')->get()->toArray(); 64 $data = $translate->formatQuery($this->map)->with('translate_data')->get()->toArray();
62 - foreach ($data as $k=>$v){  
63 - $v['data'] = json_decode($v['translate_data']['data'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);  
64 - $data[$k] = $v; 65 + $keyModel = new TranslateKey();
  66 + $keyList = $keyModel->list();
  67 + if(empty($data) && empty($keyList)){
  68 + $this->response('导出数据为空');
65 } 69 }
66 - $this->response('success',Code::SUCCESS,$data); 70 + if(empty($data)){
  71 + foreach ($keyList as $values){
  72 + $key_data = json_decode($values['proof_key'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
  73 + $resData['route'] = $values['url'];
  74 + $resData['source'] = $values['source'];
  75 + $resData['source_id'] = $values['source_id'];
  76 + $resData['is_list'] = $values['is_list'];
  77 + $resData['is_custom'] = $values['is_custom'];
  78 + $resData['page'] = $values['page'];
  79 + foreach ($key_data as $key_val){
  80 + $resData['data'][] = [$key_val => ''];
  81 + }
  82 + $res_data[] = $resData;
  83 + }
  84 + $this->response('success',Code::SUCCESS,$res_data);
  85 + }
  86 + if(empty($keyList)){
  87 + foreach ($data as $values){
  88 + $resData['route'] = $values['url'];
  89 + $resData['source'] = $values['source'];
  90 + $resData['source_id'] = $values['source_id'];
  91 + $resData['is_list'] = $values['is_list'];
  92 + $resData['is_custom'] = $values['is_custom'];
  93 + $resData['page'] = $values['page'];
  94 + $resData['data'] = json_decode($values['translate_data']['data'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
  95 + $res_data[] = $resData;
  96 + }
  97 + $this->response('success',Code::SUCCESS,$res_data);
  98 + }
  99 + foreach ($data as $values){
  100 + $resData['route'] = $values['url'];
  101 + $resData['source'] = $values['source'];
  102 + $resData['source_id'] = $values['source_id'];
  103 + $resData['is_list'] = $values['is_list'];
  104 + $resData['is_custom'] = $values['is_custom'];
  105 + $resData['page'] = $values['page'];
  106 + $resData['data'] = [];
  107 + foreach ($keyList as $v1){
  108 + 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'])){
  109 + $translate_data = json_decode($values['translate_data']['data'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
  110 + $keys_data = array_keys($translate_data);
  111 + $translate_key_data = json_decode($v1['proof_key'],JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
  112 + foreach ($translate_key_data as $value){
  113 + if(!in_array($value,$keys_data)){
  114 + $translate_data[$value] = '';
  115 + }
  116 + }
  117 + $resData['data'] = $translate_data;
  118 + }
  119 + }
  120 + $res_data[] = $resData;
  121 + }
  122 + $this->response('success',Code::SUCCESS,$res_data);
67 } 123 }
68 124
69 125
  1 +<?php
  2 +/**
  3 + * @remark :
  4 + * @name :TranslateKey.php
  5 + * @author :lyh
  6 + * @method :post
  7 + * @time :2024/11/22 11:11
  8 + */
  9 +
  10 +namespace App\Models\WebSetting;
  11 +
  12 +use App\Models\Base;
  13 +
  14 +class TranslateKey extends Base
  15 +{
  16 + protected $table = 'gl_translate_key';
  17 +
  18 + protected $connection = 'custom_mysql';
  19 +}