user(); if($adminInfo){ $atis=$adminInfo->is_team; if($atis==2){ $where['users.team_id']=$adminInfo->team_id; } } $search_name = $request->search_name; $page_size = $request->page_size; $page_index = $request->page_index; $num = ($page_index - 1) * $page_size; if(!empty($request->team_id)){ $where['users.team_id']=$request->team_id; } $where['users.del_is']=0; $count = DB::table('users') ->leftJoin('team','users.team_id','=','team.id') ->where(function ($query) use ($search_name) { $query->where('users.name', 'like', '%' . $search_name . '%') ->orWhere('users.telphone', 'like', '%' . $search_name . '%') ->orWhere('users.cre_num', 'like', '%' . $search_name . '%'); }) ->where($where) ->count(); if ($count > 0) { $list = DB::table('users') ->leftJoin('team', 'users.team_id', '=', 'team.id') ->where(function ($query) use ($search_name) { $query->where('users.name', 'like', '%' . $search_name . '%') ->orWhere('users.telphone', 'like', '%' . $search_name . '%') ->orWhere('users.cre_num', 'like', '%' . $search_name . '%'); }) ->where($where) ->select('users.*', 'team.name as tname') ->orderBy('users.id', 'desc') ->skip($num)->take($page_size)->get(); if ($list) { $year=$request->year?$request->year:date('Y'); $startyear=$year-1; // $endyear=$year+1; $startime=date($startyear.'-12-31'); $endtime=date($year.'-12-31'); $ll=\GuzzleHttp\json_decode($list,true); foreach ($ll as $key=>$val){ $uid=$val['id']; $i=DB::table('charge')->where('uid',$uid)->where('status',1)->whereBetween('month',[$startime,$endtime])->orderBy("month")->pluck('month'); $ll[$key]['months']=$i; $account=DB::table('charge')->where('uid',$uid)->where('status',1)->whereBetween('month',[$startime,$endtime])->sum('fee'); $ll[$key]['account']=$account; } return response()->json([ 'error_code' => 200, 'msg' => '获取党员信息成功', 'list' => $ll, 'count' => $count ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '获取党员信息失败' ]); } } else { return response()->json([ 'error_code' => 200, 'msg' => '没有党员信息', 'list' => [], 'count' => $count ]); } } public function getMyCommit(Request $request){ $where['uid']=$request->id; $commit=DB::table('upload_commit_log')->where($where)->get(); if($commit){ return response()->json([ 'error_code' => 200, 'msg' => '获取承诺书成功', 'data' => $commit, ]); }else{ return response()->json([ 'error_code' => 0, 'msg' => '获取承诺书失败' ]); } } public function getTeamList(){ $list=DB::table('team')->where('status',1)->get(); if ($list) { return response()->json([ 'error_code' => 200, 'msg' => '获取支部信息成功', 'list' => $list ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '获取支部信息失败' ]); } } /* 添加党员 */ public function addMember(Request $request){ $input=$request->all(); $rules=[ 'name'=>'required|max:16', 'cre_num'=>'required|min:8|max:8', 'address'=>'max:255', 'telphone'=>'required|regex:/^1[345789][0-9]{9}$/', 'team_id'=>'required', ]; $messages=[ 'name.required'=>'党员名称不能为空.', 'name.max'=>'党员名称不能超过16个字符.', 'cre_num.required'=>'档案号不能为空.', 'cre_num.min'=>'档案号长度为8个字符.', 'cre_num.max'=>'档案号长度为8个字符.', 'address.max'=>'备注信息太多.', 'telphone.required'=>'手机号不能为空.', 'telphone.regex'=>'手机号格式有误.', 'team_id.required'=>'请选择团队.', ]; $validator = Validator::make($input, $rules ,$messages); if($validator->fails()){ return response()->json([ 'error_code'=>'41113', 'msg'=>$validator->errors()->first() ]); } $tel_info=DB::table('users') ->where('del_is',0) ->where('telphone',$input['telphone'])->first(); if($tel_info){ return response()->json([ 'error_code'=>40019, 'msg'=>'手机号已存在' ]); } $cre_info=DB::table('users') ->where('del_is',0) ->where('cre_num',$input['cre_num'])->first(); if($cre_info){ return response()->json([ 'error_code'=>40019, 'msg'=>'档案号已存在' ]); } $da['aid']=Auth::guard('admin')->user()->id; $da['type']= 1;//添加 $da['added_on']= date("Y-m-d H:i:s");//删除 DB::beginTransaction(); $row=DB::table('users')->insertGetId([ 'name'=> $input['name'], 'no'=> substr($input['cre_num'],-6,6), 'cre_num'=> $input['cre_num'], 'telphone'=> $input['telphone'], 'address'=> $input['address'], 'team_id'=>$input['team_id'], 'add_type'=>1, 'created_at'=>date("Y-m-d H:i:s"), 'updated_at'=>date("Y-m-d H:i:s"), ]); $da['uid']=$row; $row1=DB::table('change_user_log')->insert($da); if($row && $row1){ DB::commit(); return response()->json([ 'error_code'=>200, 'msg'=>'添加成功' ]); }else{ DB::rollback(); return response()->json([ 'error_code'=>0, 'msg'=>'添加失败' ]); } } /* 修改党员*/ public function updateMember(Request $request){ $input=$request->all(); $rules=[ 'name'=>'required|max:16', 'cre_num'=>'required|min:8|max:8', 'address'=>'max:255', 'telphone'=>'required|regex:/^1[345789][0-9]{9}$/', 'team_id'=>'required', ]; $messages=[ 'name.required'=>'党员名称不能为空.', 'name.max'=>'党员名称不能超过16个字符.', 'cre_num.required'=>'档案号不能为空.', 'cre_num.min'=>'档案号长度为8个字符.', 'cre_num.max'=>'档案号长度为8个字符.', 'address.max'=>'备注信息内容太多.', 'telphone.required'=>'手机号不能为空.', 'telphone.regex'=>'手机号格式有误.', 'team_id.required'=>'请选择团队.', ]; $validator = Validator::make($input, $rules ,$messages); if($validator->fails()){ return response()->json([ 'error_code'=>'41113', 'msg'=>$validator->errors()->first() ]); } $tel_info=DB::table('users') ->where('del_is',0) ->where('telphone',$input['telphone'])->first(); if($tel_info){ if($tel_info->id != $input['id']){ return response()->json([ 'error_code'=>40019, 'msg'=>'手机号已存在' ]); } } $cre_info=DB::table('users') ->where('del_is',0) ->where('cre_num',$input['cre_num'])->first(); if($cre_info){ if($cre_info->id != $input['id']){ return response()->json([ 'error_code'=>40019, 'msg'=>'档案号已存在' ]); } } $da['uid']=$input['id']; $da['aid']=Auth::guard('admin')->user()->id; $da['type']= 3;//修改 $da['added_on']= date("Y-m-d H:i:s"); DB::beginTransaction(); $row=DB::table('users')->where('id',$input['id'])->update([ 'name'=> $input['name'], 'no'=> substr($input['cre_num'],-6,6), 'cre_num'=> $input['cre_num'], 'telphone'=> $input['telphone'], 'address'=> $input['address'], 'team_id'=>$input['team_id'], 'updated_at'=>date("Y-m-d H:i:s"), ]); $row1=DB::table('change_user_log')->insert($da); if($row && $row1){ DB::commit(); return response()->json([ 'error_code'=>200, 'msg'=>'修改成功' ]); }else{ DB::rollback(); return response()->json([ 'error_code'=>0, 'msg'=>'修改失败' ]); } } /* 下载批量上传模板 */ public function downloadManyMember(Request $request){ $url='http://'.$request->server('SERVER_NAME').'/excel/批量导入信息表.xlsx'; return response()->json([ 'error_code'=>200, 'url'=>$url ]); } /* 批量添加 */ public function manyMember(Request $request) { $teamid=$request->post('team_id'); $teaminfo=DB::table('team')->where('id',$teamid)->first(); if($teaminfo){ if($teaminfo->status!=1){ return response()->json([ 'error_code'=>'400013', 'msg'=>'支部未启用', ]); } $file = $request->file('file');//获取上传的文件 if ($file->isValid()) { $filename = $file->getClientOriginalName();//获取上传文件的文件名(带后缀,如abc.png) $fileextension = $file->getClientOriginalExtension();//获取上传文件的后缀(如abc.png,获取到的为png) if (!preg_match('/(xls|xlsx|csv)/', strtolower($filename))) { return response()->json([ 'error_code'=>'0', 'msg'=>'您只能上传通用的excel格式', ]); } $filesize = $file->getSize();//获取上传文件的大小 if ($filesize / 1024 > 500) { return response()->json([ 'error_code'=>'0', 'msg'=>'请检查您上传的文件不能大于500KB', ]); } $filaname = $file->getFilename();//获取缓存在tmp目录下的文件名(带后缀,如php8933.tmp) $realpath = $file->getRealPath();//获取上传的文件缓存在tmp文件夹下的绝对路径 $newfilename = date("YmdHis") . mt_rand(1000, 9999) . substr(md5(uniqid(rand(1000, 9999))), 6, 18) . '.' . $fileextension; $newpath = $request->server('DOCUMENT_ROOT') . '/excel/userinfo'; $path = $file->move($newpath, $newfilename); if($path){ $data=Excel::toArray(new UsersImport, $newpath.'/'.$newfilename); $da['aid']= Auth::guard('admin')->user()->id; $da['type']= 1;//添加 $da['added_on']= date("Y-m-d H:i:s");//删除 $datas=[]; foreach($data[0] as $key => $val){ if(empty($val[1])){ return response()->json([ 'error_code'=>'415', 'msg'=>'表格第'.($key+2).'行2列为空,请检查表格信息是否完整', ]); }elseif(mb_strlen($val[1])>16){ return response()->json([ 'error_code'=>'415', 'msg'=>'表格第'.($key+2).'行党员名称超过16个字符,请检查表格信息', ]); }else{ $datas[$key]['name']=$val[1]; } if(empty($val[2])){ return response()->json([ 'error_code'=>'415', 'msg'=>'表格第'.($key+2).'行3列为空,请检查表格信息是否完整', ]); }else{ $cre=trim($val[2]); if(!preg_match("/^\d{8}$/",$cre)){ return response()->json([ 'error_code'=>0, 'msg'=>'档案号'.$cre.'有误' ]); } $co=DB::table('users')->where('cre_num',$cre)->where('del_is',0)->count(); if($co>0){ return response()->json([ 'error_code'=>'415', 'msg'=>'档案号'.$cre.'已存在', ]); } $datas[$key]['cre_num']=$cre; $datas[$key]['no']=substr($cre,-6,6); } if(empty($val[3])){ return response()->json([ 'error_code'=>'415', 'msg'=>'表格第'.($key+2).'行4列为空,请检查表格信息是否完整', ]); }else{ $tel=trim($val[3]); if(!preg_match("/^1[34578]{1}\d{9}$/",$tel)){ return response()->json([ 'error_code'=>40011, 'msg'=>'表格第'.($key+2).'行手机号有误' ]); }else { $tel_info = DB::table('users') ->where('del_is', 0) ->where('telphone', $tel)->first(); if ($tel_info) { return response()->json([ 'error_code' => 40019, 'msg' => '手机号'.$tel.'已存在' ]); } $datas[$key]['telphone']=$tel; } } if(mb_strlen($val[4])>=255){ return response()->json([ 'error_code'=>'416', 'msg'=>'表格第'.($key+2).'行备注信息太长'.mb_strlen($val[4]), ]); } $datas[$key]['address']=$val[4]; $datas[$key]['team_id']=$teamid; $datas[$key]['add_type']=2; $datas[$key]['created_at']=date("Y-m-d H:i:s"); $datas[$key]['updated_at']=date("Y-m-d H:i:s"); } $data_cre=array_column($datas,'cre_num'); $data_tel=array_column($datas,'telphone'); $cre_arr = array_diff_assoc ( $data_cre, array_unique($data_cre)); $tel_arr = array_diff_assoc ( $data_tel, array_unique($data_tel)); if(count($cre_arr)>0){ return response()->json([ 'error_code'=>400205, 'msg'=>'表格中存在相同的档案号', ]); } if(count($tel_arr)>0){ return response()->json([ 'error_code'=>400206, 'msg'=>'表格中存在相同的手机号', ]); } try { DB::transaction(function () use ($datas,$da) { foreach($datas as $k=>$v){ $row = DB::table('users')->insertGetId($v); $da['uid'] = $row; DB::table('change_user_log')->insert($da); } }, 5); }catch(Exception $e){ return response()->json([ 'error_code'=>205, 'msg'=>'数据上传出错', ]); } return response()->json([ 'error_code'=>200, 'msg'=>'添加成功' ]); } } }else{ return response()->json([ 'code'=>412, 'msg'=>'没有上传支部' ]); } } /* 移出党员 */ public function delMember(Request $request){ $input=$request->all(); $da['uid']=$input['id']; $da['aid']=$aid= Auth::guard('admin')->user()->id; $da['type']= 2;//记录 删除 $da['added_on']= date("Y-m-d H:i:s"); $userinfo=DB::table('users')->where('id',$input['id'])->first(); if($userinfo){ DB::beginTransaction(); $row=DB::table('users')->where('id',$input['id'])->update([ 'del_is' => '1', 'del_aid' => $aid, 'deleted_at' => date("Y-m-d H:i:s") ]); $row1=DB::table('change_user_log')->insert($da); if($row && $row1){ DB::commit(); return response()->json([ 'error_code'=>200, 'msg'=>'移除成功', ]); }else{ DB::rollBack(); return response()->json([ 'error_code'=>0, 'msg'=>'移除失败', ]); } }else{ return response()->json([ 'error_code'=>400010, 'msg'=>'党员信息不存在', ]); } } /* 党员增删改操作记录 */ public function getChangeUserLog(Request $request){ $where=[]; $adminInfo=Auth::guard('admin')->user(); if($adminInfo){ $atis=$adminInfo->is_team; if($atis==2){ $where['users.team_id']=$adminInfo->team_id; } } $search_name = $request->search_name; $page_size = $request->page_size; $page_index = $request->page_index; $num = ($page_index - 1) * $page_size; $count = DB::table('change_user_log') ->leftJoin('admins','admins.id','=','change_user_log.aid') ->leftJoin('users','users.id','=','change_user_log.uid') ->where(function ($query) use ($search_name) { $query->where('users.name', 'like', '%' . $search_name . '%') ->orWhere('users.telphone', 'like', '%' . $search_name . '%') ->orWhere('users.cre_num', 'like', '%' . $search_name . '%'); }) ->where($where) ->count(); if ($count > 0) { $list = DB::table('change_user_log') ->leftjoin('users','users.id','=','change_user_log.uid') ->leftJoin('admins','admins.id','=','change_user_log.aid') ->where(function ($query) use ($search_name) { $query->where('users.name', 'like', '%' . $search_name . '%') ->orWhere('users.telphone', 'like', '%' . $search_name . '%') ->orWhere('users.cre_num', 'like', '%' . $search_name . '%'); }) ->where($where) ->select('admins.name as aname','users.name as uname','change_user_log.type','change_user_log.uid','change_user_log.added_on') ->orderBy('change_user_log.id','desc') ->skip($num)->take($page_size)->get(); if ($list) { return response()->json([ 'error_code' => 200, 'msg' => '获取操作信息成功', 'list' => $list, 'count' => $count ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '获取操作信息失败' ]); } } else { return response()->json([ 'error_code' => 200, 'msg' => '没有操作信息', 'list' => [], 'count' => $count ]); } } /** 党员转出支部 */ public function userChangeTeam(Request $request){ $input=$request->all(); $team_id=DB::table('users')->where('id', $input['id'])->value('team_id'); if($team_id==$input['team_id']){ return response()->json([ 'error_code' => 40016, 'msg' => '转出支部不能为当前所在支部', ]); } DB::beginTransaction(); $row = DB::table('users')->where('id', $input['id'])->update([ 'team_id' => $input['team_id'] ]); $row1 = DB::table('transfer')->insert([ 'uid' => $input['id'], 'ntid' => $input['team_id'], 'otid' => $input['old_team_id'], 'note' => $input['note'], 'created_at' => date("Y-m-d H:i:s") ]); if($row && $row1){ DB::commit(); return response()->json([ 'error_code' => 200, 'msg' => '转出成功', ]); } else { DB::rollBack(); return response()->json([ 'error_code' => 0, 'msg' => '转出失败' ]); } } /*转出管理列表*/ public function userChangeLog(Request $request){ $where=[]; $adminInfo=Auth::guard('admin')->user(); if($adminInfo){ $atis=$adminInfo->is_team; if($atis==2){ $where['transfer.otid']=$adminInfo->team_id; } } $search_name = $request->search_name; $page_size = $request->page_size; $page_index = $request->page_index; $num = ($page_index - 1) * $page_size; $count = DB::table('transfer') ->join('users','users.id','=','transfer.uid') ->where(function ($query) use ($search_name) { $query->where('users.name', 'like', '%' . $search_name . '%') ->orWhere('users.telphone', 'like', '%' . $search_name . '%') ->orWhere('users.cre_num', 'like', '%' . $search_name . '%'); }) ->where('users.del_is',0) ->where($where) ->count(); if ($count > 0) { $list = DB::table('transfer') ->join('users','users.id','=','transfer.uid') ->leftJoin('team as t1','t1.id','=','transfer.ntid') ->leftJoin('team as t2','t2.id','=','transfer.otid') ->where(function ($query) use ($search_name) { $query->where('users.name', 'like', '%' . $search_name . '%') ->orWhere('users.telphone', 'like', '%' . $search_name . '%') ->orWhere('users.cre_num', 'like', '%' . $search_name . '%'); }) ->where('users.del_is',0) ->where($where) ->select('users.id','users.name','users.cre_num','t1.name as ntname','t2.name as otname','transfer.note','transfer.created_at') ->orderBy('transfer.id','desc') ->skip($num)->take($page_size)->get(); if ($list) { return response()->json([ 'error_code' => 200, 'msg' => '获取转出信息成功', 'list' => $list, 'count' => $count ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '获取转出信息失败' ]); } } else { return response()->json([ 'error_code' => 200, 'msg' => '没有转出信息', 'list' => [], 'count' => $count ]); } } /** 承诺书管理 */ public function getCommitList(Request $request){ $where=[]; $adminInfo=Auth::guard('admin')->user(); if($adminInfo){ $atis=$adminInfo->is_team; if($atis==2){ $where['users.team_id']=$adminInfo->team_id; } } $search_name = $request->search_name; $page_size = $request->page_size; $page_index = $request->page_index; $num = ($page_index - 1) * $page_size; $count = DB::table('upload_commit_log as ucl') ->join('users','users.id','=','ucl.uid') ->where(function ($query) use ($search_name) { $query->where('users.name', 'like', '%' . $search_name . '%') ->orWhere('users.telphone', 'like', '%' . $search_name . '%') ->orWhere('users.cre_num', 'like', '%' . $search_name . '%'); }) ->where('users.del_is',0) ->where($where) ->count(); if ($count > 0) { $list = DB::table('upload_commit_log as ucl') ->join('users','users.id','=','ucl.uid') ->where(function ($query) use ($search_name) { $query->where('users.name', 'like', '%' . $search_name . '%') ->orWhere('users.telphone', 'like', '%' . $search_name . '%') ->orWhere('users.cre_num', 'like', '%' . $search_name . '%'); }) ->where('users.del_is',0) ->where($where) ->select('users.name','users.telphone','users.cre_num','ucl.id','ucl.imageUrl','ucl.created_at') ->orderBy('ucl.id','desc') ->skip($num)->take($page_size)->get(); if ($list) { return response()->json([ 'error_code' => 200, 'msg' => '获取党员信息成功', 'list' => $list, 'count' => $count ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '获取党员信息失败' ]); } } else { return response()->json([ 'error_code' => 200, 'msg' => '没有党员信息', 'list' => [], 'count' => $count ]); } } /** 删除承诺书 */ public function destoryCommit(Request $request){ $rules=[ 'id' => 'required', ]; $messages=[ 'id.required'=>'请选择要删除的承诺书.' ]; $validator = Validator::make($request->all(), $rules,$messages); if ($validator->fails()) { return response()->json([ 'error_code'=>41113, 'msg'=>$validator->errors()->first() ]); } $where['id']=$request->id; $commit=DB::table('upload_commit_log')->where($where)->first(); if(empty($commit)){ return response()->json([ 'error_code' => 400010, 'msg' => '承诺书不存在' ]); } $row = DB::table('upload_commit_log') ->where($where) ->delete(); if($row){ $filePath=$commit->imageUrl; $fileName=explode('/',$filePath); $commitName=end($fileName); $path=$request->server('DOCUMENT_ROOT') . '/images/commit/'.$commitName; unlink($path); Log::info('ID为:'.$commit->uid.'用户的承诺书被删除'); return response()->json([ 'error_code' => 200, 'msg' => '删除成功' ]); }else{ return response()->json([ 'error_code' => 0, 'msg' => '删除失败' ]); } } /* 添加公告信息*/ public function addInfo(Request $request){ $input=$request->all(); $data['title']=$input['title']; $data['contents']=$input['contents']; $data['added_at']=date("Y-m-d H:i:s"); $row=DB::table('infos')->insert($data); if($row){ return response()->json([ 'error_code' => 200, 'msg' => '添加成功' ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '添加失败' ]); } } /* 获取公告信息*/ public function getInfoList(Request $request){ $search_name = $request->search_name; $page_size = $request->page_size; $page_index = $request->page_index; $num = ($page_index - 1) * $page_size; $count = DB::table('infos') ->where('title', 'like', '%' . $search_name . '%') ->count(); if ($count > 0) { $list = DB::table('infos') ->where('title', 'like', '%' . $search_name . '%') ->skip($num)->take($page_size)->get(); if ($list) { return response()->json([ 'error_code' => 200, 'msg' => '获取公告信息成功', 'list' => $list, 'count' => $count ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '获取公告信息失败' ]); } } else { return response()->json([ 'error_code' => 200, 'msg' => '没有公告信息', 'list' => [], 'count' => $count ]); } } public function deleteInfo(Request $request){ $input=$request->all(); $row=DB::table('infos')->where('id',$input['id'])->delete(); if($row){ return response()->json([ 'error_code' => 200, 'msg' => '删除成功' ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '删除失败' ]); } } public function getInfoContent(Request $request){ $input=$request->all(); $data=DB::table('infos')->where('id',$input['id'])->first(); if($data){ return response()->json([ 'error_code' => 200, 'msg' => '获取成功', 'data' =>$data ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '获取失败' ]); } } public function updateInfoContent(Request $request){ $input=$request->all(); $data['title']=$input['title']; $data['contents']=$input['contents']; $row=DB::table('infos')->where('id',$input['id'])->update($data); if($row){ return response()->json([ 'error_code' => 200, 'msg' => '修改成功', ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '修改失败' ]); } } public function getChargeLog(Request $request){ $where=[]; $adminInfo=Auth::guard('admin')->user(); if($adminInfo){ $atis=$adminInfo->is_team; if($atis==2){ $where['team_id']=$adminInfo->team_id; } } $uid=$request->uid; $page_size = $request->page_size; $page_index = $request->page_index; $num = ($page_index - 1) * $page_size; $count = DB::table('charge') ->where('uid',$uid) ->where($where) ->where('status',1) ->count(); if ($count > 0) { $list = DB::table('charge') ->where('uid',$uid) ->where($where) ->where('status',1) ->select('month','fee','type','pays_at') ->orderBy('month','desc') ->skip($num)->take($page_size)->get(); if ($list) { return response()->json([ 'error_code' => 200, 'msg' => '获取缴费记录成功', 'list' => $list, 'count' => $count ]); } else { return response()->json([ 'error_code' => 0, 'msg' => '获取缴费记录失败' ]); } } else { return response()->json([ 'error_code' => 200, 'msg' => '没有缴费记录', 'list' => [], 'count' => $count ]); } } }