테스트 사이트 - 개발 중인 베타 버전입니다

소멸 포인트 get_expire_point 함수에서 po_expired 질문 채택완료

그누보드이해하기 4년 전 조회 2,167

</strong></p>

<p>// 소멸 포인트</p>

<p>function get_expire_point($mb_id)</p>

<p>{</p>

<p>    global $g5, $config;</p>

<p> </p>

<p>    if($config['cf_point_term'] == 0)</p>

<p>        return 0;</p>

<p> </p>

<p>    $sql = " select sum(po_point - po_use_point) as sum_point</p>

<p>                from {$g5['point_table']}</p>

<p>                where mb_id = '$mb_id'</p>

<p>                  and po_expired = '0'</p>

<p>                  and po_expire_date <> '9999-12-31'</p>

<p>                  and po_expire_date < '".G5_TIME_YMD."' ";</p>

<p>    $row = sql_fetch($sql);</p>

<p> </p>

<p>    return $row['sum_point'];</p>

<p>}</p>

<p><strong>

common.lib.php 에서 소멸 포인트 부분 질문드립니다.

get_expire_point 함수에서 and po_expired = ''0' 이라는 부분이 이해가 잘 가지 않는데요

po_expired는 포인트 만료를 나타내는데 포인트 만료가 0인것을 셀렉트 하는것은 소멸 포인트 함수에서 소멸되지 않은것을 셀렉트 하는건가요?

그리고 소멸 포인트 함수에서 왜 지급 포인트-사용 포인트를 구하는건가요?

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
Policia
4년 전

get_expire_point 함수는 소멸될수 있는 포인트가 있는지 리스트로 뽑아줍니다

 

po_expired는 포인트적립시 포인트가 +면 0 , -이면 1로 기록되어지는데요

여기서 확인할 수 있는점은 po_expired는 적립내역이면 0이란 값을, 마이너스내역이면 1이란 값을 입력한다는걸 알 수 있습니다

 

그렇다면 해당 함수에서 po_expired = 0를 찾는것은 적립내역 DB에서 po_expired 즉 포인트가 +된 내역만 가져오기 위함입니다.

포인트가 -된 내역은 사용한(소멸한) 포인트이니 가져올 필요가없죠

 

마지막은 po_use_point의 역할을 조금 이해하실 필요가있습니다

만약 홈페이지내에서 포인트 지급시 유효기간이 설정되어있다면 사용된 포인트를 po_use_point에 기록하게 되는데요

왜 이렇게 하느냐하면 소멸될 포인트인지 확인하기 위해서입니다 지급된 포인트가 만약 1000(po_point)이고 사용을 1000포인트(po_use_point) 하였다면 이 행에서 소멸될 포인트는? 0이겠죠? 그렇다면 소멸기간이 지나도 소멸을 시키지 말아야합니다 왜냐? 이미 지급된 포인트를 모두 사용하였기 때문이죠

 

다시 가정을 하고 다음을 봅시다 지급된 포인트가 1000포인트(po_point)이고 사용된 포인트가 970포인트(po_use_point)입니다 그러면 소멸기간이 다되었으면 30포인트가 소멸되어야 하겠지요?

 

그렇기에 소멸 예정인 포인트 리스트에서 1000포인트(po_point)-970사용포인트(po_use_point)=실제 소멸 30포인트 가 되므로 해당 함수에서 소멸될 포인트 값을 계산하여 출력하여서 넘겨서 30포인트만 소멸되도록 해줍니다

 

해당 함수가 사용되는  get_point_sum를 보면 get_expire_point에서 소멸될 포인트값(지급포인트-사용포인트)을 받아 소멸될 포인트(if($expire_point) > 0)가 있으면 포인트 소멸되는 쿼리를 진행하는걸 볼 수 있습니다

 

말재주가없어서 길어졌는데 이해하는데 도움이 되었으면 하네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

P
Policia
4년 전
어우 제가쓰고도 조금 헷갈리네요 수정을 몇번 하긴했는데 질문자분이 이해하셨으면 좋겠네요 ㅠㅠ
그누보드이해하기
4년 전
와 진짜 이곳에서 질문을 많이 했었는데 가장 마음에 들고 만족하는 답변이었습니다.
다른 분들도 잘 설명해주셨지만 이번 답변은 저의 가려운 곳을 긁어주는 시원한 답변이었어요.
궁금했던 내용이 시원하게 해결되었습니다.
정말 감사합니다 ^^
좋은일만 가득하세요!!
P
Policia
4년 전
네 저도 감사합니다 이러한 답변을 드리면서 저도 한번씩 더배우거든요 ㅎㅎ
근데 여기서 첫문장부터 오류가있었네요 ㅠㅠ

get_expire_point 함수는 소멸될수 있는 포인트가 있는지 리스트로 뽑아줍니다(X)
get_expire_point 함수는 소멸될수 있는 포인트를 뽑아줍니다(O)

요것만 참고해주세요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인