Please enable JavaScript in your browser to load website properly.

Click here if you'd like to learn how.

네이버페이 1만원권 당첨자 선정 소스 코드 공개 [31]

YGOSU2 | 2024-06-14 16:00:51 | 조회 : 4247 | 추천 : +17


안녕하세요. 와이고수 입니다.


네이버페이 1만원권 당첨자 선정은 컴퓨터 랜덤 추첨에 의해서 진행되며 당첨자 선정부터 상품권 발송까지 사람의 손을 거치지 않고 100% 자동화로 진행됩니다.

이 부분을 믿지 못하는 회원분들이 계신듯하여 관련 소스코드를 모두 공개하도록 하겠습니다.


아래의 소스 코드는 실제로 사용중인 코드이며 실제 아이템 구매 회원들중에 MySQL rand() 함수에 의해서 무작위로 선정을 하게 되어있습니다.


<?
//네이버페이 1만원 상품권 (14번 아이템) 당첨자 선정
try{
$addquery = " WHERE item_no=14 AND use_time>=DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND use_time<CURDATE() AND `status`='사용완료'";
$query = "SELECT member FROM ygosu_item.buy$addquery ORDER BY rand()";
if ($res = YG_DB::query($query)){
while ($row = $res->fetch_row()){
$_member = (int)$row[0];

//당첨자 DB 추가
if (YG_MEMBER::is_member($_member)){

//미네랄 사용 금액 계산
$_member_mineral = 0;
$_use_time = '';
$query2 = "SELECT SUM(mineral),use_time FROM ygosu_item.buy$addquery AND member='$_member'";
if ($res2 = YG_DB::query($query2)){
if ($row2 = $res2->fetch_row()){
$_member_mineral = (int)$row2[0];
$_use_time = $row2[1];
}
$res2->close();
}

//당첨자 DB 추가
$sql = new YG_SQL( 'npay_item_winner', 'ygosu_item');
$sql->add('item_no', 14);
$sql->add('win_date', 'DATE_SUB(CURDATE(), INTERVAL 1 DAY)', false);
$sql->add('member', $_member);
$sql->add('mineral', $_member_mineral);
YG_DB::real_query($sql->get_insert_sql());

//슬랙 알람
YG_COMMON::slack_alarm(
"네이버페이상품권 이벤트 당첨 - " . YG_MEMBER::get_member_nick($_member),
'#와고알리미',
'YGOSU'
);

//당첨자에게 쪽지 전달
$_msg = "안녕하세요. 와이고수 운영자입니다<br><br>";
$_msg .= "회원님께서 ".substr($_use_time,0,10)." 에 참여해주신 <strong>네이버페이포인트 쿠폰 1만원권</strong>에 당첨되셨습니다.<br><br>";
$_msg .= "<a href='/mypage' target='_blank'>[마이페이지]</a>에 입력해두신 <strong>경품 전송 휴대폰 번호</strong>로 문자 메세지를 전달해드릴 예정입니다 (10시에 전송예정).<br><br>";
$_msg .= "감사합니다";
YG_MEMBER::send_msg(100000, $_member, $_msg, 0, true, true);
break;
}
}
$res->close();
}

throw new Exception('SUCCESS');

}catch(Exception $e){
$msg = $e->getMessage();
if($msg=='SUCCESS'){
}else{
YG_COMMON::slack_alarm("make_npay_item_winner.sub error $msg", "#ygosu-error", "YGOSU");
}
}


<?
//어제 당첨자 상품권 전송
try{
//어제 당첨자 정보 조회
$winner_send_time = '';
$winner_date = YG_COMMON::getPrevDate();
$winner = YG_ITEM::getNPayWinner(14, $winner_date, $winner_send_time);
if ($winner===0) throw new Exception('어제 당첨자가 없습니다');
if ($winner_send_time!=='') throw new Exception('어제 당첨자에게 이미 전송 완료되었습니다');

//어제 당첨자가 회원인지
if (!YG_MEMBER::is_member($winner)) throw new Exception("어제 당첨자($winner) 가 회원이 아닙니다");

//어제 당첨자 휴대폰 번호 조회
$event_callnum = YG_MEMBER::getMemberEventCallnum($winner);
if ($event_callnum==='') throw new Exception("어제 당첨자($winner) 의 경품전송 휴대폰번호가 없습니다");

//쿠폰 전송
$is_complete = YG_ITEM::sendGiftiShowCoupon(
$event_callnum,
'와이고수 미네랄 교환소',
"축하드립니다. $winner_date 에 와이고수 미네랄교환소 (https://ygosu.com/item) 에서 신청하신 네이버페이상품권 1만원 응모에 당첨 되셨습니다."
);

//쿠폰 전송 성공 처리
if ($is_complete){
YG_ITEM::setNPayWinnerComplete(14, $winner_date);
}

throw new Exception('SUCCESS');

}catch(Exception $e){
$msg = $e->getMessage();
if($msg=='SUCCESS'){
YG_COMMON::slack_alarm("네이버페이 1만원 아이템 지급 성공", "#와고알리미", "YGOSU");
}else{
YG_COMMON::slack_alarm("네이버페이 1만원 아이템 지급 오류 - $msg", "#와고알리미", "YGOSU");
}
}


[이벤트 참여하기]

SNS로 공유하기

아이템 게시판

< 1 2 3 4 5 >