|
@@ -0,0 +1,113 @@
|
|
|
|
+<?php
|
|
|
|
+
|
|
|
|
+namespace App\Services\Timbre;
|
|
|
|
+
|
|
|
|
+use App\Consts\ErrorConst;
|
|
|
|
+use App\Facade\Site;
|
|
|
|
+use App\Libs\Utils;
|
|
|
|
+use GuzzleHttp\Client;
|
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
|
+use Illuminate\Support\Facades\Redis;
|
|
|
|
+use OSS\Core\OssException;
|
|
|
|
+use OSS\OssClient;
|
|
|
|
+
|
|
|
|
+class TimbreService
|
|
|
|
+{
|
|
|
|
+
|
|
|
|
+ public function __construct() {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function getCategoryList($data) {
|
|
|
|
+ $category_type = getProp($data, 'category_type', 1);
|
|
|
|
+ $category_id = getProp($data, 'category_id');
|
|
|
|
+ $category_name = getProp($data, 'category_name');
|
|
|
|
+ $pid = getProp($data, 'pid');
|
|
|
|
+
|
|
|
|
+ $query = DB::table('mp_timbre_categories')->where('is_enable', 1)->select('*');
|
|
|
|
+ switch ($category_type) {
|
|
|
|
+ case 1:
|
|
|
|
+ $query->where('pid', 0);
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ $query->where('pid', $pid);
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ $query->where('pid', $pid);
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ($category_id) {
|
|
|
|
+ $query->where('id', $category_id);
|
|
|
|
+ }
|
|
|
|
+ if ($category_name) {
|
|
|
|
+ $query->where('category_name', 'like', "%{$category_name}%");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return $query->orderBy('id')->paginate();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function getTimbreList($data) {
|
|
|
|
+ $timbre_name = getProp($data, 'voice_name');
|
|
|
|
+ $language = getProp($data, 'language');
|
|
|
|
+ $status = getProp($data, 'status');
|
|
|
|
+ $dialect = getProp($data, 'dialect');
|
|
|
|
+
|
|
|
|
+ $query = DB::table('mp_timbres')->where('is_enabled', 1)->select('*');
|
|
|
|
+
|
|
|
|
+ if ($timbre_name) {
|
|
|
|
+ $query->where('timbre_name', 'like', "%{$timbre_name}%");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ($language) {
|
|
|
|
+ $query->where('language', 'like', "%{$language}%");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ($dialect) {
|
|
|
|
+ $query->where('dialect', $dialect);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $result = $query->orderBy('id')->paginate();
|
|
|
|
+
|
|
|
|
+ return $result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function editTimbre($data) {
|
|
|
|
+ $timbre_id = getProp($data, 'voice_id');
|
|
|
|
+ $timbre = DB::table('mp_timbres')->where('id', $timbre_id)->first();
|
|
|
|
+ if (!$timbre) {
|
|
|
|
+ return Utils::throwError('20003:该音色不存在');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return DB::table('mp_timbres')->where('id', $timbre_id)->update([
|
|
|
|
+ 'first_category_id' => getProp($data, 'first_category_id'),
|
|
|
|
+ 'first_category_name' => getProp($data, 'first_category_name'),
|
|
|
|
+ 'second_category_id' => getProp($data, 'second_category_id'),
|
|
|
|
+ 'second_category_name' => getProp($data, 'second_category_name'),
|
|
|
|
+ 'third_category_id' => getProp($data, 'third_category_id'),
|
|
|
|
+ 'third_category_name' => getProp($data, 'third_category_name'),
|
|
|
|
+ 'label' => getProp($data, 'label'),
|
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function getAllBooks($data) {
|
|
|
|
+ $bid = getProp($data, 'bid');
|
|
|
|
+ $book_name = getProp($data, 'book_name');
|
|
|
|
+
|
|
|
|
+ $query = DB::table('book_configs')->whereIn('is_on_shelf', [1,2])->select('bid', 'book_name');
|
|
|
|
+ if ($bid) {
|
|
|
|
+ $query->where('bid', $bid);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ($book_name) {
|
|
|
|
+ $query->where('book_name', 'like', "%{$book_name}%");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return $query->orderBy('bid', 'desc')->get()->map(function($value) {
|
|
|
|
+ return (array)$value;
|
|
|
|
+ })->toArray();
|
|
|
|
+ }
|
|
|
|
+}
|