rhymix icon indicating copy to clipboard operation
rhymix copied to clipboard

포인트모듈 버그

Open sisepyo opened this issue 3 years ago • 3 comments

게시글 열람 시 포인트 차감이 될 경우 포인트가 없는 사람에 경우 게시글 본문에

로그인하지 않았거나 포인트가 부족하여 글을 읽을 수 없습니다. (필요한 포인트 : X, 현재 포인트 : X)

이렇게 표시가 됩니다. 하지만 게시글을 다시 열람하게 되면 포인트 차감 없이 게시글 본문을 볼 수 있습니다.

sisepyo avatar May 05 '22 09:05 sisepyo

이슈 등록하신분께서 개인적으로 질의를 해주셔서 제 나름 살펴본 내용의 댓글이 포함된 글을 공유합니다. https://rxtip.kr/board/61890

wookho avatar May 15 '22 01:05 wookho

링크하신 글에서

그런데 포인트가 부족했던 회원도 테이블에 회원번호를 저장해 버리면서 2번의 코드에서 역시 리턴되어 버려서 열람제한 포인트 차감작업을 하지 않고 리턴되어 버립니다.

포인트가 부족한 경우 에러메시지를 뿜고 리턴하기 때문에, 그 다음에 있는 DB 저장 코드는 실행되지 않습니다.

위 열람을 제한하는 코드가 updateReadedCount 트리거 after 에서 작동하는 것이라 포인트가 부족한 회원이 열람이 제한이 되었던 문서를 다시 접속하면 조회수가 이미 증가했기때문에 ReadedCount 가 증가하지 않기에 열람을 제한하는 코드가 작동하지 않고 그냥 열람이 될 것 같습니다.

이게 좀더 근본적인 원인으로 보입니다. 문서 모듈 "기본 설정" 탭에서 조회수를 "모두 계산"으로 설정할 경우 문제가 해결되는지 확인해 보시기 바랍니다. 만약 그것으로 해결된다면 트리거를 before 시점으로 옮겨야 이 문제를 해결할 수 있을 텐데, 다른 모듈에서 다른 이유로 열람을 제한한 경우 포인트에 변동이 발생하면 안 되므로 일부 코드는 또 after 시점에 남겨두어야 합니다. 이래저래 상당히 복잡할 것 같네요...

kijin avatar Jul 02 '22 16:07 kijin

@kijin "모두계산"으로 바꿀경우 해결되었습니다.

아무래도 return false 하던 항목들을 업데이트 진행할 것인지 아닌지에 대한 부분을 결정시킨다음 실제로 after트리거를 실행시키도록 하거나 따로 조회수 리턴을 위한 부분을 따로 게시판 설정으로 바꿔야할 것 같네요.

가장좋은건 게시판으로 옮기는 것이 더 나을 것 같습니다.

bjrambo avatar Jul 07 '22 17:07 bjrambo