Ejemplo n.º 1
0
 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' => "로그인을 하십시오."));
     }
 }
Ejemplo n.º 2
0
 /**
  *
  *
  */
 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, "출근 실패");
     }
 }