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'; } }