ApplyUserController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. <?php
  2. namespace Modules\Service\Http\Controllers;
  3. use Modules\Service\Events\SendApplyResultSmsEvent;
  4. use App\Models\ApplyUser;
  5. use App\Models\User;
  6. use App\Models\Warea;
  7. use Carbon\Carbon;
  8. use GuzzleHttp\Client;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Support\Facades\Auth;
  11. class ApplyUserController extends Controller
  12. {
  13. public function GetApplyList(Request $request){
  14. $page_index=$request->input('page_index',1);
  15. $page_size=$request->input('page_size',15);
  16. $search_name=$request->input('search_name','');
  17. $type=$request->input('type',null);
  18. $status=$request->input('status',null);
  19. $audit_status=$request->input('audit_status')??null;
  20. $start_time=$request->input('start_time',null);
  21. $end_time=$request->input('end_time',null);
  22. $data=ApplyUser::query();
  23. $auth_id=Auth::user()->role_id;
  24. if ($auth_id==23){
  25. $id=Warea::where('admin_id',Auth::user()->id)->value('id');
  26. $ids=User::whereNull('deleted_at')->where('freeze_status',0)->where('warea_id',$id)->pluck('id');
  27. $data->whereIn('user_id',$ids);
  28. }
  29. // elseif($auth_id==22){
  30. // $data->where('status',1)->where('audit_status',0);
  31. // }
  32. if ($search_name){
  33. $idss=User::where('nickname',"like","%$search_name%")->orwhere('remark_name','like',"%$search_name%")
  34. ->orwhere('mobile','like',"%$search_name%")->pluck('id');
  35. $data->whereIn('apply_user_id',$idss);
  36. }
  37. if (is_numeric($type)){
  38. $data->where('type',$type);
  39. }
  40. if ($start_time){
  41. $data->whereBetween('created_at',[$start_time,$end_time]);
  42. }
  43. if (is_numeric($audit_status)){
  44. $data->where('audit_status',$audit_status);
  45. }
  46. if ($status==3){
  47. $data->where('apply_status',1);
  48. }else{
  49. if (is_numeric($status)){
  50. $data->where('status',$status)->where('apply_status',0);
  51. }
  52. }
  53. $count=$data->count();
  54. $list=$data->with(['GetUser','GetApplyUser'=>function($q){
  55. $q->with(['warea']);
  56. }])->orderByDesc('id')->take($page_size)->skip(($page_index-1)*$page_size)->get();
  57. return $this->success_list($list,'',$count);
  58. }
  59. /**政委审核--**/
  60. public function UpdateApplyStatus(Request $request){
  61. // return $this->error(500214,'该功能升级中,请等待通知!');
  62. $img=$request->input('img',null);
  63. $re=ApplyUser::find($request->id);
  64. if ($re){
  65. $re->status=$request->status;
  66. $re->audit_status=0;
  67. if ($request->status==2){
  68. $re->op_time=Carbon::now()->toDateTimeString();
  69. $re->remark=$request->remark;
  70. $re->reject_imgList=$img;
  71. }else{
  72. if ($re->type==1){
  73. $re->audit_status=1;
  74. $re->status=1;
  75. try{
  76. $data=[
  77. 'id'=>$re->id
  78. ];
  79. event(new SendApplyResultSmsEvent($data));
  80. }catch (\Exception $exception){
  81. \Log::error($exception->getMessage());
  82. }
  83. }
  84. }
  85. $re->save();
  86. }
  87. return $this->success([]);
  88. }
  89. /**公司审核**/
  90. public function UpdateApplyAuditStatus(Request $request){
  91. $re=ApplyUser::find($request->id);
  92. $re->audit_time=Carbon::now()->toDateTimeString();
  93. $re->audit_status=$request->audit_status;
  94. if ($request->audit_status==2){
  95. $re->status=0;
  96. }
  97. $re->audit_remark=$request->audit_remark;
  98. $re->save();
  99. if($re->audit_status==1){
  100. try{
  101. $data=[
  102. 'id'=>$re->id
  103. ];
  104. event(new SendApplyResultSmsEvent($data));
  105. }catch (\Exception $exception){
  106. \Log::error($exception->getMessage());
  107. }
  108. }
  109. return $this->success([]);
  110. }
  111. public function UpdateApplyStatuss(Request $request){
  112. return $this->error(500214,'该功能暂停使用');
  113. $img=$request->input('img',null);
  114. $re=ApplyUser::find($request->id);
  115. if ($re){
  116. $re->op_time=Carbon::now()->toDateTimeString();
  117. $re->status=$request->status;
  118. $re->remark=$request->remark;
  119. $re->reject_imgList=$img;
  120. $re->save();
  121. try{
  122. $data=[
  123. 'id'=>$re->id
  124. ];
  125. event(new SendApplyResultSmsEvent($data));
  126. }catch (\Exception $exception){
  127. \Log::error($exception->getMessage());
  128. }
  129. }
  130. return $this->success([]);
  131. }
  132. public function UpdateApplyAllStatus(Request $request){
  133. $img=$request->input('img',null);
  134. $ids=$request->input('id');
  135. $re=ApplyUser::find($request->id);
  136. if ($re){
  137. $re->op_time=Carbon::now()->toDateTimeString();
  138. $re->status=$request->status;
  139. $re->remark=$request->remark;
  140. $re->reject_imgList=$img;
  141. $re->save();
  142. try{
  143. $data=[
  144. 'id'=>$re->id
  145. ];
  146. event(new SendApplyResultSmsEvent($data));
  147. }catch (\Exception $exception){
  148. \Log::error($exception->getMessage());
  149. }
  150. }
  151. return $this->success([]);
  152. }
  153. public function uploadImage(Request $request){
  154. $apply=ApplyUser::where('id',$request->input('id',null))->first();
  155. if(empty($apply)){
  156. return $this->error('450001','修改申请不存在');
  157. }
  158. $client = new Client();
  159. $url = 'http://api.app.jiuweiyun.cn/api/user_apply/upload_apply_image';
  160. $array = [
  161. 'multipart' => [
  162. [
  163. 'name'=>'id',
  164. 'contents'=>$apply->user_id
  165. ],
  166. [
  167. 'name' => 'img',
  168. 'contents' => fopen($request->file('img')->getRealPath(),'r'),
  169. ]
  170. ]
  171. ];
  172. $response = $client->request('POST', $url, $array);
  173. $result = json_decode($response->getBody()->getContents(),true);
  174. if($result['code']==200){
  175. return $this->success($result['imgUrl']);
  176. }
  177. return $this->error();
  178. }
  179. public function editApplyInfo(Request $request){
  180. $id=$request->input('id',null);
  181. $amount_img=$request->input('amount_img',null);
  182. $sale_data=$request->input('sale_data',null);
  183. $apply=ApplyUser::where('id',$id)->first();
  184. if(empty($apply)){
  185. return $this->error('450001','修改申请不存在');
  186. }
  187. $data['old_amount_img']=json_decode($apply->data,true);
  188. $data['old_sale_data']=json_decode($apply->goods_data,true);
  189. $log=Auth::user()->name.'('.Auth::user()->id.')于'.date("Y-m-d H:i:s").'修改了申请信息,修改前信息记录如下:'.PHP_EOL.json_encode($data);
  190. $apply->data=$amount_img?json_encode($amount_img):null;
  191. $apply->goods_data=$sale_data?json_encode($sale_data):null;
  192. $apply->log=$log;
  193. $res=$apply->save();
  194. if($res){
  195. return $this->success([]);
  196. }else{
  197. return $this->error();
  198. }
  199. }
  200. public function Get(){
  201. $app=ApplyUser::where('id',69)->with(['GetApplyUser'])->with(['GetUser'])->first()->toArray();
  202. dd($app);
  203. }
  204. public function ExportExcel(Request $request){
  205. $search_name=$request->input('search_name','');
  206. $type=$request->input('type',null);
  207. $status=$request->input('status',null);
  208. $audit_status=$request->input('audit_status')??null;
  209. $start_time=$request->input('start_time',null);
  210. $end_time=$request->input('end_time',null);
  211. $data=ApplyUser::query();
  212. $auth_id=Auth::user()->role_id;
  213. if ($auth_id==23){
  214. $id=Warea::where('admin_id',Auth::user()->id)->value('id');
  215. $ids=User::whereNull('deleted_at')->where('freeze_status',0)->where('warea_id',$id)->pluck('id');
  216. $data->whereIn('user_id',$ids);
  217. }
  218. if ($search_name){
  219. $idss=User::where('nickname',"like","%$search_name%")->orwhere('remark_name','like',"%$search_name%")
  220. ->orwhere('mobile','like',"%$search_name%")->pluck('id');
  221. $data->whereIn('apply_user_id',$idss);
  222. }
  223. if (is_numeric($type)){
  224. $data->where('type',$type);
  225. }
  226. if ($start_time){
  227. $data->whereBetween('created_at',[$start_time,$end_time]);
  228. }
  229. if ($audit_status){
  230. $data->where('audit_status',$audit_status);
  231. }
  232. if ($status==3){
  233. $data->where('apply_status',1);
  234. }else{
  235. if (is_numeric($status)){
  236. $data->where('status',$status)->where('apply_status',0);
  237. }
  238. }
  239. $list=$data->with(['GetUser','GetApplyUser'=>function($q){
  240. $q->with(['warea','crown']);
  241. }])->orderByDesc('id')->get();
  242. $data=[];
  243. foreach ($list as $k=>$v){
  244. if($v->GetApplyUser){
  245. $data[$k]['手机号']=$v->GetApplyUser->mobile;
  246. $data[$k]['昵称']=$v->GetApplyUser->nickname;
  247. $data[$k]['真实姓名']=$v->GetApplyUser->realname;
  248. $data[$k]['级别']=$this->judge_level($v->GetApplyUser->level);
  249. $data[$k]['战区']=$v->GetApplyUser->warea?$v->GetApplyUser->warea->name:null;
  250. $data[$k]['团队老大']=$v->GetApplyUser->crown?$v->GetApplyUser->crown->nickname:null;
  251. }else{
  252. $data[$k]['手机号']='无';
  253. $data[$k]['昵称']='无';
  254. $data[$k]['真实姓名']='无';
  255. $data[$k]['级别']='未知';
  256. $data[$k]['战区']='未知';
  257. $data[$k]['团队老大']='未知';
  258. }
  259. $data[$k]['类型']=$this->judge_type($v->type);
  260. $data[$k]['变动时间']='';
  261. if ($v->status==0 && $v->audit_status==0){
  262. $status='未审核';
  263. }elseif ($v->status==1 && $v->audit_status==0){
  264. $status='公司未审核';
  265. }elseif ($v->status==2){
  266. $status='驳回';
  267. }elseif ($v->status==1 && $v->audit_status==1){
  268. $status='已完成';
  269. $data[$k]['变动时间']=$v->audit_time??$v->op_time;
  270. }
  271. $data[$k]['状态']=$status;
  272. $data[$k]['审核时间']=$v->op_time;
  273. }
  274. return $this->success($data);
  275. }
  276. function judge_type($type){
  277. switch ($type){
  278. case 0:
  279. $type='降级';
  280. break;
  281. case 1:
  282. $type='升级';
  283. break;
  284. case 2:
  285. $type='删除';
  286. break;
  287. }
  288. return $type;
  289. }
  290. function judge_level($level){
  291. switch ($level){
  292. case 1:
  293. $level='销售主管';
  294. break;
  295. case 2:
  296. $level='销售经理';
  297. break;
  298. case 3:
  299. $level='代理公司';
  300. break;
  301. }
  302. return $level;
  303. }
  304. }