middleware('CheckLogin'); // $this->middleware('Logs'); // $this->middleware('CacheClear'); } const USER_UPLOAD = 1; const USER_UPLOAD_KEY = 'bsb_user_upload:'; /** * 用户上传接口 * @param Request $request * @return string */ public function postUpload(Request $request){ try{ ini_set('memory_limit', '256M'); set_time_limit(0); $params = $request->all(); $keys = array('corp_id', 'activity_id'); foreach($keys as $key){ if(empty($params[$key])){ return Api::json(config('code.params_error'), trans('params.'.$key).trans('msg.params_not_null')); } } if($request->isMethod('post')){ //活动存在性判断 $activity_info = ActivityService::getActivityInfo($params['activity_id'], $params['corp_id']); if(!$activity_info){ return Api::json(config('code.activity_not_exist'), trans('msg.activity_not_exist')); } //表单校验 if(empty($_FILES['user'])){ return Api::json(config('code.fail'), trans('msg.excel_not_exist')); } //读取excel存入redis $filePath = $_FILES['user']['tmp_name']; Excel::load($filePath, function ($reader) { $reader = $reader->getSheet(0); $res = $reader->toArray(); $is_hand = 0; foreach ($res as $k=>$v) { unset($res[$k]); if($v[0] == '姓名' && $v['1'] == '部门' && $v[2] == '手机号码/ID号'){ $is_hand = 1; break; } } //去掉excel表格的空数据 $res = collect($res)->filter(function($value){ return !is_null($value[0]) || !is_null($value[1]) || !is_null($value[2]); }); $res = collect($res)->toArray(); //表单内容校验 if(empty($res)){ if($is_hand == 1) { print_r(Api::json(config('code.fail'), trans('msg.user_not_exist'))); exit; } else { print_r(Api::json(config('code.fail'), trans('msg.fail_type_exist'))); exit; } } //去除空格和不可见unicode编码 $result = []; foreach($res as $key=>$val){ // $result[$key][0] = Api::trimUnicode($val[0]); // $result[$key][1] = Api::trimUnicode($val[1]); // $result[$key][2] = Api::trimUnicode($val[2]); $result[$key][0] = $val[0]; $result[$key][1] = $val[1]; $result[$key][2] = Api::trimUnicode($val[2]); } $res = json_encode($result); Redis::set(self::USER_UPLOAD_KEY.$_REQUEST['activity_id'], $res, 'EX', 3600); }); //数据处理入库 $res = Redis::get(self::USER_UPLOAD_KEY.$params['activity_id']); $res = json_decode($res, true); $result = UserService::userUpload($res, $params['activity_id'], $params['corp_id']); //入库成功则保存文件 if($result['code'] == 0){ $newPath = base_path('storage/uploads/' . date('Ymd')); if (!is_dir($newPath)) { mkdir($newPath); } $file = $request->file('user'); $file->move($newPath, date('His') . $_FILES['user']['name']); //修改人员上传状态 Configs::where('corp_id', $params['corp_id'])->where('activity_id', $params['activity_id'])->update(['is_user_upload'=>1]); } return Api::json($result['code'], $result['msg'], $result['data']); } else { return Api::json(config('code.fail'), trans('msg.method_no')); } } catch(\Exception $e) { Log::info($e); return Api::json(config('code.service_error'), '上传失败,请检测文件格式或文件是否加密!!'); } } /** * 获取活动人员列表 * @param Request $request * @return string */ public function getUserList(Request $request){ try { $params = $request->all(); $keys = array('activity_id', 'corp_id'); foreach ($keys as $key) { if (empty($params[$key])) { return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null')); } } $pageSize = empty($params['page_size']) ? 10 : $params['page_size']; $keyword = $request->get("keyword"); if (is_null($keyword)) { $userInfo = Users::where('activity_id', $params['activity_id']) ->where('corp_id', $params['corp_id']) ->where('status', 1) //人员状态 0 无效 1 有效 ->orderByDesc("create_time")->paginate($pageSize); } else { $department_like = Departments::where('activity_id', $params['activity_id'])->where('corp_id', $params['corp_id'])->where('status', 1)->where("department_name", "like", "%" . $keyword . "%")->pluck('department_id'); $userInfo = Users::where('activity_id', $params['activity_id']) ->where('corp_id', $params['corp_id']) ->where('status', 1) //人员状态 0 无效 1 有效 ->where(function ($query) use ($keyword, $department_like){ $query->where("name", "like", "%" . $keyword . "%")->orwhereIn("department_id", $department_like); }) ->orderByDesc("create_time")->paginate($pageSize); } $data = Api::page($userInfo); //时间戳转换 foreach ($data['data'] as $key => $val) { $data['data'][$key] = Api::dateFormat($val); $department_name = Departments::where('department_id', $val['department_id'])->value('department_name'); $data['data'][$key]['department_name'] = $department_name?$department_name:'无部门'; } //获取部门人员信息 $data['department_info'] = ActivityService::getUsersCount($params['corp_id'], $params['activity_id']); return Api::json(config('code.success'), trans('msg.success'), $data); }catch(\Exception $e) { return Api::serviceError($e); } } /** * 删除人员(软删除) * 2018-06-20 18:00:00 * @param Request $request * @return string */ public function postDelete(Request $request){ try{ $params = $request->all(); $keys = array('activity_id', 'corp_id', 'user_id'); foreach ($keys as $key) { if (empty($params[$key])) { return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null')); } } $res = UserService::delUser($params); return Api::json($res['code'], $res['msg'], $res['data']); }catch(\Exception $e) { return Api::serviceError($e); } } /** * 新增单个人员 * 部门字符串匹配 * @param Request $request * @return string */ public function postAdd(Request $request){ try{ $params = $request->all(); $keys = array('activity_id', 'corp_id', 'phone', 'name'); foreach ($keys as $key) { if (empty($params[$key])) { return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null')); } } $res = UserService::addUser($params); return Api::json($res['code'], $res['msg'], $res['data']); }catch(\Exception $e) { return Api::serviceError($e); } } /** * 用户信息修改(姓名、部门、电话) * @param Request $request * @return string */ public function postModify(Request $request){ try{ $params = $request->all(); $keys = array('activity_id', 'user_id', 'phone', 'name'); foreach ($keys as $key) { if (empty($params[$key])) { return Api::json(config('code.params_error'), trans('msg.params_not_null')); } } $res = UserService::ModifyUser($params); return Api::json($res['code'], $res['msg'], $res['data']); }catch(\Exception $e) { return Api::serviceError($e); } } } ?>