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
이런식으로 개발자가 정의해서 기록하고 나중에 구분용도로 쓰고 있습니다.
관리자 포인트 리스트나 회원포인트 조회에서 해당 값으로 한글로 변환해서 보여주는 용도로
사용됩니다.
답변에 대한 댓글 2개
uniqid 를 써주는 이유가 뭔가요?
댓글을 작성하려면 로그인이 필요합니다.
// 이미 등록된 내역이라면 건너뜀
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()
=> 이렇게 생성할경우 값이 겹치지 않게 되므로 고유값 용도로 사용할려고 하는 용도인거 같음
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
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 필드는 구분자 필드로 해당 포인트의 종류를 문자로 정의해서 입력하고 있음
답변에 대한 댓글 1개
db를 보면 po_re_table 칼럼에 $login, $member 이런식으로 적혀 있는데
이런 값의 내용을 어디서 정해주나요?
댓글을 작성하려면 로그인이 필요합니다.
포인트 테이블에 만료날짜를 기록하고 해당 포인트가 만료날짜가 되면
포인트합산시 해당 포인트를 만료처리하여 마이너스(-) 처리한다는 의미입니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
감사합니다~~