TimbreService.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. namespace App\Services\Timbre;
  3. use App\Consts\ErrorConst;
  4. use App\Facade\Site;
  5. use App\Libs\Utils;
  6. use GuzzleHttp\Client;
  7. use Illuminate\Support\Facades\DB;
  8. use Illuminate\Support\Facades\Redis;
  9. use OSS\Core\OssException;
  10. use OSS\OssClient;
  11. class TimbreService
  12. {
  13. public function __construct() {
  14. }
  15. public function getCategoryList($data) {
  16. $category_type = getProp($data, 'category_type', 1);
  17. $category_id = getProp($data, 'category_id');
  18. $category_name = getProp($data, 'category_name');
  19. $pid = getProp($data, 'pid');
  20. $query = DB::table('mp_timbre_categories')->where('is_enable', 1)->select('*');
  21. switch ($category_type) {
  22. case 1:
  23. $query->where('pid', 0);
  24. break;
  25. case 2:
  26. $query->where('pid', $pid);
  27. break;
  28. case 3:
  29. $query->where('pid', $pid);
  30. break;
  31. default:
  32. break;
  33. }
  34. if ($category_id) {
  35. $query->where('id', $category_id);
  36. }
  37. if ($category_name) {
  38. $query->where('category_name', 'like', "%{$category_name}%");
  39. }
  40. return $query->orderBy('id')->paginate();
  41. }
  42. public function getTimbreList($data) {
  43. $timbre_name = getProp($data, 'voice_name');
  44. $language = getProp($data, 'language');
  45. $status = getProp($data, 'status');
  46. $dialect = getProp($data, 'dialect');
  47. $query = DB::table('mp_timbres')->where('is_enabled', 1)->select('*');
  48. if ($timbre_name) {
  49. $query->where('timbre_name', 'like', "%{$timbre_name}%");
  50. }
  51. if ($language) {
  52. $query->where('language', 'like', "%{$language}%");
  53. }
  54. if ($dialect) {
  55. $query->where('dialect', $dialect);
  56. }
  57. $result = $query->orderBy('id')->paginate();
  58. return $result;
  59. }
  60. public function editTimbre($data) {
  61. $timbre_id = getProp($data, 'voice_id');
  62. $timbre = DB::table('mp_timbres')->where('id', $timbre_id)->first();
  63. if (!$timbre) {
  64. return Utils::throwError('20003:该音色不存在');
  65. }
  66. return DB::table('mp_timbres')->where('id', $timbre_id)->update([
  67. 'first_category_id' => getProp($data, 'first_category_id'),
  68. 'first_category_name' => getProp($data, 'first_category_name'),
  69. 'second_category_id' => getProp($data, 'second_category_id'),
  70. 'second_category_name' => getProp($data, 'second_category_name'),
  71. 'third_category_id' => getProp($data, 'third_category_id'),
  72. 'third_category_name' => getProp($data, 'third_category_name'),
  73. 'label' => getProp($data, 'label'),
  74. 'updated_at' => date('Y-m-d H:i:s'),
  75. ]);
  76. }
  77. public function getAllBooks($data) {
  78. $bid = getProp($data, 'bid');
  79. $book_name = getProp($data, 'book_name');
  80. $query = DB::table('book_configs')->whereIn('is_on_shelf', [1,2])->select('bid', 'book_name');
  81. if ($bid) {
  82. $query->where('bid', $bid);
  83. }
  84. if ($book_name) {
  85. $query->where('book_name', 'like', "%{$book_name}%");
  86. }
  87. return $query->orderBy('bid', 'desc')->get()->map(function($value) {
  88. return (array)$value;
  89. })->toArray();
  90. }
  91. }