Translate.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace app\controller;
  3. use app\model\User;
  4. use think\facade\Request;
  5. class Translate extends CommonController
  6. {
  7. /**
  8. * 翻译
  9. */
  10. public function index()
  11. {
  12. $params = Request::only(
  13. [
  14. "source" , "target" , "text" , "uid"
  15. ]
  16. );
  17. $profile = $this->profile();
  18. if( ! $profile) {
  19. return $this->_json_error('系统繁忙,稍候再试!');
  20. }
  21. /**
  22. * 团队ID
  23. */
  24. $profile = $this->profile();
  25. $teamId = $profile['data']['member'][0]['team_id'];
  26. $url = config('translate.request_url.text_translate_url');
  27. $realRequestUrl = $url.$teamId;
  28. /**
  29. * 请求参数
  30. */
  31. $requestParams = [
  32. "source" => $params['source'] ?? 'en',
  33. "target" => $params['target'] ?? 'zh',
  34. "domain" => "medical" ,
  35. 'lines' => [
  36. [
  37. 'id' => 0 ,
  38. 'text' => $params['text'] ?? 'where'
  39. ]
  40. ]
  41. ];
  42. // "{"data":[{"id":0,"text":"Translation","texts":["Translation","Translated","Translation"]}],"msg":"translation success","errcode":0,"amount":2}"
  43. $authtoken = $this->getAuthToken();
  44. $response = $this->curlPostRequest($realRequestUrl , $requestParams , $authtoken);
  45. $arr = json_decode($response , true);
  46. $data = $arr['data'];
  47. $result['translate_result_text'] = $data[0]['text'] ?? '';
  48. $result['translate_result_texts'] = $data[0]['texts'] ? implode(',', $data[0]['texts']) : '';
  49. /**
  50. * 记录翻译记录
  51. */
  52. \app\model\translate\TranslateRecord::create(
  53. [
  54. 'uid' => $params['uid'] ,
  55. 'text' => $params['text'] ,
  56. 'translate_text' => $result['translate_result_text'] ,
  57. 'translate_texts' => $result['translate_result_texts'] ,
  58. 'createtime' => time()
  59. ]
  60. );
  61. return $this->_json_succ(
  62. array_merge($params , $result)
  63. );
  64. }
  65. /**
  66. * 翻译历史记录
  67. */
  68. public function translateHistory()
  69. {
  70. $params = Request::only(
  71. [
  72. "page" , "pagesize" , "uid"
  73. ]
  74. );
  75. /**
  76. * 分页参数
  77. */
  78. $page = $params['page'] ?? 1;
  79. $pagesize = $params['pagesize'] ?? 10;
  80. $limit = ($page - 1) * $pagesize;
  81. $uid = $params['uid'] ?? '833456199';
  82. return $this->_json_succ(
  83. \app\model\translate\TranslateRecord::where(
  84. [
  85. 'uid' => $uid , 'status' => 1
  86. ])
  87. ->order('createtime' , 'desc')
  88. ->limit($limit , $pagesize)
  89. ->select()->toArray()
  90. );
  91. }
  92. /**
  93. * 清空历史记录
  94. */
  95. public function clearHistory()
  96. {
  97. $uid = Request::param('uid') ?? '';
  98. $user = User::find($uid);
  99. if( ! $user) {
  100. return $this->_json_error('用户不存在!');
  101. }
  102. $result = \app\model\translate\TranslateRecord::where('uid' , $uid)->delete();
  103. if( ! $result) {
  104. return $this->_json_error('系统繁忙,稍候再试!');
  105. }
  106. return $this->_json_succ();
  107. }
  108. }