request->token; $employee = Employee::with(['company', 'companys', 'employeeCard'])->findOrEmpty($token['employee_id']); $data['employee_id'] = $employee['id']; $data['uid'] = $employee['uid']; $data['name'] = $employee['name']; $data['phone'] = $employee['phone']; $data['position'] = $employee['position']; $data['company_name'] = $employee['company_name']; $data['headimgurl'] = $employee['image_photo'] ? $employee['image_photo'] : ''; $data['wx'] = $employee['wx'] ?? ''; $data['qrcode'] = $employee['qrcode']; $data['likes'] = $employee['employeeCard']['likes'] ?? 0; if (isset($employee['companys'])) { $data['company_introduction'] = $employee['companys']['company_introduction']; $data['company_address'] = $employee['companys']['company_address']; $data['company_logo'] = $employee['companys']['logo']; $data['company_vr_address'] = $employee['companys']['vr_address']; } else { $data['company_introduction'] = ''; $data['company_address'] = ''; $data['company_logo'] = ''; $data['company_vr_address'] = ''; } $log_where[] = ['uid', '<>', $token['uid']]; $log_where[] = ['employee_id', '=', $token['employee_id']]; $log_where[] = ['pipe_type', '=', 'card']; $logUid = Footprints::where($log_where)->order('id desc')->group('uid')->column('uid'); //$logUid = array_values(array_filter(array_unique($logUid))); // 去重 $logUid_new = array_slice($logUid, 0, 4); $log = []; foreach ($logUid_new as $v) { $log[] = User::where([['id', '=', $v]])->value('headimgurl'); } /*if (count($log) < 4) { $left_count = 4 - count($log); $left_log = User::where('headimgurl', '<>', '')->limit($left_count)->order('id desc')->column('headimgurl'); $log = array_merge($log, $left_log); }*/ $logCount = User::where([['id', 'in', $logUid]])->count(); /*if ($logCount < 4) { $logCount = 4; }*/ return json(['code' => self::success, 'data' => $data, 'log' => $log, 'logcount'=>$logCount]); } /** * 点赞 */ public function like(){ $employee_id = $this->request->token['employee_id']; $res = EmployeeCard::where('employee_id', '=', $employee_id)->inc('likes')->update(); if (!$res) EmployeeCard::insert(['employee_id'=>$employee_id,'likes'=>1]); return json(['code' => self::success, 'msg' => 'success']); } public function save() { $data = Request::only(['company_name', 'department', 'position', 'name', 'phone', 'wx', 'email', 'brief']); $card = EmployeeCard::where(['employee_id' => $this->request->token['employee_id']])->find(); if (empty($card)) { $card = new EmployeeCard(); $data['employee_id'] = $this->request->token['employee_id']; } $data['qrcode'] = $this->getQrPath(); $card->save($data); return json(['code' => self::success, 'msg' => '保存成功']); } private function getQrPath() { // 生成二维码 $rootOrgId = request()->token['root_org']; $mini = Miniprogram::where([['root_id', '=', $rootOrgId]])->find(); $qrObj = new Qrcode; $param = [ 'scene' => 'userCard_' . $this->request->token['employee_id'], 'page' => 'index/pages/namecard/namecard', 'width' => '280px', ]; $qr = $qrObj->getUnlimited($mini->accesstoken, $param); $rs = json_decode($qr, true); if (!is_null($rs)) { trace('名片二维码生成失败' . ';error:' . $qr, 'error'); } $path = 'userCard' . DIRECTORY_SEPARATOR . uniqid() . '.jpeg'; ossContentUpload($path, $qr); return $path; } }