UserLaborController.php 7.0 KB

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