public function update() { $idx = user()->getIdx(); if ($idx) { $meta = new PhilgoMeta(); $stamp = $meta->get("attend.complete.{$idx}"); if ($stamp) { // 1 분 이내에 중복 신청이 안되도록 한다. if ($stamp < time() - 60) { // 총 포인트가 10만 점이 넘지 않도록 한다. $point = $meta->get("total.event.point.{$idx}"); if ($point > 100000) { json_success(array('code' => -40470, 'message' => "한도 초과: 포인트는 50,000 점까지만 획득 가능합니다.")); } global $sys; $d = array('idx_member' => $idx, 'idx_member_from' => $idx, 'point' => 77, 'idx_post' => 0, 'etc' => 'point event 2016-01-26'); $sys->point->update($d); $meta->set("attend.complete.{$idx}", time()); $meta->set("total.event.point.{$idx}", $point + 77); json_success(array('code' => 0, 'message' => "OK")); } else { $left = 60 - (time() - $stamp); json_success(array('code' => -40450, 'message' => "너무 빠른 포인트 증가 시도입니다. {$left} 초 남았음.")); } } else { json_success(array('code' => -40449, 'message' => "출석 이벤트를 완료하십시오.")); } } else { json_success(array('code' => -40104, 'message' => "로그인을 하십시오.")); } }
/** * * */ public function attend() { $idx = user()->getIdx(); if (empty($idx)) { json_error(-40443, "로그인을 하십시오."); } $id = user()->getUsername(); $meta = new PhilgoMeta(); $nick = $meta->get("google_store.{$id}"); if (empty($nick)) { json_error(-40401, "앱 평가를 먼저 하셔야 출석을 할 수 있습니다."); } $date = date('Ymd'); $entity = $this->load("user_id={$idx} AND date={$date}"); if ($entity) { $count = $this->count_consecutive_attend(); if ($count >= self::max_attend) { json_error(-40448, "출석 이벤트를 완료하였습니다."); } else { $ymd = preg_replace('/([0-9]{4})([0-9]{2})([0-9]{2})/', "\$1년 \$2월 \$3일", $date); json_error(-40448, "{$ymd}에 출근 도장을 이미 찍으셨습니다. 연속으로 {$count} 번 출근 도장을 찍으셨습니다."); } } $entity = $this->create()->sets(array('user_id' => $idx, 'date' => $date))->save(); if ($entity) { $count = $this->count_consecutive_attend(); if ($count >= 5) { $meta = new PhilgoMeta(); $meta->set("attend.complete.{$idx}", time()); json_success(array('code' => 1, 'message' => "축하합니다. 출석 이벤트를 완료하였습니다.")); } else { json_success(array('count' => $count)); } } else { json_error(-40041, "출근 실패"); } }