///
Search

부스트 강화 issues

부분취소 이슈 () (도움필요)
근본 원인: 현재 강화로 추가된 캐시백 및 할인률을 반영하는 방식의 문제인 것 같다
// 강화 결과 합치기 const { policyWithUp, hasBoostUp } = await this.getPromotionPolicyWithBoostUp( user.id, boostId, boostCashbackPromotion ); if (hasBoostUp) { boostCashbackPromotion = policyWithUp; } payment.cashbacks = [boostCashbackPromotion];
TypeScript
복사
강화 예산이 종료되면 부스트 리스트 갱신 가능할까요? 강화 예산이 종료되기 전에 앱을 실행, 이후 강화 예산이 종료된 경우 부스트 리스트가 갱신되지 않아 강화 화면에 진입이 가능합니다. - Freya
부스트 후적용 강화
이번 스펙에 미포함?
후적용 강화는 아직 테스트 못해봄
강화하기에 boostId가 인풋값으로 꼭 필요한가?
현재 강화하기(POST /v1/boost/campaign/:campaignId/up) 인풋값
부스트 구매 전: campaignId → required, boostId → null
부스트 구매 후: campaignId → required, boostId → required
부스트 구매 후에 boostId를 꼭 입력받게 설계한 이유?
구매 전 부스트 목록(available)과 구매 후 부스트 목록(activated)에 동일한 campaignId의 부스트가 동시에 존재하는 경우, 둘을 구분하기 위해서
션이 말씀하셨는데, 결제 취소 등의 이유로 동일한 campaignId의 부스트가 동시에 존재할 수 있다고 하심
캠페인 종료 후 강화 가능 (, ) (작업완료 후 테스트 중)
강화하기 전에 ‘캠페인이 살아있는가?’ 조건을 체크하기 위해서 campaign.status === ENABLED로 부족한 것 같다.
강화하기 (BoostUpService.up 리팩토링)
queryRunner 없애고 @Transactional 이용하는 방식으로 바꾸기
강화 실패하는 현상 ()
데브에서는 한번도 이슈 없던 부분
BoostUpService.up 리팩토링하면서 같이 해결해야 할듯
fix/boost-up-performance 리뷰
바뀐 내용
campaign 엔티티에 BoostCampaignBoostUpPolicyMapping 원투원으로 추가해서, campaign 불러올 때, 강화 정책까지 불러옴
campaign별로 BoostUp 가져오지 않고 한번에 BoostUp 싹 긁어온다음에 BoostUp.campaignId랑 campaign.id 비교
boostUpEntities가 input에 들어있는 경우는 없는 것 같은데 빼도 되지 않을까요?
어떤 의도로 넣은 것인지?
async getBoostUpTotal(input: IGetBoostUpTotalInput): Promise<BoostUpTotal> { const { userId, campaign, boostPromotion, boostId } = input; let { boostUpEntities } = input; if (boostUpEntities) { boostUpEntities = await this.boostUpRepository.getBoostUps({ userId, campaignId: campaign.id, boostId, status: BoostUpStatus.ENABLED, }); } const { maxDiscountAmount, priceMin, discount: discountAmount } = boostPromotion.promotion; return BoostUpTotal.create(boostUpEntities ?? [], { discountAmount, maxDiscountAmount, priceMin }); }
TypeScript
복사
userBoostUps가 없는 경우 return this.boostUpRepository.hasBoostUp(userId, campaignId, boostId);가 실행되는데, userBostUps가 없으면 hasBoostUp으로 조회해도 무조건 없지 않을까요?
private async userHasBoostUp(input: IsUserWithBoostUpInput) { const { userId, campaignId, boostId, userBoostUps } = input; if (userBoostUps) { return ( userBoostUps.filter((boostUp: BoostUp) => { return boostUp.campaignId === campaignId && boostUp.boostId === boostId; }).length > 0 ); } return this.boostUpRepository.hasBoostUp(userId, campaignId, boostId); }
TypeScript
복사
TODO의 의미?
//TODO: common의 IBoostCampaign을 쓰지 말고 domain을 선언하는 식으로 변경 const boostUpPolicyEntity = (campaign as BoostCampaignEntity).boostCampaignBoostUpPolicyMapping?.boostUpPolicy; const boostUpPolicy = boostUpPolicyEntity?.boostUpSchemePolicies ? BoostUpPolicy.create(boostUpPolicyEntity) : undefined;
Plain Text
복사
(추가중)