作者 lyh

gx

@@ -3,8 +3,11 @@ @@ -3,8 +3,11 @@
3 namespace App\Http\Controllers\Bside\Setting; 3 namespace App\Http\Controllers\Bside\Setting;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
  6 +use App\Helper\Translate;
6 use App\Http\Controllers\Bside\BaseController; 7 use App\Http\Controllers\Bside\BaseController;
7 use App\Http\Logic\Bside\Setting\ProofreadingLogic; 8 use App\Http\Logic\Bside\Setting\ProofreadingLogic;
  9 +use App\Models\WebSetting\Proofreading;
  10 +use App\Models\WebSetting\WebSettingCountry;
8 11
9 class ProofreadingController extends BaseController 12 class ProofreadingController extends BaseController
10 { 13 {
@@ -16,18 +19,47 @@ class ProofreadingController extends BaseController @@ -16,18 +19,47 @@ class ProofreadingController extends BaseController
16 * @method :post 19 * @method :post
17 * @time :2023/6/12 10:52 20 * @time :2023/6/12 10:52
18 */ 21 */
19 - public function lists(ProofreadingLogic $proofreadingLogic){  
20 - //默认显示语言为英语  
21 - if(!isset($this->map['language_id']) || empty($this->map['language_id'])){  
22 - $this->map['language_id'] = $this::LANGUAGE_ID; 22 + public function lists(){
  23 + //获取语种信息
  24 + $webSettingCountryModel = new WebSettingCountry();
  25 + $countryInfo = $webSettingCountryModel->read(['id'=>$this->param['language_id']]);
  26 + //获取当前链接和语种的校队列表
  27 + $proofreadingModel = new Proofreading();
  28 + $list = $proofreadingModel->list(['url'=>$this->param['url'],'language_id'=>$this->param['language_id'],'type'=>1],'id',['id','text','translate']);
  29 + //获取当前URl的所有文本内容
  30 + $new_list = $this->getUrlRead($this->param['url']);
  31 + if(empty($list)){
  32 + $data = [];
  33 + foreach ($new_list as $v){
  34 + $data[] = [
  35 + 'text'=>$v,
  36 + 'translate'=>Translate::tran($v, $countryInfo['alias']),
  37 + ];
  38 + }
  39 + return $this->response('success',Code::SUCCESS,$data);
  40 + }
  41 + $old_list = [];
  42 + $arr = [];
  43 + foreach ($list as $v){
  44 + $old_list[] = $v['text'];
  45 + $arr[$v['text']] = $v['translate'];
23 } 46 }
24 - $lists = $proofreadingLogic->proofreadingList($this->map,$this->page,$this->row);  
25 - if(!empty($lists['list']) && ($this->param['type'] == $this::TYPE_IMAGE)){  
26 - foreach ($lists['list'] as $k => $v){  
27 - $lists['list'][$k]['image_link'] = getImageUrl($v['translate']); 47 + $data_list = array_merge(array_diff($old_list, $new_list),array_diff($new_list, $old_list));
  48 + $data = [];
  49 + foreach ($data_list as $v){
  50 + if(isset($arr[$v])){
  51 + $data[] = [
  52 + 'text'=>$v,
  53 + 'translate'=>$arr[$v],
  54 + ];
  55 + }else{
  56 + $data[] = [
  57 + 'text'=>$v,
  58 + 'translate'=>Translate::tran($v, $countryInfo['alias']),
  59 + ];
28 } 60 }
29 } 61 }
30 - $this->response('success',Code::SUCCESS,$lists); 62 + $this->response('success',Code::SUCCESS,$data);
31 } 63 }
32 64
33 /** 65 /**