UserLaborController.php 6.6 KB

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