get_point_sum 함수 질문
본문
if($expire_point > 0) {
$mb = get_member($mb_id, 'mb_point');
$content = '포인트 소멸';
$rel_table = '@expire';
$rel_id = $mb_id;
$rel_action = 'expire'.'-'.uniqid('');
$point = $expire_point * (-1);
$po_mb_point = $mb['mb_point'] + $point;
$po_expire_date = G5_TIME_YMD;
$po_expired = 1;
get_point_sum 함수 일부 코드 입니다.
여기서 expire 가 의미하는 내용은 무엇인가요?
!-->답변 4
po_rel_table 은 정해진 값이 아니라 정의해서 쓰는 값이므로 해당 값에 대한 정의를 별도로
기록한곳은 존재하지 않는거 같습니다.
그누보드에서는 기본적으로 이렇게 쓰는거 같고
만료 : @expire
회원가입 : @member
로그인 : @login
예를 들면
관리자 : @admin
만료예정 : @expire_prepare
이런식으로 개발자가 정의해서 기록하고 나중에 구분용도로 쓰고 있습니다.
관리자 포인트 리스트나 회원포인트 조회에서 해당 값으로 한글로 변환해서 보여주는 용도로
사용됩니다.
포인트 테이블에 만료날짜를 기록하고 해당 포인트가 만료날짜가 되면
포인트합산시 해당 포인트를 만료처리하여 마이너스(-) 처리한다는 의미입니다.
// 이미 등록된 내역이라면 건너뜀
if ($rel_table || $rel_id || $rel_action)
{
$sql = " select count(*) as cnt from {$g5['point_table']}
where mb_id = '$mb_id'
and po_rel_table = '$rel_table'
and po_rel_id = '$rel_id'
and po_rel_action = '$rel_action' ";
$row = sql_fetch($sql);
if ($row['cnt'])
return -1;
}
=> 이미 등록된 내역인경우 건너뛰는 곳들이 있는데 그걸 방지하기 위해서 사용하는거 같음
$rel_action = 'expire'.'-'.uniqid('');
=>
https://zetawiki.com/wiki/PHP_uniqid()
=> 이렇게 생성할경우 값이 겹치지 않게 되므로 고유값 용도로 사용할려고 하는 용도인거 같음
expire 는 단순 텍스트이고
// 소멸 포인트
function get_expire_point($mb_id)
{
global $g5, $config;
if($config['cf_point_term'] == 0)
return 0;
$sql = " select sum(po_point - po_use_point) as sum_point
from {$g5['point_table']}
where mb_id = '$mb_id'
and po_expired = '0'
and po_expire_date <> '9999-12-31'
and po_expire_date < '".G5_TIME_YMD."' ";
$row = sql_fetch($sql);
return $row['sum_point'];
}
해당 함수로 소멸된 포인트 합산을 구한후에
rel_table 필드에 @expire 문자를 기록하여 소멸포인트 합을 마이너스로 포인트 테이블에 기록함
rel_table 필드는 구분자 필드로 해당 포인트의 종류를 문자로 정의해서 입력하고 있음