| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <?php
- namespace App\Http\Controllers;
- use App\Filters\RequirementFilters;
- use App\Http\Requests\RequirementRequest;
- use App\Requirement;
- use App\Role;
- use Illuminate\Http\Request;
- use Illuminate\Http\Response;
- use Illuminate\Support\Facades\Auth;
- class RequirementController extends Controller
- {
- public function index(Request $request, RequirementFilters $filters)
- {
- $requirements = Requirement::query()->filter($filters)
- ->with(['creator', 'workers'])
- ->orderByDesc('created_at')
- ->paginate($request->paginate ?? 50);
- $canCreateRequirementUsers = Role::query()->where('name', '创建需求')->first()->users;
- $canWorkRequirementUsers = Role::query()->where('name', '执行需求')->first()->users;
- $paginateParams = $request->paginateParams;
- return view('requirement.index', compact('canWorkRequirementUsers', 'canCreateRequirementUsers', 'requirements', 'paginateParams'));
- }
- public function create(Requirement $requirement)
- {
- return view('requirement.create_and_edit', compact('requirement'));
- }
- public function store(RequirementRequest $request, Requirement $requirement)
- {
- $requirement->fill($request->all());
- $requirement->user_id = Auth::id();
- $requirement->status = '待接收';
- $requirement->save();
- return redirect()->route('requirements.index', $requirement->id)->with('success', '需求创建成功!');
- }
- public function show(Requirement $requirement)
- {
- $requirement->loadMissing(['creator', 'workers']);
- $creators = Role::query()->where('name', '创建需求')->first()->users;
- $workers = Role::query()->where('name', '执行需求')->first()->users;
- return view('requirement.show', compact('requirement', 'creators', 'workers'));
- }
- public function edit(Requirement $requirement)
- {
- $requirement->loadMissing(['creator', 'workers']);
- $creators = Role::query()->where('name', '创建需求')->first()->users;
- $workers = Role::query()->where('name', '执行需求')->first()->users;
- return view('requirement.create_and_edit', compact('requirement', 'creators', 'workers'));
- }
- public function update(Request $request, Requirement $requirement)
- {
- $requirement->update($request->all());
- return redirect()->route('requirements.show', $requirement->id)->with('success', '编辑成功');
- }
- public function destroy(Requirement $requirement)
- {
- $this->authorize('destroy', $requirement);
- $requirement->delete();
- return redirect()->route('requirements.index', $requirement->id)->with('success', '删除需求成功!');
- }
- public function begin(Requirement $requirement,Request $request)
- {
- $this->authorize('begin', $requirement);
- $requirement->status = '开发中';
- $requirement->began_at = now();
- if (count($request->users) > 0) {
- $attachData = [];
- foreach ($request->users as $worker) {
- $attachData[] = $worker['name'];
- }
- $requirement->workers()->sync($attachData);
- }
- $requirement->save();
- return redirect()->route('requirements.show', $requirement->id)->with('success', '需求已开始执行');
- }
- public function finish(Request $request, Requirement $requirement)
- {
- $requirement->status = '待验收';
- if (count($request->users) > 0) {
- $attachData = [];
- foreach ($request->users as $worker) {
- $attachData[$worker['name']] = ['score' => $worker['score']];
- }
- $requirement->workers()->sync($attachData);
- }
- $requirement->finished_at = now();
- $requirement->save();
- return redirect()->route('requirements.show', $requirement->id)->with('success', '需求等待验收');
- }
- public function review(Requirement $requirement,Request $request)
- {
- //验收通过
- if ($request->flag==="1") {
- $requirement->status = '验收通过';
- }
- //验收未通过
- if ($request->flag==="0") {
- $requirement->status = '验收未通过';
- }
- $requirement->reviewed_at = now();
- $requirement->save();
- return redirect()->route('requirements.show', $requirement->id)->with('success', '验收完成');
- }
- public function againReview(Requirement $requirement,Request $request)
- {
- $requirement->status = '开发中';
- $requirement->finished_at = null;
- $requirement->reviewed_at = null;
- $requirement->save();
- return redirect()->route('requirements.show', $requirement->id)->with('success', '再次申请验收流程完成');
- }
- }
|