|
|
@@ -14,10 +14,15 @@ use Illuminate\Http\RedirectResponse;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Routing\Redirector;
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
+use Illuminate\Support\Facades\Cache;
|
|
|
use Illuminate\Support\Facades\Gate;
|
|
|
|
|
|
class LaborApplyController extends Controller
|
|
|
{
|
|
|
+ //限制同一用户提交频率
|
|
|
+ const LABOR_APPLY_STORE_LIMIT = 'LABOR_APPLY_STORE_';
|
|
|
+ const LABOR_APPLY_STORE_LIMIT_TTL = 10;
|
|
|
+
|
|
|
public function index(Request $request, LaborApplyFilters $filters)
|
|
|
{
|
|
|
$builder = LaborApply::query()
|
|
|
@@ -48,10 +53,14 @@ class LaborApplyController extends Controller
|
|
|
|
|
|
public function store(LaborApplyRequest $request, LaborApply $laborApply)
|
|
|
{
|
|
|
+ if (Cache::has(self::LABOR_APPLY_STORE_LIMIT . \auth()->id())) {
|
|
|
+ return redirect(route('laborApply.create'))->with('warning', "提交频率过高,请等待" . self::LABOR_APPLY_STORE_LIMIT_TTL . "s以上再试!");
|
|
|
+ }
|
|
|
$laborApply->fill($request->all());
|
|
|
$laborApply->apply_user_id = Auth::id();
|
|
|
$laborApply->status = '创建';
|
|
|
$laborApply->save();
|
|
|
+ Cache::add(self::LABOR_APPLY_STORE_LIMIT . \auth()->id(), true, self::LABOR_APPLY_STORE_LIMIT_TTL);
|
|
|
return redirect(route('laborApply.index'))->with('success', '申请成功!');
|
|
|
}
|
|
|
|