|
@@ -0,0 +1,103 @@
|
|
|
|
+<?php
|
|
|
|
+
|
|
|
|
+namespace Modules\Video\Http\Controllers;
|
|
|
|
+
|
|
|
|
+use Catch\Base\CatchController;
|
|
|
|
+use Illuminate\Foundation\Validation\ValidatesRequests;
|
|
|
|
+use Illuminate\Http\Request;
|
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
|
+use Modules\Common\Errors\Errors;
|
|
|
|
+use Modules\Common\Exceptions\CommonBusinessException;
|
|
|
|
+use Modules\User\Http\Controllers\UserTrait;
|
|
|
|
+
|
|
|
|
+class JuliangAccountController extends CatchController
|
|
|
|
+{
|
|
|
|
+ use UserTrait;
|
|
|
|
+ use ValidatesRequests;
|
|
|
|
+
|
|
|
|
+ public function list(Request $request) {
|
|
|
|
+ $advAccountId = $request->input('account_id');
|
|
|
|
+ $advAccountName = $request->input('account_name');
|
|
|
|
+
|
|
|
|
+ return DB::table('juliang_account_callback_config')
|
|
|
|
+ ->where(['company_uid' => $this->getCompanyUid()])
|
|
|
|
+ ->when($advAccountId, function ($query, $advAccountId) {
|
|
|
|
+ return $query->where('adv_account_id' , $advAccountId);
|
|
|
|
+ })->when($advAccountName, function ($query, $advAccountName) {
|
|
|
|
+ return $query->where('adv_account_name', 'like', '%'. $advAccountName. '%');
|
|
|
|
+ })
|
|
|
|
+ ->paginate($request->input('limit', 30));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function addAccount(Request $request) {
|
|
|
|
+ $this->validate($request, [
|
|
|
|
+ 'account_id' => 'required|string|max:64',
|
|
|
|
+ 'account_name' => 'required|string|max:64',
|
|
|
|
+ 'callback_state' => 'required|integer|in:0,1',
|
|
|
|
+ 'protect_num' => 'required|integer|min:0',
|
|
|
|
+ 'callback_default_rate' => 'required|min:0|max:100',
|
|
|
|
+ 'callback_rate_time_config' => 'nullable|array',
|
|
|
|
+ 'callback_min_money' => 'required|min:0',
|
|
|
|
+ 'callback_max_money' => 'required|min:0'
|
|
|
|
+ ]);
|
|
|
|
+
|
|
|
|
+ if(DB::table('juliang_account_callback_config')
|
|
|
|
+ ->where(['company_uid' => $this->getCompanyUid(), 'adv_account_id' => $request->input('account_id')])
|
|
|
|
+ ->exists()) {
|
|
|
|
+ CommonBusinessException::throwError(Errors::JULIANG_ACCOUNT_EXISTS);
|
|
|
|
+ }
|
|
|
|
+ $now = date('Y-m-d H:i:s');
|
|
|
|
+ DB::table('juliang_account_callback_config')
|
|
|
|
+ ->insert([
|
|
|
|
+ 'adv_account_id' => $request->input('acccount_id'),
|
|
|
|
+ 'adv_account_name' => $request->input('account_name'),
|
|
|
|
+ 'callback_state' => $request->input('callback_state'),
|
|
|
|
+ 'protect_num' => $request->input('protect_num'),
|
|
|
|
+ 'callback_default_rate' => $request->input('callback_default_rate'),
|
|
|
|
+ 'callback_rate_time_config' => \json_encode($request->input('callback_rate_time_config', '[]')),
|
|
|
|
+ 'callback_min_money' => $request->input('callback_min_money'),
|
|
|
|
+ 'callback_max_money' => $request->input('callback_max_money'),
|
|
|
|
+ 'company_uid' => $this->getCompanyUid(),
|
|
|
|
+ 'created_at' => $now,
|
|
|
|
+ 'updated_at' => $now,
|
|
|
|
+ ]);
|
|
|
|
+ return 'ok';
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function updateCallbackConfig(Request $request) {
|
|
|
|
+ $this->validate($request, [
|
|
|
|
+ 'ids' => 'required|array',
|
|
|
|
+ 'callback_state' => 'required|integer|in:0,1',
|
|
|
|
+ 'protect_num' => 'required|integer|min:0',
|
|
|
|
+ 'callback_default_rate' => 'required|min:0|max:100',
|
|
|
|
+ 'callback_rate_time_config' => 'nullable|array',
|
|
|
|
+ 'callback_min_money' => 'required|min:0',
|
|
|
|
+ 'callback_max_money' => 'required|min:0'
|
|
|
|
+ ]);
|
|
|
|
+ $now = date('Y-m-d H:i:s');
|
|
|
|
+ foreach ($request->input('ids') as $id) {
|
|
|
|
+ DB::table('juliang_account_callback_config')
|
|
|
|
+ ->where(['id' => $id, 'company_uid' => $this->getCompanyUid()])
|
|
|
|
+ ->update([
|
|
|
|
+ 'callback_state' => $request->input('callback_state'),
|
|
|
|
+ 'protect_num' => $request->input('protect_num'),
|
|
|
|
+ 'callback_default_rate' => $request->input('callback_default_rate'),
|
|
|
|
+ 'callback_rate_time_config' => \json_encode($request->input('callback_rate_time_config', '[]')),
|
|
|
|
+ 'callback_min_money' => $request->input('callback_min_money'),
|
|
|
|
+ 'callback_max_money' => $request->input('callback_max_money'),
|
|
|
|
+ 'updated_at' => $now,
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+ $advAccountIds = DB::table('juliang_account_callback_config')
|
|
|
|
+ ->whereIn('id', $request->input('ids'))
|
|
|
|
+ ->where('company_uid', $this->getCompanyUid())
|
|
|
|
+ ->select('adv_account_id')->get()->pluck('adv_account_id');
|
|
|
|
+ if($advAccountIds->isNotEmpty()) {
|
|
|
|
+ DB::table('juliang_account_recharge_report_records')
|
|
|
|
+ ->whereIn('account_id', $advAccountIds)
|
|
|
|
+ ->update(['is_eanbled' => 0, 'updated_at' => $now]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return 'ok';
|
|
|
|
+ }
|
|
|
|
+}
|