UserLaborController.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\LaborCompany;
  4. use App\ProcessDailyParticipant;
  5. use App\User;
  6. use App\UserDetail;
  7. use App\UserDutyCheck;
  8. use App\UserLabor;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Support\Facades\Auth;
  11. use Illuminate\Support\Facades\Cache;
  12. use Illuminate\Support\Facades\Gate;
  13. use Illuminate\Support\Facades\Validator;
  14. use Illuminate\Validation\Rule;
  15. class UserLaborController extends Controller
  16. {
  17. /**
  18. * Display a listing of the resource.
  19. *
  20. * @return \Illuminate\Http\Response
  21. */
  22. public function index()
  23. {
  24. $userLabors=UserLabor::with('userDetail')->paginate(50);
  25. return view('maintenance.userLabor.index',['userLabors'=>$userLabors]);
  26. }
  27. /**
  28. * Show the form for creating a new resource.
  29. *
  30. * @return \Illuminate\Http\Response
  31. */
  32. public function create()
  33. {
  34. //
  35. }
  36. public function relieve(Request $request){
  37. $user_id=$request->input('user_id');
  38. if (!$user_id) return ['error'=>'传递空值!'];
  39. $token=Cache::pull('tokenUser_'.$user_id);
  40. if ($token)Cache::pull('tokenStr_'.$token);
  41. return ['success'=>true];
  42. }
  43. /**
  44. * Store a newly created resource in storage.
  45. *
  46. * @param \Illuminate\Http\Request $request
  47. * @return \Illuminate\Http\Response
  48. */
  49. public function store(Request $request)
  50. {
  51. //
  52. }
  53. /**
  54. * Display the specified resource.
  55. *
  56. * @param int $id
  57. * @return \Illuminate\Http\Response
  58. */
  59. public function show($id)
  60. {
  61. if(!Gate::allows('临时工-查询')){ return redirect(url('/')); }
  62. $userLabor=UserLabor::with(['userDetail','laborCompany'])->find($id);
  63. return view('maintenance.userLabor.show',['userLabor'=>$userLabor]);
  64. }
  65. //获取劳务记录
  66. public function getWorkRecord(Request $request){
  67. if(!Gate::allows('临时工-查询')){ return redirect(url('/')); }
  68. $user_id=$request->input('user_id');
  69. if (!$user_id)return ['error'=>'提交ID失败!'];
  70. $processDailyParticipants=ProcessDailyParticipant::with('processDaily')
  71. ->where('user_id',$user_id)->orderBy('created_at','DESC')->limit(20)->get();
  72. return $processDailyParticipants;
  73. }
  74. //获取打卡记录
  75. public function getClockRecord(Request $request){
  76. if(!Gate::allows('临时工-查询')){ return redirect(url('/')); }
  77. $user_id=$request->input('user_id');
  78. if (!$user_id)return ['error'=>'提交ID失败!'];
  79. $userDutyChecks=UserDutyCheck::orderBy('checked_at','DESC')->where('user_id',$user_id)->limit(20)->get();
  80. return $userDutyChecks;
  81. }
  82. /**
  83. * Show the form for editing the specified resource.
  84. *
  85. * @param int $id
  86. * @return \Illuminate\Http\Response
  87. */
  88. public function edit($id)
  89. {
  90. if(!Gate::allows('临时工-编辑')){ return redirect(url('/')); }
  91. $userLabor=UserLabor::with(['userDetail','laborCompany'])->find($id);
  92. $laborCompanies=LaborCompany::select('id','name')->get();
  93. return view('maintenance.userLabor.edit',['userLabor'=>$userLabor,'laborCompanies'=>$laborCompanies,]);
  94. }
  95. /**
  96. * Update the specified resource in storage.
  97. *
  98. * @param \Illuminate\Http\Request $request
  99. * @param int $id
  100. * @return \Illuminate\Http\Response
  101. */
  102. public function update(Request $request, $id)
  103. {
  104. if(!Gate::allows('临时工-编辑')){ return redirect(url('/')); }
  105. Validator::make($request->input(),[
  106. 'full_name'=>'required|max:10',
  107. 'mobile_phone'=>['required','integer','digits:11'],
  108. 'gender'=>['required',Rule::in(['男', '女']),],
  109. 'identity_number'=>'nullable',
  110. 'default_hour_price'=>'nullable|min:0|max:999999|numeric',
  111. 'name'=>'nullable',
  112. ],[
  113. 'required'=>':attribute 不应为空',
  114. 'min'=>':attribute 不得为0或为负',
  115. 'numeric'=>':attribute 必须为数字',
  116. 'max'=>':attribute 输入值过大或过长',
  117. 'integer'=>':attribute 选择错误',
  118. ],[
  119. 'full_name'=>'姓名',
  120. 'mobile_phone'=>'电话',
  121. 'gender'=>'性别',
  122. 'identity_number'=>'身份证号',
  123. 'default_hour_price'=>'默认计时工资',
  124. 'name'=>'劳务所',
  125. ])->validate();
  126. $userDetail=UserDetail::find($id);
  127. $userDetail->full_name=$request->input('full_name');
  128. $userDetail->mobile_phone=$request->input('mobile_phone');
  129. $userDetail->gender=$request->input('gender');
  130. $userDetail->identity_number=$request->input('identity_number');
  131. $userDetail->update();
  132. $this->log(__METHOD__,"修改用户详情".__FUNCTION__,json_encode($userDetail),Auth::user()['id']);
  133. $default_hour_price=$request->input('default_hour_price');
  134. $laborCompanyName=$request->input('name');
  135. $labor_company_id=LaborCompany::where('name','=',$laborCompanyName)->value('id');
  136. $userLabor=UserLabor::find($id);
  137. if ($userLabor->default_hour_price!=$default_hour_price || $userLabor->labor_company_id!=$labor_company_id){
  138. $userLabor->default_hour_price=$default_hour_price;
  139. $userLabor->labor_company_id=$labor_company_id;
  140. $userLabor->update();
  141. $this->log(__METHOD__,"修改临时工".__FUNCTION__,json_encode($userLabor),Auth::user()['id']);
  142. }
  143. return redirect('maintenance/userLabor')->with('successTip','临时工“'.$userDetail->full_name.'”信息修改成功!');
  144. }
  145. /**
  146. * Remove the specified resource from storage.
  147. *
  148. * @param int $id
  149. * @return \Illuminate\Http\Response
  150. */
  151. public function destroy($id)
  152. {
  153. if(!Gate::allows('临时工-删除')){ return redirect(url('/')); }
  154. $userDetail=UserDetail::find($id);
  155. $user=User::find($id);
  156. $userLabor=UserLabor::find($id);
  157. if (!$userDetail || !$user || !$userLabor){
  158. return ['error'=>'未找到对应临时工'];
  159. }
  160. $userDetail->delete();
  161. $this->log(__METHOD__,"删除用户详情".__FUNCTION__,json_encode($userDetail),Auth::user()['id']);
  162. $user->delete();
  163. $this->log(__METHOD__,"删除临时工用户".__FUNCTION__,json_encode($user),Auth::user()['id']);
  164. $userLabor->delete();
  165. $this->log(__METHOD__,"删除临时工".__FUNCTION__,json_encode($userLabor),Auth::user()['id']);
  166. return ['success'=>true];
  167. }
  168. }