UserLaborController.php 6.9 KB

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