AssitController.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?php
  2. namespace Modules\Manager\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Models\Assit;
  5. use App\Models\User;
  6. use Illuminate\Validation\Rule;
  7. use Illuminate\Support\Facades\Validator;
  8. class AssitController extends Controller
  9. {
  10. public function getAssitList(Request $request){
  11. $page_size=$request->input('page_size');
  12. $page_index=$request->input('page_index');
  13. $search_name=$request->input('search_name');
  14. $phone=$request->input('phone');
  15. $num=$page_size*($page_index-1);
  16. $data=Assit::query();
  17. if($search_name){
  18. $user_ids=User::where('mobile','like','%'.$search_name.'%')
  19. ->orWhere('nickname','like','%'.$search_name.'%')->pluck('id');
  20. $data=$data->whereIn('agent_id',$user_ids);
  21. }
  22. if($phone){
  23. $data->where('phone','like','%'.$phone.'%')
  24. ->orWhere('name','like','%'.$phone.'%');
  25. }
  26. $total=$data->count();
  27. $list=$data->with(['user:id,nickname,mobile,level'])
  28. ->orderBy('id','desc')
  29. ->skip($num)->take($page_size)->get();
  30. return $this->success_list($list,'',$total);
  31. }
  32. public function getUser(Request $request){
  33. $phone=$request->input('phone');
  34. if($phone){
  35. $user=User::where(function($query)use($phone){
  36. $query->where('mobile','like','%'.$phone.'%')->orWhere('nickname','like','%'.$phone.'%');
  37. })
  38. ->whereNull('deleted_at')->where('status',0)->where('cert_status',6)->where('service_status',0)
  39. ->where('level',3)
  40. ->select('id','mobile','nickname')
  41. ->orderBy('id','desc')
  42. ->limit(1000)->get();
  43. if($user){
  44. return $this->success($user);
  45. }
  46. }
  47. return $this->success([]);
  48. // return $this->error('450001','代理信息不存在');
  49. }
  50. public function addAssit(Request $request){
  51. $rules=[
  52. 'name' => 'required|min:2|max:12',
  53. 'phone' => 'required|regex:/^1[345789][0-9]{9}$/|unique:assit',
  54. 'password' => 'required|min:6|max:18',
  55. ];
  56. $messages = [
  57. 'name.required' => '助手名称为必填项.',
  58. 'name.min' => '助手名称不能少于2个字符.',
  59. 'name.max' => '助手名称不能超过12个字符.',
  60. 'phone.request' => '助手手机号为必填项.',
  61. 'phone.regex' => '助手手机号格式有误.',
  62. 'phone.unique' => '助手手机号已存在.',
  63. 'password.required' => '助手密码为必填项.',
  64. 'password.min' => '助手密码不能少于6个字符.',
  65. 'password.max' => '助手密码不能超过18个字符.',
  66. ];
  67. $validator = Validator::make($request->all(), $rules, $messages);
  68. if($validator->fails()){
  69. return $this->error('400013',$validator->errors()->first());
  70. }
  71. $name=$request->input('name');
  72. $phone=$request->input('phone');
  73. $password=$request->input('password');
  74. $agent_id=$request->input('agent_id');
  75. $user=User::where('mobile',$phone)->first();
  76. if(!empty($user) && empty($user->deleted_at)){
  77. return $this->error('450001','助手手机号已被代理使用');
  78. }
  79. $num=Assit::query()->where('agent_id',$agent_id)->count();
  80. if($num>0){
  81. return $this->error('450001','代理已存在助手');
  82. }
  83. $res=Assit::create([
  84. 'name'=>$name,
  85. 'phone'=>$phone,
  86. 'agent_id'=>$agent_id,
  87. 'password'=>md5($password),
  88. ]);
  89. if($res){
  90. return $this->success([]);
  91. }else{
  92. return $this->error();
  93. }
  94. }
  95. public function editAssit(Request $request){
  96. $id=$request->input('id');
  97. $rules=[
  98. 'name' => 'required|min:2|max:12',
  99. 'phone' => 'required|regex:/^1[345789][0-9]{9}$/',
  100. 'phone' => Rule::unique('assit')->ignore($id),
  101. 'password' => 'required|min:6|max:18',
  102. ];
  103. $messages = [
  104. 'name.required' => '助手名称为必填项.',
  105. 'name.min' => '助手名称不能少于2个字符.',
  106. 'name.max' => '助手名称不能超过12个字符.',
  107. 'phone.request' => '助手手机号为必填项.',
  108. 'phone.regex' => '助手手机号格式有误.',
  109. 'phone.unique' => '助手手机号已存在.',
  110. 'password.required' => '助手密码为必填项.',
  111. 'password.min' => '助手密码不能少于6个字符.',
  112. 'password.max' => '助手密码不能超过18个字符.',
  113. ];
  114. $validator = Validator::make($request->all(), $rules, $messages);
  115. if($validator->fails()){
  116. return $this->error('400013',$validator->errors()->first());
  117. }
  118. $name=$request->input('name');
  119. $phone=$request->input('phone');
  120. $password=$request->input('password');
  121. $agent_id=$request->input('agent_id');
  122. $user=User::where('mobile',$phone)->first();
  123. if(!empty($user) && empty($user->deleted_at)){
  124. return $this->error('400015','助手手机号已被代理使用');
  125. }
  126. $num=Assit::query()->where('agent_id',$agent_id)
  127. ->where('phone','<>',$phone)->count();
  128. $assit=Assit::where('id',$id)->first();
  129. if($num>0 && $agent_id != $assit->agent_id){
  130. return $this->error('450001','代理已存在助手');
  131. }
  132. $assit->name = $name;
  133. $assit->phone = $phone;
  134. $assit->agent_id = $agent_id;
  135. $assit->password = md5($password);
  136. $res = $assit->save();
  137. if($res){
  138. return $this->success([]);
  139. }else{
  140. return $this->error();
  141. }
  142. }
  143. public function delAssit(Request $request){
  144. $id=$request->input('id');
  145. $res=Assit::where('id',$id)->delete();
  146. if($res){
  147. return $this->success([]);
  148. }else{
  149. return $this->error();
  150. }
  151. }
  152. }